If you're reading this, we've just migrated servers! If anything looks broken please email dion@thinkmoult.com :)

Homemaker add-on

1456810

Comments

  • If you need to transparently install topologicpy in your code and not worry about asking the user to do it manually, you can do something as in below. You can see in the image that at first attempt, topologicpy was not found on the system. Once the code below is added, it automatically pip installs it for that particular environment (whether it is conda, or Blender, or the system python, it does not matter) and from there on, it is functional.

    paullee
  • @brunopostle said:
    @DADA_universe thanks, I need nudging.
    There error is because 230107 blenderbim broke lots of stuff (partially bad me using undocumented APIs). It is fixed in the homemaker-add git repository, so you can overwrite the installed add-on using a git snapshot, or wait for me to do a new release, which is my next task.

    Thank you, that worked.
    Just a quick note to add to the how-to, please correct if not accurate, though this is what I did:
    The GitHub repo might have useful updates yet to be packaged into a release. To update your installed Homemaker Add-on with the latest version from the GitHub repo (not from the packaged release), download the zip from the repo (https://github.com/brunopostle/homemaker-addon.git) unzip it and copy all the contents in the folder except from the 'dist', 'docs', and 'tests' folders. Unzip the content of the previous release package you had installed in Blender, into a folder and overwrite the content with the content you just copied from the repo. The 'libs' folder of course won't be overwritten as it's not part of the repo, which is fine. Now zip this new overwritten folder and install it using the normal process for installing a Blender Add-on, and you would have an updated version of Homemaker running.

    @duncan just to let you know, I tried to do something on the Wiki. But I can't remember what login I used in the past and it's not letting me create a new account (some complaint about my IP address). I don't find Media Wiki very intuitive and struggle with it a bit for reasons like this, so hope snippet contributions like this on the forum help in some way.

    brunopostle
  • @topologic I haven't checked to see how different topologicpy is, I thought the underlying Topologic library was the same? The topologicpy repository has lots of binary files, and no setup.py or CMakeList.txt, so I'm not entirely sure how to use it.

  • @brunopostle said:
    @topologic I haven't checked to see how different topologicpy is, I thought the underlying Topologic library was the same? The topologicpy repository has lots of binary files, and no setup.py or CMakeList.txt, so I'm not entirely sure how to use it.

    topologicpy can be thought of as a pure python library. No need to compile anything and it works out of the box on Windows and Linux. It does NOT need topologic (core) to be installed. You simply import it and start calling it. To install, you can use pip install topologicpy

    paullee
  • @brunopostle yes underneath it is the same, but topologicpy has vastly improved some functionality and added new methods not available in topologic. It also fixed a lot of bugs. It is robust and well-documented. The API is now more sustainable and consistent.

  • @topologic said:
    @brunopostle yes underneath it is the same, but topologicpy has vastly improved some functionality and added new methods not available in topologic. It also fixed a lot of bugs. It is robust and well-documented. The API is now more sustainable and consistent.

    Any documentation? Thanks.

  • @topologic said:

    topologicpy can be thought of as a pure python library. No need to compile anything and it works out of the box on Windows and Linux. It does NOT need topologic (core) to be installed. You simply import it and start calling it. To install, you can use pip install topologicpy

    There are DLLs in the git repository, I'm going to be recompiling these anyway because that is a thing that I do.

    As far as I can tell, topologicpy is a collection of subclassed wrappers of the topologic pybind11 bindings for the Topologic c++ library, but with a cleaner API. Couldn't these be in the main Topologic repository?

  • @brunopostle said:

    @topologic said:

    topologicpy can be thought of as a pure python library. No need to compile anything and it works out of the box on Windows and Linux. It does NOT need topologic (core) to be installed. You simply import it and start calling it. To install, you can use pip install topologicpy

    There are DLLs in the git repository, I'm going to be recompiling these anyway because that is a thing that I do.

    As far as I can tell, topologicpy is a collection of subclassed wrappers of the topologic pybind11 bindings for the Topologic c++ library, but with a cleaner API. Couldn't these be in the main Topologic repository?

    I don’t know why you would want to recompile the dlls but you know your software environment better.

    Changing the topologic pybind layer would change the API. With topologicpy you can still call topologic as usual so allows for an easier transition. Topologicpy is not just a wrapper. In places it completely replaces the default functionality.
    But having said all that, please don’t feel pressured to change over. Homemaker can continue to use topologic. It is not going away!

  • @topologic said:
    I don’t know why you would want to recompile the dlls but you know your software environment better.

    Binary files are fragile, as a software developer you should be concerned with code. Distributing compiled code is a separate step that you should be offloading to other people if you can.

  • @brunopostle said:

    @topologic said:
    I don’t know why you would want to recompile the dlls but you know your software environment better.

    Binary files are fragile, as a software developer you should be concerned with code. Distributing compiled code is a separate step that you should be offloading to other people if you can.

    My concern is to make it easy for people to use the software. If I ask people to download this and that and follow long steps to compile software they won’t use it. Blender contains compiled software so does FreeCAD..

  • @paullee said:

    @topologic said:
    @brunopostle yes underneath it is the same, but topologicpy has vastly improved some functionality and added new methods not available in topologic. It also fixed a lot of bugs. It is robust and well-documented. The API is now more sustainable and consistent.

    Any documentation? Thanks.

    Hi @paullee Yes! Clean and now complete documentation with view full source code option is available at https://topologic.app/topologicpy_doc/topologic_pdoc/

    paullee
  • @topologic said:
    My concern is to make it easy for people to use the software. If I ask people to download this and that and follow long steps to compile software they won’t use it. Blender contains compiled software so does FreeCAD..

    It is an aesthetic thing, would you keep your recipe books in the freezer with your food? The blender git repository doesn't contain any compiled binary files, these are stored/created separately from the source code and assembled into an installer/package.

  • @brunopostle said:

    @topologic said:
    My concern is to make it easy for people to use the software. If I ask people to download this and that and follow long steps to compile software they won’t use it. Blender contains compiled software so does FreeCAD..

    It is an aesthetic thing, would you keep your recipe books in the freezer with your food? The blender git repository doesn't contain any compiled binary files, these are stored/created separately from the source code and assembled into an installer/package.

    Ok but I don’t ask people to install from the GitHub! They install from pypi. I will add the binary folders to gitignore

  • edited January 2023

    @topologic said:
    Hi @paullee Yes! Clean and now complete documentation with view full source code option is available at https://topologic.app/topologicpy_doc/topologic_pdoc/

    I previously found Brunopostle's rpm and after installation it just works in FreeCAD (without myself knowing the technicality) - I use AppImage on Fedora 36. Can't figure how to use in FreeCAD console... any more instruction ?

    paullee@fedora ~]$ pip install topologicpy
    Defaulting to user installation because normal site-packages is not writeable
    Collecting topologicpy
    Downloading topologicpy-0.0.22-py3-none-any.whl (31.5 MB)
    |████████████████████████████████| 31.5 MB 498 kB/s
    Collecting plotly
    Downloading plotly-5.11.0-py2.py3-none-any.whl (15.3 MB)
    |████████████████████████████████| 15.3 MB 41.8 MB/s
    Requirement already satisfied: scipy in /usr/lib64/python3.10/site-packages (from topologicpy) (1.8.1)
    Requirement already satisfied: numpy in /usr/lib64/python3.10/site-packages (from topologicpy) (1.22.0)
    Collecting tenacity>=6.2.0
    Downloading tenacity-8.1.0-py3-none-any.whl (23 kB)
    Installing collected packages: tenacity, plotly, topologicpy
    Successfully installed plotly-5.11.0 tenacity-8.1.0 topologicpy-0.0.22

    In FreeCAD (AppImage) Python Console -

    import topologic
    Traceback (most recent call last):
    File "", line 1, in
    File "/home/paullee/Downloads/FreeCAD_weekly-builds-31391-2022-12-22-conda-Linux-x86_64-py310/squashfs-root/usr/lib/python3.10/site-packages/shiboken2/files.dir/shibokensupport/feature.py", line 139, in _import
    return original_import(name, *args, **kwargs)
    ModuleNotFoundError: No module named 'topologic'

    import topologicpy
    Traceback (most recent call last):
    File "", line 1, in
    File "/home/paullee/Downloads/FreeCAD_weekly-builds-31391-2022-12-22-conda-Linux-x86_64-py310/squashfs-root/usr/lib/python3.10/site-packages/shiboken2/files.dir/shibokensupport/feature.py", line 139, in _import
    return original_import(name, *args, **kwargs)
    File "/home/paullee/.local/lib/python3.10/site-packages/topologicpy/__init__.py", line 16, in

  • @paullee Can we move this to the Topologic thread and put a link here so anyone following this can reach it? Thanks. This thread is about Homemaker, but it ran away from us (My apologies for that to @brunopostle)

    brunopostle
  • New blender-homemaker-2023-01-14 release

    This is a packaged Homemaker add-on with dependencies for Linux, Windows and Mac.

    This release fixes issues revealed by the Blenderbim 230107 release. If you have upgraded to the latest Blenderbim, older versions of the Homemaker-addon will no longer work, you will need to upgrade to this release of the Homemaker add-on.

    There are also some new features:

    • Grillages are faces from the CellComplex that are filled with parallel linear elements (such as rafters). The system for defining these linear elements is now unified, just reference further Extrusion or Repeat definitions and these will be used to fill each path. Further, the sliced area between these linear elements can now be filled with further Shell or Grillage definitions. Put together these allow complex recursive construction systems to be defined, and applied by just setting the material name of a face in your blender mesh.

    • Partial work on roundtripping models is also included. The Homemaker function takes a blender mesh, finds a Topologic CellComplex from closed volumes in the geometry, and builds an IFC building model from this CellComplex. This CellComplex is stashed in the IFC data as SKETCH_VIEW surfaces. With this release, this CellComplex can now be retrieved for creation of further buildings by selecting any part of an IFC building previously created by Homemaker, and using the Topologise function.

    • Bugs were attended, code refactored and typos fixed.

    AcetopologicNigelDADA_universetheoryshaw
  • @DADA_universe said:

    Bumping this to nudge @brunopostle to please add this to a 'how things work' / 'getting started' page both on the documentation and on the repo's readme (it can be edited incrementally as things change). Ditto links to your YouTube channel to help with easier on-boarding of people previously unfamiliar with your work.

    Thanks for the reminder, I added some (still incomplete) Homemaker add-on usage documentation.

    DADA_universetheoryshaw
  • @brunopostle I wonder if you faced any issues with grillages that are not equally spaced because the orientation of the faces in a CellComplex are not guaranteed (not inside out normal, but the u,v vectors along the face). With the new Face.Harmonize method in topologic py, the u=0, v=0 is always placed in the "upper left" corner (so to speak). Perhaps it is not an issue in your implementation, but I know it can crop up in other use case scenarios.

  • @topologic I map every face to horizontal before decorating it with extrusions etc.. then I map it all back. I normalise each face so non-vertical faces always point up, and grids start at the bottom left - this code is not very pretty.

    • this code is not very pretty.

    but it's lived-in code--that has its own beauty.

    brunopostleAce
  • Hi @brunopostle I seem to have got myself into a mess when upgrading to the latest Homemaker Addon. I get the following...
    Traceback (most recent call last):
    File "D:\Program Files\Blender Foundation\3.4\scripts\modules\addon_utils.py", line 333, in enable
    mod = import(module_name)
    File "C:\Users\nigel\AppData\Roaming\Blender Foundation\Blender\3.4\scripts\addons\homemaker-addon-main__init__.py", line 10, in
    from molior import Molior
    File "C:\Users\nigel\AppData\Roaming\Blender Foundation\Blender\3.4\scripts\addons\homemaker-addon-main\molior__init__.py", line 30, in
    from molior.style import Style
    File "C:\Users\nigel\AppData\Roaming\Blender Foundation\Blender\3.4\scripts\addons\homemaker-addon-main\molior\style__init__.py", line 20, in
    import os, yaml, copy, json
    ModuleNotFoundError: No module named 'yaml'

    Your help will be much appreciated

    cheers Nigel

  • @Nigel it looks like you downloaded a ZIP archive of the git repository (which would work if you have all the dependencies installed, but you don't). The releases include dependencies, you can download them here: https://github.com/brunopostle/homemaker-addon/releases

    You need blender-homemaker-2023-01-14-win.zip (or you can use blender-homemaker-2023-01-14-noarch.zip if you already have a working Topologic sverchok).

  • @brunopostle said:
    @Nigel it looks like you downloaded a ZIP archive of the git repository (which would work if you have all the dependencies installed, but you don't). The releases include dependencies, you can download them here: https://github.com/brunopostle/homemaker-addon/releases

    You need blender-homemaker-2023-01-14-win.zip (or you can use blender-homemaker-2023-01-14-noarch.zip if you already have a working Topologic sverchok).

    Thank you, I was pretty sure I got it wrong :)
    Can't wait for the Blender Extensions Platform to manage (especially updates) my Addons as I find it a bit confusing

    cheers Nigel

  • edited January 2023

    Some new features will be in the next Homemaker add-on release:

    • The Homemaker function turns any blender mesh into an IFC building model - using faces as walls and ceilings, and the closed cells/spaces in the mesh as rooms. This process can now be easily reversed, even from a saved model, by selecting any part of the building and running Topologise - then just edit the mesh and re-run Homemaker to recreate the IFC building based on the new geometry. Similarly, selecting any part of an IFC model and re-running Homemaker regenerates the IFC building completely, allowing you to change style definitions and see how this changes the building.
    • Homemaker creates entire building models in one click, but this isn't always how you want to work. The Homemaker function can now generate fragments of buildings from open meshes and loose faces - allowing you to create buildings bit-by-bit, making some parts in Blenderbim and other parts in Homemaker:

    NigelAceCoenbasweinGorgious
  • Hi @brunopostle the proposal for next versions features sounds great. Currently I'm trying to localise the style to Aotearoa (NZ) typical housing, getting a bit lost. Could you help with a bullet point work flow to get me started please. I may be over thinking the process:)

    brunopostle
  • @brunopostle said:
    Some new features will be in the next Homemaker add-on release:

    • The Homemaker function turns any blender mesh into an IFC building model - using faces as walls and ceilings, and the closed cells/spaces in the mesh as rooms. This process can now be easily reversed, even from a saved model, by selecting any part of the building and running Topologise - then just edit the mesh and re-run Homemaker to recreate the IFC building based on the new geometry. Similarly, selecting any part of an IFC model and re-running Homemaker regenerates the IFC building completely, allowing you to change style definitions and see how this changes the building.
    • Homemaker creates entire building models in one click, but this isn't always how you want to work. The Homemaker function can now generate fragments of buildings from open meshes and loose faces - allowing you to create buildings bit-by-bit, making some parts in Blenderbim and other parts in Homemaker:

    Nice, so it is possible with the home-maker add-on to create only that beam grid system from that image?

  • @Coen said:

    Nice, so it is possible with the home-maker add-on to create only that beam grid system from that image?

    Yes, you create a blender object with a single face (or multiple faces, but not manifold), give it the material name 'framing' (which is a test style that ships with the add-on), run Homemaker, it imports the relevant Type definitions and uses them to replace the face with these elements, use them how you like, trim and mitre them with Blenderbim etc...

    The three sections are defined as Beam and Member Types in the share/framing/library.ifc file (which you can also open as a Blenderbim library). There is some configuration in share/framing/*.yml files that specifies angles, spacing, X and Y offsets for each extrusion. This YAML configuration lets you do all sorts of other stuff that is more-or-less undocumented at the moment.

    theoryshawCoenAce
  • Homemaker is starting to become brilliant. I love the mixed approach possibility to use plain and parametric models.
    What would happen if Homemaker would generate a window on a wall and then a user would manually reposition it? Would it be possible that this repositioning would, somehow, be remembered when redoing a section or building?

Sign In or Register to comment.