Hi @chris. I am sorry but I have another question. Taking into account the same geometries, Once I created the honeybee model and solved adjacencies between floors. How can I split the floors/ceilings into less complex geometries, such as rectangles? The output I am getting is the entire floor/ceiling surface and it can cause me problems with EnergyPlus. I think that in Honeybee legacy this process was performed automatically by the “SplitBuildingMass2Floors” component. I have seen that there are some possibilities in ladybug_geometry.geometry3d.face such as sub_faces_by_ratio_rectangle or sub_faces_by_ratio_sub_rectangle, but I am working with honeybee faces and I am struggling to get a solution to this.
This is my code to create a honeybee model out of a solid moving from DragonFly to Honeybee:
# find min and max z coordinate of the building
min, max = geo_min_max_height(myBuilding)
# find the heights of each floor and the corresponding floor-to-floor height
floor_heights, interpreted_f2f = interpret_floor_height_subdivide(myFloorHeight, max, min)
# create the floors for the building massing
floor_breps = split_solid_to_floors(myBuilding, 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)
# from the floors and floors heights create stories
dfBuilding = Building.from_all_story_geometry(myBuildingName, floor_faces, interpreted_f2f) # if I want to do core-perimeter zones I have to do it here
# convert DF model into HB model
hbModel = dfBuilding.to_honeybee(use_multiplier=False) # if it is True I get just one room, here I get one room for each floor
# get rooms from the entire HB model
rooms = hbModel.rooms
# solve adjacnency
adj_rooms = [room.duplicate() for room in rooms] # duplicate the initial objects
adj_info = Room.solve_adjacency(adj_rooms, tolerance)
# create model
finalModel = Model(myBuildingName, rooms = adj_rooms)