Skip to content

Commit 3b94870

Browse files
committed
fix(writer): Move shade translation before HVAC translation
By having all of the shade geometry available before HVAC and SHW systems are translated, this makes it available for use in solar hot water heating and more customized photovoltaics.
1 parent e8343f0 commit 3b94870

File tree

1 file changed

+28
-29
lines changed

1 file changed

+28
-29
lines changed

honeybee_openstudio/writer.py

Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1011,13 +1011,38 @@ def model_to_openstudio(
10111011
vent_control, opening_factors, operable_sub_fs,
10121012
zone_node, os_model, room.identifier)
10131013
prog_manager.addProgram(os_ems_program)
1014-
10151014
if print_progress:
10161015
print('Assigned adjacencies to all Rooms')
1017-
if print_progress:
1018-
print('Translating Systems')
1016+
1017+
# add the orphaned objects
1018+
shade_count, shades_to_group = 0, []
1019+
for face in model.orphaned_faces:
1020+
shades_to_group.append(face_to_openstudio(face, os_model))
1021+
shade_count += 1
1022+
for aperture in model.orphaned_apertures:
1023+
shades_to_group.append(aperture_to_openstudio(aperture, os_model))
1024+
shade_count += 1
1025+
for door in model.orphaned_doors:
1026+
shades_to_group.append(door_to_openstudio(door, os_model))
1027+
shade_count += 1
1028+
for shade in model.orphaned_shades:
1029+
shades_to_group.append(shade_to_openstudio(shade, os_model))
1030+
shade_count += 1
1031+
for shade_mesh in model.shade_meshes:
1032+
shade_mesh_to_openstudio(shade_mesh, os_model)
1033+
shade_count += 1
1034+
if len(shades_to_group) != 0:
1035+
shd_group = OSShadingSurfaceGroup(os_model)
1036+
shd_group.setName('Orphaned Shades')
1037+
shd_group.setShadingSurfaceType('Building')
1038+
for os_shade in shades_to_group:
1039+
os_shade.setShadingSurfaceGroup(shd_group)
1040+
if print_progress and shade_count != 0:
1041+
print('Translated {} Shades'.format(shade_count))
10191042

10201043
# write any ventilation fan definitions
1044+
if print_progress:
1045+
print('Translating Systems')
10211046
for room in model.rooms:
10221047
for fan in room.properties.energy.fans:
10231048
os_fan = ventilation_fan_to_openstudio(fan, os_model)
@@ -1160,32 +1185,6 @@ def model_to_openstudio(
11601185
con, dyn_dict[con.identifier], os_model)
11611186
os_prog_manager.addProgram(ems_program)
11621187

1163-
# add the orphaned objects
1164-
shade_count, shades_to_group = 0, []
1165-
for face in model.orphaned_faces:
1166-
shades_to_group.append(face_to_openstudio(face, os_model))
1167-
shade_count += 1
1168-
for aperture in model.orphaned_apertures:
1169-
shades_to_group.append(aperture_to_openstudio(aperture, os_model))
1170-
shade_count += 1
1171-
for door in model.orphaned_doors:
1172-
shades_to_group.append(door_to_openstudio(door, os_model))
1173-
shade_count += 1
1174-
for shade in model.orphaned_shades:
1175-
shades_to_group.append(shade_to_openstudio(shade, os_model))
1176-
shade_count += 1
1177-
for shade_mesh in model.shade_meshes:
1178-
shade_mesh_to_openstudio(shade_mesh, os_model)
1179-
shade_count += 1
1180-
if len(shades_to_group) != 0:
1181-
shd_group = OSShadingSurfaceGroup(os_model)
1182-
shd_group.setName('Orphaned Shades')
1183-
shd_group.setShadingSurfaceType('Building')
1184-
for os_shade in shades_to_group:
1185-
os_shade.setShadingSurfaceGroup(shd_group)
1186-
if print_progress and shade_count != 0:
1187-
print('Translated {} Shades'.format(shade_count))
1188-
11891188
# write the electric load center is any generator objects are in the model
11901189
os_pv_gens = os_model.getGeneratorPVWattss()
11911190
if os_vector_len(os_pv_gens) != 0:

0 commit comments

Comments
 (0)