← SkillSafe / IFC Desk

The IFC model you were just sent, read properly — then judged

Drop the .ifc file. A real ISO 10303-21 reader parses it here in your browser — the spatial tree, every property set and quantity set, materials, classification, GlobalIds, units and georeferencing — before anything is sent anywhere. Then pick a lane and the model gets audited, mapped to export tables, measured, or turned into the request that goes back to whoever authored it.

Both examples ship with a saved model run for every lane, so you can see the whole output without signing in and without spending a credit.

nothing loaded yet
Drag the .ifc file in, or Read in your browser. Nothing uploads until you run, and only a derived digest is sent then — never the file.
Load a model to price the run.

What this does, and what it does not

The prescan is a real ISO 10303-21 reader, not a keyword search. Statements are split on semicolons outside quoted strings, arguments on commas outside quotes and parentheses, and the STEP escapes are decoded, so a wall named Wand, tragend is one attribute rather than two and \X2\00DC\X0\berbau comes back as Überbau. That is what lets it answer questions a grep cannot: an element is reported as placed only when an IfcRelContainedInSpatialStructure actually points at it, a property set counts only when an IfcRelDefinesByProperties connects it, and a storey's element count is the number that survives following aggregation down from IfcProject — including the elements that hang off an IfcSpace inside that storey.

Two specific traps are handled because they silently produce wrong answers rather than errors. Only IfcRoot subtypes are checked for a GlobalId, so an IfcMaterial name is never reported as a malformed identifier. And a site written (-0,-7,-32,100000) — seven minutes west of Greenwich — is read as negative, because -0 < 0 is false and the obvious test would place the building on the wrong side of the prime meridian.

Everything the prescan finds is handed to the model as facts it has to reconcile, and the reply is checked against them afterwards — if a flag was not answered, this page says so. It reads; it never modifies your model, never runs a checker, and never uploads the file: what leaves the browser is a derived digest of counts, coverage and a bounded sample of element rows, and the page tells you exactly how much of the file that digest describes. This is a review of the data in the model you pasted, not a clash detection, not a code compliance check, and not a substitute for opening it in a viewer.

Nothing to hand? Load the , an IFC4 issue with two storeys, typed walls, common property sets and a projected CRS, or the , an IFC2X3 export with unplaced elements, duplicate GlobalIds, no quantities and no classification. Both replay a saved run for every lane, for free.