An XData (X is for X-tra or X-tended) is a collection of multiple data types that can be associated with an AssemblyObject (AO) kind. It is constructed using the Construct XData component, its properties accessed via the Deconstruct XData component. It can be associated to its corresponding AOs via the Associate XData component.
Each XData can store several types of data associated with one AO. Since these extra information are not involved in the assemblage process, keeping them separated has two effects:
a leaner assemblage process
flexibility in choosing the geometry and data that will populate each instance of the same AO type
What occupies the empty space defined by the AO Collision Mesh is decided after the assemblage process, and it might vary according to contextual information, using filtration techniques and information stored in XData, which can be quickly paired with their corresponding AO kinds in a list of AOs via the Associate XData component.
If an XData contains geometry, it can be transformed (rigid transformations only) using the Transform XData component.
XData can store the following data types:
<aside> 💡 At the present moment, SubDs are not handled by XData (but you can pass a Mesh and convert it to SubD after the Assemblage).
</aside>