openstudio-standards 0.2.16 → 0.2.17.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (181) hide show
  1. checksums.yaml +4 -4
  2. data/data/standards/manage_OpenStudio_Standards.rb +31 -4
  3. data/lib/openstudio-standards/btap/geometry.rb +1 -1
  4. data/lib/openstudio-standards/hvac_sizing/Siz.HeatingCoolingFuels.rb +354 -2
  5. data/lib/openstudio-standards/hvac_sizing/Siz.ThermalZone.rb +79 -0
  6. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.College.rb +1 -1
  7. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Laboratory.rb +1 -1
  8. data/lib/openstudio-standards/prototypes/common/do_not_edit_metaclasses.rb +3313 -0
  9. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Fan.rb +12 -0
  10. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +3 -4
  11. data/lib/openstudio-standards/prototypes/common/objects/Prototype.SizingSystem.rb +1 -1
  12. data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +167 -93
  13. data/lib/openstudio-standards/prototypes/common/objects/Prototype.utilities.rb +2 -4
  14. data/lib/openstudio-standards/prototypes/common/prototype_metaprogramming.rb +1 -0
  15. data/lib/openstudio-standards/refs/references.rb +3 -0
  16. data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +279 -6
  17. data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctParallelPIUReheat.rb +50 -2
  18. data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +4 -0
  19. data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +0 -1
  20. data/lib/openstudio-standards/standards/Standards.Construction.rb +185 -3
  21. data/lib/openstudio-standards/standards/Standards.Fan.rb +14 -6
  22. data/lib/openstudio-standards/standards/Standards.HeatExchangerSensLat.rb +1 -0
  23. data/lib/openstudio-standards/standards/Standards.Model.rb +1751 -383
  24. data/lib/openstudio-standards/standards/Standards.PlanarSurface.rb +130 -9
  25. data/lib/openstudio-standards/standards/Standards.PlantLoop.rb +50 -3
  26. data/lib/openstudio-standards/standards/Standards.ScheduleCompact.rb +44 -0
  27. data/lib/openstudio-standards/standards/Standards.ScheduleConstant.rb +27 -0
  28. data/lib/openstudio-standards/standards/Standards.ScheduleRuleset.rb +543 -0
  29. data/lib/openstudio-standards/standards/Standards.Space.rb +665 -15
  30. data/lib/openstudio-standards/standards/Standards.SpaceType.rb +141 -4
  31. data/lib/openstudio-standards/standards/Standards.SubSurface.rb +2 -1
  32. data/lib/openstudio-standards/standards/Standards.Surface.rb +117 -0
  33. data/lib/openstudio-standards/standards/Standards.ThermalZone.rb +197 -49
  34. data/lib/openstudio-standards/standards/Standards.ZoneHVACComponent.rb +41 -0
  35. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.Model.rb +6 -8
  36. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/ashrae_90_1.schedules.json +45 -45
  37. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/comstock_ashrae_90_1_2004.spc_typ.json +7 -7
  38. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/ashrae_90_1.schedules.json +45 -45
  39. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/comstock_ashrae_90_1_2007.spc_typ.json +7 -7
  40. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/ashrae_90_1.schedules.json +45 -45
  41. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/comstock_ashrae_90_1_2010.spc_typ.json +9 -9
  42. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/ashrae_90_1.schedules.json +45 -45
  43. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/comstock_ashrae_90_1_2013.spc_typ.json +4 -4
  44. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/data/ashrae_90_1.schedules.json +45 -45
  45. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/data/comstock_ashrae_90_1_2016.spc_typ.json +5 -5
  46. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirLoopHVAC.rb +5 -5
  47. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/data/ashrae_90_1.schedules.json +45 -45
  48. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/data/comstock_ashrae_90_1_2019.spc_typ.json +5 -5
  49. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.constructions.json +2 -2
  50. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.fans.json +12 -0
  51. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/ashrae_90_1.schedules.json +45 -45
  52. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/comstock_doe_ref_1980_2004.spc_typ.json +10 -10
  53. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/ashrae_90_1.schedules.json +45 -45
  54. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/comstock_doe_ref_pre_1980.spc_typ.json +10 -10
  55. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirLoopHVAC.rb +1 -0
  56. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirLoopHVAC.rb +792 -0
  57. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirTerminalSingleDuctParallelPIUReheat.rb +10 -0
  58. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirTerminalSingleDuctVAVReheat.rb +31 -0
  59. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.BoilerHotWater.rb +91 -0
  60. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ChillerElectricEIR.rb +84 -0
  61. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXSingleSpeed.rb +145 -0
  62. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXTwoSpeed.rb +106 -0
  63. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilDX.rb +71 -0
  64. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingDXSingleSpeed.rb +194 -0
  65. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingGas.rb +120 -0
  66. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoolingTower.rb +110 -0
  67. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoolingTowerVariableSpeed.rb +5 -0
  68. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Fan.rb +73 -0
  69. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanConstantVolume.rb +5 -0
  70. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanOnOff.rb +5 -0
  71. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanVariableVolume.rb +24 -0
  72. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanZoneExhaust.rb +5 -0
  73. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.HeatExchangerSensLat.rb +55 -0
  74. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Model.rb +3045 -0
  75. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.PlanarSurface.rb +187 -0
  76. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.PlantLoop.rb +450 -0
  77. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Space.rb +106 -0
  78. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.SpaceType.rb +666 -0
  79. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Surface.rb +54 -0
  80. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ThermalZone.rb +168 -0
  81. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ZoneHVACComponent.rb +132 -0
  82. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.rb +239 -0
  83. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb +176 -0
  84. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.rb +25 -0
  85. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.boilers.json +52 -0
  86. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.chillers.json +112 -0
  87. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.climate_zone_sets.json +210 -0
  88. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.construction_properties.json +10384 -0
  89. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.construction_sets.json +133 -0
  90. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.furnaces.json +43 -0
  91. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.heat_pumps.json +119 -0
  92. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.heat_pumps_heating.json +130 -0
  93. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.heat_rejection.json +13 -0
  94. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.lpd_space_type.json +568 -0
  95. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.motors.json +264 -0
  96. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.prm_baseline_hvac.json +439 -0
  97. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.prm_constructions.json +685 -0
  98. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.prm_economizers.json +213 -0
  99. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.prm_ext_ltg.json +32 -0
  100. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.prm_heat_type.json +136 -0
  101. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.prm_hvac_bldg_type.json +32 -0
  102. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.prm_interior_lighting.json +1837 -0
  103. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.prm_swh_bldg_type.json +184 -0
  104. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.prm_wwr_bldg_type.json +84 -0
  105. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.unitary_acs.json +148 -0
  106. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.water_heaters.json +157 -0
  107. data/lib/openstudio-standards/standards/ashrae_90_1_prm/data/ashrae_90_1_prm.climate_zone_sets.json +210 -0
  108. data/lib/openstudio-standards/standards/ashrae_90_1_prm/data/ashrae_90_1_prm.curves.json +18329 -0
  109. data/lib/openstudio-standards/standards/ashrae_90_1_prm/data/ashrae_90_1_prm.fans.json +340 -0
  110. data/lib/openstudio-standards/standards/ashrae_90_1_prm/data/ashrae_90_1_prm.materials.json +49924 -0
  111. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/baseline_building_rotation_exception.md +44 -0
  112. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/check_pump_power_and_control.md +71 -0
  113. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/dcv.md +68 -0
  114. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/dcv_implementation.png +0 -0
  115. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/elevators.md +14 -0
  116. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/exhaust_air_energy_recovery.md +36 -0
  117. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/f_c_factors.md +19 -0
  118. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/fan_power_credits.md +15 -0
  119. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/preheat_coil.md +59 -0
  120. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/pump_power_control.md +46 -0
  121. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/return_air_type.md +31 -0
  122. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/set_baseline_wwr.md +191 -0
  123. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/set_hw_and_chw_supply_water_temp_reset_control.md +24 -0
  124. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/set_num_boilers_chillers_towers.md +49 -0
  125. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/set_plug_load_measures.md +80 -0
  126. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/set_space_lpd.md +73 -0
  127. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/unenclosed_and_unconditioned_spaces.md +11 -0
  128. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/unmet_load_hours.md +20 -0
  129. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/vav_parallel_piu_terminals_fan_control.md +23 -0
  130. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/vav_terminals_min_flow_setpoint.md +21 -0
  131. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_airloop_hvac.csv +1 -0
  132. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_airloop_hvac_doas.csv +1 -0
  133. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_building.csv +1 -0
  134. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_design_specification_outdoor_air.csv +1 -0
  135. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_electric_equipment.csv +1 -0
  136. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_exterior_lights.csv +1 -0
  137. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_gas_equipment.csv +1 -0
  138. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_lights.csv +1 -0
  139. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_space.csv +1 -0
  140. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_spacetype.csv +1 -0
  141. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_thermal_zone.csv +1 -0
  142. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_wateruse_connections.csv +1 -0
  143. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_wateruse_equipment.csv +1 -0
  144. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_wateruse_equipment_definition.csv +1 -0
  145. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_zone_hvac.csv +1 -0
  146. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_zone_infiltration.csv +1 -0
  147. data/lib/openstudio-standards/standards/cbes/data/cbes.fans.json +12 -0
  148. data/lib/openstudio-standards/standards/deer/data/deer.fans.json +12 -0
  149. data/lib/openstudio-standards/standards/necb/ECMS/data/heat_pumps.json +1 -1
  150. data/lib/openstudio-standards/standards/necb/ECMS/data/heat_pumps_heating.json +1 -1
  151. data/lib/openstudio-standards/standards/necb/ECMS/data/unitary_acs.json +24 -11
  152. data/lib/openstudio-standards/standards/necb/ECMS/erv.rb +13 -15
  153. data/lib/openstudio-standards/standards/necb/NECB2011/data/province_map.json +17 -0
  154. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_multi_speed.rb +1 -1
  155. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_single_speed.rb +1 -1
  156. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_4.rb +2 -2
  157. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_6.rb +6 -5
  158. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +3 -2
  159. data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +2 -3
  160. data/lib/openstudio-standards/standards/necb/NECB2020/data/chillers.json +2 -2
  161. data/lib/openstudio-standards/standards/necb/NECB2020/data/space_types.json +33 -924
  162. data/lib/openstudio-standards/standards/necb/NECB2020/data/unitary_acs.json +15 -15
  163. data/lib/openstudio-standards/standards/necb/common/btap_data.rb +135 -29
  164. data/lib/openstudio-standards/standards/necb/common/btap_datapoint.rb +16 -4
  165. data/lib/openstudio-standards/standards/necb/common/neb_end_use_prices.csv +40 -42
  166. data/lib/openstudio-standards/standards/necb/common/necb_reference_runs.csv +1 -1
  167. data/lib/openstudio-standards/standards/necb/common/space_type_upgrade_map.json +89 -89
  168. data/lib/openstudio-standards/utilities/array.rb +11 -0
  169. data/lib/openstudio-standards/utilities/logging.rb +48 -0
  170. data/lib/openstudio-standards/utilities/object_info.rb +20 -0
  171. data/lib/openstudio-standards/utilities/schedule_translator.rb +348 -0
  172. data/lib/openstudio-standards/utilities/sqlfile.rb +68 -0
  173. data/lib/openstudio-standards/version.rb +2 -2
  174. data/lib/openstudio-standards/weather/Weather.Model.rb +42 -55
  175. data/lib/openstudio-standards/weather/Weather.stat_file.rb +1 -1
  176. data/lib/openstudio-standards.rb +35 -1
  177. metadata +111 -6
  178. data/data/standards/OpenStudio_Standards-ashrae_90_1.xlsx +0 -0
  179. data/data/standards/OpenStudio_Standards-ashrae_90_1_28Jan2022.xlsx +0 -0
  180. data/data/standards/OpenStudio_Standards-ashrae_90_1_28_Jan2022_2.xlsx +0 -0
  181. data/data/standards/openstudio_standards_duplicates_log.csv +0 -143
@@ -0,0 +1,176 @@
1
+ class ASHRAE901PRM2019 < ASHRAE901PRM
2
+ # @!group Model
3
+
4
+ # Determine if there is a need for a proposed model sizing run.
5
+ # A typical application of such sizing run is to determine space
6
+ # conditioning type.
7
+ #
8
+ # @param model [OpenStudio::Model::Model] OpenStudio model object
9
+ #
10
+ # @return [Boolean] Returns true if a sizing run is required
11
+ def model_create_prm_baseline_building_requires_proposed_model_sizing_run(model)
12
+ return true
13
+ end
14
+
15
+ # Determines the area of the building above which point
16
+ # the non-dominant area type gets it's own HVAC system type.
17
+ # @return [Double] the minimum area (m^2)
18
+ def model_prm_baseline_system_group_minimum_area(model, custom)
19
+ exception_min_area_ft2 = 20_000
20
+ # Customization - Xcel EDA Program Manual 2014
21
+ # 3.2.1 Mechanical System Selection ii
22
+ if custom == 'Xcel Energy CO EDA'
23
+ exception_min_area_ft2 = 5000
24
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.Model', "Customization; per Xcel EDA Program Manual 2014 3.2.1 Mechanical System Selection ii, minimum area for non-predominant conditions reduced to #{exception_min_area_ft2} ft2.")
25
+ end
26
+ exception_min_area_m2 = OpenStudio.convert(exception_min_area_ft2, 'ft^2', 'm^2').get
27
+ return exception_min_area_m2
28
+ end
29
+
30
+ # Determines which system number is used
31
+ # for the baseline system.
32
+ # @return [String] the system number: 1_or_2, 3_or_4,
33
+ # 5_or_6, 7_or_8, 9_or_10
34
+ def model_prm_baseline_system_number(model, climate_zone, area_type, fuel_type, area_ft2, num_stories, custom)
35
+ sys_num = nil
36
+
37
+ # Customization - Xcel EDA Program Manual 2014
38
+ # Table 3.2.2 Baseline HVAC System Types
39
+ if custom == 'Xcel Energy CO EDA'
40
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.Model', 'Custom; per Xcel EDA Program Manual 2014 Table 3.2.2 Baseline HVAC System Types, the 90.1-2010 lookup for HVAC system types shall be used.')
41
+
42
+ # Set the area limit
43
+ limit_ft2 = 25_000
44
+
45
+ case area_type
46
+ when 'residential'
47
+ sys_num = '1_or_2'
48
+ when 'nonresidential'
49
+ # nonresidential and 3 floors or less and <25,000 ft2
50
+ if num_stories <= 3 && area_ft2 < limit_ft2
51
+ sys_num = '3_or_4'
52
+ # nonresidential and 4 or 5 floors or 5 floors or less and 25,000 ft2 to 150,000 ft2
53
+ elsif ((num_stories == 4 || num_stories == 5) && area_ft2 < limit_ft2) || (num_stories <= 5 && (area_ft2 >= limit_ft2 && area_ft2 <= 150_000))
54
+ sys_num = '5_or_6'
55
+ # nonresidential and more than 5 floors or >150,000 ft2
56
+ elsif num_stories >= 5 || area_ft2 > 150_000
57
+ sys_num = '7_or_8'
58
+ end
59
+ when 'heatedonly'
60
+ sys_num = '9_or_10'
61
+ when 'retail'
62
+ # Should only be hit by Xcel EDA
63
+ sys_num = '3_or_4'
64
+ end
65
+
66
+ else
67
+
68
+ # Set the area limit
69
+ limit_ft2 = 25_000
70
+
71
+ case area_type
72
+ when 'residential'
73
+ sys_num = '1_or_2'
74
+ when 'nonresidential'
75
+ # nonresidential and 3 floors or less and <25,000 ft2
76
+ if num_stories <= 3 && area_ft2 < limit_ft2
77
+ sys_num = '3_or_4'
78
+ # nonresidential and 4 or 5 floors or 5 floors or less and 25,000 ft2 to 150,000 ft2
79
+ elsif ((num_stories == 4 || num_stories == 5) && area_ft2 < limit_ft2) || (num_stories <= 5 && (area_ft2 >= limit_ft2 && area_ft2 <= 150_000))
80
+ sys_num = '5_or_6'
81
+ # nonresidential and more than 5 floors or >150,000 ft2
82
+ elsif num_stories >= 5 || area_ft2 > 150_000
83
+ sys_num = '7_or_8'
84
+ end
85
+ when 'heatedonly'
86
+ sys_num = '9_or_10'
87
+ when 'retail'
88
+ sys_num = '3_or_4'
89
+ end
90
+
91
+ end
92
+
93
+ return sys_num
94
+ end
95
+
96
+ # Change the fuel type based on climate zone, depending on the standard.
97
+ # For 90.1-2013, fuel type is based on climate zone, not the proposed model.
98
+ # @return [String] the revised fuel type
99
+ def model_prm_baseline_system_change_fuel_type(model, fuel_type, climate_zone, custom = nil)
100
+ if custom == 'Xcel Energy CO EDA'
101
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.Model', 'Custom; per Xcel EDA Program Manual 2014 Table 3.2.2 Baseline HVAC System Types, the 90.1-2010 rules for heating fuel type (based on proposed model) rules apply.')
102
+ return fuel_type
103
+ end
104
+
105
+ # For 90.1-2013 the fuel type is determined based on climate zone.
106
+ # Don't change the fuel if it purchased heating or cooling.
107
+ if fuel_type == 'electric' || fuel_type == 'fossil'
108
+ case climate_zone
109
+ when 'ASHRAE 169-2006-1A',
110
+ 'ASHRAE 169-2006-2A',
111
+ 'ASHRAE 169-2006-3A',
112
+ 'ASHRAE 169-2013-1A',
113
+ 'ASHRAE 169-2013-2A',
114
+ 'ASHRAE 169-2013-3A'
115
+ fuel_type = 'electric'
116
+ else
117
+ fuel_type = 'fossil'
118
+ end
119
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.Model', "Heating fuel is #{fuel_type} for 90.1-2013, climate zone #{climate_zone}. This is independent of the heating fuel type in the proposed building, per G3.1.1-3. This is different than previous versions of 90.1.")
120
+ end
121
+
122
+ return fuel_type
123
+ end
124
+
125
+ # Determines the fan type used by VAV_Reheat and VAV_PFP_Boxes systems.
126
+ # Variable speed fan for 90.1-2013
127
+ # @return [String] the fan type: TwoSpeed Fan, Variable Speed Fan
128
+ def model_baseline_system_vav_fan_type(model)
129
+ fan_type = 'Variable Speed Fan'
130
+ return fan_type
131
+ end
132
+
133
+ # Determines the skylight to roof ratio limit for a given standard
134
+ # 3% for 90.1-PRM-2019
135
+ # @return [Double] the skylight to roof ratio, as a percent: 5.0 = 5%
136
+ def model_prm_skylight_to_roof_ratio_limit(model)
137
+ srr_lim = 3.0
138
+ return srr_lim
139
+ end
140
+
141
+ # Determine the surface range of a baseline model.
142
+ # The method calculates the window to wall ratio (assuming all spaces are conditioned)
143
+ # and select the range based on the calculated window to wall ratio
144
+ # @param model [OpenStudio::Model::Model] OpenStudio model object
145
+ # @param wwr_parameter [Hash] parameters to choose min and max percent of surfaces,
146
+ # could be different set in different standard
147
+ def model_get_percent_of_surface_range(model, wwr_parameter)
148
+ wwr_range = { 'minimum_percent_of_surface' => nil, 'maximum_percent_of_surface' => nil }
149
+ intended_surface_type = wwr_parameter['intended_surface_type']
150
+ if intended_surface_type == 'ExteriorWindow' || intended_surface_type == 'GlassDoor'
151
+ if wwr_parameter.key?('wwr_building_type')
152
+ wwr_building_type = wwr_parameter['wwr_building_type']
153
+ wwr_info = wwr_parameter['wwr_info']
154
+ if wwr_info[wwr_building_type] <= 10
155
+ wwr_range['minimum_percent_of_surface'] = 0
156
+ wwr_range['maximum_percent_of_surface'] = 10
157
+ elsif wwr_info[wwr_building_type] <= 20
158
+ wwr_range['minimum_percent_of_surface'] = 10.1
159
+ wwr_range['maximum_percent_of_surface'] = 20
160
+ elsif wwr_info[wwr_building_type] <= 30
161
+ wwr_range['minimum_percent_of_surface'] = 20.1
162
+ wwr_range['maximum_percent_of_surface'] = 30
163
+ elsif wwr_info[wwr_building_type] <= 40
164
+ wwr_range['minimum_percent_of_surface'] = 30.1
165
+ wwr_range['maximum_percent_of_surface'] = 40
166
+ else
167
+ wwr_range['minimum_percent_of_surface'] = nil
168
+ wwr_range['maximum_percent_of_surface'] = nil
169
+ end
170
+ else
171
+ OpenStudio.logFree(OpenStudio::Error, 'openstudio.model.Model', 'No wwr_building_type found for ExteriorWindow or GlassDoor')
172
+ end
173
+ end
174
+ return wwr_range
175
+ end
176
+ end
@@ -0,0 +1,25 @@
1
+ # This class holds methods that apply ASHRAE 90.1-2013
2
+ # to a given model.
3
+ # @ref [References::ASHRAE9012013]
4
+ class ASHRAE901PRM2019 < ASHRAE901PRM
5
+ register_standard '90.1-PRM-2019'
6
+ attr_reader :template
7
+
8
+ def initialize
9
+ @template = '90.1-PRM-2019'
10
+ load_standards_database
11
+ end
12
+
13
+ def load_standards_database(data_directories = [])
14
+ super([__dir__] + data_directories)
15
+ end
16
+
17
+ # Determine the base infiltration rate at 75 PA.
18
+ #
19
+ # @return [Double] the baseline infiltration rate, in cfm/ft^2
20
+ # defaults to no infiltration.
21
+ def space_infiltration_rate_75_pa
22
+ basic_infil_rate_cfm_per_ft2 = 1.0
23
+ return basic_infil_rate_cfm_per_ft2
24
+ end
25
+ end
@@ -0,0 +1,52 @@
1
+ {
2
+ "boilers": [
3
+ {
4
+ "template": "90.1-PRM-2019",
5
+ "fluid_type": "Hot Water",
6
+ "fuel_type": "Gas",
7
+ "condensing": null,
8
+ "condensing_control": null,
9
+ "minimum_capacity": 0.0,
10
+ "maximum_capacity": 299999.0,
11
+ "start_date": "1919-09-09T00:00:00+00:00",
12
+ "end_date": "2999-09-09T00:00:00+00:00",
13
+ "minimum_annual_fuel_utilization_efficiency": 0.8,
14
+ "minimum_thermal_efficiency": null,
15
+ "minimum_combustion_efficiency": null,
16
+ "efffplr": "Boiler with Minimum Turndown",
17
+ "notes": "From Table G3.5.6"
18
+ },
19
+ {
20
+ "template": "90.1-PRM-2019",
21
+ "fluid_type": "Hot Water",
22
+ "fuel_type": "Gas",
23
+ "condensing": null,
24
+ "condensing_control": null,
25
+ "minimum_capacity": 300000.0,
26
+ "maximum_capacity": 2500000.0,
27
+ "start_date": "1919-09-09T00:00:00+00:00",
28
+ "end_date": "2999-09-09T00:00:00+00:00",
29
+ "minimum_annual_fuel_utilization_efficiency": null,
30
+ "minimum_thermal_efficiency": 0.75,
31
+ "minimum_combustion_efficiency": null,
32
+ "efffplr": "Boiler with Minimum Turndown",
33
+ "notes": "From Table G3.5.6"
34
+ },
35
+ {
36
+ "template": "90.1-PRM-2019",
37
+ "fluid_type": "Hot Water",
38
+ "fuel_type": "Gas",
39
+ "condensing": null,
40
+ "condensing_control": null,
41
+ "minimum_capacity": 2500001.0,
42
+ "maximum_capacity": 9999999999.0,
43
+ "start_date": "1919-09-09T00:00:00+00:00",
44
+ "end_date": "2999-09-09T00:00:00+00:00",
45
+ "minimum_annual_fuel_utilization_efficiency": null,
46
+ "minimum_thermal_efficiency": null,
47
+ "minimum_combustion_efficiency": 0.8,
48
+ "efffplr": "Boiler with Minimum Turndown",
49
+ "notes": "From Table G3.5.6"
50
+ }
51
+ ]
52
+ }
@@ -0,0 +1,112 @@
1
+ {
2
+ "chillers": [
3
+ {
4
+ "template": "90.1-PRM-2019",
5
+ "cooling_type": "WaterCooled",
6
+ "condenser_type": null,
7
+ "compressor_type": "Centrifugal",
8
+ "absorption_type": null,
9
+ "variable_speed_drive": null,
10
+ "minimum_capacity": 0.0,
11
+ "maximum_capacity": 149.99,
12
+ "start_date": "1919-09-09T00:00:00+00:00",
13
+ "end_date": "2999-09-09T00:00:00+00:00",
14
+ "minimum_full_load_efficiency": 0.703,
15
+ "minimum_integrated_part_load_value": 0.67,
16
+ "capft": null,
17
+ "eirft": null,
18
+ "eirfplr": null,
19
+ "notes": "Path A Efficiencies"
20
+ },
21
+ {
22
+ "template": "90.1-PRM-2019",
23
+ "cooling_type": "WaterCooled",
24
+ "condenser_type": null,
25
+ "compressor_type": "Centrifugal",
26
+ "absorption_type": null,
27
+ "variable_speed_drive": null,
28
+ "minimum_capacity": 150.0,
29
+ "maximum_capacity": 299.99,
30
+ "start_date": "1919-09-09T00:00:00+00:00",
31
+ "end_date": "2999-09-09T00:00:00+00:00",
32
+ "minimum_full_load_efficiency": 0.634,
33
+ "minimum_integrated_part_load_value": 0.596,
34
+ "capft": null,
35
+ "eirft": null,
36
+ "eirfplr": null,
37
+ "notes": "Path A Efficiencies"
38
+ },
39
+ {
40
+ "template": "90.1-PRM-2019",
41
+ "cooling_type": "WaterCooled",
42
+ "condenser_type": null,
43
+ "compressor_type": "Centrifugal",
44
+ "absorption_type": null,
45
+ "variable_speed_drive": null,
46
+ "minimum_capacity": 300.0,
47
+ "maximum_capacity": 9999.0,
48
+ "start_date": "1919-09-09T00:00:00+00:00",
49
+ "end_date": "2999-09-09T00:00:00+00:00",
50
+ "minimum_full_load_efficiency": 0.576,
51
+ "minimum_integrated_part_load_value": 0.549,
52
+ "capft": null,
53
+ "eirft": null,
54
+ "eirfplr": null,
55
+ "notes": "Path A Efficiencies"
56
+ },
57
+ {
58
+ "template": "90.1-PRM-2019",
59
+ "cooling_type": "WaterCooled",
60
+ "condenser_type": null,
61
+ "compressor_type": "Rotary Screw and Scroll",
62
+ "absorption_type": null,
63
+ "variable_speed_drive": null,
64
+ "minimum_capacity": 0.0,
65
+ "maximum_capacity": 149.99,
66
+ "start_date": "1919-09-09T00:00:00+00:00",
67
+ "end_date": "2999-09-09T00:00:00+00:00",
68
+ "minimum_full_load_efficiency": 0.79,
69
+ "minimum_integrated_part_load_value": 0.676,
70
+ "capft": null,
71
+ "eirft": null,
72
+ "eirfplr": null,
73
+ "notes": "Path A Efficiencies"
74
+ },
75
+ {
76
+ "template": "90.1-PRM-2019",
77
+ "cooling_type": "WaterCooled",
78
+ "condenser_type": null,
79
+ "compressor_type": "Rotary Screw and Scroll",
80
+ "absorption_type": null,
81
+ "variable_speed_drive": null,
82
+ "minimum_capacity": 150.0,
83
+ "maximum_capacity": 299.99,
84
+ "start_date": "1919-09-09T00:00:00+00:00",
85
+ "end_date": "2999-09-09T00:00:00+00:00",
86
+ "minimum_full_load_efficiency": 0.718,
87
+ "minimum_integrated_part_load_value": 0.629,
88
+ "capft": null,
89
+ "eirft": null,
90
+ "eirfplr": null,
91
+ "notes": "Path A Efficiencies"
92
+ },
93
+ {
94
+ "template": "90.1-PRM-2019",
95
+ "cooling_type": "WaterCooled",
96
+ "condenser_type": null,
97
+ "compressor_type": "Rotary Screw and Scroll",
98
+ "absorption_type": null,
99
+ "variable_speed_drive": null,
100
+ "minimum_capacity": 300.0,
101
+ "maximum_capacity": 9999.0,
102
+ "start_date": "1919-09-09T00:00:00+00:00",
103
+ "end_date": "2999-09-09T00:00:00+00:00",
104
+ "minimum_full_load_efficiency": 0.639,
105
+ "minimum_integrated_part_load_value": 0.572,
106
+ "capft": null,
107
+ "eirft": null,
108
+ "eirfplr": null,
109
+ "notes": "Path A Efficiencies"
110
+ }
111
+ ]
112
+ }
@@ -0,0 +1,210 @@
1
+ {
2
+ "climate_zone_sets": [
3
+ {
4
+ "name": "ClimateZone 0",
5
+ "climate_zones": [
6
+ "ASHRAE 169-2006-0A",
7
+ "ASHRAE 169-2006-0B",
8
+ "ASHRAE 169-2013-0A",
9
+ "ASHRAE 169-2013-0B"
10
+ ]
11
+ },
12
+ {
13
+ "name": "ClimateZone 0A",
14
+ "climate_zones": [
15
+ "ASHRAE 169-2006-0A",
16
+ "ASHRAE 169-2013-0A"
17
+ ]
18
+ },
19
+ {
20
+ "name": "ClimateZone 0B",
21
+ "climate_zones": [
22
+ "ASHRAE 169-2006-0B",
23
+ "ASHRAE 169-2013-0B"
24
+ ]
25
+ },
26
+ {
27
+ "name": "ClimateZone 1",
28
+ "climate_zones": [
29
+ "ASHRAE 169-2006-1A",
30
+ "ASHRAE 169-2006-1B",
31
+ "ASHRAE 169-2013-1A",
32
+ "ASHRAE 169-2013-1B"
33
+ ]
34
+ },
35
+ {
36
+ "name": "ClimateZone 1A",
37
+ "climate_zones": [
38
+ "ASHRAE 169-2006-1A",
39
+ "ASHRAE 169-2013-1A"
40
+ ]
41
+ },
42
+ {
43
+ "name": "ClimateZone 1B",
44
+ "climate_zones": [
45
+ "ASHRAE 169-2006-1B",
46
+ "ASHRAE 169-2013-1B"
47
+ ]
48
+ },
49
+ {
50
+ "name": "ClimateZone 2",
51
+ "climate_zones": [
52
+ "ASHRAE 169-2006-2A",
53
+ "ASHRAE 169-2006-2B",
54
+ "ASHRAE 169-2013-2A",
55
+ "ASHRAE 169-2013-2B"
56
+ ]
57
+ },
58
+ {
59
+ "name": "ClimateZone 2A",
60
+ "climate_zones": [
61
+ "ASHRAE 169-2006-2A",
62
+ "ASHRAE 169-2013-2A"
63
+ ]
64
+ },
65
+ {
66
+ "name": "ClimateZone 2B",
67
+ "climate_zones": [
68
+ "ASHRAE 169-2006-2B",
69
+ "ASHRAE 169-2013-2B"
70
+ ]
71
+ },
72
+ {
73
+ "name": "ClimateZone 3",
74
+ "climate_zones": [
75
+ "ASHRAE 169-2006-3A",
76
+ "ASHRAE 169-2006-3B",
77
+ "ASHRAE 169-2006-3C",
78
+ "ASHRAE 169-2013-3A",
79
+ "ASHRAE 169-2013-3B",
80
+ "ASHRAE 169-2013-3C"
81
+ ]
82
+ },
83
+ {
84
+ "name": "ClimateZone 3A",
85
+ "climate_zones": [
86
+ "ASHRAE 169-2006-3A",
87
+ "ASHRAE 169-2013-3A"
88
+ ]
89
+ },
90
+ {
91
+ "name": "ClimateZone 3B",
92
+ "climate_zones": [
93
+ "ASHRAE 169-2006-3B",
94
+ "ASHRAE 169-2013-3B"
95
+ ]
96
+ },
97
+ {
98
+ "name": "ClimateZone 3C",
99
+ "climate_zones": [
100
+ "ASHRAE 169-2006-3C",
101
+ "ASHRAE 169-2013-3C"
102
+ ]
103
+ },
104
+ {
105
+ "name": "ClimateZone 4",
106
+ "climate_zones": [
107
+ "ASHRAE 169-2006-4A",
108
+ "ASHRAE 169-2006-4B",
109
+ "ASHRAE 169-2006-4C",
110
+ "ASHRAE 169-2013-4A",
111
+ "ASHRAE 169-2013-4B",
112
+ "ASHRAE 169-2013-4C"
113
+ ]
114
+ },
115
+ {
116
+ "name": "ClimateZone 4A",
117
+ "climate_zones": [
118
+ "ASHRAE 169-2006-4A",
119
+ "ASHRAE 169-2013-4A"
120
+ ]
121
+ },
122
+ {
123
+ "name": "ClimateZone 4B",
124
+ "climate_zones": [
125
+ "ASHRAE 169-2006-4B",
126
+ "ASHRAE 169-2013-4B"
127
+ ]
128
+ },
129
+ {
130
+ "name": "ClimateZone 4C",
131
+ "climate_zones": [
132
+ "ASHRAE 169-2006-4C",
133
+ "ASHRAE 169-2013-4C"
134
+ ]
135
+ },
136
+ {
137
+ "name": "ClimateZone 5",
138
+ "climate_zones": [
139
+ "ASHRAE 169-2006-5A",
140
+ "ASHRAE 169-2006-5B",
141
+ "ASHRAE 169-2006-5C",
142
+ "ASHRAE 169-2013-5A",
143
+ "ASHRAE 169-2013-5B",
144
+ "ASHRAE 169-2013-5C"
145
+ ]
146
+ },
147
+ {
148
+ "name": "ClimateZone 5A",
149
+ "climate_zones": [
150
+ "ASHRAE 169-2006-5A",
151
+ "ASHRAE 169-2013-5A"
152
+ ]
153
+ },
154
+ {
155
+ "name": "ClimateZone 5B",
156
+ "climate_zones": [
157
+ "ASHRAE 169-2006-5B",
158
+ "ASHRAE 169-2013-5B"
159
+ ]
160
+ },
161
+ {
162
+ "name": "ClimateZone 5C",
163
+ "climate_zones": [
164
+ "ASHRAE 169-2006-5C",
165
+ "ASHRAE 169-2013-5C"
166
+ ]
167
+ },
168
+ {
169
+ "name": "ClimateZone 6",
170
+ "climate_zones": [
171
+ "ASHRAE 169-2006-6A",
172
+ "ASHRAE 169-2006-6B",
173
+ "ASHRAE 169-2013-6A",
174
+ "ASHRAE 169-2013-6B"
175
+ ]
176
+ },
177
+ {
178
+ "name": "ClimateZone 6A",
179
+ "climate_zones": [
180
+ "ASHRAE 169-2006-6A",
181
+ "ASHRAE 169-2013-6A"
182
+ ]
183
+ },
184
+ {
185
+ "name": "ClimateZone 6B",
186
+ "climate_zones": [
187
+ "ASHRAE 169-2006-6B",
188
+ "ASHRAE 169-2013-6B"
189
+ ]
190
+ },
191
+ {
192
+ "name": "ClimateZone 7",
193
+ "climate_zones": [
194
+ "ASHRAE 169-2006-7A",
195
+ "ASHRAE 169-2006-7B",
196
+ "ASHRAE 169-2013-7A",
197
+ "ASHRAE 169-2013-7B"
198
+ ]
199
+ },
200
+ {
201
+ "name": "ClimateZone 8",
202
+ "climate_zones": [
203
+ "ASHRAE 169-2006-8A",
204
+ "ASHRAE 169-2006-8B",
205
+ "ASHRAE 169-2013-8A",
206
+ "ASHRAE 169-2013-8B"
207
+ ]
208
+ }
209
+ ]
210
+ }