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.
|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.
|DisplayName||Text Field||Y||The name of the accessory slot to be shown in Planner|
Optional property sets
Custom Property set (or sets) allow definition of logic that defines something that otherwise isnt predefined in the system logic.
|Name||Text field||Y||The name of the custom property. It can be reffered to in scriting from elsewhere|
|Value||Scripting||N||Value or scripting logic that the property has|
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.
|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|
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
|Tag||Text field||N||A label that is associated with the item it's been configured to|
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.