Presenting Blender as a new IFC authoring tool

I should’ve mentioned, the example I gave is if you want granular control. If you just want to import or export, it’s only one line of code:

Importing:

bpy.ops.import_ifc.bim(filepath='/home/dion/testb.ifc')

Exporting:

bpy.ops.export_ifc.bim(filepath='/home/dion/testb.ifc')

(note that’s from the master branch, I think the latest stable has a different name, like bpy.ops.bim.import_ifc.)

I’ve documented it all here for future reference: https://wiki.osarch.org/index.php?title=BlenderBIM_Add-on_code_examples

1 Like

BlenderBIM Add-on v0.0.200810 has been released with another 50 new features and fixes. The BlenderBIM Add-on is 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/

Highlights include new graphical interfaces for IFC COBie and IFC Patch. New IFC optimisation feature. Specify exchange requirements with BIMTester with improved auditing features. New quantity take-off tools.

New features:

  • Better command line interface for IFC COBie tool
  • IFC COBie now no longer creates CSVs if you only need an XLSX file
  • IFC COBie now supports the ODS format, as well as XLSX and CSV, for more interoperability
  • New GUI in the BlenderBIM Add-on to run IFC COBie
  • IFC Patch can now be used as a library as well as a CLI
  • New support for pythonocc-core 7.4.0
  • BIMTester now colour codes undefined/unspecified test lines
  • Check BIM project exchange requirements with the newly published “Project setup” MicroMVD
  • Check BIM project exchange requirements with the newly published “Geolocation” MicroMVD
  • IfcOpenShell utility module now lets you convert true north angles and IFC geolocation vectors
  • Improved documentation on what dependencies are used by the BlenderBIM Add-on
  • Check BIM project exchange requirements with the newly published “Element classes” MicroMVD
  • BIMTester can now explicitly audit NULL attributes and properties
  • New export support for IfcSweptDiskSolid for curves with no bevel profile geometry
  • Blank qto names are accomodated in invalid IFCs
  • When absolute coordinates are offset during an import, the offset is now recorded
  • Allow keyboard shortcuts for both import and export
  • Dimensions from MeasureIt-Arch addon are now supported in SVG drawing export
  • New feature to visualise IFC Diff changes
  • IfcOpenShell util.element.get_psets() now supports IfcComplexProperty
  • New IfcOpenShell utility function to replace attributes from one to another entity
  • New IFC Patch recipe to losslessly compress / optimise IFCs by recycling non-rooted elements, benchmarked with results similar to Solibri Optimiser (results may be slightly smaller or greater depending on the iterations run)
  • New UI in Blender to run IFC Patch recipes graphically
  • Check BIM project exchange requirements with the newly published “Geocoding” MicroMVD
  • New IFC Patch recipe to merge two IFC-SPF files into a single file
  • Quantity take-off tool now allows calculation of the depth (e.g. of an IfcSlab)
  • Quantity take-off tool now allows calculation of perimeter (e.g. of an IfcSlab)
  • Cleaned up object properties UI by splitting psets, qto, and structural relationships into their own panel
  • New quantity take-off utility to get the total length of selected edges
  • New support to import the area and volume unit settings of an IFC
  • When calculating quantities, they are now auto-converted into IFC project settings instead of metric units only
  • IFC CSV can now export type relationships
  • Simplfy GlobalId generation by automating it on attribute addition, and providing an inline refresh button
  • New quantity take-off utility to get the total area of selected faces
  • New quantity take-off utility to get the total volume of selected objects
  • New modeling utility to quickly add IfcOpeningElement relationships
  • Non-node-based materials now have support for transparency
  • IfcOpenShell updated, providing greater stability and geometric support for imports
  • IfcOpenShell Python now lets you check by_type() excluding subclasses
  • New support for exporting the latest IfcJSON format, with options for version 4 and version 5a, and compact / non-compact variants
  • Add a new blank material for use in generating drawings
  • Check BIM project exchange requirements with the newly published “Classifications” MicroMVD

New fixes:

  • Fix bug where IFC COBie fails on empty names of related objects from assemblies
  • Fix bug where IFC Clash would not run as a CLI, but only within Blender
  • Fix bug where IFC CSV incorrectly stores boolean data types
  • Fix bug where long, duplicate, material names fail to import
  • Fix bug where IFC2X3 files may not have coordinates reset properly when an IFC file has absolute coordinates
  • Fix import bug when getting a geometry type of an object with no representation attribute, like IfcGridAxis
  • Add shebangs, so that all CLI utilities can now be more reliably run on all systems
  • Fix import issue where some negative material IDs fail to import
3 Likes

This is the ONE YEAR MILESTONE RELEASE of the BlenderBIM Add-on! We’re releasing v0.0.200829 with 70 new features and fixes. 389 people have taken the pledge for a more ethical built environment. 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/

Highlights include improved IFC annotation and drawing generation, new quick architectural modeling tools, create schedules from IFCs, customised COBie outputs, and optimised IFC exports.

New features:

  • All CPU cores are now used for shapes in drawings generated from IFC. This leads to much faster drawing creation!
  • Users can now specify what objects should be cut in documentation with either a custom rule or with presets.
  • Adding a new representation subcontext when you haven’t yet defined a body auto-adds a body subcontext and clones the mesh
  • New button for the camera to quickly open the relevant drawing
  • Export now has an automatic bounding box representation being generated
  • New dumb wall geometry creator tool
  • New dumb stair geometry creator tool
  • New dumb door geometry creator tool
  • New dumb slab geometry creator tool
  • New dumb window geometry creator tool
  • 2D representations now support IfcIndexedPolyCurve so instead of just 2D curves you can have full 2D wireframes
  • New utility to quickly set object colours
  • New interface to manage different drawing styles
  • Drawing styles can now remember basic rendering settings and let you switch between them
  • New highly experimental DXF2IFC conversion script
  • Managing drawings now is done in a list instead of a dropdown for user convenience
  • You can now pick the vector CSS style and save it as a drawing style
  • Support for importing IfcGrid itself, not just the individual axes.
  • Importing IfcGridAxis now retain their UVW assignment and can store attributes
  • Support exporting IfcGrid and IfcGridAxis with all of its relationships
  • New grid creator tool for convenience
  • Doors now can have 2D annotation representation subcontext symbols auto generated
  • Windows now can have 2D annotation representation subcontext symbols auto generated
  • New button to edit the CSS style within Blender itself for convenience
  • Drawing styles can now store element filters to include / exclude elements in drawings
  • More robust footprint area calculation, specifically targeting better results for IfcSpace
  • Selecting multiple objects now lets you guess / fill out quantity sets in bulk
  • Enforce directories when selecting a MicroMVD for BIMTester for convenience
  • You can now purge project-specific IfcClassification hierarchies
  • Newly impored IfcClassification hierarchy for a project will show up immediately
  • IFC COBie will now launch the log as well as the spreadsheet when converting from IFC to spreadsheet
  • New more user friendly UI for sheet creation
  • Exports now auto detect curve / wireframe representations, so you no longer need to classify it manually
  • Native element support for importing IfcCircleProfileDef
  • Preset titleblock template now has a white background
  • You can now convert generated sheets to PDFs on the fly
  • New UI to manage schedules and link them to ODS spreadsheets (yes, this spreadsheet data can be generated from IFC too)
  • You can now convert an ODS spreadsheet into a vector schedule to be included on a sheet
  • Schedules can now be added to sheets
  • At export-time, the exported IFC is automatically considered for drawing generation, for convenience
  • You can now override the default COBie definition of a maintainable asset for both objects and object types
  • You can now specify custom IFC attribute mappings for COBie spreadsheet views
  • Support exporting tessellated polygonal face sets for much more efficient file sizes! (Suzanne shrinks from 84kb to 44kb)
  • Improve error reporting for BIMTester when it audits a list of IFC attributes
  • New dumb opening geometry creator tool
  • Native element support for exporting IfcCircleProfileDef
  • Grids in drawings now read from IfcGridAxis AxisTag attribute when available
  • Types are now automatically categorised in the project tree when assigned for the first time
  • Support IFC2X3 classification EditionDate CalenderDates
  • New utility to extract all IFC documentation for all COBie-defined maintainable assets
  • New utility to extract all relevant entity and enum descriptions from the IFC documentation
  • Creating drawing sheets now understand templates in any CSS unit
  • All SVG scales now are standardised to a human unit with improved spacing and placement.
  • Views are now placed within the titleblock border by default
  • Support for all known ODF units when creating schedules from different spreadsheet applications
  • Add support for imperial drawing scales
  • Add support for custom defined drawing scales
  • Add support for custom titleblocks
  • New preset title blocks for A1, A2, and A3 paper sizes
  • Drawing boundaries can now have different aspect ratios
  • Annotation tools are now in the viewport instead of properties tab for easier access
  • Drawings can now be associated with an IFC geometric subcontext target view to guide the drawing generation process
  • You can now generate annotation references for IfcBuildingStoreys
  • Bumped IfcOpenShell build, resulting in more reliable geometry processing during imports

New fixes:

  • Fix bug where parts of an aggregate are not placed relative to the whole in exports
  • Fix bug where some annotation tags won’t extract data correctly from IFC
  • Fix bug where aggregate creation only works if the aggregate collection exists
  • Fix bug where predefined types were not correctly audited by BIMTester
  • Fix bug where mapped representations belonging to a context fails to import
  • Fix bug where disabling the add-on triggered a error message
5 Likes

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

Highlights include multiprocessing import by default, smoother workflows for drawing generation, and improved MicroMVDs for OSArch certified IFC outputs.

Screenshot credits go to OpeningDesign’s OpeningDetail project for open source construction detailing.

New features:

  • Creating drawings now works with OpenGL render mode, allowing for better wireframe / hidden line rendering
  • New default site boundary CSS style
  • Multiprocessing is now enabled by default. It’s probably stable enough, so let’s test it even more!
  • You can now export to DXF automatically when creating sheets
  • Nested IfcSpaces can now be imported
  • Reloading IFCs now detects openings and projection changes, meaning it’s more robust
  • You can now set the viewport shadow from the sun position angle, useful for solar analysis
  • You can now set the georeferenced north from the Blender sun position
  • 2D annotation now extracts from IFC files directly instead of Blender, and checks for bounding box intersection to determine which annotation to show
  • Switching cameras now also activates the correct drawing styles on the fly
  • You can now add arbitrary annotation to a drawing, not just from a set of presets
  • You can now store arbitrary IFC data (attributes, properties, quantities, and type relations) in the SVG data, per drawing style
  • You can now copy properties to selected object even if the property set doesn’t exist yet
  • 3 new default hatch styles for square hatches
  • New hatch pattern for demolition
  • Show error message if attempting to add a drawing to a sheet that hasn’t been generated yet
  • You can now export quantities related to a spatial element, not just non-spatial elements
  • New debug panel lets you create shapes per STEP ID, useful for analysis of IFC geometric data
  • Dumb walls are now based on vertices by default, not edges, for faster, dumber, walls :slight_smile:
  • You no longer need to select the entire project when exporting. If you have nothing selected, everything is exported to IFC. If you select things, only selected items will export.
  • New feature lets you select high polygon meshes to help pinpoint why IFC files are so huge (looking at you, Revit!)
  • You can now switch between drawings with one click from the properties panel in the 3D view
  • The drawing list can now be manually refreshed in case you are manually creating drawings
  • Stroke linecaps are now rounded. Nicer looking drawings, you know.
  • The preset for cut objects for overall plans now includes IfcSpace, as it’s quite common
  • Text annotations in drawings can now be rotated
  • If the active object is a camera, a new temporary section plane will now match the camera
  • Text annotation now supports storing classes and IFC metadata in the SVG, like all other objects
  • Drawing dimensions now have support for imperial unit formatting
  • BIMTester can now audit for high polygon IFC geometry
  • Implement new Model Federation MicroMVD in BIMTester
  • Drawing styles can now store settings for render type, outlines, shadows, and lighting
  • You can now add openings by selecting the filling element, not just the opening element, for convenience.
  • The plan representation context is now exported by default. Less steps for 2D documentation!
  • Add support for exporting site and building addresses for IfcSite and IfcBuilding
  • Remove some deprecated representation item operators in the mesh properties panel
  • Creating drawings is now much easier with less manual workarounds
  • Users can now specify their own app to open SVGs and PDFs
  • Bump to the latest IfcOpenShell, for more robust geometry processing

New fixes:

  • Fix bug where adding text didn’t work with the new scale system
  • Improved material name canonicalisation, which fixes some import failures
  • Fix bug where 2D annotation curves weren’t probably exported
  • Fix bug where plan relative level annotations were not projected correctly onto drawings
  • Fix bug where enum properties wouldn’t be exported
  • Fix inaccurate and incorrect conversion to imperial units in quantity take off
  • Fix bug where sometimes you can’t add a representation context to an object
  • Fix incorrect auditing of geolocation MicroMVD in BIMTester
  • Fix bug where some shapes that use Blender modifiers are incorrectly detected as a wireframe
  • Fix incorrect auditing of geocoding MicroMVD in BIMTester
  • Fix bug where multiple presentation style assignments in IFC2X3 would get ignored in import
3 Likes

Hey @Moult! I was wondering, does BlenderBIM addon support extracting colors from IfcMaterialConstituentSet? As described in this post IFC Textures and Colors: Current Situation - #2 by Moult.

  1. Assigning material constituents, of which each have a colour (variation of technique 2)

@claimred unfortunately not - to add support for basic colour extraction is a few lines of code, but I was holding off so that I could implement a much more robust data structure in Blender for round-tripping the trifecta of material usages (single, layer, constituents).

Would you like to contribute?

1 Like

Would you like to contribute?

Sure, I’ll try. Is there a contribution and/or dev guide somewhere?

https://github.com/IfcOpenShell/IfcOpenShell - are you familiar with the IfcOpenShell library? If not, this is a good starting point: https://wiki.osarch.org/index.php?title=IfcOpenShell_code_examples

1 Like

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

Highlights include improved IFC clash detection results, IFC CSV can now modify classes, and new basic set of visual programming nodes for IFC and Blender Sverchok.

Screenshot credits go to Bruno Postle’s Homemaker project.

New features:

  • Exporting now sets the IFC file if unset for convenience
  • IFC CSV now supports modifying IFC classes
  • You can now set facet tolerances when importing
  • Experimental native roundtripping mode, for experimentation only, with style support
  • Visit wiki link in the add-on now points to specific BlenderBIM Add-on pages
  • Material property sets are now imported
  • IFCClash now optimistically skips coincident collisions, resulting in less false positives
  • Increased maximum contact threshold for IFC Clash allows clash detection to work for larger projects
  • IFC clash now uses iterator when a filter is specified for faster clashing
  • Auto add owner histories when the user exports IFC2X3 if none is specified
  • Classification trees are now stored in the Blend file, increasing portabilty of project data
  • 16 New IFC visual programming nodes for Sverchok, including:
  • Read IFC node
  • Create IFC node
  • Write IFC node
  • Create Entity node
  • By ID node
  • By Guid node
  • By Type node
  • By Query node
  • Select Blender Objects node
  • Create Shape node
  • IFC Add node
  • IFC Remove node
  • Generate IFC Guide node
  • Read entity node
  • Get property node
  • Get attribute node

New fixes:

  • Fix bug where spatial elements with a representation would import twice
  • Fix bug where box representations don’t respect project units
  • Fix IFC clash bug where spatial elements are unaffected by user filters
  • Fix bug where you can’t export if a classification is only applied to a type or spatial element
  • Fix export bug where you can’t export if project units aren’t explicitly set
2 Likes

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

Highlights include improved material and presentation layer support, improved geolocation support, and many more vendor workarounds.

New features:

  • New import model offset workaround for Bentley ProStructures
  • Implement workaround when importing invalid aggregates from Bentley ProStructures
  • You can now specify user coordinates to the ResetAbsoluteCoordinates recipe
  • The ResetAbsoluteCoordinates now attempts to avoid changing placements but only focuses on geometry coordinates, preventing coordinate double ups in tricky patching situations
  • Support importing IFC2X3 documentation information & reference dates, times, and file format mimetypes
  • The validator now validates whether you are using abstract IFC classes
  • Auto set file format settings when creating drawings in case you are doing your own renders as well
  • Add support for multiple dimension objects per view
  • New ability to round to nearest X for metric and imperial units
  • New drop down UI to select area and volume units (thanks theoryshaw!)
  • Log error in case users try to export an abstract class
  • Coding style standardised to help onboard new developers (thanks htlcnn!)
  • Add support for case insensitive file units when importing
  • New interface to manage presentation layers (e.g. CAD layers) in IFC (thanks Krande!)
  • You can now add / delete attributes in bulk by selecting multiple prior to adding
  • New utility class for Python coders to query which psets / qtos apply to an IFC class
  • You can now add / delete psets in bulk
  • You can now add / delete qtos in bulk
  • Add tooltips describing how to set external commands in preferences window
  • Improve intuitiveness of reassigning the IFC class of the active object
  • New IfcPatch recipe to extract elements into a separate IFC
  • New UI for material, material layer / constituent / profile set management
  • You can now convert from global to local coordinates
  • New category for IFC export workarounds for RIB iTwo costing program
  • New IFC workaround to export only triangulated geometry to Navisworks
  • IfcSverchok “By Type” node now has a dropdown UI to help select classes
  • You can now export attributes of the material layer set and constituent set itself
  • BIMTester is now more forgiving to run from any directory (thanks berndhahnebach!)
  • New IFC inspector interface to help debug, inspect IFC data, and be a teaching aid for IFC
  • IFC inspector supports expanding attribute lists and following a breadcrumb trail of nested references
  • Add import support for all attributes of the material layer set and constituent set itself
  • Support exporting more label metadata for material profile sets
  • Improved export support for presentation layers which assigns to representations (thanks Krande!)
  • New import support for presentation layers
  • Deprecated IFC material lists are now auto upgraded into constituent sets
  • Types with no geometry can now have material data imported
  • New workaround for incorrectly geolocated Revit files to auto detect the geolocation
  • Blender materials are now clearly consolidated into either materials or styles
  • New UI to manage material property sets instead of needing to use external CSV files
  • IFCCSV now continues executing even though it fails to change an attribute
  • IFCCSV now skips GlobalIds it cannot find
  • Now materials that aren’t also used as a styled item can be exported independently
  • New IfcOpenShell, with many new bugfixes

New fixes:

  • Fix bug where attributes wouldn’t import for some IFC classes
  • Fix bug where non uniform translations of spatial elements are exported with strange transformations
  • Fix error message when you switch drawing styles and a style it was referencing was deleted
  • Fix bug where Views wasn’t allowed to be in the IfcProject which prevented round-tripping
  • Don’t crash if you get invalid IFCs with missing attributes (thanks aothms!)
  • Fix bug where setting north angle from a geolocated IFC was wrong
  • Fix BIMTester error when creating a report with empty steps (thanks berndhahnebach!)
  • Fix bug where importing multiple grids with the same name fails
  • Fix bug where a styled item could be incorrectly assigned if an element has more than one context

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

Highlights include drastically improved material, geometry, and context IFC round-tripping, and stabilisation of the new material system.

Image credits go to the Opening Design Aalseth Residence team - available under CC BY-SA 4.0.

New features:

  • Add support for IFC2X3 material data imports
  • Vendor workaround for “treat styled item as material” now deprecated, as new material and style system is much better
  • Add support for importing IFC material description and category attributes
  • Native element roundtripping now supports layer assignments
  • Native representation roundtripping now auto-fixes representations that aren’t using contexts properly
  • Improved packaging and refactoring for BIMTester makes it easier for other devs, including FreeCAD integration (thanks berndhahnebach!)
  • Native geometry roundtripping now decouples surface styles
  • Native geometry roundtripping now lets you change styles independently from geometry
  • New experimental utility to upgrade IFC2X3 to IFC4, and downgrade IFC4 to IFC2X3 automatically
  • Native geometry roundtripping now works across different IFC versions, so you can roundtrip and change schema at the same time
  • Exporting classifications to different IFC schemas (including graceful downgrading) is now supported
  • Support graceful downgrading of material definitions from IFC4 to IFC2X3
  • Support built-in vendor workaround for importing invalid IFC properties coming from ArchiCAD
  • Roundtripping geometry now works for geometry which has one to many relationships between geometry and styles
  • Handle and gracefully accept invalid IfcGrid elements coming from Revit. Sigh.
  • New experimental support for Non-IFC, Blender object clash detection
  • IfcOpeningElements now only show as wireframes by default for convenience
  • Roundtripping now enables openings by default, which works much better with the latest Blender boolean modifier
  • The object property sets panel now also shows inherited psets from the construction type
  • Improved UI for psets and qtos with collapsible panels and improved readibility
  • New UI that shows inherited materials from the construction type if available
  • Add support for exporting material sets for construction types
  • All representation contexts are now round-tripped in native roundtrip mode, not just the body context.
  • New powerful and intuitive smart clash grouping feature (thanks vinnividivicci!)
  • The Optimise IFC patch recipe is now packaged with the BlenderBIM Add-on
  • The ExtractElements IFC patch recipe is now packaged with the BlenderBIM Add-on, letting you extract a subset of elements from a larger IFC file
  • Dumb grids are now auto placed in an IfcSite if it can detect one
  • Drawings now have classes for material layer set names
  • Improved usage descriptions for IFCCSV to help new users
  • You can now smart tag material attributes in drawings
  • New utility function to check is_a() in the schema without needing a file first
  • Auto add the currently loaded IFC when creating a drawing for the first time
  • You can now apply drawing styles to elements with material set usages
  • New vendor workaround for exporting to the DESITE BIM application
  • The Migrate IFC patch recipe is now packaged with the BlenderBIM Add-on, letting you upgrade or downgrade IFC versions
  • IFCs with invalid attributes are now gracefully exported with warnings when exporting to a schema which doesn’t allow it to let the user fix it easily
  • You can now bake parametric geometry into meshes

New fixes:

  • Fix bug where no colour is set if only a styled item has a style but a material has no representation
  • Fix default category to none, not load bearing, in case we import IFC2X3 where this property doesn’t exit
  • Fix bug where a material wouldn’t get assigned for multiple mapped representations
  • Fix warnings in copy attribute to selection tool
  • Fix import bug where some IfcOpeningElements aren’t placed in the correct openings collection
  • Fix regression where the section cutting plane doesn’t work unless you’ve selected an object
  • Fix bug where a drawing can’t be created with a file that uses material set usages
  • Fix issue where invalidly declared representation contexts from other vendors can confuse drawing creation
  • Fix bug where sometimes thes IFC class and product dropdowns get out of sync
  • Fix import bug where duplicate material names with accents fail to import
  • Fix bug where some aggregates can cause drawing generation to fail
  • Fixed example script in the IfcOpenShell Qt GUI viewer
  • Fix bug where spatial elements didn’t get styles exported correctly
3 Likes

BlenderBIM Add-on v0.0.210131 has been released with 110 (yes!) 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/

Image credits go to the Opening Design CTR team - available under CC BY-SA 4.0.

ZERO IFC data loss during import / export

The biggest impact to users include ZERO IFC data loss during imports and exports. If you’ve ever been concerned about losing data whenever you export from another “native” format or import into a “native” format with quirks and workarounds, worry no more. The BlenderBIM Add-on now uses IFC as a 100% native format. With the BlenderBIM Add-on you can edit IFCs and truly trust the quality and reliability of IFC data as a native format!

Twice as fast import times

Users will also experience much faster imports, where imports on average will be twice as fast. On some files which were affected by a presentation layer regression in the last release, they can be even 4 times faster to import. Also expect lighter Blender memory usage.

Blazing-fast export times

Users now no longer need to wait for exporting IFCs. Exporting IFCs is usually seen as a painful experience, but no more! The new version has blazing fast exports - for example a 350MB IFC can be exported in only 20 seconds!

Improved UI that adapts to your IFC version

When editing IFCs, you no longer need to be a guru who knows what’s in the IFC spec when entering in data now. The BlenderBIM Add-on interface will adapt to the particular IFC version you are editing, and provide options like number sliders and dropdowns to make sure you fill out your BIM data correctly.

Partial IFC editing

Users no longer need to edit the whole IFC if you don’t need to. The BlenderBIM Add-on now allows users to edit only portions of the IFC without affecting the rest of the IFC. You don’t even need to import the entire IFC file if you don’t want to. The BlenderBIM Add-on is one of the few IFC authoring tools that keeps track of ownership histories, so you can tell who edited what and when.

Whole new BCF-XML system

This new version also comes with a completely rewritten BCF-XML system, with full support for editing all aspects of BCF topics, comments, viewpoints, and more. IfcClash results also now export to BCF, so you can do clash detection and view results in other apps, or inspect issues in Blender.

The beginnings of a whole new system of 3D annotations

Although we didn’t get around to the full TO-DO list of improvements we have in mind for 2D drawing generation, you’ll discover a whole new set of 3D annotations which are in preparation for the new drawing system we’ll be working on in future releases.

Laying the foundation for future updates

With 100% native IFC authoring, partial IFC editing, and full ownership and editing tracking, we’re laying the foundation for a very exciting year ahead of Open Source and Free Software for the entire industry. Expect improvements in drawing generation, IFC-native parametric geometry editing, and even multi-user, cross-application simultaneous IFC authoring and collaboration. The future is bright. Join us and change the industry today at https://osarch.org!

A huge thank you to the rising number of community contributors who are helping code, test, translate, finance and make all of this possible for the entire industry.

New features:

  • New “clean wireframes” feature lets you easily apply edge split modifiers to elements to create technical drawings
  • New “link IFC” feature lets you easily append IFCs from another blend file to create a master file, good for large scale projects
  • BIMTester can now generate a report immediately after running a test in the same command (thanks rbertucat!)
  • HTML reports from BIMTester now specify an encoding for fancy characters (thanks rbertucat!)
  • BIMTester can now load in a custom IFC schema (thanks rbertucat!)
  • BIMTester now has a set of steps for testing aggregations (thanks rbertucat!)
  • Dimensions in drawings now show arrowheads and dimension text (thanks qwiglydee/BIMVoice!)
  • Improved naming for smart clash groups (thanks vinnividivicci!)
  • New feature to save a BCF project
  • You can now view and edit the BCF project name
  • You can now set the BCF author
  • You can now create new BCF projects
  • You can now add new BCF topics to a BCF project
  • New BIMTester translations into German and French (thanks berndhahnebach!)
  • New BCF library available for developers to supersede the older BCFPlugin library
  • New BCF library now has full BCFXML write and editing capabilities
  • Equal dimensions in drawings now show “EQ” annotations
  • New “Path” argument for BIMTester (thanks rbertucat!)
  • BIMTester HTML reports now shows skipped tests (thanks rbertucat!)
  • BCF comments are now shown in the UI as a subpanel instead of in the text editor which was pretty poor
  • Improved BCF UI
  • Optimised import now only considers surface styles, not all random styles
  • Import optimised for files which have loads of aggregations
  • New feature to snap spaces separated by wall gaps together to help create building energy models
  • New annotation decorations in 3D for leader lines (thanks qwiglydee/BIMVoice!)
  • New annotation decorations in 3D for stair arrows (thanks qwiglydee/BIMVoice!)
  • New annotation decorations in 3D for hidden lines (thanks qwiglydee/BIMVoice!)
  • BCF comments is now no longer read-only, you can now add/edit/delete comments
  • You can now add/delete BCF viewpoints
  • You can now add/delete BCF header files
  • BCF FoV ranges outside 45-60 degrees are now supported
  • 3D annotation decorations now support imperial units
  • New button to add, as well as annotation decorations in 3D for break lines (thanks qwiglydee/BIMVoice!)
  • New feature to copy the 3D grid to to active 2D drawing (thanks qwiglydee/BIMVoice!)
  • Misc annotation are now decorated in 3D (thanks qwiglydee/BIMVoice!)
  • You can now add/delete BCF reference links
  • You can now add/edit/delete BCF topic labels
  • You can now add/delete BIM Snippets in BCF
  • You can now customise the CSV delimiter in IfcCSV (thanks htlcnn!)
  • You can now add/delete BCF document references
  • You can now add/remove related BCF topics
  • New button to quickly open the drawing camera in the sidebar for usability (thanks htlcnn!)
  • IfcClash can now export to BCFXML, which is super awesome! You can now use the results in other collaboration apps and cloud platforms!
  • Grids are now decorated with grid labels in 3D (thanks qwiglydee/BIMVoice!)
  • IfcClash can now generate image snapshots of clashes and store them in BCFXML
  • IFC exporting is now super optimised, by writing directly from IFC itself in memory. As a user, this basically means that exporting to IFC is super fast - as fast as saving a native file.
  • Importing now stores STEP ID links for key rooted elements as well as key semantic elements, like elements, materials, and styles
  • IfcOpenShell pset utility module now handles all the possible syntaxes for ApplicableEntity, so you can determine exactly what psets are avalable for each element (thanks CyrilWaechter!)
  • 3D annotation decorations now support anti-aliasing
  • All IFC editing completely rewritten and refactored to use partial editing. As a user, this means zero IFC data loss during imports and exports for all geometric information as well as all non-geometric information.
  • IFC import heavily optimised due to new partial editing paradigm. Expect IFC files to import twice as fast as they did before (or four times as fast if you were affected by the presentation layer regression bug in the last release).
  • Entire UI completely redesigned to a more consistent UX, which is easier on the eyes with less nested boxes, and shows more IFC information
  • New IfcOpenShell placement utility module for calculating relative coordinates
  • Representations can now be added to any context. This includes invalid ones or contexts (i.e. not subcontexts) themselves, or those with missing target views
  • Switching representations will now change all linked data objects too, not just the active object
  • Optimisations and caching improvements to IfcOpenShell pset utility module (thanks CyrilWaechter!)
  • When viewing IFC attributes, now the UI will distinguish between NULL/None and simply empty attributes - this means as a user you know whether or not the data is truly empty or if the BIM author simply hasn’t gotten to it yet
  • All IFC attributes intelligently now have a new UI depending on the data type. This means number sliders, true/false checkboxes, and dropdown lists to make it easier for users to get BIM data right.
  • All enumeration options are now shown when editing attributes, so you can pick from the list instead of checking the spec.
  • All attributes are detected from the relevant IFC schema version, so you can’t accidentally put IFC4 data in an IFC2X3 file or vice versa
  • You can now create fresh IFC projects prior to exporting to a file
  • BIMTester can now output Zoom SmartView to visually zoom to failed tests (thanks berndhahnebach!)
  • Grids are now auto resized to the drawing boundaries upon adding (thanks qwiglydee/BIMVoice!)
  • IFC class dropdowns are now generated specific to the IFC schema version
  • Psets now respect shared STEP IDs, so the one-to-many mapping is preserved
  • Like attributes, psets and qtos now are sensitive to schema, data type, and distinguish between null vs empty
  • Aggregations no longer use collection instances, which was a bit silly and confused a lot of users
  • IfcPerson data is now imported. Previously it wasn’t.
  • IfcOrganisation data is now imported. Previously it wasn’t.
  • You can now edit the IFC organisation Identification attribute, which was previously missing from the UI
  • New feature in IfcCOBie to let you process the currently loaded IFC file (thanks ihabelaghoury!)
  • New annotation decorations in 3D for sections (thanks qwiglydee/BIMVoice!)
  • Drawings can now detect other drawings and generate section references (thanks qwiglydee/BIMVoice!)
  • BIMTester now has a dedicated standalone GUI (thanks berndhahnebach!)
  • BIMTester has improved CLI arguments (thanks berndhahnebach!)
  • New feature in IfcCSV to let you process the currently loaded IFC file (thanks ihabelaghoury!)
  • IfcPatch is now packaged so you can install it separately as a Python module (thanks CyrilWaechter!)
  • Full support for editing IfcMaterialList added!
  • The reusability of material set relationships are now round-tripped
  • Like attributes, materials now are sensitive to schema, data type, and distinguish between null vs empty
  • User is banned from creating IFC2X3 material psets because they are annoying
  • Accomodate custom pset templates for materials
  • BIMTester BIM auditing tools have started to be translated to Italian and Dutch (thanks berndhahnebach!)
  • IfcOpenShell geolocation utility can now apply geolocation transformations to matrixes, not just vectors
  • “Fake geolocation” from offending IFC files which are handled as Blender offsets are now stored with a dedicated UI so the user knows if the geolocation is correct
  • New Project UI to show basic project metadata about the currently active IFC project
  • IfcPatch extract elements recipe now supports bringing across openings as well, not just the elements you’re interested in (thanks FreakTheMighty!)
  • You can now load new classification libraries on the fly
  • You can now mix classification libraries with project references
  • Remove setting to merge or import aggregates as the new aggregate import improvements make it obsolete
  • IfcCSV now supports exporting information about the related containing spatial structure element, useful for creating schedules related to floors, buildings, or spaces
  • New IfcOpenShell date utility module, because dates shouldn’t be something we need to think about
  • Groups are no longer shown in the tree where they typically clutter things and don’t add value
  • Openings are always imported now using Blender booleans
  • Qto utils now use the bmesh volume calculation method, which after the upstream Blender bug was fixed, leads to more accurate volumes for quantity take-off
  • New “remove deep” function in the IfcOpenShell element utility module for purging IFC data selectively (thanks aothms!)
  • The huge MVD panel completely removed and reorganised into import, export, and geometry editing UI locations for improved usability
  • New pie menu (press shift-E in the 3D viewport!) for quickly reaching common geometric editing functions
  • Nicer presentation layers UI, more what you’d expect out of traditional CAD layers.
  • Owner histories are now supported for adding new products, with proper history timestamp
  • Export time is now output to console for convenience
  • Writing 2D or 3D IFC curves from a Blender mesh is now possible in IFC2X3
  • Editing attributes now supports updating ownership histories, with proper history timestamp
  • Updating aggregates now supports updating ownership histories, with proper history timestamp

New fixes:

  • Fix bug where selecting the IFC file for drawing generation didn’t work
  • Fix bug where aggregates where accidentally hidden when generating drawings
  • Fix crash when creating drawings on Windows with Blender versions >=2.91
  • Fix issue in selector utility when filtering with boolean values (thanks c4rlosdias!)
  • Fix bug where IfcSverchok’s IfcGetAttribute node would not work (thanks htlcnn!)
  • A huge ton of IfcOpenShell improvements which I cannot fully summarise like geometry generation stability fixes, as well as crash fixes when removing elements as well as manipulating inverse relationships (thanks aothms!)
  • Improved snapshot filename checking in the new bcf library (thanks htlcnn!)
5 Likes

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

As the prior release was an entire rewrite, there were consequently a lot of bugs introduced. This release is primarily about fixing those bugs, so no fancy release highlights … unless you count the experimental 4D scripts, which are cool. With a more stable foundation, we can move forward and continue to build features as well as UX improvements.

Also Cinnamon is my new pet rabbit :smiley: Isn’t she cute!

All changes

New features:

  • BIMTester now operates on single feature files, which heavily improves usability
  • BIMTester custom schema is now specified as an argument, not as a tester requirement, which is where it belongs
  • BIMTester sentence quote usage is now standardised and always enable translations
  • You can now load the active IFC file into a BIMTester audit. No need to export first!
  • Now, users don’t need to consider include curves and 2D annotations as they are always imported
  • You can now specify a set of custom step definitions to BIMTester, go and write your own test definitions!
  • New BIMTester web app mockup BIMTester Requirements Generator
  • Validating IFCs UI now moved over into debug panel
  • New create shape debugging tool to help determine broken or crashing elements
  • Type representation maps are now shown in the IFC Representations UI panel
  • Type representations are now always imported (better for authoring), and also import super fast compared to before (before, enabling types being imported would significantly slow down import times)
  • Only IFC files are now shown in the export file dialog for a less confusing user experience
  • IfcPatch is now callable from the command line (thanks htlcnn!)
  • New IfcOpenShell.util.type module for checking applicable type classes.
  • You can now assign types with a smart type filter, without needing to first import types into Blender
  • New build script for IfcPatch to distribute binaries (thanks htlcnn!)
  • IfcOpenShell date util now supports converting to IFC2X3 date entities
  • Highly experimental script to convert from P6 XML into an IFC task tree
  • Highly experimental script to convert from IFC task trees into a Gantt chart JSON for jsgantt-improved
  • You can now edit parameters of parametric profile definitions in geometry.
  • New basic UI to view tasks in an IFC file
  • You can now add type instances, and mapped representations are enforced.
  • STEP IDs are now shown for non-rooted elements, like grid axes.
  • Blender now helps prevent saving Blender without having an exported IFC
  • Improve UI to change spatial container to prevent accidentally selecting incorrect objects

New fixes:

  • Fix bunch of error messages (commonly seen in IFCCSV) when you try to get a property value which is null
  • Fix bug where BIMTester audit classes dropdown wouldn’t show.
  • There is now an ID and GUID map to Blender objects for easy access especially for devs
  • Fix bug where Blender booleans wasn’t good enough. Now we’re back to IfcOpenShell with optional Blender conversion on a case by case
  • Fix bug where unable to install add-on in older Blender versions
  • Fix bug where switching representations would not work or create duplicated meshes
  • Fix error when importing consecutive files
  • Fix bug so that users can now reassign the IFC file location if it moves.
  • Fix bug where vertex welded happened across representations (thanks aothms!)
  • Fix bug where spatial objects with representations didn’t import correctly
  • Fix import bug where loading existing elements wouldn’t work
  • Fix crash on Windows when removing property sets (thanks aothms!)
  • Fix crash when reassigning class (thanks aothms!)
  • Fix unable to load IfcPatch recipes (thanks htlcnn!)
  • Fix regression where dumb objects didn’t get an IFC class
  • Fix ability to create grids which was totally broken
  • Fix bug when adding grids to drawings, which also was totally broken
  • Fix bug where product and type representations wouldn’t be linked data in Blender when importing
  • Fix bug where representations wouldn’t be purged correctly if they were part of a layer with many items
  • Fix bug where you could create mapped representations without having a type product
  • Fix bug where removing a mapped representation did not properly consider all mapped usages
  • Fix bug where switching construction type didn’t enforce appropriate representation maps
  • Fix bug where you couldn’t import two different IFC files in succession in the same Blender file
  • Fix bug where only a light removal occured when removing elements. Now, a full geometry purge is done as well
  • Fix bug regression in the absolute coordinate offset feature where I forgot to convert non-meter units
  • Fix bug where geolocation was lost if you tried to edit an absolutely positioned file
  • Fix bug where unable to install add-on due to clash with Blender-OSM.
  • Fix bug where you couldn’t copy classes without representations.
  • Fix bug so that null ownership histories in IFC4 are now allowed
  • Fix bug where you couldn’t edit the geometry of a grid axis
  • Fix bug where copying a class did not enforce mapped representations
  • Fix bug where removing mapped representations leaving you with nothing was a poor user experience
1 Like

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

This release focuses on further stabilisation and maturing of the new native authoring paradigm, to get back to building cool new features, now with a better foundation in place.

Users will notice a ton of bug fixes and UX improvements - the biggest being that authoring geometric aspects of an IFC was previously a real pain in the neck, as you had to keep track of all your changes, but now the basics are back in place and manual IFC syncing is no longer necessary. Note that authoring in general is still immature … we’re on it, I promise! Authoring pset templates and geolocation now is also much more fun. More tools can also operate in bulk, so you don’t need to do things one by one.

However if you’re a dev this release is pretty awesome because so many utilities have been improved with a new Blender-agnostic API, where anybody can easily automate and author IFCs with a high-level API. Even if you’re not a dev, you’ve probably noticed preliminary, but rapidly growing support for more modules, like managing groups, structural analysis models, construction sequencing work plans, and cost schedules. Yep - the under-the-hood makes a big difference! If you’re a poweruser or dev you’ll also love the new automatic conversions of meshes to solids, so you get the best of both geometry paradigms and better integration with solid-based BIM apps! Oh, and of course, check out the new daily developer builds to keep up with the rabbit, uh, rapid changes!

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

New features:

  • During local <-> global coordinate conversions you can easily get and set the 3D cursor
  • New documentation written for IfcPatch
  • Meshes are auto updated in the IFC when you export, so you don’t need to explicitly update mesh representations
  • Changing the name of a Blender object now also changes the IFC name
  • Aggregate creations when importing large files is now faster
  • Rebuild pset template authoring UI to be way less confusing and match the UX paradigm of other modules
  • IfcOpenShell now has preliminary support for IDS (thanks aothms!)
  • You can now automagically convert meshes into rectangular solid extrusions
  • You can now automagically convert meshes into circular profile solid extrusions
  • You can now automagically convert meshes into arbitrary profile solid extrusions
  • You can now automagically convert meshes into arbitrary profile with voids solid extrusions
  • BIMTester now supports both MicroMVD features or IDS for your BIM audit specifications
  • New module to integrate with Augin to easily upload your IFCs into an augmented reality (AR) platform!
  • Experimental gizmo for changing parametric extrusion depths (thanks qwiglydee!)
  • You can now reassign classes in bulk
  • Minor usability fix to denote if a pset has no properties set
  • Powerusers can now toggle hiding of null / empty properties
  • Nullness auto-toggles when editing properties. Neat. One less click! (thanks BIMVoice for the suggestion!)
  • We ship IfcConvert with the add-on now.
  • IFC drawings now store camera extents as IfcBlock. Note: still experimental.
  • You can now view, add, edit, and remove IFC groups.
  • You can assign and unassign products to IFC groups.
  • The “Allow non-element aggregates” workaround for ProStructures is now deprecated. It’s handled automagically.
  • Materials will now distinguish between IfcMaterialLayerSet and IfcMaterialLayerSetUsage
  • Experimental support for Python 3.9 for those on custom or alpha builds of Blender 2.93 and above.
  • Add support for square and cubic decimetre units.
  • You can now add IfcMaterialLayerSetUsage to elements
  • You can now reorder items in a material layer, constituent, or profile set
  • You can now case insensitively search for psets, properties, and attribute names
  • Automatic daily Blender developer builds are now available on Github for those who don’t want to wait for stable releases for features / fixes (thanks krande!)
  • You can now unlink objects and styles of elements that you’ve lost the original IFC of, to recover broken files
  • You can now bulk assign / unassign construction types
  • Upgrade / uninstall instructions are now provided in the add-on preferences UI to prevent users running into half upgraded issues
  • Adding drawings now creates the necessary groups and psets, with an experimental integration with IfcConvert. Note: highly experimental and incomplete!
  • Add support for nano and micro metre units. Who are these people using these units anyway? What is this, a house for ants?
  • Reimplement support for creating structural curve representations
  • You can now import structural curve members (again)
  • You can now author (add / edit / remove / assign / unassign) structural analysis models (thanks Jesusbill!)
  • You can now delete objects in bulk
  • Experimental operator to do efficient deep purges for devs, if stable, will result in way faster object deletions in a future release (thanks aothms!)
  • The IFC Debug inspector now also shows inverse references, great for debugging IFC2X3 files or style relationships for example
  • You can now import structural curve connections (thanks Jesusbill!)
  • Structural entities during import now don’t spam spatial tree warnings (thanks Jesusbill!)
  • Object placements are now updated on export automatically in case you forgot to sync them in authoring mode
  • You can now import structural point connections
  • Structural elements are now organised in collections (thanks Jesusbill!)
  • ExtractElements IfcPatch recipe now retains aggregation relationships
  • Swept solids are now natively handled again during imports for faster rebar imports
  • You can now view / add / edit / remove structural boundary conditions for connections points
  • Improve usability to run IfcPatch recipes without typing in arguments
  • BCF now documents its requirements.txt file for devs (thanks TestPrab!)
  • You can now import and export IfcCSV with the current active IFC in memory without first writing to disk. Nice. Bulk editing!
  • You can now view structural member connections (thanks Jesusbill!)
  • New utility function for getting primitive data types of attributes for devs
  • Brand new ifcopenshell.api for devs. Basically, now you can easily automate any behaviour in the add-on via your own scripts. Also, you can use the entire capabilities of the add-on without even needing Blender.
  • Upon export, it now synchronises any objects you’ve deleted from your scene, so you can just do regular Blender deletes instead of pressing the “X” button
  • You can now select objects in the viewport from the IFC Debug Inspector via their GlobalID. (thanks ihabelaghoury!)
  • Ownership history tracking is now implemented in roughly half of the operations now. Getting closer towards full coverage, where we can then start tackling version control!
  • OCC is no longer loaded on startup, to prevent clashes with other add-ons.
  • You can now edit structural boundary conditions on member connections themselves. (thanks Jesusbill!)
  • You can now add and remove work plans for construction sequencing. (thanks bosonprojets and Jesusbill!)
  • You can now remove structural connection conditions (thanks Jesusbill!)
  • You can now add new structural connections to members
  • Point connections are now supported as proper entities with a placement and vertex, instead of a special empty object (thanks Jesusbill!)
  • A reference graph view is now auto created for convenience when creating a structural analysis model
  • You can now view, add, and remove cost schedules.
  • Geolocation utilities now supports converting either X or Y axes for checking grid north vs true north vectors
  • You can now get and set true north rotation independently of grid north

New fixes:

  • Fix bug where selecting high polygon meshes for debugging fails
  • Fix bug where Blender offsets were not considered in local <-> global coordinate conversions
  • Fix bug where cursor was not placed in the right unit after a local <-> global coordinate conversion
  • Fix bug where undo operations might invalidate the internal ID map and break everything
  • Fix regression where IFC files were loaded twice during import. What a waste.
  • Fix bug where properties which IfcCountMeasure data types and similar were not editable
  • Fix bug where existing Blender offsets weren’t used when importing two offset models consecutively. This helps with model federation.
  • Fix bug where you could add psets of the same name multiple times
  • Fix bug where you couldn’t do import profiling on Windows. (thanks erab!)
  • Fix bug where sometimes cartesian point offsets wouldn’t get correctly detected for poorly geolocated files.
  • Fix bug where nested aggregates failed to import
  • Fix bug where material / style UI was showing without a loaded IFC
  • Fix bug where assigning new constituent or profiles to a material set was broken
  • Fix bug where you couldn’t assign a window or door type
  • Fix bug where loading pset templates makes it unable to install on Windows
  • Fix bug where you couldn’t add layers to a fresh project
  • Fix bug on Windows where sometimes the body representation wouldn’t be loaded by default
  • Fix bug where the iterator might not not know if a geometric set was 2D or 3D (thanks aothms!)
  • Fix bug where quantities couldn’t be extracted in IFCCSV (thanks plaes!)
  • Fix fundamental bug in utilities where coordinate placements were not correctly resolved
  • Fix bug where nested aggregates were not nested in the scene during import
  • Fix bug where getting applicable psets didn’t work on subsequent calls (thanks CyrilWaechter!)
  • Fix bug in BCF where it treated project data as mandatory instead of optional, leading to failed BCF loading
  • Fix bug in BIMTester where it doesn’t run if you have multiple drives on Windows (thanks rbertucat!)
  • Fix fatal bug where languages were not bundled with the add-on so you couldn’t even run BIMTester
  • Fix bug in IfcCSV where the delimiter was not specified correctly for non-English locales
  • Fix bug where you couldn’t set logical properties in psets.
  • Fix bug where IFCXML support was seemingly not enabled. (thanks aothms!)
  • Fix bug where the IFC schema had a typo which made it impossible to add IfcTransformers
  • Fix bug where you couldn’t even add IFC type instances for IFC4. Nasty.
  • Fix bug where assigning a spatial container didn’t also update the object placement tree
  • Fix bug where Blender loses precision for geolocation metadata.
3 Likes

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

This mammoth release is the first release since we announced that the BlenderBIM Add-on has been awarded an Epic Games MegaGrant. This funding will help accelerate our roadmap in providing stable geometry processing for the entire AEC industry, vital 2D drawing support, and cross-disciplinary features. Similarly, we are proud to announce 2 sponsored Google Summer of Code students who are making outstanding contributions to the project!

image

Blender 2.93 support, even faster IFC4 imports, and we made the add-on 3x smaller!

With the latest release of Blender 2.93, the BlenderBIM Add-on now supports the latest version. For those still on Blender 2.92 and below, developer builds are still available on Github.

Users will now also experience a huge speed boost which may be 8 times faster when importing IFC4 files with tessellated meshes thanks to optimisation works done by aothms. The new drawing system is now in progress, which has led to a huge reduction in the BlenderBIM Add-on filesize. The add-on is now three times smaller - all the features you love (and more), shipped in only 40-60MB (depending on your platform), compared to up to 180MB previously!

New native parametric wall and slab authoring tools

image

The new parametric engines give us a glimpse what native IFC geometry authoring can look like, with the new wall and slab authoring tool. Creating and editing walls and slabs are now super slick with sketch-generated walls, hotkeys, auto generated axis, quantities, joining, splitting, mitred joints, and more.

image

The new object type insertion interface lets you insert any object from your project collection. A new project library panel lets you import types from other IFC projects, paving the way to an asset library of IFC objects.

New cost planning tools

An entirely new cost planning module is available. Did you know that if you worked with native OpenBIM IFC, your cost planning is directly integrated with your BIM model? The BlenderBIM Add-on is the first in the industry to provide native IFC authoring for cost planning. With support for model linking, automated quantities, new quantity take off tools like a formwork calculator, and arithmetic operators, subtotals, and more, imagine a future where our BIM models don’t have to deal with lossy import and exports, and tedious model mapping.

New construction sequencing tools

Like cost planning, an entirely new construction sequencing module is available, with the BlenderBIM Add-on an industry first in providing native IFC authoring for construction sequencing. Tasks are created directly integrated with the OpenBIM model, with support for task trees, critical path analysis, gantt chart generation, floats, task dependencies, and more. You can also visualise and generate construction animations with speed controls. Also supported is imports from P6 XML and MS Project.

Progress in structural support

The BlenderBIM Add-on now has improved support for structural analytical models, with more nuanced controls over editing loads and coordinates and axes. Work is still in progress, but it is exciting to see where we’ve gotten to so far!

More support for the latest OpenBIM standards

If you are a BIM poweruser, staying up to date with OpenBIM standards is made easier with open-source, as you can really tinker and get into the details of new technology. Our GSoC students Artur and Prabhat have been working hard on the new Information Delivery Specification (IDS) validation technology support, and BCF XML v3.0 support. Similarly, Moult has released a new bSDD version 5 API library, along with new Lighting geometry support, and aothms and civilx64 has been hacking away at the new infrastructure geometry support. Other interesting things to take note in the IfcOpenShell repository include a new IfcCityJson module by LaurensJN. Check out the repository and support all of these interdependent projects!

So much more

As usual, a ton of bugfixes, minor usability improvements, and full details are elaborated in the detailed changelog below.

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

New features:

  • Add support for quads in meshes when converting from DXF to IFC. Thanks brunopostle!
  • Work plan attributes can now be modified
  • Work schedule attributes can now be modified
  • Work calendar attributes can now be modified
  • You can now assign and unassign project declarations for project libraries
  • Geolocation MicroMVD now supports checking true north
  • You can now add / remove material profiles in a profile set. Thanks Jesusbill!
  • You can now assign parameterized profiles to material profiles. Thanks Jesusbill!
  • You can now edit cost schedule attributes. Thanks Jesusbill and SigmaDimensions!
  • Cost items can now be added to cost schedules, as well as child cost items. Thanks Jesusbill and SigmaDimensions!
  • You can now just select doors / windows when adding voids for usability.
  • You can now create IFC project libraries
  • Assigning aggregates can now be done in bulk
  • Structural member axis orientation can now be specified. Thanks Jesusbill!
  • Spatial container assignment can now be done in bulk
  • You can now assign summary tasks to a work schedule. Thanks SigmaDimensions!
  • You can now toggle expansion of the cost schedule tree.
  • Material profile set usages are now supported. Thanks Jesusbill!
  • Spatial aggregations are now auto-assigned upon creation.
  • Spaces are now always imported by default, using the same spatial tree structure for consistency.
  • Multiple cost item summaries are allowed and you can now remove cost items.
  • You can now assign task trees to work schedules. Thanks SigmaDimensions!
  • Removing subgraphs of the IFC now uses batching by default. Thanks aothms!
  • If you are already authoring a file, exporing no longer prompts for a file location
  • You can now copy classes in bulk
  • You can now edit task attributes. Thanks SigmaDimensions!
  • New UI to edit both task trees and task attributes.
  • You can assign task predecessors and successors. Thanks SigmaDimensions!
  • Collection assignments for spatial structure are now auto synced on export
  • You can now load project libraries and browse type products
  • Selecting an IFC file dialog now only filters IFC files for convenience
  • In a project library, you can now toggle declared products
  • New support for task times. Thanks SigmaDimensions!
  • Work schedule UI now shows start and finish times.
  • You can now assign / unassign building elements as constructed products to tasks
  • You can now generate gantt charts from work schedules
  • You can now append product types from another project or project library into your project
  • You can now assign products to cost items. Thanks SigmaDimensions!
  • You can now import work schedules from P6 XML exports
  • You can now add crew and subcontractor resources
  • New bSDD library for developers
  • Resources may now be assigned and unassigned to products. Thanks SigmaDimensions!
  • You can now edit cost item quantities.
  • You can now edit cost item values with subtotal calculations.
  • New “cha-ching” noise when you’re checking out cost schedules
  • You can now assign derived quantities from products to cost items
  • You can now import predecessors and successors from P6 XML
  • “Counting” cost quantities now auto count the number of assigned products for convenience
  • Work schedules can now be assigned to work plans. Thanks SigmaDimensions!
  • OAuth support in bSDD now available.
  • New work calendar UI.
  • New system to modify calendar working and exception / holiday times, with support for recurring times.
  • Improved time and date support in date utilities.
  • Support all recurrence types and time periods in work schedules
  • Pset API usecases are now decoupled from the BlenderBIM Add-on
  • P6 XML root level activities are now supported on import
  • Support assign, edit, and unassign lag times for task sequence relationships
  • Support importing calendars from P6
  • Support multiple versions of P6 XML imports
  • Support importing P6 sequence types
  • You can now edit sequence relationship attributes. Thanks SigmaDimensions!
  • You can now select all products assigned to a task. Thanks SigmaDimensions!
  • New support for IfcDuration in date utility.
  • Support purging when removing nested tasks in a schedule
  • Grouped tasks now support deriving start, finish dates, and elapsed durations in the task tree
  • Support importing activity and calendar assignments from P6
  • You can now visualise construction progress at a particular date in your work schedule
  • You can now generate construction sequencing animations within a date range
  • You can now change animation speeds for generated construction sequences with different speed controls
  • You can now add, edit, and remove structural load cases. Thanks Jesusbill!
  • Microsoft Project XMLs can now be imported as construction sequencing schedules. Thanks SigmaDimensions!
  • Support nested tasks in MS Project XML imports
  • Add support for point orientations for structural analysis. Thanks Jesusbill!
  • Implement support for adding / removing load groups. Thanks Jesusbill and ihabelaghoury!
  • Arithmetic formulas are now supported for cost value components
  • New IfcPatch recipe to clean up IFCs that store quantities in properties instead of quantity sets
  • New IfcPatch recipe to convert units of an IFC file
  • Calendars can now be shown in the work schedule task tree
  • Derived durations now calculate working days based on the working calendar
  • Calendar task inheritance is now supported
  • P6 XML lag times are now imported
  • Updating durations of task now auto refresh the finish dates based on the calendar
  • New module structure for BCF XML v2.1 and v3. Thanks TestPrab!
  • You can now edit a structural connection coordinate system. Thanks Jesusbill!
  • User friendly drop down to select relevant quantities for associated products on cost items
  • Links cost item products now auto update quantities when they are assigned or unassigned
  • New utility functions for copying and deep copying IFC elements
  • You can now copy cost values from one cost item to another
  • You can now filter products assigned to a cost item or schedule
  • Implement structural load management and assigning activities with named loads. Thanks Jesusbill!
  • Importing IFC4 files with tessellation meshes are now significantly faster (like 8x). Thanks aothms!
  • Qto module has now various methods to do bulk object quantification and quantity populating
  • IFC drawings now roundtrip as a Blender camera object
  • Mesh evaluation when updating geometries is now faster thanks to disabling boolean calculations. Thanks s-leger!
  • You can now select all products that are part of a group
  • Old annotation system now creates IFC elements again. Text and misc animations now work with the new WIP drawing system.
  • Users can now regenerate the linework or annotation layers in the new WIP drawing system.
  • BCF imports now autodetect the BCF version. Thanks TestPrab!
  • 2D representations are now reimplemented in the new WIP drawing system.
  • OCC is now no longer necessary, resulting in less conflicts with other addons and a significantly smaller filesize.
  • Assigning a representation to a type product now syncs the mapped representations of all product type instances
  • Project and version data for BCF XML v3 is now supported in the library. Thanks TestPrab!
  • New support for API listeners for parametric modifications when authoring native IFCs.
  • The search UI is only shown if an IFC is present.
  • New UI to add type instances.
  • Adding a new type instance now snaps it to the storey you’re working on
  • Typed dumb walls now inherit wall thicknesses from the type material
  • You can now generate walls from sketching
  • New wall join tool with support for T-junction joints, butt joints, and mitre joints
  • You can now unjoin walls
  • You can now join walls in bulk
  • Stroke generated walls now auto detect joints where possible
  • You can now generate walls from the cursor position, perpendicular to walls in the current storey
  • Improved handling of non-manifold elements with openings. Thanks aothms!
  • Polygons coplanarity is ensured when updating geometry. Thanks s-leger!
  • New wall align tool with support for center, interior, and exterior alignment
  • New formwork calculation tool to generate formwork meshes
  • Dumb walls now auto calculate length, width, height, and simple volumes
  • Dumb walls now auto generate wall axis upon updating
  • 2D curve geometry can now be created again. Thanks s-leger!
  • Copying objects in Blender now auto-copy them in IFC too. Thanks theoryshaw and s-leger!
  • Layer set usages now inherit the layer set from the typed product.
  • Total layer set thickness is now shown in the UI
  • BCF XML v3 now supports all asspects of BCF XML v3 except for the new documents system in the library. Thanks TestPrab!
  • Dumb walls now auto update thickness if the layer thickness changes.
  • New datepicker UI in the visualiation interface. Thanks htlcnn!
  • New wall tool with hotkeys for rapid wall creation.
  • New wall flipping feature, with support for aligned walls.
  • Super barebones UI to show space boundaries for energy analysis.
  • Point lights (IfcLightSourcePositional) are now supported and can be exported. Thanks Ilkin!
  • New wall split feature.
  • MVDs now reflect the design transfer view by default.
  • IFC header metadata can now be edited.
  • API listeners can now be removed. Thanks s-leger!
  • IfcOpenShell API now uses standardised Pythonic setting names
  • Raster underlays are now supported in the new WIP drawing system.
  • New walls are now selected when created.
  • Project data directory is now customisable and actually works.
  • Dumb slabs are now parametric and inherit thicknesses from their type materials
  • Changing wall types now auto updates the thickness
  • Updating any attribute (duration, start, or finish now calculates the other attributes)
  • Parametric engines are now loaded on startup
  • Experimental usecase serialisation feature in preparation for version control and logging
  • Dumb slabs now update thicknesses based on layer thicknesses and type assignment if changed
  • Dumb slabs now roundtrip the Blender solidify modifier
  • New feature to recalculate schedule metadata including early start and finish dates, late start and finish dates, total float, and critical paths.
  • Schedule metadata is now calculated using calendar dates
  • Dumb walls and slabs are now always exported as parametric solids instead of meshes

New fixes:

  • Fix rotation check in geolocation MicroMVD validation
  • Fix bug where people and organisation Id data was not recorded in IFC2X3. Thanks SigmaDimensions!
  • Fix bug where syncing upon export was just broken
  • Fix bug where extrusion direction was incorrectly detected for some mesh to solid conversions
  • Fix bug where partial imports broke when whitelisting only spatial elements
  • Fix bug where presentation layers couldn’t be added
  • Fix bug where dropdowns didn’t refresh when you started a new file
  • Fix bug where adding a new material didn’t make it available for assignment to objects
  • Fix bug where editing pset templates just broke
  • Fix bug where saving is done twice in authoring mode. Thanks theoryshaw!
  • Fix bug where box representations could be duplicated when adding new bodies and ensure that styles are synced. Thanks theoryshaw!
  • Fix bug where edit mode syncing didn’t work if you edited many objects at once
  • Fix bug where you couldn’t assign objects to a freshly created layer
  • Fix bug where import mesh cleaning would inadvertently mark meshes as edited
  • Fix bug where syncing was not maintained across file saves
  • Fix bug where you shouldn’t be able to reassign classes of non-rooted elements
  • Fix bug where deletion syncing may fail on freshly created objects
  • Fix bug where a new Blender file will remember old pset templates and libraries.
  • Fix crash when pressing undo after assigning an IFC class to an object.
  • Fix bug where UI didn’t update when a type name was changed. Thanks theoryshaw!
  • Fix bug where migrating an IFC version may explode the filesize.
  • Fix bug where activities not in WBSes wouldn’t import from P6 XML.
  • Fix bug where empty material slots caused errors
  • Fix bug where edit pset usecase didn’t import the right module. Thanks brunopostle!
  • Fix bug where related openings weren’t deleted if you deleted a product.
  • Fix bugs related to grid name syncing, axis delete and copy, and grid deletion
  • Fix bug where objects might be unlinked from non IFC collections. Thanks s-leger!
  • Fix bug where the logic behind detecting swept disk geometry was faulty. Thanks s-leger!
  • Fix bug where assigning types and synchronising geometry was unstable.
  • Fix crash when switching representations for type products
  • Fix bug where IFC2X3 files did not correctly generate 2D representations
  • Fix bug where you were unable to remove a representation
  • Fix bug where type instance cubes were missing a face.
  • Fix bug where active object edits would not be synced
  • Fix bug where certain objects couldn’t be deleted. Thanks theoryshaw!
  • Fix bug where objects with the same name failed to be synchronised
  • Fix bug where switching drawings didn’t work when in a local view.
  • Fix bug where drawings couldn’t have a slash in their name
2 Likes

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

Since the last mammoth release, we’ve pivoted from developing many new features towards stablising the necessary workflows for native authoring.

Between the last release and now, two presentations were delivered to two international events: BILT 2021 and CAAD Futures 2021. Creating presentations takes time, and a good week was spent to craft an action-packed, information-loaded one hour introduction video presentation to Native IFC. We hope you will enjoy it as much as we enjoyed creating it, and share it for those who know BIM, but not OpenBIM, or those who know IFC, but not Native IFC. You can watch the video here:

New undo and redo support!

Building the ability to track partial changes in IFC, undo, and redo, is no mean feat. Undo might sound like something we take for granted in our applications, but for Native IFC authoring, it’s a new world and nothing comes out of the box. After a week and a half of four developers hacking together to solve this, we’ve finally cracked it. So, feel free to press Ctrl-Z.

Improved stability on native authoring

The last release introduced the new wall and slab authoring tool. Now, we’ve got a new column, beam, member, and opening authoring tool. These tools are slowly building up in complexity and turning into the toolbox that you expect from any modern BIM application. We’ve got new parametric profiles, parametric insertion points, and improved project library support. Accompanying this is improved hotkeys and numerous bugfixes and stability improvements on parametric synchronisation. We’re not there yet, where we can confidently model parametric objects from scratch in Native IFC, but this set of new tools and fixes gets us closer bit by bit.

Work schedules now cascade

Work schedules are now actually practical for basic scheduling. Dates now auto cascade and recalculate as changes are made throughout tasks in your work schedule. There are now customisable data columns in your task tree and you can sort by any field. Construction animations now support more animation types, including demolition and logistical tasks.

So much more

I’d like a moment of reflection to two years ago where the IfcOpenShell repository had about 50 contributors and the BlenderBIM Add-on did not exist. Today, we have over a hundred contributors and the ecosystem of tools is growing faster than ever before. With all free software, it is powered by you, the community, and you have made what is possible today.

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:

  • Importing types from a project library now also bring in materials
  • You can now search for properties without first specifying a pset name. Thanks stefkeB!
  • Extruded slabs now support voided profiles
  • Dumb slabs now auto generate footprint representations
  • Footprint and side areas are now auto generated for wall quantities
  • Dumb slabs now auto generate quantity information when edited
  • The authoring UI now filters by available types only so authoring is more streamlined
  • New dumb column tool which creates parametric solid columns from profile sets
  • Free float is not calculated in work schedules. Thanks SigmaDimensions!
  • Profile set usage attributes can now be edited, including cardinal point and reference extent. Thanks Jesusbill!
  • Support added for importing elements with no representations
  • You can now animate demolition, logistic, and renovation tasks in work schedules
  • You can now bulk copy task attributes to other tasks in the task tree
  • Add support for product inputs for tasks, which can describe logistic movements around a site
  • Generated construction animations now support product consumptions, movement to/from, and multiple processes per product
  • New feature to bulk copy elements to multiple spatial containers
  • New IfcPatch recipe to extract only spaces. Thanks CyrilWaechter!
  • Uncached schedule recalculation is now twice as fast. Nice.
  • Modifications to scheduled dates now cascade through the task tree.
  • Scheduled dates now cascade when dependencies, lag times, and calendars are modified.
  • New feature to see derived global and local elevations of objects
  • Appending from project libraries now supports material properties and styles
  • Improve usability in browsing project library when there is only a single type
  • You can now filter structural loads based on name and inverse references. Thanks Jesusbill!
  • You can now add / remove / edit boundary conditions of structural models. Thanks Jesusbill!
  • Column profiles now auto update when you change material profiles
  • Column profiles now auto update when you switch type
  • MS Project XML conversion now supports blank IFCs or non-existant work plans
  • Work task tree columns are now fully customisable by the user
  • The wall tool is now a more generic, accessible BIM Tool to create any object. Thanks s-leger!
  • Task now auto generate identification numbers
  • Task trees can now be sorted by any column, independent of WBS.
  • Changing cardinal points for material profiles now auto updates shapes like columns and beams
  • Incorrect body contexts coming from Revit are now accommodated even though it’s wrong
  • New developer guide documentation, describing IfcOpenShell and module architecture
  • New documentation for the undo system, since it’s a bit tricky
  • New add application usecase. Thanks johltn!
  • IfcOpenShell now supports transaction based operations with undo and redo.
  • New BlenderBIM Add-on UI undo support for … well, almost everything. Yeah, ctrl-z is a feature.
  • New print IFC debug feature
  • IfcSverchok by_type node is now schema independent
  • Blender materials now explicitly link to surface styles upon import, so managing materials and styles are less confusing
  • New installation documentation for IfcSverchok
  • Mixed geolocation workarounds from proprietary software are now supported
  • New documentation on georeferencing, since it is poorly understood and the variety of proprietary workarounds creates problems for the industry
  • New Windows installation instructions for BlenderBIM Add-on developers
  • Editing object placements can now either cascade or not
  • Changing Blender material names now auto updates both IFC material and surface style names
  • You can now remove styles
  • You can now edit style attributes
  • Styles can now be linked to materials, not representation items
  • New loading bar when importing an IFC.
  • Workspace BIM Tool now adapts based on the active element type
  • Walls can now be extended to any arbitrary cursor location
  • 3D wireframes and curves are now imported
  • Importing 2D elements of anything is now supported
  • New IfcPatch recipe to downgrade indexed poly curves, such as to allow these IFC4 objects to show up in viewers like Revizto / XBim Xplorer / etc
  • New readme on how to use the new BCF 3.0 API. Thanks TestPrab!
  • Copying a spatial element now auto creates a new collection for you
  • The align tool now works on any generic product, not just walls
  • The create file usecase is now fully documented
  • New prototype IfcSverchok API node.
  • New system to auto extract docs and type hints from the API
  • Parametric beams are now also supported via the BIM Tool
  • Parametric members are now also supported via the BIM Tool
  • You can now select all elements of the same IFC class via the IFC Class panel
  • New IFC Debug feature to print resolved object placements
  • New script to generate a demo project library
  • Profiles of more specialised subtypes (like hollow sections) are now supported
  • New feature where you can select related objects from an active type object
  • Property and quantity sets are now shown in alphabetical order
  • New system module to graphically view your IFC MEP systems
  • New FM utility module to easily select maintainable assets using different presets
  • New incomplete IfcFM library to extract and format FM handover related data to replace IfcCOBie
  • New feature to add wall openings at your cursor location
  • New feature to add slab openings at your cursor location
  • Openings are now placed in their own collection to prevent assignment to the spatial hierarchy
  • New workspace hotkey to toggle opening visibility
  • Openings are now auto dissolved when authoring for easier mesh editing
  • Hotkey UI now looks much nicer. Thanks theoryshaw!
  • New IfcPatch recipe to fix duplicate and invalid GlobalIds, typically coming from other BIM apps.
  • New IfcPatch recipe to fix duplicate Revit type objects.
  • Editing voids or dumb walls now auto enable dynamic voids.
  • New experimental serialiser based drawing generation code exists, but disabled by default.
  • Parametric profiles now auto sync depth prior to changes.
  • Parametric profiles now auto recalculate cardinal points when editing in mesh mode
  • Material based surface styles are now supported as a default during import
  • New debug utility to purge all Blender IFC links
  • Creating a new project twice no longer mixes collections
  • Materials (and a potential surface style) are now assigned in Blender if you assign an IFC Object Material
  • Object style colours are now auto synchronised upon export
  • The active object is now still active after assigning a container. Thanks Gorgious56!
  • Material names are now auto synced with style names.
  • Linking a non-existant or non-IFC file is now prohibited. Thanks Gorgious56!
  • Panels which only support IFC4 are now auto hidden in IFC2X3. Thanks Gorgious56!

New fixes:

  • Fix bug where adding types without a material was broken
  • Fix error message when getting psets
  • Fix bug where all meshes were cast to solid by accident. Thanks s-leger!
  • Fix bug where 2D or 1D objects generated an invalid box representation
  • Fix bug where the P6 import module was not shipped
  • Fix bug where you couldn’t delete a quantity from a quantity set
  • Fix bug where unlinking copied Blender objects didn’t work
  • Fix bug where derived grid north was unreadable in the geolocation panel
  • Fix bug where custom pset template properties wouldn’t show up
  • Fix bug in P6 import to exclude Level of Effort activities
  • Fix bug where extrusion detection on voided profiles glitched out
  • Fix confusing transparency attribute in add style API usecase
  • Fix bug where validation errors could be created in IFC2X3 due to missing owners and mandatory attributes
  • Fix bug where absolute coordinates weren’t correctly detected from coordinate lists
  • Fix bug in IfcSverchok where refresh buttons didn’t work
  • Fix bug where bsDD API token refreshing didn’t work. Thanks TestPrab!
  • Fix bug where reloading an IFC file didn’t properly refresh the ID Map without a restart
  • Fix bug where colouring by attributes didn’t work reliably when you pressed undo
  • Fix bug where styles weren’t always present when updating representations
  • Fix bug where all instances change meshes when changing type
  • Fix bug where editing a single material didn’t work
  • Fix bug where reused placements from copied objects led to incorrect locations
  • Fix bug where psets didn’t show up for non element types (e.g. IfcDoorStyle) in IFC2X3
  • Fix bug where editing multiple objects didn’t synchronise changes when exporting
  • Fix bug where covetool didn’t detect skylights properly
  • Fix bug where searching for GlobalId didn’t work if you also used the debug panel
  • Fix bug where date conversions fail if IFC2X3 dates have fractions
  • Fix bug where deprecated functions were used in drawing generation, causing drawings to fail
  • Fix bug where BIMTester attribute and psets checks didn’t work. Thanks Nitschi and dedicos!
  • Fix bug where material profile data was not purged correctly.
  • Fix bug where module data was not fully purged when a new scene started.
  • Fix bug where import filters didn’t properly exclude types and empty objects
  • Fix bug where removing the last object in a container would create an error
  • Fix bug where userdefined object types weren’t set correctly. Thanks myoualid!
  • Fix bug where the pie menu shortcut had a missing module. Thanks myoualid!
  • Fix bug where you had to restart Blender to see changes to custom psets.
  • Fix bug where import process log couldn’t write to a non writable directory. Thanks brunopostle!
  • Fix potential bugs where context could be incorrect during operations. Thanks Gorgious56!
  • Fix bug where doing IfcDiffs didn’t work. Thanks htlcnn!
1 Like

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

This is the 2nd birthday of the BlenderBIM Add-on. In many ways, it is also the first birthday, as the entire add-on was rebuilt at the beginning of this year. Despite this restart, the redesign as allowed us to exceed far past was the initial architecture allowed us to do. The work to date has built up a strong foundation for editing across all disciplines, and scale up to bigger models. All the features described below are pushing the boundaries of what is possible with OpenBIM and we are proud to be exploring this territory.

A glimpse of the main tools of architectural native authoring

The main building blocks and project library support are now available for basic architectural authoring. The tools which we expect to see: walls, slabs, columns, beams, doors, window, and furnitures and asset libraries are ready for iterative testing and improvement. Best of all, you can now insert the BlenderBIM Bunny in your projects!

You can download the libraries from here: IfcOpenShell/src/blenderbim/libraries at v0.6.0 · IfcOpenShell/IfcOpenShell · GitHub

IfcClash is back for free clash detection

Clash detection is a vital tool in the BIM ecosystem and unfortunately the IfcClash tool was out of action for quite a few months due to technical distribution problems. These have now been resolved and we’re happy to announce that we now once again have a free and open source clash detection tool. The accuracy of clashes have improved significantly, and IfcClash now works on MacOS, as well as as a standlone app, a library for your own tool, and of course, within the BlenderBIM Add-on itself.

Drastically improved parametric costing and resource management

The interfaces for costing, scheduling, and resource management were reworked, and now more start to integrate with one another. For example, tasks now follow the ICOM model, allowing construction processes to have inputs (e.g. formwork), outputs (e.g. walls and slabs), mechanisms / resources (equipment, labour, materials), and controls (overarching constraints). Costs can now parametrically connect not just to geometric model quantities but to task durations and resource usages as well. Cost rates and schedule of rates are now supported with import and export support, task durations may now be calculated from resource utilisation, productivity rates may auto calculate resource hours, and costs may derive from resource rates. A new formula based UI is also released, to make it easier to type in cost breakdowns and equations.

2021-08-29-152240_525x442_scrot

Free model checking using the new IDS (Information Delivery Specification) standard

Sponsored by the Google Summer of Code programme, one of our two students: Artur Tomczak finalised his work on the upcoming IDS standard. IDS is a free, XML-based industry standard way to do model checking. Model checking is a standard process of large-scale BIM projects, and existing tools are black boxes and are highly reliant on proprietary tools, or non-OpenBIM based processes. The IDS standard by buildingSMART will resolve this, and everybody will have access to free model checkers with fully replicated results. A huge kudos to Thomas Krijnen who helped mentor the project.

IfcOpenShell users now have access to a new IDS library, and anybody can create their own specification using the new IDS webpage. Read more details about the project by Artur here: IfcOpenShell: IDS.py toolkit as a result of Google Summer of Code 2021

BCF API v3 support and new test OpenCDE server

Sponsored by the Google Summer of Code programme, another one of our two students: Prabhat Singh finalised his work on the upcoming BCF v3 API and OpenCDE server. BCF is a well established system for exchanging model issues, and is a common offering by web-based CDEs. Most BCFs are currently exchanged using BCF files, but a new OpenCDE specification allows CDE providers to provide a BCF API so that anybody can manage model issues from any CDE provider from their own client.

His API code is now shipped with the BlenderBIM Add-on. In addition, various fixes were made to the existing BCF functionality, and a new OpenCDE test server is now available for anybody wanting to develop OpenCDE apps without the cost of proprietary CDE accounts. Read more details about the project by Prabhat here: GitHub - TestPrab/GSOC_2021: All the work done during Google Summer of Code 2021

bcf-diagram

Initial sustainability integration with OpenLCA

OpenLCA is a well established open source LCA analysis system. We’re excited to announce that we now have preliminary integration with OpenLCA. You can connect to an existing OpenLCA IPC server from the BlenderBIM Add-on and run calculations. Although the feature is still incredibly basic, it opens up exciting possibilities in more sustainable design.

So much more

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:

  • New bunny rabbit furniture asset :slight_smile: It’s the BlenderBIM Bunny!
  • You can now insert doors, and we distribute a sample demo and site library
  • You can now calculate costs from direct resources and indirect task-based resources
  • You can now edit resource base quantity
  • BCF is now available on PyPI! Thanks krande!
  • Choose from project units instead of hardcoded ones for georeferencing map units. Thanks Gorgious56!
  • Resource base costs are now supported with all the features coming from the cost module.
  • You can now edit nested arithmetic cost values by using spreadsheet-like formulas
  • Many more operators now apply to all selected objects insted of one-by-one. Thanks Gorgious56!
  • Cost values are now serialised and shown as formulas
  • You can now count elements, tasks, and resources parametrically for cost items
  • Only equipment and labour resources can now have time-based usages
  • You can now store productivity rates and calculate resource work parametrically based on productivity
  • You can now manage psets on resources
  • You can now parametrically derive task durations from resource utilisation
  • Improve groups and systems interface to be accessible from individual objects. Thanks Gorgious56!
  • IDS code for GSOC is now finalised with IDS schema 0.4.1 implemented. Thanks ArturTomczak!
  • Detect units from project libraries, and convert nested double aggregates
  • Implement new ICOM-based UI for managing process inputs, outputs, and resources
  • Non-rooted subcontract resources are now allowed.
  • Block the user from creating sub resources under a subcontract resource.
  • Simple prototype integration to run an OpenLCA analysis from Blender
  • Project libraries are now sorted alphabetically for convenience
  • Hide types collection when importing assets.
  • Improved file selection filters to filter by the right file type. Thanks Gorgious56!
  • Various code cleanup, optimisations, tooltips, and descriptions. Thanks Gorgious56!
  • Minor iterator optimisation to prevent inverse check for associated materials
  • Rudimentary handling of purging voids and fills
  • Windows now move with openings and walls when toggled.
  • Filtered imports is now much faster and works with omitted aggregates
  • IfcZip and IfcXML can now be set manually, and prevent double loading when importing, which can save ~20 seconds for large file imports.
  • Improve usability by distinguishing disable versus remove icons. Thanks Gorgious56!
  • Work schedule psets are now supported, so you can set work day/week/month durations
  • OpenCDE API now validates data against the schema. Thanks TestPrab!
  • Complete IfcSIUnitName exponents are now available. Thanks CyrilWaechter!
  • Keep active object as active when creating ifc file. Thanks Gorgious56!
  • Keep active object when removing from containers. Thanks Gorgious56!
  • Add tooltip to CopyToContainer Operator. Thanks Gorgious56!
  • IfcCobie : Prevent executing operator if no ifc file. Thanks Gorgious56!
  • BlenderBim : Improve BCF project UX. Thanks Gorgious56!
  • New site project library for stuff like site sheds and cranes
  • Improve UX of task tree by shifting buttons and changing column widths
  • Cost subtotals that are calculated from per X units are now supported
  • Cleanup : Use clear instead of while…remove loop for optimised list refreshing. Thanks Gorgious56!
  • Extract Docs is bundled with IfcPatch module. Thanks Gorgious56!
  • You can now assign rates from a schedule of rates to a cost plan
  • You can now browse a schedule of rates alongside a cost schedule
  • UoM and unit rates are now shown for schedule of rates in costing
  • You can now insert windows in walls.
  • You can now assign / unassign cost items in a schedule of rates to type products
  • You can now add and edit context dependent units including dimensional exponents
  • Import of CSV-based schedule of rates is now possible
  • Half complete “add window” tool prototype
  • Implement metric constraints in the ifcopenshell.api. Thanks bosonprojets!
  • Improve ifc patch arguments User Experience. Thanks Gorgious56!
  • Improved accuracy of boolean modifiers for dynamic voids
  • Demo library now includes a window type. Neat.
  • Walls and slabs (or any vertical or horziontal layer) now auto recalculate origins after editing
  • Adding openings now intelligently detect the shape of the element you are voiding.
  • A Blender material is now always applied even if indirectly applied through a set or usage.
  • New feature to select the type’s Blender object of the active object.
  • New convenience button to add an empty for a type with no representation
  • You can now create shapes of profiles when debugging. Thanks aothms!
  • Bug where auto spatial containment assignment failed when you were not in a container.
  • You can now edit psets of profiles
  • New profile browser with basic profile edit and remove feature.
  • You can now import profile definitions from a library
  • Added some named dimensions for units. Thanks Jesusbill!
  • Implement cost identification numbers and big cleanup to cost schedule UI
  • New utility to get the exponential dimensions of named unit types
  • Implement ability to add SI units
  • New feature to toggle default project unit assignment
  • You can now edit the unit basis of a cost value for a schedule of rates
  • You can now assign resource-based parametric quantities to cost items
  • Implement task-based parametric cost item quantities
  • Changing task scheduled dates now auto updates its related quantity take off data
  • You can now remove cost quantities in bulk.
  • Parametric quantity breakdowns for cost items are now shown
  • Assigning a product to a cost item now also assigns a quantity in one step
  • New interface to view physical products assigned to a cost item
  • Distribution IFC-extended pset definitions for parametric costing and modeling
  • Implement resource quantity sets for parametric quantification
  • Implement task quantity sets for parametric quantification
  • Parametric types can how define a default layer set direction.
  • You can now parametrically create profile / layer based objects of any type, no longer limited to walls, slabs, etc.
  • You can now add and edit monetary units, and basic editing of other unit types.
  • Updating model quantities now auto refreshes parametric quantities in cost schedules
  • Copying an object / class now also copies pset and qtos
  • BlenderBIM and ifcopenshell.api features to enable adding and editing resource time information
  • You can now import a cost schedule from an IFC project library
  • You can now create curve shapes from the debug panel too
  • You can now customise cost category columns in the cost schedule tree
  • Ifc5d can now parse cost category breakdowns in CSV form
  • You can now import cost schedules as CSVs into IFC in Blender
  • New Ifc5D utility for converting and generating analysis of IFC cost data
  • Feature to enable assigning Construction Resources to Tasks
  • You can now import materials from a project library
  • A whole bunch of drawing improvements, though not yet exposed to the user. Watch this space! Thanks aothms!
  • Deleting a material set from a type now also purges usages from type instances
  • New feature to copy the material of the active object to selected objects.
  • Switching BCF viewpoints is now sigificantly faster on large projects.
  • BCF cameras now support global absolute coordinates with a Blender offset
  • Clearer licensing across codebase.
  • New feature to extend columns, beams, and members to a target
  • Units for cost items are now autodetected
  • New utility to derive the unit of a property or quantity.
  • You can now delete unit assignments
  • New unit utility to auto detect SI unit dimensional exponents
  • You can now view all assigned project units
  • You can now toggle whether decomposed elements are parented in blender when editing, so voids/fills etc move with you.
  • Walls are now dynamically voided when joining, so you can join/unjoin voided walls
  • Add new inverse_relationship in selector for bounded by relationships.
  • New BCF-API client and OpenCDE Foundation-API client system. Thanks TestPrab!
  • Add sample docstring and type hints for IfcPatch recipe.
  • IfcClash is now able to be built as an isolated Python binary. Hooray!
  • Using global keyword is not mandatory but may help debugging
  • Add documentation for how to use IfcClash.
  • New hppfcl IfcClash packaged for the BlenderBIM Add-on. New MacOS support.
  • Improve Debug Panel UI. Thanks Gorgious56!
  • Improve UI for multi input string fields. Thanks Gorgious56!
  • New ifcopenshell.geom.tree based broadphase collision for IfcClash instead of aabbtree.
  • Add descriptions to IFC Search function. Thanks chunchk!
  • WIP experimental hpp-fcl and aabbtree-based IfcClash

New fixes:

  • Fix bug where style attributes couldn’t be edited.
  • Fix example and document quirk to prevent memory related bug.
  • Fix warnings when no people or organisations existed.
  • Fix bug where removing material from IfcMaterialList removes all occurences of the material. Thanks Gorgious56!
  • Fix bug where the pset templates with multiple applicable entities only checked the first entity
  • Fix errors if no ifc file. Thanks Gorgious56!
  • Fix errors in console due to accessing empty enum. Thanks Gorgious56!
  • Fix error when trying to select type if type is not set. Thanks Gorgious56!
  • Fix error when adding opening with None object. Thanks Gorgious56!
  • Fix error when filling opening with None object. Thanks Gorgious56!
  • IFC Cobie : Fix Elements not being assigned in selector. Thanks Gorgious56!
  • Fix bug where changing slab layer thicknesses didn’t work if it didn’t have a solidify modifier already.
  • Fix bug where walls now grow or shrink from their origin point.
  • Fix bug where you could accidentally have a layer set with zero thickness which caused object creation to fail.
  • Fix bug where removing objects fails. Now using a breadth-first search and maintain insertion order on remove_deep(). Thanks aothms!
  • Fix bug in work schedule cascading where some cascades wouldn’t work and non-working dates would lead to an infinite recursion
  • Fix bug where editing a schedule finish date by itself wouldn’t work
  • Fix bug where you couldn’t delete non active task columns
  • IfcClash now has logging and fix bug where exclude clash filters on large files was very slow
  • Fix bug where IFC project libraries could not be imported as a file.
  • Fix bug where you couldn’t load the add-on in background mode. Thanks s-leger!
  • Fix bug to prevent users from appending a project library asset twice
  • Fix bug where you couldn’t use userdefined types for type elements
  • Fix bug where wall origin recalculations will shift openings
  • Fix bug where FM types for COBie were not selected properly
  • Fix bug where undoing broke the IFC link for child objects
  • Fix builds to use name “blenderbim” instead of “blender28-bim” which now confuses people since 2.9 is out.
  • Fix bug where materials weren’t created when importing assets from a library
  • Fix error due to trying to patch non-existent file
  • Fix IfcPatch pyinstaller script to make it easier to distribute ifcpatch.
1 Like

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: https://blenderbim.org/

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.

image

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!

image

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!

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
  • 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.
1 Like

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.
1 Like

Hello, I am new to this site but I have been working in the building structure for 14 years and I am impressed by the work you do. I test blenderbim but blender crashes when I try to import an ifc4. Is this normal? ( BlenderBIM v0.0.220130) ifc model from TEKLA