IFClite TypeScript API
    Preparing search index...

    Interface SpatialHierarchy

    interface SpatialHierarchy {
        ambiguousStorey?: Set<number>;
        byBuilding: Map<number, number[]>;
        bySite: Map<number, number[]>;
        bySpace: Map<number, number[]>;
        byStorey: Map<number, number[]>;
        elementToContainer?: Map<number, number>;
        elementToStorey: Map<number, number>;
        project: SpatialNode;
        reachableSpatialNodes?: Set<number>;
        storeyElevations: Map<number, number>;
        storeyHeights: Map<number, number>;
        getContainingSpace(elementId: number): number | null;
        getPath(elementId: number): SpatialNode[];
        getStoreyByElevation(z: number): number | null;
        getStoreyElements(storeyId: number): number[];
    }
    Index
    ambiguousStorey?: Set<number>
    byBuilding: Map<number, number[]>
    bySite: Map<number, number[]>
    bySpace: Map<number, number[]>
    byStorey: Map<number, number[]>
    elementToContainer?: Map<number, number>

    elementId -> the nearest spatial container node that ultimately contains it, at ANY level (storey, IfcSpace / IfcSpatialZone, or an infrastructure IfcBridgePart / IfcRoadPart / …). Unlike elementToStorey (storey-only), this also records aggregated descendants of a directly-contained element (e.g. an IfcBeam aggregated into an IfcElementAssembly that is contained in an IfcBridgePart), so the "immediate Container" lookup resolves under non-storey containers too. Optional: legacy / non-parser hierarchies that predate it fall back to elementToStorey.

    elementToStorey: Map<number, number>
    project: SpatialNode
    reachableSpatialNodes?: Set<number>

    Spatial nodes reachable from IfcProject via canonical-parent edges — the set SpatialHierarchyBuilder resolved elementToStorey's tie-break against, read by EntityNode.containedIn() so it cannot decide reachability for itself and answer a different storey (#4314). Absent on legacy / non-parser hierarchies, and absence means "no reachability information", never "nothing is reachable".

    storeyElevations: Map<number, number>
    storeyHeights: Map<number, number>
    • Parameters

      • elementId: number

      Returns number | null

    • Parameters

      • z: number

      Returns number | null

    • Parameters

      • storeyId: number

      Returns number[]