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:





(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:

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:

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

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:

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

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:

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

Hey @Moult! I was wondering, does BlenderBIM addon support extracting colors from IfcMaterialConstituentSet? As described in this post 1-Current Situation.

  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? - are you familiar with the IfcOpenShell library? If not, this is a good starting point:

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:

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

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:

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:

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

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:

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!

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!)

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:

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