Problem with vertical wall generation for touching buildings

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)

Hi @fbattini ,

It looks like you might be confusing the Honeybee schema (a 3D representation of building geometry) with the Dragonfly schema (a 2D representation of building geometry where everything is an extruded floor plate and each building needs to be separate, simulate-able unit).

If you want those adjacent solids to be part of the same simulate-able heat-exchanging building, then you need to make them into one building solid by Boolean Unioning them together before you pass them to the “DF Building from Solid”.

Alternatively, if you need the different building volumes to correspond to different rooms in the final exported honeybee model, you should use the Rooms-to-Stories-to-Buildings workflow that you can see in the rooms_to_stories_to_building.gh sample file that downloads with the LBT installer.