Presenting Blender as a new IFC authoring tool

BlenderBIM Add-on v0.0.231104 has been released with 405 new features and fixes. It’s our built environment, help support the BlenderBIM Add-on: 100% free and open source software that lets you author and document BIM data fully to ISO standards. It’s built by the AEC community, for the AEC community. Get it today: https://blenderbim.org/

Unfortunately in this release the total number of bugs have been climbing and not everything we wished to achieve got done. Despite this, we hope you enjoy the hard work done by the entire community! A huge thank you to all developers, testers, users, and financial contributors: you are making this happen! You are changing the industry!

OK. Deep breath. Get ready. Go!

Credits to Carlos Villagrasa for the release image :slight_smile:

Blender 4.0 support

Although not yet released, in the next week or so Blender 4.0 will be released. A number of compatibility issues have been addressed. Note that there is still an issue upstream in Blender where copying node trees from one shader to another is no longer working. This has been reported to Blender but until it’s resolved the feature for external material style shaders will not work. If this is important, you can just use Blender 3.6.

Other than that, feel free to upgrade to Blender 4.0!

Progress on MEP modeling

Added support for creating MEP bends for circular and rectangular profiles either using “Add Fitting” in one of BIM Tools or using “Add Bend” explicitly. It’s still getting polished but it already should work in the most cases, including support for different bend directions and radius.

MEP tools are now getting more accessible - they are available in the BIM Tool menu. We’ve also added a new one that connects elements by their closest available ports - for some cases now there is no need to show ports and connect them explicitly.

There is also now basic support for MEP elements decorations. It shows line decorations for currently selected elements or currently active system. You can also see the flow direction visually and adjust it without jumping to ports, just by having two elements selected.

IfcFM is now ready for use!

A common task on larger projects is to deliver asset registers and digital operations and maintenance manuals using standards like COBie. Previously, we offered a tool known as IfcCOBie with features to do this, but it was unfortunately an incomplete implementation and being one of the earliest offerings, had many bugs and mistakes which we’ve now addressed. You can access IfcFM via command line interface, library, or in the Facility Management tab in Blender.

IfcFM is now completely rewritten to offer a generic way to create tabular asset data with strict adherence to standards like COBie 2.4, COBie 3.0, AOH-BSEM, and novel vanilla pure IFC approach. To read more, check out the documentation. In collaboration with Emma Hooper from BuildDigital, one of the leading experts in COBie delivery, we have been carefully addressing many of the ambiguous or incomplete nooks and crannies in these FM specifications to ensure that we offer the most valid, strict compliance for users.

Like IfcCSV, IfcFM supports ODS, XLSX, CSV, and Pandas Dataframes. There is a generic code structure such that you can also easily write your own conversion if required for your project. It also supports federating multiple spreadsheets (such as from multi-discipline models) into a single spreadsheet, as well as bulk processing multiple models.

This now means that IfcCOBie is (finally) deprecated and older libraries like xlsxwriter and deprecated as well in favour of newer ones like OpenPyxl.

Continued progress on UI improvements

The previous release had a huge UI redesign, but not everything made it in time. We managed to make a bit more progress this cycle.

The active drawing settings UI have now been migrated from the camera tab into the Drawings and Documents tab. The settings to change drawing size have also been redesigned and consolidated into a single area to easily edit drawing width and height, as well as raster DPIs (rather than messing around with absolute pixel values). The drawing system is now more forgiving of manual deletion of properties and is more flexible with respect to manual editing of layouts and sheets in external software.

There is also a new placement panel in the Geometry and Materials tab. This consolidates coordinate, rotation, and derived coordinate data which was previously spread around. The material and profiles panel are also moved into the Geometry and Materials tab.

The duplicate systems panel has also been merged. There is also a new zones panel separate from distribution systems.

Actors, users, people, and organizations are now grouped into a new Stakeholders section.

Work in progress redesign of material and style management

The prior material and style system was mixed into various locations in the Blender interface - blurring the lines between the rules and capabilities of Blender materials and IFC materials / styles. This led to a huge amount of confusion and both real and UX bugs.

A start has been made on a completely new material and style system with some basic support for adding editing shading and rendering styles. You can also specify names when adding materials, and associate / unassociate styles to materials. When this is complete, it will completely override the vanilla Blender materials tab and offer a much more truthful representation of material and style assignments.

There is also a new representation items panel, which does not do much currently apart from indicate geometry types, but will later be used to assign styles, support shape aspects, material constituent links to shape aspects, and presentation layer assignments.

It’s not yet recommended to use these new panels for authoring.

New bSDD integration for classifications

The buildingSMART data dictionary is a cloud service that acts as a centralised cloud database of classifications, materials, and properties. There is now an initial implementation which integrates with the bSDD, so instead of loading from offline classification libraries, you can now select a bSDD service and choose from an online classification.

Classification in the bSDD can also include relevant properties that need to be set whilst assigning the classification reference. This is also implemented. This work was presented in the buildingSMART meetup in Norway.

In addition, the popular Uniclass classification library has now been updated to the latest July 2023 edition with a generic script available to generate any required Uniclass version. It should be noted that the Uniclass classification system available on the bSDD is currently outdated.

File association on Windows

Just like on Linux, double clicking files in Windows Explorer will now directly launch the BlenderBIM Add-on as a viewer. To enable this, open the add-on preferences window and follow the instructions.

More IfcPatch recipes!

IfcPatch got a number of new recipes and improvements to existing recipes. The ResetAbsolutePlacements recipe can now only affect placementes, geometry, or both. There is now a recipe to fix a Revit bug where they hardcode the Uniformat classification system. Another recipe fixes another Revit bug where classifications are placed on the occurrence instead of types. There’s also a new PurgeData recipe to purge IFC metadata and relationships.

Behind the scenes

A lot of work has been happening on the underlying IfcOpenShell library, with compiler warnings being addressed, and cmake build clean ups. Similarly the PyPI distribution has improved metadata to prevent installation on unsupported platforms or Python versions. As part of the new Cesium ecosystem grant, IfcConvert now has support for Earth-Centered Earth-Fixed glTF. There is also now support for IFC4X3 ADD2, which is one more step towards the final ISO version of IFC4X3.

More documentation

As with all releases, documentation has been increasingly polished, with a new introduction section teaching the basics about IFC and BIM, updates to IfcCSV and the selector syntax page. There are also new sections for IfcFM (and IfcCOBie removed), the BIMServer Plugin, BIMTester, bSDD library, IfcMax, and BCF. API documention is now written for the shape calculation utility module and the placement module. All relevant images in the beginners tutorial have also been recreated with the new interface.

So much more

It’s hard to capture absolutely everything which has changed, but here are a few more stragglers.

  • Array handling was improved and it got a bit more natural. Array duplication automatically produces a new array, arrays also can be duplicated partially (only selected layers). You can also remove layers of array just by selecting and removing it’s elements. All array constraints are now loaded when you open .ifc in BlenderBIM automatically.
  • Critical bug fixed where some drawing element filters for individual GlobalIds didn’t have any effect.
  • We’ve defined a way to mark in BlenderBIM manual openings - you can pin down booleans in Booleans section so they won’t get lost if profile/material based object gets regenerated.
  • Lots of representation issues were fixed that you may or may not have noticed before. There is now a prioritised list of geometric contexts that determines load order.
  • Similarly native element loading has been completely rewritten which now handles mapped items a lot more robustly.
  • It’s now possible to add openings to non-profile based meshes, with new support for IfcVoidingFeature based openings
  • Fixed the ability to duplicate grid axes.
  • The facet selector is now more stable when you use specific characters, and is now used in the advanced mode model loading.
  • New function improvements including better imperial formatting, fixed number rounding function, and new substring function.
  • Text annotations now use formatting functions instead of arbitrary code execution.
  • New annotations for dynamic XYZ or easting, northing, and elevation values.
  • A number of fixes for casting to tessellation, splitting elements by plane, and resizing to storey, which are all common cleanup operations when preparing for 4D animations.
  • Fixed critial bug with inability to create slabs in IFC2X3.
  • Various UX improvements to the spatial manager.
  • Fix inability to add inherited psets, random truncation of property set template names, and live-editing of property set templates to prevent the need to explicitly save.
  • IfcDiff can now visualise across linked IFCs and will forgive invalid geometry.
  • Various fixes to Microsoft Project XML calendar imports.
  • A number of date calculation bugs have been fixed when cascading schedules and calculating critical paths.
  • Resource costs are now inherited from parents, and an improved template for resource CSV imports.
  • IfcTester reporting is now more detailed, describing data type errors and percentage passes per requirement. A crash was fixed in the IfcTester UI.
  • IfcTester property audits are now twice as fast. Great news for huge model audits!
  • Native meshes are now automatically enabled when dense meshes are enabled for faster loading out of the box.
  • New debug mode to override display type.
  • New IFC tool to separate meshes into multiple objects (to replace the built-in Blender separate operator)
  • Fixed bug where flipping walls connected to roofs and slabs would fail.
  • Fixed crash when opening SVG drawings on some folders on Windows.
  • IFC2X3 fallback georeferencing psets are now available out of the box. The geolocation module and utilities now also support the IFC2X3 fallback method.
  • You can now flip beam origins.
  • Selecting similar predefined types now takes inheritance into account.
  • The shape utility now supports calculating projected surface area, with fixes for overlapping projections.
  • You can now select objects coloured by a colourscheme.
  • Fix multiple bugs and regressions related to IfcMaterialLists.
  • Improved UI for covering tool and new feature to generate floor coverings and regenerate it.
  • Fixed bug where native meshes had normal smoothing.
  • The get pset utility function now has a verbose mode to get IDs and classes for complex processing.
  • New preference to customise the app used to open sheet layouts.
  • Edited mapped profiles now works.
  • Fix critical bug where editing shared properties didn’t independently impact that single pset.
  • IfcCSV now supports list concatenation.

All changes

All changes can view the directly via the Git logs here:

Credits for this release (in order of commits via git shortlog -sn --since "2023-09-02"):

   150  Dion Moult
   146  Andrej730
    28  Sigma Dimensions (Yass)
    18  Massimo Fabbro
    16  Ryan Schultz
    15  Thomas Krijnen
     7  Dirk Olbrich
     4  Vukas Pajic
     3  Bruno Perdigão
     3  Bruno Postle
     3  Carlos Dias
     3  Gorgious56
     2  c4rlosdias
     1  A. R. S
     1  Andrej
     1  Claudio Benghi
     1  Hilko
     1  ceegartner
     1  isma3lMB
     1  taylor

Donors since the last release:

BIMvoice
Sogelink
OSArch - A GIT/IFC Interface in BlenderBIM.
Cyril Waechter BIM Insight
PlaniBIM SA
Randolph
Dr. Richard Hollmann
Daniel
Dion Moult
Brendon Reid
StefStap
Incognito
Guest
Haritonov Alexander
Jonny Knopp
carlopav
Jim
Matthew Fuller
Sven Amiet
Dumitru Minciu
Frode Lund Tharaldsen
Julio
Losepacific
Louis Trümpler
Arun
Bedrossian Ádám
Henning Munzel
Omar Zerhouni
bimage
ppaawweeuu
Lars
Abdelmalek
Benjamin Smith
Duarte Farrajota Ramos
Johnson Bankole
Konrad
Kristoffer Hunnestad Andersen
Leon ten Brinke
Marin Ljuban
Udo
bitenergie
Alexander Kleemann
Benny
Chidi
Cordero Architecture
Miguel
Stephen Cremin
Tim McGinley
cvillagrasa
Ari Pikkarainen
Bruno Perdigão
Carlos Dias
Christoph Mellüh
Dirk Olbrich
Fabian Emanuel Kitzberger
Madars Siksna
Marcin Boguslawski
Rafel Bayarre
Royner
bclmnt
casiovadal
Aleksandra
Antoine
Felipe Raimann
Michael Ehemann
Valter Robson
bimo
daniele rossi
青龙弦
Marco Andrade