OSArch Community

Homemaker add-on

  1. B

    New blender-homemaker-2021-11-09 release

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

    This release includes lots of changes:

    • The default cell type is now always 'living' for untagged cells. If you want an 'outside' space then it needs to be tagged as such with a widget. This was causing some confusion.

    • Blender can easily create non-planar faces, which Topologic doesn't like (bug #12). The add-on now triangulates non-planar faces and styles them in red as 'nonplanar' (elkmug).

    • Windows in gables could previously extend outside the wall (bug #11). They are now sized or removed to fit.

    • Non-vertical geometries such as roofs and soffits were not styled (bug #16), this is now fixed.

    • The add-on no-longer makes-use of a temporary IFC file (bug #13).

    • Multiple buildings can now be assembled and they are all added to the same IFC Project.

    • Fixes for Space Boundary elements.

    • Lots of other fixes.

  2. B

    New blender-homemaker-2021-12-11 release

    This is a test of packaging the Homemaker add-on and dependencies for Linux, Windows and Mac.

    This release includes lots of changes:

    • Various caching interventions and workarounds for issues in Topologic (some C++ help here would be appreciated), these should greatly speed up processing, though mainly on Windows for now

    • An initial pattern language assessment framework

    • New do_representation style parameter, can create elements without representation. So, for example, IfcSpace elements can be created that have no geometry in the model, but which still have the correct semantic structure with space boundaries etc...

    • IfcVirtualElement Repeat object skips representation the same as Floors, Walls etc.. useful for recursive Repeat objects

    • Fix bug, Floor and Space classes are now stylable, reported by @fbpyr

    • Fix methods with mutable args/kwargs (@fbpyr)

    • Style configuration files can now be json as well as yaml

    • Nested Repeat objects are now aggregated

    • Repeats and extrusions in confined spaces now more gracefully fit the space

    • Update Topologic library in the bundles to the latest version

    • A new noarch bundle doesn't include the Topologic dependencies, use this if you already have the Topologic-Sverchock add-on installed

    • Refactoring, cleanups, tests, and fixed typos

  3. M

    Just a heads up @brunopostle that as of today's commit the append_asset API now also supports appending occurrences and will retain all properties, materials, styles, and types.

  4. B

    @Moult said:

    the append_asset API now also supports appending occurrences and will retain all properties, materials, styles, and types.

    Awesome, I tried (and failed) to fix this a couple of times, but got lost with all the backward and forward searches

  5. B

    @Moult said:

    the append_asset API now also supports appending occurrences and will retain all properties, materials, styles, and types.

    I'm not sure how to use this api. I currently have this function to merge everything from a 'source' file into the current file (this doesn't copy materials):

    
    def merge_file(self, source):
    
        original_project = self.by_type("IfcProject")[0]
    
        temp_project = self.add(source.by_type("IfcProject")[0])
    
        for element in source.by_type("IfcRoot"):
    
            self.add(element)
    
        for element in self.get_inverse(temp_project):
    
            ifcopenshell.util.element.replace_attribute(
    
                element, temp_project, original_project
    
            )
    
        self.remove(temp_project)
    

    If I replace the add() method with the new api, everything gets copied over but with no hierarchy, it is just a collection of objects:

    
    def merge_file(self, source):
    
        original_project = self.by_type("IfcProject")[0]
    
        temp_project = self.add(source.by_type("IfcProject")[0])
    
        for element in source.by_type("IfcRoot"):
    
             run(
    
                 "project.append_asset",
    
                 self,
    
                 library=source,
    
                 element=element
    
             )
    
        for element in self.get_inverse(temp_project):
    
            ifcopenshell.util.element.replace_attribute(
    
                element, temp_project, original_project
    
            )
    
        self.remove(temp_project)
    
  6. M

    Hmm yes the append_asset only imports the occurrence and makes no assumption about the hierarchy. The ExtractElements recipe goes a little further and imports both occurrences (via the append_asset API) and also a bit of the spatial hierarchy.

    But if you want to import absolutely everything, maybe a better approach would be fixing this bug? https://github.com/IfcOpenShell/IfcOpenShell/issues/1000 If so I can have a go at it.

  7. B

    Hmm, thinking about it, I would like to import all the Object entities, but merge Type, Material, Profile, Context and Project Library entities when the name matches. This is a bit more complicated!

  8. M

    I think what you're describing is a common thing people would need. How about I look at making the MergeProject recipe more advanced that it supports various settings for different types of merges. Like a "dumb merge", or "enable merging materials by name" or something like that.

  9. B

    @Moult said:

    I think what you're describing is a common thing people would need. How about I look at making the MergeProject recipe more advanced that it supports various settings for different types of merges. Like a "dumb merge", or "enable merging materials by name" or something like that.

    Ultimately (and this is maybe a bit ambitious) you should be able to merge another IFC file into the current file, but do various things:

    • Import just selected sites / buildings / storeys/ ifc classes, or none

    • When there is a Name collision with Site, Building etc.., it should be possible to clobber the existing Product, or create a new Product

    • When there is a Name collision importing Type, Material etc.. there are four useful options: 1. put the new types/materials in a second Project Library, 2. clobber existing types/materials, 3. use the existing types/materials, 4. create new types/materials in the current Project Library only if they differ

    • Uninstanced types/materials may be imported into the current Project Library, or not

    ..and all this should work with copy and paste between models ;)

  10. A

    There has been a lot of talk about null guids in the community. A guid of all zero's basically basically saying the element does not have a strong identity in itself and it should be possible to freely merge it with instances from another file with identical attribute content. Instead of null-guids (it's currently not allowed, because it would create duplicates) we could also use some form a deterministic guid derived from attribute values. uuid v5 is an option for that, we could use to just hash the attribute values into a uuid.

    Maybe that's a way to encode the preferences for merging into the authoring process?

  11. B

    @aothms said:

    we could also use some form a deterministic guid derived from attribute values. uuid v5 is an option for that, we could use to just hash the attribute values into a uuid.

    How would this work when you change attributes? If I change the height of a wall, wouldn't I want the uuid to stay the same? even though the hash would now be different.

  12. A

    @brunopostle said:

    How would this work when you change attributes? If I change the height of a wall, wouldn't I want the uuid to stay the same? even though the hash would now be different.

    Yes, good point, I was considering them to be immutable after construction, but I'm not sure how feasible that is in your workflows.

  13. B

    @aothms said:

    Yes, good point, I was considering them to be immutable after construction, but I'm not sure how feasible that is in your workflows.

    I hadn't even thought about Homemaker workflows - it really ought to be generating replicable uuids ?.

    I was thinking of the blenderbim usecase where objects are edited, so the hash changes, but the uuid should still be persistent.

  14. A

    Yes you're right, maybe null guids is the only real option then. For object types I wouldn't be opposed too much of the guid changing if their definition changes, but for elements themselves it seems undesirable. Also it's really the question if attribute values are sufficiently different to generate different guids off of them for example in the case of property sets. Let's park this discussion ;)

  15. C

    @brunopostle

    Didn't read the 7 pages thread fully, but I wanted to tried the homemaker add-on. Downloaded the zip.

    When ticking the checkbox it said 'no module named topologic'. So I thought I better read the OP carefully.

    There is a link to topologic in the OP but it doesn not work anymore, I am talking about this link:

    https://github.com/wassimj/topologicPy

  16. B

    @Coen, Wassim moved the TopologicCore C++ library and the new pybind11 python bindings to a new repository here: https://github.com/wassimj/Topologic

    If you download the homemaker-addon git repository as a zip file, it will install as a blender add-on, but it doesn't include all the dependencies (because git just contains the Homemaker add-on code). I have bundled releases that include all the dependencies (including Topologic) for Linux, Windows and Mac here: https://github.com/brunopostle/homemaker-addon/releases

  17. C

    @brunopostle

    What a fun add-on. ?

  18. C

    Man, this is so cool. Really excited that the IFC export works so well as well.

    And the spreadsheet writer add-on works. haha

  19. B

    [oops, I forgot to announce the last Homemaker add-on release]

    New-ish blender-homemaker-2021-02-03 release

    This is a test of packaging the Homemaker add-on and dependencies for Linux, Windows and Mac.

    This repository is one year old! ???

    This release includes lots of changes:

    • Firstly, the Topologic library has a new API and as a result the Homemaker add-on is several times faster. Plus a related memory leak that seriously degraded performance on Linux has been removed. Users installing from source will need a version of Topologic from 2022-01-30 or later.

    • To facilitate future development there has been an awful lot of refactoring, deletion of unused code, bugfixes, stability, naming consistency, and fixing of tests.

    • Fixed a bug when creating multiple buildings where subsequent buildings were missing colour and other properties.

    • An API allowing other tools to use the library to create IFC Wall, Slab, Roof, Space etc.. entities from Topologic models.

    • Structural profiles for Beam, Footing and Column entities are configurable in the style.

    • Roof shells are now assigned to the nearest storey instead of the ground floor.

    • Create Space elements for non-habitable 'void' cells (#21).

    • Fix a bug in the 2022-01-31 release that caused Windows and Doors to be attached to Storeys not Spaces

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

  20. B

    New blender-homemaker-2021-02-03 release

    This is a test of packaging the Homemaker add-on and dependencies for Linux, Windows and Mac.

    This release includes lots of changes:

    • Initial support for repeating and angled grillages of linear elements #25

    • IFC can be rendered entirely with hulls (no traces), see 'simple' style

    • Stash the CellComplex as an IFC System of Virtual Elements (#23)

    • Custom extruded profiles are now Typed

    • Rename internal-unsupported trace to internal-footing, plus add an 'internal-beam' trace for internal walls with spaces below

    • Give the Site a dummy latitude, longitude and elevation

    • Make void cells transparent grey

    • Each Structural Analysis Model is now associated with a single Building

    • Fix bug where footings appeared at tops of open walls

    • Fix broken 'Topologise' Object menu item

    • Fix bug where ifc model duplicated on undo

    • Fixes for parameterized profiles

    • Fix Boundary and Structural breakage introduced in 345af16, 34020ea & 034937c

    • Fix for invalid IFC

    • Typo fix from @kant

    • Offset inner face of shell surfaces correctly

    • Code cleanup, rationalisation and tests

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

  21. B

    New blender-homemaker-2022-03-14 release

    This is a test of packaging the Homemaker add-on and dependencies for Linux, Windows and Mac.

    This release includes lots of changes:

    • The blender 3.1 release ships with a bundled Python 3.10, the Windows and Linux versions of this add-on now include suitable 3.10 versions of the Topologic Python bindings

    • The 'Homemaker Topologise' menu item is now called just 'Homemaker'

    • Topologise menu item now keeps the original mesh name

    • Topologise menu item now repopulates new mesh with original materials

    • Lots of impovements for Space Boundaries and the energy model

    • Space Boundaries should now point away from the space

    • Assign EXTERNAL_FIRE & EXTERNAL_EARTH PredefinedType to boundaries

    • Set PredefinedType for Space elements

    • Boundaries were missing CorrespondingBoundary

    • Don't set IsExternal for elements that could be internal

    • Fix for Space Boundaries having incorrect normals

    • Don't create space boundaries for grillages

    • Fix for gable eaves ends not being clipped

    • Fix incomplete top/bottom conditions resulted in off normals map

    • Align grillages of co-planar faces

    • Make stashed CellComplex translucent, fixes #43

    • Give all projects a PLANEANGLEUNIT

    • Add some more metadata for elements

    • minor fix EPset in structural surface

    • Give the Site a dummy latitude, longitude and elevation

    • Virtual Elements for open trace and framing roof shell

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

  22. B

    New blender-homemaker-2022-05-14 release

    This release includes various changes:

    • Fix a bug where aggregates didn't have a placement, crashing SVG drawing generation (IfcOpenShell#2156).

    • Doors and Windows have origins aligned with outer face of walls for closer compatibility with Blenderbim.

    • Undo system (mostly) works using native blenderbim undo functionality #42.

    • Accidentally trying to generate a building from existing IFC elements is now avoided.

    • Multiple buildings are only imported once, speeding geometry generation.

    • New API for generating a Molior model from Topologic geometry, this should improve Topologic-Sverchok nodes and FreeCAD integration.

    • Lots of refactoring and minor fixes.

    • Fix failure handling non-planar geometry with multiple objects and objects without materials.

    • Minor improvements to generated IFC data.

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

  23. L

    pyyaml ? how to install for noobs :-)

    downloading the zip file and try the handle it as an Blender add-on does noot seem to do the job? pip? from where? here on win10.

    Modules Installed () from 'C:\Users\alberts\Downloads\pyyaml-master.zip' into 'C:\Users\alberts\AppData\Roaming\Blender Foundation\Blender\3.1\scripts\addons'

    But :

    import yaml

    Traceback (most recent call last):

    File "C:\Program Files\Blender Foundation\Blender 3.1\3.1\python\lib\code.py", line 90, in runcode

    exec(code, self.locals)

    File "<blender_console>", line 1, in <module>

    ModuleNotFoundError: No module named 'yaml'

    Or how do I check it is there?

    even worse? ezdxf .. how to handle wheel?

    Sorry

    Lukas

  24. B

    @lukas you need one of the ZIP packages from the Releases link, these should contain all dependencies (apart from blenderbim).

    It is possible to install a snapshot directly from git using the Github download link, but this will only work if you already have yaml, ezdxf, topologic and blenderbim working in blender.

  25. L

    Ok, my mistake.. did not scroll far enough down to the release download.. was trying the code/zipfile..

    of course one has to download from the release page... buuhh. shame.

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

Login or Register to reply.