BlenderBIM Add-on new release!



  • edited August 2021

    @Ace said:
    There is also a little test library of elements that makes starting quicker,
    It's super quick once you know the hotkeys and the walls are loaded:
    Click -> load IFC library (below create IFC project) -> once loaded click the paper clip on the right to load each element

    how about this blenderbim-demo-library.ifc files. Lot of viewer do not display them. The one I use very often even crashes. I came around these files here ...
    Are there any more information available? May be at the wiki or at buildingSMART?

    cheers bernd

  • @bernd that file is not meant to be displayed by a viewer - it is a partial file containing only library data, but no project. To be legal (and thus viewable) I guess I need to wrap it in a project, even if it seems redundant.

    Thanks for bringing this to my attention, I thought I had once seen libraries used by themselves by an official buildingSMART example but I cannot find it now, and only find evidence that libraries can only exist wrapped in a project. Perhaps @geometrygym might know?

  • edited August 2021

    I relized myself the missing of the IfcProject. Since it has ifc file ending we need to do something in this regard (IMHO). If it has ifc file ending people will try to open it in a ifc viewer and will fail. The viewer could even crash. Viewer developer might say BlenderBIM does create non standard ifc. We should not let this happen.

    Neverless I like the idea to use ifc to save libray data.

  • Hi Dion, you're probably referring to a geometry gym sample that isn't compliant with the specification. At present the IfcProject is a mandatory singular concept in an IFC serialization. Perhaps this could be relaxed to be an IfcContext (supertype of IfcProject and IfcProjectLibrary) but at present the library needs to be declared by an IfcProject to be legal. It would need a schema change but also some working groups have explored ifc "snippets" which are isolated IFC data sets not necessarily in context.

  • But the real Rabbit (i.e. the one in all the photos) is my cute female pet bunny named Cinnamon. She can do tricks and her portfolio is here.

    Bet she speaks Python!

  • @bernd @geometrygym cheers, I've now fixed it.

    I still need to build a bunch of project library editing related UI - so that it shows up in the tree, and you can manage multiple library declaration (right now, only a single library declaration works). But at least it is legal now :)

  • Hi, I need help with the file “blenderbim-demo-library.ifc”. When loading in “IFC Project Library”
    I’m getting an error message: “Ifcopenshell.Error: Unable to parse IFC SPF header”
    Thanks in advance!

  • No love for M1?

  • @Carozo it sounds like you have not downloaded the library file correctly. Try file save as from this page:

    @VDobranov not at the moment, no, we don't build for ARM. Would you mind posting at ? I think to solve it, we need to purchase an ARM MacOS machine. Perhaps we could fundraise for this?

  • @Moult said:
    @VDobranov not at the moment, no, we don't build for ARM. Would you mind posting at ? I think to solve it, we need to purchase an ARM MacOS machine. Perhaps we could fundraise for this?

    Just to try the waters: are there any means to donate on particular goal?

  • @VDobranov not to a particular goal, sorry. But donation in general is supported at or

  • edited October 2021

    BlenderBIM Add-on v0.0.211031 has been released with 187 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:

    Let's get into the details.

    Upgrade to IfcOpenShell v0.7.0, for a 35% - 2,000% (yes!) speed boost and new developer toys

    The biggest aspect of this release, which is why we delayed it for a month, was an upgrade to v0.7.0 of IfcOpenShell. This represents a significant impact for developers, thanks to the tireless efforts by aothms. We will now benefit from geometry caching (in future releases), a new drawing generator (WIP), a huge speed boost ranging from 35% to 20 times faster depending on what you're doing, visualise bounding boxes and fill areas, SVG analysis, and version tags. Users can start to play with the ongoing drawing features in upcoming daily builds, and generally see things faster everywhere.

    New testable code architecture

    On the Python side, code has been rearchitected to allow for a more robust test framework and UI rendering. For developers, this represents a maturation of the codebase and developer community, including code standards for licensing, QA, style (black), linting, and TDD. Over 800 tests were written for this release with the new architecture, spanning from unit tests to full integration tests. For users, this is largely responsible for the staggering 68 bugs zapped during this release, so users will likely notice less regressions, and that the BlenderBIM Add-on will start feeling more and more like a native authoring tool.

    Partial project loading support

    You no longer need to load an entire project. By enabling advanced mode when importing, you can filter what you want to import, allowing you to load huuuge models much faster and only related to what you're planning to edit or review. Choose from filtering by location or by type, as well as new collection hierarchies.

    Parametric geometry is now default

    One of the biggest user impacts when editing is now that parametric geometry is default. You can now push and pull things as a mesh, but under the hood the parametric geometry will be preserved when possible. This leads to much more natural modeling and less paying attention to geometry modes and updating representations. This feature is also a leap of faith in standardised parametric IFC geometry, so keep an eye out for issues!

    Improved construction scheduling

    Construction scheduling continues to improve with bugs fixed around date calculations, rendering animations, real time date visualisation, Primavera P6 XER and resource import support, a new Ifc4D command line tool, improved formwork calculations, and more.

    So much more

    Other notable improvements include more point cloud support, user UI presets, real time type filter, bulk property and attribute editing, a few MEP system visualisation tools, and upgrades to the ownership and context editing modules. A huge thanks to the growing volume of new contributors who are joining the team and changing the industry. You can too!

    jchkochCyrilbrunopostlebitacovirbasweinchunchktheoryshawpaulleeDarth_BlenderMeetlatand 14 others.
  • All changes

    New features:

    • We now support importing 3D annotations, not just 2D ones. Neat.
    • Invalid annotation contexts coming from Revit are now accepted
    • IfcOpenShell validation now handles logical data types. Thanks rbertucat!
    • New feature to draw system arrows showing flow direction and port connections.
    • New MEP utility to select and print debug information about connected system elements
    • Importing resources for XER and XML files from P6 is now supported. Thanks HassanEmam!
    • Optimistically track all object edits whenever you toggle edit mode, not just meshes. Let's see how this goes.
    • Optimise owner check depending on your implementation and no longer create default users on IFC4. Can result in 50% faster script running on long scripted operations like imports.
    • You can now manually type in start/end dates for construction sequence visualisation instead of clicking the date picker hundreds of times.
    • New UI "persona" presets in preferences. Thanks vulevukusej!
    • Moving grid axes are now synchronised automatically
    • Resize object to storey now works for a variable number of storeys
    • Adding annotation now auto enables viewport decoration drawing.
    • First pass at connecting to new ifcopenshell.draw for drawing generation.
    • New hacktastic IFC patch to fix ArchiCAD spaces being loaded into Revit.
    • You can now split objects using a drawn edge, especially useful when creating slab pour breaks and fixing lazily modeled walls and columns. Thanks Gorgious56!
    • Ifc4D XER import now supports calendars. Thanks HassanEmam!
    • New feature to calculate side formwork, such as for columns.
    • Formwork area calculation now unions objects before remeshing to account for overlapping geometry
    • Types in type dropdowns are now sorted alphabetically for convenience.
    • Spatial elements in the import filter will now be sorted by elevation for convenience.
    • Users copying and pasting via ctrl-c/v will now also copy IFC objects.
    • Using duplicate move linked in a BIM project now also triggers IFC copying
    • BlenderBIM: import IFC PointCloud Representation support. Thanks LaurensJN!
    • Support for importing Primavera XER files for construction scheduling. Thanks HassanEmam!
    • Added IfcTypeFilter feature into BlenderBIM Search module. Thanks chunchk!
    • New feature to show inherited element type psets.
    • Get psets utility now supports getting material and profile psets
    • Get psets utility can now filter only psets or qtos
    • Element get_psets utility now returns the pset ID for convenience.
    • New feature to copy properties from one object to all selected objects
    • Reintroduced feature to copy attributes to selected objects.
    • You can now toggle module visibility to customise your UI. Thanks vulevukusej!
    • Copying parametric geometry from any source now attempts to preserve parametric geometry when possible.
    • Assigning a parametric layer type (for walls for now) now attempts to switch from non parametric to parametric geometry.
    • New feature to conveniently add a default material in a blank project when none exists.
    • The type of mapped representations is now shown in the interface, with an asterisk denoting it is mapped.
    • When updating representations, the existing representation type is prioritised unless you tell it otherwise.
    • Assigning a parametric profile type now auto switches from non parametric geometry to parametric geometry
    • Only show type selection buttons when a type is available.
    • New feature to calculate the radius of a polygonal circle
    • Upgrade to IfcOpenShell v0.7.0. Thanks aothms!
    • New Ifc4D command line interface. Thanks HassanEmam!
    • Adding type empties now adds it to the scene collection for convenience in case your types collection is hidden (which is most of the time)
    • New feature to add psets to all selected objects. Thanks vulevukusej!
    • Documented UX guidelines. Thanks Gorgious56!
    • Documented MacOS build instructions. Thanks m-clare!
    • When assigning types, your preference of dynamic voids are now preserved.
    • IfcOpenShell now supports geometry caching. Thanks aothms!
    • New feature to resize / squash / stretch objects to their storey height. Useful for remodeling IFCs for construction simulations.
    • New utility function to get storey elevations with elevation attribute fallback for more compliant sorting of building storey elevations.
    • Unlinking an object now also unlinks materials and styles too for convenience.
    • New feature to unlink Blender materials and IFC materials
    • Spatial containers are now shown sorted by Z index order for convenience.
    • Building storeys now show a derived storey height so you don't need to do math
    • You can now copy a representation from one object to another
    • FMHEM classes now updated to latest draft

    ... continued ...

  • ... continued ...

    • You can now toggle whether element filtering also affects spatial containers
    • Implemented point cloud export function. Thanks LaurensJN!
    • Use context filters during import when possible to optimise import times
    • New support for conversion based units with offsets, like fahrenheit.
    • Support auto detection of unit type when adding imperial units
    • Utility to print out all maintainable assets for FM paper documentation
    • New recipe (and essay) to fix ArchiCAD IFC4 door swings showing up in Revit
    • IfcCSV now supports setting properties to null values. Neat.
    • IfcCSV now supports editing properties that were previously null.
    • Add tooltips to the authoring panel. Thanks maxfb87!
    • You can now clear the active user for ownership history.
    • New usecase for adding conversion based units
    • You can now import and export and clear all IfcCSV attributes. Thanks vulevukusej!
    • Prioritise editing rendering surface styles over shading surface styles
    • New unassign aggregate feature.
    • Spatial containment now distinguishes between direct and indirect containment
    • Removing or changing spatial containers now supports updating more types of collection organisations
    • Maintain active object throughout complex IFC operations for a better user experience
    • Place structural items in collections for new project. Thanks Jesusbill!
    • Fix for structural surface items. Thanks Jesusbill!
    • Allow user to toggle duplicates when getting inverses in IfcOpenShell core.
    • You can now add and remove users for ownership history
    • Optimise create owner history to not rely on a person and organisation lookup, speeding up long procedures
    • Application data in IFC now reflects the latest IFC version tag
    • Removing contexts now also reassign to parent or remove references to the context.
    • You can now edit attributes of contexts and subcontexts.
    • Organisations now support null attributes.
    • Add support for null attributes for people, roles, and addresses.
    • Prevent using pset operators when no template available. Thanks Gorgious56!
    • Remove need for IfcConvert since we can drawing is now part of v0.7.0.
    • Improve UX by blocking the user from creating sub resources under a subcontract resource.
    • Add support for IfcBoundingBox visualisation.
    • New IfcOpenShell context ID filter.
    • Add support for IfcAnnotationFillArea.
    • New support for specifying collection modes.
    • Spatial elements now support 2D representations.
    • Generated construction visibility now works in renders, not just viewport view.
    • Improve UX where active object was swapped when adding voids. Thanks Gorgious56!
    • New feature to see the current frame's real life date as text during a generated animation
    • Editing psets can now accept user specified data types and auto-detect non-string data types
    • Be more accommodating when fetching properties to allow for users writing incomplete scripts.
    • Resource work duration can now be calculated based on counting produced products.
    • Resource work durations can now be calculated either daily or hourly
    • Optimise update owner history to speed up complex operations
    • Add support for specifying placement matrixes in project units or SI units.
    • New utility to get spatial and object decompositions from any IFC element
    • Create shape debugger now includes time information.
    • Deprecate auto detection of vendor workarounds as no longer necessary.
    • You can now filter imported objects by IFC class when loading a project
    • You can now unload a partially loaded project
    • You can now partially load an IFC filtered by spatial containers.
    • You can now load a project from the project panel.
    • IfcOpenShell SHA is now shown for versioning
    • Deleting openings or voided elements now also remove openings.
    • Non dynamically voided objects now auto update when their opening is removed
    • Assigning an opening now ensures it displays as a wire
    • BIMTester now runs within the BlenderBIM Add-on, implement attribute checking in IDS.
    • Remove create project library ability, as you should create a project first
    • Manual import offsets now apply on object placements for efficiency.
    • Immediately redraw the Library panel on load for improved UX. Thanks Gorgious56!
    • Notify if file already contains library element. Thanks Gorgious56!
    • Improve mesh IFC Representation User Experience. Thanks Gorgious56!
  • New fixes:

    • Objects now sync spatial hierarchy more robustly on export, and clean the collection tree in case the user messed it up.
    • Fix bug where during import sometimes aggregation collections don't match object names
    • Fix bug where imported grids were not linked and didn't auto track edits
    • Fix bug where auto geolocation offset didn't occur if placements were relative
    • Fix bug where copying a type also copied its type relations which is invalid.
    • Fixing bugs for Scheduling Module IFC4D, where P6XML Parser failing on calendar type. Thanks HassanEmam!
    • Fix regression bug where you couldn't add a grid.
    • Fix bug where imported types with representations but no instances were not fully linked.
    • Fix bug where switching to an object with modifiers applied would double the effect of modifiers.
    • Fix bug where large resizing of walls could result in broken geometry.
    • Fix bug where copying elements didn't ensure that material usages were unique
    • Fix terrible bug #1819 where duplicating mapped elements didn't actually copy the geometry mapping.
    • Fix bug where you could reassign class to another product type and create invalid relationships
    • Fix bug where BCF header file info was not loaded. See #1816.
    • Fix geometry bug for some types of IfcIndexedPolyCurve. Thanks aothms!
    • Fix bug with invalid initialization of local variable "data" in bcf. Thanks Nitschi!
    • Fix bug where auto assignment in the collection hierarchy failed if you had filtered out aggregates and you were assigning a subelement of an aggregate
    • Fix bug where you couldn't bulk copy non-geometric elements to other spatial containers
    • Fix bug where when deleting representations it could sometimes overreach and delete geometric, style, or layer data of other elements.
    • Fix bug where copying objects may sometimes result in incorrect location in the Blender collection tree
    • Fix bug where copying objects did not necessarily retain the existing context assignment
    • Fix minor bug where Python warnings showed up when delete operations were called
    • Fix bug where importing multiple assets sharing an already imported material fails.
    • Fix bug where the derived placements interface didn't take into account rotations
    • Fix deep magick bug where copying elements without having one of them active didn't actually copy them in IFC too
    • Fix bug where you couldn't filter imported subelements without also selecting their parents
    • Fix bug where copying elements shared a placement. This fix speeds up copying parent elements in the decomposition significantly, like when copying a storey.
    • Fix bug where copying a container also copied its contents
    • Fix bug where duplicating a collection messes up the collection tree.
    • Unassigning the last unit now cleans up empty unit assignments
    • Changing aggregation now ensures spatial containment is mutually exclusive to prevent invalid IFC data
    • Assigning aggregations now protects against various invalid aggregation combinations
    • When assigning containers, ensure aggregates and containers are mutually exclusive
    • Fix bug where assigning a spatial container didn't work with non local placements
    • Changing spatial container now guards against invalid containment operations
    • Unlinking elements is now a bit more stable.
    • Upon element removal, empty aggregates prioritise null if possible. Fixes a variety of invalid IFC bugs.
    • Fix bug where removing addresses and roles could leave other elements in invalid states
    • Fix bug. Removing an organisation now properly handles references appropriately.
    • Fix bug where removing a person no longer has the potential to leave files in an invalid state.
    • Fix bug where 2D contexts were not created with the right dimensionality.
    • Fix bug where you could accidentally add a context other than what you selected in the UI
    • Fix possible invalid scenarios when adding fillings. Thanks Gorgious56!
    • Fix error when displaying a selected but inactive object's properties with the pin feature. Thanks Gorgious56!
    • Fix error when filling has no IFC type. Thanks Gorgious56!
    • Fix bug where you could add a filling twice or to multiple openings.
    • Fix bug where you could add an opening twice to the same element.
    • Fix bug where copying an opening didn't copy relevant boolean modifiers too.
    • Fix bug where copying a filled opening would create an invalid relationship
    • Fix bug where structural member data was not updated correctly.
    • Fix bug where demolition animations were not generated properly.
    • Fix bug where nested task resource-based durations failed to calculate
    • Fix task duration calculation bug where hourly work greater or equal to 24 hours were incorrectly parsed
    • Parametric object gizmo scale now follows scene unit, and fix miles and thou-inch units. Thanks Gorgious56!
    • Fix bug where assigning a new container would shift object placements incorrectly due to SI unit conversion
    • Fix bug when shifting object placements and their children.
    • Fix bug where IFC patch didn't work on case insensitive file extensions
    • Fix bug where filtering did not work for indirectly spatially contained elements
    • Fix bug where aggregates break with filtered elements during import.
    • Fix bug where editing styles didn't work if factors were stored instead of RGB colours
    • Fix bug where openings were not unlinked or renamed if they were removed from a non-dynamic object
    • Fix bug where removing an opening might remove an element twice
    • Fix bug where project libraries were not legal.
    • Add transaction support for adding elements. This fixes a variety of undo bugs.
    • Fix bug where project library browser could self reference.
    • Fix bug where element replacement would sometimes fail leading to various problems.
    • Fix typo in material style assignment code. Thanks Gorgious56!
    • Fix bug when copying objects, don't copy their decomposition to prevent invalid IFCs.
    jchkochCyrilbrunopostlebitacovirCadGiruDarth_BlenderMassimoCoenArEhsanChtlcnnand 2 others.
  • edited November 2021

    @Moult : Do you know if blenderbim has been tested with the real-time collaborative addons Mixer or Multi-User for blender? It would be awesome if they can be combined in order to get real-time IFC-editing and engineering capability for multiple users using blender. See this post for info on them.

  • edited December 2021

    Hi, I have an issue setting up BlenderBIM. I am using Blender 3.0 so that could be causing the issue.
    I tried following Dion's quick demo but I don't have any of the circled options
    I do have BlenderBIM checked in addons and I do have the IFC Derived Placements option, so it seems that BlenderBIM is installed. Any ideas?
    EDIT: Seems I missed the create IFCProject step, it's solved now

  • @HaukMorten unfortunately those real-time collaborative add-ons work only with Blender, but there's a missing step to get it to synchronise with IFC edits. So without testing, I can tell you that out of the box it won't work (yet).

  • Thank you for your response @Moult . Well, it's a wish for later then. BlenderBIM still isn't mature enough for us to use in a production environment yet in either case, but perhaps some day in the not too distant future I can wish for some development funding internally to try to at least figure out what needs to be in place for us to begin to use in for engineering. I've already used it for geometry editing of IFC's that wouldn't open i Revit at all. Once one gets the hang the shortcuts, editing in blender is so much smoother than in Revit!

  • @HaukMorten said:
    @Moult : Do you know if blenderbim has been tested with the real-time collaborative addons Mixer or Multi-User for blender? It would be awesome if they can be combined in order to get real-time IFC-editing and engineering capability for multiple users using blender. See this post for info on them.

    I've tested all the collaboration add-ons I could find and none of them completely support even the standard Blender functions, let alone any add ons.

Sign In or Register to comment.