Skip to content
Shapemetry

Instance properties

Every instance* method — the vocabulary of an objects[] entry's properties[], a sibling of operations rather than a step inside it. Each one evaluates to a LIST as long as the entry's instances[] and sets element i onto the one placement field it is named for; none of them is legal in a chain, and no chain method is legal here.

MethodDescriptionArgTypeDefaultMeaning
instanceAttributesInstance Attributes — Stamps a free attribute bag on each placement — what a schedule, an IFC export or a plugin groups by. Never read by the engine. One value per placement: element i is written to instances[i]. The list length must equal the object's instance count.attributesobject[][]One record per placement, e.g. [{ type: 'door' }]. One value per placement: element i is written to instances[i]. The list length must equal the object's instance count.
instanceLayerInstance Layer — Puts each placement on a layers[] record by name. One value per placement: element i is written to instances[i]. The list length must equal the object's instance count.layersstring[][]layers[] record names. One value per placement: element i is written to instances[i]. The list length must equal the object's instance count.
instanceMaterialInstance Material — Sets each placement's DEFAULT material — forty doors sharing one shape, one of them oak. An entity's own material wins over it; a Layer record carries no material. Names a materials[] record. One value per placement: element i is written to instances[i]. The list length must equal the object's instance count.materialsstring[][]materials[] record names. One value per placement: element i is written to instances[i]. The list length must equal the object's instance count.
instanceMoveInstance Position — Sets each placement's position — the field a viewport drag writes. SETS, never accumulates: the value IS the placement, not an offset from it. One value per placement: element i is written to instances[i]. The list length must equal the object's instance count.positionspoint[][[0, 0, 0]]Placement origins [x,y,z] mm. One value per placement: element i is written to instances[i]. The list length must equal the object's instance count.
instanceNameInstance Name — Names each placement as the concrete thing it IS in the world — "Door-01" and "Door-02" off one Door object. The object's own label names the DEFINITION and every placement shares it; this is the per-unit tag a schedule or BOM row is keyed by. One value per placement: element i is written to instances[i]. The list length must equal the object's instance count.namesstring[][]One identity per placement, e.g. ['Door-01', 'Door-02']. One value per placement: element i is written to instances[i]. The list length must equal the object's instance count.
instanceRotateInstance Rotation — Sets each placement's rotation — XYZ Euler in RADIANS (degrees exist only in user interfaces). One value per placement: element i is written to instances[i]. The list length must equal the object's instance count.rotationsvector[][[0, 0, 0]]XYZ Euler angles in radians. One value per placement: element i is written to instances[i]. The list length must equal the object's instance count.
instanceScaleInstance Scale — Sets each placement's scale factors. One value per placement: element i is written to instances[i]. The list length must equal the object's instance count.scalesvector[][[1, 1, 1]]Per-axis scale factors [x,y,z]. One value per placement: element i is written to instances[i]. The list length must equal the object's instance count.
instanceVisibleInstance Visible — Shows or hides each placement without touching the content it shares. One value per placement: element i is written to instances[i]. The list length must equal the object's instance count.visiblebinary[][1]1 shows the placement, 0 hides it. One value per placement: element i is written to instances[i]. The list length must equal the object's instance count.
Last updated: 📖 3 min readEdit on GitHub