mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-09 17:31:45 +00:00
b1dda0a679d3f58f20a485f515e67c38dde9628f
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 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.
- 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.
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 ...
Description
Languages
C++
57.4%
Python
36.2%
C
3.9%
Gherkin
0.7%
JavaScript
0.3%
Other
1.3%

