Hi everyone and @chris,
I am working with touching buildings and I would like to include them in my model. To test the workflow I have one building in contact with others and some other buildings standing alone as in the following picture.
I need to work with extruded building from their footprints, therefore I always define my models with the DF Building from Solid component of DragonFly and then convert the models into HB models. To cut the touching surfaces in this case I used the HB Intersect Solids component and then I plugged the resulting solids into the DF Building from Solid component as shown in the picture below.
The output for the central building from the HB Interesect Solids is correct as shown below.
However, when I plug in this output in the DF Building from Solid component I get a strange output for what regards the subdivision of the building floors. As you can see by the picture below, I get the surface of a completely free floor external wall cut in anyway. Even though that specific floor is not in contact with another building.
You can see from the picture below, that this behaviour seems to take place from one up to 2 floors above the actual touching building.
I don’t know if I am correct but it could be because of an offset or some tolerance in the definition of the function used to create the building in these lines of code of the DF Building from Solid component.
# 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)
# create the Building
building = Building.from_all_story_geometry(
name, floor_faces, floor_to_floor_heights=interpreted_f2f,
perimeter_offset=perim_offset_, tolerance=tolerance)
if len(_name_) != 0:
building.display_name = display_name
I attach the two files.
TouchingBuildings.3dm (133.0 KB) TouchingBuildings.gh (19.5 KB)