However, even though it trims the vertical wall (still with the issue of the topic I posted above), the resulting building does not have any trimmed surface on the roof. Even though the HB interesect solids properly trims the roof as well. I believe that the issue has to deal on how the DF building is generated. Because the horizontal floors, and therefore ceilings/roofs are generated by horizontal plans thanks to the split_solid_to_floors function.
I don’t know if it is possible to implement some functions in a way to properly consider trimmed surface for ground floors and roofs when creating buildings from solids.
# interpret the input _floor_to_floor information
min, max = geo_min_max_height(geo)
floor_heights, interpreted_f2f = interpret_floor_height_subdivide(
_floor_to_floor, max, min)
# get the floor geometries of the building
floor_breps = split_solid_to_floors(geo, floor_heights)
floor_faces = []
for flr in floor_breps:
story_faces = []
for rm_face in flr:
story_faces.extend(to_face3d(rm_face))
floor_faces.append(story_faces)
Hi @chris, thank you very much for both replies. I am writing here so there are the two topics.
I had a look at the rooms_to_stories_to_building.gh file but I need to work with breps, so I cannot start from the building footprints and extrude them in gh. Maybe I can list my requirements to be more clear, I need to:
Directly work with extruded building footprints, so breps, or solids if you prefer
Each building solid must be subdivided into stories, with one room for each floor
Every solid, even if in contact, has to be a different building, so a different honeybee model when I will convert it from DF to HB.
These are the reasons why I can’t use the workflow present in rooms_to_stories_to_building.gh, I think. But, tell me if I am wrong.
Regarding your other suggestion, I have tried to perform a boolean union, both in rhino and in gh with the solid union component, but when I plug in the result into the DF Building from Solid I get an error 1. Solution exception:Story must have at least one Room2D.. Here the pic of the workflow:
If I do the boolean union in Rhino and then input the breps I get the same error.
As you can see from the pic below, I have already wrote some custom components using the SDK that do exactly what I want: I get one room for each floor and the adjacent and surrounding buildings are treated as shadings.You can’t see it, but the surfaces in contact with adjacent buildings are adiabatic. I just wanted to fix the parts you see highlighted in blue if I can, and be able to include a building on top of this as I was saying in this topic.
The rooms-to-stories-to-buildings is a more detailed workflow than the from-building-solids workflow and offers more control. So, anything that you could build with the from-building-solids workflow can be built with the rooms-to-stories-to-buildings workflow. If all of your breps are extrusions, than you don’t really “need” to work from breps. You can just take the floor face of the brep and say that it gets extruded to height X.
In any event, you should not be using both the “HB Intersect Solids” and the Boolean Union components together. That sounds like a recipe for a lot of weird tolerance errors. Just Boolean Union the unintersected solids together and use the unioned solid as the input for the dragonfly component.
Thank you very much @chris! I will work on my workflow following your suggestions. Thanks as always for the help you and the team give to the entire community.