|
23 | 23 | _model: A honeybee Model with rooms for which adjacencies have been solved. |
24 | 24 | ex_coplanar_: Boolean to note whether edges falling between two coplanar Faces |
25 | 25 | in the building envelope should be included in the result (False) or |
26 | | - excluded from it (True). (Default: False). |
| 26 | + excluded from it (True). (Default: True). |
| 27 | + mullion_thick_: The maximum difference that apertures or doors can be from |
| 28 | + one another for the edges to be considered a mullion rather than |
| 29 | + a frame. If None, all edges of apertures and doors will be considered |
| 30 | + frames rather than mullions. |
27 | 31 |
|
28 | 32 | Returns: |
29 | | - ext_apertures: A list of line segments for the borders around exterior apertures. |
30 | | - ext_doors: A list of line segments for the borders around exterior doors. |
| 33 | + aperture_frames: A list of line segments for where exterior apertures meet |
| 34 | + their parent exterior wall or roof. |
| 35 | + aperture_mullions: A list of line segments for where exterior apertures meet |
| 36 | + one another. |
| 37 | + door_frames: A list of line segments for where exterior doors meet their |
| 38 | + parent exterior wall or roof. |
| 39 | + door_mullions: A list of line segments for where exterior doors meet one another. |
31 | 40 | roofs_to_walls: A list of line segments where roofs meet exterior walls (or floors). |
32 | 41 | Note that both the roof Face and the wall/floor Face must be next to one |
33 | 42 | another in the model's outer envelope and have outdoor boundary conditions for |
|
60 | 69 |
|
61 | 70 | ghenv.Component.Name = 'HB Envelope Edges' |
62 | 71 | ghenv.Component.NickName = 'EnvelopeEdges' |
63 | | -ghenv.Component.Message = '1.9.0' |
| 72 | +ghenv.Component.Message = '1.9.1' |
64 | 73 | ghenv.Component.Category = 'Honeybee' |
65 | 74 | ghenv.Component.SubCategory = '1 :: Visualize' |
66 | 75 | ghenv.Component.AdditionalHelpFromDocStrings = '0' |
|
81 | 90 | if all_required_inputs(ghenv.Component): |
82 | 91 | # get the edges of the envelope components |
83 | 92 | assert isinstance(_model, Model), 'Expected Honeybee Model. Got {}.'.format(type(_model)) |
| 93 | + ex_coplanar_ = True if ex_coplanar_ is None else ex_coplanar_ |
84 | 94 | roofs_to_walls, slabs_to_walls, exp_floors_to_walls, ext_walls_to_walls, \ |
85 | 95 | roof_ridges, exp_floors_to_floors, underground = \ |
86 | 96 | _model.classified_envelope_edges(exclude_coplanar=ex_coplanar_) |
| 97 | + if mullion_thick_ is not None: |
| 98 | + aperture_frames, aperture_mullions, door_frames, door_mullions = \ |
| 99 | + _model.classified_sub_face_edges(mullion_thickness=mullion_thick_) |
| 100 | + else: |
| 101 | + aperture_frames = _model.exterior_aperture_edges |
| 102 | + aperture_mullions = [] |
| 103 | + door_frames = _model.exterior_door_edges |
| 104 | + door_mullions = [] |
87 | 105 |
|
88 | 106 | # translate edges to Rhino lines |
89 | | - ext_apertures = [from_linesegment3d(lin) for lin in _model.exterior_aperture_edges] |
90 | | - ext_doors = [from_linesegment3d(lin) for lin in _model.exterior_door_edges] |
| 107 | + aperture_frames = [from_linesegment3d(lin) for lin in aperture_frames] |
| 108 | + aperture_mullions = [from_linesegment3d(lin) for lin in aperture_mullions] |
| 109 | + door_frames = [from_linesegment3d(lin) for lin in door_frames] |
| 110 | + door_mullions = [from_linesegment3d(lin) for lin in door_mullions] |
91 | 111 | roofs_to_walls = [from_linesegment3d(lin) for lin in roofs_to_walls] |
92 | 112 | slabs_to_walls = [from_linesegment3d(lin) for lin in slabs_to_walls] |
93 | 113 | exp_floors_to_walls = [from_linesegment3d(lin) for lin in exp_floors_to_walls] |
|
0 commit comments