IFC to JSON
Get model metadata as JSON a script can actually use, without an IFC parser at the other end.
Drop your IFC here
or
Large models work best on a desktop browser. Files above roughly 500.0 MB may exceed browser memory.
How it works
- 1Select an IFC file. It is read from your disk by your browser and goes no further.
- 2Choose the IFC classes and storeys to include.
- 3Decide whether to carry property sets or keep it to identity and location.
- 4Check the preview, then download the JSON document.
About IFC to JSON
IFC is a superb exchange format and an awkward one to script against. Reading it properly means an IFC library, an entity graph and a working knowledge of express ids. For most automation, that is a lot of machinery to answer give me every door with its fire rating and level.
This produces a document with a stable shape: model metadata, an export summary describing what was included, and the elements themselves with GlobalId, class, name, object type, storey and their properties. No express ids, no references to resolve, no schema knowledge required.
That is a deliberate limitation. This is not ifcJSON, which mirrors the IFC schema faithfully. If you need schema fidelity, you need that specification and a proper converter. If you need to feed a script, a dashboard or a data pipeline, schema fidelity is usually the thing standing in your way.
On a large model, dropping property sets makes a dramatic difference to file size, and identity plus location is enough for indexing and for cross-referencing GlobalIds against a report.
Questions
- Is my IFC file uploaded anywhere?
- No. The file is read by your own browser using a WebAssembly IFC parser, and the JSON is generated on your machine. The model is never sent to FreeBIMTools, and there is no upload endpoint for it.
- Is this the same as ifcJSON?
- No. ifcJSON is a formal specification that mirrors the IFC schema, including its entity graph and references. This produces an application-level document: identity, location and properties, shaped so a script can use it directly. If you need schema-faithful ifcJSON, this is not that.
- Why not just export everything?
- Because a complete dump of IFC internals is close to useless in practice. Most entities in a file are geometry, placements and relationships, and serialising them produces something enormous that still needs an IFC parser to interpret. Section 4 of the brief for this project is explicit that the output should be clean application-level JSON rather than raw parser structures.
- Flat array or grouped by class?
- Flat is easier to iterate and filter in one pass, which suits most scripts. Grouped is easier when you want one class at a time, for example reading every door without filtering. The content is identical.
- How do I keep the file small on a large model?
- Turn off property sets, and select only the classes you need. Identity and location alone is a small fraction of the size, and is enough for indexing, cross-referencing GlobalIds or building a lookup table.
- Can it read a Revit .rvt file?
- No, and no browser tool honestly can. RVT is a proprietary format that needs Revit itself. Export an IFC from Revit and this tool will convert it.