True when this element has more than one direct
IfcRelContainedInSpatialStructure edge, i.e. containedIn()'s answer
(first-declared wins) was a tie-break rather than the only candidate the
source file declared (#4311). Duplicate edges naming the SAME structure
collapse to one before either method ever sees them (relationship-graph
dedupe), so this only fires on genuinely different candidates.
The type object defining this occurrence.
IfcRelDefinesByType has the type as its relating object, and the parser
stores edges relating -> related, so the type is the source and each
occurrence the target. Reaching the type from an occurrence is therefore
an inverse traversal — matching the element -> type lookups in
on-demand-extractors.ts.
The elements filling this opening (doors, windows).
IfcRelFillsElement is (RelatingOpeningElement, RelatedBuildingElement),
so the opening is the relating object and the filler the related one —
reaching the filler from the opening is a forward traversal, the same
orientation voids() uses to reach the opening from its host.
The occurrences defined by this type — forward, from the type source.
Optionaldirection: "forward" | "inverse"
Get all named string/enum attributes for this entity. Uses the IFC schema to determine attribute names per entity type. Skips GlobalId (shown separately), OwnerHistory, and geometry references.