Homemaker add-on

edited April 27 in General

[From the README] The Homemaker add-on tries to automate the tedious work of designing buildings. Just indicate with simple geometry where you want walls, floors and roofs, and the software figures-out what building elements are needed to create that building. The result is an industry-standard IFC (BIM) model, suitable for taking the project towards construction.

The software is a general python library for turning 3D geometry and style definitions into IFC building models, it is initially provided as a Blender add-on, but is designed to be usable with other awesome 3D design platforms such as FreeCAD.

  • Will assemble buildings from any geometry, as long as the faces overlap enough to define cells for rooms. The only assumption is that walls are vertical, floors are horizontal, and that rooms are surrounded by vertical walls.

  • Adaptable style system, styles can be subclassed or overrriden entirely. Different parts of buildings can be assigned different styles.

  • Fully compliant industry standard IFC output.

  • Free Software, no annual licenses, these are your tools to use, customise and share as you wish.

Requirements

  • topologicPy a python interface to the TopologicCore library. Install it with sudo python setup.py install

    • cppyy C++ python interface, this consists of four packages: cppyy-cling, cppyy_backend, CPyCppyy and cppyy, but you can probably install it all with sudo pip install cppyy
    • TopologicCore. This is a C++ library which you build and install using the standard cmake build system. It requires the opencascade library and headers which should be available from your distribution. Note that topologicPy requires the TopologicCore header files to be present at runtime, so you need to install these too.
  • blenderbim blender add-on, just download the ZIP and install from the blender preferences menu. Note April 2021, the Homemaker add-on uses very recent features of the IfcOpenShell API, so you need a nightly snapshot

  • pyyaml python module.
  • ezdxf python module for reading assets, which are in DXF format until we can figure out how to use IFC asset libraries.

[edit] With all the above installed, it should just be possible to download the homemaker-addon-main.zip archive and install it as an add-on in the Blender preferences. Basic usage is to select a Blender mesh, such as the default Cube, and pick Object -> Homemaker Topologise from the menu

stephen_lduncantheoryshawJQLbitacovirCyrilJanFMoultCGRtopologicand 1 other.

Comments

  • JQLJQL
    edited April 22

    From the GitHub link:

    But not least, let's take architecture out of the hands of architects and put it back in the hands of people who need good ordinary buildings.

    This is a cool, strong, statement.

    Taking architecture from architects isn't guaranteed to provide good ordinary architecture though.

    brunopostle
  • @JQL said:
    Taking architecture from architects isn't guaranteed to provide good ordinary architecture though.

    Absolutely, also there is nothing in the Homemaker add-on to prevent someone designing awful buildings. I'm also looking at it from the perspective that most buildings are not designed by architects (at least in the anglo world), but they need to be good architecture anyway.

    JQL
  • edited April 22

    Some notes on the Homemaker add-on code.

    The blender add-on is just a few lines, everything else is split into two main libraries that are not dependent on blender at all (there is a brep2ifc.py tool that performs the main functionality on the command-line without blender). These two libraries are topologist and molior:

    Topologist extensions to topologicPy for ordinary buildings

    The Topologic library and its topologicPy python interface models generic non-manifold mesh 3D geometry. This topologist module overloads additional functionality onto the topologicPy module that is specific to ordinary buildings. In particular: horizontal and vertical faces are considered to be floors and walls; rooms are spaces with vertical walls on all sides; non-horizontal faces form roofs and/or soffits; and cells are tagged as indoor 'rooms', voids, or outdoor spaces.

    With this model of what-a-building-is, it is possible to decompose the Topologic CellComplex geometry into 'traces' that define building components. Traces are 2D closed or open chains, differentiated by elevation, height and style properties, typically running in an anti-clockwise direction, these follow the outlines of rooms, walls, eaves, string-courses etc.

    Traces are defined using a simple directed-graph implementation, molior.ugraph, this only supports linear chains and doesn't support branching. The traces contain references back to relevant Vertices, Faces and Cells in the original Topologic CellComplex.

    Topological relationships between rooms are useful for analysis of the resulting building, this module contains methods for creating Topologic Graph objects representing adjacency and circulation, along with methods for referencing these back-and-forth with the original CellComplex.

    This topologist module knows nothing about CAD, BIM or IFC, use the molior module to convert these traces into something to visualise or solid to build.

    Molior builds 3D models from topologist 'traces'

    Traces are 2D closed or open chains that define building elements, differentiated by elevation, height and style properties, typically running in an anti-clockwise direction, these follow the outlines of rooms, walls, eaves, string-courses etc.

    Which traces are used, and how they are used, are defined by files in the molior/share folder and subfolders. Each subfolder has a unique name and represents a different architectural 'style', buildings can be all one style or have multiple styles, each applied to different parts of the building. Styles are inherited from parent folders, and can represent only minor variations, without needing to duplicate anything that is already defined by the parent folder(s). Access to these style definitions is handled by the molior.style module.

    Molior uses IfcOpenShell to generate IFC models of buildings, with some extra helper methods defined in the molior.ifc module. Different building parts need to be constructed differently, so walls, ceilings, extrusions etc. are each handled by dedicated modules.

    Molior is largely derived from the Perl Molior module, but has been rewritten in python in order to interface with Topologic and IfcOpenShell.

    [edit] Note, currently the Homemaker add-on assumes that all dimensions are metres, as it moves away from DXF to IFC for resources it should become agnostic about units.

    bitacovir
  • I am trying to give homemaker a go on win10. Do all the dependencies (other than blenderbim) have to be installed from within the python bundled in Blender?

  • edited April 27

    @dimitar said:
    I am trying to give homemaker a go on win10. Do all the dependencies (other than blenderbim) have to be installed from within the python bundled in Blender?

    We have established that all the tools work on Windows, but I haven't tried putting it all together.

    Currently the most straightforward way to do this would be to follow the topologicPy instructions for Blender on Windows. These instructions are for installing everything outside Blender and then using sys.path.append() to load them from the Blender python console (I think you would need to match the version of python in Blender and also the version of opencascade in Blenderbim, but I haven't tried these instructions since I'm on Linux).

    Then you would install the pyyaml and ezdxf dependencies using pip within Blender, and the Homemaker add-on should install just like any other Blender add-on.

    Alternatively, it may be possible to install cppyy the same way with pip in Blender? in which case all you need is a TopologicCore.dll file with TopologicCore headers, and you could install topologicPy in the Blender console. @topologic do you have a pre-compiled DLL? preferably linked with opencascade 7.4.0 (since this is what ships with the Windows Blenderbim add-on).

    Another alternative, if you are comfortable with virtual machines, would be to install fedora in a VM, and use the precompiled rpm packages I've built for all the dependencies.

    Moult
  • @brunopostle yes I have a precompiled Windows DLL linked to OCCT 7.4.0. Will upload soon to my GitHub repo at http://github.com/wassimj

    paullee
  • @brunopostle said:
    [From the README] The Homemaker add-on tries to automate the tedious work of designing buildings. Just indicate with simple geometry where you want walls, floors and roofs, and the software figures-out what building elements are needed to create that building. The result is an industry-standard IFC (BIM) model, suitable for taking the project towards construction.

    Great project! We should add it to our Software Directory. Which category is more suitable? CAD / BIM Design Developmen or Schematic design? Or both?
    https://wiki.osarch.org/index.php?title=AEC_Free_Software_directory

  • I don't think it particularly matters. It is definitely a schematic design tool, but isn't yet part of a working CAD workflow

  • @brunopostle said:
    I don't think it particularly matters. It is definitely a schematic design tool, but isn't yet part of a working CAD workflow

    Added to schematic design tool group. https://wiki.osarch.org/index.php?title=AEC_Free_Software_directory#Schematic_design

    brunopostle
  • edited May 10

    I posted this on the Geometry Nodes thread already, but wanted to share it here as well. It's so interesting how the ability to nest parametric controls in Geo Nodes enable fairly interesting configurations. Should make a powerful combination with Homemaker:

    brunopostlepaulleegokermu
Sign In or Register to comment.