openstudio-standards 0.2.12 → 0.2.13.rc3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (492) hide show
  1. checksums.yaml +4 -4
  2. data/data/geometry/ASHRAE90120162019HighriseApartment.json +1042 -0
  3. data/data/geometry/ASHRAE90120162019Hospital.json +199 -0
  4. data/data/geometry/ASHRAE90120162019LargeHotel.json +73 -0
  5. data/data/geometry/ASHRAE90120162019LargeOffice.json +109 -0
  6. data/data/geometry/ASHRAE90120162019SecondarySchool.json +205 -0
  7. data/data/geometry/ASHRAECourthouse.json +112 -0
  8. data/data/geometry/ASHRAECourthouse.osm +26470 -0
  9. data/data/geometry/ASHRAELargeHotel.osm +11 -1
  10. data/data/geometry/ASHRAELargeOffice.json +4 -0
  11. data/data/standards/OpenStudio_Standards-ashrae_90_1(space_types).xlsx +0 -0
  12. data/data/standards/OpenStudio_Standards-ashrae_90_1-ALL-comstock(space_types).xlsx +0 -0
  13. data/data/standards/OpenStudio_Standards-ashrae_90_1.xlsx +0 -0
  14. data/data/standards/exclude_list.csv +19 -0
  15. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.boilers.json +49 -0
  16. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.chillers.json +293 -0
  17. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.construction_properties.json +25426 -0
  18. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.construction_sets.json +1600 -0
  19. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.economizers.json +564 -0
  20. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.elevators.json +349 -0
  21. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ext_ltg.json +164 -0
  22. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ground_temperatures.json +10663 -0
  23. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_pumps.json +508 -0
  24. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_pumps_heating.json +156 -0
  25. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_rejection.json +44 -0
  26. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.motors.json +184 -0
  27. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.prototype_inputs.json +3094 -0
  28. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ref_cases.json +829 -0
  29. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ref_lnup.json +562 -0
  30. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_compressors.json +52 -0
  31. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_condenser.json +220 -0
  32. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_system.json +156 -0
  33. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_walkins.json +1316 -0
  34. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +21446 -0
  35. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.unitary_acs.json +554 -0
  36. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.water_heaters.json +68 -0
  37. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.water_source_heat_pumps.json +28 -0
  38. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.water_source_heat_pumps_heating.json +12 -0
  39. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.boilers.json +49 -0
  40. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.chillers.json +293 -0
  41. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.construction_properties.json +12487 -0
  42. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.construction_sets.json +1600 -0
  43. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.economizers.json +564 -0
  44. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.elevators.json +349 -0
  45. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ext_ltg.json +164 -0
  46. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ground_temperatures.json +10663 -0
  47. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_pumps.json +466 -0
  48. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_pumps_heating.json +137 -0
  49. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_rejection.json +44 -0
  50. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.motors.json +184 -0
  51. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.prototype_inputs.json +3094 -0
  52. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ref_cases.json +829 -0
  53. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ref_lnup.json +562 -0
  54. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_compressors.json +52 -0
  55. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_condenser.json +220 -0
  56. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_system.json +156 -0
  57. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_walkins.json +1316 -0
  58. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +21380 -0
  59. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.unitary_acs.json +554 -0
  60. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.water_heaters.json +68 -0
  61. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.water_source_heat_pumps.json +28 -0
  62. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.water_source_heat_pumps_heating.json +12 -0
  63. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.boilers.json +49 -0
  64. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.chillers.json +395 -0
  65. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.construction_properties.json +12487 -0
  66. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.construction_sets.json +1600 -0
  67. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.economizers.json +592 -0
  68. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.elevators.json +349 -0
  69. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.energy_recovery.json +550 -0
  70. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ext_ltg.json +164 -0
  71. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ground_temperatures.json +10663 -0
  72. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_pumps.json +466 -0
  73. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_pumps_heating.json +137 -0
  74. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_rejection.json +44 -0
  75. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.motors.json +238 -0
  76. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.prototype_inputs.json +3094 -0
  77. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ref_cases.json +829 -0
  78. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ref_lnup.json +562 -0
  79. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_compressors.json +52 -0
  80. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_condenser.json +220 -0
  81. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_system.json +156 -0
  82. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_walkins.json +1316 -0
  83. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +21548 -0
  84. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.unitary_acs.json +554 -0
  85. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.water_heaters.json +68 -0
  86. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.water_source_heat_pumps.json +28 -0
  87. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.water_source_heat_pumps_heating.json +12 -0
  88. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.boilers.json +64 -0
  89. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.chillers.json +871 -0
  90. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.construction_properties.json +12487 -0
  91. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.construction_sets.json +1600 -0
  92. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.economizers.json +592 -0
  93. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.elevators.json +349 -0
  94. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.energy_recovery.json +1096 -0
  95. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ext_ltg.json +164 -0
  96. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ground_temperatures.json +10663 -0
  97. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_pumps.json +886 -0
  98. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_pumps_heating.json +194 -0
  99. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_rejection.json +44 -0
  100. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.motors.json +247 -0
  101. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.prototype_inputs.json +3094 -0
  102. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ref_cases.json +829 -0
  103. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ref_lnup.json +562 -0
  104. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_compressors.json +52 -0
  105. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_condenser.json +220 -0
  106. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_system.json +156 -0
  107. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_walkins.json +1316 -0
  108. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +22079 -0
  109. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.unitary_acs.json +994 -0
  110. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_heaters.json +68 -0
  111. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_source_heat_pumps.json +28 -0
  112. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_source_heat_pumps_heating.json +12 -0
  113. data/data/standards/manage_OpenStudio_Standards.rb +87 -37
  114. data/data/standards/metadata_units_OpenStudio_Standards-ashrae_90_1-ALL-comstockspace_types.csv +236 -0
  115. data/data/standards/metadata_units_OpenStudio_Standards-ashrae_90_1.csv +622 -0
  116. data/data/standards/metadata_units_OpenStudio_Standards-ashrae_90_1space_types.csv +191 -0
  117. data/data/standards/openstudio_standards_duplicates_log.csv +16 -25
  118. data/data/standards/test_performance_expected_dd_results.csv +1934 -1134
  119. data/lib/openstudio-standards.rb +68 -17
  120. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PumpVariableSpeed.rb +28 -0
  121. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.FanVariableVolume.rb +0 -1
  122. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.PumpVariableSpeed.rb +28 -0
  123. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Model.rb +53 -2
  124. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.PumpVariableSpeed.rb +29 -0
  125. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Model.rb +157 -2
  126. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.PumpVariableSpeed.rb +29 -0
  127. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +24 -0
  128. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.FanConstantVolume.rb +32 -0
  129. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.FanOnOff.rb +33 -0
  130. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.FanVariableVolume.rb +32 -0
  131. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.elevators.rb +25 -0
  132. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.rb +366 -0
  133. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.PumpVariableSpeed.rb +144 -0
  134. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.hvac_systems.rb +11 -0
  135. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +24 -0
  136. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.FanConstantVolume.rb +32 -0
  137. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.FanOnOff.rb +33 -0
  138. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.FanVariableVolume.rb +32 -0
  139. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.elevators.rb +25 -0
  140. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.rb +367 -0
  141. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.PumpVariableSpeed.rb +144 -0
  142. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.hvac_systems.rb +11 -0
  143. data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.AirTerminalSingleDuctVAVReheat.rb +0 -1
  144. data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirTerminalSingleDuctVAVReheat.rb +0 -1
  145. data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.HeatExchangerAirToAirSensibleAndLatent.rb +1 -1
  146. data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.Model.rb +1 -1
  147. data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.HeatExchangerAirToAirSensibleAndLatent.rb +1 -1
  148. data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Model.rb +1 -1
  149. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.College.rb +3 -3
  150. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Courthouse.rb +74 -0
  151. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.FullServiceRestaurant.rb +46 -30
  152. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.HighRiseApartment.rb +15 -7
  153. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Hospital.rb +26 -15
  154. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Laboratory.rb +8 -11
  155. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeDataCenterHighITE.rb +54 -60
  156. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeDataCenterLowITE.rb +56 -60
  157. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeHotel.rb +38 -12
  158. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOffice.rb +218 -134
  159. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOfficeDetailed.rb +6 -2
  160. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb +222 -133
  161. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOfficeDetailed.rb +60 -62
  162. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MidriseApartment.rb +25 -15
  163. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Outpatient.rb +34 -22
  164. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.PrimarySchool.rb +31 -7
  165. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.QuickServiceRestaurant.rb +43 -28
  166. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.RetailStandalone.rb +48 -38
  167. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.RetailStripmall.rb +9 -5
  168. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SecondarySchool.rb +567 -344
  169. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallDataCenterHighITE.rb +13 -19
  170. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallDataCenterLowITE.rb +13 -17
  171. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallHotel.rb +9 -5
  172. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOffice.rb +79 -51
  173. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOfficeDetailed.rb +60 -60
  174. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SuperMarket.rb +2 -4
  175. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SuperTallBuilding.rb +133 -120
  176. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.TallBuilding.rb +124 -112
  177. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Warehouse.rb +138 -66
  178. data/lib/openstudio-standards/prototypes/common/do_not_edit_metaclasses.rb +7275 -199
  179. data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirConditionerVariableRefrigerantFlow.rb +35 -35
  180. data/lib/openstudio-standards/prototypes/common/objects/Prototype.BoilerHotWater.rb +2 -2
  181. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CentralAirSourceHeatPump.rb +2 -2
  182. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXSingleSpeed.rb +3 -3
  183. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXTwoSpeed.rb +1 -1
  184. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWater.rb +2 -2
  185. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWaterToAirHeatPumpEquationFit.rb +2 -2
  186. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingDXSingleSpeed.rb +1 -1
  187. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingElectric.rb +2 -2
  188. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWater.rb +2 -2
  189. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWaterToAirHeatPumpEquationFit.rb +2 -2
  190. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoolingTower.rb +1 -1
  191. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Fan.rb +4 -3
  192. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanConstantVolume.rb +7 -8
  193. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanOnOff.rb +7 -8
  194. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanVariableVolume.rb +13 -14
  195. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanZoneExhaust.rb +7 -5
  196. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.elevators.rb +2 -0
  197. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.exterior_lights.rb +0 -1
  198. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.hvac.rb +25 -14
  199. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +474 -89
  200. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.swh.rb +35 -33
  201. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Pump.rb +3 -0
  202. data/lib/openstudio-standards/prototypes/common/objects/Prototype.PumpVariableSpeed.rb +72 -0
  203. data/lib/openstudio-standards/prototypes/common/objects/Prototype.ServiceWaterHeating.rb +120 -120
  204. data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +103 -125
  205. data/lib/openstudio-standards/prototypes/common/objects/Prototype.radiant_system_controls.rb +9 -3
  206. data/lib/openstudio-standards/prototypes/common/objects/Prototype.refrigeration.rb +11 -5
  207. data/lib/openstudio-standards/prototypes/common/objects/Prototype.utilities.rb +26 -14
  208. data/lib/openstudio-standards/prototypes/common/prototype_metaprogramming.rb +270 -247
  209. data/lib/openstudio-standards/prototypes/deer/deer.Model.rb +1 -1
  210. data/lib/openstudio-standards/refs/references.rb +5 -2
  211. data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +41 -28
  212. data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctVAVReheat.rb +0 -1
  213. data/lib/openstudio-standards/standards/Standards.BoilerHotWater.rb +0 -1
  214. data/lib/openstudio-standards/standards/Standards.BuildingStory.rb +1 -0
  215. data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +2 -4
  216. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXMultiSpeed.rb +8 -10
  217. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +4 -5
  218. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +0 -1
  219. data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +1 -1
  220. data/lib/openstudio-standards/standards/Standards.CoilDX.rb +12 -9
  221. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXMultiSpeed.rb +2 -1
  222. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXSingleSpeed.rb +3 -1
  223. data/lib/openstudio-standards/standards/Standards.CoilHeatingGas.rb +0 -3
  224. data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +4 -7
  225. data/lib/openstudio-standards/standards/Standards.CoilHeatingWaterToAirHeatPumpEquationFit.rb +1 -3
  226. data/lib/openstudio-standards/standards/Standards.Construction.rb +124 -118
  227. data/lib/openstudio-standards/standards/Standards.CoolingTower.rb +0 -1
  228. data/lib/openstudio-standards/standards/Standards.CoolingTowerSingleSpeed.rb +0 -1
  229. data/lib/openstudio-standards/standards/Standards.CoolingTowerTwoSpeed.rb +0 -1
  230. data/lib/openstudio-standards/standards/Standards.CoolingTowerVariableSpeed.rb +0 -1
  231. data/lib/openstudio-standards/standards/Standards.Fan.rb +0 -1
  232. data/lib/openstudio-standards/standards/Standards.FanConstantVolume.rb +0 -1
  233. data/lib/openstudio-standards/standards/Standards.FanOnOff.rb +0 -1
  234. data/lib/openstudio-standards/standards/Standards.FanVariableVolume.rb +2 -4
  235. data/lib/openstudio-standards/standards/Standards.FanZoneExhaust.rb +0 -1
  236. data/lib/openstudio-standards/standards/Standards.FluidCooler.rb +10 -3
  237. data/lib/openstudio-standards/standards/Standards.HeaderedPumpsConstantSpeed.rb +0 -1
  238. data/lib/openstudio-standards/standards/Standards.HeaderedPumpsVariableSpeed.rb +0 -1
  239. data/lib/openstudio-standards/standards/Standards.Model.rb +282 -253
  240. data/lib/openstudio-standards/standards/Standards.PlanarSurface.rb +2 -0
  241. data/lib/openstudio-standards/standards/Standards.PlantLoop.rb +11 -9
  242. data/lib/openstudio-standards/standards/Standards.Pump.rb +0 -1
  243. data/lib/openstudio-standards/standards/Standards.PumpConstantSpeed.rb +0 -1
  244. data/lib/openstudio-standards/standards/Standards.PumpVariableSpeed.rb +0 -1
  245. data/lib/openstudio-standards/standards/Standards.ScheduleCompact.rb +0 -1
  246. data/lib/openstudio-standards/standards/Standards.ScheduleConstant.rb +0 -1
  247. data/lib/openstudio-standards/standards/Standards.ScheduleRuleset.rb +103 -121
  248. data/lib/openstudio-standards/standards/Standards.Space.rb +42 -35
  249. data/lib/openstudio-standards/standards/Standards.SpaceType.rb +9 -17
  250. data/lib/openstudio-standards/standards/Standards.SubSurface.rb +25 -27
  251. data/lib/openstudio-standards/standards/Standards.Surface.rb +97 -52
  252. data/lib/openstudio-standards/standards/Standards.ThermalZone.rb +39 -21
  253. data/lib/openstudio-standards/standards/Standards.WaterHeaterMixed.rb +6 -7
  254. data/lib/openstudio-standards/standards/Standards.ZoneHVACComponent.rb +15 -10
  255. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1.Standards.FanVariableVolume.rb +0 -1
  256. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.AirLoopHVAC.rb +10 -2
  257. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.Model.rb +2 -2
  258. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/ashrae_90_1.schedules.json +63 -99
  259. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/comstock_ashrae_90_1_2004.ext_ltg.json +7 -7
  260. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.construction_properties.json +2420 -0
  261. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.economizers.json +32 -0
  262. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_rejection.json +9 -0
  263. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.prototype_inputs.json +68 -38
  264. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +105 -40
  265. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.AirLoopHVAC.rb +5 -1
  266. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/ashrae_90_1.schedules.json +63 -99
  267. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/comstock_ashrae_90_1_2007.ext_ltg.json +7 -7
  268. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.construction_properties.json +1460 -0
  269. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.economizers.json +32 -0
  270. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_rejection.json +9 -0
  271. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.prototype_inputs.json +68 -38
  272. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +104 -17
  273. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirLoopHVAC.rb +25 -13
  274. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Space.rb +1 -1
  275. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/ashrae_90_1.schedules.json +63 -99
  276. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/comstock_ashrae_90_1_2010.ext_ltg.json +7 -7
  277. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.construction_properties.json +1460 -0
  278. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.economizers.json +64 -0
  279. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.energy_recovery.json +52 -0
  280. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_rejection.json +9 -0
  281. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.prototype_inputs.json +68 -38
  282. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +112 -25
  283. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirLoopHVAC.rb +21 -7
  284. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.WaterHeaterMixed.rb +1 -1
  285. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/ashrae_90_1.schedules.json +63 -99
  286. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/comstock_ashrae_90_1_2013.ext_ltg.json +7 -7
  287. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.boilers.json +1 -1
  288. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.chillers.json +2 -2
  289. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.construction_properties.json +1460 -0
  290. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.economizers.json +64 -0
  291. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.energy_recovery.json +104 -0
  292. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_rejection.json +9 -0
  293. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.prototype_inputs.json +70 -40
  294. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +172 -55
  295. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_heaters.json +4 -4
  296. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_source_heat_pumps_heating.json +1 -1
  297. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirLoopHVAC.rb +456 -0
  298. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +24 -0
  299. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.CoolingTower.rb +19 -0
  300. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.CoolingTowerSingleSpeed.rb +5 -0
  301. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.CoolingTowerTwoSpeed.rb +5 -0
  302. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.CoolingTowerVariableSpeed.rb +16 -0
  303. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.FanVariableVolume.rb +37 -0
  304. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Space.rb +189 -0
  305. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.ThermalZone.rb +57 -0
  306. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.ZoneHVACComponent.rb +22 -0
  307. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.rb +16 -0
  308. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.boilers.json +68 -0
  309. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.chillers.json +490 -0
  310. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.construction_properties.json +21244 -0
  311. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.construction_sets.json +2111 -0
  312. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.economizers.json +676 -0
  313. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.elevators.json +372 -0
  314. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.energy_recovery.json +1096 -0
  315. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.ext_ltg.json +169 -0
  316. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.heat_pumps.json +532 -0
  317. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.heat_pumps_heating.json +164 -0
  318. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.heat_rejection.json +49 -0
  319. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.motors.json +274 -0
  320. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.prototype_inputs.json +3094 -0
  321. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.ref_cases.json +854 -0
  322. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.ref_lnup.json +562 -0
  323. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.refrigeration_compressors.json +58 -0
  324. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.refrigeration_condenser.json +238 -0
  325. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.refrigeration_system.json +12 -0
  326. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.refrigeration_walkins.json +1316 -0
  327. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.spc_typ.json +23067 -0
  328. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.unitary_acs.json +648 -0
  329. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.water_heaters.json +72 -0
  330. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.water_source_heat_pumps.json +31 -0
  331. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.water_source_heat_pumps_heating.json +13 -0
  332. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirLoopHVAC.rb +456 -0
  333. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +24 -0
  334. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoolingTower.rb +19 -0
  335. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoolingTowerSingleSpeed.rb +5 -0
  336. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoolingTowerTwoSpeed.rb +5 -0
  337. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoolingTowerVariableSpeed.rb +16 -0
  338. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.FanVariableVolume.rb +37 -0
  339. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Space.rb +189 -0
  340. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.ThermalZone.rb +57 -0
  341. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.ZoneHVACComponent.rb +22 -0
  342. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.rb +16 -0
  343. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.boilers.json +68 -0
  344. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.chillers.json +490 -0
  345. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.construction_properties.json +21244 -0
  346. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.construction_sets.json +2111 -0
  347. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.economizers.json +676 -0
  348. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.elevators.json +372 -0
  349. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.energy_recovery.json +1096 -0
  350. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.ext_ltg.json +169 -0
  351. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.heat_pumps.json +664 -0
  352. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.heat_pumps_heating.json +204 -0
  353. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.heat_rejection.json +49 -0
  354. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.motors.json +274 -0
  355. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.prototype_inputs.json +3094 -0
  356. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.ref_cases.json +854 -0
  357. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.ref_lnup.json +562 -0
  358. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.refrigeration_compressors.json +58 -0
  359. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.refrigeration_condenser.json +238 -0
  360. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.refrigeration_system.json +12 -0
  361. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.refrigeration_walkins.json +1316 -0
  362. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.spc_typ.json +23067 -0
  363. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.unitary_acs.json +671 -0
  364. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.water_heaters.json +72 -0
  365. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.water_source_heat_pumps.json +31 -0
  366. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.water_source_heat_pumps_heating.json +13 -0
  367. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.constructions.json +1662 -332
  368. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.materials.json +5049 -289
  369. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.schedules.json +1743 -161
  370. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/ashrae_90_1.schedules.json +63 -99
  371. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/comstock_doe_ref_1980_2004.ext_ltg.json +11 -11
  372. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.heat_rejection.json +9 -0
  373. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.prototype_inputs.json +8 -8
  374. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.spc_typ.json +9 -9
  375. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.Model.rb +4 -4
  376. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/ashrae_90_1.schedules.json +63 -99
  377. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/comstock_doe_ref_pre_1980.ext_ltg.json +10 -10
  378. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.heat_rejection.json +9 -0
  379. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.prototype_inputs.json +7 -7
  380. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.spc_typ.json +9 -9
  381. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.rb +4 -4
  382. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.heat_rejection.json +9 -0
  383. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirLoopHVAC.rb +0 -1
  384. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.Model.rb +4 -4
  385. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.PlantLoop.rb +1 -1
  386. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.ZoneHVACComponent.rb +1 -1
  387. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.heat_rejection.json +9 -0
  388. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.water_heaters.json +2 -2
  389. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirLoopHVAC.rb +3 -6
  390. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Model.rb +4 -4
  391. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.PlantLoop.rb +1 -1
  392. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.ZoneHVACComponent.rb +1 -1
  393. data/lib/openstudio-standards/standards/cbes/cbes.Model.rb +1 -3
  394. data/lib/openstudio-standards/standards/cbes/cbes.rb +1 -1
  395. data/lib/openstudio-standards/standards/deer/deer.AirLoopHVAC.rb +8 -13
  396. data/lib/openstudio-standards/standards/deer/deer.Model.rb +2 -2
  397. data/lib/openstudio-standards/standards/deer/deer.PlanarSurface.rb +2 -0
  398. data/lib/openstudio-standards/standards/deer/deer.Space.rb +1 -1
  399. data/lib/openstudio-standards/standards/deer/deer_2011/deer_2011.rb +0 -1
  400. data/lib/openstudio-standards/standards/deer/deer_2014/deer_2014.Space.rb +0 -1
  401. data/lib/openstudio-standards/standards/deer/deer_2014/deer_2014.rb +0 -1
  402. data/lib/openstudio-standards/standards/deer/deer_2015/deer_2015.Space.rb +0 -1
  403. data/lib/openstudio-standards/standards/deer/deer_2017/deer_2017.Space.rb +0 -1
  404. data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.AirLoopHVAC.rb +1 -1
  405. data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.FanVariableVolume.rb +1 -1
  406. data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.Space.rb +0 -1
  407. data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.AirLoopHVAC.rb +1 -1
  408. data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.FanVariableVolume.rb +1 -1
  409. data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.Space.rb +0 -1
  410. data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.AirLoopHVAC.rb +1 -1
  411. data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.FanVariableVolume.rb +1 -1
  412. data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.Space.rb +0 -1
  413. data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.AirLoopHVAC.rb +1 -1
  414. data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.FanVariableVolume.rb +1 -1
  415. data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.Space.rb +0 -1
  416. data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.AirLoopHVAC.rb +1 -1
  417. data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.FanVariableVolume.rb +1 -1
  418. data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.Space.rb +0 -1
  419. data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.AirLoopHVAC.rb +1 -1
  420. data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.FanVariableVolume.rb +1 -1
  421. data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.Space.rb +0 -1
  422. data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.AirLoopHVAC.rb +1 -1
  423. data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.FanVariableVolume.rb +1 -1
  424. data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.Space.rb +0 -1
  425. data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.AirLoopHVAC.rb +1 -1
  426. data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.FanVariableVolume.rb +1 -1
  427. data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.Space.rb +0 -1
  428. data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.AirLoopHVAC.rb +1 -1
  429. data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.FanVariableVolume.rb +1 -1
  430. data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.Space.rb +0 -1
  431. data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.AirLoopHVAC.rb +1 -1
  432. data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.FanVariableVolume.rb +1 -1
  433. data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.Space.rb +0 -1
  434. data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.AirLoopHVAC.rb +1 -1
  435. data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.FanVariableVolume.rb +1 -1
  436. data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.Space.rb +0 -1
  437. data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.AirLoopHVAC.rb +1 -1
  438. data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.FanVariableVolume.rb +1 -1
  439. data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.Space.rb +0 -1
  440. data/lib/openstudio-standards/standards/icc_iecc/icc_iecc_2015/icc_iecc_2015.rb +0 -1
  441. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/btap_pre1980.rb +28 -7
  442. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_3_and_8_single_speed.rb +16 -2
  443. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_4.rb +15 -0
  444. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_6.rb +14 -0
  445. data/lib/openstudio-standards/standards/necb/ECMS/data/erv.json +11 -7
  446. data/lib/openstudio-standards/standards/necb/ECMS/data/pv.json +112 -0
  447. data/lib/openstudio-standards/standards/necb/ECMS/data/unitary_acs.json +50 -0
  448. data/lib/openstudio-standards/standards/necb/ECMS/ecms.rb +21 -8
  449. data/lib/openstudio-standards/standards/necb/ECMS/erv.rb +17 -6
  450. data/lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb +142 -6
  451. data/lib/openstudio-standards/standards/necb/ECMS/nv.rb +189 -0
  452. data/lib/openstudio-standards/standards/necb/ECMS/pv_ground.rb +104 -0
  453. data/lib/openstudio-standards/standards/necb/NECB2011/building_envelope.rb +19 -13
  454. data/lib/openstudio-standards/standards/necb/NECB2011/data/erv.json +1 -1
  455. data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/LowriseApartment.osm +39278 -0
  456. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_single_speed.rb +17 -1
  457. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_2_and_5.rb +15 -0
  458. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_single_speed.rb +14 -2
  459. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_4.rb +13 -0
  460. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_6.rb +12 -0
  461. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +154 -12
  462. data/lib/openstudio-standards/standards/necb/NECB2011/lighting.rb +21 -3
  463. data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +140 -21
  464. data/lib/openstudio-standards/standards/necb/NECB2011/nv.md +74 -0
  465. data/lib/openstudio-standards/standards/necb/NECB2011/pv_ground.md +44 -0
  466. data/lib/openstudio-standards/standards/necb/NECB2011/qaqc/necb_qaqc.rb +2 -2
  467. data/lib/openstudio-standards/standards/necb/NECB2011/qaqc/qaqc_resources/neb_end_use_prices.csv +39 -84
  468. data/lib/openstudio-standards/standards/oeesc/oeesc_2014/oeesc_2014.rb +0 -1
  469. data/lib/openstudio-standards/standards/standard.rb +6 -5
  470. data/lib/openstudio-standards/utilities/Add_template_field_to_json.rb +3 -3
  471. data/lib/openstudio-standards/utilities/convert_surfaces_to_adiabatic_necb_8426.rb +54 -54
  472. data/lib/openstudio-standards/utilities/generate_prototype_database.rb +2 -2
  473. data/lib/openstudio-standards/utilities/generate_space_types.rb +3 -3
  474. data/lib/openstudio-standards/utilities/logging.rb +7 -7
  475. data/lib/openstudio-standards/utilities/necb_to_epw_map.rb +14 -14
  476. data/lib/openstudio-standards/utilities/os_sim_extract.rb +25 -25
  477. data/lib/openstudio-standards/utilities/rename_surfaces.rb +10 -13
  478. data/lib/openstudio-standards/utilities/round_surf_coords.rb +18 -20
  479. data/lib/openstudio-standards/utilities/sched_create.rb +39 -41
  480. data/lib/openstudio-standards/utilities/set_mult_to_adiabatic.rb +31 -31
  481. data/lib/openstudio-standards/utilities/simulation.rb +5 -3
  482. data/lib/openstudio-standards/utilities/speacetype_map_converter.rb +10 -11
  483. data/lib/openstudio-standards/utilities/sqlfile.rb +6 -8
  484. data/lib/openstudio-standards/utilities/template_measure/measure.rb +108 -0
  485. data/lib/openstudio-standards/utilities/template_measure/measure.xml +162 -0
  486. data/lib/openstudio-standards/utilities/template_measure/resources/BTAPMeasureHelper.rb +448 -0
  487. data/lib/openstudio-standards/utilities/template_measure/tests/test.rb +160 -0
  488. data/lib/openstudio-standards/utilities/weatherData1_xlsx_to_json.rb +23 -26
  489. data/lib/openstudio-standards/version.rb +1 -1
  490. data/lib/openstudio-standards/weather/Weather.Model.rb +74 -80
  491. data/lib/openstudio-standards/weather/Weather.stat_file.rb +17 -17
  492. metadata +217 -2
@@ -1,10 +1,8 @@
1
-
2
- # Custom changes for the QuickServiceRestaurant prototype.
1
+ # Custom changes for the SmallDataCenterHighITE prototype.
3
2
  # These are changes that are inconsistent with other prototype
4
3
  # building types.
5
4
  module SmallDataCenterHighITE
6
5
  def model_custom_hvac_tweaks(building_type, climate_zone, prototype_input, model)
7
-
8
6
  OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Started building type specific adjustments')
9
7
 
10
8
  # add IT equipment (ITE object) for data center building types
@@ -19,12 +17,10 @@ module SmallDataCenterHighITE
19
17
  return true
20
18
  end
21
19
 
22
-
23
20
  # add IT equipment (ITE object) for data center building types
24
21
  # Normal electric equipment has been added in model_add_load prior to this
25
22
  # will replace with ITE object here
26
23
  def add_data_center_load(model)
27
-
28
24
  model.getSpaceTypes.each do |space_type|
29
25
  # Get the standards data
30
26
  space_type_properties = space_type_get_standards_data(space_type)
@@ -34,27 +30,27 @@ module SmallDataCenterHighITE
34
30
  elec_equip_sch = space_type_properties['electric_equipment_schedule']
35
31
  elec_equip_have_info = true unless elec_equip_per_area.zero?
36
32
 
37
- it_fan_power_ratio = 0.4/(1+0.4) # assuming IT fan power is 0.4 of total CPU load
33
+ it_fan_power_ratio = 0.4 / (1 + 0.4) # assuming IT fan power is 0.4 of total CPU load
38
34
 
39
- if (space_type.name.get.downcase.include?('computer')) || (space_type.name.get.downcase.include?('datacenter'))
35
+ if space_type.name.get.downcase.include?('computer') || space_type.name.get.downcase.include?('datacenter')
40
36
  if elec_equip_have_info
41
37
  it_equipment_def = OpenStudio::Model::ElectricEquipmentITEAirCooledDefinition.new(model)
42
- it_equipment_def.setName("IT equipment def")
38
+ it_equipment_def.setName('IT equipment def')
43
39
  it_equipment_def.setWattsperZoneFloorArea(OpenStudio.convert(elec_equip_per_area.to_f, 'W/ft^2', 'W/m^2').get)
44
40
  it_equipment_def.setDesignFanAirFlowRateperPowerInput(0.0001)
45
41
  it_equipment_def.setDesignFanPowerInputFraction(it_fan_power_ratio)
46
- it_equipment_def.setDesignEnteringAirTemperature(22.5) # recommended SAT 18-27C, use the middle T as design
47
- it_equipment_def.setAirFlowCalculationMethod("FlowControlWithApproachTemperatures")
42
+ it_equipment_def.setDesignEnteringAirTemperature(22.5) # recommended SAT 18-27C, use the middle T as design
43
+ it_equipment_def.setAirFlowCalculationMethod('FlowControlWithApproachTemperatures')
48
44
  # Set the approach temperatures based on CFD simulation results
49
- it_equipment_def.setSupplyTemperatureDifference(9.94) # This is under fully open configuration assumption, based on the lookup table in scorecard
50
- it_equipment_def.setReturnTemperatureDifference(-7.21) # This is under fully open configuration assumption, based on the lookup table in scorecard
45
+ it_equipment_def.setSupplyTemperatureDifference(9.94) # This is under fully open configuration assumption, based on the lookup table in scorecard
46
+ it_equipment_def.setReturnTemperatureDifference(-7.21) # This is under fully open configuration assumption, based on the lookup table in scorecard
51
47
  # after the bug in OpenStudio core is fixed, this temperature schedules was enabled
52
- it_equipment_def.setSupplyTemperatureDifferenceSchedule(model_add_schedule(model, 'SmallDataCenterHighITE SupplyApproachTemp_SCH')) # This is under fully open configuration assumption, based on the lookup table in scorecard
48
+ it_equipment_def.setSupplyTemperatureDifferenceSchedule(model_add_schedule(model, 'SmallDataCenterHighITE SupplyApproachTemp_SCH')) # This is under fully open configuration assumption, based on the lookup table in scorecard
53
49
  it_equipment_def.setReturnTemperatureDifferenceSchedule(model_add_schedule(model, 'SmallDataCenterHighITE ReturnApproachTemp_SCH'))
54
50
 
55
51
  it_equipment = OpenStudio::Model::ElectricEquipmentITEAirCooled.new(it_equipment_def)
56
52
  it_equipment.setSpaceType(space_type)
57
- it_equipment.setName("#{space_type.name.to_s} IT equipment")
53
+ it_equipment.setName("#{space_type.name} IT equipment")
58
54
  unless elec_equip_sch.nil?
59
55
  it_equipment.setDesignPowerInputSchedule(model_add_schedule(model, elec_equip_sch))
60
56
  OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.SpaceType', "#{space_type.name} set Design Power Input Schedule to #{elec_equip_sch}.")
@@ -72,6 +68,7 @@ module SmallDataCenterHighITE
72
68
  supply_temp_sch = get_crac_supply_temp_sch(model)
73
69
  model.getSetpointManagerScheduleds.each do |stpt_manager|
74
70
  next unless stpt_manager.name.to_s.downcase == 'crac supply air setpoint manager'
71
+
75
72
  stpt_manager.setSchedule(supply_temp_sch)
76
73
  end
77
74
  end
@@ -109,22 +106,19 @@ module SmallDataCenterHighITE
109
106
  supply_temp_diff_max = it_equip.supplyTemperatureDifference if it_equip.supplyTemperatureDifference > supply_temp_diff_max
110
107
  if supply_temp_diff_max > 0
111
108
  supply_temp_sch = model_add_constant_schedule_ruleset(model,
112
- it_equip.designEnteringAirTemperature-supply_temp_diff_max,
113
- name = "AHU Supply Temp Sch updated")
109
+ it_equip.designEnteringAirTemperature - supply_temp_diff_max,
110
+ name = 'AHU Supply Temp Sch updated')
114
111
  end
115
112
  end
116
113
 
117
114
  return supply_temp_sch
118
115
  end
119
116
 
120
-
121
117
  def model_custom_swh_tweaks(model, building_type, climate_zone, prototype_input)
122
-
123
118
  return true
124
119
  end
125
120
 
126
121
  def model_custom_geometry_tweaks(building_type, climate_zone, prototype_input, model)
127
-
128
122
  return true
129
123
  end
130
124
  end
@@ -1,10 +1,8 @@
1
-
2
- # Custom changes for the QuickServiceRestaurant prototype.
1
+ # Custom changes for the SmallDataCenterLowITE prototype.
3
2
  # These are changes that are inconsistent with other prototype
4
3
  # building types.
5
4
  module SmallDataCenterLowITE
6
5
  def model_custom_hvac_tweaks(building_type, climate_zone, prototype_input, model)
7
-
8
6
  OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Started building type specific adjustments')
9
7
 
10
8
  # add IT equipment (ITE object) for data center building types
@@ -23,7 +21,6 @@ module SmallDataCenterLowITE
23
21
  # Normal electric equipment has been added in model_add_load prior to this
24
22
  # will replace with ITE object here
25
23
  def add_data_center_load(model)
26
-
27
24
  model.getSpaceTypes.each do |space_type|
28
25
  # Get the standards data
29
26
  space_type_properties = space_type_get_standards_data(space_type)
@@ -33,27 +30,27 @@ module SmallDataCenterLowITE
33
30
  elec_equip_sch = space_type_properties['electric_equipment_schedule']
34
31
  elec_equip_have_info = true unless elec_equip_per_area.zero?
35
32
 
36
- it_fan_power_ratio = 0.4/(1+0.4) # assuming IT fan power is 0.4 of total CPU load
33
+ it_fan_power_ratio = 0.4 / (1 + 0.4) # assuming IT fan power is 0.4 of total CPU load
37
34
 
38
- if (space_type.name.get.downcase.include?('computer')) || (space_type.name.get.downcase.include?('datacenter'))
35
+ if space_type.name.get.downcase.include?('computer') || space_type.name.get.downcase.include?('datacenter')
39
36
  if elec_equip_have_info
40
37
  it_equipment_def = OpenStudio::Model::ElectricEquipmentITEAirCooledDefinition.new(model)
41
- it_equipment_def.setName("IT equipment def")
38
+ it_equipment_def.setName('IT equipment def')
42
39
  it_equipment_def.setWattsperZoneFloorArea(OpenStudio.convert(elec_equip_per_area.to_f, 'W/ft^2', 'W/m^2').get)
43
40
  it_equipment_def.setDesignFanAirFlowRateperPowerInput(0.0001)
44
41
  it_equipment_def.setDesignFanPowerInputFraction(it_fan_power_ratio)
45
- it_equipment_def.setDesignEnteringAirTemperature(22.5) # recommended SAT 18-27C, use the middle T as design
46
- it_equipment_def.setAirFlowCalculationMethod("FlowControlWithApproachTemperatures")
42
+ it_equipment_def.setDesignEnteringAirTemperature(22.5) # recommended SAT 18-27C, use the middle T as design
43
+ it_equipment_def.setAirFlowCalculationMethod('FlowControlWithApproachTemperatures')
47
44
  # Set the approach temperatures based on CFD simulation results
48
- it_equipment_def.setSupplyTemperatureDifference(10.21) # This is under fully open configuration assumption, based on the lookup table in scorecard
49
- it_equipment_def.setReturnTemperatureDifference(-7.04) # This is under fully open configuration assumption, based on the lookup table in scorecard
45
+ it_equipment_def.setSupplyTemperatureDifference(10.21) # This is under fully open configuration assumption, based on the lookup table in scorecard
46
+ it_equipment_def.setReturnTemperatureDifference(-7.04) # This is under fully open configuration assumption, based on the lookup table in scorecard
50
47
  # after the bug in OpenStudio core is fixed, this temperature schedules was enabled
51
- it_equipment_def.setSupplyTemperatureDifferenceSchedule(model_add_schedule(model, 'SmallDataCenterLowITE SupplyApproachTemp_SCH')) # This is under fully open configuration assumption, based on the lookup table in scorecard
48
+ it_equipment_def.setSupplyTemperatureDifferenceSchedule(model_add_schedule(model, 'SmallDataCenterLowITE SupplyApproachTemp_SCH')) # This is under fully open configuration assumption, based on the lookup table in scorecard
52
49
  it_equipment_def.setReturnTemperatureDifferenceSchedule(model_add_schedule(model, 'SmallDataCenterLowITE ReturnApproachTemp_SCH'))
53
50
 
54
51
  it_equipment = OpenStudio::Model::ElectricEquipmentITEAirCooled.new(it_equipment_def)
55
52
  it_equipment.setSpaceType(space_type)
56
- it_equipment.setName("#{space_type.name.to_s} IT equipment")
53
+ it_equipment.setName("#{space_type.name} IT equipment")
57
54
  unless elec_equip_sch.nil?
58
55
  it_equipment.setDesignPowerInputSchedule(model_add_schedule(model, elec_equip_sch))
59
56
  OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.SpaceType', "#{space_type.name} set Design Power Input Schedule to #{elec_equip_sch}.")
@@ -71,6 +68,7 @@ module SmallDataCenterLowITE
71
68
  supply_temp_sch = get_crac_supply_temp_sch(model)
72
69
  model.getSetpointManagerScheduleds.each do |stpt_manager|
73
70
  next unless stpt_manager.name.to_s.downcase == 'crac supply air setpoint manager'
71
+
74
72
  stpt_manager.setSchedule(supply_temp_sch)
75
73
  end
76
74
  end
@@ -108,8 +106,8 @@ module SmallDataCenterLowITE
108
106
  supply_temp_diff_max = it_equip.supplyTemperatureDifference if it_equip.supplyTemperatureDifference > supply_temp_diff_max
109
107
  if supply_temp_diff_max > 0
110
108
  supply_temp_sch = model_add_constant_schedule_ruleset(model,
111
- it_equip.designEnteringAirTemperature-supply_temp_diff_max,
112
- name = "AHU Supply Temp Sch updated")
109
+ it_equip.designEnteringAirTemperature - supply_temp_diff_max,
110
+ name = 'AHU Supply Temp Sch updated')
113
111
  end
114
112
  end
115
113
 
@@ -117,12 +115,10 @@ module SmallDataCenterLowITE
117
115
  end
118
116
 
119
117
  def model_custom_swh_tweaks(model, building_type, climate_zone, prototype_input)
120
-
121
118
  return true
122
119
  end
123
120
 
124
121
  def model_custom_geometry_tweaks(building_type, climate_zone, prototype_input, model)
125
-
126
122
  return true
127
123
  end
128
124
  end
@@ -1,4 +1,3 @@
1
-
2
1
  # Custom changes for the SmallHotel prototype.
3
2
  # These are changes that are inconsistent with other prototype
4
3
  # building types.
@@ -49,6 +48,9 @@ module SmallHotel
49
48
 
50
49
  OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Finished building type specific adjustments')
51
50
 
51
+ # Guestroom vacancy controls
52
+ model_add_guestroom_vacancy_controls(model, 'SmallHotel')
53
+
52
54
  return true
53
55
  end
54
56
 
@@ -65,7 +67,7 @@ module SmallHotel
65
67
  elec_equip.setName('Elevator Coreflr1 Elevator Lights/Fans Equipment')
66
68
  elec_equip.setSpace(elevator_coreflr1)
67
69
  case template
68
- when '90.1-2004', '90.1-2007', '90.1-2010', '90.1-2013'
70
+ when '90.1-2004', '90.1-2007', '90.1-2010', '90.1-2013', '90.1-2016', '90.1-2019'
69
71
  # add elevator lift motor (not found in small hotel)
70
72
  elec_equip_def2 = OpenStudio::Model::ElectricEquipmentDefinition.new(model)
71
73
  elec_equip_def2.setName('Elevator CoreFlr1 Electric Equipment Definition2')
@@ -81,7 +83,7 @@ module SmallHotel
81
83
  case template
82
84
  when '90.1-2004', '90.1-2007'
83
85
  elec_equip.setSchedule(model_add_schedule(model, 'HotelSmall ELEV_LIGHT_FAN_SCH_24_7'))
84
- when '90.1-2010', '90.1-2013'
86
+ when '90.1-2010', '90.1-2013', '90.1-2016', '90.1-2019'
85
87
  elec_equip.setSchedule(model_add_schedule(model, 'HotelSmall ELEV_LIGHT_FAN_SCH_ADD_DF'))
86
88
  end
87
89
 
@@ -93,9 +95,9 @@ module SmallHotel
93
95
 
94
96
  def update_waterheater_ambient_parameters(model)
95
97
  model.getWaterHeaterMixeds.sort.each do |water_heater|
96
- if water_heater.name.to_s.include?('200gal')
98
+ if water_heater.name.to_s.include?('200gal')
97
99
  water_heater.resetAmbientTemperatureSchedule
98
- water_heater.setAmbientTemperatureIndicator('ThermalZone')
100
+ water_heater.setAmbientTemperatureIndicator('ThermalZone')
99
101
  water_heater.setAmbientTemperatureThermalZone(model.getThermalZoneByName('LaundryRoomFlr1 ZN').get)
100
102
  end
101
103
  end
@@ -108,6 +110,8 @@ module SmallHotel
108
110
  end
109
111
 
110
112
  def model_custom_geometry_tweaks(building_type, climate_zone, prototype_input, model)
113
+ # Set original building North axis
114
+ model_set_building_north_axis(model, 90.0)
111
115
 
112
116
  return true
113
117
  end
@@ -1,4 +1,3 @@
1
-
2
1
  # Custom changes for the SmallOffice prototype.
3
2
  # These are changes that are inconsistent with other prototype
4
3
  # building types.
@@ -14,7 +13,7 @@ module SmallOffice
14
13
 
15
14
  # reset defrost time fraction
16
15
  # TODO: set this to a reasonable defrost time fraction based on research and implement in Prototype.CoilHeatingDXSingleSpeed
17
- model.getCoilHeatingDXSingleSpeeds.each { |coil| coil.resetDefrostTimePeriodFraction }
16
+ model.getCoilHeatingDXSingleSpeeds.each(&:resetDefrostTimePeriodFraction)
18
17
 
19
18
  return true
20
19
  end
@@ -29,13 +28,17 @@ module SmallOffice
29
28
  if template == '90.1-2004'
30
29
  infiltration_per_zone_entrydoor = 0.129785425
31
30
  infiltration_entrydoor.setSchedule(model_add_schedule(model, 'OfficeSmall INFIL_Door_Opening_SCH'))
32
- elsif template == '90.1-2007' || template == '90.1-2010'|| template == '90.1-2013'
31
+ elsif template == '90.1-2007' || template == '90.1-2010' || template == '90.1-2013' || template == '90.1-2016' || template == '90.1-2019'
33
32
  case climate_zone
34
- when 'ASHRAE 169-2006-1A',
33
+ when 'ASHRAE 169-2006-0A',
34
+ 'ASHRAE 169-2006-1A',
35
+ 'ASHRAE 169-2006-0B',
35
36
  'ASHRAE 169-2006-1B',
36
37
  'ASHRAE 169-2006-2A',
37
38
  'ASHRAE 169-2006-2B',
39
+ 'ASHRAE 169-2013-0A',
38
40
  'ASHRAE 169-2013-1A',
41
+ 'ASHRAE 169-2013-0B',
39
42
  'ASHRAE 169-2013-1B',
40
43
  'ASHRAE 169-2013-2A',
41
44
  'ASHRAE 169-2013-2B'
@@ -76,61 +79,85 @@ module SmallOffice
76
79
  OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Adjusting daylight sensor positions and fractions')
77
80
 
78
81
  adjustments = [
79
- { '90.1-2010' => { 'Perimeter_ZN_1' => { 'sensor_1_frac' => 0.02,
80
- 'sensor_2_frac' => 0.1,
81
- 'sensor_1_xyz' => [3.3236, 1.6002, 0.762],
82
- 'sensor_2_xyz' => [8.9611, 1.6002, 0.762],
83
- },
84
- 'Perimeter_ZN_2' => { 'sensor_1_frac' => 0.06,
85
- 'sensor_2_frac' => 0.15,
86
- 'sensor_1_xyz' => [26.0898, 3.3236, 0.762],
87
- 'sensor_2_xyz' => [26.0898, 9.23, 0.762],
88
- },
89
- 'Perimeter_ZN_3' => { 'sensor_1_frac' => 0.1,
90
- 'sensor_2_frac' => 0.02,
91
- 'sensor_1_xyz' => [13.8684, 16.8598, 0.762],
92
- 'sensor_2_xyz' => [24.3664, 16.8598, 0.762],
93
- },
94
- 'Perimeter_ZN_4' => { 'sensor_1_frac' => 0.06,
95
- 'sensor_2_frac' => 0.15,
96
- 'sensor_1_xyz' => [1.6002, 15.1364, 0.762],
97
- 'sensor_2_xyz' => [1.6002, 9.2446, 0.762],
98
- },
99
- },
100
- '90.1-2013' => { 'Perimeter_ZN_1' => { 'sensor_1_frac' => 0.2399,
101
- 'sensor_2_frac' => 0.0302,
102
- 'sensor_1_xyz' => [9.144, 1.6337, 0.762],
103
- 'sensor_2_xyz' => [9.144, 3.2675, 0.762],
104
- },
105
- 'Perimeter_ZN_2' => { 'sensor_1_frac' => 0.2399,
106
- 'sensor_2_frac' => 0.0302,
107
- 'sensor_1_xyz' => [26.0898, 9.144, 0.762],
108
- 'sensor_2_xyz' => [24.4561, 9.144, 0.762],
109
- },
110
- 'Perimeter_ZN_3' => { 'sensor_1_frac' => 0.2399,
111
- 'sensor_2_frac' => 0.0302,
112
- 'sensor_1_xyz' => [18.288, 16.825, 0.762],
113
- 'sensor_2_xyz' => [18.288, 15.1925, 0.762],
114
- },
115
- 'Perimeter_ZN_4' => { 'sensor_1_frac' => 0.2399,
116
- 'sensor_2_frac' => 0.0302,
117
- 'sensor_1_xyz' => [1.6337, 9.144, 0.762],
118
- 'sensor_2_xyz' => [3.2675, 9.144, 0.762],
119
- },
120
- },
121
- }
122
- ]
82
+ { '90.1-2010' => { 'Perimeter_ZN_1' => { 'sensor_1_frac' => 0.02,
83
+ 'sensor_2_frac' => 0.1,
84
+ 'sensor_1_xyz' => [3.3236, 1.6002, 0.762],
85
+ 'sensor_2_xyz' => [8.9611, 1.6002, 0.762] },
86
+ 'Perimeter_ZN_2' => { 'sensor_1_frac' => 0.06,
87
+ 'sensor_2_frac' => 0.15,
88
+ 'sensor_1_xyz' => [26.0898, 3.3236, 0.762],
89
+ 'sensor_2_xyz' => [26.0898, 9.23, 0.762] },
90
+ 'Perimeter_ZN_3' => { 'sensor_1_frac' => 0.1,
91
+ 'sensor_2_frac' => 0.02,
92
+ 'sensor_1_xyz' => [13.8684, 16.8598, 0.762],
93
+ 'sensor_2_xyz' => [24.3664, 16.8598, 0.762] },
94
+ 'Perimeter_ZN_4' => { 'sensor_1_frac' => 0.06,
95
+ 'sensor_2_frac' => 0.15,
96
+ 'sensor_1_xyz' => [1.6002, 15.1364, 0.762],
97
+ 'sensor_2_xyz' => [1.6002, 9.2446, 0.762] } },
98
+ '90.1-2013' => { 'Perimeter_ZN_1' => { 'sensor_1_frac' => 0.2399,
99
+ 'sensor_2_frac' => 0.0302,
100
+ 'sensor_1_xyz' => [9.144, 1.6337, 0.762],
101
+ 'sensor_2_xyz' => [9.144, 3.2675, 0.762] },
102
+ 'Perimeter_ZN_2' => { 'sensor_1_frac' => 0.2399,
103
+ 'sensor_2_frac' => 0.0302,
104
+ 'sensor_1_xyz' => [26.0898, 9.144, 0.762],
105
+ 'sensor_2_xyz' => [24.4561, 9.144, 0.762] },
106
+ 'Perimeter_ZN_3' => { 'sensor_1_frac' => 0.2399,
107
+ 'sensor_2_frac' => 0.0302,
108
+ 'sensor_1_xyz' => [18.288, 16.825, 0.762],
109
+ 'sensor_2_xyz' => [18.288, 15.1925, 0.762] },
110
+ 'Perimeter_ZN_4' => { 'sensor_1_frac' => 0.2399,
111
+ 'sensor_2_frac' => 0.0302,
112
+ 'sensor_1_xyz' => [1.6337, 9.144, 0.762],
113
+ 'sensor_2_xyz' => [3.2675, 9.144, 0.762] } },
114
+ '90.1-2016' => { 'Perimeter_ZN_1' => { 'sensor_1_frac' => 0.2399,
115
+ 'sensor_2_frac' => 0.0302,
116
+ 'sensor_1_xyz' => [9.144, 1.6337, 0.762],
117
+ 'sensor_2_xyz' => [9.144, 3.2675, 0.762] },
118
+ 'Perimeter_ZN_2' => { 'sensor_1_frac' => 0.2399,
119
+ 'sensor_2_frac' => 0.0302,
120
+ 'sensor_1_xyz' => [26.0898, 9.144, 0.762],
121
+ 'sensor_2_xyz' => [24.4561, 9.144, 0.762] },
122
+ 'Perimeter_ZN_3' => { 'sensor_1_frac' => 0.2399,
123
+ 'sensor_2_frac' => 0.0302,
124
+ 'sensor_1_xyz' => [18.288, 16.825, 0.762],
125
+ 'sensor_2_xyz' => [18.288, 15.1925, 0.762] },
126
+ 'Perimeter_ZN_4' => { 'sensor_1_frac' => 0.2399,
127
+ 'sensor_2_frac' => 0.0302,
128
+ 'sensor_1_xyz' => [1.6337, 9.144, 0.762],
129
+ 'sensor_2_xyz' => [3.2675, 9.144, 0.762] } },
130
+ '90.1-2019' => { 'Perimeter_ZN_1' => { 'sensor_1_frac' => 0.2399,
131
+ 'sensor_2_frac' => 0.0302,
132
+ 'sensor_1_xyz' => [9.144, 1.6337, 0.762],
133
+ 'sensor_2_xyz' => [9.144, 3.2675, 0.762] },
134
+ 'Perimeter_ZN_2' => { 'sensor_1_frac' => 0.2399,
135
+ 'sensor_2_frac' => 0.0302,
136
+ 'sensor_1_xyz' => [26.0898, 9.144, 0.762],
137
+ 'sensor_2_xyz' => [24.4561, 9.144, 0.762] },
138
+ 'Perimeter_ZN_3' => { 'sensor_1_frac' => 0.2399,
139
+ 'sensor_2_frac' => 0.0302,
140
+ 'sensor_1_xyz' => [18.288, 16.825, 0.762],
141
+ 'sensor_2_xyz' => [18.288, 15.1925, 0.762] },
142
+ 'Perimeter_ZN_4' => { 'sensor_1_frac' => 0.2399,
143
+ 'sensor_2_frac' => 0.0302,
144
+ 'sensor_1_xyz' => [1.6337, 9.144, 0.762],
145
+ 'sensor_2_xyz' => [3.2675, 9.144, 0.762] } } }
146
+ ]
123
147
 
124
148
  # Adjust daylight sensors in each space
125
149
  model.getSpaces.each do |space|
126
- if adjustments[0].keys.include? (template)
127
- if adjustments[0][template].keys.include? (space.name.to_s)
150
+ if adjustments[0].keys.include?(template)
151
+ if adjustments[0][template].keys.include?(space.name.to_s)
128
152
  adj = adjustments[0][template][space.name.to_s]
129
153
  next if space.thermalZone.empty?
154
+
130
155
  zone = space.thermalZone.get
131
156
  next if space.spaceType.empty?
157
+
132
158
  spc_type = space.spaceType.get
133
159
  next if spc_type.standardsSpaceType.empty?
160
+
134
161
  stds_spc_type = spc_type.standardsSpaceType.get
135
162
  # Adjust the primary sensor
136
163
  if adj['sensor_1_frac'] && zone.primaryDaylightingControl.is_initialized
@@ -170,11 +197,12 @@ module SmallOffice
170
197
  end
171
198
 
172
199
  def model_custom_swh_tweaks(model, building_type, climate_zone, prototype_input)
173
-
174
200
  return true
175
201
  end
176
202
 
177
203
  def model_custom_geometry_tweaks(building_type, climate_zone, prototype_input, model)
204
+ # Set original building North axis
205
+ model_set_building_north_axis(model, 0.0)
178
206
 
179
207
  return true
180
208
  end
@@ -1,5 +1,4 @@
1
-
2
- # Custom changes for the SmallOffice prototype.
1
+ # Custom changes for the SmallOfficeDetailed prototype.
3
2
  # These are changes that are inconsistent with other prototype
4
3
  # building types.
5
4
  module SmallOfficeDetailed
@@ -14,7 +13,7 @@ module SmallOfficeDetailed
14
13
 
15
14
  # reset defrost time fraction
16
15
  # TODO: set this to a reasonable defrost time fraction based on research and implement in Prototype.CoilHeatingDXSingleSpeed
17
- model.getCoilHeatingDXSingleSpeeds.each { |coil| coil.resetDefrostTimePeriodFraction }
16
+ model.getCoilHeatingDXSingleSpeeds.each(&:resetDefrostTimePeriodFraction)
18
17
 
19
18
  return true
20
19
  end
@@ -29,7 +28,7 @@ module SmallOfficeDetailed
29
28
  if template == '90.1-2004'
30
29
  infiltration_per_zone_entrydoor = 0.129785425
31
30
  infiltration_entrydoor.setSchedule(model_add_schedule(model, 'OfficeSmall INFIL_Door_Opening_SCH'))
32
- elsif template == '90.1-2007' || template == '90.1-2010'|| template == '90.1-2013'
31
+ elsif template == '90.1-2007' || template == '90.1-2010' || template == '90.1-2013' || template == '90.1-2016' || template == '90.1-2019'
33
32
  case climate_zone
34
33
  when 'ASHRAE 169-2006-1A', 'ASHRAE 169-2006-2A', 'ASHRAE 169-2006-1B', 'ASHRAE 169-2006-2B'
35
34
  infiltration_per_zone_entrydoor = 0.129785425
@@ -65,65 +64,64 @@ module SmallOfficeDetailed
65
64
  end
66
65
  end
67
66
 
68
- # def model_custom_daylighting_tweaks(building_type, climate_zone, prototype_input, model)
69
- # OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Adjusting daylight sensor positions and fractions')
70
- #
71
- # adjustments = [
72
- # { 'stds_spc_type' => 'WholeBuilding - Sm Office',
73
- # 'sensor_1_frac' => 0.2399,
74
- # 'sensor_2_frac' => 0.0302,
75
- # }
76
- # ]
77
- #
78
- # # Adjust daylight sensors in each space
79
- # model.getSpaces.each do |space|
80
- # next if space.thermalZone.empty?
81
- # zone = space.thermalZone.get
82
- # next if space.spaceType.empty?
83
- # spc_type = space.spaceType.get
84
- # next if spc_type.standardsSpaceType.empty?
85
- # stds_spc_type = spc_type.standardsSpaceType.get
86
- # adjustments.each do |adj|
87
- # next unless adj['stds_spc_type'] == stds_spc_type
88
- # # Adjust the primary sensor
89
- # if adj['sensor_1_frac'] && zone.primaryDaylightingControl.is_initialized
90
- # OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', "For #{zone.name}: Adjusting primary daylight sensor to control #{adj['sensor_1_frac']} of the lighting.")
91
- # zone.setFractionofZoneControlledbyPrimaryDaylightingControl(adj['sensor_1_frac'])
92
- # pri_ctrl = zone.primaryDaylightingControl.get
93
- # if adj['sensor_1_xyz']
94
- # x = adj['sensor_1_xyz'][0]
95
- # y = adj['sensor_1_xyz'][1]
96
- # z = adj['sensor_1_xyz'][2]
97
- # OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', "For #{zone.name}: Adjusting primary daylight sensor position to [#{x}, #{y}, #{z}].")
98
- # pri_ctrl.setPositionXCoordinate(x)
99
- # pri_ctrl.setPositionYCoordinate(y)
100
- # pri_ctrl.setPositionZCoordinate(z)
101
- # end
102
- # end
103
- # Adjust the secondary sensor
104
- # if adj['sensor_2_frac'] && zone.secondaryDaylightingControl.is_initialized
105
- # OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', "For #{zone.name}: Adjusting secondary daylight sensor to control #{adj['sensor_2_frac']} of the lighting.")
106
- # zone.setFractionofZoneControlledbySecondaryDaylightingControl(adj['sensor_2_frac'])
107
- # sec_ctrl = zone.secondaryDaylightingControl.get
108
- # if adj['sensor_2_xyz']
109
- # x = adj['sensor_2_xyz'][0]
110
- # y = adj['sensor_2_xyz'][1]
111
- # z = adj['sensor_2_xyz'][2]
112
- # OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', "For #{zone.name}: Adjusting secondary daylight sensor position to [#{x}, #{y}, #{z}].")
113
- # sec_ctrl.setPositionXCoordinate(x)
114
- # sec_ctrl.setPositionYCoordinate(y)
115
- # sec_ctrl.setPositionZCoordinate(z)
116
- # end
117
- # end
118
-
119
- # end
120
- # end
121
- # return true
122
- # end
67
+ # def model_custom_daylighting_tweaks(building_type, climate_zone, prototype_input, model)
68
+ # OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Adjusting daylight sensor positions and fractions')
69
+ #
70
+ # adjustments = [
71
+ # { 'stds_spc_type' => 'WholeBuilding - Sm Office',
72
+ # 'sensor_1_frac' => 0.2399,
73
+ # 'sensor_2_frac' => 0.0302,
74
+ # }
75
+ # ]
76
+ #
77
+ # # Adjust daylight sensors in each space
78
+ # model.getSpaces.each do |space|
79
+ # next if space.thermalZone.empty?
80
+ # zone = space.thermalZone.get
81
+ # next if space.spaceType.empty?
82
+ # spc_type = space.spaceType.get
83
+ # next if spc_type.standardsSpaceType.empty?
84
+ # stds_spc_type = spc_type.standardsSpaceType.get
85
+ # adjustments.each do |adj|
86
+ # next unless adj['stds_spc_type'] == stds_spc_type
87
+ # # Adjust the primary sensor
88
+ # if adj['sensor_1_frac'] && zone.primaryDaylightingControl.is_initialized
89
+ # OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', "For #{zone.name}: Adjusting primary daylight sensor to control #{adj['sensor_1_frac']} of the lighting.")
90
+ # zone.setFractionofZoneControlledbyPrimaryDaylightingControl(adj['sensor_1_frac'])
91
+ # pri_ctrl = zone.primaryDaylightingControl.get
92
+ # if adj['sensor_1_xyz']
93
+ # x = adj['sensor_1_xyz'][0]
94
+ # y = adj['sensor_1_xyz'][1]
95
+ # z = adj['sensor_1_xyz'][2]
96
+ # OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', "For #{zone.name}: Adjusting primary daylight sensor position to [#{x}, #{y}, #{z}].")
97
+ # pri_ctrl.setPositionXCoordinate(x)
98
+ # pri_ctrl.setPositionYCoordinate(y)
99
+ # pri_ctrl.setPositionZCoordinate(z)
100
+ # end
101
+ # end
102
+ # # Adjust the secondary sensor
103
+ # if adj['sensor_2_frac'] && zone.secondaryDaylightingControl.is_initialized
104
+ # OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', "For #{zone.name}: Adjusting secondary daylight sensor to control #{adj['sensor_2_frac']} of the lighting.")
105
+ # zone.setFractionofZoneControlledbySecondaryDaylightingControl(adj['sensor_2_frac'])
106
+ # sec_ctrl = zone.secondaryDaylightingControl.get
107
+ # if adj['sensor_2_xyz']
108
+ # x = adj['sensor_2_xyz'][0]
109
+ # y = adj['sensor_2_xyz'][1]
110
+ # z = adj['sensor_2_xyz'][2]
111
+ # OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', "For #{zone.name}: Adjusting secondary daylight sensor position to [#{x}, #{y}, #{z}].")
112
+ # sec_ctrl.setPositionXCoordinate(x)
113
+ # sec_ctrl.setPositionYCoordinate(y)
114
+ # sec_ctrl.setPositionZCoordinate(z)
115
+ # end
116
+ # end
117
+ # end
118
+ # end
119
+ # return true
120
+ # end
123
121
 
124
122
  def update_waterheater_loss_coefficient(model)
125
123
  case template
126
- when '90.1-2004', '90.1-2007', '90.1-2010', '90.1-2013', 'NECB2011'
124
+ when '90.1-2004', '90.1-2007', '90.1-2010', '90.1-2013', '90.1-2016', '90.1-2019', 'NECB2011'
127
125
  model.getWaterHeaterMixeds.sort.each do |water_heater|
128
126
  water_heater.setOffCycleLossCoefficienttoAmbientTemperature(1.205980747)
129
127
  water_heater.setOnCycleLossCoefficienttoAmbientTemperature(1.205980747)
@@ -138,6 +136,8 @@ module SmallOfficeDetailed
138
136
  end
139
137
 
140
138
  def model_custom_geometry_tweaks(building_type, climate_zone, prototype_input, model)
139
+ # Set original building North axis
140
+ model_set_building_north_axis(model, 0.0)
141
141
 
142
142
  return true
143
143
  end