Per-storey floor levels (ascending) derived from mesh geometry, for
current-floor projection scoping (issue #979 follow-up).
Each storey's level is the MINIMUM world-Y over its member meshes, read from
positions in the RTC-shifted render frame — the SAME frame as the section
cut position. This deliberately avoids IfcBuildingStorey.Elevation, which
omits the building/site placement Z and is wrong for georeferenced models.
elementToStorey keys are LOCAL express ids, so callers must restrict this to
single-model use (mesh expressId then equals the local id). Storeys whose
members produced no mesh contribute no level and are dropped.
Known limitations (bounded; documented intentionally)
The min-Y is the underside of the storey's lowest member, typically the
floor SLAB which conventionally extrudes a little BELOW the level datum — so
the returned level sits ~one slab thickness below the architectural floor.
The effect is a small (~slab-thickness) over-projection at storey
boundaries, not a whole-floor bleed.
An element assigned to an upper storey but geometrically descending into a
lower one (a stair flight, a double-height shaft) pulls that storey's level
down, which can collapse two levels together; the scoping then degrades
toward the unscoped full-extent behavior for that cut — never worse than the
pre-#979-follow-up baseline. A placement-Z / percentile derivation is a
possible future hardening.
Per-storey floor levels (ascending) derived from mesh geometry, for current-floor projection scoping (issue #979 follow-up).
Each storey's level is the MINIMUM world-Y over its member meshes, read from
positionsin the RTC-shifted render frame — the SAME frame as the section cut position. This deliberately avoidsIfcBuildingStorey.Elevation, which omits the building/site placement Z and is wrong for georeferenced models.elementToStoreykeys are LOCAL express ids, so callers must restrict this to single-model use (meshexpressIdthen equals the local id). Storeys whose members produced no mesh contribute no level and are dropped.Known limitations (bounded; documented intentionally)