openstudio-model-articulation 0.3.1 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (203) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -1
  3. data/CHANGELOG.md +28 -0
  4. data/Gemfile +6 -0
  5. data/Jenkinsfile +1 -0
  6. data/LICENSE.md +1 -1
  7. data/README.md +22 -3
  8. data/doc_templates/LICENSE.md +1 -1
  9. data/doc_templates/copyright_erb.txt +1 -1
  10. data/doc_templates/copyright_js.txt +1 -1
  11. data/doc_templates/copyright_ruby.txt +1 -1
  12. data/lib/measures/AssignConstructionSetToBuilding/LICENSE.md +1 -1
  13. data/lib/measures/AssignConstructionSetToBuilding/measure.rb +1 -1
  14. data/lib/measures/AssignConstructionSetToBuilding/measure.xml +16 -15
  15. data/lib/measures/AssignSpaceTypeBySpaceName/LICENSE.md +1 -1
  16. data/lib/measures/AssignSpaceTypeBySpaceName/measure.rb +1 -1
  17. data/lib/measures/AssignSpaceTypeBySpaceName/measure.xml +32 -13
  18. data/lib/measures/AssignSpaceTypeToBuilding/LICENSE.md +1 -1
  19. data/lib/measures/AssignSpaceTypeToBuilding/measure.rb +1 -1
  20. data/lib/measures/AssignSpaceTypeToBuilding/measure.xml +16 -15
  21. data/lib/measures/AssignSpacesToStories/LICENSE.md +1 -1
  22. data/lib/measures/AssignSpacesToStories/measure.rb +3 -5
  23. data/lib/measures/AssignSpacesToStories/measure.xml +14 -13
  24. data/lib/measures/BarAspectRatioStudy/LICENSE.md +1 -1
  25. data/lib/measures/BarAspectRatioStudy/measure.rb +3 -2
  26. data/lib/measures/BarAspectRatioStudy/measure.xml +8 -7
  27. data/lib/measures/CleanupSpaceOrigins/LICENSE.md +1 -1
  28. data/lib/measures/CleanupSpaceOrigins/measure.rb +4 -1
  29. data/lib/measures/CleanupSpaceOrigins/measure.xml +14 -13
  30. data/lib/measures/FindAndReplaceObjectNames/LICENSE.md +1 -1
  31. data/lib/measures/FindAndReplaceObjectNames/measure.rb +1 -1
  32. data/lib/measures/FindAndReplaceObjectNames/measure.xml +13 -12
  33. data/lib/measures/InjectOsmGeometryIntoAnExternalIdf/LICENSE.md +1 -1
  34. data/lib/measures/InjectOsmGeometryIntoAnExternalIdf/measure.rb +3 -3
  35. data/lib/measures/InjectOsmGeometryIntoAnExternalIdf/measure.xml +28 -10
  36. data/lib/measures/RemoveHardAssignedConstructions/LICENSE.md +1 -1
  37. data/lib/measures/RemoveHardAssignedConstructions/measure.rb +1 -1
  38. data/lib/measures/RemoveHardAssignedConstructions/measure.xml +13 -12
  39. data/lib/measures/RenameSpaceSurfacesBasedonParentSpaceandOrientation/LICENSE.md +1 -1
  40. data/lib/measures/RenameSpaceSurfacesBasedonParentSpaceandOrientation/measure.rb +1 -1
  41. data/lib/measures/RenameSpaceSurfacesBasedonParentSpaceandOrientation/measure.xml +42 -11
  42. data/lib/measures/RotateBuilding/LICENSE.md +1 -1
  43. data/lib/measures/RotateBuilding/measure.rb +1 -1
  44. data/lib/measures/RotateBuilding/measure.xml +13 -12
  45. data/lib/measures/SetExtWallToGroundBoundaryConditionByStory/LICENSE.md +1 -1
  46. data/lib/measures/SetExtWallToGroundBoundaryConditionByStory/measure.rb +1 -1
  47. data/lib/measures/SetExtWallToGroundBoundaryConditionByStory/measure.xml +17 -10
  48. data/lib/measures/SetInteriorWallsAndFloorsToAdiabatic/LICENSE.md +1 -1
  49. data/lib/measures/SetInteriorWallsAndFloorsToAdiabatic/measure.rb +2 -2
  50. data/lib/measures/SetInteriorWallsAndFloorsToAdiabatic/measure.xml +13 -12
  51. data/lib/measures/SetInteriorWallsToSelectedConstruction/LICENSE.md +1 -1
  52. data/lib/measures/SetInteriorWallsToSelectedConstruction/measure.rb +2 -2
  53. data/lib/measures/SetInteriorWallsToSelectedConstruction/measure.xml +13 -12
  54. data/lib/measures/SetWindowToWallRatioByFacade/LICENSE.md +1 -1
  55. data/lib/measures/SetWindowToWallRatioByFacade/README.md +11 -0
  56. data/lib/measures/SetWindowToWallRatioByFacade/measure.rb +91 -143
  57. data/lib/measures/SetWindowToWallRatioByFacade/measure.xml +32 -11
  58. data/lib/measures/SetWindowToWallRatioByFacade/resources/functions.rb +176 -0
  59. data/lib/measures/SimplifyGeometryToSlicedBar/LICENSE.md +1 -1
  60. data/lib/measures/SimplifyGeometryToSlicedBar/measure.rb +9 -5
  61. data/lib/measures/SimplifyGeometryToSlicedBar/measure.xml +31 -13
  62. data/lib/measures/SimplifyGeometryToSlicedBar/resources/os_lib_cofee.rb +7 -5
  63. data/lib/measures/SimplifyGeometryToSlicedBar/resources/os_lib_geometry.rb +14 -9
  64. data/lib/measures/SimplifyGeometryToSlicedBar/resources/os_lib_helper_methods.rb +3 -5
  65. data/lib/measures/SpaceTypeAndConstructionSetWizard/LICENSE.md +1 -1
  66. data/lib/measures/SpaceTypeAndConstructionSetWizard/measure.rb +2 -2
  67. data/lib/measures/SpaceTypeAndConstructionSetWizard/measure.xml +63 -11
  68. data/lib/measures/SurfaceMatching/LICENSE.md +1 -1
  69. data/lib/measures/SurfaceMatching/measure.rb +2 -1
  70. data/lib/measures/SurfaceMatching/measure.xml +13 -12
  71. data/lib/measures/{BarAspectRatioSlicedBySpaceType → add_empd_material_properties}/LICENSE.md +1 -1
  72. data/lib/measures/add_empd_material_properties/README.md +116 -0
  73. data/lib/measures/{BarAspectRatioSlicedBySpaceType → add_empd_material_properties}/README.md.erb +0 -0
  74. data/lib/measures/add_empd_material_properties/docs/.gitkeep +0 -0
  75. data/lib/measures/add_empd_material_properties/measure.rb +247 -0
  76. data/lib/measures/add_empd_material_properties/measure.xml +201 -0
  77. data/lib/measures/blended_space_type_from_floor_area_ratios/LICENSE.md +1 -1
  78. data/lib/measures/blended_space_type_from_floor_area_ratios/measure.rb +5 -4
  79. data/lib/measures/blended_space_type_from_floor_area_ratios/measure.xml +5 -5
  80. data/lib/measures/blended_space_type_from_model/LICENSE.md +1 -1
  81. data/lib/measures/blended_space_type_from_model/{resources → docs}/replace_occupied_spaces_with_blended_space_type_design_doc.txt +0 -0
  82. data/lib/measures/blended_space_type_from_model/measure.rb +16 -4
  83. data/lib/measures/blended_space_type_from_model/measure.xml +16 -22
  84. data/lib/measures/clone_building_from_external_model/LICENSE.md +1 -1
  85. data/lib/measures/clone_building_from_external_model/measure.rb +1 -1
  86. data/lib/measures/clone_building_from_external_model/measure.xml +5 -5
  87. data/lib/measures/create_DOE_prototype_building/LICENSE.md +1 -1
  88. data/lib/measures/create_DOE_prototype_building/measure.rb +4 -3
  89. data/lib/measures/create_DOE_prototype_building/measure.xml +163 -27
  90. data/lib/measures/create_and_assign_thermal_zones_for_unassigned_spaces/LICENSE.md +1 -1
  91. data/lib/measures/create_and_assign_thermal_zones_for_unassigned_spaces/measure.rb +1 -1
  92. data/lib/measures/create_and_assign_thermal_zones_for_unassigned_spaces/measure.xml +5 -5
  93. data/lib/measures/create_bar_from_building_type_ratios/LICENSE.md +1 -1
  94. data/lib/measures/create_bar_from_building_type_ratios/README.md +109 -35
  95. data/lib/measures/create_bar_from_building_type_ratios/README.md.erb +54 -35
  96. data/lib/measures/create_bar_from_building_type_ratios/measure.rb +9 -4
  97. data/lib/measures/create_bar_from_building_type_ratios/measure.xml +124 -12
  98. data/lib/measures/create_bar_from_deer_building_type_ratios/LICENSE.md +1 -1
  99. data/lib/measures/create_bar_from_deer_building_type_ratios/README.md +301 -79
  100. data/lib/measures/create_bar_from_deer_building_type_ratios/README.md.erb +62 -79
  101. data/lib/measures/create_bar_from_deer_building_type_ratios/measure.rb +10 -5
  102. data/lib/measures/create_bar_from_deer_building_type_ratios/measure.xml +15 -59
  103. data/lib/measures/create_bar_from_doe_building_type_ratios/LICENSE.md +1 -1
  104. data/lib/measures/create_bar_from_doe_building_type_ratios/README.md +298 -57
  105. data/lib/measures/create_bar_from_doe_building_type_ratios/README.md.erb +54 -57
  106. data/lib/measures/create_bar_from_doe_building_type_ratios/measure.rb +10 -5
  107. data/lib/measures/create_bar_from_doe_building_type_ratios/measure.xml +122 -14
  108. data/lib/measures/create_bar_from_model/LICENSE.md +1 -1
  109. data/lib/measures/create_bar_from_model/measure.rb +11 -7
  110. data/lib/measures/create_bar_from_model/measure.xml +5 -5
  111. data/lib/measures/create_bar_from_space_type_ratios/LICENSE.md +27 -0
  112. data/lib/measures/create_bar_from_space_type_ratios/README.md +556 -0
  113. data/lib/measures/create_bar_from_space_type_ratios/README.md.erb +324 -0
  114. data/lib/measures/create_bar_from_space_type_ratios/docs/ar_05.png +0 -0
  115. data/lib/measures/create_bar_from_space_type_ratios/docs/ar_1.png +0 -0
  116. data/lib/measures/create_bar_from_space_type_ratios/docs/ar_2.png +0 -0
  117. data/lib/measures/create_bar_from_space_type_ratios/docs/bar_double_loaded.png +0 -0
  118. data/lib/measures/create_bar_from_space_type_ratios/docs/bar_single_core_perim.png +0 -0
  119. data/lib/measures/create_bar_from_space_type_ratios/docs/bar_sliced_indiv.png +0 -0
  120. data/lib/measures/create_bar_from_space_type_ratios/docs/bar_sliced_simple.png +0 -0
  121. data/lib/measures/create_bar_from_space_type_ratios/docs/basement.png +0 -0
  122. data/lib/measures/create_bar_from_space_type_ratios/docs/custom_height_false.png +0 -0
  123. data/lib/measures/create_bar_from_space_type_ratios/docs/custom_height_true.png +0 -0
  124. data/lib/measures/create_bar_from_space_type_ratios/docs/no_party_mult.png +0 -0
  125. data/lib/measures/create_bar_from_space_type_ratios/docs/party.png +0 -0
  126. data/lib/measures/create_bar_from_space_type_ratios/docs/party_multi.png +0 -0
  127. data/lib/measures/create_bar_from_space_type_ratios/docs/perim_mult_2010.png +0 -0
  128. data/lib/measures/create_bar_from_space_type_ratios/docs/perim_mult_2012.png +0 -0
  129. data/lib/measures/create_bar_from_space_type_ratios/docs/perim_mult_2020.png +0 -0
  130. data/lib/measures/create_bar_from_space_type_ratios/docs/sep_05.png +0 -0
  131. data/lib/measures/create_bar_from_space_type_ratios/docs/sep_10.png +0 -0
  132. data/lib/measures/create_bar_from_space_type_ratios/docs/sep_3.png +0 -0
  133. data/lib/measures/create_bar_from_space_type_ratios/docs/story_sort.png +0 -0
  134. data/lib/measures/create_bar_from_space_type_ratios/docs/wwr_custom.png +0 -0
  135. data/lib/measures/create_bar_from_space_type_ratios/measure.rb +314 -0
  136. data/lib/measures/create_bar_from_space_type_ratios/measure.xml +687 -0
  137. data/lib/measures/create_baseline_building/LICENSE.md +1 -1
  138. data/lib/measures/create_baseline_building/measure.rb +4 -3
  139. data/lib/measures/create_baseline_building/measure.xml +5 -5
  140. data/lib/measures/create_deer_prototype_building/LICENSE.md +1 -1
  141. data/lib/measures/create_deer_prototype_building/measure.rb +1 -1
  142. data/lib/measures/create_deer_prototype_building/measure.xml +6 -6
  143. data/lib/measures/create_deer_prototype_building/resources/deer_building_types.rb +1 -1
  144. data/lib/measures/create_parametric_schedules/LICENSE.md +1 -1
  145. data/lib/measures/create_parametric_schedules/measure.rb +16 -11
  146. data/lib/measures/create_parametric_schedules/measure.xml +5 -5
  147. data/lib/measures/create_typical_building_from_model/LICENSE.md +1 -1
  148. data/lib/measures/create_typical_building_from_model/README.md +82 -17
  149. data/lib/measures/create_typical_building_from_model/README.md.erb +36 -16
  150. data/lib/measures/create_typical_building_from_model/measure.rb +8 -6
  151. data/lib/measures/create_typical_building_from_model/measure.xml +59 -27
  152. data/lib/measures/create_typical_building_from_model/resources/Model.hvac.rb +8 -5
  153. data/lib/measures/create_typical_deer_building_from_model/LICENSE.md +1 -1
  154. data/lib/measures/create_typical_deer_building_from_model/README.md +173 -53
  155. data/lib/measures/create_typical_deer_building_from_model/README.md.erb +57 -53
  156. data/lib/measures/create_typical_deer_building_from_model/measure.rb +8 -3
  157. data/lib/measures/create_typical_deer_building_from_model/measure.xml +26 -26
  158. data/lib/measures/create_typical_deer_building_from_model/resources/Model.hvac.rb +8 -5
  159. data/lib/measures/create_typical_doe_building_from_model/LICENSE.md +1 -1
  160. data/lib/measures/create_typical_doe_building_from_model/README.md +182 -44
  161. data/lib/measures/create_typical_doe_building_from_model/README.md.erb +58 -44
  162. data/lib/measures/create_typical_doe_building_from_model/measure.rb +8 -3
  163. data/lib/measures/create_typical_doe_building_from_model/measure.xml +60 -28
  164. data/lib/measures/create_typical_doe_building_from_model/resources/Model.hvac.rb +8 -5
  165. data/lib/measures/deer_space_type_and_construction_set_wizard/LICENSE.md +1 -1
  166. data/lib/measures/deer_space_type_and_construction_set_wizard/measure.rb +2 -2
  167. data/lib/measures/deer_space_type_and_construction_set_wizard/measure.xml +17 -17
  168. data/lib/measures/find_and_replace_in_all_thermal_zone_names/LICENSE.md +1 -1
  169. data/lib/measures/find_and_replace_in_all_thermal_zone_names/measure.rb +1 -1
  170. data/lib/measures/find_and_replace_in_all_thermal_zone_names/measure.xml +8 -7
  171. data/lib/measures/make_shading_surfaces_based_on_zone_multipliers/LICENSE.md +1 -1
  172. data/lib/measures/make_shading_surfaces_based_on_zone_multipliers/measure.rb +3 -1
  173. data/lib/measures/make_shading_surfaces_based_on_zone_multipliers/measure.xml +5 -5
  174. data/lib/measures/merge_floorspace_js_with_model/LICENSE.md +1 -1
  175. data/lib/measures/merge_floorspace_js_with_model/measure.rb +5 -2
  176. data/lib/measures/merge_floorspace_js_with_model/measure.xml +5 -5
  177. data/lib/measures/merge_spaces_from_external_file/LICENSE.md +1 -1
  178. data/lib/measures/merge_spaces_from_external_file/measure.rb +1 -1
  179. data/lib/measures/merge_spaces_from_external_file/measure.xml +6 -6
  180. data/lib/measures/merge_spaces_from_external_file/resources/ScheduleTranslator.rb +1 -1
  181. data/lib/measures/radiance_measure/LICENSE.md +1 -1
  182. data/lib/measures/radiance_measure/measure.rb +63 -57
  183. data/lib/measures/radiance_measure/measure.xml +11 -11
  184. data/lib/measures/radiant_slab_with_doas/LICENSE.md +1 -1
  185. data/lib/measures/radiant_slab_with_doas/measure.rb +9 -2
  186. data/lib/measures/radiant_slab_with_doas/measure.xml +10 -10
  187. data/lib/measures/replace_geometry_by_story/LICENSE.md +1 -1
  188. data/lib/measures/replace_geometry_by_story/measure.rb +5 -1
  189. data/lib/measures/replace_geometry_by_story/measure.xml +5 -5
  190. data/lib/measures/scale_geometry/LICENSE.md +1 -1
  191. data/lib/measures/scale_geometry/measure.rb +1 -1
  192. data/lib/measures/scale_geometry/measure.xml +5 -5
  193. data/lib/openstudio/model_articulation/extension.rb +1 -1
  194. data/lib/openstudio/model_articulation/version.rb +2 -2
  195. data/lib/openstudio/model_articulation.rb +1 -1
  196. data/lib/openstudio-model-articulation.rb +1 -1
  197. data/openstudio-model-articulation.gemspec +3 -3
  198. metadata +42 -16
  199. data/lib/measures/BarAspectRatioSlicedBySpaceType/README.md +0 -64
  200. data/lib/measures/BarAspectRatioSlicedBySpaceType/measure.rb +0 -184
  201. data/lib/measures/BarAspectRatioSlicedBySpaceType/measure.xml +0 -130
  202. data/lib/measures/BarAspectRatioSlicedBySpaceType/resources/os_lib_cofee.rb +0 -252
  203. data/lib/measures/blended_space_type_from_model/resources/os_lib_model_simplification.rb +0 -1049
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -50,6 +50,7 @@ require 'open3'
50
50
  class Array
51
51
  def average
52
52
  raise 'Cannot average 0 items' if empty?
53
+
53
54
  sum = inject(:+)
54
55
 
55
56
  (sum / size).to_f
@@ -126,6 +127,7 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
126
127
 
127
128
  print_statement("Reading '#{filename}'", runner)
128
129
  raise "Could not find illuminance file #{filename}" unless File.exist?(filename)
130
+
129
131
  File.read(filename).each_line do |line|
130
132
  data_section = true if line =~ /^\s?\d/
131
133
  if data_section
@@ -360,9 +362,10 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
360
362
  coreCount = OpenStudio::System.numberOfProcessors
361
363
  sim_cores = '1'
362
364
 
363
- if use_cores == 'Max'
365
+ case use_cores
366
+ when 'Max'
364
367
  sim_cores = coreCount
365
- elsif use_cores == 'Min'
368
+ when 'Min'
366
369
  sim_cores = 1
367
370
  else
368
371
  sim_cores = coreCount - 1
@@ -422,12 +425,12 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
422
425
  perlpath = OpenStudio.getApplicationRunDirectory.parent_path /
423
426
  OpenStudio::Path.new('strawberry-perl-5.16.2.1-32bit-portable-reduced/perl/bin')
424
427
  end
425
- print_statement('Adding path for local perl: ' + perlpath.to_s, runner)
426
- ENV['PATH'] = path + ';' + ENV['PATH'] + ';' + perlpath.to_s
427
- ENV['RAYPATH'] = path + ';' + raypath + ';.'
428
+ print_statement("Adding path for local perl: #{perlpath}", runner)
429
+ ENV['PATH'] = "#{path};#{ENV['PATH']};#{perlpath}"
430
+ ENV['RAYPATH'] = "#{path};#{raypath};."
428
431
  else
429
- ENV['PATH'] = path + ':' + ENV['PATH']
430
- ENV['RAYPATH'] = path + ':' + raypath + ':.'
432
+ ENV['PATH'] = "#{path}:#{ENV['PATH']}"
433
+ ENV['RAYPATH'] = "#{path}:#{raypath}:."
431
434
  end
432
435
 
433
436
  end
@@ -512,14 +515,10 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
512
515
  print_statement('Running on Windows (sorry)', runner) if OS.windows && debug_mode
513
516
  print_statement('Running on unix', runner) if OS.unix && debug_mode
514
517
 
515
- if !got_2x
516
-
517
- if Dir.glob(epw2weapath + programExtension).empty?
518
-
519
- runner.registerError("Cannot find epw2wea tool in radiance installation at '#{radiancePath}'. You may need to install a newer version of Radiance.")
520
- exit false
518
+ if !got_2x && Dir.glob(epw2weapath + programExtension).empty?
521
519
 
522
- end
520
+ runner.registerError("Cannot find epw2wea tool in radiance installation at '#{radiancePath}'. You may need to install a newer version of Radiance.")
521
+ exit false
523
522
 
524
523
  end
525
524
 
@@ -738,7 +737,7 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
738
737
  tempSettings = tempIO.split(' ')
739
738
  options_klemsDensity = "#{tempSettings[0]} #{tempSettings[1]}"
740
739
  options_skyvecDensity = tempSettings[3].split(':')[1]
741
- options_tregVars = tempSettings[2..-1].join(' ')
740
+ options_tregVars = tempSettings[2..].join(' ')
742
741
  end
743
742
 
744
743
  File.open("#{radPath}/options/dmx.opt", 'r') do |file|
@@ -777,11 +776,13 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
777
776
  windowGroupCheck = File.open('bsdf/mapping.rad')
778
777
  windowGroupCheck.each do |row|
779
778
  next if row[0] == '#'
779
+
780
780
  wg = row.split(',')[0]
781
781
 
782
- if wg == 'WG0'
782
+ case wg
783
+ when 'WG0'
783
784
  haveWG0 = 'True'
784
- elsif wg == 'WG1'
785
+ when 'WG1'
785
786
  haveWG1 = 'True'
786
787
  end
787
788
  end
@@ -804,6 +805,7 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
804
805
 
805
806
  windowMaps.each do |row|
806
807
  next if row[0] == '#'
808
+
807
809
  wg = row.split(',')[0]
808
810
 
809
811
  rad_command = ''
@@ -968,11 +970,13 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
968
970
  windowGroupCheck = File.open('bsdf/mapping.rad')
969
971
  windowGroupCheck.each do |row|
970
972
  next if row[0] == '#'
973
+
971
974
  wg = row.split(',')[0]
972
975
 
973
- if wg == 'WG0'
976
+ case wg
977
+ when 'WG0'
974
978
  haveWG0 = 'True'
975
- elsif wg == 'WG1'
979
+ when 'WG1'
976
980
  haveWG1 = 'True'
977
981
  end
978
982
  end
@@ -992,6 +996,7 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
992
996
  windowMaps.each do |row|
993
997
  # skip header
994
998
  next if row[0] == '#'
999
+
995
1000
  wg = row.split(',')[0]
996
1001
 
997
1002
  # do uncontrolled windows (WG0)
@@ -1027,7 +1032,7 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
1027
1032
 
1028
1033
  else
1029
1034
 
1030
- wgXMLs = row.split(',')[4..-1]
1035
+ wgXMLs = row.split(',')[4..]
1031
1036
  if wgXMLs.size > 2
1032
1037
  print_statement("WARN: Window Group #{wg} has #{wgXMLs.size} BSDFs (2 max supported by OpenStudio application).", runner)
1033
1038
  end
@@ -1071,6 +1076,7 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
1071
1076
  windowGroups = File.open('bsdf/mapping.rad')
1072
1077
  windowGroups.each do |wg|
1073
1078
  next if wg[0] == '#' # skip header
1079
+
1074
1080
  windowGroup = wg.split(',')[0]
1075
1081
  next if windowGroup == 'WG0' # skip unshaded windows
1076
1082
 
@@ -1087,10 +1093,10 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
1087
1093
  wg_normal_z = wg_normal.split(' ')[2].to_f
1088
1094
 
1089
1095
  # DLM: hacktastic way to implement these options for now
1090
- if shadeControlType == 'AlwaysOn'
1096
+ case shadeControlType
1097
+ when 'AlwaysOn'
1091
1098
  shadeControlSetpoint = -1000
1092
- elsif
1093
- shadeControlType == 'AlwaysOff'
1099
+ when 'AlwaysOff'
1094
1100
  shadeControlSetpoint = 10000000000
1095
1101
  end
1096
1102
 
@@ -1129,7 +1135,7 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
1129
1135
  wgIllum = File.open("output/ts/m_#{windowGroup}.ill", 'w')
1130
1136
  wgShade = File.open("output/ts/#{windowGroup}.shd", 'w')
1131
1137
  header.each { |head| wgIllum.print head.to_s }
1132
- wgMerge.to_a.each { |array_ts| wgIllum.print " #{array_ts.join(' ')}\n" } # note leading space, for compatibility with default rfluxmtx output
1138
+ wgMerge.to_a.each { |array_ts| wgIllum.print " #{array_ts.join(' ')}\n" } # NOTE: leading space, for compatibility with default rfluxmtx output
1133
1139
  wgShadeSchedule.each { |sh| wgShade.print sh.to_s }
1134
1140
  wgIllum.close
1135
1141
  wgShade.close
@@ -1177,7 +1183,7 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
1177
1183
  print_statement("Starting final building illumimance file with #{mergeWindows[0]}...", runner)
1178
1184
  exec_statement("rmtxop -fa #{mergeWindows[0]} -t > output/final_merge.tmp", runner)
1179
1185
  # add remaining groups, one at a time
1180
- mergeWindows[1..-1].each do |merge|
1186
+ mergeWindows[1..].each do |merge|
1181
1187
  print_statement("adding #{merge}...", runner)
1182
1188
  temp_fname = rand(36**15).to_s(36)
1183
1189
  while merge_count > 1
@@ -1317,7 +1323,7 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
1317
1323
  # iterate over each sensor and combine the views together
1318
1324
  new_hash = {}
1319
1325
 
1320
- t_radGlareSensorViews[space_name].each do |sensor, v|
1326
+ t_radGlareSensorViews[space_name]&.each do |sensor, v|
1321
1327
  new_hash[sensor] = v[hour]
1322
1328
  end
1323
1329
  splitvalues[space_name] += [new_hash]
@@ -1416,7 +1422,7 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
1416
1422
  illum.length.times do |n|
1417
1423
  data[n] = illum[n].to_f
1418
1424
  rescue Exception => e
1419
- print_statement('Error inserting data: ' + illum[n] + ' inserting 0 instead', runner)
1425
+ print_statement("Error inserting data: #{illum[n]} inserting 0 instead", runner)
1420
1426
  data[n] = 0
1421
1427
  end
1422
1428
 
@@ -1438,7 +1444,7 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
1438
1444
 
1439
1445
  # for each environment period (design days, annual, or arbitrary) you will create a directory for results
1440
1446
  t_sqlFile.availableEnvPeriods.each do |envPeriod|
1441
- print_statement("envPeriod = '" + envPeriod.to_s + "'", runner)
1447
+ print_statement("envPeriod = '#{envPeriod}'", runner)
1442
1448
 
1443
1449
  diffHorizIllumAll, dirNormIllumAll, diffEfficacyAll, dirNormEfficacyAll, solarAltitudeAll, solarAzimuthAll, diffHorizUnits, dirNormUnits = getTimeSeries(t_sqlFile, envPeriod)
1444
1450
 
@@ -1493,16 +1499,14 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
1493
1499
  # Debug
1494
1500
  # File.open('glareSensorValues.out', 'w') { |f| f.write(glareSensorValues.to_s) }
1495
1501
 
1496
- timeSeriesIllum[i] = tsDateTime.to_s.tr(' ', ',') + ',' + "#{dirNormIllum[i]},#{diffHorizIllum[i]}," + illumSensorValues.join(',') + ',' + illumValues.join(',')
1502
+ timeSeriesIllum[i] = "#{tsDateTime.to_s.tr(' ', ',')},#{dirNormIllum[i]},#{diffHorizIllum[i]},#{illumSensorValues.join(',')},#{illumValues.join(',')}"
1497
1503
 
1498
1504
  # add glare sensor values
1499
- if t_radGlareSensorViews[space_name]
1500
- if !glareSensorValues.nil?
1501
- timeSeriesGlare[i] = tsDateTime.to_s.tr(' ', ',')
1502
- glareSensorValues.each_key do |key|
1503
- glare_values = glareSensorValues[key].map { |_, v| v['dgp'] }
1504
- timeSeriesGlare[i] += ",#{key},#{glare_values.average.round(2)},#{glare_values.min.round(2)},#{glare_values.max.round(2)},raw,#{glare_values.join(',')}"
1505
- end
1505
+ if t_radGlareSensorViews[space_name] && !glareSensorValues.nil?
1506
+ timeSeriesGlare[i] = tsDateTime.to_s.tr(' ', ',')
1507
+ glareSensorValues.each_key do |key|
1508
+ glare_values = glareSensorValues[key].map { |_, v| v['dgp'] }
1509
+ timeSeriesGlare[i] += ",#{key},#{glare_values.average.round(2)},#{glare_values.min.round(2)},#{glare_values.max.round(2)},raw,#{glare_values.join(',')}"
1506
1510
  end
1507
1511
  end
1508
1512
 
@@ -1634,7 +1638,7 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
1634
1638
  ys << ymin + (n * ySpacing)
1635
1639
  end
1636
1640
 
1637
- sqlOutFile.insertIlluminanceMap(space_name, space_name + ' DAYLIGHT MAP', t_epwFile.wmoNumber,
1641
+ sqlOutFile.insertIlluminanceMap(space_name, "#{space_name} DAYLIGHT MAP", t_epwFile.wmoNumber,
1638
1642
  simDateTimes, xs, ys, map.originZCoordinate,
1639
1643
  illuminanceMatrixMaps)
1640
1644
 
@@ -1755,8 +1759,8 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
1755
1759
  daylightSetpoint = secondaryDaylightingControl.get.illuminanceSetpoint
1756
1760
  else
1757
1761
  print_statement("Ignoring secondary daylighting control in ThermalZone '#{thermalZone.name}'", runner)
1762
+ end
1758
1763
  end
1759
- end
1760
1764
 
1761
1765
  if daylightSetpoint == 0.0
1762
1766
  space.daylightingControls.each do |i|
@@ -1809,7 +1813,7 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
1809
1813
 
1810
1814
  schedule = schedule.get
1811
1815
 
1812
- schedule.setName(thermalZone.name.get + ' Lights Schedule')
1816
+ schedule.setName("#{thermalZone.name.get} Lights Schedule")
1813
1817
 
1814
1818
  # remove all lights in this zone
1815
1819
  spaces.each do |space|
@@ -1872,6 +1876,7 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
1872
1876
 
1873
1877
  thermalZone = space.thermalZone
1874
1878
  next if thermalZone.empty?
1879
+
1875
1880
  thermalZone = thermalZone.get
1876
1881
 
1877
1882
  map_name = "#{space_name} DAYLIGHT MAP"
@@ -1949,7 +1954,8 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
1949
1954
 
1950
1955
  da = 0
1951
1956
 
1952
- if $METHOD == 0
1957
+ case $METHOD
1958
+ when 0
1953
1959
 
1954
1960
  # get map values
1955
1961
  map_values = radoutFile.illuminanceMap(hourly_report_index)
@@ -1968,9 +1974,9 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
1968
1974
  end
1969
1975
  end
1970
1976
 
1971
- da = num_da.to_f / num.to_f
1977
+ da = num_da.to_f / num
1972
1978
 
1973
- elsif $METHOD == 1
1979
+ when 1
1974
1980
 
1975
1981
  x = OpenStudio::DoubleVector.new
1976
1982
  y = OpenStudio::DoubleVector.new
@@ -2000,10 +2006,10 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
2000
2006
  end
2001
2007
  end
2002
2008
 
2003
- da = num_da.to_f / num.to_f
2004
- cda = num_cda.to_f / num.to_f
2005
- udi = num_udi.to_f / num.to_f
2006
- sda = num_sda.to_f / num.to_f
2009
+ da = num_da.to_f / num
2010
+ cda = num_cda.to_f / num
2011
+ udi = num_udi.to_f / num
2012
+ sda = num_sda.to_f / num
2007
2013
 
2008
2014
  end
2009
2015
 
@@ -2042,7 +2048,7 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
2042
2048
  da_daylit_num += 1
2043
2049
  end
2044
2050
  end
2045
- annual_da_daylit = da_daylit_sum.to_f / da_daylit_num.to_f
2051
+ annual_da_daylit = da_daylit_sum.to_f / da_daylit_num
2046
2052
  summary_report += "#{space_name},DA(#{daylightSetpoint.round(0)}),Daylit Hours,#{annual_da_daylit.round(2)},#{da_daylit_sum.round(0)},#{da_daylit_num}\n"
2047
2053
  if !peopleTimeseries.empty?
2048
2054
  da_occupied_sum = 0
@@ -2054,7 +2060,7 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
2054
2060
  end
2055
2061
  end
2056
2062
  # annual_da_occupied = (da_occupied_num == 0.0 || da_occupied_sum == 0.0) ? 0.0 : da_occupied_sum.to_f / da_occupied_num.to_f
2057
- annual_da_occupied = da_occupied_sum.to_f / da_occupied_num.to_f
2063
+ annual_da_occupied = da_occupied_sum.to_f / da_occupied_num
2058
2064
  summary_report += "#{space_name},DA(#{daylightSetpoint.round(0)}),Occupied Hours,#{annual_da_occupied.round(2)},#{da_occupied_sum.round(0)},#{da_occupied_num}\n"
2059
2065
 
2060
2066
  da_daylit_occupied_sum = 0
@@ -2066,7 +2072,7 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
2066
2072
  end
2067
2073
  end
2068
2074
  # annual_da_daylit_occupied = (da_daylit_occupied_num == 0.0 || da_daylit_occupied_sum == 0.0) ? 0.0 : da_daylit_occupied_sum.to_f / da_daylit_occupied_num.to_f
2069
- annual_da_daylit_occupied = da_daylit_occupied_sum.to_f / da_daylit_occupied_num.to_f
2075
+ annual_da_daylit_occupied = da_daylit_occupied_sum.to_f / da_daylit_occupied_num
2070
2076
  summary_report += "#{space_name},DA(#{daylightSetpoint.round(0)}),Daylit and Occupied Hours,#{annual_da_daylit_occupied.round(2)},#{da_daylit_occupied_sum.round(0)},#{da_daylit_occupied_num}\n"
2071
2077
  end
2072
2078
 
@@ -2079,7 +2085,7 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
2079
2085
  cda_daylit_num += 1
2080
2086
  end
2081
2087
  end
2082
- annual_cda_daylit = cda_daylit_sum.to_f / cda_daylit_num.to_f
2088
+ annual_cda_daylit = cda_daylit_sum.to_f / cda_daylit_num
2083
2089
  summary_report += "#{space_name},conDA(#{daylightSetpoint.round(0)}),Daylit Hours,#{annual_cda_daylit.round(2)},#{cda_daylit_sum.round(0)},#{cda_daylit_num}\n"
2084
2090
 
2085
2091
  if !peopleTimeseries.empty?
@@ -2091,7 +2097,7 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
2091
2097
  cda_occupied_num += 1
2092
2098
  end
2093
2099
  end
2094
- annual_cda_occupied = cda_occupied_sum.to_f / cda_occupied_num.to_f
2100
+ annual_cda_occupied = cda_occupied_sum.to_f / cda_occupied_num
2095
2101
  summary_report += "#{space_name},conDA(#{daylightSetpoint.round(0)}),Occupied Hours,#{annual_cda_occupied.round(2)},#{cda_occupied_sum.round(0)},#{cda_occupied_num}\n"
2096
2102
 
2097
2103
  cda_daylit_occupied_sum = 0
@@ -2102,7 +2108,7 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
2102
2108
  cda_daylit_occupied_num += 1
2103
2109
  end
2104
2110
  end
2105
- annual_cda_daylit_occupied = cda_daylit_occupied_sum.to_f / cda_daylit_occupied_num.to_f
2111
+ annual_cda_daylit_occupied = cda_daylit_occupied_sum.to_f / cda_daylit_occupied_num
2106
2112
  summary_report += "#{space_name},conDA(#{daylightSetpoint.round(0)}),Daylit and Occupied Hours,#{annual_cda_daylit_occupied.round(2)},#{cda_daylit_occupied_sum.round(0)},#{cda_daylit_occupied_num}\n"
2107
2113
  end
2108
2114
 
@@ -2115,7 +2121,7 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
2115
2121
  udi_daylit_num += 1
2116
2122
  end
2117
2123
  end
2118
- annual_udi_daylit = udi_daylit_sum.to_f / udi_daylit_num.to_f
2124
+ annual_udi_daylit = udi_daylit_sum.to_f / udi_daylit_num
2119
2125
  summary_report += "#{space_name},UDI(100-3000),Daylit Hours,#{annual_udi_daylit.round(2)},#{udi_daylit_sum.round(0)},#{udi_daylit_num}\n"
2120
2126
  if !peopleTimeseries.empty?
2121
2127
  udi_occupied_sum = 0
@@ -2126,7 +2132,7 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
2126
2132
  udi_occupied_num += 1
2127
2133
  end
2128
2134
  end
2129
- annual_udi_occupied = udi_occupied_sum.to_f / udi_occupied_num.to_f
2135
+ annual_udi_occupied = udi_occupied_sum.to_f / udi_occupied_num
2130
2136
  summary_report += "#{space_name},UDI(100-3000),Occupied Hours,#{annual_udi_occupied.round(2)},#{udi_occupied_sum.round(0)},#{udi_occupied_num}\n"
2131
2137
 
2132
2138
  udi_daylit_occupied_sum = 0
@@ -2137,7 +2143,7 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
2137
2143
  udi_daylit_occupied_num += 1
2138
2144
  end
2139
2145
  end
2140
- annual_udi_daylit_occupied = udi_daylit_occupied_sum.to_f / udi_daylit_occupied_num.to_f
2146
+ annual_udi_daylit_occupied = udi_daylit_occupied_sum.to_f / udi_daylit_occupied_num
2141
2147
  summary_report += "#{space_name},UDI(100-3000),Daylit and Occupied Hours,#{annual_udi_daylit_occupied.round(2)},#{cda_daylit_occupied_sum.round(0)},#{cda_daylit_occupied_num}\n"
2142
2148
  end
2143
2149
 
@@ -2150,7 +2156,7 @@ class RadianceMeasure < OpenStudio::Measure::ModelMeasure
2150
2156
  sda_num += 1
2151
2157
  end
2152
2158
  end
2153
- annual_sda = sda_sum.to_f / sda_num.to_f
2159
+ annual_sda = sda_sum.to_f / sda_num
2154
2160
  summary_report += "#{space_name},sDA(300),8AM-5PM (10 hours/day per IESNA LM-83-12),#{annual_sda.round(2)},#{sda_sum.round(0)},#{sda_num}\n"
2155
2161
 
2156
2162
  # Make building average metrics
@@ -3,8 +3,8 @@
3
3
  <schema_version>3.0</schema_version>
4
4
  <name>radiance_measure</name>
5
5
  <uid>1e3cfef8-b051-4e60-8bb0-ed2d29d4f45f</uid>
6
- <version_id>77b56312-1bff-49a4-91e8-64db8264357c</version_id>
7
- <version_modified>20200624T011257Z</version_modified>
6
+ <version_id>9b2fd6b5-9767-4a55-9b61-eb663567509b</version_id>
7
+ <version_modified>20220505T182929Z</version_modified>
8
8
  <xml_checksum>381B7733</xml_checksum>
9
9
  <class_name>RadianceMeasure</class_name>
10
10
  <display_name>Radiance Daylighting Measure</display_name>
@@ -172,11 +172,17 @@
172
172
  <usage_type>test</usage_type>
173
173
  <checksum>4255EB94</checksum>
174
174
  </file>
175
+ <file>
176
+ <filename>measure_test_model.osm</filename>
177
+ <filetype>osm</filetype>
178
+ <usage_type>test</usage_type>
179
+ <checksum>909929E9</checksum>
180
+ </file>
175
181
  <file>
176
182
  <filename>LICENSE.md</filename>
177
183
  <filetype>md</filetype>
178
184
  <usage_type>license</usage_type>
179
- <checksum>E0468DD6</checksum>
185
+ <checksum>A21A3ED2</checksum>
180
186
  </file>
181
187
  <file>
182
188
  <version>
@@ -187,19 +193,13 @@
187
193
  <filename>measure.rb</filename>
188
194
  <filetype>rb</filetype>
189
195
  <usage_type>script</usage_type>
190
- <checksum>609FCC24</checksum>
196
+ <checksum>FD74EFB9</checksum>
191
197
  </file>
192
198
  <file>
193
199
  <filename>radiance_measure_test.rb</filename>
194
200
  <filetype>rb</filetype>
195
201
  <usage_type>test</usage_type>
196
- <checksum>DD169097</checksum>
197
- </file>
198
- <file>
199
- <filename>measure_test_model.osm</filename>
200
- <filetype>osm</filetype>
201
- <usage_type>test</usage_type>
202
- <checksum>909929E9</checksum>
202
+ <checksum>AAD3F5F1</checksum>
203
203
  </file>
204
204
  </files>
205
205
  </measure>
@@ -1,4 +1,4 @@
1
- OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC. All rights reserved.
1
+ OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC. All rights reserved.
2
2
 
3
3
  Redistribution and use in source and binary forms, with or without modification, are permitted
4
4
  provided that the following conditions are met:
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -220,7 +220,11 @@ To reduce unmet hours, use an expanded comfort range as mentioned above, remove
220
220
  # remove existing hvac systems
221
221
  if remove_existing_hvac
222
222
  runner.registerInfo('Removing existing HVAC systems from the model')
223
- std.remove_HVAC(model)
223
+ if std.respond_to?('remove_HVAC')
224
+ std.remove_HVAC(model) # OpenStuido 3.2.1 and earlierop use this, future versions will use snake_case method
225
+ else
226
+ std.remove_hvac(model)
227
+ end
224
228
  end
225
229
 
226
230
  # exclude plenum zones, zones without thermostats, and zones with no floor area
@@ -228,6 +232,7 @@ To reduce unmet hours, use an expanded comfort range as mentioned above, remove
228
232
  model.getThermalZones.each do |zone|
229
233
  next if std.thermal_zone_plenum?(zone)
230
234
  next if !std.thermal_zone_heated?(zone) && !std.thermal_zone_cooled?(zone)
235
+
231
236
  conditioned_zones << zone
232
237
  end
233
238
 
@@ -382,8 +387,10 @@ To reduce unmet hours, use an expanded comfort range as mentioned above, remove
382
387
  next if radiant_type == 'floor' && surface.surfaceType != 'Floor'
383
388
  next if radiant_type == 'ceiling' && surface.surfaceType != 'RoofCeiling'
384
389
  next unless surface.space.is_initialized
390
+
385
391
  surface_space_name = surface.space.get.name.to_s
386
392
  next unless conditioned_space_names.include? surface_space_name
393
+
387
394
  var = OpenStudio::Model::OutputVariable.new('Surface Inside Face Temperature', model)
388
395
  var.setKeyValue(surface.name.to_s)
389
396
  vars << var
@@ -3,8 +3,8 @@
3
3
  <schema_version>3.0</schema_version>
4
4
  <name>radiant_slab_with_doas</name>
5
5
  <uid>8091a0c3-7760-4da6-adf4-133d55872816</uid>
6
- <version_id>6a2e572a-a2c1-483b-8263-0c81dfcd5f49</version_id>
7
- <version_modified>20201026T190725Z</version_modified>
6
+ <version_id>764afd7f-f6e7-4e73-bc92-1230e49b2145</version_id>
7
+ <version_modified>20220505T182927Z</version_modified>
8
8
  <xml_checksum>C49A7DAB</xml_checksum>
9
9
  <class_name>RadiantSlabWithDoas</class_name>
10
10
  <display_name>Radiant Slab with DOAS</display_name>
@@ -323,7 +323,13 @@ To reduce unmet hours, use an expanded comfort range as mentioned above, remove
323
323
  <filename>LICENSE.md</filename>
324
324
  <filetype>md</filetype>
325
325
  <usage_type>license</usage_type>
326
- <checksum>E0468DD6</checksum>
326
+ <checksum>A21A3ED2</checksum>
327
+ </file>
328
+ <file>
329
+ <filename>radiant_slab_with_doas_test.rb</filename>
330
+ <filetype>rb</filetype>
331
+ <usage_type>test</usage_type>
332
+ <checksum>2317B466</checksum>
327
333
  </file>
328
334
  <file>
329
335
  <version>
@@ -334,13 +340,7 @@ To reduce unmet hours, use an expanded comfort range as mentioned above, remove
334
340
  <filename>measure.rb</filename>
335
341
  <filetype>rb</filetype>
336
342
  <usage_type>script</usage_type>
337
- <checksum>466F7B10</checksum>
338
- </file>
339
- <file>
340
- <filename>radiant_slab_with_doas_test.rb</filename>
341
- <filetype>rb</filetype>
342
- <usage_type>test</usage_type>
343
- <checksum>34F1B714</checksum>
343
+ <checksum>12177EE8</checksum>
344
344
  </file>
345
345
  </files>
346
346
  </measure>
@@ -1,4 +1,4 @@
1
- OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC. All rights reserved.
1
+ OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC. All rights reserved.
2
2
 
3
3
  Redistribution and use in source and binary forms, with or without modification, are permitted
4
4
  provided that the following conditions are met:
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -83,6 +83,7 @@ class ReplaceGeometryByStory < OpenStudio::Measure::ModelMeasure
83
83
  story_hash = {}
84
84
  model.getBuildingStorys.each do |story|
85
85
  next if !story.spaces.first.spaceType.is_initialized
86
+
86
87
  story_hash[story] = {}
87
88
  story_hash[story][:space_type] = story.spaces.first.spaceType.get
88
89
 
@@ -198,6 +199,7 @@ class ReplaceGeometryByStory < OpenStudio::Measure::ModelMeasure
198
199
  if hash[:basement]
199
200
  space.surfaces.each do |surface|
200
201
  next if surface.surfaceType != 'Wall'
202
+
201
203
  surface.setOutsideBoundaryCondition('Ground')
202
204
  end
203
205
  end
@@ -214,6 +216,7 @@ class ReplaceGeometryByStory < OpenStudio::Measure::ModelMeasure
214
216
  space.surfaces.each do |surface|
215
217
  next if surface.outsideBoundaryCondition != 'Outdoors'
216
218
  next if surface.surfaceType != 'Wall'
219
+
217
220
  surface.setWindowToWallRatio(target_wwr)
218
221
  end
219
222
  end
@@ -222,6 +225,7 @@ class ReplaceGeometryByStory < OpenStudio::Measure::ModelMeasure
222
225
  zone_hash = {} # key is zone value is floor area. It excludes zones with non 1 multiplier
223
226
  model.getThermalZones.each do |thermal_zone|
224
227
  next if thermal_zone.multiplier > 1
228
+
225
229
  zone_hash[thermal_zone] = thermal_zone.floorArea
226
230
  end
227
231
  target_zone = zone_hash.key(zone_hash.values.max)
@@ -3,8 +3,8 @@
3
3
  <schema_version>3.0</schema_version>
4
4
  <name>replace_geometry_by_story</name>
5
5
  <uid>03b18912-0ceb-47e9-8f8b-417a3008e189</uid>
6
- <version_id>6fc4d9fe-9b38-4ce3-ba03-a2b462e4dd8e</version_id>
7
- <version_modified>20200509T155937Z</version_modified>
6
+ <version_id>0c043052-fbe4-4cb6-809b-4659f265a0dd</version_id>
7
+ <version_modified>20220505T182928Z</version_modified>
8
8
  <xml_checksum>2AF3A68E</xml_checksum>
9
9
  <class_name>ReplaceGeometryByStory</class_name>
10
10
  <display_name>Replace Geometry By Story</display_name>
@@ -61,7 +61,7 @@
61
61
  <filename>LICENSE.md</filename>
62
62
  <filetype>md</filetype>
63
63
  <usage_type>license</usage_type>
64
- <checksum>E0468DD6</checksum>
64
+ <checksum>A21A3ED2</checksum>
65
65
  </file>
66
66
  <file>
67
67
  <version>
@@ -72,13 +72,13 @@
72
72
  <filename>measure.rb</filename>
73
73
  <filetype>rb</filetype>
74
74
  <usage_type>script</usage_type>
75
- <checksum>96B62A79</checksum>
75
+ <checksum>7478785A</checksum>
76
76
  </file>
77
77
  <file>
78
78
  <filename>replace_geometry_by_story_test.rb</filename>
79
79
  <filetype>rb</filetype>
80
80
  <usage_type>test</usage_type>
81
- <checksum>73A79D27</checksum>
81
+ <checksum>DC2F0000</checksum>
82
82
  </file>
83
83
  </files>
84
84
  </measure>
@@ -1,4 +1,4 @@
1
- OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC. All rights reserved.
1
+ OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC. All rights reserved.
2
2
 
3
3
  Redistribution and use in source and binary forms, with or without modification, are permitted
4
4
  provided that the following conditions are met:
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -3,8 +3,8 @@
3
3
  <schema_version>3.0</schema_version>
4
4
  <name>scale_geometry</name>
5
5
  <uid>f9cc2ffc-2838-4a18-8330-97e7cc94cdf8</uid>
6
- <version_id>b075de7b-1223-4ce5-993b-a4010abfbded</version_id>
7
- <version_modified>20200509T155938Z</version_modified>
6
+ <version_id>ea83673c-44b7-4fa4-90f4-f26a9ebf52bb</version_id>
7
+ <version_modified>20220505T182930Z</version_modified>
8
8
  <xml_checksum>7AD75066</xml_checksum>
9
9
  <class_name>ScaleGeometry</class_name>
10
10
  <display_name>scale_geometry</display_name>
@@ -104,19 +104,19 @@
104
104
  <filename>measure.rb</filename>
105
105
  <filetype>rb</filetype>
106
106
  <usage_type>script</usage_type>
107
- <checksum>57103EB1</checksum>
107
+ <checksum>A36635B3</checksum>
108
108
  </file>
109
109
  <file>
110
110
  <filename>LICENSE.md</filename>
111
111
  <filetype>md</filetype>
112
112
  <usage_type>license</usage_type>
113
- <checksum>E0468DD6</checksum>
113
+ <checksum>A21A3ED2</checksum>
114
114
  </file>
115
115
  <file>
116
116
  <filename>scale_geometry_test.rb</filename>
117
117
  <filetype>rb</filetype>
118
118
  <usage_type>test</usage_type>
119
- <checksum>AEBD2413</checksum>
119
+ <checksum>5A612286</checksum>
120
120
  </file>
121
121
  </files>
122
122
  </measure>
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met: