IfcOpenShell
IfcOpenShell is an open-source IFC toolkit and geometry engine that reads and writes Industry Foundation Classes files with a LGPL-licensed C++ core, Python bindings, and command-line utilities such as IfcConvert.
Shipped as documentation release 0.8.5, the project describes itself as an open source (LGPL-3.0-or-later) C++ library for Industry Foundation Classes (IFC) data, with broad geometry coverage for IFC2x3 TC1 and IFC4 Add2 TC1 plus parsing support for IFC4x1, IFC4x2, and IFC4x3 release candidates (IfcOpenShell documentation, accessed 2026-04-19).
Beyond the core parser, the same documentation tree covers IfcOpenShell-Python, IfcConvert, and add-on utilities (for example IfcClash, IfcDiff, IfcPatch, and IDS-oriented validation helpers), so teams can script model checks, conversions, and data fixes instead of relying only on interactive desktop importers.
Installation notes spell out platform targets: Linux (GCC or Clang), macOS with Homebrew-style dependency paths, and Windows builds through Visual Studio or MSYS2 plus MinGW, which signals use in server pipelines as well as developer workstations (IfcOpenShell documentation, accessed 2026-04-19).
IfcConvert turns IFC geometry into exchange formats including OBJ, DAE, GLB, STP, IGS, XML, SVG, HDF5, and TTL/WKT, which helps downstream web viewers, analysis tools, and openBIM workflows reuse the same tessellated or B-rep outputs (IfcOpenShell documentation, accessed 2026-04-19).
Specifications
Pricing
Platforms
Used for
Used by
Tasks
Pros and cons
Pros
- LGPL-3.0-or-later licensing keeps the stack usable inside commercial and in-house tools.
- Deep IFC schema and geometry coverage with a single documented release train (0.8.5 docs).
- Rich Python layer and CLI utilities reduce the need to write raw STEP parsing code.
Cons
- Native builds pull in large dependencies such as OpenCascade and optional Collada or HDF5 stacks.
- Full C++ compilation is resource-heavy; teams that only need Python wheels still must track platform-specific binaries.
- Advanced schema corners may require compile-time or runtime schema extensions described only in developer docs.
Key features
IFC schemas: Geometry support for IFC2x3 TC1 and IFC4 Add2 TC1; parsing coverage extends to IFC4x1, IFC4x2, and IFC4x3 release candidates per the 0.8.5 docs.
C++ core with Python: SWIG-generated Python bindings and a documented C++ API for embedding IFC read and write paths in custom software.
IfcConvert: Command-line conversion from .ifc into OBJ, DAE, GLB, STP, IGS, XML, SVG, H5, TTL/WKT, and other listed targets.
Utilities: Documented helpers such as IfcClash, IfcDiff, IfcPatch, BCF modules, and IfcTester for IDS-style checks alongside the core library.
Build flexibility: CMake-based builds on Linux, macOS, and Windows with OpenCascade-driven geometry and optional Collada or HDF5 caching hooks.
Pricing
LGPL-3.0-or-later source
Contact sales
No vendor list price; library is LGPL-3.0-or-later per IfcOpenShell documentation (accessed 2026-04-19). Confirm license text in the repository before redistribution.
Frequently asked questions
How much does IfcOpenShell cost for production pipelines?
The project documentation states the C++ library is open source under LGPL-3.0-or-later, so there is no per-seat license fee from the project itself (IfcOpenShell documentation, accessed 2026-04-19). Budget instead for engineering time, build servers, and any support contracts your organization chooses separately.
Does IfcOpenShell run on Windows and macOS or only Linux?
Official installation guides cover compiling on Linux, macOS with Clang and Homebrew paths, and Windows with Visual Studio 2008 through 2022 or MSYS2 plus MinGW (IfcOpenShell documentation, accessed 2026-04-19). That range covers most CI hosts and engineer laptops.
Which IFC releases and file encodings does IfcOpenShell support?
The 0.8.5 documentation lists geometry support for IFC2x3 TC1 and IFC4 Add2 TC1, while parsing extends to IFC4x1, IFC4x2, and IFC4x3 release candidates (IfcOpenShell documentation, accessed 2026-04-19). IfcConvert reads standard .ifc geometry and can emit many non-IFC formats such as OBJ, GLB, and STP from the same input.
Can IfcOpenShell help after we export IFC from Autodesk Revit?
Revit-specific repair recipes appear in the IfcPatch documentation (for example fixes aimed at Revit-generated tessellation issues), which shows the toolkit is used to clean or normalize IFC exported from common authoring tools (IfcOpenShell documentation, accessed 2026-04-19). Pair those recipes with IfcConvert when you need meshes instead of native Revit geometry.
What is IfcConvert used for in a BIM workflow?
IfcConvert is documented as a command-line application that turns IFC geometry into OBJ, DAE, GLB, STP, IGS, XML, SVG, HDF5, TTL/WKT, and other listed outputs (IfcOpenShell documentation, accessed 2026-04-19). Teams typically invoke it in batch jobs to feed web viewers, CAE preprocessors, or diff tools.
Who maintains IfcOpenShell and how mature is the ecosystem?
The public site positions IfcOpenShell as the open source IFC toolkit and geometry engine with forums, downloads, and documentation mirrored at docs.ifcopenshell.org (IfcOpenShell project site, accessed 2026-04-19). The documentation version 0.8.5 indicates an active release line with extensive API reference material.
