Good morning and a wonderful update we have.
Now the challenge I have is that I have the wall tool activated but the option tools are not showing. I am using Blender 4.1 and with the blenderbim-240216-py311-win.zip version. Find the attached image below;
@Owura_qu said:
Good morning and a wonderful update we have.
Now the challenge I have is that the option tools are not showing. I am using Blender 4.1 and with the blenderbim-240216-py311-win.zip version. Find attached image below;
Hi! You're using old version from 16 February, this issue is fixed in the release available on https://blenderbim.org/.
On windows official BBIM 240402 from Download of the homepage is with py11, but Blender 3.6.x is with Python 10 ... on activation the error attached pops. But on the homepage is written it works with Blender 3.6.
If blenderbim 240402 with py10 from https://github.com/IfcOpenShell/IfcOpenShell/releases is used it works well ...
Traceback (most recent call last):
File "C:\Users\BHA\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\blenderbim\libs\site\packages\ifcopenshell\ifcopenshell_wrapper.py", line 14, in swig_import_helper
return importlib.import_module(mname)
File "C:\0_BHA_privat\progr\PortableBlender\3.6\python\lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 674, in _load_unlocked
File "<frozen importlib._bootstrap>", line 571, in module_from_spec
File "<frozen importlib._bootstrap_external>", line 1176, in create_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
ImportError: DLL load failed while importing _ifcopenshell_wrapper: Das angegebene Modul wurde nicht gefunden.
...
import ifcopenshell.api.owner.settings
File "C:\Users\BHA\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\blenderbim\libs\site\packages\ifcopenshell\__init__.py", line 69, in <module>
raise ImportError("IfcOpenShell not built for '%s'" % python_distribution)
ImportError: IfcOpenShell not built for 'windows\64bit\python3.10'
go to Scene --> Project Overview --> Project Setup --> Links --> click on Link IFC --> open another ifc ...
error in report view
both ifc are in 2x3 if this matters ...
Python: Traceback (most recent call last):
File "C:\Users\BHA\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\blenderbim\bim\module\project\operator.py", line 868, in execute
bpy.ops.bim.load_link(filepath=filepath, false_origin=self.false_origin)
File "C:\0_BHA_privat\progr\PortableBlender\3.6\scripts\modules\bpy\ops.py", line 113, in __call__
ret = _op_call(self.idname_py(), None, kw)
RuntimeError: Error: Python: Traceback (most recent call last):
File "C:\Users\BHA\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\blenderbim\bim\module\project\operator.py", line 947, in execute
self.link_ifc()
File "C:\Users\BHA\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\blenderbim\bim\module\project\operator.py", line 989, in link_ifc
self.link_blend(blend_filepath)
File "C:\Users\BHA\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\blenderbim\bim\module\project\operator.py", line 951, in link_blend
with bpy.data.libraries.load(filepath, link=True) as (data_from, data_to):
OSError: load: C:\0_BHA_privat\BIMTesterAll\BIMTester\0_modelle_ablage\19104\TAZ_Datenstruktur_Projekt\19104_ING_TB_TAZ_Projekt_Neubau_20240315a_bimtester.ifc.cache.blend failed to open blend file
Location: C:\0_BHA_privat\progr\PortableBlender\3.6\scripts\modules\bpy\ops.py:113
Understood. Thanks for the feedback! Would we ever see a reentrance of analytical tools? I understand it need to be up to date for us to apply it. Never used the LCA module, though would hope it can be relevante on day for my line of work.
BlenderBIM Add-on v0.0.240602 has been released with 561 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 a release with lots of small changes that add up.
It's now much faster to print multiple drawings, as drawing synchronisation is now done only once. When drawings fail to create, there is now a drawing debug operator to help users and developers discover what the problem is.
Default settings are now available in case you delete them from a drawing's pset. Drawing decorators, such as smart text annotations, are now correctly refreshed after any edit in the UI. Smart text also responds correctly to actual line breaks now.
The underlay cache is now working as intended instead of being ignored.
There were many unnecessary operations happening during drawing loads, saves, or property edits. These were mostly wasteful and have been removed.
Any missing sheets will now be regenerated when needed, just like missing drawings.
It is now almost 3x faster to save models when syncing collections. Activating and switching drawing is now about twice as fast.
Continued work on style and material consolidation
The styles UI now works in a more similar way to the materials and profiles UI. All of the panels which used to exist in the Blender Material's tab have now been migrated to the IFC Geometry and Materials tab.
It's now nicer to expand and contract materials in bulk in the material manager without losing your position.
Material total now counts a particular class, not all material classes. You can now add a description and category when creating a new material. You can now add category-specific material psets (such as for concrete or steel). You can now add manual classification references for materials. There is now support for copying material sets and lists, and reuses presentation styles.
Quantity take-off completely redesigned with IfcOpenShell-based calculations
The quantity take-off procedure has been redesigned. Previously, there were multiple quantity take-off utilities that were spread around the interface and all used different quantification methods. These have now been consolidated into the Ifc5D tool and can be run agnostic of Blender. This is critical for those who run automated server model processing.
When doing QTO, it is now possible to choose between different calculation engines. Each calculation engine offers different capabilities with pros and cons with respect to speed, accuracy, and capability. Users can also use custom queries to filter the type of object, and map quantity requirements to calculator functions. This also means that automated QTO can be done for quantities that are not part of the Qto base quantities standard, such as in IFC2X3, or if you have custom QTO requirements. Powerusers can code their own calculation engine.
The old guess quantity feature has been deprecated.
Quantification panel interfaces have been redesigned and are now all in the Costing and Scheduling tab. It should now be easier to use. All of the remaining panels in the N toolbox have already been relocated into their relevant areas in the IFC tabs. There should now be almost no custom panel interface outside this area.
The Blender calculation engine's flooring height and ceiling height are now more accurate.
Packaging improvements
PyPI now consistently releases between Python 3.9 and 3.12. We now also ship the correct Python version for MaxOS.
The bSDD library, IfcPatch, IfcCSV, and IfcClash is now distributed on PyPI. IfcOpenShell and IfcTester's PyPI dependencies have been fixed.
Packaging has been cleaned up somewhat for the BlenderBIM Add-on, with version locks removed for a lot of dependencies and versions bumped and fetched using pip. We also now ship a Python 3.12 variant of the BlenderBIM Add-on.
Improved error reporting
All IFC operations now have improved error reporting. When an error occurs, the system will let you know and show that your file is potentially in an unstable state. You can continue to work with your file, but it is generally not recommended. It also stores the last 10 actions you performed, as well as a journal of detailed logs that occured during those actions. It will direct you to an online troubleshooting page which includes how to ask for help, how to debug it further, and how to copy paste the debug logs when filing a bug report. This will make sure that developers will get all the information they need (ideally, sometimes they still need your model) to fix the issue.
If an error occurs during installation, it's smart enough to show your Python version, Blender version, and platform. It'll figure out the correct installation link for you to reinstall (some users get confused between the many versions we have available).
IfcOpenShell API design upgrades
This is mostly for developers, but it is significant enough to highlight in these release notes.
The API previously functioned one elements one at a time. The API now supports batch commands, so this means that there will be an overall small speed up everywhere. For those who are writing scripts that manipulate IFCs, this can be the difference between a script taking hours and a script taking seconds.
The API now has a much cleaner set of static functions you can call directly. For those using the api.run command, this is still fully compatible, and there have been some small optimisations done. However, it is now recommended to use the static functions where possible. For example, instead of ifcopenshell.api.run("root.create_entity", model, ifc_class="IfcWall"), you can call ifcopenshell.api.root.create_entity(model, ifc_class="IfcWall"). This also means that the developer experience for those using IfcOpenShell in interactive environments such as the Blender Python Console, Jupyter Notebooks, IPython, or those with Intellisense or similar LSP support in their code editor will be much nicer.
The API documentation also got flattened and easier to browse, with a lot more introductory docs written and improved cross referencing of modules, functions, and methods with improved visual styling.
The module initialisation conventions have also been made more consistent, with all modules requiring explicit importing and dependencies across modules removed, such as the util module requiring the api. Modules which require optional dependencies also now give clear error messages if they are unavailable.
The element utility has had a large number of small optimisations done. These will all add up, especially when running scripts. There are also a large number of new utility functions, such as getting the groups of an element, or traversing void and fill relationships, and parents up the spatial heirarchy.
Now that we are dropping support for older Python versions, a huge amount of type hinting has been added throughout the codebase.
IFC4 and IFC2X3 test suites have been consolidated, so there are significantly more tests and this helps catch and fix all sorts of invalid "default" behaviour that the API might do.
Documentation has continued to be improved throughout - too much to enumerate but expect new code examples, function docstrings, and explanation everywhere. This includes examples of how to use filters for IfcConvert and how to use IfcTester.
Custom properties
This sounds like a strange one, but we now support adding arbitrary custom properties and quantities without the need to first create a property set template. This is not good practice (e.g. data types are autodetected) but still convenient when you want to quickly throw in some data or for educational purposes. We still highly recommend everybody to use templates.
Google Summer of Code 2024
This will be the 4th year that IfcOpenShell / the BlenderBIM Add-on will be participating in the GSoC programme! This year, we have three students with winning proposals. Please welcome Kshitij Roodkee, who will be working on an IfcTester web interface to author IDSes with Vukas. Please also welcome Chirag Singh, who will be working on integrating IFC data with Radiance light simulation. Please also welcome Ziad Ibrahim, who will be working on building a web-based UI that can be run alongside the Blender interface for things like scheduling, gantt charts, and BCF issue management.
Coding has just begun, so expect interesting things happening in the coming updates!
iNEST innovation grant
Development isn't just coding, of course! One significant event is that the BlenderBim Add-on and IfcOpenShell will be part of a research program funded by Italian consortium iNEST (Interconnected Nord-Est Innovation Ecosystem) featuring the participation of Italian companies Cadline Software Srl, 888 Software Products Srl, 3 Face Engineering Srl, Donadello & Partners Stp Srl.
This will likely help with project funding and may result in some interesting future features.
We're hiring again!
Thanks to all our financial donors the time is right to hire another (part-time) developer to join the party! If you know C++ and Python and are passionate about open source software, please see the job advertisement and get in touch!
Ifc5D improvements
Many thanks to those testing and using cost related features! This really helps us fix issues. Here's a bunch of improvements:
The ordering of cost items (via the nesting relationship) is now maintained.
We now distinguish between a quantity of zero vs a null quantity (which implies that the cost value is the total cost)
There are now restrictions to prevent mixing quantity types per cost item.
Improved UX when assigning cost items to product types.
Improve UI to indicate that exporting cost schedules expects a directory
Fix bug when removing cost schedule columns
Disable adding cost schedule columns without a name
Different cost schedules can have different custom columns
Fix bug exporting a schedule of rates when a cost item has no quantities but controls objects with quantities.
IFC2X3 improvements
Assigning nested objects now works in IFC2X3
Fix bug in IFC2X3 where sheet has no description
Fix invalid shapes in IFC2X3 where profiles have a non-optional position and need 2D coordinates
Auto create a default user and organisation if not specified in IFC2X3
Fix bug where some IFC2X3 files would fail to link
Fix bug when trying to trace outlines for a new representation in IFC2X3
Fix bug where removing document information didn't work on IFC2X3
Fix bug where appending material assets didn't work in IFC2X3
Fix bug to remove inventories of people in IFC2X3
Removing, copying, materials now handles IFC2X3 properties
Removing library references now supports IFC2X3
So much more
It's hard to capture absolutely everything which has changed, but here are a few more stragglers.
Bug fixed when linking a model with no chunks
Blender UI panels are now consistently located in tabs depending on your workspace settings
There is now a default shading style if yours is missing
Fixed bug when adding a ceiling from a wall elevation
Linked models now include material data and CAD layers
Doc links have been updated to the latest documentation websites
Fix bug where random objects would get drawing psets unnecessarily
Fix possible infinite recursion bug when generating drawings
Fix bug where there were extra equal signs when loading saved queries
Linked models with no materials now default to the Blender default material
The "IFC4X3" shorthand now references the "IFC4X3 Add2" standard, the final standard
Don't show scary error messages if trying to search with no query
New UI List in Sandbox panel to access, flip, remove, add, edit clipping planes
The CCI classification is now available as a preset
New help button next to search queries to help users find documentation
Add convenience link to launch type manager when no types exist.
Show invisible newlines and allow newline editing in attributes.
Fix fundamental bug where get_pset would return nothing or inherited props with a False value
Document how MacOS Steam users should still use Mac Intel
Fix bug where verbose mode broke when getting complex properties
Calculating schedule dates now handles time lags defined as a ratio
Fix IfcTester BCF exports
Clarify in the UI whether you are seeing type or occurrence properties
Indicate whether the predefined type is inherited
Disable editing predefined types on occurrences which inherit a predefined type
Fix bug where saved drawing filters didn't load in the UI
Fix bug where creating new document references were invalid IFC
Fix bug where deleting grid axes weren't handled properly
IfcTester can now export "Excel-safe" ODSes due to poor support for ODS in Excel
Improved error reporting when loading IfcSverchok
IfcSverchok builds are updated
Clipping planes can now be stored to a JSON file
You can now merge projects with different units
Add support for updating relative coordinates for adhering elements in IFC4X3
Fix bug so that spaces created with the spatial tool now have a coincident origin and zero elevation
Prompt for a name when creating an aggregate
More informative messages after running RegenerateGlobalIds
Fix bug if the user explicitly removes a Blender material linked to an IFC material or style
Consolidate debug buttons "convert to blender file" and "purge ifc links"
Fix bug trying to launch type manager in an empty project
Reload the current shading style after editing it
Fix bug when linking in a material which didn't have an external location pointing to a .blend
Show preview of external shading style material when selecting from a .blend
Prevent switching representations in edit mode
Fix bug where saved filters with "not" operators wouldn't load
Show success messages when saving / loading spreadsheets
New IfcTester report which just shows a summary spreadsheet view of requirements
The API now supports wildcard listeners
The API can now serialise API settings for detailed debug logs (mostly)
IfcFM has vanilla IFC names changed to reflect IFC naming jargon and fixed colours
Fix bug where autodetection of a false origin might fail
Removing products now also removes port connections
Fix bug where editing pset template enums left behind orphaned entities
Restrict annotation psets to their predefined type to prevent inapplicable psets
Drawing cache is now copied if the file is somehow locked or has a permission error
Users are now prevented from creating incompatible context-representation combinations
You can now create a new representation from external objects
Profiles is now an available keyword in the selector syntax
Fix bug when all spatial elements are deleted and the spatial manager is open
Accommodate invalid IFCs coming from Cadwork
Fix bug in BCF module due to xsdata dependency
Fix ridiculous bug where setting boolean attributes to false using the spreadsheet import set it to true instead
Users can now configure the font used to render viewport text
Schedules can now have custom CSS and configure their own font and font scaling parameters
Null properties in psets are now purged instead of left as null to prevent cruft build-up. Empty enums can now also be purged
When handling invalid duplicate psets, we now merge values instead of arbitrarily taking the first/last one
Optimisation to remove deep, especially when dealing with attempting to remove histories with lots of inverses
Show error if a user tries to apply an opening to a type
Fix bug where IfcTester fails to verify negative numbers
Fix small openings being generated for parametric doors / windows
Basic support added for including linked models when generating drawings
Fix bug when loading profiles with a non-mesh selected
Fix bug where changing class using a spreadsheet import might fail
Remove the incredibly annoying "do you want to save" popup when editing geometry
You can now drag and drop to load and link IFCs
Resource quantity types are now limited based on the type of resource.
IFC4X3 pset templates have been regenerated since the release
Fix bug where two materials sharing a style would break the Blender <-> IFC link
Fix bug where you couldn't change the aggregate of a locked spatial element
Users can now choose between a whole or a part when changing the aggregate parent
Support adding IfcQuantityCount quantities in IFC4X3
Fix bug where "not equals" filters didn't work properly for locations or groups
Fix UI bug when editing multiple profile items in a material set
You can now format custom thousands and decimal separators in IfcCSV.
All changes
All changes can view the directly via the Git logs here:
Credits for this release (in order of commits via git shortlog -sn --since "2024-04-02"):
304 Andrej730
179 Dion Moult
21 Ryan Schultz
8 Massimo Fabbro
7 Bruno Perdigão
6 Bruno Postle
6 Thomas Krijnen
5 Gorgious56
5 ppaawweeuu
3 Gorgious
2 Vukas Pajic
1 Alper Kantarci
1 Andrej
1 Benoit DAMAY
1 Dirk Olbrich
1 E Shattow
1 Hilko
1 Kaare Hansen
1 Kristof Semjen
1 Kurt Battisti
1 Manu Varkey
1 Sigma Dimensions (Yass)
1 dependabot[bot]
1 jaymeandretta
1 sebphi
1 stefkeB
Donors since the last release:
BIMvoice
Rhomberg Sersa Rail Group
Tomasz
Sailor
Randolph
PlaniBIM SA
Lawrence Giroux
Cyril Waechter BIM Insight
Incognito
carlopav
Matthew Fuller
Dion Moult
Udo
StefStap
Sven Amiet
OpeningDesign
cvillagrasa
Losepacific
Jonny Knopp
Haritonov Alexander
tlang
Marcos
Louis Trümpler
Guest
Frode Lund Tharaldsen
Dumitru Minciu
ppaawweeuu
dominik
bitenergie
bimage
Smiljan Tukic
Omar Zerhouni
Leon ten Brinke
Kimmo Hentinen
Kevin Schnippkoweit
Ivo
Henning Munzel
Giorgio Nocentini
Duarte Farrajota Ramos
Dmitriy Koptev
Benjamin Smith
Bedrossian Ádám
Arun
Abdelmalek HARRAG
Rodas
Madars Siksna
Krande
Arjan
Angelo
14.4 Hjalti
casiovadal
bclmnt
Vinícius De Souza Lima
Tim McGinley
Stephen Cremin
Royner
Rafel Bayarre
N1k0
Miguel
Marcin Boguslawski
Gaurav Rampal
Fabian Emanuel Kitzberger
Dirk Olbrich
Dayo Ayadi
Dawid Fedko
Cordero Architecture
Christoph Mellüh
Choong1219
Bruno Perdigão
Benny
Barneyyy
Ari Pikkarainen
Alexander Kleemann
Agents of Architecture
Marco Andrade
daniele rossi
WILTON
RITA FERREIRA
Carlos Dias
hello everyone, query: how can I read comments made in the past in this discussion? I am looking particularly for the one in the first image attached (240402), but in the forum I only see as in the second image, thanks in advance,
Better late than never:
The update Video for Blenderbim 24.04.02
If you have any corrections or suggestions let me know
Working on 24.06.02 for.... soon
Getting these out before we have the first stable release called Bonsai :)
Bonsai v0.8.0 has been released with 1,357 (!!!) new features and fixes. It's our built environment, help support Bonsai: 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://bonsaibim.org/
This release simultaneously contains a ridiculous amount of sweeping under-the-hood changes as well as UX work.
Due to the sheer volume of new stuff and changes, please treat this release as more experimental than usual :) Help in testing and reporting bugs will be really appreciated!
OK. Deep breath. Get ready. Go!
Hello Bonsai - rebrand from the BlenderBIM Add-on
Same software, same community, new name! The BlenderBIM Add-on is now known as Bonsai!
What initially started as a discussion with the Blender foundation about their updated branding guidelines has resulted in a completely new, distinct brand. Bonsai is a comprehensive interface to the IfcOpenShell suite, our name reflects the precision, detail, craft, cultivation, and community behind our shared vision. The name was decided by the community in 8 pages of forum discussion. Also rabbits next to little trees are so cute :)
Support for IFC4X3 geometry
Alignments (linear elements, linear positioning elements, and referents) are now supported! As IFC4X3 is now an official ISO standard, many users in the infrastructure space are asking "What can view my infrastructure geometry?" - some viewers won't show 2D or 3D curves, let alone infrastructure curves. This also includes more complex 3D forms like sectioned horizontal solids. There was a huge amount of work to achieve this over many months, and the best thing is that it's invisible to users - just load your models!
Upgrade to IfcOpenShell v0.8.0
IfcOpenShell has had an incredibly huge refactor in the meantime. This significant change means that API signatures have changed. Users will immediately notice that Bonsai, and the rest of the IfcOpenShell ecosystem, now share a release cycle and version scheme. That's right! We're now version 0.8.0!
Previously, Bonsai had its own version number based on the date. Stable and unstable releases were not distinguished. IfcOpenShell had its own version number too, but used a commit hash to distinguish builds - version comparisons couldn't be made, and it was unclear if the API was compatible or not, even within the IfcOpenShell ecosystem. The rest of the ecosystem (IfcClash, IfcCSV, etc) had no versions at all. Documentation was unversioned and published sporadically. These were all released at different cycles on different channels. What a mess!
Now, everything has exactly the same version number (now 0.8.0) and has the same release cycle (every ~2 months) and is distributed at the same time across all channels. All in-between versions (unstable alpha builds) are now distinguished using semver compatible versions. Channels are now also consolidated, with everything on PyPI (added IfcDiff, Ifc4D, Ifc5D, IfcCityJSON, IfcFM), and the infamous IfcOpenBot build now redistributed in the main Github releases channel. All libraries expose a VERSION variable you can use to compare.
The biggest user impact in IfcOpenShell is that it now supports multiple geometry kernels. Historically, only OpenCASCADE was supported. Now, you can also use CGAL, or a hybrid of both (some shapes with CGAL and some shapes with OpenCASCADE). This also means in the future that more kernels, smaller kernels, or tailored kernels can be used. This addresses a huge shortcoming in OpenCASCADE where dealing with mesh-like geometry was slow. This means that in the future, loading models can be easily twice as fast. However right now work is still being done on stability and feature parity, so unfortunately this release comes with a speed slowdown regression. If loading huge models quickly is important, you may wish to use an older release until this is addressed. Users can test an experimental CGAL or hybrid kernel in the advanced mode to see what the current state is (expect some stability issues).
This also means that in the future, it's a step towards being able to bundle smaller versions of IfcOpenShell-WASM for the web.
In the IfcOpenShell-Python API, it's been completely refactored to use the new static functions from the previous release. This means a general incremental speedup across everywhere, and a few minor bugs fixed along the process. Documentation now also only uses the static functions. UI tests also are now easier and more fun to write, and can test what the user sees and clicks - great stuff for preventing regressions in the future.
New wall polyline tool and measure tool!
To draw a wall, first enable snapping, Shift-RMB to set the 3D cursor, then Shift-A to add a new wall, then R to rotate, then Shift-RMB to the distance of the end point of the wall, then Shift-E to extend the wall to that distance.
How about this? To draw a wall, Shift-A to add a wall, click the first point, click the second point, then Enter or RMB to finish. Nice!
Drawing walls should feel intuitive. This new approach by Bruno Perdigao is exactly what users expect when drawing walls, with built in snap, clever ways of projecting or aligning wall start and end points, quickly typing in the length of the wall as you draw it, knowing at what height your wall is going to appear at as you draw it, undoing (backspace) segments in the wall tool as you draw it, auto closing loops (press C), and drawing multiple wall segments at once which are auto joined together.
Work has also started in icons and a more usable horizontal toolbar.
There is also a new measurement tool. You'll notice this follows a similar approach to the new wall tool.
Georeferencing: better false origin handling and coordinate operation support
Handling coordinate systems and large coordinates has seen a complete overhaul. IFC defines all geometry in terms of a local engineering coordinate system, and additionally may define a coordinate system, with an optional transformation to convert between local and map coordinates. Previously, all models were loaded such that the Blender origin coincided with the IFC local engineering origin. If you had two models that were geolocated in different parts of the world (or different parts of the same site), Bonsai would still load their local origins on top of one another. In general, all IFC viewers have this (incorrect) behaviour except for specialist software dedicated to showing this properly like IfcGref or ArcGIS.
Bonsai now supports federating models together true to their map coordinates, not just local coordinates. You can take many models across a city or site with different origins, project norths, or even project and map units, and they'll all come in correctly (for both opening, linking, and (yes!) merging). Even obscure combinations of both map conversions and rotated custom world coordinate systems are handled. To my knowledge this is the most advanced and correct implementation out there. The only thing not yet supported is reprojection across different coordinate systems.
In addition, where coordinates are very large, or where there are conflicting, irreconcilable coordinate ranges within the same model, Bonsai's ability to pick a meaningful, session-specific false origin is now faster, more accurate, more customisable (including a new disabled mode), and handles really strange coordinate combinations which we see out there in the wild. Users can also interrogate elements with problematic coordinates and fix them, or set a temporary, session-specific project north. There is a new, simple to use, SetFalseOrigin patch recipe that lets you pick a point and set the map coordinates at that point with that point being a new local origin. In the past, editing these "incorrectly georeferenced" models would be hit-and-miss. Now, it's actually possible to do regular geometric editing in this situation.
What makes this extra special is that this also works in IFC2X3 using the fallback georeferencing property sets! We also support all the new coordinate operations in IFC4X3. Editing a WCS is now possible in the Blender interface. Editing angles for true north and grid north now auto calculates abscissas, ordinates, (or vice versa) for ease of use.
Understanding exactly how georeferencing works in general, let alone how it is expressed in IFC is not an easy task. You can now turn on a visualisation which shows clearly where is the project north, where is the map north, where is true north, if you have any session-specific overrides, what is defined locally and what is defined as a transformation, etc. There is also a simpler coordinate conversion calculator, and all coordinates always show with units to prevent ambiguity. We hope for this to be a reference implementation for the industry.
BCF version 3 support
In addition to a ton of BCF bugs being fixed by bernd, thanks to Andrej730 the Bonsai interface now has support for loading and creating BCF XML version 3 files (previously, only BCF v2.1). Hooray!
New web interface for scheduling, gantt charts, and more
Despite Blender's phenomenal extensibility, there are some areas where Blender's interface falls short. It's great at 3D, but not so great at spreadsheets, page layouting, gantt charts, long-form textareas, and highly customised interface widgets. In contrast, the web is really good at this type of flexible interface, and vice versa, doesn't do so well at graphics. What if we could have the best of both worlds?
Ziad set out to do exactly that. Bonsai's code is largely decoupled from Blender. This means we can reuse the exact same code across any interface or app (like FreeCAD!). Ziad has now built a new websocket based web interface that you can launch alongside your Blender session. For this first release, you'll notice that spreadsheet and scheduling now defaults to displaying tabular data directly on the web instead of having to save to a file and reopen it in another spreadsheet software. This is a live connection, so you can click rows in the spreadsheet and auto zoom to the object in 3D in Blender.
Another module with support is the gantt chart module. Previously, gantt charts were statically exported. Now, you can have a live gantt chart showing your construction schedules, and edit your dates from the web interface and see the gantt chart update live!
Yass managed to sneak in an implementation of a costing module too!
You can also now browse drawings from the web. Quickly and visually switch between drawings and sheets on the web and see previews of them instead of having to launch them separately.
You can also connect multiple Blender sessions together and see their data together in a shared web interface.
This is just the beginning! For those who want to learn how to build your own web interface, the tutorial demo module has been extended.
Experimental light simulation integration with Radiance
Although Blender offers very powerful artistic rendering capabilities out of the box, lesser known is how to perform light simulation in Blender itself. There are already add-ons for this (such as Vi-suite) which can do such things, but these lack a close integration with IFC. IFC can store lighting styles and light distribution data for light sources, and reference external style definitions. It would be great to combine the best of the scientific and artistic worlds and perform photometrically accurate luminance renderings (within a tolerance certainty) that are also beautiful, textured, and evocative.
Chirag has made an excellent start to this - we now ship with PyRadiance and can produce renders directly from the IFC with Radiance. Users can pick simple physical material definitions from SpectralDB and define a camera and sun location (based off IFC true north and georeferencing data). The module handles the conversion from IFC to OBJ to RTM formats under the hood, and users can configure basic rendering settings and material mappings.
New solar analysis tool
Blender has an excellent Sun Position add-on which is able to calculate azimuths, altitudes, solar positions, and analemmas. However effectively using this add-on for architectural, solar, and shadow study usecases required a bit of Blender knowledge. There is now a completely new Solar Analysis panel which extends the Sun Position add-on with better visualisation of the sun position, easier setting lat/longs (reads from IfcSite), easier setting of UTC offset (auto-calculates timezone), and auto sets true north (from IFC true north).
It also supports a one-click view setup for creating shadow renders, with configurable shadow intensity, which are often a requirement for architectural submissions.
There is also a "View From Sun" mode, which places a camera from the sun's position, allowing you to quickly scroll through key dates to check minimum solar access requirements across larger projects such as multiple apartment towers.
Blender 4.2 extension support
This release marks our debut on Blender's new Extensions Website. Blender has standardised how to distribute extensions (add-ons and themes) on the web, where they can be searched, installed, and updated directly from Blender itself. We're super proud to be listed on the main Blender extensions website. This means users can install us easily, and in a single click inside Blender, update to the latest version. Yes! This also means those using latest unstable releases can update every single day with a single click!
This also means that the workarounds previously required for updating or uninstalling are now fixed!
Unfortunately, this does mean that we are dropping support for Blender versions 4.1 and older, as well as Python 3.10 and older, due to a lack of resources.
Consolidated material and style handling
There's been ongoing work to restructure the way materials and styles are handled. This work continues in this release, with more stability and more obscure cases handled. The biggest change was that in the past, a Blender material could either represent an IFC material, an IFC style, or (!!!) both at the same time. This unnecessary complexity led to no shortage of bugs and limitations. Now, Blender materials accurately only refer to IFC styles. Physical materials are managed separately. This is mostly code simplification, bug fixing, and a minor speedup during loading and saving, but means that in the next release we can do more cool things.
Also pretty neat, you can now press a button to assign a style to the selected objects.
Flexible collections and new spatial manager
In previous versions, the way of managing the spatial tree was done in the outliner. This had a number of limitations. For larger projects, you'd end up with very, very long lists of objects and it wasn't possible to get an understanding of what objects you actually had, or even how many storeys or spaces you had. Instead you had to collapse and expand collections and manually filter and count to get an understanding of larger spatial trees. Another problem is that it took away the flexibility of Blender's collection system: you couldn't have objects assigned to multiple collections, and you couldn't ad-hoc create or reoganise custom collections for temporary grouping and visibility like regular Blender. This led to lots of bugs unless you knew the exact rules of what could be nested in what. It also blurred the lines between spaces / objects groups, versus aggregate / subelement groups. In IFC4X3, other relationships like covers or nesting is increasingly common, which would lead to very deep, nested spatial trees. This deep nesting and collection-based way of managing the tree also meant load, save, and drawing generation times were unnecessarily long, and had a risk of creating "sync" bugs.
A huge change has been made to how the spatial tree is managed to address all of this. There is a new spatial decomposition panel with friendly icons, showing only the spatial structure. A split panel below shows elements contained within the active space, grouped into types with counts per class and type. At a glance, you can now see more meaningful results like "I have X storeys", and "X walls on level 2". There are also dedicated buttons for isolating spaces and toggling visibility, and quickly selecting elements within a space (recursively and non-recursively). Previously, you'd have to scroll constantly, and use up to 3 possible visiblity controls to achieve the same thing.
You can now also create new spaces from the spatial panel. These also filter only to valid subspaces. For example, it doesn't allow you to create a bridge inside a room, but it does allow you to place a road on a site. It also has separate dedicated search filters for spaces and elements. These search filters search not only for names, but also long names. Previously, especially for rooms which only have room numbers or buildings with short codes, it was difficult to quickly search for room names or building descriptions, but now you can do it.
This also leads to faster drawings, load, save, and less bugs.
Users can now also set a "Default Container". Previously, new objects were created in whatever collection was active in Blender and contained in whatever IFC element that correlated to. Unless you are a Blender whiz, it isn't clear where your objects are being added to, or if it's valid or not. Now, your nominated "Default Container" is where all new objects end up in, and impacts things like where new walls are drawn to.
This big change means that managing spaces must now be done in this new panel. Reorganising and using multiple non-IFC collections in the outliner is now completely decoupled and freeform for your own organisation and won't change (or break) your IFC structure. For those who wish to create their own session-specific workflows, this is a big win.
IfcTester supports v1.0! IfcPatch is now friendlier and batch process models
IfcTester now supports IDS v1.0! IfcTester now supports the new requirement in IDS for lowercase booleans or 0/1, has more detailed failure messages for predefined types, and handles restrictions on data types. JSON reports are also more comprehensive for those integrating into their own systems. Auditing nested relationships in IFC2X3 is also now supported.
IfcTester can also select multiple IFCs and multiple IDSes and run them all in one go - a game changer for large projects thanks to Beedy! Reporting is now redesigned, and shows more information like whether the IFC schema version is accepted in the IDS, as well as passing elements, not just failures. When an IDS specification applies to an occurrence, the results automatically groups occurrences by type (if they exist) and clusters occurrences so that you can get a feel of common problems by type rather than a huge list of occurrences.
IfcPatch recipes are now easier to use. There are new dropdown menus to select configuration options, file browsing to open up files, and sensitive coordinates preserves precision. You can now merge projects in bulk rather than one by one.
Improved colour legends
When auditing models, we often want to visually check whether properties are correct. The Colour By Property panel now lets you quickly pick a property from the active object and apply a colour legend to it. Two new colourschemes are now available for categorial / qualitative data analysis, and a new view preset to quickly toggle flat colouring to make colours pop and easy to spot. Nice!
For quantitative analysis, there are now 4 new colour legends (2 for min to max ranges, and 2 diverging palettes highlighting the average), with an automatic (or custom) min and max. Ever wanted to quickly colour code your model to show carbon intensities for different materials? You can now do so! Or quickly spot anomalous volumes or lengths during quantity take-off by setting maximum or minimum thresholds.
New Bisect mode and Freestyle mode for drawings
A drawing is composed of a possible raster render as a background, followed by projection / background linework, the linework is then potentially filled or coloured in, then there is the actual cut objects, and finally the annotations.
Previously, the hidden line rendering for background / projection linework as well as the cut linework was calculated by OpenCASCADE. OpenCASCADE is quite slow to perform this, and doesn't work very well on organic forms (for heritage or landscape architecture). The new, default, Bisect cut mode uses Blender's built-in Bisect tool to perform the cut - and is generally faster and more robust against strange and non-manifold geometry.
There is also an option to use Blender's Freestyle renderer to perform the background / projection linework. This is significantly faster on complex scenes, being easily twice as fast to 10x faster. As a trade-off, it is also less accurate, but it may be sufficient for your situation.
It also doesn't allow for vector background fills yet. On the flip side, it does mean we now support producing vector linework for perspective renders.
Thanks to Manu Varkey, theoryshaw, and Carlopav for test models shown above!
Sponsored development by Beedy and Bruno!
Thanks to all our financial donors we've been able to sponsor work by Beedy and Bruno Perdigao! It's incredible how many people chipping in from $5 a month can allow us to accelerate development.
It's hard to capture absolutely everything which has changed, but here are a few more stragglers.
The spatial containment panel won't show for spatial containers
Only allow aggregates to elements which don't have geometry
Improve type hinting generally everywhere, and better autocompletion in API methods
Ensure you can only add certain quantities for different resources
Fix bug removing resources in IFC2X3
Fix bug where cubic meter quantities had the wrong unit
Fix bug where orphaned aggregates were never shown when loading a model
New get_contained utility function
Blender panels now only exists in the dropdown switch, and other Blender tabs hidden by default to prevent confusion and lost users
Centered tab bar
You can now search / filter styles when selecting
Old complex selector syntax deprecated, and drawing styles now use the new selector syntax
General cleanup to prevent orphaned elements when removing scheduling related entities
Coordination mode / merge advanced modes deprecated in favour of new link IFC feature
Support invalid spatial trees from 12D
IFC object / edit modes, IFC meshes, are now hidden if there is no IFC model
Linking IFCs now also includes spatial elements
JSON schema definitions purged. We now only use dynamic schema data from IfcOpenShell.
Generally better error reporting and handling across many invalid interactions, especially for using Blend files, or discarding errors
The codebase uses schema identifiers, so schema geeks can technically test minor IFC version variations
Fix critical bug where Qtos always used IFC4 Qtos. Remember: IFC2X3 does not have standard Qtos!
You can reuse a cache or force a new load when (re)linking in IFCs
Fix bug where 2D angles weren't correctly parsed in OffsetObjectPlacements recipe
Fix bug where merge duplicate types would trigger listeners in an active Blender session
TesselateElement ifcpatch recipe now supports product types
Minor fix in IfcFM to derive occurrences from types (and make it easier to override)
Various bugs fixed in IfcOpenShell Qto calculation engine in Ifc5D.
Various bugs fixed in upgrading models to IFC4X3
Multiliteral text annotations can now be reordered
More accurate quantity take off for beams and flow segments (pipes, ducts, cable trays) in Ifc5D
Migrating calendar dates from IFC2X3 to IFC4 is now supported
Remove unload project button - superseded by Convert To Blender File operator
Move new project wizard into its own panel and actually title it "New Project Wizard" for clarity. Improve UX around opening, creating, and saving.
You can now open recently opened IFC models. The tooltip shows the IFC version. Yay!
Fix bug where MergeProject didn't clean up duplicate CRS and coordinate operations
Fix bug where migrating length units didn't change properties (critical for IFC2X3 georeferencing).
Fix missing door flip button
UI asterisk indicates if the placement is not yet synced
When removing the active representation, it now switches to another available representation
Be able to search (select objects in scene) from the Spreadsheet Import/Export UI, as well.
Support renaming materials, styles, and profiles by double clicking them
Materials UI now indicates active class
Significantly faster quantity take-off due to optimised shape utilities
Add to debug UI an operator to toggle detailed ifcopenshell logs
Unit panel now shows length, area, and volume unit for convenience
Allow warning and background decorator colours to be configurable
BIMTester interface deprecated and removed
New operator to restart Blender quickly
Support assigning bSDD classifications in IFC4X3 too, various bugfixes in bSDD and UI improvements
For those who don't care about native IFC and just want a simple geometry importer, a File > Import > IFC (Geometry Only) has been added. A small thing, but a huge QoL improvement for those looking for it!
Members (e.g. stringers) can now have a stair modifier applied as they may be used to support stairs
Deprecate old dumb stair tool and pie menu
All changes
All changes can view the directly via the Git logs here:
Credits for this release (in order of commits via git shortlog -sn --since "2024-06-02"):
493 Andrej730
358 Dion Moult
157 Ziad-I
115 Thomas Krijnen
104 Bruno Perdigão
23 Blender Defender
21 Ryan Schultz
16 Chirag Singh
14 ay-ex
8 tim
6 John Yani
6 Kristoffer Andersen
6 Richard Brice
4 Bernd Hahnebach
3 Bruno Postle
3 Vanuan
3 Yassine Oualid
2 VDobranov
1 ArturTomczak
1 Augustin Trancart
1 D4ve-R
1 DimitriosThe
1 Gorgious56
1 Jean-Marc Couffin
1 Johannes Schorr
1 Jonathan Gan
1 Junzhe Ren
1 Kurt Battisti
1 Manu Varkey
1 Tim
1 mat
1 petrisch
1 shungeer
Donors since the last release:
BIMvoice
Incognito
Lawrence Giroux
PlaniBIM SA
Randolph
Sailor
Tomasz
Aether Engineering s.a.s. (Aether Engineering)
Cyril Waechter BIM Insight
E4tech Software SA
carlopav
Matthew Fuller
OpeningDesign
Alex
Dion Moult
Yoann OBRY
Guest
StefStap
Sven Amiet
Haritonov Alexander
Losepacific
Isaac Rowe
Arjan
Dumitru Minciu
Hannes
Marcos
Rodas
tlang
cvillagrasa
Jonny Knopp
Abdelmalek HARRAG
Arun
Bedrossian Ádám
bimage
bitenergie
Dmitriy Koptev
Duarte Farrajota Ramos
Frode Lund Tharaldsen
Henning Munzel
Leon ten Brinke
Louis Trümpler
Mattijs
N1k0
Omar Zerhouni
ppaawweeuu
Udo
Hjalti
Alexander
Jeremy
Agents of Architecture
Ari Pikkarainen
bclmnt
Benny
Bruno Perdigão
casiovadal
Choong1219
Christoph Mellüh
Cordero Architecture
Dawid Fedko
Dirk Olbrich
Fabian Emanuel Kitzberger
Gaurav Rampal
Krande
Madars Siksna
Marcin Boguslawski
Miguel
Rafel Bayarre
Royner
Tim McGinley
Vinícius De Souza Lima
Alexander Kleemann
Aslejo
Benjamin Smith
Dayo Ayadi
k zhong
Stephen Cremin
WILTON
Marco Andrade
Christian
Denis Pommier
GPM UNIVERSAL MX
Jan Mayer
Valter Robson
Kevin Lee
With the Experimental light simulation integration with Radiance, would this means we are getting closer to daylight simulations for interior rooms within the UI of Bonsai? Any insight as for the future development and progress for let say daylight factor, Sda, UDI, glare etc? Would have been neat if the IfcSpaces defined the calculation planes for these calculation alongside other minor features. Also, will the obj format convertion go to the windows temporary folder? If you have to tweek alot of rooms to meet you national codex, each small change and test will take up a lot of space for each conversion to the radiance readable format.
@Ole_Marius_Svendsen the experimental light simulation at the moment does not tackle the more usual cases that you mention (DF, Sda, UDI, glare). Instead, it's current intention is to make it economical to do scientifically "within the ballpark" luminance simulations that are also visually engaging (see this very old proof of concept). There's not really a market for this, but it's something I personally think the industry needs a bit more of. So this means more cosmetic things like calibrating textures with macbethcal, instancing proxy objects and vegetation, using HDRI environment maps with gensky sun replacements, etc. Other existing tools like Vi-suite tackle the more common usecases.
In the future, naturally the code can be reused to integrate with, or support the common usecases - but nothing yet planned. This future roadmap needs to have a light simulationist guide its development, not me.
This is huge. Both the bold rebranding and the choice to go all in on the new extensions platform will pay out. I've tested it and it's a breeze to install Bonsai on a 4.2+ Blender installation. I'm eager to test out the new features, I don't know which ones I prefer but the freestyle renderer and uncoupled outliner hierarchy stand out to my workflow. Cheers
I am on Fedora 40, installed the Blender 4.2 via Fedora built-in software management tool 'Software', select the RPM version which has 4.2 version (Flatpak etc. only has 4.1). Installed Bonsai via Extension, and got below error message :)
os: Linux
os_version: #1 SMP PREEMPT_DYNAMIC Mon Aug 19 14:09:30 UTC 2024
python_version: 3.12.5
architecture: ('64bit', 'ELF')
machine: x86_64
processor:
blender_version: 4.2.0
bonsai_version: 0.8.0
bonsai_commit_hash: None
last_actions:
last_error: Traceback (most recent call last):
File "/home/paullee/.config/blender/4.2/extensions/.local/lib/python3.12/site-packages/ifcopenshell/__init__.py", line 81, in <module>
from . import ifcopenshell_wrapper
File "/home/paullee/.config/blender/4.2/extensions/.local/lib/python3.12/site-packages/ifcopenshell/ifcopenshell_wrapper.py", line 13, in <module>
from . import _ifcopenshell_wrapper
ImportError: cannot import name '_ifcopenshell_wrapper' from partially initialized module 'ifcopenshell' (most likely due to a circular import) (/home/paullee/.config/blender/4.2/extensions/.local/lib/python3.12/site-packages/ifcopenshell/__init__.py)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/paullee/.config/blender/4.2/extensions/blender_org/bonsai/__init__.py", line 225, in <module>
import ifcopenshell.api
File "/home/paullee/.config/blender/4.2/extensions/.local/lib/python3.12/site-packages/ifcopenshell/__init__.py", line 83, in <module>
raise ImportError("IfcOpenShell not built for '%s'" % python_distribution)
ImportError: IfcOpenShell not built for 'linux/64bit/python3.12'
binary_file_name: _ifcopenshell_wrapper.cpython-311-x86_64-linux-gnu.so
binary_python_version: 3.11
[ Bug Report ]
I am on Fedora 40. Installed Blender 4.2 via Fedora built-in management tool 'Software', selected the RPM route (as Flatpak etc. has only 4.1). Installed Bonsai via the Extension, and got below error message.
Thanks :)
os: Linux
os_version: #1 SMP PREEMPT_DYNAMIC Mon Aug 19 14:09:30 UTC 2024
python_version: 3.12.5
architecture: ('64bit', 'ELF')
machine: x86_64
processor:
blender_version: 4.2.0
bonsai_version: 0.8.0
bonsai_commit_hash: None
last_actions:
last_error: Traceback (most recent call last):
File "/home/paullee/.config/blender/4.2/extensions/.local/lib/python3.12/site-packages/ifcopenshell/__init__.py", line 81, in <module>
from . import ifcopenshell_wrapper
File "/home/paullee/.config/blender/4.2/extensions/.local/lib/python3.12/site-packages/ifcopenshell/ifcopenshell_wrapper.py", line 13, in <module>
from . import _ifcopenshell_wrapper
ImportError: cannot import name '_ifcopenshell_wrapper' from partially initialized module 'ifcopenshell' (most likely due to a circular import) (/home/paullee/.config/blender/4.2/extensions/.local/lib/python3.12/site-packages/ifcopenshell/__init__.py)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/paullee/.config/blender/4.2/extensions/blender_org/bonsai/__init__.py", line 225, in <module>
import ifcopenshell.api
File "/home/paullee/.config/blender/4.2/extensions/.local/lib/python3.12/site-packages/ifcopenshell/__init__.py", line 83, in <module>
raise ImportError("IfcOpenShell not built for '%s'" % python_distribution)
ImportError: IfcOpenShell not built for 'linux/64bit/python3.12'
binary_file_name: _ifcopenshell_wrapper.cpython-311-x86_64-linux-gnu.so
binary_python_version: 3.11
Linux distributions that package Blender with Python 3.12 cannot install from the extensions platform as Blender's website only lets us upload a single Python version. For now, you can install manually the old way, by downloading the right package and doing "install from disk": https://github.com/IfcOpenShell/IfcOpenShell/releases
The decoupling of the outliner is brilliant, and much more precise. A floor isn't supposed to be able to belong to more than one building, but an object can be in two different blender collections. This is more consistent. Also, the color legend looks wonderful, I use that feature all the time in Revit. But of course, Revit has crappy support for just that, you have to use third party paid addins like NTI Tools or Naviate to accomplish that nicely. In addition to that, the spreadsheet functionality also looks really promising. Beeing able to select objects directly from the list is incredibly useful. Bonsai is getting increasingly competitive with the Revit ecosystem. Having an open source alternative that we can tinker with ourselves is going to be just awesome!
I am trying to test the new web interface. I would like to create a table of all pipes in a project, and add columns for type names, diameter and other properties. I can't find how to create such a schedule or table, where do I start?
I also tried using the updated clipping planes feature. It doesn't appear to work on pipes, what do I need to do to get it working on pipes and insulation(covering). Edit: Clipping plane works with view mode set to "Solid" instead of "Material Preview". Probably a newbie mistake, but in case someone else is struggling :-)
Comments
Good morning and a wonderful update we have.
Now the challenge I have is that I have the wall tool activated but the option tools are not showing. I am using Blender 4.1 and with the blenderbim-240216-py311-win.zip version. Find the attached image below;
Hi! You're using old version from 16 February, this issue is fixed in the release available on https://blenderbim.org/.
awesome work from the developers
On windows official BBIM 240402 from Download of the homepage is with py11, but Blender 3.6.x is with Python 10 ... on activation the error attached pops. But on the homepage is written it works with Blender 3.6.
If blenderbim 240402 with py10 from https://github.com/IfcOpenShell/IfcOpenShell/releases is used it works well ...
...
I am not even able to link just one ifc ...
both ifc are in 2x3 if this matters ...
EDIT: The problem has been solved ... or better the problem is vanished and linking modells works great. Amazing feature :-)
EDIT: The problem has not been solved ... but it has been found what does the problem triggers ... https://community.osarch.org/discussion/2067/problem-on-linking-file-depending-on-the-file
My bad! Downloaded the wrong version. Thank you.
Cheers, we sorted out the issue with @bernd in a video call. It was probably a local environment issue.
Just in case anyone else meet this error installing BBIM from blenderbim.org, for Blender <= 4.0 you'll need to follow unstable installation as it's using different python version - https://blenderbim.org/docs/devs/installation.html#unstable-installation
I can read the LCA module is removed. Is this due to restrains and bugs for this feature?
Some news here. It was not the environment it was the file. By accident at the beginning I only used files which makes problems. The time beeing I have rare of them. See https://community.osarch.org/discussion/2067/problem-on-linking-file-depending-on-the-file for continue the disscussion ...
@Ole_Marius_Svendsen it was basically unmaintained and did barely anything useful.
Understood. Thanks for the feedback! Would we ever see a reentrance of analytical tools? I understand it need to be up to date for us to apply it. Never used the LCA module, though would hope it can be relevante on day for my line of work.
Yes, definitely. When there is a clearer definition of how it should be integrated, it can be reintroduced.
BlenderBIM Add-on v0.0.240602 has been released with 561 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 a release with lots of small changes that add up.
OK. Deep breath. Get ready. Go!
The documentation shown below is from the OpeningDesign Highland Haven project licensed under CC BY-SA 4.0. Check out OpeningDesign today! They do all their architectural work open source!
Drawing improvements
It's now much faster to print multiple drawings, as drawing synchronisation is now done only once. When drawings fail to create, there is now a drawing debug operator to help users and developers discover what the problem is.
Default settings are now available in case you delete them from a drawing's pset. Drawing decorators, such as smart text annotations, are now correctly refreshed after any edit in the UI. Smart text also responds correctly to actual line breaks now.
The underlay cache is now working as intended instead of being ignored.
There were many unnecessary operations happening during drawing loads, saves, or property edits. These were mostly wasteful and have been removed.
Any missing sheets will now be regenerated when needed, just like missing drawings.
It is now almost 3x faster to save models when syncing collections. Activating and switching drawing is now about twice as fast.
Continued work on style and material consolidation
The styles UI now works in a more similar way to the materials and profiles UI. All of the panels which used to exist in the Blender Material's tab have now been migrated to the IFC Geometry and Materials tab.
It's now nicer to expand and contract materials in bulk in the material manager without losing your position.
Material total now counts a particular class, not all material classes. You can now add a description and category when creating a new material. You can now add category-specific material psets (such as for concrete or steel). You can now add manual classification references for materials. There is now support for copying material sets and lists, and reuses presentation styles.
Quantity take-off completely redesigned with IfcOpenShell-based calculations
The quantity take-off procedure has been redesigned. Previously, there were multiple quantity take-off utilities that were spread around the interface and all used different quantification methods. These have now been consolidated into the Ifc5D tool and can be run agnostic of Blender. This is critical for those who run automated server model processing.
When doing QTO, it is now possible to choose between different calculation engines. Each calculation engine offers different capabilities with pros and cons with respect to speed, accuracy, and capability. Users can also use custom queries to filter the type of object, and map quantity requirements to calculator functions. This also means that automated QTO can be done for quantities that are not part of the Qto base quantities standard, such as in IFC2X3, or if you have custom QTO requirements. Powerusers can code their own calculation engine.
The old guess quantity feature has been deprecated.
Quantification panel interfaces have been redesigned and are now all in the Costing and Scheduling tab. It should now be easier to use. All of the remaining panels in the N toolbox have already been relocated into their relevant areas in the IFC tabs. There should now be almost no custom panel interface outside this area.
The Blender calculation engine's flooring height and ceiling height are now more accurate.
Packaging improvements
PyPI now consistently releases between Python 3.9 and 3.12. We now also ship the correct Python version for MaxOS.
The bSDD library, IfcPatch, IfcCSV, and IfcClash is now distributed on PyPI. IfcOpenShell and IfcTester's PyPI dependencies have been fixed.
Packaging has been cleaned up somewhat for the BlenderBIM Add-on, with version locks removed for a lot of dependencies and versions bumped and fetched using pip. We also now ship a Python 3.12 variant of the BlenderBIM Add-on.
Improved error reporting
All IFC operations now have improved error reporting. When an error occurs, the system will let you know and show that your file is potentially in an unstable state. You can continue to work with your file, but it is generally not recommended. It also stores the last 10 actions you performed, as well as a journal of detailed logs that occured during those actions. It will direct you to an online troubleshooting page which includes how to ask for help, how to debug it further, and how to copy paste the debug logs when filing a bug report. This will make sure that developers will get all the information they need (ideally, sometimes they still need your model) to fix the issue.
If an error occurs during installation, it's smart enough to show your Python version, Blender version, and platform. It'll figure out the correct installation link for you to reinstall (some users get confused between the many versions we have available).
IfcOpenShell API design upgrades
This is mostly for developers, but it is significant enough to highlight in these release notes.
The API previously functioned one elements one at a time. The API now supports batch commands, so this means that there will be an overall small speed up everywhere. For those who are writing scripts that manipulate IFCs, this can be the difference between a script taking hours and a script taking seconds.
The API now has a much cleaner set of static functions you can call directly. For those using the
api.run
command, this is still fully compatible, and there have been some small optimisations done. However, it is now recommended to use the static functions where possible. For example, instead ofifcopenshell.api.run("root.create_entity", model, ifc_class="IfcWall")
, you can callifcopenshell.api.root.create_entity(model, ifc_class="IfcWall")
. This also means that the developer experience for those using IfcOpenShell in interactive environments such as the Blender Python Console, Jupyter Notebooks, IPython, or those with Intellisense or similar LSP support in their code editor will be much nicer.The API documentation also got flattened and easier to browse, with a lot more introductory docs written and improved cross referencing of modules, functions, and methods with improved visual styling.
The module initialisation conventions have also been made more consistent, with all modules requiring explicit importing and dependencies across modules removed, such as the util module requiring the api. Modules which require optional dependencies also now give clear error messages if they are unavailable.
The element utility has had a large number of small optimisations done. These will all add up, especially when running scripts. There are also a large number of new utility functions, such as getting the groups of an element, or traversing void and fill relationships, and parents up the spatial heirarchy.
Now that we are dropping support for older Python versions, a huge amount of type hinting has been added throughout the codebase.
IFC4 and IFC2X3 test suites have been consolidated, so there are significantly more tests and this helps catch and fix all sorts of invalid "default" behaviour that the API might do.
Documentation has continued to be improved throughout - too much to enumerate but expect new code examples, function docstrings, and explanation everywhere. This includes examples of how to use filters for IfcConvert and how to use IfcTester.
Custom properties
This sounds like a strange one, but we now support adding arbitrary custom properties and quantities without the need to first create a property set template. This is not good practice (e.g. data types are autodetected) but still convenient when you want to quickly throw in some data or for educational purposes. We still highly recommend everybody to use templates.
Google Summer of Code 2024
This will be the 4th year that IfcOpenShell / the BlenderBIM Add-on will be participating in the GSoC programme! This year, we have three students with winning proposals. Please welcome Kshitij Roodkee, who will be working on an IfcTester web interface to author IDSes with Vukas. Please also welcome Chirag Singh, who will be working on integrating IFC data with Radiance light simulation. Please also welcome Ziad Ibrahim, who will be working on building a web-based UI that can be run alongside the Blender interface for things like scheduling, gantt charts, and BCF issue management.
Coding has just begun, so expect interesting things happening in the coming updates!
iNEST innovation grant
Development isn't just coding, of course! One significant event is that the BlenderBim Add-on and IfcOpenShell will be part of a research program funded by Italian consortium iNEST (Interconnected Nord-Est Innovation Ecosystem) featuring the participation of Italian companies Cadline Software Srl, 888 Software Products Srl, 3 Face Engineering Srl, Donadello & Partners Stp Srl.
This will likely help with project funding and may result in some interesting future features.
We're hiring again!
Thanks to all our financial donors the time is right to hire another (part-time) developer to join the party! If you know C++ and Python and are passionate about open source software, please see the job advertisement and get in touch!
Ifc5D improvements
Many thanks to those testing and using cost related features! This really helps us fix issues. Here's a bunch of improvements:
IFC2X3 improvements
So much more
It's hard to capture absolutely everything which has changed, but here are a few more stragglers.
get_pset
would return nothing or inherited props with a False valueAll changes
All changes can view the directly via the Git logs here:
https://github.com/IfcOpenShell/IfcOpenShell/commits/v0.7.0?since=2023-11-04&until=2024-04-02
Credits for this release (in order of commits via
git shortlog -sn --since "2024-04-02"
):Donors since the last release:
My word @Moult this is great!
Corrected link to the Git commit log 2024-04-02 to 2024-06-02:
https://github.com/IfcOpenShell/IfcOpenShell/commits/v0.7.0?since=2024-04-02&until=2024-06-02
hello everyone, query: how can I read comments made in the past in this discussion? I am looking particularly for the one in the first image attached (240402), but in the forum I only see as in the second image, thanks in advance,
@Genaro thanks, fixed!
Better late than never:
The update Video for Blenderbim 24.04.02
If you have any corrections or suggestions let me know
Working on 24.06.02 for.... soon
Getting these out before we have the first stable release called Bonsai :)
Bonsai v0.8.0 has been released with 1,357 (!!!) new features and fixes. It's our built environment, help support Bonsai: 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://bonsaibim.org/
This release simultaneously contains a ridiculous amount of sweeping under-the-hood changes as well as UX work.
Due to the sheer volume of new stuff and changes, please treat this release as more experimental than usual :) Help in testing and reporting bugs will be really appreciated!
OK. Deep breath. Get ready. Go!
Hello Bonsai - rebrand from the BlenderBIM Add-on
Same software, same community, new name! The BlenderBIM Add-on is now known as Bonsai!
What initially started as a discussion with the Blender foundation about their updated branding guidelines has resulted in a completely new, distinct brand. Bonsai is a comprehensive interface to the IfcOpenShell suite, our name reflects the precision, detail, craft, cultivation, and community behind our shared vision. The name was decided by the community in 8 pages of forum discussion. Also rabbits next to little trees are so cute :)
Support for IFC4X3 geometry
Alignments (linear elements, linear positioning elements, and referents) are now supported! As IFC4X3 is now an official ISO standard, many users in the infrastructure space are asking "What can view my infrastructure geometry?" - some viewers won't show 2D or 3D curves, let alone infrastructure curves. This also includes more complex 3D forms like sectioned horizontal solids. There was a huge amount of work to achieve this over many months, and the best thing is that it's invisible to users - just load your models!
Upgrade to IfcOpenShell v0.8.0
IfcOpenShell has had an incredibly huge refactor in the meantime. This significant change means that API signatures have changed. Users will immediately notice that Bonsai, and the rest of the IfcOpenShell ecosystem, now share a release cycle and version scheme. That's right! We're now version 0.8.0!
Previously, Bonsai had its own version number based on the date. Stable and unstable releases were not distinguished. IfcOpenShell had its own version number too, but used a commit hash to distinguish builds - version comparisons couldn't be made, and it was unclear if the API was compatible or not, even within the IfcOpenShell ecosystem. The rest of the ecosystem (IfcClash, IfcCSV, etc) had no versions at all. Documentation was unversioned and published sporadically. These were all released at different cycles on different channels. What a mess!
Now, everything has exactly the same version number (now 0.8.0) and has the same release cycle (every ~2 months) and is distributed at the same time across all channels. All in-between versions (unstable alpha builds) are now distinguished using semver compatible versions. Channels are now also consolidated, with everything on PyPI (added IfcDiff, Ifc4D, Ifc5D, IfcCityJSON, IfcFM), and the infamous IfcOpenBot build now redistributed in the main Github releases channel. All libraries expose a VERSION variable you can use to compare.
The biggest user impact in IfcOpenShell is that it now supports multiple geometry kernels. Historically, only OpenCASCADE was supported. Now, you can also use CGAL, or a hybrid of both (some shapes with CGAL and some shapes with OpenCASCADE). This also means in the future that more kernels, smaller kernels, or tailored kernels can be used. This addresses a huge shortcoming in OpenCASCADE where dealing with mesh-like geometry was slow. This means that in the future, loading models can be easily twice as fast. However right now work is still being done on stability and feature parity, so unfortunately this release comes with a speed slowdown regression. If loading huge models quickly is important, you may wish to use an older release until this is addressed. Users can test an experimental CGAL or hybrid kernel in the advanced mode to see what the current state is (expect some stability issues).
This also means that in the future, it's a step towards being able to bundle smaller versions of IfcOpenShell-WASM for the web.
In the IfcOpenShell-Python API, it's been completely refactored to use the new static functions from the previous release. This means a general incremental speedup across everywhere, and a few minor bugs fixed along the process. Documentation now also only uses the static functions. UI tests also are now easier and more fun to write, and can test what the user sees and clicks - great stuff for preventing regressions in the future.
New wall polyline tool and measure tool!
To draw a wall, first enable snapping, Shift-RMB to set the 3D cursor, then Shift-A to add a new wall, then R to rotate, then Shift-RMB to the distance of the end point of the wall, then Shift-E to extend the wall to that distance.
How about this? To draw a wall, Shift-A to add a wall, click the first point, click the second point, then Enter or RMB to finish. Nice!
Drawing walls should feel intuitive. This new approach by Bruno Perdigao is exactly what users expect when drawing walls, with built in snap, clever ways of projecting or aligning wall start and end points, quickly typing in the length of the wall as you draw it, knowing at what height your wall is going to appear at as you draw it, undoing (backspace) segments in the wall tool as you draw it, auto closing loops (press C), and drawing multiple wall segments at once which are auto joined together.
Work has also started in icons and a more usable horizontal toolbar.
There is also a new measurement tool. You'll notice this follows a similar approach to the new wall tool.
Georeferencing: better false origin handling and coordinate operation support
Handling coordinate systems and large coordinates has seen a complete overhaul. IFC defines all geometry in terms of a local engineering coordinate system, and additionally may define a coordinate system, with an optional transformation to convert between local and map coordinates. Previously, all models were loaded such that the Blender origin coincided with the IFC local engineering origin. If you had two models that were geolocated in different parts of the world (or different parts of the same site), Bonsai would still load their local origins on top of one another. In general, all IFC viewers have this (incorrect) behaviour except for specialist software dedicated to showing this properly like IfcGref or ArcGIS.
Bonsai now supports federating models together true to their map coordinates, not just local coordinates. You can take many models across a city or site with different origins, project norths, or even project and map units, and they'll all come in correctly (for both opening, linking, and (yes!) merging). Even obscure combinations of both map conversions and rotated custom world coordinate systems are handled. To my knowledge this is the most advanced and correct implementation out there. The only thing not yet supported is reprojection across different coordinate systems.
In addition, where coordinates are very large, or where there are conflicting, irreconcilable coordinate ranges within the same model, Bonsai's ability to pick a meaningful, session-specific false origin is now faster, more accurate, more customisable (including a new disabled mode), and handles really strange coordinate combinations which we see out there in the wild. Users can also interrogate elements with problematic coordinates and fix them, or set a temporary, session-specific project north. There is a new, simple to use, SetFalseOrigin patch recipe that lets you pick a point and set the map coordinates at that point with that point being a new local origin. In the past, editing these "incorrectly georeferenced" models would be hit-and-miss. Now, it's actually possible to do regular geometric editing in this situation.
What makes this extra special is that this also works in IFC2X3 using the fallback georeferencing property sets! We also support all the new coordinate operations in IFC4X3. Editing a WCS is now possible in the Blender interface. Editing angles for true north and grid north now auto calculates abscissas, ordinates, (or vice versa) for ease of use.
Understanding exactly how georeferencing works in general, let alone how it is expressed in IFC is not an easy task. You can now turn on a visualisation which shows clearly where is the project north, where is the map north, where is true north, if you have any session-specific overrides, what is defined locally and what is defined as a transformation, etc. There is also a simpler coordinate conversion calculator, and all coordinates always show with units to prevent ambiguity. We hope for this to be a reference implementation for the industry.
BCF version 3 support
In addition to a ton of BCF bugs being fixed by bernd, thanks to Andrej730 the Bonsai interface now has support for loading and creating BCF XML version 3 files (previously, only BCF v2.1). Hooray!
New web interface for scheduling, gantt charts, and more
Despite Blender's phenomenal extensibility, there are some areas where Blender's interface falls short. It's great at 3D, but not so great at spreadsheets, page layouting, gantt charts, long-form textareas, and highly customised interface widgets. In contrast, the web is really good at this type of flexible interface, and vice versa, doesn't do so well at graphics. What if we could have the best of both worlds?
Ziad set out to do exactly that. Bonsai's code is largely decoupled from Blender. This means we can reuse the exact same code across any interface or app (like FreeCAD!). Ziad has now built a new websocket based web interface that you can launch alongside your Blender session. For this first release, you'll notice that spreadsheet and scheduling now defaults to displaying tabular data directly on the web instead of having to save to a file and reopen it in another spreadsheet software. This is a live connection, so you can click rows in the spreadsheet and auto zoom to the object in 3D in Blender.
Another module with support is the gantt chart module. Previously, gantt charts were statically exported. Now, you can have a live gantt chart showing your construction schedules, and edit your dates from the web interface and see the gantt chart update live!
Yass managed to sneak in an implementation of a costing module too!
You can also now browse drawings from the web. Quickly and visually switch between drawings and sheets on the web and see previews of them instead of having to launch them separately.
You can also connect multiple Blender sessions together and see their data together in a shared web interface.
This is just the beginning! For those who want to learn how to build your own web interface, the tutorial demo module has been extended.
Experimental light simulation integration with Radiance
Although Blender offers very powerful artistic rendering capabilities out of the box, lesser known is how to perform light simulation in Blender itself. There are already add-ons for this (such as Vi-suite) which can do such things, but these lack a close integration with IFC. IFC can store lighting styles and light distribution data for light sources, and reference external style definitions. It would be great to combine the best of the scientific and artistic worlds and perform photometrically accurate luminance renderings (within a tolerance certainty) that are also beautiful, textured, and evocative.
Chirag has made an excellent start to this - we now ship with PyRadiance and can produce renders directly from the IFC with Radiance. Users can pick simple physical material definitions from SpectralDB and define a camera and sun location (based off IFC true north and georeferencing data). The module handles the conversion from IFC to OBJ to RTM formats under the hood, and users can configure basic rendering settings and material mappings.
New solar analysis tool
Blender has an excellent Sun Position add-on which is able to calculate azimuths, altitudes, solar positions, and analemmas. However effectively using this add-on for architectural, solar, and shadow study usecases required a bit of Blender knowledge. There is now a completely new Solar Analysis panel which extends the Sun Position add-on with better visualisation of the sun position, easier setting lat/longs (reads from IfcSite), easier setting of UTC offset (auto-calculates timezone), and auto sets true north (from IFC true north).
It also supports a one-click view setup for creating shadow renders, with configurable shadow intensity, which are often a requirement for architectural submissions.
There is also a "View From Sun" mode, which places a camera from the sun's position, allowing you to quickly scroll through key dates to check minimum solar access requirements across larger projects such as multiple apartment towers.
Blender 4.2 extension support
This release marks our debut on Blender's new Extensions Website. Blender has standardised how to distribute extensions (add-ons and themes) on the web, where they can be searched, installed, and updated directly from Blender itself. We're super proud to be listed on the main Blender extensions website. This means users can install us easily, and in a single click inside Blender, update to the latest version. Yes! This also means those using latest unstable releases can update every single day with a single click!
This also means that the workarounds previously required for updating or uninstalling are now fixed!
Unfortunately, this does mean that we are dropping support for Blender versions 4.1 and older, as well as Python 3.10 and older, due to a lack of resources.
Consolidated material and style handling
There's been ongoing work to restructure the way materials and styles are handled. This work continues in this release, with more stability and more obscure cases handled. The biggest change was that in the past, a Blender material could either represent an IFC material, an IFC style, or (!!!) both at the same time. This unnecessary complexity led to no shortage of bugs and limitations. Now, Blender materials accurately only refer to IFC styles. Physical materials are managed separately. This is mostly code simplification, bug fixing, and a minor speedup during loading and saving, but means that in the next release we can do more cool things.
Also pretty neat, you can now press a button to assign a style to the selected objects.
Flexible collections and new spatial manager
In previous versions, the way of managing the spatial tree was done in the outliner. This had a number of limitations. For larger projects, you'd end up with very, very long lists of objects and it wasn't possible to get an understanding of what objects you actually had, or even how many storeys or spaces you had. Instead you had to collapse and expand collections and manually filter and count to get an understanding of larger spatial trees. Another problem is that it took away the flexibility of Blender's collection system: you couldn't have objects assigned to multiple collections, and you couldn't ad-hoc create or reoganise custom collections for temporary grouping and visibility like regular Blender. This led to lots of bugs unless you knew the exact rules of what could be nested in what. It also blurred the lines between spaces / objects groups, versus aggregate / subelement groups. In IFC4X3, other relationships like covers or nesting is increasingly common, which would lead to very deep, nested spatial trees. This deep nesting and collection-based way of managing the tree also meant load, save, and drawing generation times were unnecessarily long, and had a risk of creating "sync" bugs.
A huge change has been made to how the spatial tree is managed to address all of this. There is a new spatial decomposition panel with friendly icons, showing only the spatial structure. A split panel below shows elements contained within the active space, grouped into types with counts per class and type. At a glance, you can now see more meaningful results like "I have X storeys", and "X walls on level 2". There are also dedicated buttons for isolating spaces and toggling visibility, and quickly selecting elements within a space (recursively and non-recursively). Previously, you'd have to scroll constantly, and use up to 3 possible visiblity controls to achieve the same thing.
You can now also create new spaces from the spatial panel. These also filter only to valid subspaces. For example, it doesn't allow you to create a bridge inside a room, but it does allow you to place a road on a site. It also has separate dedicated search filters for spaces and elements. These search filters search not only for names, but also long names. Previously, especially for rooms which only have room numbers or buildings with short codes, it was difficult to quickly search for room names or building descriptions, but now you can do it.
This also leads to faster drawings, load, save, and less bugs.
Users can now also set a "Default Container". Previously, new objects were created in whatever collection was active in Blender and contained in whatever IFC element that correlated to. Unless you are a Blender whiz, it isn't clear where your objects are being added to, or if it's valid or not. Now, your nominated "Default Container" is where all new objects end up in, and impacts things like where new walls are drawn to.
This big change means that managing spaces must now be done in this new panel. Reorganising and using multiple non-IFC collections in the outliner is now completely decoupled and freeform for your own organisation and won't change (or break) your IFC structure. For those who wish to create their own session-specific workflows, this is a big win.
IfcTester supports v1.0! IfcPatch is now friendlier and batch process models
IfcTester now supports IDS v1.0! IfcTester now supports the new requirement in IDS for lowercase booleans or 0/1, has more detailed failure messages for predefined types, and handles restrictions on data types. JSON reports are also more comprehensive for those integrating into their own systems. Auditing nested relationships in IFC2X3 is also now supported.
IfcTester can also select multiple IFCs and multiple IDSes and run them all in one go - a game changer for large projects thanks to Beedy! Reporting is now redesigned, and shows more information like whether the IFC schema version is accepted in the IDS, as well as passing elements, not just failures. When an IDS specification applies to an occurrence, the results automatically groups occurrences by type (if they exist) and clusters occurrences so that you can get a feel of common problems by type rather than a huge list of occurrences.
IfcPatch recipes are now easier to use. There are new dropdown menus to select configuration options, file browsing to open up files, and sensitive coordinates preserves precision. You can now merge projects in bulk rather than one by one.
Improved colour legends
When auditing models, we often want to visually check whether properties are correct. The Colour By Property panel now lets you quickly pick a property from the active object and apply a colour legend to it. Two new colourschemes are now available for categorial / qualitative data analysis, and a new view preset to quickly toggle flat colouring to make colours pop and easy to spot. Nice!
For quantitative analysis, there are now 4 new colour legends (2 for min to max ranges, and 2 diverging palettes highlighting the average), with an automatic (or custom) min and max. Ever wanted to quickly colour code your model to show carbon intensities for different materials? You can now do so! Or quickly spot anomalous volumes or lengths during quantity take-off by setting maximum or minimum thresholds.
New Bisect mode and Freestyle mode for drawings
A drawing is composed of a possible raster render as a background, followed by projection / background linework, the linework is then potentially filled or coloured in, then there is the actual cut objects, and finally the annotations.
Previously, the hidden line rendering for background / projection linework as well as the cut linework was calculated by OpenCASCADE. OpenCASCADE is quite slow to perform this, and doesn't work very well on organic forms (for heritage or landscape architecture). The new, default, Bisect cut mode uses Blender's built-in Bisect tool to perform the cut - and is generally faster and more robust against strange and non-manifold geometry.
There is also an option to use Blender's Freestyle renderer to perform the background / projection linework. This is significantly faster on complex scenes, being easily twice as fast to 10x faster. As a trade-off, it is also less accurate, but it may be sufficient for your situation.
It also doesn't allow for vector background fills yet. On the flip side, it does mean we now support producing vector linework for perspective renders.
Thanks to Manu Varkey, theoryshaw, and Carlopav for test models shown above!
Sponsored development by Beedy and Bruno!
Thanks to all our financial donors we've been able to sponsor work by Beedy and Bruno Perdigao! It's incredible how many people chipping in from $5 a month can allow us to accelerate development.
We have about $2300 per month in funding. Will you help us reach $2500? Check out https://opencollective.com/opensourcebim if you haven't already :)
So much more
It's hard to capture absolutely everything which has changed, but here are a few more stragglers.
All changes
All changes can view the directly via the Git logs here:
https://github.com/IfcOpenShell/IfcOpenShell/commits/v0.7.0?since=2023-11-04&until=2024-06-02
Credits for this release (in order of commits via
git shortlog -sn --since "2024-06-02"
):Donors since the last release:
With the Experimental light simulation integration with Radiance, would this means we are getting closer to daylight simulations for interior rooms within the UI of Bonsai? Any insight as for the future development and progress for let say daylight factor, Sda, UDI, glare etc? Would have been neat if the IfcSpaces defined the calculation planes for these calculation alongside other minor features. Also, will the obj format convertion go to the windows temporary folder? If you have to tweek alot of rooms to meet you national codex, each small change and test will take up a lot of space for each conversion to the radiance readable format.
@Ole_Marius_Svendsen the experimental light simulation at the moment does not tackle the more usual cases that you mention (DF, Sda, UDI, glare). Instead, it's current intention is to make it economical to do scientifically "within the ballpark" luminance simulations that are also visually engaging (see this very old proof of concept). There's not really a market for this, but it's something I personally think the industry needs a bit more of. So this means more cosmetic things like calibrating textures with macbethcal, instancing proxy objects and vegetation, using HDRI environment maps with gensky sun replacements, etc. Other existing tools like Vi-suite tackle the more common usecases.
In the future, naturally the code can be reused to integrate with, or support the common usecases - but nothing yet planned. This future roadmap needs to have a light simulationist guide its development, not me.
This is huge. Both the bold rebranding and the choice to go all in on the new extensions platform will pay out. I've tested it and it's a breeze to install Bonsai on a 4.2+ Blender installation. I'm eager to test out the new features, I don't know which ones I prefer but the freestyle renderer and uncoupled outliner hierarchy stand out to my workflow. Cheers
[ Bug Report ]
I am on Fedora 40, installed the Blender 4.2 via Fedora built-in software management tool 'Software', select the RPM version which has 4.2 version (Flatpak etc. only has 4.1). Installed Bonsai via Extension, and got below error message :)
[ Bug Report ]
I am on Fedora 40. Installed Blender 4.2 via Fedora built-in management tool 'Software', selected the RPM route (as Flatpak etc. has only 4.1). Installed Bonsai via the Extension, and got below error message.
Thanks :)
Linux distributions that package Blender with Python 3.12 cannot install from the extensions platform as Blender's website only lets us upload a single Python version. For now, you can install manually the old way, by downloading the right package and doing "install from disk": https://github.com/IfcOpenShell/IfcOpenShell/releases
We mentioned this bug previously to Blender but we never formally reported it as a bug report, I've just done so: https://projects.blender.org/blender/blender/issues/127090
@Moult you could include duplicate wheels for different python versions in the extension itself, it would bloat the download though.
@brunopostle it would also complicate packaging, since that would be not only for IfcOpenShell but other dependencies too. Not ideal.
The decoupling of the outliner is brilliant, and much more precise. A floor isn't supposed to be able to belong to more than one building, but an object can be in two different blender collections. This is more consistent. Also, the color legend looks wonderful, I use that feature all the time in Revit. But of course, Revit has crappy support for just that, you have to use third party paid addins like NTI Tools or Naviate to accomplish that nicely. In addition to that, the spreadsheet functionality also looks really promising. Beeing able to select objects directly from the list is incredibly useful. Bonsai is getting increasingly competitive with the Revit ecosystem. Having an open source alternative that we can tinker with ourselves is going to be just awesome!
I am trying to test the new web interface. I would like to create a table of all pipes in a project, and add columns for type names, diameter and other properties. I can't find how to create such a schedule or table, where do I start?
I also tried using the updated clipping planes feature. It doesn't appear to work on pipes, what do I need to do to get it working on pipes and insulation(covering). Edit: Clipping plane works with view mode set to "Solid" instead of "Material Preview". Probably a newbie mistake, but in case someone else is struggling :-)