BIM Open Schema is an open formal specification of BIM data, including 3D geometry, that is optimized and designed for large-scale data and modern tools and pipelines that uses Parquet to store data in a compact and widely supported binary format.
👉 Get the Revit 2025 exporter here!
The official release comes with an exporter for Revit 2025 and Ara 3D Studio for viewing and exploring the contents of BIM Open Schema files.
This repository provides:
- Official specification - the C# types that define the tables, columns, enums, and manifest. The project has no dependencies. See source-code.md.
- Sample test files - generated from the Autodesk sample files.
- BIM Open Schema Exporter - an exporter for Revit 2025 bundled with Ara 3D Studio.
The C# reference implementation (reading, writing, querying, converting from IFC and Revit) lives in BIM Open Toolkit.
Bim.Open.Schema.+.Ara.3D.Viewer.mp4
BIM Open Schema comes with an ecosystem of open-source tools in other repositories for
- Reading and querying BIM Open Schema (.BOS) files and loading them into DuckDB with BIM Open Toolkit
- Converting IFC files to BOS and analysing them with BIM Open Toolkit
- Exporting BOS files from Revit
- Displaying BOS data in WPF Datagrid controls along with exporting to GLTF and Excel files
- Loading, Viewing, and Querying BOS files in the browser
- Querying BOS data in the browser via DuckDB
Parquet is a very compact, efficient, and widely supported binary format for tabular data.
It is self-describing and validating. Unlike with CSV or JSON, a Parquet importer can determine exactly how many rows and columns of data
there are and what data types are contained within.
BIM Open Schema files have the extension .bos and are zip archives containing several .parquet files.
You can rename the extension to a .zip and open the archive with Windows explorer and other common tools.
- analytics - pandas, Power BI
- databases - DuckDB, BIM Lakehouse, BIM Open Schema Reader
- serialization - Parquet
- interactive visualization - Ara 3D Studio, Ara 3D WebGL.
A schema describes the meaning, relationships, and structure of data. The BIM Open Schema project is agnostic of the specific serialization format (e.g. you could use JSON or FlatBuffer), but it is optimized for structured self-describing columnar binary data formats, particularly Parquet.
The schema is optimized for serialization to/from columnar and tabular data formats, such as those used by relational databases, but it is not tied to any one particular serialization format, and can be easily converted to many different formats for fast inspection in your tool of choice.
This project comes with C# code which acts as the official specification, but the schema is platform independent and language agnostic.
We welcome code contributions in any language.
The contents of the .bos archive are the following parquet files:
- Non Geometry Data
- Entities.parquet
- Descriptors.parquet
- Documents.parquet
- Points.parquet
- Strings.parquet
- Numbers.parquet
- Parameters.parquet
- Geometry Data
- Elements.parquet
- Transforms.parquet
- VertexBuffer.parquet
- IndexBuffer.parquet
- Materials.parquet
- Meshes.parquet
The specification itself is the C# project under src. See source-code.md
for what each file defines, how to build it, and how to change a table.
The C# reference implementation, with its tests, lives in BIM Open Toolkit.
Supporting and contributing to this project is as simple as providing feedback.
Some of the people who have contributed are (in alphabetical order):
- Ahmad Saleem Z - AnkerDB
- Christopher Diggins - Ara 3D
- Daryl Irvine - DG Jones and Partners
- Karim Daw - Gensler
- Pablo Derendinger - e-verse
- Tom van Diggelen - BIMcollab
- Tomo Sugeta - Cundall
- Valentin Noves - e-verse
- Yskert Schindel - Vyssuals
We have an active Discord server and discussion forum that you can join if you are interested. Just send us an email request
If you have ideas for projects that we, or others could do please share them! We have some additional code on the side that we can provide to help accelerate your work (e.g., if you want to start a project in C++).
- Blender to BIM Open Schema
- Rhino to BIM Open Schema
If you are interesting in professional help in leveraging the format and learning what you can do with it, reach out to us at info@ara3d.com.