Skip to content

Limitations

The edges, stated plainly. Each is a chosen boundary, not an undiagnosed bug.

Geometry-derived volume is gross, not net

Tier-2 volumes are un-subtracted solids: a wall over-reports by its windows and doors. See quantities and provenance — the tag exists so you can tell tier 1 from tier 2 and treat tier 2 as a bound.

Tessellated geometry is proxy geometry

The meshes in the GLB are simplified representations for visualization. They are not a substitute for a B-rep kernel.

Do not clash-detect with them.

No EXPRESS schema

The semantic layer reads positional attribute indices that are stable across IFC2X3 and IFC4 for core entities. Exotic or schema-specific attributes are not reachable this way.

The step layer below it is honest about the same boundary: IsA and ByType are exact-type only, and there is no subtype expansion or attribute-by-name.

A section plane lying exactly along a solid's edges emits nothing

A triangle only contributes a crossing segment when it has a vertex strictly above and one strictly below. A face that merely touches the plane cannot close a ring.

This is a known gap with a test pinning it. See sections and floor plans.

Storeys with no contained mesh produce no plan

BuildImport omits them from StoreyPlans rather than guessing a cut plane. See storey plans.

Scope of hardening

The well-trodden path is BuildImport on architectural IFC exports, because that is what Blox's import pipeline exercises. Off that path — MEP-heavy models, structural-analysis exports, non-architectural STEP — expect to find edges.

Finding one is a useful bug report. See compatibility for what is and is not promised.