mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-28 15:53:00 +00:00
Blender BIM IFC
Under heavy development!
Let's use Blender to create BIM models, because why not?
Features
- IFC4 is a first-class citizen. IFC4 has been an ISO standard since 2013, with the latest published in 2018. In contrast, other programs are dragging their feet with IFC2X3, published back in 2005.
- Use Blender 2.8 to do digital modeling! Blender is an amazing open-source software that supports the full 3D content creation pipeline that the CG industry uses. Don't let your designs fall short just because your modeling tool isn't good enough!
- Create complex spatial structures with multiple sites, buildings, facilities, bridges, and building parts. In contrast, some BIM tools (uh, Revit?) don't even allow you to specify buildings.
- Classify any geometry as any IFC type. Just because it is a wall doesn't mean you should be limited to modeling it in a certain way. Easily change from one type to another without damaging your geometry.
- Use collections to create element compositions and decompositions with full control over the classifications of their parts. Most BIM programs don't give this flexibility. Create collection instances to duplicate composite objects.
- Allow BIM objects to instance a shared geometric representations. This allows you to place the same shape in multiple objects without drastically increasing your filesize.
- Provide a custom value to any simple IFC attribute of an IFC product.
- Create product types that regular IFC products can inherit attributes from.
- Define your own property sets with control over exactly how the data in the property sets are stored.
- Applies array modifiers to create instances.
- Basic quantity take-off support for costing.
- Settings to toggle export of quantities or geometric representations. Exporting IFC data without geometric representations is much faster and a fraction of the filesize.
- Maintain
GlobalIdbetween exports, so that you can manipulate the IFC reliably in other software while making changes. - Not all objects need full solid geometry. Create representations as 2D or 3D curves / wireframes for rapid and lightweight BIM development.
- Create map conversions and coordinate reference system definitions to link BIM to GIS.
- Export basic materials with colours.
Demo
It's only just started, so everything can and will change. But if you want to check it out:
- Install Blender.
- Install IfcOpenShell, ensuring that is is compiled to the same Python version and architecture of your Blender installation.
- Launch Blender. Open
untitled.blend. You should see theexport.pyscript already loaded. Change the hardcoded paths from/home/dion/Projects/blender-bim-ifc/to wherever you've cloned this repository. - Ensure
ifcopenshellis in your Blender Python's path, so that it canimport ifcopenshell. You can runsys.path.append('/path/to/your/ifcopenshell/module')in the Blender Python console to do this. - Select all objects that you want to export. Press
Run Script, and you will get the results inoutput.ifc.
A naming convention of IfcClass/IfcName is enforced. If you name your object
IfcWall/Foo, it will turn into an IfcWall with the name attribute set to
Foo. You can override object attributes using Blender's Custom Properties.
Your objects must live in a top level Collection defined as a context class,
usually something like IfcProject/Foo. You can then nest spatial structures
underneath to create a hierarchy.
... this Blender files creates this IFC file ...

