openstudio-standards 0.7.0 → 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 (363) 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 +5 -5
  283. data/lib/openstudio-standards.rb +32 -12
  284. metadata +79 -81
  285. data/data/standards/OpenStudio_Standards-ashrae_90_1.xlsx +0 -0
  286. data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.refrigeration.rb +0 -13
  287. data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.refrigeration.rb +0 -13
  288. data/lib/openstudio-standards/prototypes/cbes/cbes.refrigeration.rb +0 -13
  289. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.exterior_lights.rb +0 -432
  290. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.Space.rb +0 -11
  291. 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
  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_cases.json +0 -1456
  293. 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
  294. 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
  295. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.Space.rb +0 -11
  296. 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
  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_cases.json +0 -1456
  298. 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
  299. 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
  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_cases.json +0 -1456
  301. 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
  302. 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
  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_cases.json +0 -1456
  304. 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
  305. 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
  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_cases.json +0 -763
  307. 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
  308. 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
  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_cases.json +0 -763
  310. 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
  311. 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
  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_cases.json +0 -1456
  313. 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
  314. 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
  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_cases.json +0 -1456
  316. 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
  317. 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
  318. data/lib/openstudio-standards/standards/cbes/cbes.Space.rb +0 -11
  319. data/lib/openstudio-standards/standards/cbes/cbes_t24_2005/cbes_t24_2005.Space.rb +0 -11
  320. data/lib/openstudio-standards/standards/cbes/cbes_t24_2008/cbes_t24_2008.Space.rb +0 -11
  321. data/lib/openstudio-standards/standards/deer/deer.Space.rb +0 -20
  322. data/lib/openstudio-standards/standards/deer/deer_1985/data/deer_1985.ref_cases.json +0 -1456
  323. data/lib/openstudio-standards/standards/deer/deer_1985/data/deer_1985.ref_lnup.json +0 -562
  324. data/lib/openstudio-standards/standards/deer/deer_1996/data/deer_1996.ref_cases.json +0 -1456
  325. data/lib/openstudio-standards/standards/deer/deer_1996/data/deer_1996.ref_lnup.json +0 -562
  326. data/lib/openstudio-standards/standards/deer/deer_2003/data/deer_2003.ref_cases.json +0 -1456
  327. data/lib/openstudio-standards/standards/deer/deer_2003/data/deer_2003.ref_lnup.json +0 -562
  328. data/lib/openstudio-standards/standards/deer/deer_2007/data/deer_2007.ref_cases.json +0 -1456
  329. data/lib/openstudio-standards/standards/deer/deer_2007/data/deer_2007.ref_lnup.json +0 -562
  330. data/lib/openstudio-standards/standards/deer/deer_2011/data/deer_2011.ref_cases.json +0 -1456
  331. data/lib/openstudio-standards/standards/deer/deer_2011/data/deer_2011.ref_lnup.json +0 -562
  332. data/lib/openstudio-standards/standards/deer/deer_2014/data/deer_2014.ref_cases.json +0 -1456
  333. data/lib/openstudio-standards/standards/deer/deer_2014/data/deer_2014.ref_lnup.json +0 -562
  334. data/lib/openstudio-standards/standards/deer/deer_2015/data/deer_2015.ref_cases.json +0 -1456
  335. data/lib/openstudio-standards/standards/deer/deer_2015/data/deer_2015.ref_lnup.json +0 -562
  336. data/lib/openstudio-standards/standards/deer/deer_2017/data/deer_2017.ref_cases.json +0 -1456
  337. data/lib/openstudio-standards/standards/deer/deer_2017/data/deer_2017.ref_lnup.json +0 -562
  338. data/lib/openstudio-standards/standards/deer/deer_2020/data/deer_2020.ref_cases.json +0 -1456
  339. data/lib/openstudio-standards/standards/deer/deer_2020/data/deer_2020.ref_lnup.json +0 -562
  340. data/lib/openstudio-standards/standards/deer/deer_2025/data/deer_2025.ref_cases.json +0 -1456
  341. data/lib/openstudio-standards/standards/deer/deer_2025/data/deer_2025.ref_lnup.json +0 -562
  342. data/lib/openstudio-standards/standards/deer/deer_2030/data/deer_2030.ref_cases.json +0 -1456
  343. data/lib/openstudio-standards/standards/deer/deer_2030/data/deer_2030.ref_lnup.json +0 -562
  344. data/lib/openstudio-standards/standards/deer/deer_2035/data/deer_2035.ref_cases.json +0 -1456
  345. data/lib/openstudio-standards/standards/deer/deer_2035/data/deer_2035.ref_lnup.json +0 -562
  346. data/lib/openstudio-standards/standards/deer/deer_2040/data/deer_2040.ref_cases.json +0 -1456
  347. data/lib/openstudio-standards/standards/deer/deer_2040/data/deer_2040.ref_lnup.json +0 -562
  348. data/lib/openstudio-standards/standards/deer/deer_2045/data/deer_2045.ref_cases.json +0 -1456
  349. data/lib/openstudio-standards/standards/deer/deer_2045/data/deer_2045.ref_lnup.json +0 -562
  350. data/lib/openstudio-standards/standards/deer/deer_2050/data/deer_2050.ref_cases.json +0 -1456
  351. data/lib/openstudio-standards/standards/deer/deer_2050/data/deer_2050.ref_lnup.json +0 -562
  352. data/lib/openstudio-standards/standards/deer/deer_2055/data/deer_2055.ref_cases.json +0 -1456
  353. data/lib/openstudio-standards/standards/deer/deer_2055/data/deer_2055.ref_lnup.json +0 -562
  354. data/lib/openstudio-standards/standards/deer/deer_2060/data/deer_2060.ref_cases.json +0 -1456
  355. data/lib/openstudio-standards/standards/deer/deer_2060/data/deer_2060.ref_lnup.json +0 -562
  356. data/lib/openstudio-standards/standards/deer/deer_2065/data/deer_2065.ref_cases.json +0 -1456
  357. data/lib/openstudio-standards/standards/deer/deer_2065/data/deer_2065.ref_lnup.json +0 -562
  358. data/lib/openstudio-standards/standards/deer/deer_2070/data/deer_2070.ref_cases.json +0 -1456
  359. data/lib/openstudio-standards/standards/deer/deer_2070/data/deer_2070.ref_lnup.json +0 -562
  360. data/lib/openstudio-standards/standards/deer/deer_2075/data/deer_2075.ref_cases.json +0 -1456
  361. data/lib/openstudio-standards/standards/deer/deer_2075/data/deer_2075.ref_lnup.json +0 -562
  362. data/lib/openstudio-standards/standards/deer/deer_pre_1975/data/deer_pre_1975.ref_cases.json +0 -1456
  363. 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