BlenderBIM - OpenBIM authoring with Blender

Hi, I’m trying to import an IFC-file made in Solidworks to Blenderbim but I get the following error:

TypeError: bpy_struct: item.attr = val: enum “SQUARE_METER” not found in (‘NANO/SQUARE_METRE’, ‘MICRO/SQUARE_METRE’, ‘MILLI/SQUARE_METRE’, ‘DECI/SQUARE_METRE’, ‘CENTI/SQUARE_METRE’, ‘SQUARE_METRE’, ‘KILO/SQUARE_METRE’, ‘square inch’, ‘square foot’, ‘square yard’, ‘square mile’)

I was wondering if it has something to do with how the word “meter” is pronounced differently in American and Australian english?

Hello all, Im trying to import an ifc file from revit and it keeps importing without beam and ceilings. I tried ticking property sets checkbox and they import with half assed boolean operation however maintains some model parts.
please any advise? im probably doing something wrong

Hello, I am so extremely happy this exists and I am trying to see just how much of my workflow I can move to open source tools now! One issue I’m currently running into is that I can’t seem to import any schedule files into my project. I’m on version 3.0.0 of Blender and 0.0.211031 of BlenderBIM.
Here’s my error logs

bpy.ops.import_p6xer.bim(filepath="C:\\xxx.xer")
Python: Traceback (most recent call last):
  File "C:\Users\xxx\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\blenderbim\bim\module\sequence\operator.py", line 1117, in execute
    p6xer2ifc.execute()
  File "C:\Users\xxx\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\blenderbim\libs\site\packages\ifc4d\p6xer2ifc.py", line 94, in execute
    ifcCreator.create_ifc()
  File "C:\Users\xxx\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\blenderbim\libs\site\packages\ifc4d\common.py", line 36, in create_ifc
    work_schedule = self.create_work_schedule()
  File "C:\Users\xxx\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\blenderbim\libs\site\packages\ifc4d\common.py", line 45, in create_work_schedule
    return ifcopenshell.api.run(
  File "C:\Users\xxx\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\blenderbim\libs\site\packages\ifcopenshell\api\__init__.py", line 46, in run
    result = usecase_class(ifc_file, **settings).execute()
  File "C:\Users\xxx\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\blenderbim\libs\site\packages\ifcopenshell\api\sequence\add_work_schedule.py", line 26, in execute
    work_schedule.CreationDate = ifcopenshell.util.date.datetime2ifc(datetime.now(), "IfcDateTime")
  File "C:\Users\xxx\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\blenderbim\libs\site\packages\ifcopenshell\entity_instance.py", line 121, in __setattr__
    self[index] = value
  File "C:\Users\xxx\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\blenderbim\libs\site\packages\ifcopenshell\entity_instance.py", line 160, in __setitem__
    raise ValueError(
ValueError: Expected EntityInstance for attribute IfcWorkSchedule.CreationDate, got '2021-12-27T23:39:30.815986'

location: <unknown location>:-1
bpy.ops.import_msp.bim(filepath="C:\\xxx.xml")
Python: Traceback (most recent call last):
  File "C:\Users\xxx\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\blenderbim\bim\module\sequence\operator.py", line 1117, in execute
    p6xer2ifc.execute()
  File "C:\Users\xxx\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\blenderbim\libs\site\packages\ifc4d\p6xer2ifc.py", line 94, in execute
    ifcCreator.create_ifc()
  File "C:\Users\xxx\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\blenderbim\libs\site\packages\ifc4d\common.py", line 35, in create_ifc
    self.work_plan = ifcopenshell.api.run("sequence.add_work_plan", self.file)
  File "C:\Users\xxx\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\blenderbim\libs\site\packages\ifcopenshell\api\__init__.py", line 46, in run
    result = usecase_class(ifc_file, **settings).execute()
  File "C:\Users\xxx\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\blenderbim\libs\site\packages\ifcopenshell\api\sequence\add_work_plan.py", line 21, in execute
    work_plan.CreationDate = ifcopenshell.util.date.datetime2ifc(datetime.now(), "IfcDateTime")
  File "C:\Users\xxx\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\blenderbim\libs\site\packages\ifcopenshell\entity_instance.py", line 121, in __setattr__
    self[index] = value
  File "C:\Users\xxx\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\blenderbim\libs\site\packages\ifcopenshell\entity_instance.py", line 160, in __setitem__
    raise ValueError(
ValueError: Expected EntityInstance for attribute IfcWorkPlan.CreationDate, got '2021-12-27T23:33:39.032755'

location: <unknown location>:-1
bpy.ops.import_p6.bim(filepath="C:\\xxx.xml")
Python: Traceback (most recent call last):
  File "C:\Users\xxx\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\blenderbim\bim\module\sequence\operator.py", line 1139, in execute
    msp2ifc.execute()
  File "C:\Users\xxx\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\blenderbim\libs\site\packages\ifc4d\msp2ifc.py", line 52, in execute
    self.parse_xml()
  File "C:\Users\xxx\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\blenderbim\libs\site\packages\ifc4d\msp2ifc.py", line 70, in parse_xml
    self.project["Name"] = project.find("pr:Name", self.ns).text
AttributeError: 'NoneType' object has no attribute 'text'

location: <unknown location>:-1

Is BlenderBIM tripping over those decimal seconds in the IfcWorkPlan.CreationDate?

Sorry on holiday right now but at a glance I suspect you are trying to import scheduling data into an IFC2X3 project. However, currently we only really support IFC4 (since IFC2X3 4D+5D is really undeveloped). You can also auto migrate IFC2X3 projects automatically to IFC4 using the IfcPatch tool (included in the scene properties as a GUI) using the Migrate recipe, specifying ["IFC4"] as the arguments.

1 Like

@3DWizzard and @Roggii cheers, can you please help submit a bugreport to Github? https://github.com/IfcOpenShell/IfcOpenShell and I’ll see what I can do.

Hey Guys!

I was wondering, wouldn’t it be more efficient to do a FreeCADBIM instead of a BlenderBIM?
This because FreeCAD already has dedicated documentation capabilities.

I ask this because I’m wondering if it’s possible to rally-up devs and coders to make a sort of open-source free alternative to “CYPE architecture” which is a free IFC builder/modeler with a Revit/ArchiCAD like interface and workflow. but it’s useless because you have to be connected to the internet to use this tool (they have an entire ecosystem around this, awesome but again useless because you have to be online for this)

I know it’s a very very big ask. But I also think that with the community we have available now we should make a start towards developing an Open-Source BIM modeler in the form of an IFC modeler/builder. I am just a BIM Designer/CAD drafter myself so I’m not a coder. So although I don’t exactly know how much work it is, I do recognize that it’s a very very huge ask.

My general idea would be:
Move BlenderBIM development towards FreeCAD to create a dedicated IFC Modeler/Builder Documentation app, in combination with your Blender IFC importer.
From there on dedicated libraries (Doors, windows, curtain walls etc.) could be further developed

Of course, it would be nice to have everything within Blender, but for now, I think that it’s more efficient to use Blender as the Rendering solution for IFC files.

Here’s a link to another forum topic I just started:

I’m very curious to see your opinion on this Dion, and again thanx for the awesome Blender Add-On

1 Like

Hey @EzVidz - we’re working on dedicated documentation capabilities. There is a long thread covering the progress here.

Interestingly enough, before starting on the BlenderBIM Add-on, I actually started hacking on FreeCAD’s BIM, Arch, and Draft capabilities. It was actually a conscious decision to stop hacking on FreeCAD and build the BlenderBIM Add-on instead. There are a number of what I hope to be well considered reasons for this.

  1. Two geometric paradigms are better than one.

Blender and FreeCAD focus on different geometric paradigms. We need both in the AEC industry. They are suited to different situations. IFC also supports both geometric paradigms, so having editors that are well suited to both is desirable. Similarly, with two applications, it makes it far better to test out round-tripping, without having to rely on proprietary BIM applications where it’s usually impractical due to numerous bugs that take years to fix.

  1. We take a completely different approach to FreeCAD in BIM support

FreeCAD uses a FreeCAD specific BIM data structure, and to interoperate with other non-FreeCAD tools requires import or export. In the BlenderBIM Add-on, we actually only use Blender as an interface. Under the hood, we don’t use a Blender specific BIM data structure: instead, we use IFC natively. It might look like you’re pushing Blender meshes and vertices, but in actual fact, you could be moving parametric IFC solids. As a result, in FreeCAD, the .fcstd means everything. In the BlenderBIM Add-on, the .blend file is meaningless - you can delete it and you won’t lose any data.

Because we don’t import or export, and treat IFC natively, it means that the BlenderBIM Add-on has zero data loss in IFC, and supports 100% of the BIM specification … a feat that is unique in the industry. For example, in under a year, last year, we rebuilt the BlenderBIM Add-on from scratch, and also included 4D and 5D support - a much faster pace of development because IFC was used natively. In exchange for this approach, simple things like drawing walls became much slower to develop. In the long run, I believe this approach is more advantageous. This native IFC support means we also support partial BIM editing - so we can scale to 100,000s of objects on large BIM projects, or in theory an infinite number of objects so long as we load portions of it at a time. Because FreeCAD currently relies on atomic translation, this is not (yet) possible in FreeCAD.

In the future, I suspect that FreeCAD may adopt portions of this strategy too. When that time comes, we will actually be able to reuse a huge amount of development directly in FreeCAD … see the next point.

  1. We actually work together a lot with FreeCAD already

The FreeCAD devs are in close contact with us, and vice versa. We collaborate through OSArch.org . In fact, both FreeCAD and the BlenderBIM Add-on share the underlying IFC engine: IfcOpenShell. The way the BlenderBIM Add-on is designed is that everything is built agnostic of Blender… Blender is purely a user interface (a complex one, to be sure, but it is a UI nonetheless). So every single feature we build in the BlenderBIM Add-on … actually can be re-used for free in FreeCAD (or via command line, or any other app)! For example, BIMTester has been reused in FreeCAD. Many of the performance improvements, or new utility functions have helped improve things in FreeCAD’s BIM capabilities. We’ve designed the code to be sharable.

  1. We use a different paradigm for drawings

We treat drawings as integral to the BIM model. Drawings are direct from IFC(s). Not Blender. This means that you can have 5 consultants using 5 different BIM tools (Revit, ArchiCAD, Tekla, ProStructures, etc) all working through IFC, and generating drawings from BIM datasets that are easily 1gb or more.

The FreeCAD approach is to import all data into FreeCAD, and then drawings are just generated in FreeCAD, not in IFC. So in the BlenderBIM Add-on, you can delete all your Blender stuff, and your full documentation pack - all schedules, drawings, sheets, etc, are still linked to your IFC model - this is a conscious design choice that we believe drawings are just as important as the rest of the BIM model and should not be separated. In FreeCAD, the drawings are currently part of FreeCAD.

I have a huge respect for FreeCAD and their developers. They have helped significantly in the development of the BlenderBIM Add-on, and I hope we have returned the favour too. We are stronger as two projects, sharing core code, rather than one project. More than happy to hear what @yorik has to say :slight_smile:

6 Likes

Thanx for the extensive reply!
I’m confident that you guys know what you’re doing when it comes to deciding what 3D app to use and expand upon.

Have you guys seen CYPE Architecture?
It’s a full IFC Builder/modeler. Just no usable offline, which is a real downside if you ask me.

I take it that replicating an app like this from scratch is a no-go for now?
I think that the closes we might get to that within blender would be creating a dedicated workspace with if possible conventional toolbars for IFC modeling.

I’m already guessing that you are familiar with Andrew Peel’s work? His Home Builder add-on is pretty good, and is also developing a sheet/documentation system for it.

I hope that you guys together with the rest of the community can eventually pull of a IFC modeling/documentation solution, whether it’s a standalone or an add-on/plugin for something else.

I noticed that guys are developing a full IFC system which I don’t know bout all its capabilities. Personally I’m more focused on the Modeling/documentation side of things.

Again thanx for the detailed replay.

And yes I’m also curious about @yorik vision on this.

I’ve seen CYPE’s work, but haven’t used their platform myself. From what I can tell it seems as though CYPE Architecture is not a native IFC builder / modeler. It simply translates its native data into IFC via an export feature, like the majority of existing BIM solutions out there. This means it is not in any technical way different to FreeCAD. It might be packaged nicer, or marketed as pure IFC, but I can’t see any technical difference from its online manual.

Replicating a new modeling app from scratch is a no-go simply due to the sheer complexity involved in building such an app. Making 3D CAD / BIM isn’t easy, even if you’re only working on the interface. It would be a significant investment even if a commercial firm were involved. It is far easier to use an existing geometry engine or platform. Of course, the limitation is that the UX is “shared” with other non-BIM paradigms, for better or worse.

That said, as we have designed the code to be sharable and agnostic of UI, if in the future it becomes easier to achieve this feat, or there are developers who are CG programming wizards around, we won’t be starting from scratch.

Andrew Peel’s work is awesome, and he is also around in OSArch.org . I believe it is currently Blender-specific though, so there are some fundamental differences that make it not possible to integrate directly. However, I’ve been slowly working on a concept to allow any parametric geometry generator to be integrated, be it Andrew Peel’s work, Geometry Nodes, even FreeCAD as an external app, or your own Python script. This is very slow going though.

I apologise that the modeling / documentation side of things is one of the slowest aspects of development. My personal usecases usually have modeling done by another proprietary app already, so we are augmenting an existing BIM dataset, instead of starting from scratch.

BlenderBIM Add-on v0.0.220130 has been released with 252 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’s been 3 months since the last release. Unfortunately, development had been put intermittently on hold due to various factors, including presentations being prepared for the Boao Forum for Asia ISTIF conference, FOSDEM 2022, and the 1-month online course on OpenBIM and Python programming by E-Zigurat. In addition, there was a one month break from development during the holiday period. It’s a marathon, not a sprint! :slight_smile: Happy 2022, and we’re back!

Let’s get into the details.

Optimisations to authoring and geometry caching

A huge kudos to the exceptional optimisation work by Thomas Krijnen. Especially when modifying large files, expect operations to be in the scale of 100x faster, especially when dealing with proprietary BIM exports. Bulk movement checks are a minimum of 5 seconds faster. Importing files with booleans can be 2x to 3x faster. New performance logging in the core means that optimising is far from over.

A new geometry cache is now implemented, so reopening the same project will be much faster.

Increased stability

Native authoring stability was a huge priority for this release. An additional 450 tests were written since the last release, and 76 bugs were fixed. This is the return on investment in the new testable code architecture which was revealed in the previous release.

Brickschema integration

Brickschema is a way of describing system topologies for building management systems (BMS). When we talk about digital twins and clear away the marketing buzzwords, we’re really talking about things like Brickschema and live building sensor data that Brickschema can reference. The BlenderBIM Add-on is the first in the industry to start providing a graphical Brickschema authoring environment that integrates with IFC.

It is now possible to create a 2-way link between IFC BIM models and Brickschema BMS models. This is possible due to new support for managing IFC libraries. Brickschema authoring is still very new, but it’s ready for basic testing!

New bulk property editor

In our quest to help clean OpenBIM data in the industry, an incredibly suite of bulk property editing tools are now available by developer Vukas Pajic. Includes bulk renaming, data type changing, removal, and adding properties.

Chipping away at drawing generation and MEP support

Drawing generation is a huge task that still isn’t ready for user testing, but all the same work has been done. Including improved section cutting booleans, geometry caching, fixing “the torus problem” for steel sections, new 2D elements in the demo library, paper scale annotations in the viewport, performance testing, native IFC roundtripping for annotations, associating objects for smart annotations, annotation variables, drawing sheets, and improved UI.

Also … more rabbits!

MEP is one of the areas not really supported by the BlenderBIM Add-on but that is now changing. Support is now added for different types of building systems, selecting different types of systems, and displaying distribution ports.

Better docs and building for developers

A number of fixes to the build system makes life easier for developers on different environments to build IfcOpenShell thanks to Thomas Krijnen. Also really exciting is the new super secret demo module tutorial and improved developer guide for new developers who want to learn how to build your own BIM application on Blender and extend the BlenderBIM Add-on.

So much more

Other notable improvements include new UI grouping, IFC to P6 XML export support thanks to developer myoualid, viewing IFC metadata prior to loading with one-click IFC4 file upgrades thanks to developer Gorgious56. Blender 3.0 is now officially supported. In addition, new support for parsing EXPRESS schemas in the interface has been added, in preparation to support IFC4X3. The testing process for IFC4X3 support has begun, with the hundreds of tests in the suite being redirected to check IFC4X3 support, with very promising initial results.

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

All changes

New features:

  • IFC element names no longer treat the Blender name suffix as significant
  • Object names now guard against duplicate IFC prefixes when assigning.
  • All element’s spatial containment collections are now synced when assigning a class.
  • Structural items in the collection hierarchy are now auto synced.
  • Remove legacy unassign class feature in favour of just deleting objects. Thanks theoryshaw!
  • #1692 get_info_2() logical now supported Thanks Thomas Krijnen!
  • You can now specify a target view when creating a new drawing. See #1153.
  • Drawing collection hierarchy is now auto fixed if shuffled around manually. See #1153.
  • Drawings list now reads data from IFC, not Blender. See #1153.
  • Removing sheets now works in IFC. See #1153.
  • You can now create drawing sheets in IFC. See #1153.
  • You can now show and hide distribution ports of an element.
  • New diagrams on the developer guide.
  • Finish building minimum viable product of the IFC2P6 converter. Thanks myoualid!
  • Fix #1514. You can now customise the default names of occurrences create from a type.
  • New software architecture section in the developer guide.
  • New demo module to teach developers how to hack on the BlenderBIM Add-on.
  • Updates to space boundary geometry now auto updates on export.
  • IfcCSV now loads the selector by default so its much more fun to use a lib.
  • You can now remove bricks from a Brickschema model.
  • New utility function for getting ports of an element
  • Implement assign and unassign ports in IfcOpenShell API
  • Dynamically update section shader backface color (#2000) Thanks Gorgious56!
  • Nodes are now offset nicely for cutaway shader (#2000) Thanks Gorgious56!
  • Smart annotation variables for drawings now reimplemented. See #1153.
  • #1993 vs2022 hdf5 Thanks aothms!
  • Editing task times no longer tries to be clever with actual dates because you know what you’re doing.
  • Fix #1576. Managing IfcSystem subtypes is now possible.
  • #1993 msvc 2022 config Thanks Thomas Krijnen!
  • Nicer looking gantt charts and make it easier to print to PDF.
  • Code licensing clarifications. See #1082.
  • Fix #1908. Extracting elements using IfcPatch now includes all properties.
  • Fix #1962. You can now easily append product assets using the API.
  • You can now reset and restore your API owner settings.
  • Header data previews for IFCZIP are now supported as well.
  • Fix #1956. One-button upgrade from IFC2X3 to IFC4.
  • Minor improvement to the sequence UI to always allow you to cancel editing mode.
  • ADD_COMMIT_SHA in build scripts Thanks Thomas Krijnen!
  • You can now associate annotations with objects for smart annotations in IFC. See #1153.
  • define the vector sass [0] as a std::vector<std::unique_ptr<ShapeAnalysis_Surface>> Thanks Benjamin Dahl!
  • Remove broken and obsolete Blender clasher which is incompatible with the geom.tree broadphase approach.
  • Improvements to 2D booleaning Thanks Thomas Krijnen!
  • Implement adding plain bricks not based on IFC
  • Support type-based class checking for converting IFC2X3 models to Brickschema
  • The IFC Class panel now shows inherited predefined types
  • New utility to get predefined type
  • Show ifc specs in file selector (#1980) Thanks Gorgious56!
  • UI Simplification with Panel Groups (#1979) Thanks Vukas Pajic!
  • Implement auto and manual refresh of the Brick model navigator
  • You can now create a new blank Brick project
  • New debug feature to purge HDF5 cache in case the cache is corrupted.
  • Implement human readable rdfs labels in Brickschema navigator
  • Display IFC schema in file selector right hand side panel (#1978) Thanks Gorgious56!
  • New utility to get IFC all elements that are relevant in Brickschema
  • Basic implementation to bulk convert relevant IFC classes to a Brick model
  • New IFC to Brick class mapping utility
  • You can now select all system objects from the object panel for convenience.
  • Optimise all editing API functions to be 100x faster when you’re dealing with proprietary BIM exports with loads of shared owner histories. See #1904 and #1905.
  • Schema versions are no longer locked to IFC4 and 2X3. You can now load express schemas at run time.
  • Purge obsolete IFC types mappings
  • Install to system local root Thanks Thomas Krijnen!
  • Fix: shift count negative or too big Thanks Thomas Krijnen!
  • #1960 BRepBuilderAPI_MakeFace on non-overlapping 2d subtraction Thanks Thomas Krijnen!
  • Log performance aggregates as logger messages Thanks Thomas Krijnen!
  • Logging statement for total file conversion Thanks Thomas Krijnen!
  • Update template.py main.schema_identifier doesn’t exist Thanks Thomas Krijnen!
  • #1969 take uppercase in register_schema() Thanks Thomas Krijnen!
  • build-deps.cmd typo 0.7.0 branch Thanks jakob-beetz!
  • The IfcOpenShell API now supports automatic primitive casting for editing properties. See #1943.
  • Primary measure type lists are now dynamically generated based on the schema.
  • Write documentation to help developers get acquainted with testing
  • fix umlauts not showing up correctly in dynamic enums #1941 (#1945) Thanks Vukas Pajic!
  • Fix #1717 : Disable task editing if task was deleted as a result of deleting its parent (#1936) Thanks Gorgious56!
  • Optimize logic for bigger number of tasks (#1936) Thanks Gorgious56!
  • New bulk property editor (#1896) Thanks Vukas Pajic!
  • Updated README.md for IfcOpenShell build instructions Thanks ssg! Thanks garylzimmer!
  • BlenderBIM Feature - Filter By Building Storey Thanks bosonprojets!
  • Good news everyone! Option to process wall opening subtractions in 2D. Thanks Thomas Krijnen!
  • Small changes to iterator settings Thanks Thomas Krijnen!
  • changes in ifc2ca standard case Thanks Jesusbill!
  • ifc2ca - possibility to exclude zero length springs in point connections Thanks Jesusbill!
  • changes in ifc2ca bonded case Thanks Jesusbill!
  • Optimise operations on large files. #1807 method mapping proposal Thanks Thomas Krijnen!
  • minor changes in ifc2ca scripts Thanks Jesusbill!
  • OCC7.5 to OCC7.6 support → deprecated Poly_Triangulation Nodes() Thanks fichter!
  • Switch to libocct for yml workflows Thanks Thomas Krijnen!
  • Prevent searching for invalid IDs in IFC debugger (#1924) Thanks Gorgious56!
  • New descriptions, labels, and debug output in IFC debugger (#1924) Thanks Gorgious56!
  • Debug op to select highest meshes by polygon percentile (#1924) Thanks Gorgious56!
  • bimtester: if lang argument is not set use feature file lang for output messages, improves #1910 Thanks Bernd Hahnebach!
  • bimtester: update log and smartview, they still are deactivated by default, fixes #1892 Thanks Bernd Hahnebach!
  • You can now add feed relationships in a Brick model from IFC elements
  • From an IFC element, you can now add a new Brick element in a Brick model
  • Assigning a brick reference now adds a 2-way IFC reference in the Brick model
  • Little utility to help printing out maintainable classes and other classes in contractual documentation.
  • bimtester: improved language support #1928 Thanks Bernd Hahnebach!
  • bimstester: feature cleanup and more german support Thanks Bernd Hahnebach!
  • get_total_inverses now efficiently gets the full number of references to an entity to optimise editing. See #1904.
  • bimtester: gui, initialize ifc file and feature file text Thanks Bernd Hahnebach!
  • Allow to assign IfcRelSpaceBoundary to an object (#1902) Thanks Cyril Waechter!
  • Allow to manually update boundary connection geometry (#1899) Thanks Cyril Waechter!
  • bimtester: fix gui, works with feature file now instead of feature directory Thanks Bernd Hahnebach!
  • Converting brickschema projects to IFC libraries now works on IFC2X3
  • Assigning library references now works on IFC2X3.
  • Editing object placements is now 3x faster on large files. See #1807.
  • #1785 HdfSerializer read-only option Thanks aothms!
  • Added information for debugging level parameter Thanks Felipe Mesquita!
  • #1895 don’t signal element ready when result is empty Thanks Thomas Krijnen!
  • Fix #1889. Allow explicitly overriding data types when editing psets.
  • #1153 draw.py timing Thanks Thomas Krijnen!
  • #1153 update draw.py with two new options Thanks Thomas Krijnen!
  • #1153 option to preprocess shape into sets of profile edges Thanks Thomas Krijnen!
  • #1885 consider schema type when copying attribute values Thanks Thomas Krijnen!
  • bimtester: Fix numerous language issues with french, italian, and dutch Thanks Bernd Hahnebach!
  • (slightly) Optimise batch removing objects Thanks Gorgious!
  • More slow progress in getting annotations round-tripping. See #1153.
  • You can now associate IFC elements with Brick elements and navigate to them
  • You can now assign and unassign library references
  • New UI to add / edit / remove library information and references.
  • Raise default section height from storey from 1.0 to 1.2 Thanks Bruno Postle!
  • A whole bunch of new usecases for managing IFC library information and references
  • New utility to get layers of an element. See #1869.
  • Rebuild text annotations to have leaders in the same object and use text literals. See #1153.
  • Viewport annotation decorations now scale based on paper size. See #1153.
  • Drawing annotations now are stored in IFC using ObjectType conventions. See #1153.
  • Reimplement roundtrip of most annotation elements for drawings. See #1153.
  • New experimental OBJ2IFC script
  • tree.protrusion_distances() Thanks Thomas Krijnen!
  • Purge old 2D element drawing system, so we don’t get double the symbols on drawings.
  • Swapping a Blender material for another is now auto synchronised.
  • Optimise object placement change checking, so medium sized project exports are 5 seconds faster at minimum, but can be much higher since false positives are culled.
  • Load CJIO on execution instead of initialisation Thanks Laurens Oostwegel!
  • show property description in pset_template ui Thanks Vukas Pajic!
  • Geometry caching is now enabled for model importing
  • Changes are now synchronised prior to switching representations.
  • [BlenderBIM] Tools to load IfcRelSpaceBoundary (#1864) Thanks Cyril Waechter!
  • Scale changes are now auto synchronised on export.
  • Improve support for Powerproject 14.0 import (#1865) Thanks ecke101!
  • Integrate ifccityjson in BlenderBIM (#1859) Thanks Laurens Oostwegel!
  • Implement cache updating for drawings. See #1153.
  • Resolve #1836. Scaling in Blender is now auto resolved when representations are updated.
  • Purge old dumb door and dumb window tool to prevent confusing users
  • Add annotation symbols for doors, windows, and bunny to the demo library
  • New IfcOpenShell utility to get instances of an element type easily
  • #1785 omplete stored_settings / requested_settings check Thanks Thomas Krijnen!
  • Consistent setting type Thanks Thomas Krijnen!
  • Resolve #1860. Brickschema is now optional.
  • Drawing module now is in sync with latest C++ upgrades. See #1153.
  • Allow tree.select(BRepElement) Thanks Thomas Krijnen!
  • #1785 check settings in cache and upgrade to world coords Thanks Thomas Krijnen!
  • Fix casts in XML serializer Thanks Thomas Krijnen!
  • ifccityjson: it is now easier to extract one LOD Thanks Laurens Oostwegel!
  • ifccityjson: prevent interior holes in faces as there is a bug in the geometry generation Thanks Laurens Oostwegel!
  • New feature to select all objects in same container
  • New feature to select the container of an object
  • Resolve #1750. You can now save IFCs under a relative path to your Blend file.
  • only call expensive wstring_convert() when necessary Thanks Thomas Krijnen!
  • #1785 geometry caching caching Thanks Thomas Krijnen!
  • Resolve #1749. You can now save as another IFC filename.
  • Rename some files with more sensical names Thanks Thomas Krijnen!
  • #1153 #1852 project points to form SVG HLR cut plane Thanks Thomas Krijnen!
  • #1153 evenodd SVG styling. Thanks Thomas Krijnen!
  • IfcConvert : SEW_SHELLS on svg serializer Thanks Thomas Krijnen!
  • #1153 boolean subtraction on parts Thanks Thomas Krijnen!
  • –cache and subtraction in draw.py Thanks Thomas Krijnen!
  • Add schema caching to Brick schema loading.
  • Implement new Brickschema project browser.
  • Slightly more robust deletion tracking.
  • ifccityjson: Fix bug dependency updated CJIO where cityjson vertices got transformed automatically Thanks Laurens Oostwegel!
  • #1153 another small hack to get boolean projection working more generally Thanks Thomas Krijnen!
  • #1850 Process extrusions of comp profiles seperately Thanks Thomas Krijnen!
  • #1743 don’t consider bbox in opening subtractions Thanks Thomas Krijnen!
  • #1785 geometry caching on multi threaded iterator Thanks Thomas Krijnen!
  • #1153 svg subtraction settings Thanks Thomas Krijnen!
  • #1785 quick identity check to keep trsf form at identity Thanks Thomas Krijnen!
  • Add tutorial to ifccityjson Thanks Laurens Oostwegel!

New fixes:

  • Fix bug where drawing objects could be added to the wrong context.
  • Fix bug where editing then switching to the current representation crashes.
  • Fix bug where syncing an object removed from the collection tree breaks.
  • Fix #2002. Fix bug where sometimes shape IDs wouldn’t be pure integers.
  • Fix #2001. Fix bug where you could not undo deletions.
  • Fix #1998. Fix bug where colours don’t show if styling is applied to the mapped item instead of the actual representation item.
  • Fix error when updating representation on object data with no BIMMeshProperties Thanks Gorgious!
  • Fix bug where you couldn’t select properties with a dot in the name for IfcCSV
  • Prevent error if last temporary section has been removed (#2000) Thanks Gorgious56!
  • Fix shader glitch when user deletes last cutaway object (#2000) Thanks Gorgious56!
  • Fix bug where zero durations were not allowed in task times.
  • Fix #1995. Bug where section cutaways didn’t work in Blender 3.0.
  • Fix bug where you could not add properties to projects themselves.
  • Improve boolean reliability. #1948 clear tmp list Thanks Thomas Krijnen!
  • #1985 Fix bug with selecting objects via geometry tree. Consolidate and correct shell count checks in tree Thanks Thomas Krijnen!
  • Fix propagation of kernel settings (affects multi threading) Thanks Thomas Krijnen!
  • Fix #1934. Fix bug with improper nesting of subfolders when exporting IfcZip.
  • Fix #1954. Fix bug where importing MSProject XMLs with no project names failed.
  • Fix IfcCSV import bug.
  • Fix #1989. Fix bug where you couldn’t export to IfcJSON, since it couldn’t be imported again.
  • Fix bug where you could assign a product twice to a process.
  • Fix #1931. Fix bug where duplicated type products should not share material associations.
  • Fix bug where annotation decorations didn’t show correctly in Blender 3.0
  • Fix #1925. Fix bug where nested collection deletions were not synchronised properly.
  • Fix bug in BCF. Correct HeaderFile (#1942) Thanks molitoris!
  • Boundary geom creation : fix math + small ui fix (#1938) Thanks Cyril Waechter!
  • Fix bug where IfcPatch IFC4 migration could break on Revit files
  • Improve boolean reliability significantly. Thanks Thomas Krijnen!
  • Fix booleaning bug. #1914 only proceed with ‘face addition check’ when first operand contains open shells Thanks Thomas Krijnen!
  • Fix #1692 memory leak in get_info_2() Thanks Thomas Krijnen!
  • Fix #1917. Fix warning where the relating type classes data couldn’t be accessed.
  • See #1917. Refactor and fix warning message when you haven’t got any contexts in a project yet.
  • Fix #1923. Fix bug where creating a new structural analysis model broke.
  • Fix #1913. Fix bug where filtering by decomposition didn’t work on IFC2X3.
  • Fix #1921. Document issue with installing on outdated Ubuntu distributions.
  • Prevent error if id has no geom representation in IFC debugger (#1924) Thanks Gorgious56!
  • Fix bug where libraries didn’t work in IFC2X3
  • Fix #1816. Fix bug where cameras weren’t allowed to be optional in BCF 2.1.
  • Fix bug with missing system arrows in visualising offset models and sink/source mixed flows.
  • bimtester: do not break bimtester if translation files are missing, fixes #1910 Thanks Bernd Hahnebach!
  • Fix bug where Blender name wouldn’t match IFC Name when reassigning class. See #1902.
  • Fix segfault thanks to aothms.
  • Fix percentage loading implementation with the new more accurate progress number.
  • Prevent crash on export for obj with no material (#1903) Thanks Cyril Waechter!
  • Fix bug where selecting type occurrences did not work
  • Fix bug where updating owner history may not work if you were using it outside Blender.
  • Fix model segfault. #1897 handle nesting in get_decomposing_entity_impl() Thanks Thomas Krijnen!
  • Fix bug in FM utility for grabbing classes from the draft FMHEM standard
  • Fix bug in convert length unit recipe where IFC2X3 ownership history fails.
  • Fix #1886. Fix getting layers for IFC2X3 files.
  • Fix bug where subelement coordinates were incorrectly calculated in non SI units
  • Fix bug where you couldn’t copy quantities to other elements
  • Fix bug where unlinking a style that was invalidly linked didn’t work.
  • Fix minor error in console when changing drawings. See #1153.
  • Fix bug where annotative grids did not sync.
  • Fix #1857. Fix bug where deleting from the outliner was not tracked.
  • Fix #1872. Bug where duplicating an object didn’t duplicate its styles.
  • Fix bug where style colours were not auto synchronised.
  • Fix bug #1854. Materials are now auto replaced in Blender when you assign a new IFC material.
  • Fix bug where an added default material was not linked and auto synced.
  • Fix bug in IFC2X3 where updating style colours didn’t work.
  • Fix bug where diffuse colour was not correctly extracted from nodes
  • Fix #1856. Bug where you lost your existing container or aggregation when you added a new aggregation assembly.
  • Fix #1764. Bug where OpenLCA UI would freeze if it couldn’t connect to OpenLCA.
  • Fix #1855. Bug where authoring type dropdowns didn’t refresh.
  • Fix bug where removing a representation from a typed instance didn’t remove all data users.
  • Fix representation where removing a representation left objects with an empty mesh. Now a proper empty is used.
  • Fix bug where non-geometric objects caused the representations UI to not display
  • Fix bug where assigning a type did not use existing representation data in the scene if the context had changed
  • Fix bug where adding a representation to a type instance didn’t share meshes
  • Fix bug where you couldn’t add a plan representation to something with no context identifier
  • Fix interface bug where representations assigned directly to a context aren’t shown
  • Fix bug where existing meshes were not deleted when switching representations.
  • Fix bug where adding a representation to type instances didn’t ensure it was added to a geometric type
  • Fix bug where pie update container didn’t work.
  • Fix bug where copying an instance did not auto link the meshes.
10 Likes

Hello @noidtluom , Ive been experiencing data loss whenever i import an IFC file into Blender. Please help me find solution to this. Thanks.

blenderbim_edit

Hey @Roggii would it be possible to share your file ([email protected] if private) so that I can recreate your bug? It is difficult to know the reason without replicating it first.

We can also organise a screensharing session to debug your issue if necessary.

2 Likes

Sure that’s fine. I will share the file with you. Thanks

Hi folks - would it be possible to offer your section view tool as an individual add-on?

I teach in interior design and this would be very useful.

While I marvel over all the BIM stuff - this is beyond my comprehension!

Thanks! I got your file and the issue is now fixed. In the future, ideally you should export to IFC4 using proper IFC geolocation. The file is not correctly geolocated, which creates all sorts of complications, which we try to autodetect and work around. https://github.com/IfcOpenShell/IfcOpenShell/commit/b151ec2b0e17e23a15eb3c9f073ed8c8de694d2a

1 Like

Hey @cekuhnen sure thing! Have fun! https://github.com/IfcOpenShell/IfcOpenShell/blob/v0.7.0/src/blenderbim/scripts/standalone_section_shader.py

2 Likes

There is an add-on for this, it is not like that within BIM, because the IFC information is used to generate the 2D drawing of the elements and I think it is implied that this is only possible after entering the correct information in the objects to be dissect, but it might be possible to do it with the Nodes and use the grease pencil, with the layers to give different characteristics to the strokes .

My old attempt with node


I don’t know if you are aware that he also made an add-on to export subdivision surfaces with Blender to IGES.

1 Like

Thanks @noidtluom . I really appreciate your help. Cheers!!!

1 Like

Amazing ! This works very well.

How hard would this be to expand so one could place few section place icons (empties) and toggle between them like in SketchUp?

Hi, are there any instructions on how to do assemblies in Blenderbim? All the instructions that I have found are outdated and don’t work on the newer versions.