IFC Spatial Structure Check

Audit the spatial hierarchy — project → site → building → storey containment — and flag any element not assigned to a storey. Run it on its own, or stack it with other checks in the Validation Center.

Check whether an IFC model's elements are actually attached to its spatial structure. Upload the model and find the elements with no containing storey, the breaks in the site → building → storey decomposition, and the geometry that belongs to no element at all.

An element outside the spatial hierarchy is invisible to every workflow that navigates by level — which is most of them. It won't appear in a per-storey schedule, won't be included when someone isolates a floor, won't come through a split-by-level, and won't show up in a level-based clash review. It renders perfectly in the 3D view, which is exactly why nobody notices it's missing from the reports.

When to reach for it: Before sharing or federating a model, and before any floor-based schedule or view. Elements with no storey assignment vanish from per-floor filters and quantity takeoffs — this finds them.

What you get: A findings list of every element that falls outside the spatial hierarchy or has no storey assignment, ready to drill into in the viewer or export to BCF / HTML / CSV.

Example: Flag elements with no storey assignment so they don't drop out of floor-based views and schedules.

What it checks

  • Elements with no containing storey — MEDIUM. The geometry exists and displays; it is simply not reachable by anything that works level by level.
  • A disconnected spatial decomposition — MEDIUM. The site → building → storey chain has a break in it, so part of the hierarchy is unreachable from the project root and browsers and filters can't traverse into it.
  • Orphaned representations — LOW. Geometry that no product references: dead weight that inflates the file and slows every parse, but breaks nothing. Reduce IFC File Size and Deep Purge IFC both clear it.

Why Medium, not error

Nothing here makes the file invalid. An unassigned element is legal IFC, renders correctly and passes a schema check — the failure is entirely in what downstream workflows can see. That is the definition of a defect worth its own check: valid enough to survive every gate, consequential enough to break the report someone issues.

The most common causes are a model authored with elements outside any level's scope, a merge that didn't re-parent members into the combined hierarchy, or an exporter that wrote geometry without its containment relationship. All three produce a model that looks complete in a viewer and comes up short in a schedule.

Fixing it, and what to pair it with

Manage IFC Storeys assigns elements to the right storey, which is the direct fix for the unassigned case. The Repair Center reads the same findings for the structural problems. For orphaned geometry, Reduce IFC File Size or Deep Purge IFC removes it — and on a model with a lot of it, the size reduction is usually substantial.

Pair this with the Level Consistency Check: that one validates the storeys themselves (elevations, duplicates, empty levels) while this one validates whether elements are attached to them. Together they cover the spatial axis completely, and both stack with the rest of the atomic checks in the Validation Center.

How to check an IFC model's spatial structure

  1. Upload your IFC file
  2. Click Run — no configuration needed
  3. Review elements not contained in the project → site → building → storey hierarchy
  4. Export to BCF, HTML, or CSV, or open the findings in the 3D viewer

Under the hood

BIMCamel parses IFC files in the browser using the open-source web-ifc engine and renders models with @thatopen/components + three.js. Heavy operations (clean / optimise / validate / convert) run on disposable server-side workers using the same web-ifc stack plus our own .NET pipeline; results stream back to your browser as soon as they're ready. Uploads sit on our servers only as long as your tier's retention window allows and are never used to train AI.

Frequently asked questions

How do I find IFC elements that aren't assigned to a storey?

Run this check — it lists every element with no containing storey. Those elements render normally in a 3D view but are invisible to per-level schedules, filters, splits and level-based clash reviews, which is why they go unnoticed.

What are orphaned representations?

Geometry that no product references — leftover shape data with no element attached. It's reported at Low severity because it breaks nothing, but it inflates the file and slows every parse. Reduce IFC File Size or Deep Purge IFC clears it.

Why is my element missing from a per-floor report?

Most often because it has no containing storey, so nothing that works level by level can see it. This check finds those elements; Manage IFC Storeys assigns them to the right level.

What breaks a spatial decomposition?

A gap in the site → building → storey chain, so part of the hierarchy is unreachable from the project root. It usually comes from a merge that didn't re-parent members into the combined hierarchy, or an exporter that skipped a containment relationship.

How is this different from the Level Consistency Check?

This one checks whether elements are attached to the spatial structure; the Level Consistency Check validates the storeys themselves — missing elevations, duplicated levels, empty levels. Run both to cover the spatial axis.

What's the maximum IFC file size?

Up to 25 MB as a guest, 100 MB with a free account, 500 MB on Pro, and 1 GB on Team. The caps are on upload size only — every tool itself is available on every tier.

What happens to my file after processing?

Your file is uploaded over HTTPS and processed on our servers. Guest uploads are stream-only — the working files are deleted as soon as your download finishes. Free accounts keep results for 7 days; Pro keeps them 90 days and Team 180 days. Files are never shared with third parties or used to train AI.

Is IFC Spatial Structure Check free?

Yes. IFC Spatial Structure Check is free to use — guests get 3 runs a day with 25 MB uploads, and a free account raises that to 10 runs a day with 100 MB uploads. No trial clock, no watermarks.

Guides from the Learn library

Related tools