OSArch Community

Homemaker add-on

  1. B

    @Jesusbill said:

    Worked also for me with Blender 2.92.0 standard installation with the standard installation (the tar file from the website).

    Great!! I can now also try topologic!! :)

    The topologic backend is already installed if you have the Homemaker add-on.

    You can then download and install the Topologic Sverchok nodes, but there is currently some Windows code that prevents it from running, edit ~/.config/blender/2.93/scripts/addons/topologicsverchok-main/__init__.py and comment-out lines 43, 44 & 45.

    @DADA_universe said:

    *Sitting quietly while watching from the naughty corner with my Windows system.

    There is a Windows add-on for Topologic, but it is 450MB and requires Visual Studio at runtime, hopefully this can be fixed.

  2. B

    Did I mention that the Homemaker add-on library on doesn't depend on blender at all? There is a short script in the repository called brep2ifc.py that shows how you could use FreeCAD geometry to create IFC building models (it still needs a recent ifcopenshell python + topologic)

  3. P

    Can you make a simple demo please ? :)

  4. B

    @paullee said:

    Can you make a simple demo please ? :)

    I have been concentrating on blender, so I haven't really investigated freecad, but at the moment you should be able to save a brep file (with planar faces only), run the brep2ifc.py script, and import the IFC result into freecad. Someone who understands a bit more about freecad ought to be able to skip the brep file step.

  5. T

    @brunopostle said:

    Did I mention that the Homemaker add-on library on doesn't depend on blender at all? There is a short script in the repository called brep2ifc.py that shows how you could use FreeCAD geometry to create IFC building models (it still needs a recent ifcopenshell python + topologic)

    Topologic also doesn’t depend on blender. It can run as a python module from the console. Topologic-sverchok on the other hand runs with Blender.

  6. B

    I've uploaded a new linux blender-homemaker-2021-07-03-linux-x86_64 add-on.

    This release rolls-back the bundled cppyy from 2.0.0 to 1.9.6, this should resolve the segfault error on some systems that required disabling hardware graphics acceleration in the previous release. It also adds some new styling features and some example styles.

    I don't really expect it to work everywhere, but would like any error messages or any reports of success, please open an issue, or add a comment to an existing issue.

    Requirements

    There are two linux downloads, download py37 or py39 to correspond to the version of blenderbim that you have installed above (the blender download from blender.org uses py37, except 2.93 or later that uses py39).

    Install the add-on by browsing for the zip archive in the blender preferences, and enable (if you already have an older version of the add-on, uninstall it and restart blender before installing the newer add-on)

    To test, select the default cube and choose 'Homemaker Topologise' in the 'Object' menu.

  7. S

    Successful here, but must be enabled after blenderbim.

    Also conflict with archipack, will take a look at this, but i guess it is related to callbacks for object placement.

  8. B

    Here's a short screencast of the Homemaker add-on, the styles are lifted from the Halifax Piece Hall.

    Although it looks quite elaborate, the final IFC file is only 800kB.

    I cut about half the video where nothing is happening while IFC data is generated. There is also a new Linux Homemaker add-on release, this one is about four times faster than before, though there is still an annoying bug that hugely slows everything down.

  9. B

    A bigger version of the same thing:

  10. M

    Will definitely be resharing these videos in the upcoming CAAD Futures talk! They are a great example of what homemaker can do.

  11. B

    I uploaded a new blender-homemaker-2021-08-07-linux-x86_64 add-on as there have been changes in the add-on and in blenderbim that need to be kept in sync.

    This release includes:

    • Refactoring, bugfixes, and changes to keep up with the latest blenderbim

    • Allow setting Pset, PredefinedType and IfcMaterialLayerSet in style definitions

    • Repeating items can have alternative assets to fit different height spaces

  12. S

    Still facing with weired perf issues, maybe py-spy could help to profile ?

    sudo py-spy top --pid 'grep blender'

  13. B

    @stephen_l thanks I'll try this, the performance issues are really hard to track down (background: homemaker is running several times slower in blender than on the command-line). Though I have been using pyinstrument, which does something similar to py-spy, and I see a slowdown in most methods.

  14. J

    This is really amazing, impressive, outstanding work!

  15. D

    @brunopostle I'm getting this error installing the Homemaker add-on:

    ImportError: cannot import name 'import_ifc' from 'blenderbim' (..........config/blender/3.0/scripts/addons/blenderbim/init.py)

    I'm running Blender 3.0 Alpha with the latest Blender Bim and the latest Homemaker release (both Linux, with Python 3.9 which matches Blender 3.0 alpha) on Ubuntu 20.04 running via WSL on a Windows machine. I know I'm testing fate with that combination but I'm hopeful to get it working.

    I first installed and enabled BlenderBim with no issues, restarted Blender and then installed Homemaker and got the error when trying to enable it.

  16. D

    @DADA_universe said:

    @brunopostle I'm getting this error installing the Homemaker add-on:

    ImportError: cannot import name 'import_ifc' from 'blenderbim' (..........config/blender/3.0/scripts/addons/blenderbim/init.py)

    I'm running Blender 3.0 Alpha with the latest Blender Bim and the latest Homemaker release (both Linux, with Python 3.9 which matches Blender 3.0 alpha) on Ubuntu 20.04 running via WSL on a Windows machine. I know I'm testing fate with that combination but I'm hopeful to get it working.

    I first installed and enabled BlenderBim with no issues, restarted Blender and then installed Homemaker and got the error when trying to enable it.

    Part of the error: ERROR in cling::CIFactory::createCI(): cannot extract standard library include paths!

  17. D

    Part of the error: ERROR in cling::CIFactory::createCI(): cannot extract standard library include paths!

    SOLVED (I think).

    Seeing the error was complaining about the import_ifc.py file, I guessed it was trying to find it in the root of the BlenderBim folder, so I traced where the file was located and copied it to the BlenderBIm root folder. This then allowed me to enable Homemaker without error and Object > Homemaker Topologize now works.....now on to some experiments.....

  18. D

    @brunopostle, regarding the build for Windows, I can attempt this if you are able to give me some pointers. I probably would be able to give a bit more time to this towards the end of the month, but happy to start feeling my way round it.

    Secondly, what do I need to be aware of to create custom styles? I see the dxf files in the styles/share folder and I assume some lines of code would need to be updated to reflect any variations to the existing styles. I also see you are driving the use of styles through the application of materials to selected parts of the mesh. I would like to try out custom styles, and I expect it's not as simple dumping in a file of dxfs into the styles folder.

  19. B

    @DADA_universe said:

    SOLVED (I think).

    Seeing the error was complaining about the import_ifc.py file, I guessed it was trying to find it in the root of the BlenderBim folder, so I traced where the file was located and copied it to the BlenderBIm root folder.

    Something changed in blenderbim the last few days, the fix is to modify the from blenderbim import import_ifc line in the Homemaker __init__.py to from blenderbim.bim import import_ifc (which also sounds much better) . I should package a new release

  20. B

    @DADA_universe said:

    @brunopostle, regarding the build for Windows, I can attempt this if you are able to give me some pointers.

    It is definitely possible. @topologic has a Windows build of the topologic sverchok nodes, and with this installed along with blenderbim, ezdxf and yaml python modules, the Homemaker add-on should run on Windows (untested).

    The problem is that cppyy (which provides the topologic C++/python bindings) requires a C++ compiler on the system at runtime. So the Linux Homemaker add-on download actually includes a modified version of the clang compiler along with the other dependencies. The topologic sverchok nodes download for Windows is about 800 MB and it requires a particular version of Visual Studio installed on the system.

    As impressive as cppyy is, it may be simpler to rewrite the C++ bindings with SWIG (though I don't know how to do this).

    [edit] I should add that topologic Windows only needs Visual Studio for the headers, and much of that 800MB is superfluous opencascade libraries, so there is potential to produce a slimmed-down single-download for Windows.

  21. B

    @DADA_universe said:

    Secondly, what do I need to be aware of to create custom styles? I see the dxf files in the styles/share folder and I assume some lines of code would need to be updated to reflect any variations to the existing styles. I also see you are driving the use of styles through the application of materials to selected parts of the mesh. I would like to try out custom styles, and I expect it's not as simple dumping in a file of dxfs into the styles folder.

    The DXF files are assets that are converted into IFC libraries every time the add-on runs. This is very inefficient, so at some point I will convert them to IFC library files , drop the ezdxf dependency, and delete a lot of code. Blenderbim has had much recent work on IFC libraries, I probably no longer have any excuse.

    Either way, the assets are only used if they are referenced in the *.yml files that are also present in the style folders. Much of the logic has been handed-over to these yaml files, so if you wanted to create a building where the walls are replaced by rows of rabbits with class IfcShadingDevice, PredefinedType: .JALOUSIE.. Pset_ShadingDeviceCommon: Roughness: "Cuddly", this can be done by editing an existing yaml configuration, or creating a new style folder 'bunnies' with a custom set of style files.

    Styles are inherited, so the 'bunnies' style will inherit any doors, windows etc.. from the 'default' style; and depending on where you put the 'bunnies' folder, it will also inherit from any other parent folder in-between. The style is activated by assigning materials to faces in the original blender sketch model, so faces with materials called "bunnies" or "bunnies.001" etc.. will produce building elements defined by the 'bunnies' style. There is a bit more explanation in the style module sourcecode. [I'm going to get a coffee, tbc]

  22. T

    Homemaker works just fine on Windows :) You need to install all the pre-requisites and activate in order:

    BlenderBIM

    ezdxf

    pyyaml (yaml)

    topologic-sverchok (includes cppyy and topologicPy for Windows)

  23. B

    @brunopostle said:

    The style is activated by assigning materials to faces in the original blender sketch model, so faces with materials called "bunnies" or "bunnies.001" etc.. will produce building elements defined by the 'bunnies' style. There is a bit more explanation in the style module sourcecode.

    Other than the geometry of the sketch model itself, the other thing you can do to control what gets produced is to assign space-types. At the moment the behaviour of these are all hard-coded, but eventually it will be configurable. There are currently several space types: living, kitchen, circulation, stair, toilet, bedroom and retail; these primarily control which door and window configuration gets used: retail on the ground floor can get a series of shop fronts, no doors are created between kitchens and toilets etc.. I haven't got around to porting the stair drawing module just yet. There are two special space types: 'outdoor' and 'sahn', these generate outdoor spaces that the 'default' style constructs with a flat roof supported by perimeter posts. 'sahn' is an outdoor space type that is treated as internal circulation - think of a private courtyard in a riad house.

    By default every space in your model has a 'living' type, so you get windows, doors between rooms, but no external doors. You can manually assign types by placing new blender objects (such as a new cube) in each of the spaces: give the new object the name 'retail' (or 'retail.001' etc..) and the space becomes a room with this type. If you forget to name or mis-spell this placeholder you will get a very small cube-shaped building inside your main building :). Once you start using these placeholders in a model, any unassigned spaces become 'outdoor'.

    The geometry of the sketch mesh is decomposed using topologic into two kinds of objects: 'traces' and 'hulls', which each have a corresponding traces.yml and hulls.yml in the style definitions. 'traces' are 2D paths that define 'conditions' like wall centrelines or any other feature such as eaves or footings that can be defined by a 2D path. Processing the sketch mesh generates a whole load of these 'traces', only some of which are picked-up by the default style and turned into IFC objects, but all of them are available to be picked-up by other styles. 'hulls' are produced by geometry that can't be decomposed into traces, typically roof geometry.

    There is some more documentation for traces and hulls in the code. But really I need to show some examples..

  24. B

    There is a new blender-homemaker-2021-09-05-linux-x86_64 release

    This is a test of packaging the Homemaker add-on and dependencies for linux.

    This release includes:

    • Experimental IfcStructuralAnalysisModel is generated automatically in all output

    • Experimental IfcRelSpaceBoundary data for thermal analysis is generated automatically in all output

    • Walls are trim and extendible in blenderbim

    • Refactoring, bugfixes, and changes to keep up with the latest blenderbim and IfcOpenShell

    I don't really expect it to work everywhere, but would like any error messages or any reports of success, please open an issue, or add a comment to an existing issue.

    Requirements

    There are two linux downloads, download py37 or py39 to correspond to the version of blenderbim that you have installed above (the blender download from blender.org uses py37, except 2.93 or later that uses py39).

    Install the add-on by browsing for the zip archive in the blender preferences, and enable (if you already have an older version of the add-on, uninstall it and restart blender before installing the newer add-on)

    To test, select the default cube and choose 'Homemaker Topologise' in the 'Object' menu.

  25. D

    @brunopostle said:

    Other than the geometry of the sketch model itself, the other thing you can do to control what gets produced is to assign space-types. At the moment the behaviour of these are all hard-coded, but eventually it will be configurable. There are currently several space types: living, kitchen, circulation, stair, toilet, bedroom and retail; these primarily control which door and window configuration gets used: retail on the ground floor can get a series of shop fronts, no doors are created between kitchens and toilets etc.. I haven't got around to porting the stair drawing module just yet. There are two special space types: 'outdoor' and 'sahn', these generate outdoor spaces that the 'default' style constructs with a flat roof supported by perimeter posts. 'sahn' is an outdoor space type that is treated as internal circulation - think of a private courtyard in a riad house.

    By default every space in your model has a 'living' type, so you get windows, doors between rooms, but no external doors. You can manually assign types by placing new blender objects (such as a new cube) in each of the spaces: give the new object the name 'retail' (or 'retail.001' etc..) and the space becomes a room with this type. If you forget to name or mis-spell this placeholder you will get a very small cube-shaped building inside your main building :). Once you start using these placeholders in a model, any unassigned spaces become 'outdoor'.

    The geometry of the sketch mesh is decomposed using topologic into two kinds of objects: 'traces' and 'hulls', which each have a corresponding traces.yml and hulls.yml in the style definitions. 'traces' are 2D paths that define 'conditions' like wall centrelines or any other feature such as eaves or footings that can be defined by a 2D path. Processing the sketch mesh generates a whole load of these 'traces', only some of which are picked-up by the default style and turned into IFC objects, but all of them are available to be picked-up by other styles. 'hulls' are produced by geometry that can't be decomposed into traces, typically roof geometry.

    There is some more documentation for traces and hulls in the code. But really I need to show some examples..

    Thanks, this is helpful, I was finding some insight from looking through the yaml files, but this puts things in proper perspective. The notes on the source code are also helpful.

  1. Page 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 11
  7. 12
  8. 13

Login or Register to reply.