IfcOpenShell

the open source IFC toolkit and geometry engine

computer-graph

IfcOpenShell helps you build digital platforms and tools for the built environment. Read, write and modify Building Information Models using IFC, a diverse digital language from design to construction and beyond.

What is IfcOpenShell?

Star Fork

IfcOpenShell is an open source (LGPL) software library that helps users and software developers to work with the IFC file format. The IFC file format can be used to describe building and construction data. The format is commonly used for Building Information Modelling.

IfcOpenShell uses Open CASCADE internally to convert the implicit geometry in IFC files into explicit geometry that any software CAD or modelling package can understand.

Why IfcOpenShell?

Reliable

Long history of solid engineering. Trusted by many.

Multi-Language

Develop in C++, Python or use the many stand-alone conversion and analysis tools.

IFC Schemas

Supports IFC releases IFC2x3 TC1, IFC4 Add2 TC1, and IFC4.3

Keep it Simple

Python API with over 250 high-level use cases keeps writing complex IFC super simple

Build it all

Supports (almost) all IFC geometry definitions from boolean operations to complex sweeps.

3D and 2D

Generate compelling architectural 2D drawings from the 3D BIM model with ease.

More tools

Collection of Unix-like tools for clash detection, CSV, diffing, patching and more.

Community

Academy, documentation, tutorials and snippets.

Getting started is easy!

Python and pythonOCC

C++ and Qt

Python high level API

C++ command line

main.py
import ifcopenshell
import ifcopenshell.geom

f = ifcopenshell.open("my_model.ifc")
ifcopenshell.geom.utils.initialize_display()
settings = ifcopenshell.geom.settings(USE_PYTHON_OPENCASCADE=True)
for item in ifcopenshell.geom.iterate(
    settings, f, exclude=["IfcSpace", "IfcOpeningElement"]
):
    ifcopenshell.geom.utils.display_shape(item)
ifcopenshell.geom.utils.main_loop()
3d-building

Frequently Asked Questions

What's with the name? Ifc Opens Hell?
No, you're not reading it correctly. An IfcOpenShell is one of the ways geometry can be described inside an Ifc file. Since the name reflects on the Ifc part, the open source part and the geometry part of the project, we figured we'd pick this as our name.
PS: No, we're not called openIfcShell either
Ok, so how do you make money with this?
We don't. Are you? How about sharing some of the pie or help out with development or testing!

follow the
development
on twitter