Bonsai new release!

189101113

Comments

  • edited April 2

    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/.

  • awesome work from the developers

    carlopav
  • edited April 2

    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'
    
  • edited April 3

    I am not even able to link just one ifc ...

    • load a ifc
    • 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
      

    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

  • Hi! You're using old version from 16 February, this issue is fixed in the release available on https://blenderbim.org/.

    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.

    Owura_qu
  • ImportError: IfcOpenShell not built for 'windows\64bit\python3.10'
    

    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?

  • @Moult said:
    Cheers, we sorted out the issue with @bernd in a video call. It was probably a local environment issue.

    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.

  • @Moult said:
    @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.

    Ole_Marius_SvendsenAce
  • edited June 2

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

    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"):

       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
    
    Andrej730steverugiAceMartinRomanLarsKoArabdamaypaulleecarlopavpstrokapand 25 others.
  • My word @Moult this is great!

  • edited July 30

    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!

    Genaro
  • 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 :)

    MassimoMoultAndrej730ShegsOwura_qubdamayartttlangbruno_perdigaoKoAraand 10 others.
  • 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.

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

    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"):

       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
    
    Andrej730KoAratheoryshawBedsontlangbrunopostleJesusbillJohnZiadDADA_universeand 28 others.
  • 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.

    Ole_Marius_SvendsenCGROwura_quatomkarinca
  • 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

    MoultcarlopavBedsonduarteframosMassimoOwura_qu
  • [ 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 :)

    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
    
  • edited September 3

    [ 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

    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

    paulleesteverugi
  • @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!

    steverugiduarteframoscarlopavMassimoGorgiousKoAraOwura_quCadGiru
  • edited September 3

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

    KoAra
Sign In or Register to comment.