Post-processing in Assembler regards the calculations that take advantage of the Assemblage itself as a means of computation using both object-based and contextual information.

Post-processing algorithms can be the result of more or less complex combinations of a few essential operations:

For example, let’s say we want to place an extra wall (using associated XData) in a specific AO kind only when its instances in the Assemblage are horizontal (which we define as having its Reference Plane’s Z-axis parallel to the World’s Z-axis), and at least 2 of its 4 handles are free. Let’s just outline the logic (pseudocode) of this progressive selection:

In practice, for each condition (a question that admits only true or false as answers) a Boolean mask (a pattern of True and False, one value for each object that is parsed) is generated. Boolean masks can be combined (with Boolean operators like and, or, not, xor) to generate more sophisticated selection masks.

When True and False are not enough and multiple options are needed (for example, recognizing and filtering roof, walls and slabs - like in the example file 01-08), an index mask must be generated (in Grasshopper, look for the Sift component and its counterpart Combine).

Another example might be conducting a solar analysis on the resulting Assemblage actual geometries in order to enact differentiation strategies based on the obtained data.

Included operations are: