Here’s a list of key concepts present inside the plugin

Assemblage

An Assemblage contains a list of AssemblyObjects and the information on their topology (who is connected with who)

AssemblyObject

An AssemblyObject is the basic building block of an Assemblage. It contains only the necessary information to perform the Assemblage. It is composed of a Collision Mesh, one or more Handles, a Reference Plane, a Direction vector and a Weight

Collision Mesh

A Collision Mesh represents the space exclusively occupied by an AssemblyObject that cannot be violated by other objects. The Collision Mesh can wrap a geometry more or less tightly, or represent a void+building elements configuration. The geometry corresponding to solid elements contained in the Collision Mesh is referred to as actual geometry.

Collision geometry explained_text.jpg

Field

A Field is a 3D grid of tensors, aka points with associated data. In general, tensors can associate data in n-dimensions to any single point in space. In Assembler, data associated to any single point field comes in form of numbers (scalars), vectors, and integer Weights. Imagine storing information about temperature, wind direction and a zone ID (i.e. a neighborhood, city or region) in a single point in space. A field is a collection of such points+data, regularly distributed to sample as equally as possible a certain region of space. Fields are a powerful and flexible tool for the control of Assemblages.

Handle

A Handle is a plane (plane is the Rhino-Grasshopper term that denotes the XY plane of a custom XYZ coordinate system) used for AssemblyObject connection. It is defined by an L-shaped polyline (a 3 points polyline forming an L, drawn in the X-O-Y sequence), and characterized by a type, one or more rotation angles and a weight.

Heuristics

The set of rules and criteria to combine AssemblyObject together. Rules (Heuristics String) define the handle-object combination; criteria define how the rules and objects are selected during the Assemblage.

XData

X-tra Data or X-tended Data can associate metadata to an AssemblyObject kind: geometry, text, planes, vectors, numbers, and other type of data can be associated. Since these extra information is not involved in the assemblage process, instead of bloating the process it can be associated later, providing also flexibility for post-processing strategies. What fills the Collision Mesh can be decided after the assemblage process according to contextual information, using filtration techniques and information stored in XData.

<aside> 💡 NOTE: at the present moment, XData cannot handle SubDs

</aside>