BlenderBIM - OpenBIM authoring with Blender

I’ll try to put this to SketchUp developer’s attention.
See what happens

Have you seen this online viewer to present your BIM models? You can export your model directly from blender to a glb with just one click.

I also made an add-on to bake lightmaps and ao as well as speed up the export process, you can download it here for free:

Does anybody know how to recreate this effect in Unity?
Is there a node that can replace the Geometry>Backgfacing in order to achieve the same effect?

It would improve a lot the cross section effect of the open source 3D atlas of Anatomy:
https://drive.google.com/file/d/1D_xCVs2uIOhpevKcmuFUZPknpm1bkRHE/view

BlenderBIM Add-on v0.0.221105 has been released with 775 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/

It has been 6 months since the last release, so fasten your seatbelts.

Support for Conda, PyPI, Docker, Apple M1, and Chocolatey

IfcOpenShell is now available in significantly more distribution channels. By far the most popular requests were the ability to install on Conda, PyPI, and support Apple M1 devices. Installing IfcOpenShell for Python can now be as simple as pip install ifcopenshell. For Windows users, daily builds are available on the Chocolatey package manager. Apple M1 support was generously provided by donations from our userbase, and we currently have funding to provide just over a year of regular Apple M1 builds. If you want to support us please help donate here.

2022-11-05-205504_629x330_scrot

Load large federated models

You can now set up models to load 1GB of federated IFC data in as little as 10 seconds, and walk around your models in real time. This makes the BlenderBIM Add-on the fastest IFC authoring platform available in the industry.

This is now possible thanks to a series of upgrades in the partial IFC loading process: you can now merge objects from large models to keep object counts low. A new coordination mode disables loading types. Openings are now not loaded for speed. You can now set limits and offsets when loading large object counts. Model loading can also be done headlessly so you can automate it using a server.

New wall, slab, profile, and stair editing tools

Modeling tools received a significant upgrade. Parametric IFC walls now support intelligent connections at start, end, and along the wall axis path. This means that moving walls that are attached to other walls will allow walls to auto extend and trim to the new locations. It’s now also easy to edit the wall length, height, and slope angle using parameters. Walls can also extend up to simple flat roofs. Walls now support all layer usage parameters, including axis offset and direction.

2022-10-01-233735_680x352_scrot

The profile manager now lets you create end edit arbitrary custom profiles. These profiles can be reused across multiple elements, like columns, beams, and structural members. Profiled elements now support 3D butt and mitre joints, especially useful for steel detailing.

2022-11-05-205707_426x367_scrot

Slab profiles can now be edit parametrically with a new profile editor. This shows a 2D profile in space which supports snapping to other elements in the 3D scene. The 2D profile also supports true parametric arcs, inner profiles, and true parametric circles where you can set the radius. There is also a prototype integration with CAD Sketcher to allow for constraint based profile editing.

A new opening system lets you hide and show openings, or create custom profiled openings for door and windows. Doors, windows, and walls can be flipped independently, and host and child elements can either be moved independently or together using the new decomposition selection tool.

A new array feature lets you create N-dimensional arrayed copies of parent objects. This is the start for creating commonly repeated objects such as beams, structural bays, or column grids.

2022-11-05-210111_409x455_scrot

A new monolithic stair tool is available to replace the previous “dumb stair” tool. This generates a standard concrete stair and is the start of a series of new parametric object generators.

Altogether the new parametric modeling tools are also significantly more stable, handling many permutations of smart connections, changing types, profile parameters, and layer thicknesses.

Thumbnail support and type manager

The BIM Authoring Tool comes with a much improved UI: parameters can now be easily access either through buttons, sliders, or via hotkeys for fast editing. A thumbnail displays the active asset, and supports showing profile and wall layer cross sections to quickly identify different layer-based and profile-based types.

2022-11-05-203839_310x440_scrot

You can also launch a new type manager which will show all your IFC library assets. You can easily add new types based on templates, duplicate existing types, or delete types.

2022-11-05-203823_690x327_scrot

European and Australian standard steel profiles

Most proprietary software come with an asset library. There has been a renewed interest in the BOLTS project, a technical database of structural standards that is shared between OpenSCAD, FreeCAD, and now has new support for IFC-based software. To begin with, there is WIP support for hundreds of standard European and Australian standard steel profiles, and data is being collected for a number of architectural standard or typical nominal dimensions.

We believe this will be the largest and most comprehensive open source technical database available in the industry, representing a huge leap forward in standardisation and automation for costing, life cycle analysis, structural analysis, feasibility studies, AI datasets, and more.

Faster faster faster

Almost every release sees speed optimisations and this release is no different. Users on Blender 3.3 will see model loading to be 50% faster, with the improvements being greater for larger models.

2022-08-18-215219_430x452_scrot

There is also now a native mesh processing option, if models include heavy mesh data with large polycounts, this allows those meshes to be loaded very quickly.

IfcDiff is also now twice as fast in comparing models. More configuration options in IfcDiff also let you choose whether or not geometry or simple attributes are compared. Results are also more accurate.

For those watching the progress in the console during model loading, progress reporting is now more accurate and detailed so you can tell what’s happening.

Tooltips and online documentation

Native IFC authoring requires knowledge of the classifications, data types and relationships that IFC offers. A perhaps hidden new feature but with great significance is the ability to hover over almost any IFC related name and see a tooltip of the ISO-standardised definition. You can also right click to access the IFC documentation website. Documentation is provided for both IFC2X3 and IFC4. This makes the BlenderBIM Add-on the perfect tool for academia and those new to learning IFC.

2022-11-05-210249_1920x1080_scrot

Documentation is provided for IFC classes, predefined types, all attributes, property sets, quantity sets, properties, quantities, and user-defined custom property templates too.

New website design

The BlenderBIM Add-on website has now been redesigned to better reflect the full scope of capabilities, as well as have a new branding that connects with the upstream IfcOpenShell umbrella website (which will soon also have a redesign released).

2022-11-05-210701_478x354_scrot

The documentation also has a number of new guides written, including guides for dealing with large models, and handling georeferencing.

IDS support

Continuing on from the early prototypes of IDS support, there is now a new IfcTester library, CLI application and web app that allows you to view, edit, and audit models using the brand new IDS standard. This standard is fully validated against the IDS specification. Reports can be generated as CLI output, JSON, or HTML. You can also run audits using the BlenderBIM Add-on.

The IfcTester application is being increasingly battle tested in large commercial projects to make sure that it is appropriate for use.

New library of quantity take-off functions

There are now a series of 20 new quantity take of utility functions for use for developers in writing custom quantity take off rules. These are slowly being mapped to the buildingSMART standardised quantity take-off definitions to replace the older quantity system which was very basic.

A new release management strategy

As the number of contributors to IfcOpenShell and the BlenderBIM Add-on grows, we’ve now started a Kanban project based approach to collaborating between developers and communicating to users what’s on the roadmap. A “development theme” will be chosen to help decide what to focus on for each release, and instead of releasing “whenever Moult feels like it” we now have a 2-month release cycle.

Users and developers can now plan for the “next release” and the “release after next”. Tasks that are not complete will shift to the next release. This was tested for 2 weeks leading up to this release, where 4 developers completed 24 out of 37 tasks. Thanks to your donations, we have now enough funding to hire part time development, which has lead to a number of features in this latest release. With your continued funding, we can accelerate development even further!

So much more

There is now support for loading an updated IFC model incrementally. A critical bug was fixed for upgrading schemas. IFC2X3 document reference support added. Diffuse colours specified as ratios are now supported. The IFC validator has had significant improvements with in progress support for “where rules”, and a number of validation fixes were made in BlenderBIM Add-on generated content. You can now add booleans to geometry, including support for half space solid clipping. Fixed fatal crashes in CAD tool for filleting and extending, and a new 2D CAD offset tool has been implemented which gives more reliable results compared to the 3D offset tool. A new pach is available to fix bugs in Autodesk Revit when converting TINS from 12D to Revit. Rebar is now exported from native Blender beveled curves. Classifications can be added to cost items and materials. Resource level classifications are now supported. Spatial zones are now supported. You can now reference spatial structures, so things like multi-story columns or doors, stairs, dampers, and so on can reference a “to” and “from” space. The OBJ2IFC script now has a Meshlab implementation and supports different schema versions. OffsetObjectPlacement patching now supports 3D rotations, especially useful when fixing IFCs from Solidworks. MergeDuplicatesTypes patch now can work on any attribute. Support for nested IfcGroups. New IfcSelector module to graphically create selection sets. Cyclic task dependencies are now handled for CPM analysis. Basic IFC4X3 support is now enabled, although geometry is not supported, there is support for schema entities. Long dropdowns and enumerations can be filtered for improved UX. Pset templates now support enumeration properties where the user can select multiple possible values.

A huge thanks to the growing volume of new contributors who are joining the team and changing the industry. You can too!

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 "2022-05-17"):

   407  Dion Moult
   114  Thomas Krijnen
    57  Vukas Pajic
    38  Gorgious56
    31  Carlos Villagrasa
    24  Gorgious
    19  Sigma Dimensions
    13  Andrej730
    10  Kristoffer Andersen
    10  Ryan Schultz
    10  Massimo Fabbro
     6  krande
     5  Martin15135215
     5  fbpyr
     4  Bruno Postle
     3  luz paz
     2  Boris Brangeon
     2  Dirk Olbrich
     2  Esteban Dugueperoux
     2  dependabot[bot]
     1  AToradaIBIM
     1  Amoki
     1  ArturTomczak
     1  Bruno Perdigão
     1  Christian Kimmig
     1  Christian Martínez de la Rosa
     1  Dmitry Sedov
     1  GisSpace
     1  befr
     1  bimworld
     1  garylzimmer
15 Likes

BlenderBIM Add-on v0.0.230107 has been released with 201 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/

Release base rabbit image AI-generated by Farfadet46.

Warning, this release is primarily aimed at developers, with not many user-facing changes but lots of software upgrades, experimental code, and documentation. As usual, the BlenderBIM Add-on is alpha software, but this release may be significantly more alpha than usual.

Experimental IfcSverchok release

Thanks to the incredible work by Martina Jakubowska in the Google Summer of Code programme 2022, we now have a prototype implementation of IfcSverchok. Buildings modeled using visual Sverchok nodes can now be converted parametrically into IFC models. Like the rest of the BlenderBIM Add-on, IfcSverchok is a native IFC visual node programming environment. 15 basic nodes have been implemented so far, ranging from creating entities, adding properties, converting Sverchok geometry, converting Blender geometry, and filtering by type.

In addition, there is now experimental Sverchok integration for parametric IFC element. Any IFC element can now be defined via a Sverchok graph and modified parametrically across IFC round trips.

New BCF library

The BCF library has been rewritten almost completely from scratch by Andrea Ghensi (sanzoghenzo). This new library has significantly improved performance and can be used to create much larger BCF topic collections. Unfortunately, these have not yet been implemented in end-user utilities like the BlenderBIM Add-on or IfcClash so users wishing to use those functions should use an older version as breakage will occur.

4D improvements

Major bugs with Asta PowerProject imports have been resolved. A huge amount of work by Yassine Oualid means you can also now easily select nested task outputs, display number of resources used by a task, display scheduled resource usage within the resource tree, and see total task assignments for elements. You can also now customise 4D animation colours, and add a visual task bar with customised colours.

Stair, steel and Australian furniture library

The existing stair generator can now be used to modify IFC stair flights, and also now supports individual stair treads (such as for steel or wood stairs) instead of monolithic concrete stairs. The results are parametric and can be regenerated after an IFC round-trip.

Cold rolled Australian Cees and Zeds have now been added to the steel library. In addition, 150 new furniture have been added based on Australian and metric Neufert dimensions, such as beds, tables, chairs, sofas, sanitary fixtures, and more.

For developers, a new ShapeBuilder class makes it easy to programmatically generate IFC representations made out of 2D profiles and 3D extrusions.

Extensive API documentation

Almost an entire book’s worth of documentation has been written for the hundreds of functions for the IfcOpenShell API. Documentation is incredibly detailed, featuring well commented code examples dealing with real life design and construction situations. For any developer new to Python, IfcOpenShell, or IFC, this is a critical resource to help you pick up the skills you need. Check out the IfcOpenShell API docs in particular.

IfcOpenShell for the web (WASM)

Thanks to work by core developer Thomas Krijnen, IfcOpenShell can now be combined with Pyodide to be used on the web. When you build IFC web applications with IfcOpenShell, you benefit from the decades of careful battle testing and extensive native IFC authoring API support provided by IfcOpenShell-Python. Proof of concepts have been released for native authoring of point-and-click IFC walls right in your browser. See the code.

So much more

Continuing on the quantity take off function lists from the last release, Massimo Fabbro has been hard at work mapping many quantity take off definitions to these functions. IfcOpenShell is now also available for Python 3.11. IFC validation now also supports express rule checking, which means that it is now even easier to guarantee high quality valid IFC models. Derived attributes are now supported in IfcOpenShell. Thanks to Cyril Waechter, IfcPatch now works with IFCZIP and IFCXML, various fixes for energy boundaries, and a stable AUR package is now available for Arch Linux.

The consolidated branding and fundraising drive between the IfcOpenShell and BlenderBIM Add-on websites have helped raise enough funds to allow for continuous funding of part time development for the entirety of 2023.

A huge thanks to the growing volume of new contributors who are joining the team and changing the industry. You can too!

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 "2022-11-06"):

    66  Dion Moult
    33  Martyna Jakubowska
    23  Thomas Krijnen
    19  CyrilWaechter
    18  Sigma Dimensions
    16  Massimo Fabbro
    14  Andrej730
     5  Ryan Schultz
     2  Kristoffer Andersen
     1  Andrea Ghensi
     1  Erik Abrahamsson
     1  Otso Alho
     1  Vukas Pajic
     1  fbpyr
10 Likes

Note:
Windows DL link still points to previous version, here’s latest:
https://blenderbim.org/builds/blenderbim-230107-py310-win.zip

Whoops! Fixed!

1 Like

BlenderBIM Add-on v0.0.230304 has been released with 413 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/

Improved drawing and modeling

Aligning parametric walls now takes into account axis offsets, and it’s easier to extend beams to walls, or walls to roofs. Insulation batting hatches are now generated and you can customise the width. Drawing text now has more customisation over their CSS styles.

The BIM tool is now generic to any parametric element, which means parametric vertical layers are not limited to walls, or parametric profiles are not limited to structural elements. This decoupling of geometry and IFC class is critical for flexible modeling.

Objects with same materials have their drawing hatches merged, sites now have a default thick line cut, and fill regions are now auto-dissolved, a significant step forward in readability and compliance of professional drafting standards. Drawings can now be duplicated. Drawings are now loaded on demand instead of all at once at project load. 2D annotations can now be superimposed on top of 3D body geometry in drawings, such as for window opening direction symbols.

Parametric doors and windows

You can now generate parametric doors and windows! Rather than relying on libraries created from others, this lets you add simple and common door and window types to your model.

Doors support for double and single doors and parameters for door panel and lining dimensions. Windows also support single panels, horizontal and vertical panels, and parameters for panel and lining dimensions. Openings are now shared across all windows. This means you can easily customize window openings in bulk for all window occurrences.

Generate roofs and rooms

You can now generate hipped roofs automatically from a roof footprint thanks to the integration the battle-tested bpypolyskel library.

In one click, also easily generate spaces from room-bounding objects like walls. You can also now add fixed space types and manage them in the type manager, such as parking spaces.

Bug fixes galore

There has been accelerating rate of bugreports due to the increased popularity of IfcOpenShell and the BlenderBIM Add-on. It is literally a mountain of bugs to keep up with. We’ve placed a huge emphasis on fixing and classifying bugs resulting in a net decrease in open bugs for the second time. Despite 160 or so new bugreports, the number of open bugs is down by 57 compared to the last release.

The impacts of these bugfixes are too numerous to list, but highlights include more intuitive classification assignment, orphaned openings can no longer be created, fixed viewport clipping bugs for drawings on sheets, a critical bug in drawings where certain objects would appear see through, a critical bug where viewport annotations didn’t display on MacOS, and many more.

BCF interfaces updated

The BCF interface has been completely updated to use the BCF library from the previous release. Similarly, the BCF export from IfcClash is now working with the latest BCF library.

IFC4X3 progress

Built-in documentation, property set templates, and entity type mappings have now been introduced for IFC4X3. These are critical fundamentals required for those who want to start authoring and editing IFC4X3 models.

4D/5D improvements

Cost schedules can now be exported to CSV, ODS, and XLSX. Tasks in work schedules can now be duplicated.

So much more

Viewing collision results from IfcClash now supports federated models. New shape utility library for programmatic quantity take off for developers. IFC validation of express rules for advanced users are now bundled in the interface. IfcTester can now output compliance reports in ODS format. IfcCSV now supports ODS and XLSX. IfcFM has been cleaned up a bit to help people adapt it to their needs easier. The profile manager now has cross section thumbnails. Material set and material set item properties can now be assigned and edited. Improved styling in documentation and new documentation for all IfcPatch recipes and IfcClash.

A huge thanks to the growing volume of new contributors who are joining the team and changing the industry. You can too!

Also a huge thanks to the growing volume of new donors who have helped is raise funds here: https://opencollective.com/opensourcebim - thanks to you, we were able to hire a part time developer and delivering many of the features you have just read about would not have been possible to do in this timeframe without your help. Thank you!

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-01-07"):

   194  Dion Moult
    80  Andrej730
    53  Sigma Dimensions
    48  Thomas Krijnen
    10  Massimo Fabbro
     7  Vukas Pajic
     5  CyrilWaechter
     5  Kristoffer Andersen
     4  Ryan Schultz
     3  Andrea Ghensi
     1  Einar Raknes
     1  Jesusbill
     1  Li1506
     1  Martyna Jakubowska

Donors since the last release:

PlaniBIM SA
Cyril Waechter BIM Insight
Daniel
Dion Moult
Aether Engineering s.a.s. (Aether Engineering)
Clemens Rieth
Matthew Fuller
Losepacific
Julio
Frode Lund Tharaldsen
Sven Amiet
Muhammad Ichsan
James Krueger
StefStap
Jonny Knopp
Johnson Bankole
Leon ten Brinke
bitenergie
Marin Ljuban
Madars Siksna
Carlis
Kristoffer Hunnestad Andersen
bimage
louistrue
Alexander Kleemann
Udo
Stephen Cremin
Carlos Dias
Incognito
Lukas Alberts
cvillagrasa
carlopav
casiovadal
bclmnt
Ari Pikkarainen
Benny
Fabian Emanuel Kitzberger
Dirk Olbrich
Miguel
Yijie Wu
Katleen
Leandro
9 Likes

Hello,
I created a simple model on IFC4 Demo Library template, following this tutorial:

…and exported an IFC. There are some problems.
I was only able to open it in some applications. Revit 2016 and BIMvision failed completely, Open IFC Viewer had no problems (apparently, open software likes other open software, but payware doesn’t because how come anything can be free of charge?!), and Archicad - which is my personal default app - failed to import slabs and ramps (which I did not even edit), but every other architectural class imported nicely (haven’t tried with stairs though; doors and windows are wrong too but I don’t care about them for now). I’d love to be able to import slabs to Archicad and, if possible, import anything to Revit.
Archicad import error report says something like “The following elements could not be imported due to missing or incorrect geometry” and it points out the slabs’ IDs.
I’m aware you may not have access to Archicad or Revit for troubleshooting, but we could arrange a screenshare, and I believe it’s not just a Revit/Archicad problem, as some viewers also fail to import and only Blender exported IFCs are troublesome for them.
I’m wondering if you could help me fix this?
I also tried creating slabs in Archicad or Revit, then importing them for editing in Blender.
If I import slabs created in Revit and then export them to IFC, they appear in Archicad as editable slabs (cool), but if I try editing and saving a slab’s profile in Blender, it crashes.
If I import IFC4 slabs created in Archicad, I can successfully edit and save their profiles, and re-import to Archicad with no issues. Still though, when I load an external IFC to Blender, my IFC4 Demo Library template is wiped, and that makes me sad :frowning: I tried using Archicad to create a full preset of elements that I’ll need to edit in Blender, but now beams and columns are not editable in Blender.

I’m attaching both Blender models - one created from scratch in BlenderBIM, and the other - imported from Archicad (via IFC, of course). I need to be able to edit slabs, beams and columns (and maybe walls and stairs) in Blender and bring them to Archicad as fully editable, parametrized entities.
If you inspect both you might be able to pinpoint why Blender IFCs, especially slabs are so problematic for other apps, and why I can’t edit all types of imported entities inside Blender.
I think all apps that I mentioned support IFC4.

IFC4 element set from Archicad.blend (1.2 MB)

IFC new test from IFC4 Demo LIB.blend (1.8 MB)

3 Likes

Thanks for your testing! Revit 2016 is pretty ancient, so I’m unsurprised if its support is very poor. Can you try with Revit 2023?

I’m a little surprised ArchiCAD can’t load slabs. They’re pretty simple and fundamental.

Can you share the .ifc files? The .blend files don’t contain any data. Alternatively, consider joining osarch.org/chat and pinging me (username is Moult) and we can do a screenshare to debug.

1 Like

Wow, you replied faster than I could take a shower. Appreciated.
By the way, I am using Archicad 25 and Blender 3.3. I can try installing Revit 2023, but I’m not sure if it will even run without a license. Later, I can also try in Vectorworks 2023.
I’m surprised you are unable to read my project from Blender file, I don’t know why. How does it work - does the addon link Blender with any external resources to read IFC data, that are gone if I just share BLEND file?

Here’s the IFC exported from Archicad:
AC element set-IFC4.ifc (87.7 KB)

And the one created in Blender:
IFC new test.blend.ifc (86.0 KB)

I’ll try to reach you on chat as mipec96.

For anybody experiencing similar issues, the fix is to update to the unstable release, which has a number of bugfixes which resolves the issue.

1 Like

Hi is it working on the last Version Blender 3.5?

I believe so.

For those interested in producing 2D drawings in .dwg from IFC models, you may be interested in the following:

3 Likes

BlenderBIM Add-on v0.0.230506 has been released with 534 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/

OK. Deep breath. Get ready. Go!

Splash image generated by @cvillagrasa using Midjourney CC BY-NC 4.0.

Drawings and sheets are now portable

The sheet, drawing, and schedule system has been made fully portable, storing relative paths in IfcDocumentReferences, and capturing all of the components needed to build sheets in IfcDocumentReferences. This means that it is finally practical to switch between multiple projects on the same computer, or package a project that someone else can open on their computer.

Note: drawing and IFC model from the Clothing Boutique project by Opening Design CC-BY-SA 4.0 produced with the BlenderBIM Add-on. A huge thank you to the Clothing Boutique project who helped battle test and report numerous bugs to help stabilise this release cycle.

All related drawing and sheet assets like titleblocks, view title templates, CSS stylesheets, symbols, markers, and patterns are all able to be stored alongside your IFC project as referenced URIs. Things like the titleblock dropdown now also shows your project specific titleblocks.

Renaming or renumbering drawings, sheets, and schedules is now much more practical and flexible.

Huge drawing system upgrades

Arbitrary metadata may now again be stored for any object in a drawing as a CSS class. Imperial dimension formatting improved. Spatial elements are now drawn on top so you can tag and colour code spaces without obscuring elements in the space. You can now bulk print or open drawings and change sheet title blocks after a sheet has been generated.

Two optional engines are now available for semantic projection fills. If you have elements in the background such as carpeted floor coverings that need hatch patterns or fills, you can now activate either a Shapely-based engine or an SVGFill-based engine which will properly semantically tag closed polygons in the background of your drawing.

Schedules from ODS now supports merged columns, row heights, cell text alignments, and multiline text wrapping. This means formatting of schedules in ODS can be preserved when rendering on sheets.

Section annotations in drawings now support truncated section lines, and disabled / custom section symbols at either end of the section.

The cut merging tool introduced in the previous release also got a bunch of much needed stability upgrades and now works on more complex projects at a fraction of the time.

Viewport drawing upgrades

There is a new cut decorator that clearly shows the cut line in drawings. Drawings also now activate target view specific representations (e.g. door swings in plan view). Parametric layered walls now have their layer slices shown in the viewport. Put together this means a significantly more user friendly drawing view that closely resembles the final generated vector drawing.

Viewports now also take into account include and exclude element filters for the drawings, as well as only showing element in view. This means that drawings now generate faster (easily twice as fast or more for larger projects) and your view isn’t cluttered with excluded elements. This makes is practical to work on phased projects (e.g. demolished versus new construction statuses).

You can also now customise decorator colours. Using a light theme? Go for it.

Critical bugfixes

Tons of bugfixes were made, but certain bugs were so critical or have a big impact on usability that they deserve a special mention. During this release cycle, we managed to hunt down and fix a ton of these critical bugs.

Critical bug fixes include fixing tiny polygon hatch merging on drawing plans. Fix crash when editing with decorators. Fix data corruption on undo where IFC primitive editing was stored. Fix disappearing openings when splitting walls. Fix issue where copying objects could unnecessarily copy themselves recursively. Fix installation error of IfcSverchok. Fix bug where 2D elements were sometimes not loaded when loading IFCs. Fix UX issue that commonly led to users creating objects with unintended contexts. Fix issue where certain materials weren’t appended when appending elements from a project library, or where types were recursively pulled in causing bloated type libraries. Fix crash in IFC array tool. Fix issue where editing layer thickness accidentally didn’t consider the total thickness of all layers. Quantity take-off calculation now uses project units.

A number of critical save-time synchronisation issues were resolved. These would cause unnecessarily long file saves or significantly unnecessary data changes. For example, type objects used to incorrectly track placement and were all synced at save time.

Fix “repeat last operator” for duplicating elements. Fix unlinking bug which would break other material users in the file.

IFC Git version control integration

Incredible work by Bruno Postle and Bruno Perdigao have led to an integration with the IFC Git project. This allows you to track changes on an IFC project, merge changes from multiple users, and jump to points in the project change history.

You can now manage your BIM data in a local Git repository without leaving the BlenderBIM Add-on. Instead of just saving a file, you can create revisions with descriptions. These revisions are browsable and retrievable, changes between two revisions can be visualised in 3D. Any revision can be forked, creating a branch for developing options or playing with designs. There is an experimental tool to merge branches using an IFC specific three-way merge for conflict resolution.

IFC validation improvements

Lots of IFC validation issues resolved, including incorrectly using 3D coordinates for 2D profiles, or a number of orphaned relationships. The IFC validation utility now also has a number of fixes to false positives. The pset and qto authoring UI has been modified to prevent the ability to create invalid sets without properties.

Invalid IFCs may lead to unpredictable behaviour in native IFC authoring tools, or worse, complete incompatibility in other IFC software.

More parametric tools

New parametric railing tool. Two types of railings are now supported, including a frameless glass ballustrade and a wall mounted handrail.

Generated spaces now use their object placement as a space recalculation point when regenerating spaces. Parametric sliding doors are now supported.

New UI for generating roofs. You can also set roof angles so gable roofs as well as hipped roofs are now supported.

Parametric dimension fields in the BIM Tool (such as extrusion depth, length, X angle) are now aware of project units - a simple but significant usability improvement especially for imperial users.

New join tool means you can intelligently join objects. Meshes are merged into a single mesh object, whereas solids are joined into multiple solid representation items.

Faux-mirroring is now implemented, so you can mirror columns, furniture, walls, etc based on any arbitrary axis. Faux mirroring is similar to normal mirroring, except that there is no lateral inversion. This means that mirroring preserves the geometry exactly.

Improved control over bulk assigning and unassigning aggregates in prepration for elemented wall modeling at later design stages. Voids and fills may also be added to aggregates, so that you can have a single opening penetrating multiple coverings, members, and other objects.

Upgrades to text annotations

Text annotations got a big upgrade with support for multiple text literals. This means that you can view multiline text in the viewport, as well as have annotation symbols with multiple text components (e.g. a space annotation with a number, name, and area) in drawings. Text now respects multiple text sizes and box alignment in the viewport. Text may also have a background fill for readability in drawings.

Improved selector syntax now allows you to escape complex names and regex. There is also now support for chained relationship selections and list index selection, so you can select the material of a 2nd layer of a layer set, for instance. This means you can easily write queries that filter project phases, or common properties like fire ratings across many object types.

Text annotations may also use evaluated Python commands for advanced users to annotate substrings, special numerical formatting or rounding, or more. There are also more built-in symbols so that you don’t need to create your own for simple tags.

New smart bulk annotation tool

There’s a new annotation tool with a focus on making annotation as easy as possible. Annotations may now be typed, so that styles (such as classes) from the type, or representations (such as preset text tags) may be set once at the type level, then bulk applied to all instances.

When you add stair arrow annotations, preselected stairs will have arrows automatically added along the stair flight run. You may also bulk select instances and tag them using your own custom annotation type.

New fall annotation tool, allowing you to annotate falls and slope angles / grades.

BGL to GPU migration

Blender is deprecating its BGL library that the BlenderBIM Add-on uses for drawing viewport decorations. Decorations include profile highlights, and live drawing annotations like text notes, dimensions, and so on. A considerable amount of work was done to migrate to the new GPU library, which means that users on the latest Blender versions can still enjoy all of the decoration features.

Unfortunately, work is not yet finished and some MacOS users may be missing decorations. This will be resolved in time for the next release.

New edit mode and non-delayed element deletion

There is a completely new edit mode toggling system. This means that if you have a mesh-based representation (such as faceted breps or tessellation), your edits are tracked whilst you’re in editing mode, and you are given the option to save or discard edits as you toggle edit mode. In the past, mesh edit modes were delayed and synchronised at file save, which led to synchronisation bugs. This new method helps fix a number of previously obscure bugs.

For non-mesh based representations, mesh editing is disabled, unless you have explicitly cast the geometry type to a mesh-compatible representation. This prevents people editing objects in an incompatible manner. This also allows us to enable representation-specific editing tools, such as profile editing for space boundary surfaces.

Similarly, element deletion now happens on demand, instead of delayed until synchronisation events. This also prevents a lot of obscure potential bugs. Element deletion is now also a lot faster, even thousands of times faster for dense mesh-like representations.

More ways to author space boundaries

Space boundaries are ways of representing boundaries between spaces for energy analysis. Previously, the features available to load, create, and edit boundaries were very clunky. Now, there is an easy way to create a new untyped space, bulk generate spaces from walls, and toggle boundaries on or off for selected spaces.

Space boundaries can now be easily selected, and automatically generated. Generation intelligently takes into account walls, openings, and fills like doors and windows, automatically creating inner boundaries for these objects correctly projected onto the plane of the boundary.

A new boundary profile editing tool makes it easier to edit inner and outer boundaries as profiles similar to how you’d edit slab profiles, and now supports filleted arcs and circles as well.

Improved resource management tools

Resources are used in the domain of scheduling and costing. There are now features to review and edit Resource productivity data on the fly, and add number of Resources used directly from resource tree. These two features now make it a lot faster to: parametrically calculate a Resource’s Required Work based on its productivity, and parametrically schedule the duration of a task based on the number of resources.

Cost management

You can now select unassigned cost schedule products - find out what’s left to schedule!

Conveniently show total elements/tasks/resources assigned to a cost item. Enable displaying nested elements for Cost Items - elements, resources, tasks. The UI for adding cost item values has been improved.

You can now clear all assignments assigned to a cost item. New ability to change cost item parent in a tree, and re-order cost items in a tree.

Gantt chart and baselines for construction scheduling

Create & view work schedule baselines. You can now compare Baselines vs Planned with Gantt Charts. You can now conveniently print Gantt Charts in different Sheet Formats. Added support for multiple languages for Gantt Chart Headers. Enable displaying task tooltip when hovering over tasks in the Gantt Chart. Add resource columns in Gantt Chart. Improvements on the Gantt Chart page style layout.

Improved Work Schedule UX. Implement human readable durations in task tree. Edit durations with human readable durations.

Select individual Task Inputs & Task Outputs directly from the task quantity assignments. Display nested task resources/task inputs of the active task. Buttons to select a Work Schedule’s assigned / unassigned products.

New viewport 4D/5D tools

Show list of tasks related to the current object selection. Highlight tasks related to the current object selection

Side-Panel Menu to retrieve cost items assigned to an object. Highlight cost items related to the current object selection

So much more

Utilities to get connected MEP elements in a distribution system is now supported for IFC4. Upgrades to the FixRevitTINs patch for fixing Revit-specific issues for loading TINs from Civil3D.

Titleblocks now support dynamic angles for north arrows. IFC Array now supports local or global coordinates, and getting coordinate offsets from the 3D cursor. New thick line section rendering for temporary sections. Site reference long/lats can now be edited. Loading IfcProxy now supported. Materials can now be duplicated. Quantity take off improvements include the ability to calculate weights based on material densities. Easily see related cost items and quantities of selected items.

A huge thanks to the growing volume of new contributors who are joining the team and changing the industry. You can too!

Also a huge thanks to the growing volume of new donors who have helped is raise funds here: https://opencollective.com/opensourcebim - thanks to you, we were able to sponsor development. Many of the features you have just read about would not have been possible to do in this timeframe without your help. Thank you!

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-03-04"):

   184  Dion Moult
   174  Andrej730
    52  Sigma Dimensions
    35  Thomas Krijnen
    16  Massimo Fabbro
     9  Bruno Perdigão
     8  Bruno Postle
     7  Carlos Villagrasa
     5  Andres
     5  Chun
     5  Gorgious56
     5  Kristoffer Andersen
     5  Trashman247
     4  Ryan Schultz
     4  krande
     3  Andrej
     3  Vukas Pajic
     2  CyrilWaechter
     1  ArturTomczak
     1  Nathan Hild
     1  Shohei Kunimatsu
     1  arun
     1  ay-ex
     1  dependabot[bot]
     1  htlcnn
     1  kzfile

Donors since the last release:

Mats Norén
PlaniBIM SA
Cyril Waechter BIM Insight
OpeningDesign
Daniel
Dion Moult
Sven Amiet
Guest
Aether Engineering s.a.s. (Aether Engineering)
carlopav
Matthew Fuller
Hans Hendriks
Losepacific
Bedrossian Ádám
Dumitru Minciu
Julio
Frode Lund Tharaldsen
Marin Ljuban
Felipe Hita Suárez
StefStap
Jonny Knopp
Johnson Bankole
Leon ten Brinke
bitenergie
Smiljan Tukic
rubicon
Sigve Pettersen
Marcin Boguslawski
Miguel
Madars Siksna
elo_elle
Kristoffer Hunnestad Andersen
Rafel Bayarre
Benny
Stephen Cremin
Carlos Dias
bimage
louistrue
Alexander Kleemann
Udo
Lukas Alberts
Incognito
cvillagrasa
casiovadal
bclmnt
Ari Pikkarainen
Fabian Emanuel Kitzberger
Dirk Olbrich
Roman
Gluboy
Cordero
Carlo
Tommi P.
Mehmet Cenk
Michael
12 Likes

In a separate conversation, regarding IFC to 2D document workflow, @noidtluom had this to say:

Vector drawings right now means vector SVG, which is semantically significantly richer than DXF/DWG

I will start any conversation referring to him with “Thank you” for the job being done with Blender BIM, and post my question about that statement here, hoping not to take up his valuable time and so that others may chip in.
From my perspective, as an architect - engineer, I find the SVG format lacking in higher structure for annotations. For CAD purposes there are annotational objects that have particular significance, most notably dimensions but also notes with leaders, special markers, hatches etc.
My knowledge of SVG is mediocre, do I understand correctly that dimensions would be just lines, arrows and text, as independent entities? Where is the semantic richness in that?
When one takes the time to add dimensions to the IFC, one relates annotation to model and provides high level information, shouldn’t that be retained during translation to 2D? I would not want to repeat this in 2D drawing software.
I cannot see SVG do the job of DXF, not only because of the above but also because it is the format of choice for collaboration with drawings, very many people and a multitude of software, tie back to the format.

I may very well be lacking in my understanding but these are my questions.
Isn’t DXF THE time-tested and evolved standard for technical drawing, particularly 2D? Isn’t that the important consideration for documenting from the IFC data?
Ultimately why have an SVG step in the workflow, when the DXF, seems the obvious ultimate destination?

I might be able to shed some light. All annotations are first and foremost stored not in SVG, not in DXF, but in IFC. This is significantly richer than SVG or DXF. Annotations know whether they are a dimension, a text, an arrow, a revision cloud, etc. Annotations also know if they are associated with an object (e.g. a door) and if it is text, also know if they are referencing a particular property, attribute, or quantity of that object. Annotations even can know things like whether they’re referencing a particular phase of construction, or which organisation is liable for the correctness of the annotation. DXF is a pretty bare data model in comparison.

When a drawing is generated, this IFC annotation along with the rest of the IFC model is serialised into a vector format. Currently, we only support SVG. The semantics of SVG are limited to attributes and classes. In this case, an SVG only “knows” that it is a dimension / arrow / whatever via its attributes and classes. For example, we never draw the arrowhead explicitly - instead we simply draw a line, and the arrowhead is drawn automatically in SVG because it knows it’s a leader line and therefore the CSS selector assigns it with a particular arrow style. In this regard, especially with CSS selectors, it is actually more powerful than DXF / DWG. Same with dimensions, it’s not just a bunch of lines and arrows and text, it knows it’s a dimension. Even more - it knows that “this filled hatched rectangle” is not just a “filled hatched rectangle on Layer Wall”, it actually knows it is an “IfcWall” with a “2 hour fire rating”. So SVG has more than just intelligent annotations, it has intelligent objects too.

SVG has many technical advantages over DXF / DWG - such as more support in more applications, units (e.g. DXF is unitless), transparency of development, and interactivity or embedded foreign objects when in a browser context (imagine the next evolution of drawings in the future which are interactive or can have tags auto positioned, auto generated and toggled on an off, or objects colourcoded on the fly with autogenerated legends based on object properties like fire rating, construction material, etc).

Unfortunately, DXF / DWG is still the defacto standard for exchanging vector drawings in the industry. Not because it is technically superior, but due to monopolistic market practices. Given the reality, we still need to produce DXF / DWG sooner or later.

Right now, DXF / DWG can be produced as a secondary output after converting the SVG. I’ve delivered construction drawings in this method myself. This is an inconvenient, lossy, and imperfect solution. Undoubtedly we will support DXF as a primary output (maybe less so DWG, as it’s a really terrible proprietary format) relatively soon, but it’s definitely not the “ultimate destination”. It’s just a necessary evil. The ultimate destination in my opinion is highly semantic direct-in-model IFC semantic annotations, and published paperspace SVG.

From a technical perspective, producing DXF instead of SVG like we do right now is actually not hard (after all we just work with raw semantics and vectors in IFC, nothing specific to SVG). It’ll probably take a few days to build. It’s just not very pleasant and would result in even more data loss than SVG. I don’t place it very high on the priority list right now.

4 Likes

Is there any way to convert materials imported from IFC. They don’t seem to work as regular belnder materials, different material add-ons don’t seem to recognice them or gives errors … I am doing ArchViz so I don’t realy need all the IFC extra material properties, but I would be like to keep the material slot, even if it is just to see the name of materials on different meshes/objects, and beeing able to get hold of them through add-ons.

1 Like

Can you help elaborate exactly what workflow you’re after? It should be possible due to external material references in IFC, but I’ll need a better understanding of what you’re after before I can suggest a solution.