This is a bugfix release, there were problems with the 2024-09-01 release.
Note: from now on Homemaker will only work with the new Bonsai Blender Extension which replaces the older BlenderBIM add-on.
Note: the next release should be a Blender Extension with a different install process, until then, this is a legacy add-on that uses the old install process.
Changes:
Blender-4.2 preferences fixed
Fix error when no IfcStructuralItem collection
Use relative imports wherever possible
Remove blender_manifest.toml from bundle as this is a legacy add-on
What is the correct order of activation steps for the homemaker-2024-09-02, which is compatible with the Bonsai Blender Extension? Dependencies: Noarch, Topologic-Sverchock, and Topologic.
Note: I have already installed Blender 4.2.1 and Bonsai 0.80.
The noarch download exists because there is a possibility of a conflict with a topologic-sverchok installation - as both include a copy of the topologic_core library, and bad things might happen if two different versions of this are installed, so the noarch download is missing this library.
This is a speculative problem, and in theory the new blender extensions system will prevent this kind of clash, so I'll be removing the noarch option when I add Homemaker to the extensions platform.
@brunopostle This latest release seems to be working fine. Anything in particular you want tested?
Btw. my blender starting cube is slightly altered to have a proper ceiling height.
Topologic Core is now an independent pip installable library (like numpy and scipy). Upcoming versions of Topologic-sverchok will be pure python and will have topologic-core as a requirement. Would be great if Homemaker followed the same approach and standardised on the no-arch version and put topologic-core as a requirement. https://pypi.org/project/topologic-core/
This release has some new features, API changes, better documentation, lots of bugfixes, noticeable speed improvements, and has been upgraded to the new Blender Extension format.
Installation is now slightly different: there is just one download for Windows, Linux and Mac ARM; ensure the Bonsai extension is installed; then install Homemaker using the Edit > Preferences > Get Extensions > v > Install from disk... option.
Features
Walls can now be modelled as aggregates of repeating, shell and covering elements, window and door openings are cut through these aggregated walls in the same way as normal layered walls.
The 'framing' style demonstrates this feature showing walls built from studs, insulation and sheathing.
To support this, perimeters of grillage and shell elements can be shrunk or grown using a new 'inset' parameter. This feature adds a dependency on the shapely library (provided by Bonsai anyway).
Style API changes
The style configuration format is now documented as comments in the YAML files themselves, hopefully this gives some clue as to usage. Some of the naming has been redesigned to make a bit more sense and allow future features, this means that previous styles are incompatible and need upgrading:
Extrusion, Floor, Shell and Wall classes in traces.yml and hulls.yml now require a typename attribute to specify the name of the type to use. Previously the name of the hull or trace was used to find the type. This had the unfortunate effect of not allowing multiple uses of a type.
The name attribute in families.yml is renamed to typename to be consistent with traces.yml and hulls.yml usage.
Entries in openings.yml now have a family attribute to make it clear that they refer to items in the families.yml file. Previously this attribute was called name which was confusing.
Bugs fixed
Homemaker now reloads the model instead of trying to clean up the scene through the outliner. This seems to have fixed a lot of instability, so in general you can repeatedly run the Homemaker operator to generate/regenerate IFC models, and Topologise to generate/recreate CellComplex models, all in the same session without crashes.
Workarounds for IfcOpenShell#5391. Note that still there are issues where Materials are imported without surface styles or psets under some
circumstances.
Minor bugs fixed: fix tests; don't draw wall axis if it has no representation; don't purge types as purging types results in types being reinserted which drags in new copies of existing materials etc..; purge_unused() reinstate some more items; remove doubles when meshing a cellcomplex; and stop assigning IfcLayerSetUsage to IfcWallType.
Some minor fixes in the supplied IFC assets: fix duplicate Type GUIDs, purge unused materials from asset libraries, reverse pitched-roof layerset, clear description and category for materials, fix minor library validation issues, and Material names are now all unique.
Homemaker now uses the latest topologic_core library, together with IfcOpenShell improvements, runs about two to three times faster than before.
Various fixes related to the blender 4.2+ extension requirements: try relative import if topologist/molior not found, only append path if running in blender text editor, share_dir is now an absolute path, Blender manifest fixes, list some wheels in the manifest, switch bundle to newer PyYAML, licenses: topologic/agpl, yaml/mit.
Documentation
The documentation has some improvements: the usage for generating building elements separately and other workflows are described; the API documentation appears to be back. https://homemaker-addon.readthedocs.io/en/latest/
Licensing
All assets and styles are now relicensed from share-alike to public-domain as Blender Extension assets are required to be Creative Commons Zero.
Some pictures to illustrate the new aggregate wall feature:
To create this IFC model, all you have to do is create this mesh in blender, change the blender material name to 'framing', and run Object > Homemaker:
Amazing progress @brunopostle! Congratulations. Quick question (sorry I have not used HM in a long time, so sorry if this is not a very smart question): Is it possible to control the window-to-wall ratio for each compass direction to create smaller windows (or less windows)?
@topologic the number, size and spacing of windows is controlled by the given style, but there is nothing that concerns itself with orientation (currently).
You could create sub-styles that inherit the parent style in every respect except these fenestration rules, and apply them to different walls in the CellComplex. There is probably some clever visual programming thing you could do in blender to apply different styles to different faces based on arbitrarily complex rules - phrased like that this doesn't seem like something that needs to be done in Homemaker itself - you could do a modern design where all east facing walls were concrete with porthole windows and south walls were patent glazing.
I released a quick bugfix for the Homemaker addon, walls were missing a LayerSetUsage offset in the last release, so they jumped position when edited in Bonsai. This is fixed in blender-homemaker-2024-12-01, this is a single download blender extension with dependencies for Linux, Windows and Mac.
Comments
What is the correct order of activation steps for the homemaker-2024-09-02, which is compatible with the Bonsai Blender Extension? Dependencies: Noarch, Topologic-Sverchock, and Topologic.
Note: I have already installed Blender 4.2.1 and Bonsai 0.80.
Make sure Bonsai is enabled and then enable Homemaker.
The noarch download exists because there is a possibility of a conflict with a topologic-sverchok installation - as both include a copy of the topologic_core library, and bad things might happen if two different versions of this are installed, so the noarch download is missing this library.
This is a speculative problem, and in theory the new blender extensions system will prevent this kind of clash, so I'll be removing the noarch option when I add Homemaker to the extensions platform.
There is a test Homemaker extension package here and I'd like reports if success or failure (uninstall any legacy Homemaker add-on before installing this): https://github.com/brunopostle/homemaker-addon/releases/tag/2024-09-04
@brunopostle This latest release seems to be working fine. Anything in particular you want tested?
Btw. my blender starting cube is slightly altered to have a proper ceiling height.
@wmi that's great, most of the recent changes would effect installation etc.. so if this works everything else should be ok
Topologic Core is now an independent pip installable library (like numpy and scipy). Upcoming versions of Topologic-sverchok will be pure python and will have topologic-core as a requirement. Would be great if Homemaker followed the same approach and standardised on the no-arch version and put topologic-core as a requirement.
https://pypi.org/project/topologic-core/
@topologic the upcoming Homemaker blender Extension package (in the link above) uses your topologic_core wheels, so this is fixed.
New blender-homemaker-2024-11-10 release
Design buildings the pointy-clicky way
This is a packaged Homemaker extension with dependencies for Linux, Windows and Mac.
This release has some new features, API changes, better documentation, lots of bugfixes, noticeable speed improvements, and has been upgraded to the new Blender Extension format.
Installation is now slightly different: there is just one download for Windows, Linux and Mac ARM; ensure the Bonsai extension is installed; then install Homemaker using the Edit > Preferences > Get Extensions > v > Install from disk... option.
Features
Walls can now be modelled as aggregates of repeating, shell and covering elements, window and door openings are cut through these aggregated walls in the same way as normal layered walls.
The 'framing' style demonstrates this feature showing walls built from studs, insulation and sheathing.
To support this, perimeters of grillage and shell elements can be shrunk or grown using a new 'inset' parameter. This feature adds a dependency on the shapely library (provided by Bonsai anyway).
Style API changes
The style configuration format is now documented as comments in the YAML files themselves, hopefully this gives some clue as to usage. Some of the naming has been redesigned to make a bit more sense and allow future features, this means that previous styles are incompatible and need upgrading:
Extrusion, Floor, Shell and Wall classes in
traces.yml
andhulls.yml
now require atypename
attribute to specify the name of the type to use. Previously the name of the hull or trace was used to find the type. This had the unfortunate effect of not allowing multiple uses of a type.The
name
attribute infamilies.yml
is renamed totypename
to be consistent withtraces.yml
andhulls.yml
usage.Entries in
openings.yml
now have afamily
attribute to make it clear that they refer to items in thefamilies.yml
file. Previously this attribute was calledname
which was confusing.Bugs fixed
Homemaker now reloads the model instead of trying to clean up the scene through the outliner. This seems to have fixed a lot of instability, so in general you can repeatedly run the Homemaker operator to generate/regenerate IFC models, and Topologise to generate/recreate CellComplex models, all in the same session without crashes.
Workarounds for IfcOpenShell#5391. Note that still there are issues where Materials are imported without surface styles or psets under some
circumstances.
Minor bugs fixed: fix tests; don't draw wall axis if it has no representation; don't purge types as purging types results in types being reinserted which drags in new copies of existing materials etc..;
purge_unused()
reinstate some more items; remove doubles when meshing a cellcomplex; and stop assigning IfcLayerSetUsage to IfcWallType.Some minor fixes in the supplied IFC assets: fix duplicate Type GUIDs, purge unused materials from asset libraries, reverse pitched-roof layerset, clear description and category for materials, fix minor library validation issues, and Material names are now all unique.
Homemaker now uses the latest topologic_core library, together with IfcOpenShell improvements, runs about two to three times faster than before.
Various fixes related to the blender 4.2+ extension requirements: try relative import if topologist/molior not found, only append path if running in blender text editor,
share_dir
is now an absolute path, Blender manifest fixes, list some wheels in the manifest, switch bundle to newer PyYAML, licenses: topologic/agpl, yaml/mit.Documentation
The documentation has some improvements: the usage for generating building elements separately and other workflows are described; the API documentation appears to be back. https://homemaker-addon.readthedocs.io/en/latest/
Licensing
All assets and styles are now relicensed from share-alike to public-domain as Blender Extension assets are required to be Creative Commons Zero.
Some pictures to illustrate the new aggregate wall feature:
To create this IFC model, all you have to do is create this mesh in blender, change the blender material name to 'framing', and run Object > Homemaker:
Amazing progress @brunopostle! Congratulations. Quick question (sorry I have not used HM in a long time, so sorry if this is not a very smart question): Is it possible to control the window-to-wall ratio for each compass direction to create smaller windows (or less windows)?
@topologic the number, size and spacing of windows is controlled by the given style, but there is nothing that concerns itself with orientation (currently).
You could create sub-styles that inherit the parent style in every respect except these fenestration rules, and apply them to different walls in the CellComplex. There is probably some clever visual programming thing you could do in blender to apply different styles to different faces based on arbitrarily complex rules - phrased like that this doesn't seem like something that needs to be done in Homemaker itself - you could do a modern design where all east facing walls were concrete with porthole windows and south walls were patent glazing.
I released a quick bugfix for the Homemaker addon, walls were missing a LayerSetUsage offset in the last release, so they jumped position when edited in Bonsai. This is fixed in blender-homemaker-2024-12-01, this is a single download blender extension with dependencies for Linux, Windows and Mac.