Introduction to parts
Parts form an essential element of the configurator. You should view parts as the items that can be assembled together. Rules and configuration define how these parts connect and work together.
From 3D asset production point of view you must have a 3D model specifically for each part separately. Typically this can mean dividing complete products into the parts that are then used in configuration. In the tutorial, we assemble a modular sofa composed of different seats, armrests and legs and all other configurable products can be separated to their unique parts. The key is to keep in mind that while it is utmost important to know finer details of parts in terms of screws, nuts, bolts, gaskets and you name it for manufacturing, it will be unfriendly to the consumer to know all that detail. In case of our sofa, the number of screws that are needed to bolt the legs onto the seats can be directly derived from the number of leg units which means that we do not need to ask the consumer user to adding 4 screws for one leg into the 3D scene to make the configuration work.
It is therefore mandatory to abstract detail away in the sales configuration style from production to simplify the necessary steps and remove detail that can be derived from the configuration without explicitly adding it to be configured. Or if the detail is necessary and variable, automate the selection based on the configuration of the user so that the user does not need to know to add certain item under some specific condition.
In order to achieve all the above, the part is central piece to 3D configurators and a base unit that needs both 3D model and then rules for behaviour.
The most relevant items that you will need to work with when it comes to defining how parts work together are:
- structure logic (a product tree item)
- structure logic properties (both on the logic item and part item as child of logic)
- accessory slot (a product tree item)
- material slot (a product tree item)
- material (a product tree item)
- plug (a property set of a part)
Lets go through each of these in brief
The structure logic item defines the overall behaviour for the configuration for all parts which are defined as childs of the the logic.
The structure logics define in more specific the assembly logic and the behaviour in the 3D scene, for example, the surface plane against which the assembly logic works and possible limiters and additional behavioural features. You should study the logics further in the documentation.
Note that you can define structure logics as a child of part, which allows control and configurability within an assembly. You can additionally have one or more separate logics under the product, but this may also create minor usability issues with collision detection
Properties for part as a child of a structure logic
Each structure logic can have additional properties as property sets that you would define for a part behaviour under certain structure logic. These properties form part of the rules on how parts behave in the structure as individual items and form a control of assembly.
The Accessory slot item is used to define the placement of optional parts are in 3D space and what these optional parts are. When parts are added as childs of accessory slot, the parts are automatically identified as options of the parent part. This allows you to define part specific options with potential exclusivity or by defining many accessory slots, mutuality or partial exclusivity, through scripting.
In basic form, without scripting, each accessory slot is independent of each other and slots can have no or a selection irrespective of each other. With scripting, you can define logic, which implements exclusivity so that if a specific part is selected in one of the accessory slots, the other slot becomes disabled ie unavailable for configuring for example. You can view a tutorial about this behaviour in the tutorial section.
Material slot is used to more granularily define material options for specific area of the part. During 3D production, specifying material areas is mandatory for them to be available in configuration and with material slot, we can assign one or more material areas of the 3D mesh for certain materials. We do this in the tutorial for sofa and have example test with which to play with the idea that a sofa can be constructed with more than one material option.
In order to simplify configuration, materials should be defined as childs to an ItemList and linked (copied as reference) as child to the material slot as we do in the tutorial. This simplifies change management and permits easier content updating as you evolve your configurator
In order to visualise a part in the appropriate surface (color and material), you must define materials as child of the parent part. You may have material slot and item lists in between the parent and the child material.
Material item is used to describe one specific material surface for 3D rendering purposes. The subject of realistic material rendering in 3D is vast and out of scope for this document, but a lot of information is in the internet for the interested.
Sometimes, you need to define the connection point for an accessory in more detail on how it attaches to the accessory slot and a plug property set is useful for this. It allows you to define the connection point from the point of view of the part in question to the parent accessory slot where the part "plugs into".