BIM Open Data

BIM Open Schema is the specification; BIM Open Data is its .NET implementation: reading and writing BOS files, IFC loading, meshing, byte-exact property-set editing, conversion from IFC to BOS and to DuckDB, the IFC MCP server, and the BOS Browser.

Try it in your browser. The BOS explorer opens one of four openly licensed sample buildings (Schependomlaan, DigitalHub architecture and heating, and the Duplex Apartment), lists its tables with row counts and columns, shows their rows, and draws the model in 3D. You can open your own .bos file too; it is read on your device and never uploaded.

Open the BOS explorer

Status on 2026-10-03: the code is here. It moved from bim-open-toolkit with its history in phase 4 of the repository split plan: src/data, tests/data, src/mcp/BimOpenMcp.Ifc, apps/, and tools/. node deps.mjs, then dotnet build BimOpenData.sln, builds it on its own.

What BOS is

BIM Open Schema (BOS) stores a building model as plain tables. Entities, parameters, relations, and geometry are each a list; each list is one Parquet file, and a .bos file is those Parquet files in a zip. Parameters are stored entity-attribute-value, one table per primitive type. Relations use a closed vocabulary (PartOf, ContainedIn, HostedBy, BoundedBy) that covers both the Revit API and IFC, the open exchange format for building models. The tables load straight into DuckDB, an in-process analytical database.

What will arrive

21 projects from the toolkit's src/data, plus the MCP server, the Browser, the type generator, and 11 test projects.

ProjectRole
Ara3D.BimOpenSchema.IOReading and writing .bos archives
Ara3D.BimOpenSchema.ObjectModelBuilders, accessors, and a navigable object graph over the specification's types
Ara3D.BimOpenSchema.IO.Export, .IO.BfastExcel, CSV, Markdown, HTML, SQLite, and BFAST output
Ara3D.BimOpenSchema.DuckDbLoading BOS into DuckDB, with views and table helpers
Ara3D.BimOpenSchema.Harmonizer, .FederationCanonical names and SI units across tools; several models unioned into one
Ara3D.BimOpenSchema.DataModel, .BuildingModel and relatedA relational snapshot model and a typed building model with a DuckDB projection
Ara3D.IfcLoader, Ara3D.IfcTypesSTEP parsing with geometry from web-ifc; generated IFC entity types
Ara3D.Ifc.MesherTessellation in pure C#
Ara3D.Ifc.EditingProperty-set patching that leaves every unedited byte of the IFC file identical
Ara3D.Ifc.Bos, Ara3D.Ifc.DuckDbIFC to BOS; IFC to a queryable DuckDB database in one call
Ara3D.IdsbuildingSMART IDS 1.0 checks over BOS tables, as a verdict table
BimOpenMcp.IfcAn MCP server with 29 tools so an AI agent can query an IFC file: properties, quantities, spatial structure, SQL, geometry
Ara3D.BimOpenSchema.BrowserA WPF data-grid viewer for .bos files with glTF and Excel export

What it does not do

It does not author geometry; IFC editing is limited to property sets. It has no live connection to Revit or any other authoring tool. It knows nothing about graphs: BIM Open Flow builds on it, never the other way round.

Sample buildings

samples/public holds each sample as a .bos file and a .duckdb database, with the counts of storeys, spaces, doors, windows, walls, and heating parts measured in each. Schependomlaan dataset, (C) original owners, licensed CC BY 4.0. DigitalHub, (c) 2020 RWTH Aachen University, E3D Institute of Energy Efficiency and Sustainable Building, MIT licensed. BSI (2020) Duplex Apartment Test Files, buildingSMART International, licensed CC BY 4.0. Each was converted to BIM Open Schema tables by Ara 3D; sources, commits, and full notices are in NOTICE.md.