Presenting Blender as a new IFC authoring tool

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