openstudio-standards 0.7.1 → 0.8.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (362) hide show
  1. checksums.yaml +4 -4
  2. data/data/geometry/ASHRAE90120162019LargeHotel.json +58 -13
  3. data/data/geometry/ASHRAELargeHotel.json +58 -13
  4. data/data/standards/OpenStudio_Standards-ashrae_90_1-ALL-comstock(space_types).xlsx +0 -0
  5. data/data/standards/export_OpenStudio_libraries.rb +2 -2
  6. data/data/standards/manage_OpenStudio_Standards.rb +6 -6
  7. data/data/standards/openstudio_standards_duplicates_log.csv +7961 -1
  8. data/data/standards/test_performance_expected_dd_results.csv +2016 -2004
  9. data/lib/openstudio-standards/btap/fileio.rb +171 -5
  10. data/lib/openstudio-standards/constructions/create.rb +38 -4
  11. data/lib/openstudio-standards/constructions/modify.rb +10 -3
  12. data/lib/openstudio-standards/create_typical/create_typical.rb +42 -28
  13. data/lib/openstudio-standards/create_typical/space_type_information.rb +160 -0
  14. data/lib/openstudio-standards/create_typical/space_type_ratios.rb +16 -19
  15. data/lib/openstudio-standards/exterior_lighting/create.rb +454 -0
  16. data/lib/openstudio-standards/exterior_lighting/data/entryways.csv +52 -0
  17. data/lib/openstudio-standards/exterior_lighting/data/parking.csv +54 -0
  18. data/lib/openstudio-standards/exterior_lighting/data/typical_exterior_lighting.json +37 -0
  19. data/lib/openstudio-standards/exterior_lighting/information.rb +202 -0
  20. data/lib/openstudio-standards/geometry/information.rb +49 -2
  21. data/lib/openstudio-standards/hvac/components/create.rb +169 -0
  22. data/lib/openstudio-standards/hvac/components/modify.rb +42 -0
  23. data/lib/openstudio-standards/hvac/exhaust/create_exhaust_fan.rb +108 -0
  24. data/lib/openstudio-standards/hvac/exhaust/data/convert_data.rb +86 -0
  25. data/lib/openstudio-standards/hvac/exhaust/data/typical_exhaust.csv +18 -0
  26. data/lib/openstudio-standards/hvac/exhaust/data/typical_exhaust.json +89 -0
  27. data/lib/openstudio-standards/infiltration/nist_infiltration.rb +25 -13
  28. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeHotel.rb +0 -64
  29. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOffice.rb +0 -25
  30. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb +0 -25
  31. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Warehouse.rb +1 -11
  32. data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirConditionerVariableRefrigerantFlow.rb +5 -1
  33. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Fan.rb +0 -7
  34. data/lib/openstudio-standards/prototypes/common/objects/Prototype.HeatExchangerAirToAirSensibleAndLatent.rb +36 -18
  35. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.hvac.rb +1 -1
  36. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +121 -239
  37. data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +179 -151
  38. data/lib/openstudio-standards/prototypes/common/objects/Prototype.refrigeration.rb +0 -466
  39. data/lib/openstudio-standards/prototypes/common/objects/Prototype.utilities.rb +18 -2
  40. data/lib/openstudio-standards/refrigeration/create_case.rb +125 -0
  41. data/lib/openstudio-standards/refrigeration/create_compressor.rb +78 -0
  42. data/lib/openstudio-standards/refrigeration/create_compressor_rack.rb +48 -0
  43. data/lib/openstudio-standards/refrigeration/create_refrigeration_system.rb +74 -0
  44. data/lib/openstudio-standards/refrigeration/create_typical_refrigeration.rb +161 -0
  45. data/lib/openstudio-standards/refrigeration/create_walkin.rb +116 -0
  46. data/lib/openstudio-standards/refrigeration/data/refrigerated_cases.csv +31 -0
  47. data/lib/openstudio-standards/refrigeration/data/refrigerated_walkins.csv +76 -0
  48. data/lib/openstudio-standards/refrigeration/data/refrigeration_compressors.csv +13 -0
  49. data/lib/openstudio-standards/refrigeration/data/typical_refrigerated_cases.csv +17 -0
  50. data/lib/openstudio-standards/refrigeration/data/typical_refrigerated_walkins.csv +53 -0
  51. data/lib/openstudio-standards/refrigeration/information.rb +130 -0
  52. data/lib/openstudio-standards/schedules/parametric.rb +1 -1
  53. data/lib/openstudio-standards/service_water_heating/create_typical.rb +299 -0
  54. data/lib/openstudio-standards/service_water_heating/create_water_heating_loop.rb +16 -14
  55. data/lib/openstudio-standards/service_water_heating/data/convert_data.rb +119 -0
  56. data/lib/openstudio-standards/service_water_heating/data/typical_water_use_equipment.csv +54 -0
  57. data/lib/openstudio-standards/service_water_heating/data/typical_water_use_equipment.json +810 -0
  58. data/lib/openstudio-standards/service_water_heating/information.rb +69 -0
  59. data/lib/openstudio-standards/sql_file/fenestration.rb +1 -1
  60. data/lib/openstudio-standards/standards/Standards.AirConditionerVariableRefrigerantFlow.rb +154 -0
  61. data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +35 -12
  62. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXMultiSpeed.rb +110 -61
  63. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +128 -29
  64. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +103 -38
  65. data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +1 -1
  66. data/lib/openstudio-standards/standards/Standards.CoilDX.rb +106 -5
  67. data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +8 -8
  68. data/lib/openstudio-standards/standards/Standards.CoolingTower.rb +44 -17
  69. data/lib/openstudio-standards/standards/Standards.Fan.rb +32 -21
  70. data/lib/openstudio-standards/standards/Standards.FluidCooler.rb +45 -18
  71. data/lib/openstudio-standards/standards/Standards.HeatExchangerSensLat.rb +14 -9
  72. data/lib/openstudio-standards/standards/Standards.Model.rb +294 -76
  73. data/lib/openstudio-standards/standards/Standards.Motor.rb +66 -0
  74. data/lib/openstudio-standards/standards/Standards.PlanarSurface.rb +2 -1
  75. data/lib/openstudio-standards/standards/Standards.Pump.rb +34 -20
  76. data/lib/openstudio-standards/standards/Standards.ServiceWaterHeating.rb +0 -353
  77. data/lib/openstudio-standards/standards/Standards.Space.rb +3 -107
  78. data/lib/openstudio-standards/standards/Standards.SpaceType.rb +2 -57
  79. data/lib/openstudio-standards/standards/Standards.Surface.rb +11 -3
  80. data/lib/openstudio-standards/standards/Standards.ThermalZone.rb +1 -120
  81. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.computer_room_acs.json +142 -0
  82. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.economizers.json +1006 -596
  83. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.energy_recovery.json +724 -0
  84. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ext_ltg.json +1258 -163
  85. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.motors.json +1070 -140
  86. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +33 -3374
  87. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.unitary_acs.json +1400 -340
  88. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.vrfs.json +769 -0
  89. 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 +2 -5338
  90. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.computer_room_acs.json +142 -0
  91. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.economizers.json +1006 -596
  92. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.energy_recovery.json +724 -0
  93. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ext_ltg.json +1258 -163
  94. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.motors.json +1070 -140
  95. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +15 -3343
  96. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.unitary_acs.json +1840 -372
  97. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.vrfs.json +769 -0
  98. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirLoopHVAC.rb +20 -10
  99. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Space.rb +0 -9
  100. 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 +0 -5382
  101. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.computer_room_acs.json +142 -0
  102. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.economizers.json +1006 -628
  103. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.energy_recovery.json +718 -712
  104. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ext_ltg.json +1438 -163
  105. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.motors.json +2552 -182
  106. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +14 -3368
  107. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.unitary_acs.json +2348 -352
  108. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.vrfs.json +769 -0
  109. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirLoopHVAC.rb +47 -61
  110. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Model.rb +6 -0
  111. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Motor.rb +11 -0
  112. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Space.rb +0 -9
  113. 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 +2 -5522
  114. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.computer_room_acs.json +142 -0
  115. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.economizers.json +1006 -628
  116. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.energy_recovery.json +1358 -1346
  117. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ext_ltg.json +1438 -163
  118. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.motors.json +1359 -189
  119. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +19 -3451
  120. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.unitary_acs.json +2176 -616
  121. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.vrfs.json +616 -0
  122. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirLoopHVAC.rb +47 -61
  123. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.rb +9 -0
  124. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Motor.rb +11 -0
  125. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Space.rb +0 -9
  126. 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 +8 -6055
  127. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.computer_room_acs.json +142 -0
  128. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.economizers.json +1006 -628
  129. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.energy_recovery.json +1188 -1424
  130. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.ext_ltg.json +1498 -163
  131. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.motors.json +1769 -189
  132. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.spc_typ.json +15 -3422
  133. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.unitary_acs.json +1807 -408
  134. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.vrfs.json +1024 -0
  135. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirLoopHVAC.rb +70 -87
  136. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.rb +9 -0
  137. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Motor.rb +11 -0
  138. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Space.rb +0 -9
  139. 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 +8 -6080
  140. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.computer_room_acs.json +142 -0
  141. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.economizers.json +1006 -628
  142. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.energy_recovery.json +2806 -3296
  143. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.ext_ltg.json +1558 -163
  144. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.motors.json +1759 -189
  145. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.spc_typ.json +16 -3448
  146. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.unitary_acs.json +2758 -422
  147. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.vrfs.json +684 -0
  148. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.schedules.json +14 -3318
  149. 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 +2 -4786
  150. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.chillers.json +1 -1
  151. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.economizers.json +953 -207
  152. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.energy_recovery.json +724 -0
  153. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.ext_ltg.json +5 -5
  154. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.spc_typ.json +11 -2858
  155. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.AirConditionerVariableRefrigerantFlow.rb +13 -0
  156. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.Model.rb +0 -18
  157. 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 +1 -4739
  158. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.chillers.json +0 -51
  159. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.economizers.json +953 -207
  160. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.energy_recovery.json +724 -0
  161. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.ext_ltg.json +5 -5
  162. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.spc_typ.json +9 -2830
  163. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirConditionerVariableRefrigerantFlow.rb +13 -0
  164. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.rb +0 -18
  165. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.economizers.json +1006 -564
  166. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.energy_recovery.json +1264 -0
  167. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.ext_ltg.json +5 -5
  168. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.spc_typ.json +0 -1079
  169. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirLoopHVAC.rb +132 -288
  170. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.HeatExchangerSensLat.rb +44 -20
  171. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.Model.rb +11 -0
  172. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.Space.rb +0 -8
  173. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.economizers.json +1006 -564
  174. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.energy_recovery.json +1264 -0
  175. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.ext_ltg.json +5 -5
  176. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.spc_typ.json +0 -1079
  177. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirLoopHVAC.rb +137 -288
  178. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.HeatExchangerSensLat.rb +44 -20
  179. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Model.rb +11 -0
  180. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Space.rb +0 -9
  181. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirLoopHVAC.rb +12 -10
  182. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXSingleSpeed.rb +8 -6
  183. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXTwoSpeed.rb +8 -6
  184. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilDX.rb +9 -3
  185. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Fan.rb +6 -40
  186. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Model.rb +30 -337
  187. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Space.rb +4 -5
  188. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.SpaceType.rb +1 -2
  189. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.rb +56 -3
  190. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb +80 -0
  191. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.rb +0 -10
  192. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019_WaterHeaterMixed.rb +35 -0
  193. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.economizers.json +550 -0
  194. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.energy_recovery.json +724 -0
  195. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.ext_ltg.json +1216 -0
  196. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.heat_pumps.json +5 -5
  197. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.motors.json +225 -245
  198. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.unitary_acs.json +174 -78
  199. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.water_heaters.json +354 -317
  200. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_enums.rb +19 -3
  201. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_airloop_hvac.json +185 -0
  202. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_airloop_hvac_doas.json +127 -0
  203. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_building.json +121 -0
  204. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_design_specification_outdoor_air.json +49 -0
  205. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_electric_equipment.json +113 -0
  206. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_exterior_lights.json +120 -0
  207. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_space.json +388 -0
  208. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_spacetype.json +367 -0
  209. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_thermal_zone.json +56 -0
  210. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_wateruse_connections.json +37 -0
  211. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_wateruse_equipment.json +69 -0
  212. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_wateruse_equipment_definition.json +37 -0
  213. data/lib/openstudio-standards/standards/cbes/cbes_pre_1978/data/cbes_pre_1978.ext_ltg.json +5 -5
  214. data/lib/openstudio-standards/standards/cbes/cbes_t24_1978/data/cbes_t24_1978.ext_ltg.json +5 -5
  215. data/lib/openstudio-standards/standards/cbes/cbes_t24_1992/data/cbes_t24_1992.ext_ltg.json +5 -5
  216. data/lib/openstudio-standards/standards/cbes/cbes_t24_2001/data/cbes_t24_2001.ext_ltg.json +5 -5
  217. data/lib/openstudio-standards/standards/cbes/cbes_t24_2005/data/cbes_t24_2005.ext_ltg.json +5 -5
  218. data/lib/openstudio-standards/standards/cbes/cbes_t24_2008/data/cbes_t24_2008.ext_ltg.json +5 -5
  219. data/lib/openstudio-standards/standards/deer/deer_1985/comstock_deer_1985/data/comstock_deer_1985.ext_ltg.json +5 -5
  220. data/lib/openstudio-standards/standards/deer/deer_1985/data/deer_1985.ext_ltg.json +5 -5
  221. data/lib/openstudio-standards/standards/deer/deer_1996/comstock_deer_1996/data/comstock_deer_1996.ext_ltg.json +5 -5
  222. data/lib/openstudio-standards/standards/deer/deer_1996/data/deer_1996.ext_ltg.json +5 -5
  223. data/lib/openstudio-standards/standards/deer/deer_2003/comstock_deer_2003/data/comstock_deer_2003.ext_ltg.json +5 -5
  224. data/lib/openstudio-standards/standards/deer/deer_2003/data/deer_2003.ext_ltg.json +5 -5
  225. data/lib/openstudio-standards/standards/deer/deer_2007/comstock_deer_2007/data/comstock_deer_2007.ext_ltg.json +5 -5
  226. data/lib/openstudio-standards/standards/deer/deer_2007/data/deer_2007.ext_ltg.json +5 -5
  227. data/lib/openstudio-standards/standards/deer/deer_2011/comstock_deer_2011/data/comstock_deer_2011.ext_ltg.json +5 -5
  228. data/lib/openstudio-standards/standards/deer/deer_2011/data/deer_2011.ext_ltg.json +5 -5
  229. data/lib/openstudio-standards/standards/deer/deer_2014/comstock_deer_2014/data/comstock_deer_2014.ext_ltg.json +5 -5
  230. data/lib/openstudio-standards/standards/deer/deer_2014/data/deer_2014.ext_ltg.json +5 -5
  231. data/lib/openstudio-standards/standards/deer/deer_2015/comstock_deer_2015/data/comstock_deer_2015.ext_ltg.json +5 -5
  232. data/lib/openstudio-standards/standards/deer/deer_2015/data/deer_2015.ext_ltg.json +5 -5
  233. data/lib/openstudio-standards/standards/deer/deer_2017/comstock_deer_2017/data/comstock_deer_2017.ext_ltg.json +5 -5
  234. data/lib/openstudio-standards/standards/deer/deer_2017/data/deer_2017.ext_ltg.json +5 -5
  235. data/lib/openstudio-standards/standards/deer/deer_2020/comstock_deer_2020/data/comstock_deer_2020.ext_ltg.json +5 -5
  236. data/lib/openstudio-standards/standards/deer/deer_2020/data/deer_2020.ext_ltg.json +5 -5
  237. data/lib/openstudio-standards/standards/deer/deer_2025/comstock_deer_2025/data/comstock_deer_2025.ext_ltg.json +5 -5
  238. data/lib/openstudio-standards/standards/deer/deer_2025/data/deer_2025.ext_ltg.json +5 -5
  239. data/lib/openstudio-standards/standards/deer/deer_2030/comstock_deer_2030/data/comstock_deer_2030.ext_ltg.json +5 -5
  240. data/lib/openstudio-standards/standards/deer/deer_2030/data/deer_2030.ext_ltg.json +5 -5
  241. data/lib/openstudio-standards/standards/deer/deer_2035/comstock_deer_2035/data/comstock_deer_2035.ext_ltg.json +5 -5
  242. data/lib/openstudio-standards/standards/deer/deer_2035/data/deer_2035.ext_ltg.json +5 -5
  243. data/lib/openstudio-standards/standards/deer/deer_2040/comstock_deer_2040/data/comstock_deer_2040.ext_ltg.json +5 -5
  244. data/lib/openstudio-standards/standards/deer/deer_2040/data/deer_2040.ext_ltg.json +5 -5
  245. data/lib/openstudio-standards/standards/deer/deer_2045/comstock_deer_2045/data/comstock_deer_2045.ext_ltg.json +5 -5
  246. data/lib/openstudio-standards/standards/deer/deer_2045/data/deer_2045.ext_ltg.json +5 -5
  247. data/lib/openstudio-standards/standards/deer/deer_2050/comstock_deer_2050/data/comstock_deer_2050.ext_ltg.json +5 -5
  248. data/lib/openstudio-standards/standards/deer/deer_2050/data/deer_2050.ext_ltg.json +5 -5
  249. data/lib/openstudio-standards/standards/deer/deer_2055/comstock_deer_2055/data/comstock_deer_2055.ext_ltg.json +5 -5
  250. data/lib/openstudio-standards/standards/deer/deer_2055/data/deer_2055.ext_ltg.json +5 -5
  251. data/lib/openstudio-standards/standards/deer/deer_2060/comstock_deer_2060/data/comstock_deer_2060.ext_ltg.json +5 -5
  252. data/lib/openstudio-standards/standards/deer/deer_2060/data/deer_2060.ext_ltg.json +5 -5
  253. data/lib/openstudio-standards/standards/deer/deer_2065/comstock_deer_2065/data/comstock_deer_2065.ext_ltg.json +5 -5
  254. data/lib/openstudio-standards/standards/deer/deer_2065/data/deer_2065.ext_ltg.json +5 -5
  255. data/lib/openstudio-standards/standards/deer/deer_2070/comstock_deer_2070/data/comstock_deer_2070.ext_ltg.json +5 -5
  256. data/lib/openstudio-standards/standards/deer/deer_2070/data/deer_2070.ext_ltg.json +5 -5
  257. data/lib/openstudio-standards/standards/deer/deer_2075/comstock_deer_2075/data/comstock_deer_2075.ext_ltg.json +5 -5
  258. data/lib/openstudio-standards/standards/deer/deer_2075/data/deer_2075.ext_ltg.json +5 -5
  259. data/lib/openstudio-standards/standards/deer/deer_pre_1975/comstock_deer_pre_1975/data/comstock_deer_pre_1975.ext_ltg.json +5 -5
  260. data/lib/openstudio-standards/standards/deer/deer_pre_1975/data/deer_pre_1975.ext_ltg.json +5 -5
  261. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/btap_pre1980.rb +10 -1
  262. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/data/unitary_acs.json +20 -20
  263. data/lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb +379 -27
  264. data/lib/openstudio-standards/standards/necb/NECB2011/autozone.rb +1 -4
  265. data/lib/openstudio-standards/standards/necb/NECB2011/beps_compliance_path.rb +0 -1
  266. data/lib/openstudio-standards/standards/necb/NECB2011/data/fuel_type_sets.json +1 -1
  267. data/lib/openstudio-standards/standards/necb/NECB2011/data/unitary_acs.json +20 -20
  268. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +34 -22
  269. data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +76 -23
  270. data/lib/openstudio-standards/standards/necb/NECB2011/necb_shw_calculation.xlsx +0 -0
  271. data/lib/openstudio-standards/standards/necb/NECB2011/service_water_heating.rb +4 -5
  272. data/lib/openstudio-standards/standards/necb/NECB2011/system_fuels.rb +6 -2
  273. data/lib/openstudio-standards/standards/necb/NECB2015/data/unitary_acs.json +26 -24
  274. data/lib/openstudio-standards/standards/necb/NECB2015/hvac_systems.rb +2 -1
  275. data/lib/openstudio-standards/standards/necb/NECB2020/data/unitary_acs.json +38 -32
  276. data/lib/openstudio-standards/standards/necb/common/btap_data.rb +215 -18
  277. data/lib/openstudio-standards/standards/necb/common/btap_datapoint.rb +190 -15
  278. data/lib/openstudio-standards/standards/necb/common/national_carbon_price_sched_feb_2025.json +60 -0
  279. data/lib/openstudio-standards/standards/necb/common/utility_pricing_2025-02-20.csv +92 -0
  280. data/lib/openstudio-standards/utilities/ruleset_check.rb +204 -0
  281. data/lib/openstudio-standards/version.rb +1 -1
  282. data/lib/openstudio-standards/weather/information.rb +1 -1
  283. data/lib/openstudio-standards.rb +32 -12
  284. metadata +78 -80
  285. data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.refrigeration.rb +0 -13
  286. data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.refrigeration.rb +0 -13
  287. data/lib/openstudio-standards/prototypes/cbes/cbes.refrigeration.rb +0 -13
  288. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.exterior_lights.rb +0 -432
  289. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.Space.rb +0 -11
  290. 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 +0 -169
  291. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/comstock_ashrae_90_1_2004.ref_cases.json +0 -1456
  292. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/comstock_ashrae_90_1_2004.ref_lnup.json +0 -562
  293. 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 +0 -20804
  294. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.Space.rb +0 -11
  295. 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 +0 -169
  296. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/comstock_ashrae_90_1_2007.ref_cases.json +0 -1456
  297. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/comstock_ashrae_90_1_2007.ref_lnup.json +0 -562
  298. 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 +0 -169
  299. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/comstock_ashrae_90_1_2010.ref_cases.json +0 -1456
  300. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/comstock_ashrae_90_1_2010.ref_lnup.json +0 -562
  301. 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 +0 -169
  302. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/comstock_ashrae_90_1_2013.ref_cases.json +0 -1456
  303. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/comstock_ashrae_90_1_2013.ref_lnup.json +0 -562
  304. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/data/comstock_ashrae_90_1_2016.ext_ltg.json +0 -169
  305. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/data/comstock_ashrae_90_1_2016.ref_cases.json +0 -763
  306. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/data/comstock_ashrae_90_1_2016.ref_lnup.json +0 -562
  307. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/data/comstock_ashrae_90_1_2019.ext_ltg.json +0 -169
  308. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/data/comstock_ashrae_90_1_2019.ref_cases.json +0 -763
  309. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/data/comstock_ashrae_90_1_2019.ref_lnup.json +0 -562
  310. 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 +0 -169
  311. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/comstock_doe_ref_1980_2004.ref_cases.json +0 -1456
  312. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/comstock_doe_ref_1980_2004.ref_lnup.json +0 -562
  313. 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 +0 -169
  314. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/comstock_doe_ref_pre_1980.ref_cases.json +0 -1456
  315. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/comstock_doe_ref_pre_1980.ref_lnup.json +0 -562
  316. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.prm_economizers.json +0 -213
  317. data/lib/openstudio-standards/standards/cbes/cbes.Space.rb +0 -11
  318. data/lib/openstudio-standards/standards/cbes/cbes_t24_2005/cbes_t24_2005.Space.rb +0 -11
  319. data/lib/openstudio-standards/standards/cbes/cbes_t24_2008/cbes_t24_2008.Space.rb +0 -11
  320. data/lib/openstudio-standards/standards/deer/deer.Space.rb +0 -20
  321. data/lib/openstudio-standards/standards/deer/deer_1985/data/deer_1985.ref_cases.json +0 -1456
  322. data/lib/openstudio-standards/standards/deer/deer_1985/data/deer_1985.ref_lnup.json +0 -562
  323. data/lib/openstudio-standards/standards/deer/deer_1996/data/deer_1996.ref_cases.json +0 -1456
  324. data/lib/openstudio-standards/standards/deer/deer_1996/data/deer_1996.ref_lnup.json +0 -562
  325. data/lib/openstudio-standards/standards/deer/deer_2003/data/deer_2003.ref_cases.json +0 -1456
  326. data/lib/openstudio-standards/standards/deer/deer_2003/data/deer_2003.ref_lnup.json +0 -562
  327. data/lib/openstudio-standards/standards/deer/deer_2007/data/deer_2007.ref_cases.json +0 -1456
  328. data/lib/openstudio-standards/standards/deer/deer_2007/data/deer_2007.ref_lnup.json +0 -562
  329. data/lib/openstudio-standards/standards/deer/deer_2011/data/deer_2011.ref_cases.json +0 -1456
  330. data/lib/openstudio-standards/standards/deer/deer_2011/data/deer_2011.ref_lnup.json +0 -562
  331. data/lib/openstudio-standards/standards/deer/deer_2014/data/deer_2014.ref_cases.json +0 -1456
  332. data/lib/openstudio-standards/standards/deer/deer_2014/data/deer_2014.ref_lnup.json +0 -562
  333. data/lib/openstudio-standards/standards/deer/deer_2015/data/deer_2015.ref_cases.json +0 -1456
  334. data/lib/openstudio-standards/standards/deer/deer_2015/data/deer_2015.ref_lnup.json +0 -562
  335. data/lib/openstudio-standards/standards/deer/deer_2017/data/deer_2017.ref_cases.json +0 -1456
  336. data/lib/openstudio-standards/standards/deer/deer_2017/data/deer_2017.ref_lnup.json +0 -562
  337. data/lib/openstudio-standards/standards/deer/deer_2020/data/deer_2020.ref_cases.json +0 -1456
  338. data/lib/openstudio-standards/standards/deer/deer_2020/data/deer_2020.ref_lnup.json +0 -562
  339. data/lib/openstudio-standards/standards/deer/deer_2025/data/deer_2025.ref_cases.json +0 -1456
  340. data/lib/openstudio-standards/standards/deer/deer_2025/data/deer_2025.ref_lnup.json +0 -562
  341. data/lib/openstudio-standards/standards/deer/deer_2030/data/deer_2030.ref_cases.json +0 -1456
  342. data/lib/openstudio-standards/standards/deer/deer_2030/data/deer_2030.ref_lnup.json +0 -562
  343. data/lib/openstudio-standards/standards/deer/deer_2035/data/deer_2035.ref_cases.json +0 -1456
  344. data/lib/openstudio-standards/standards/deer/deer_2035/data/deer_2035.ref_lnup.json +0 -562
  345. data/lib/openstudio-standards/standards/deer/deer_2040/data/deer_2040.ref_cases.json +0 -1456
  346. data/lib/openstudio-standards/standards/deer/deer_2040/data/deer_2040.ref_lnup.json +0 -562
  347. data/lib/openstudio-standards/standards/deer/deer_2045/data/deer_2045.ref_cases.json +0 -1456
  348. data/lib/openstudio-standards/standards/deer/deer_2045/data/deer_2045.ref_lnup.json +0 -562
  349. data/lib/openstudio-standards/standards/deer/deer_2050/data/deer_2050.ref_cases.json +0 -1456
  350. data/lib/openstudio-standards/standards/deer/deer_2050/data/deer_2050.ref_lnup.json +0 -562
  351. data/lib/openstudio-standards/standards/deer/deer_2055/data/deer_2055.ref_cases.json +0 -1456
  352. data/lib/openstudio-standards/standards/deer/deer_2055/data/deer_2055.ref_lnup.json +0 -562
  353. data/lib/openstudio-standards/standards/deer/deer_2060/data/deer_2060.ref_cases.json +0 -1456
  354. data/lib/openstudio-standards/standards/deer/deer_2060/data/deer_2060.ref_lnup.json +0 -562
  355. data/lib/openstudio-standards/standards/deer/deer_2065/data/deer_2065.ref_cases.json +0 -1456
  356. data/lib/openstudio-standards/standards/deer/deer_2065/data/deer_2065.ref_lnup.json +0 -562
  357. data/lib/openstudio-standards/standards/deer/deer_2070/data/deer_2070.ref_cases.json +0 -1456
  358. data/lib/openstudio-standards/standards/deer/deer_2070/data/deer_2070.ref_lnup.json +0 -562
  359. data/lib/openstudio-standards/standards/deer/deer_2075/data/deer_2075.ref_cases.json +0 -1456
  360. data/lib/openstudio-standards/standards/deer/deer_2075/data/deer_2075.ref_lnup.json +0 -562
  361. data/lib/openstudio-standards/standards/deer/deer_pre_1975/data/deer_pre_1975.ref_cases.json +0 -1456
  362. data/lib/openstudio-standards/standards/deer/deer_pre_1975/data/deer_pre_1975.ref_lnup.json +0 -562
@@ -26,42 +26,17 @@ class NRELZNEReady2017 < ASHRAE901
26
26
  OpenStudio.logFree(OpenStudio::Debug, 'openstudio.standards.AirLoopHVAC', "For #{air_loop_hvac.name} no economizer")
27
27
  return [nil, nil, nil]
28
28
  when 'FixedDryBulb'
29
- case climate_zone
30
- when 'ASHRAE 169-2006-0B',
31
- 'ASHRAE 169-2006-1B',
32
- 'ASHRAE 169-2006-2B',
33
- 'ASHRAE 169-2006-3B',
34
- 'ASHRAE 169-2006-3C',
35
- 'ASHRAE 169-2006-4B',
36
- 'ASHRAE 169-2006-4C',
37
- 'ASHRAE 169-2006-5B',
38
- 'ASHRAE 169-2006-5C',
39
- 'ASHRAE 169-2006-6B',
40
- 'ASHRAE 169-2006-7A',
41
- 'ASHRAE 169-2006-7B',
42
- 'ASHRAE 169-2006-8A',
43
- 'ASHRAE 169-2006-8B',
44
- 'ASHRAE 169-2013-0B',
45
- 'ASHRAE 169-2013-1B',
46
- 'ASHRAE 169-2013-2B',
47
- 'ASHRAE 169-2013-3B',
48
- 'ASHRAE 169-2013-3C',
49
- 'ASHRAE 169-2013-4B',
50
- 'ASHRAE 169-2013-4C',
51
- 'ASHRAE 169-2013-5B',
52
- 'ASHRAE 169-2013-5C',
53
- 'ASHRAE 169-2013-6B',
54
- 'ASHRAE 169-2013-7A',
55
- 'ASHRAE 169-2013-7B',
56
- 'ASHRAE 169-2013-8A',
57
- 'ASHRAE 169-2013-8B'
58
- drybulb_limit_f = 75.0
59
- when 'ASHRAE 169-2006-5A',
60
- 'ASHRAE 169-2006-6A',
61
- 'ASHRAE 169-2013-5A',
62
- 'ASHRAE 169-2013-6A'
63
- drybulb_limit_f = 70.0
64
- end
29
+ # Process climate zone:
30
+ # Moisture regime is not needed for climate zone 8
31
+ climate_zone = climate_zone.split('-')[-1]
32
+ climate_zone = '8' if climate_zone.include?('8')
33
+
34
+ search_criteria = {
35
+ 'template' => template,
36
+ 'climate_zone' => climate_zone
37
+ }
38
+ econ_limits = model_find_object(standards_data['economizers'], search_criteria)
39
+ drybulb_limit_f = econ_limits['fixed_dry_bulb_high_limit_shutoff_temp']
65
40
  when 'FixedEnthalpy'
66
41
  enthalpy_limit_btu_per_lb = 28.0
67
42
  when 'FixedDewPointAndDryBulb'
@@ -493,226 +468,53 @@ class NRELZNEReady2017 < ASHRAE901
493
468
  avail_sch = avail_sch.to_ScheduleRuleset.get
494
469
  ann_op_hrs = OpenstudioStandards::Schedules.schedule_ruleset_get_hours_above_value(avail_sch, 0.0)
495
470
  else
496
- OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.AirLoopHVAC', "For #{air_loop_hvac.name}: could not determine annual operating hours. Assuming less than 8,000 for ERV determination.")
471
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.nrel_zne_ready_2017.AirLoopHVAC', "For #{air_loop_hvac.name}: could not determine annual operating hours. Assuming less than 8,000 for ERV determination.")
497
472
  end
498
473
 
474
+ # Process climate zone:
475
+ # Moisture regime is not needed for climate zone 8
476
+ climate_zone = climate_zone.split('-')[-1]
477
+ climate_zone = '8' if climate_zone.include?('8')
478
+
479
+ # Check annual operating hours
499
480
  if ann_op_hrs < 8000.0
500
- # Table 6.5.6.1-1, less than 8000 hrs
501
- case climate_zone
502
- when 'ASHRAE 169-2006-3B',
503
- 'ASHRAE 169-2006-3C',
504
- 'ASHRAE 169-2006-4B',
505
- 'ASHRAE 169-2006-4C',
506
- 'ASHRAE 169-2006-5B',
507
- 'ASHRAE 169-2013-3B',
508
- 'ASHRAE 169-2013-3C',
509
- 'ASHRAE 169-2013-4B',
510
- 'ASHRAE 169-2013-4C',
511
- 'ASHRAE 169-2013-5B'
512
- erv_cfm = nil
513
- when 'ASHRAE 169-2006-0B',
514
- 'ASHRAE 169-2006-1B',
515
- 'ASHRAE 169-2006-2B',
516
- 'ASHRAE 169-2006-5C',
517
- 'ASHRAE 169-2013-0B',
518
- 'ASHRAE 169-2013-1B',
519
- 'ASHRAE 169-2013-2B',
520
- 'ASHRAE 169-2013-5C'
521
- if pct_oa < 0.5
522
- erv_cfm = nil
523
- elsif pct_oa >= 0.5 && pct_oa < 0.6
524
- erv_cfm = 26_000
525
- elsif pct_oa >= 0.6 && pct_oa < 0.7
526
- erv_cfm = 12_000
527
- elsif pct_oa >= 0.7 && pct_oa < 0.8
528
- erv_cfm = 5000
529
- elsif pct_oa >= 0.8
530
- erv_cfm = 4000
531
- end
532
- when 'ASHRAE 169-2006-6B',
533
- 'ASHRAE 169-2013-6B'
534
- if pct_oa < 0.1
535
- erv_cfm = nil
536
- elsif pct_oa >= 0.1 && pct_oa < 0.2
537
- erv_cfm = 28_000
538
- elsif pct_oa >= 0.2 && pct_oa < 0.3
539
- erv_cfm = 26_500
540
- elsif pct_oa >= 0.3 && pct_oa < 0.4
541
- erv_cfm = 11_000
542
- elsif pct_oa >= 0.4 && pct_oa < 0.5
543
- erv_cfm = 5500
544
- elsif pct_oa >= 0.5 && pct_oa < 0.6
545
- erv_cfm = 4500
546
- elsif pct_oa >= 0.6 && pct_oa < 0.7
547
- erv_cfm = 3500
548
- elsif pct_oa >= 0.7 && pct_oa < 0.8
549
- erv_cfm = 2500
550
- elsif pct_oa >= 0.8
551
- erv_cfm = 1500
552
- end
553
- when 'ASHRAE 169-2006-0A',
554
- 'ASHRAE 169-2006-1A',
555
- 'ASHRAE 169-2006-2A',
556
- 'ASHRAE 169-2006-3A',
557
- 'ASHRAE 169-2006-4A',
558
- 'ASHRAE 169-2006-5A',
559
- 'ASHRAE 169-2006-6A',
560
- 'ASHRAE 169-2013-0A',
561
- 'ASHRAE 169-2013-1A',
562
- 'ASHRAE 169-2013-2A',
563
- 'ASHRAE 169-2013-3A',
564
- 'ASHRAE 169-2013-4A',
565
- 'ASHRAE 169-2013-5A',
566
- 'ASHRAE 169-2013-6A'
567
- if pct_oa < 0.1
568
- erv_cfm = nil
569
- elsif pct_oa >= 0.1 && pct_oa < 0.2
570
- erv_cfm = 26_000
571
- elsif pct_oa >= 0.2 && pct_oa < 0.3
572
- erv_cfm = 16_000
573
- elsif pct_oa >= 0.3 && pct_oa < 0.4
574
- erv_cfm = 5500
575
- elsif pct_oa >= 0.4 && pct_oa < 0.5
576
- erv_cfm = 4500
577
- elsif pct_oa >= 0.5 && pct_oa < 0.6
578
- erv_cfm = 3500
579
- elsif pct_oa >= 0.6 && pct_oa < 0.7
580
- erv_cfm = 2000
581
- elsif pct_oa >= 0.7 && pct_oa < 0.8
582
- erv_cfm = 1000
583
- elsif pct_oa >= 0.8
584
- erv_cfm = 120
585
- end
586
- when 'ASHRAE 169-2006-7A',
587
- 'ASHRAE 169-2006-7B',
588
- 'ASHRAE 169-2006-8A',
589
- 'ASHRAE 169-2006-8B',
590
- 'ASHRAE 169-2013-7A',
591
- 'ASHRAE 169-2013-7B',
592
- 'ASHRAE 169-2013-8A',
593
- 'ASHRAE 169-2013-8B'
594
- if pct_oa < 0.1
595
- erv_cfm = nil
596
- elsif pct_oa >= 0.1 && pct_oa < 0.2
597
- erv_cfm = 4500
598
- elsif pct_oa >= 0.2 && pct_oa < 0.3
599
- erv_cfm = 4000
600
- elsif pct_oa >= 0.3 && pct_oa < 0.4
601
- erv_cfm = 2500
602
- elsif pct_oa >= 0.4 && pct_oa < 0.5
603
- erv_cfm = 1000
604
- elsif pct_oa >= 0.5 && pct_oa < 0.6
605
- erv_cfm = 140
606
- elsif pct_oa >= 0.6 && pct_oa < 0.7
607
- erv_cfm = 120
608
- elsif pct_oa >= 0.7 && pct_oa < 0.8
609
- erv_cfm = 100
610
- elsif pct_oa >= 0.8
611
- erv_cfm = 80
612
- end
613
- end
481
+ under_8000_hours = true
482
+ string_for_log = 'under'
614
483
  else
615
- # Table 6.5.6.1-2, above 8000 hrs
616
- case climate_zone
617
- when 'ASHRAE 169-2006-3C',
618
- 'ASHRAE 169-2013-3C'
619
- erv_cfm = nil
620
- when 'ASHRAE 169-2006-0B',
621
- 'ASHRAE 169-2006-1B',
622
- 'ASHRAE 169-2006-2B',
623
- 'ASHRAE 169-2006-3B',
624
- 'ASHRAE 169-2006-4C',
625
- 'ASHRAE 169-2006-5C',
626
- 'ASHRAE 169-2013-0B',
627
- 'ASHRAE 169-2013-1B',
628
- 'ASHRAE 169-2013-2B',
629
- 'ASHRAE 169-2013-3B',
630
- 'ASHRAE 169-2013-4C',
631
- 'ASHRAE 169-2013-5C'
632
- if pct_oa < 0.2
633
- erv_cfm = nil
634
- elsif pct_oa >= 0.2 && pct_oa < 0.3
635
- erv_cfm = 19_500
636
- elsif pct_oa >= 0.3 && pct_oa < 0.4
637
- erv_cfm = 9000
638
- elsif pct_oa >= 0.4 && pct_oa < 0.5
639
- erv_cfm = 5000
640
- elsif pct_oa >= 0.5 && pct_oa < 0.6
641
- erv_cfm = 4000
642
- elsif pct_oa >= 0.6 && pct_oa < 0.7
643
- erv_cfm = 3000
644
- elsif pct_oa >= 0.7 && pct_oa < 0.8
645
- erv_cfm = 1500
646
- elsif pct_oa >= 0.8
647
- erv_cfm = 120
648
- end
649
- when 'ASHRAE 169-2006-0A',
650
- 'ASHRAE 169-2006-1A',
651
- 'ASHRAE 169-2006-2A',
652
- 'ASHRAE 169-2006-3A',
653
- 'ASHRAE 169-2006-4B',
654
- 'ASHRAE 169-2006-5B',
655
- 'ASHRAE 169-2013-0A',
656
- 'ASHRAE 169-2013-1A',
657
- 'ASHRAE 169-2013-2A',
658
- 'ASHRAE 169-2013-3A',
659
- 'ASHRAE 169-2013-4B',
660
- 'ASHRAE 169-2013-5B'
661
- if pct_oa < 0.1
662
- erv_cfm = nil
663
- elsif pct_oa >= 0.1 && pct_oa < 0.2
664
- erv_cfm = 2500
665
- elsif pct_oa >= 0.2 && pct_oa < 0.3
666
- erv_cfm = 2000
667
- elsif pct_oa >= 0.3 && pct_oa < 0.4
668
- erv_cfm = 1000
669
- elsif pct_oa >= 0.4 && pct_oa < 0.5
670
- erv_cfm = 500
671
- elsif pct_oa >= 0.5 && pct_oa < 0.6
672
- erv_cfm = 140
673
- elsif pct_oa >= 0.6 && pct_oa < 0.7
674
- erv_cfm = 120
675
- elsif pct_oa >= 0.7 && pct_oa < 0.8
676
- erv_cfm = 100
677
- elsif pct_oa >= 0.8
678
- erv_cfm = 80
679
- end
680
- when 'ASHRAE 169-2006-4A',
681
- 'ASHRAE 169-2006-5A',
682
- 'ASHRAE 169-2006-6A',
683
- 'ASHRAE 169-2006-6B',
684
- 'ASHRAE 169-2006-7A',
685
- 'ASHRAE 169-2006-7B',
686
- 'ASHRAE 169-2006-8A',
687
- 'ASHRAE 169-2006-8B',
688
- 'ASHRAE 169-2013-4A',
689
- 'ASHRAE 169-2013-5A',
690
- 'ASHRAE 169-2013-6A',
691
- 'ASHRAE 169-2013-6B',
692
- 'ASHRAE 169-2013-7A',
693
- 'ASHRAE 169-2013-7B',
694
- 'ASHRAE 169-2013-8A',
695
- 'ASHRAE 169-2013-8B'
696
- if pct_oa < 0.1
697
- erv_cfm = nil
698
- elsif pct_oa >= 0.1 && pct_oa < 0.2
699
- erv_cfm = 200
700
- elsif pct_oa >= 0.2 && pct_oa < 0.3
701
- erv_cfm = 130
702
- elsif pct_oa >= 0.3 && pct_oa < 0.4
703
- erv_cfm = 100
704
- elsif pct_oa >= 0.4 && pct_oa < 0.5
705
- erv_cfm = 80
706
- elsif pct_oa >= 0.5 && pct_oa < 0.6
707
- erv_cfm = 70
708
- elsif pct_oa >= 0.6 && pct_oa < 0.7
709
- erv_cfm = 60
710
- elsif pct_oa >= 0.7 && pct_oa < 0.8
711
- erv_cfm = 50
712
- elsif pct_oa >= 0.8
713
- erv_cfm = 40
714
- end
715
- end
484
+ under_8000_hours = false
485
+ string_for_log = 'over'
486
+ end
487
+
488
+ # Search database
489
+ search_criteria = {
490
+ 'template' => template,
491
+ 'climate_zone' => climate_zone,
492
+ 'under_8000_hours' => under_8000_hours
493
+ }
494
+ energy_recovery_limits = model_find_object(standards_data['energy_recovery'], search_criteria)
495
+ if energy_recovery_limits.nil?
496
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.ashrae_90_1_2013.AirLoopHVAC', "Cannot find energy recovery limits for template '#{template}', climate zone '#{climate_zone}', and #{string_for_log} 8000 hours, assuming no energy recovery required.")
497
+ return nil
498
+ end
499
+
500
+ if pct_oa < 0.1
501
+ erv_cfm = nil
502
+ elsif pct_oa >= 0.1 && pct_oa < 0.2
503
+ erv_cfm = energy_recovery_limits['percent_oa_10_to_20']
504
+ elsif pct_oa >= 0.2 && pct_oa < 0.3
505
+ erv_cfm = energy_recovery_limits['percent_oa_20_to_30']
506
+ elsif pct_oa >= 0.3 && pct_oa < 0.4
507
+ erv_cfm = energy_recovery_limits['percent_oa_30_to_40']
508
+ elsif pct_oa >= 0.4 && pct_oa < 0.5
509
+ erv_cfm = energy_recovery_limits['percent_oa_40_to_50']
510
+ elsif pct_oa >= 0.5 && pct_oa < 0.6
511
+ erv_cfm = energy_recovery_limits['percent_oa_50_to_60']
512
+ elsif pct_oa >= 0.6 && pct_oa < 0.7
513
+ erv_cfm = energy_recovery_limits['percent_oa_60_to_70']
514
+ elsif pct_oa >= 0.7 && pct_oa < 0.8
515
+ erv_cfm = energy_recovery_limits['percent_oa_70_to_80']
516
+ elsif pct_oa >= 0.8
517
+ erv_cfm = energy_recovery_limits['percent_oa_greater_than_80']
716
518
  end
717
519
 
718
520
  return erv_cfm
@@ -775,51 +577,93 @@ class NRELZNEReady2017 < ASHRAE901
775
577
  # @param heat_exchanger_type [String] heat exchanger type Rotary or Plate
776
578
  # @return [OpenStudio::Model::HeatExchangerAirToAirSensibleAndLatent] erv to apply efficiency values
777
579
  def air_loop_hvac_apply_energy_recovery_ventilator_efficiency(erv, erv_type: 'ERV', heat_exchanger_type: 'Rotary')
778
- if heat_exchanger_type == 'Plate'
779
- # based on Zehnder ComfoAir
780
- if erv_type == 'HRV'
781
- erv.setSensibleEffectivenessat100HeatingAirFlow(0.865)
782
- erv.setLatentEffectivenessat100HeatingAirFlow(0.0)
783
- erv.setSensibleEffectivenessat100CoolingAirFlow(0.865)
784
- erv.setLatentEffectivenessat100CoolingAirFlow(0.0)
785
- erv.setSensibleEffectivenessat75HeatingAirFlow(0.887)
786
- erv.setSensibleEffectivenessat75CoolingAirFlow(0.887)
787
- if erv.model.version < OpenStudio::VersionString.new('3.8.0')
580
+ if erv.model.version < OpenStudio::VersionString.new('3.8.0')
581
+ if heat_exchanger_type == 'Plate'
582
+ # based on Zehnder ComfoAir
583
+ if erv_type == 'HRV'
584
+ erv.setSensibleEffectivenessat100HeatingAirFlow(0.865)
585
+ erv.setLatentEffectivenessat100HeatingAirFlow(0.0)
586
+ erv.setSensibleEffectivenessat100CoolingAirFlow(0.865)
587
+ erv.setLatentEffectivenessat100CoolingAirFlow(0.0)
588
+ erv.setSensibleEffectivenessat75HeatingAirFlow(0.887)
589
+ erv.setSensibleEffectivenessat75CoolingAirFlow(0.887)
788
590
  erv.setLatentEffectivenessat75HeatingAirFlow(0.0)
789
591
  erv.setLatentEffectivenessat75CoolingAirFlow(0.0)
592
+ else
593
+ erv.setSensibleEffectivenessat100HeatingAirFlow(0.755)
594
+ erv.setLatentEffectivenessat100HeatingAirFlow(0.564)
595
+ erv.setSensibleEffectivenessat75HeatingAirFlow(0.791)
596
+ erv.setLatentEffectivenessat75HeatingAirFlow(0.625)
597
+ erv.setSensibleEffectivenessat100CoolingAirFlow(0.755)
598
+ erv.setLatentEffectivenessat100CoolingAirFlow(0.564)
599
+ erv.setSensibleEffectivenessat75CoolingAirFlow(0.791)
600
+ erv.setLatentEffectivenessat75CoolingAirFlow(0.625)
790
601
  end
791
602
  else
792
- erv.setSensibleEffectivenessat100HeatingAirFlow(0.755)
793
- erv.setLatentEffectivenessat100HeatingAirFlow(0.564)
794
- erv.setSensibleEffectivenessat75HeatingAirFlow(0.791)
795
- erv.setLatentEffectivenessat75HeatingAirFlow(0.625)
796
- erv.setSensibleEffectivenessat100CoolingAirFlow(0.755)
797
- erv.setLatentEffectivenessat100CoolingAirFlow(0.564)
798
- erv.setSensibleEffectivenessat75CoolingAirFlow(0.791)
799
- erv.setLatentEffectivenessat75CoolingAirFlow(0.625)
800
- end
801
- else
802
- if erv_type == 'HRV'
803
- erv.setSensibleEffectivenessat100HeatingAirFlow(0.75)
804
- erv.setLatentEffectivenessat100HeatingAirFlow(0.0)
805
- erv.setSensibleEffectivenessat75HeatingAirFlow(0.79)
806
- erv.setSensibleEffectivenessat100CoolingAirFlow(0.75)
807
- erv.setLatentEffectivenessat100CoolingAirFlow(0.0)
808
- erv.setSensibleEffectivenessat75CoolingAirFlow(0.78)
809
- if erv.model.version < OpenStudio::VersionString.new('3.8.0')
603
+ if erv_type == 'HRV'
604
+ erv.setSensibleEffectivenessat100HeatingAirFlow(0.75)
605
+ erv.setLatentEffectivenessat100HeatingAirFlow(0.0)
606
+ erv.setSensibleEffectivenessat75HeatingAirFlow(0.79)
607
+ erv.setSensibleEffectivenessat100CoolingAirFlow(0.75)
608
+ erv.setLatentEffectivenessat100CoolingAirFlow(0.0)
609
+ erv.setSensibleEffectivenessat75CoolingAirFlow(0.78)
810
610
  erv.setLatentEffectivenessat75HeatingAirFlow(0.0)
811
611
  erv.setLatentEffectivenessat75CoolingAirFlow(0.0)
612
+ else
613
+ erv.setSensibleEffectivenessat100HeatingAirFlow(0.75)
614
+ erv.setLatentEffectivenessat100HeatingAirFlow(0.74)
615
+ erv.setSensibleEffectivenessat75HeatingAirFlow(0.79)
616
+ erv.setLatentEffectivenessat75HeatingAirFlow(0.79)
617
+ erv.setSensibleEffectivenessat100CoolingAirFlow(0.75)
618
+ erv.setLatentEffectivenessat100CoolingAirFlow(0.74)
619
+ erv.setSensibleEffectivenessat75CoolingAirFlow(0.78)
620
+ erv.setLatentEffectivenessat75CoolingAirFlow(0.78)
621
+ end
622
+ end
623
+ else
624
+ values = Hash.new{ |hash, key| hash[key] = {} }
625
+ if heat_exchanger_type == 'Plate'
626
+ if erv_type == 'HRV'
627
+ values['Sensible Heating'][0.75] = 0.887
628
+ values['Sensible Heating'][1.0] = 0.865
629
+ values['Latent Heating'][0.75] = 0.0
630
+ values['Latent Heating'][1.0] = 0.0
631
+ values['Sensible Cooling'][0.75] = 0.887
632
+ values['Sensible Cooling'][1.0] = 0.865
633
+ values['Latent Cooling'][0.75] = 0.0
634
+ values['Latent Cooling'][1.0] = 0.0
635
+ else
636
+ values['Sensible Heating'][0.75] = 0.791
637
+ values['Sensible Heating'][1.0] = 0.755
638
+ values['Latent Heating'][0.75] = 0.625
639
+ values['Latent Heating'][1.0] = 0.564
640
+ values['Sensible Cooling'][0.75] = 0.791
641
+ values['Sensible Cooling'][1.0] = 0.755
642
+ values['Latent Cooling'][0.75] = 0.625
643
+ values['Latent Cooling'][1.0] = 0.564
812
644
  end
813
645
  else
814
- erv.setSensibleEffectivenessat100HeatingAirFlow(0.75)
815
- erv.setLatentEffectivenessat100HeatingAirFlow(0.74)
816
- erv.setSensibleEffectivenessat75HeatingAirFlow(0.79)
817
- erv.setLatentEffectivenessat75HeatingAirFlow(0.79)
818
- erv.setSensibleEffectivenessat100CoolingAirFlow(0.75)
819
- erv.setLatentEffectivenessat100CoolingAirFlow(0.74)
820
- erv.setSensibleEffectivenessat75CoolingAirFlow(0.78)
821
- erv.setLatentEffectivenessat75CoolingAirFlow(0.78)
646
+ if erv_type == 'HRV'
647
+ values['Sensible Heating'][0.75] = 0.79
648
+ values['Sensible Heating'][1.0] = 0.75
649
+ values['Latent Heating'][0.75] = 0.0
650
+ values['Latent Heating'][1.0] = 0.0
651
+ values['Sensible Cooling'][0.75] = 0.78
652
+ values['Sensible Cooling'][1.0] = 0.75
653
+ values['Latent Cooling'][0.75] = 0.0
654
+ values['Latent Cooling'][1.0] = 0.0
655
+ else
656
+ values['Sensible Heating'][0.75] = 0.79
657
+ values['Sensible Heating'][1.0] = 0.75
658
+ values['Latent Heating'][0.75] = 0.74
659
+ values['Latent Heating'][1.0] = 0.79
660
+ values['Sensible Cooling'][0.75] = 0.78
661
+ values['Sensible Cooling'][1.0] = 0.75
662
+ values['Latent Cooling'][0.75] = 0.78
663
+ values['Latent Cooling'][1.0] = 0.74
664
+ end
822
665
  end
666
+ OpenstudioStandards::HVAC.heat_exchanger_air_to_air_set_effectiveness_values(erv, defaults: false, values: values)
823
667
  end
824
668
 
825
669
  return erv
@@ -5,26 +5,50 @@ class NRELZNEReady2017 < ASHRAE901
5
5
  def heat_exchanger_air_to_air_sensible_and_latent_apply_effectiveness(heat_exchanger_air_to_air_sensible_and_latent)
6
6
  # Assumed to be sensible and latent at all flow
7
7
  heat_exchanger_type = heat_exchanger_air_to_air_sensible_and_latent.heatExchangerType
8
-
9
- if heat_exchanger_type == 'Plate'
10
- heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat100HeatingAirFlow(0.755)
11
- heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat100HeatingAirFlow(0.564)
12
- heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat75HeatingAirFlow(0.791)
13
- heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat75HeatingAirFlow(0.625)
14
- heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat100CoolingAirFlow(0.755)
15
- heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat100CoolingAirFlow(0.564)
16
- heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat75CoolingAirFlow(0.791)
17
- heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat75CoolingAirFlow(0.625)
18
- heat_exchanger_air_to_air_sensible_and_latent.setNominalElectricPower(0.0)
19
- else # Rotary
20
- heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat100HeatingAirFlow(0.75)
21
- heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat100HeatingAirFlow(0.74)
22
- heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat75HeatingAirFlow(0.79)
23
- heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat75HeatingAirFlow(0.79)
24
- heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat100CoolingAirFlow(0.75)
25
- heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat100CoolingAirFlow(0.74)
26
- heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat75CoolingAirFlow(0.78)
27
- heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat75CoolingAirFlow(0.78)
8
+ if heat_exchanger_air_to_air_sensible_and_latent.model.version < OpenStudio::VersionString.new('3.8.0')
9
+ if heat_exchanger_type == 'Plate'
10
+ heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat100HeatingAirFlow(0.755)
11
+ heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat100HeatingAirFlow(0.564)
12
+ heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat75HeatingAirFlow(0.791)
13
+ heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat75HeatingAirFlow(0.625)
14
+ heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat100CoolingAirFlow(0.755)
15
+ heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat100CoolingAirFlow(0.564)
16
+ heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat75CoolingAirFlow(0.791)
17
+ heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat75CoolingAirFlow(0.625)
18
+ heat_exchanger_air_to_air_sensible_and_latent.setNominalElectricPower(0.0)
19
+ else # Rotary
20
+ heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat100HeatingAirFlow(0.75)
21
+ heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat100HeatingAirFlow(0.74)
22
+ heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat75HeatingAirFlow(0.79)
23
+ heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat75HeatingAirFlow(0.79)
24
+ heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat100CoolingAirFlow(0.75)
25
+ heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat100CoolingAirFlow(0.74)
26
+ heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat75CoolingAirFlow(0.78)
27
+ heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat75CoolingAirFlow(0.78)
28
+ end
29
+ else
30
+ values = Hash.new{|hash, key| hash[key] = Hash.new}
31
+ if heat_exchanger_type == 'Plate'
32
+ values['Sensible Heating'][0.75] = 0.791
33
+ values['Sensible Heating'][1.0] = 0.755
34
+ values['Latent Heating'][0.75] = 0.625
35
+ values['Latent Heating'][1.0] = 0.564
36
+ values['Sensible Cooling'][0.75] = 0.791
37
+ values['Sensible Cooling'][1.0] = 0.755
38
+ values['Latent Cooling'][0.75] = 0.625
39
+ values['Latent Cooling'][1.0] = 0.564
40
+ heat_exchanger_air_to_air_sensible_and_latent.setNominalElectricPower(0.0)
41
+ else
42
+ values['Sensible Heating'][0.75] = 0.79
43
+ values['Sensible Heating'][1.0] = 0.75
44
+ values['Latent Heating'][0.75] = 0.79
45
+ values['Latent Heating'][1.0] = 0.74
46
+ values['Sensible Cooling'][0.75] = 0.78
47
+ values['Sensible Cooling'][1.0] = 0.75
48
+ values['Latent Cooling'][0.75] = 0.78
49
+ values['Latent Cooling'][1.0] = 0.74
50
+ end
51
+ OpenstudioStandards::HVAC.heat_exchanger_air_to_air_set_effectiveness_values(heat_exchanger_air_to_air_sensible_and_latent, defaults: false, values: values)
28
52
  end
29
53
 
30
54
  OpenStudio.logFree(OpenStudio::Info, 'openstudio.ze_aedg_multifamily.HeatExchangerAirToAirSensibleAndLatent', "For #{heat_exchanger_air_to_air_sensible_and_latent.name}, set sensible and latent effectiveness to #{heat_exchanger_type} values.")
@@ -80,4 +80,15 @@ class NRELZNEReady2017 < ASHRAE901
80
80
 
81
81
  OpenStudio.logFree(OpenStudio::Info, 'openstudio.nrel_zne_ready_2017.Model', "Finished applying HVAC efficiency standards for #{template} template.")
82
82
  end
83
+
84
+ # Default 5-sided (exterior walls and roof) airtightness design value (m^3/h-m^2) from a building pressurization test at 75 Pascals.
85
+ def default_airtightness
86
+ airtightness_value = 5.0
87
+ return airtightness_value
88
+ end
89
+
90
+ # Buildings built to this standard are assumed to have an air barrier
91
+ def default_air_barrier
92
+ return true
93
+ end
83
94
  end
@@ -136,12 +136,4 @@ class NRELZNEReady2017 < ASHRAE901
136
136
 
137
137
  return [sensor_1_frac, sensor_2_frac, sensor_1_window, sensor_2_window]
138
138
  end
139
-
140
- # Baseline infiltration rate
141
- #
142
- # @return [Double] the baseline infiltration rate, in cfm/ft^2 exterior above grade wall area at 75 Pa
143
- def space_infiltration_rate_75_pa(space = nil)
144
- basic_infil_rate_cfm_per_ft2 = 0.5 # Half of 90.1-2013
145
- return basic_infil_rate_cfm_per_ft2
146
- end
147
139
  end