Table of Contents

Accessory Slot

Overview

Accessory slot is an item that is used to define options of a Part. Accessory slot is added as a child to a Part.

The Accessory Slot defines the connector where accessories attach, not the accessories themselves. You should add all the possible Accessories as Parts to the Accessory Slot that can be selected with the module. You may use Item List or Part as "direct copy" or "as Reference copy" when defining Accessories. Item Lists are useful when many Parts share the same accessories.

The Root Properties of the Accessory slot define where the connection point is placed in the 3D space for this accessory slot.

Base properties

RootProperties

![TODO: Solve the problem of having Accessory and Material slot. Name it AccessorySlot even if class is Slot] ITEM_TYPE: AccessorySlot

Property Name Type Localized Description
MustBeConnected Toggle N This property indicates if this accessory slot must have something defined or not. Note that this works in conjunction with "Enabled" property so that even if this property is set to "true", ie something must be defined, the "Enabled" property can be scripted or defined "False" which means that this slot is not active in the current state
ConnectionPoint/Alignment Vector N The connection point defines the position of the accessory slot in the 3D space relative to the center of the parent part. Note the Coordinate System for the axis system.
ConnectionPoint/Offset Vector N In order to align the slot perfectly with the 3D model, Offset parameter allows a finegrained placement. Either Offset or AlignedOffset is used.
ConnectionPoint/AlignedOffset Vector N In order to align the slot perfectly with the 3D model, Offset parameter allows a finegrained placement. Either Offset or AlignedOffset is used.
ConnectionPoint/Rotation Vector N The Accessory Slot may be angled in respect to the 3D model part it is associated to and with this property you can rotate the position of the accessory slot accordingly. Note the rotation definition
Enabled Toggle/scripting N Is this accessory on or off? The on/off state can be altered dynamically with scripting that can check the state of the composition or the part itself to determine if the slot is active or not
AutoOption scripting N Is there a default option automatically selected? With this property you can prefill a certain accessory into the slot. Selection can also be scripted to follow some other property e.g. in parent part. E.g. if (Parent.MaterialSlot.Component.Name == "Leather" then Seam else Seamless), where Seam and Seamless are Part names in the slot with auto option.
DisplayName Text Field Y The name of the accessory slot to be shown in Planner
AutoClear Toggle N When active, the slot contents are removed when the slot is disabled. Otherwise the slot contents are remembered while the slot is disabled and are added back if the slot is enabled later.

Optional property sets

CustomProperties

Custom Property set (or sets) allow definition of logic that defines something that otherwise is not predefined in the system logic.

PROPERTY_SET: CustomProperties

Property Name Type Localized Description
Name Text field Y The name of the custom property. It can be referred to in scripting from elsewhere
Value Scripting N Value or scripting logic that the property has

ValidationRule

Validation rule property set is used to define logic that can be useful to ensuring the the item where the validation rule is will follow define rules.

PROPERTY_SET: ValidationRule

Property Name Type Localized Description
DisplayMessage Text Field Y Text that is shown on the Planner when the conditions of the rule are true
Level Radio Button N Selection should the rule show error, suggestion or indicating something is missing
Trigger Scripting N The logic that defines the validation rule

ClassificationTag

Classification tag allows the configurator to define a name in the system that can be referred to in other logic components through the scripting system

PROPERTY_SET: ClassificationTag

Property Name Type Localized Description
Tag Text field N A label that is associated with the item it's been configured to

Notes

It is common that you may have to have many Accessory Slots and depending on the composition some of them are used and some used in some other scenario. A common use case is with modular sofas and their leg logic. If the parent part, say a 1-seater module is standing alone, each corner of the part has an active accessory slot for leg. If the parent part is attached on the left and/or on the right, depending on rules, it may be that theres 2 legs on the center of the part or even no legs at at all. In order to support this and many other kinds of conditional placement and amount of accessories, scripting is used to enable or disable accessory slot, toggling the "Enabled" property to true/false.