DF - Windows by surface?

In the meantime the Exterior roof was solved. Just missed the TopBottom component.
-A.

Hi @AbrahamYezioro ,

For point 2., the average_floor_height property probably should have been named average_floor_elevation. It’s the average Z value of the floor Faces of the Room. It’s not a floor_to_floor_height or floor_to_ceiling_height like you have in Dragonfly. In fact, such properties really don’t exist in Honeybee because not all Honeybee Rooms are extruded floor plates. However, you can get the difference in Z values between the min and the max of the bounding box around the Honeybee Room geometry like so:

hb_boundbox_zdim = room.geometry.max.z - room.geometry.min.z

The question of whether you should just have the component output Rooms with windows or just a list of glazing ratios is really up to you and what you see as the most common use case. If you think that you’ll be creating different patters of windows with the same ratio fairly often, then just outputting the ratios seems fine. It might take a little longer to generate the windows for large models as it looks like you’ll have to graft the rooms input to the “HB Apertures by Ratio”. But, if you need the control over window geometry, then it’s worth the tradeoff.

I am not sure what you’re asking in points 3 and 4 or what part of your code that you want me to check. If you have a question about how to get a specific attribute, like the difference in Z values above, then I can be a bit more helpful.

FYI @AbrahamYezioro ,

I just added a few more components and inputs to give you better control over boundary conditions on dragonfly objects:

Notably, you can now assign adiabatic and ground boundary conditions by orientation. This should make it easier to setup things like basements and parti walls on dragonfly. I also exposed an air_boundary_ input on the “DF Solve Adjacency” component that allows you to assign air boundaries from dragonfly.

1 Like

This is very cool @chris!!
Thanks for the update.
-A.

Hello Chris,

would the same python script be possible to implement on the DF Building from solid from the Ladybug tools 1.4.0 release?

The idea is the same: to remove the windows from wall segments having less than a specified segment length. I tried using your code with the following report: “1. Solution exception:‘Building’ object has no attribute ‘window_parameters’”.

If it would work in theory, how should the code be modified?

Thanks in advance!

Hi @AEH96 ,

That sample code is only meant to work from dragonfly Rooms. Not entire buildings. You can get the rooms of a building by means of the Building.unique_room_2ds property. So the code would work like this:

from ladybug_rhino.grasshopper import all_required_inputs

if all_required_inputs(ghenv.Component):
    new_bldg = bldg.duplicate()  # duplicate to avoid editing component input
    room2ds = new_bldg.unique_room_2ds
    for room in room2ds:
        win_pars = list(room.window_parameters)
        for i, seg in enumerate(room.floor_segments):
            if seg.length < _seg_length:
                win_pars[i] = None  # remove any windows assigned to the segment
        room.window_parameters = win_pars