In the majority of construction sequences, an element must be fully completed before the next one can begin. However, there are often cases where this is not true.
Example case 1: Consider a concrete column that rests on top of a slab. We might wish to put in rebar for the column immediately after doing so for the slab. In other words, work on the slab should be interrupted midway (the concrete has not yet been poured, etc.) in order to start work on the column above.
Example case 2: Suppose a building is composed of floors that are each split into two different slabs. Work can proceed concurrently on both slabs, but the slabs must be poured together at the same time. We cannot model this with a single, standard slab recipe because we need some sort of special linkage between the pour operations of both slabs.
External references are a feature that will allow us to encode the aforementioned scenarios into ALICE. In brief, they allow us to create special linkage between two recipes that have the effect of interrupting one midway (or allowing for the possibility) in order to proceed with the second.
NOTE: External references replace the tail-to-head links with ones that connect operations in the middle of the recipes. This allows the flow of work to jump from one recipe to another before the first has completed.
Because each recipe is replicated across multiple elements, there is ambiguity over how the external reference will itself be replicated. For example, consider a building with 10 floors and 20 columns per floor. Assume the floor and column recipes are linked. Would you expect each floor to be linked to all 200 columns? Or just the columns that are sitting on top of the floor?
This ambiguity is resolved through supports. An external relation will only be created between elements that have the respective recipes assigned and have a support relation between them. Thus, in the example above: If the floors support the columns above, external relations would only be applied between each floor and the columns that are supported by it -- not all 200 columns.
A printable PDF of the steps to create a recipe is located here: Link Tasks