BlenderBIM allows you to author, audit, import, and export OpenBIM data using Blender. OpenBIM includes IFC data, but also BCF, MVDXML, gbXML, and more. The objective is to be capable of delivering the design, engineering, and construction of the built environment purely using free and open-source software, in an industry that is highly proprietary and dominated by a monopoly.
This add-on was previously only publicized on the buildingSMART forums, and I wanted to refrain from posting here while it was still incredibly unstable, but as it is starting to mature, I would like to present it to the BlenderArtists forums, and would really appreciate early adopters and feedback
The add-on is 100% free and open source.
BIM data, of course, is just one part of the toolset and ecosystem required for the built environment. There are other tools that are necessary to be used in combination with BlenderBIM for a full workflow, of course, such as Archipack, sun position, Sverchok, Measure-it, and more. BlenderBIM focuses purely on the BIM data aspect.
In addition to the Blender add-on, BlenderBIM comes with a few utilities, which integrate with the add-on:
- IFC Diff - to create “diffs” of IFC files
- IFC COBie - to extract COBie data from a COBie MVD IFC file into a spreadsheet format for quick auditing
- BIMTester - uses IfcOpenShell to run unit tests on a BIM file, to audit if categories or properties are correct and what you expect.
- (Experimental) IfcDoc - warning: highly experimental utilities to cut sections / plans / RCPs and do sheet layouting with SVG.
BlenderBIM and its utilities are already being tested in large-scale commercial projects in various portions of the design and construction pipeline by a few people around the world in various firms.
The changelog from the buildingSMART forums have been copied below to provide details for those who are interested
- Supports writing IFC4 files first and foremost.
- Lots of clever reuse of representations to create efficient and small IFC files and you have full control over exactly how you optimise the IFC file, including generating products from parametric arrays and object group instances
- Supports the spatial tree including multiple buildings, multiple sites, and so on
- Create, edit, and save aggregations including extremely granular breakdowns
- Create project libraries, not just projects
- Quantity take-off calculations
- Quickly assign IFC4 compliant property sets as well as custom ones
- Modeling abilities are completely separate from BIM data. In contrast to other tools where the type of object governs how you can model it, in Blender it is totally separate and you can instantly convert an object from one type to another, change its aggregation, change its spatial location such as changing floors, etc without any fear or breaking your model
- Export with/without quantities, or with/without representations (hint: an export without geometry retains all of the useful BIM data but is extremely fast to export, and creates a tiny IFC filesize!)
- Improved support of project libraries, so you can have multiple project libraries, and easily relate/unrelate them to projects
- Property sets now detect data types from the property set templates, so you can define your own property set templates, and it will read them that to allow you to enter in data quickly. I am not aware of other vendors using property set templates, so this is exciting news!
- Implement IFC georeferencing through map conversions and target CRS definitions. This makes three vendors that I am aware of that do this properly: ArchiCAD, FreeCAD, and now Blender.
- Allow you to export 2D / 3D wireframe geometry, this allows some very efficient filesize savings where a full solid representation is not required.
- Export basic material colours and rendering styles including transparency.
- Allow export of an externally defined material, such as a .blend file, .vrmat file, or even .mat Radiance file for lighting simulation!
- Units are no longer hardcoded, and now support different types of metric units which can be set through the Blender UI, so you can choose to work in metres, millimetres, etc.
- Allow property sets to be assigned to types, and have object property sets override type property sets.
- Objects and types can now be associated with external documents, such as plans, brochures, specifications, warranties, etc.
- Objects and types can now be classified using classifications such as Uniclass / Omniclass / anything you choose.
- Objects and types can now record qualitative constraints in the form of objectives. This can help record design intentions and health and safety strategies, among other things like code compliance requirements.
- Documents and classifications are related to the project itself.
- Support for multiple representations are created. Previously, only a ‘Body’ representation was created. Now, you can add or remove multiple representations, some of which may be automatically generated from the ‘Body’ representation, and some which you have full custom control over their content. The supported representations are: Body Axis Clearance Footprint Reference Box CoG
- Although Blender has first-class support for manipulating breps, you can now choose to export simple extrusions of any angle (i.e. not necessarily normal to the profile curve) as a SweptSolid, giving the first steps towards supporting IFC roundtripping with programs like Revit which support these types of geometries but not other types.
- You can now create nested element relationships: for hosted objects and nested components.
- Material layer sets can be defined
- Material constituent sets can be defined
- Predefined door attributes can now be defined and assigned to door types
- Predefined window attributes can now be defined and assigned to window types
- It also has a QA module which allow for QA, which is really exciting! Because very often we get IFC models which are very badly misclassified.
- The QA module includes a feature to allow applying a temporary colourscheme to the model based of a property. For now, the interface allows you to colour it by IfcClass, but you could theoretically colour by anything (fire ratings, acoustic ratings, any property …).
- You can bulk approve or reject classifications and keep track of what elements you’ve audited for various properties. Any IFC property auditing will get tracked in plaintext format in Gherkin syntax, so it reads like English
- You can now select objects by GlobalId
- New basic UI for georeferencing data
- Custom psets are now supported - it can also support complex data types and you can load in your own pset templates too!
- New UI for adding in attributes, with drop down selection of possible attributes taken from the spec. Now everyone can easily add attributes!
- New UI for adding / removing property sets (and you can set them in bulk!)
- New quick project setup button to add site / building / storeys.
- Bugfixes for importing, assigning classes, and roundtripping geometry with Revit (Revit seems to expect normalised direction vectors, even though the IFC spec doesn’t require this)
- Now supports assigning surface colours directly to object representations via styled items, as well as assigning surface colours via materials - and as the user, you have the choice which way you want to do it. To my knowledge no other BIM authoring tool supports this feature!
- New BIMTester tool is now packaged and available for Windows 7. It audits your BIM file to customised rules, and generates HTML reports!
- New UI to explicitly assign how swept solids are represented, to make it easy to round trip with Revit.
- New UI to assign externally defined materials - more on how this allows people to create incredibly detailed CG rendering workflows soon!
- IFC import has been somewhat rewritten in preparation to start supporting the ability to import this data too, not just geometry and basic materials and ID. The importer has been merged with the exporter and packaged as a single package to make it easy to install.
- Importing IFCs now have improved mesh reuse and optimisations on shape creation leading to much faster imports! Also some bugfixes thanks to @Hans_Lammerts
- New interface to assign documents to IFC objects
- New interface to assign classification systems (Uniclass / Omniclass) to IFC objects
- IFC importing now also imports object attributes
- Bugfix in BIMTester to run and re-run multiple test suites
- IFC COBie packaged with minor bugfixes
- Experimental gbXML export now supports creating openings, as well as some bugfixes
- New IFC Diff tool (basically git diff for IFC files) - this allows you to take two different IFC files and it will compare them and tell you what changed. It will tell you if geometry has changed, or
- attributes, and also the previous value of the attribute and the new value of the attribute. It writes it out to a json file which can be visualised with BlenderBIM so you can overlay changed models.
- New experimental sectioning tool to create construction documentation. You can cut sections direct from IFC files and create view hatching / line weight stylesheets with CSS which can be mass applied across objects. Objects are smart vectors, so unlike other documentation tools, 2D documentation have SVG classes applied so each object knows the IFC GlobalId, material, and IFC class.
- New interface to create, edit, and save IFC aggregates
- Import now supports curves, so you can import survey point geometry that might come from 12D, for example.
- Export now supports Blender curve objects, not just mesh objects, so you can do profile extrusions along vector curves and export them
- A whole bunch of geometry processing fixes in the underlying IfcOpenShell library by @aothms (which are quite technical but it looks like a great job! )
- New support for importing and exporting imperial units, and you can choose your primary LENGTHUNIT.
- You can create geometry specifically for the PLAN geometric representation context now, and choose the TARGET_VIEW enum to do plans, sections, RCPs …
- New export options to export materials as styled items. This is useful for exporting to Revit (and a few others), which seems to completely ignore IfcMaterial, but instead treats the styled item name as the material name, and ignores any colours assigned via IfcMaterial. Ideally, this should be fixed on their end, but is a workaround.
- New import options to import 2D curve elements
- Parametrically generated geometry from Blender now maintain their GlobalId value, even if you generate less or more of the geometry.
- New import option to ignore site locations, so that non-geolocated IFC2X3 files or incorrectly geolocated IFC4 files (almost every single Revit export that we come across) can import with a sensible project origin.
- New UI and improved support for specifying multiple swept solid extrusions per object, for geometric round-tripping with programs like Revit
- Stephen Leger from Archipack has started contributing code! He has done some neat cleanups and optimisations on the Blender UI.
- IFC BIMTester now has a feature where you can choose to purge tests for elements which have been since deleted since you wrote your test suite.
- You can now specify IfcPerson and IfcOrganization details including postal and telecom addresses for export.
- As usual, bugfixes, most notably for the export location of swept solids and parented Blender objects.