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
@@ -105,9 +105,8 @@ class Standard
105
105
  # @param set_electric_equipment [Boolean] if true, set the electric equipment density
106
106
  # @param set_gas_equipment [Boolean] if true, set the gas equipment density
107
107
  # @param set_ventilation [Boolean] if true, set the ventilation rates (per-person and per-area)
108
- # @param set_infiltration [Boolean] if true, set the infiltration rates
109
108
  # @return [Boolean] returns true if successful, false if not
110
- def space_type_apply_internal_loads(space_type, set_people, set_lights, set_electric_equipment, set_gas_equipment, set_ventilation, set_infiltration)
109
+ def space_type_apply_internal_loads(space_type, set_people, set_lights, set_electric_equipment, set_gas_equipment, set_ventilation)
111
110
  # Skip plenums
112
111
  # Check if the space type name
113
112
  # contains the word plenum.
@@ -437,50 +436,6 @@ class Standard
437
436
 
438
437
  end
439
438
 
440
- # Infiltration
441
- infiltration_have_info = false
442
- infiltration_per_area_ext = space_type_properties['infiltration_per_exterior_area'].to_f
443
- infiltration_per_area_ext_wall = space_type_properties['infiltration_per_exterior_wall_area'].to_f
444
- infiltration_ach = space_type_properties['infiltration_air_changes'].to_f
445
- unless infiltration_per_area_ext.zero? && infiltration_per_area_ext_wall.zero? && infiltration_ach.zero?
446
- infiltration_have_info = true
447
- end
448
-
449
- if set_infiltration && infiltration_have_info
450
- # Remove all but the first instance
451
- instances = space_type.spaceInfiltrationDesignFlowRates.sort
452
- if instances.empty?
453
- instance = OpenStudio::Model::SpaceInfiltrationDesignFlowRate.new(space_type.model)
454
- instance.setName("#{space_type.name} Infiltration")
455
- instance.setSpaceType(space_type)
456
- OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.SpaceType', "#{space_type.name} had no infiltration objects, one has been created.")
457
- instances << instance
458
- elsif instances.size > 1
459
- instances.each_with_index do |inst, i|
460
- next if i.zero?
461
-
462
- OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.SpaceType', "Removed #{inst.name} from #{space_type.name}.")
463
- inst.remove
464
- end
465
- end
466
-
467
- # Modify each instance
468
- space_type.spaceInfiltrationDesignFlowRates.sort.each do |inst|
469
- unless infiltration_per_area_ext.zero?
470
- inst.setFlowperExteriorSurfaceArea(OpenStudio.convert(infiltration_per_area_ext.to_f, 'ft^3/min*ft^2', 'm^3/s*m^2').get.round(13))
471
- OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.SpaceType', "#{space_type.name} set infiltration to #{ventilation_ach} per ft^2 exterior surface area.")
472
- end
473
- unless infiltration_per_area_ext_wall.zero?
474
- inst.setFlowperExteriorWallArea(OpenStudio.convert(infiltration_per_area_ext_wall.to_f, 'ft^3/min*ft^2', 'm^3/s*m^2').get)
475
- OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.SpaceType', "#{space_type.name} set infiltration to #{infiltration_per_area_ext_wall} per ft^2 exterior wall area.")
476
- end
477
- unless infiltration_ach.zero?
478
- inst.setAirChangesperHour(infiltration_ach)
479
- OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.SpaceType', "#{space_type.name} set infiltration to #{ventilation_ach} ACH.")
480
- end
481
- end
482
- end
483
-
484
439
  return true
485
440
  end
486
441
 
@@ -612,12 +567,11 @@ class Standard
612
567
  # @param set_lights [Boolean] if true, set the lighting schedule
613
568
  # @param set_electric_equipment [Boolean] if true, set the electric schedule schedule
614
569
  # @param set_gas_equipment [Boolean] if true, set the gas equipment density
615
- # @param set_infiltration [Boolean] if true, set the infiltration schedule
616
570
  # @param make_thermostat [Boolean] if true, makes a thermostat for this space type from the
617
571
  # schedules listed for the space type. This thermostat is not hooked to any zone by this method,
618
572
  # but may be found and used later.
619
573
  # @return [Boolean] returns true if successful, false if not
620
- def space_type_apply_internal_load_schedules(space_type, set_people, set_lights, set_electric_equipment, set_gas_equipment, set_ventilation, set_infiltration, make_thermostat)
574
+ def space_type_apply_internal_load_schedules(space_type, set_people, set_lights, set_electric_equipment, set_gas_equipment, set_ventilation, make_thermostat)
621
575
  # Get the standards data
622
576
  space_type_properties = space_type_get_standards_data(space_type)
623
577
 
@@ -673,15 +627,6 @@ class Standard
673
627
  end
674
628
  end
675
629
 
676
- # Infiltration
677
- if set_infiltration
678
- infiltration_sch = space_type_properties['infiltration_schedule']
679
- unless infiltration_sch.nil?
680
- default_sch_set.setInfiltrationSchedule(model_add_schedule(space_type.model, infiltration_sch))
681
- OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.SpaceType', "#{space_type.name} set infiltration schedule to #{infiltration_sch}.")
682
- end
683
- end
684
-
685
630
  # Thermostat
686
631
  if make_thermostat
687
632
  thermostat = OpenStudio::Model::ThermostatSetpointDualSetpoint.new(space_type.model)
@@ -268,9 +268,9 @@ class Standard
268
268
  # @return [Double] UA product in W/K
269
269
  def surface_subsurface_ua(surface)
270
270
  # Compute the surface UA product
271
+ cons = surface.construction.get
272
+ fc_obj_type = cons.iddObjectType.valueName.to_s
271
273
  if surface.outsideBoundaryCondition.to_s == 'GroundFCfactorMethod' && surface.construction.is_initialized
272
- cons = surface.construction.get
273
- fc_obj_type = cons.iddObjectType.valueName.to_s
274
274
  case fc_obj_type
275
275
  when 'OS_Construction_FfactorGroundFloor'
276
276
  cons = surface.construction.get.to_FFactorGroundFloorConstruction.get
@@ -295,6 +295,9 @@ class Standard
295
295
 
296
296
  ua = u_eff * surface.netArea
297
297
  end
298
+ elsif fc_obj_type == 'OS_Construction_AirBoundary'
299
+ # Air boundary meant for lighting and air exchanges, no heat transfer happen in this surface.
300
+ ua = 0.0
298
301
  else
299
302
  ua = surface.uFactor.get * surface.netArea if surface.uFactor.is_initialized
300
303
  end
@@ -302,10 +305,15 @@ class Standard
302
305
  surface.subSurfaces.sort.each do |subsurface|
303
306
  subsurface_construction = subsurface.construction.get
304
307
  u_factor = OpenstudioStandards::SqlFile.construction_calculated_fenestration_u_factor(subsurface_construction)
308
+ if !u_factor && subsurface.uFactor.is_initialized
309
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.surface', "Failed to search subsurface construction: #{subsurface_construction.name.get} u factor from simulation output file (SQL). It is likely due to the model is not simulated.")
310
+ u_factor = subsurface.uFactor.get
311
+ end
312
+ prm_raise(u_factor, @sizing_run_dir, "Failed to calculate subsurface #{subsurface_construction.name.get} u-factor. It is likely the subsurface construction is not defined or the model is not simulated")
305
313
  ua += u_factor * subsurface.netArea
306
314
  end
307
315
 
308
- return ua
316
+ ua
309
317
  end
310
318
 
311
319
  # Adjust the fenestration area to the values specified by the reduction value in a surface
@@ -673,125 +673,6 @@ class Standard
673
673
  return [min_area_m2, min_area_per_occ]
674
674
  end
675
675
 
676
- # Add Exhaust Fans based on space type lookup.
677
- # This measure doesn't look if DCV is needed.
678
- # Others methods can check if DCV needed and add it.
679
- #
680
- # @param thermal_zone [OpenStudio::Model::ThermalZone] thermal zone
681
- # @param exhaust_makeup_inputs [Hash] has of makeup exhaust inputs
682
- # @return [Hash] Hash of newly made exhaust fan objects along with secondary exhaust and zone mixing objects
683
- # @todo combine availability and fraction flow schedule to make zone mixing schedule
684
- def thermal_zone_add_exhaust(thermal_zone, exhaust_makeup_inputs = {})
685
- exhaust_fans = {} # key is primary exhaust value is hash of arrays of secondary objects
686
-
687
- # hash to store space type information
688
- space_type_hash = {} # key is space type value is floor_area_si
689
-
690
- # get space type ratio for spaces in zone, making more than one exhaust fan if necessary
691
- thermal_zone.spaces.each do |space|
692
- next unless space.spaceType.is_initialized
693
- next unless space.partofTotalFloorArea
694
-
695
- space_type = space.spaceType.get
696
- if space_type_hash.key?(space_type)
697
- space_type_hash[space_type] += space.floorArea # excluding space.multiplier since used to calc loads in zone
698
- else
699
- next unless space_type.standardsBuildingType.is_initialized
700
- next unless space_type.standardsSpaceType.is_initialized
701
-
702
- space_type_hash[space_type] = space.floorArea # excluding space.multiplier since used to calc loads in zone
703
- end
704
- end
705
-
706
- # loop through space type hash and add exhaust as needed
707
- space_type_hash.each do |space_type, floor_area|
708
- # get floor custom or calculated floor area for max flow rate calculation
709
- makeup_target = [space_type.standardsBuildingType.get, space_type.standardsSpaceType.get]
710
- if exhaust_makeup_inputs.key?(makeup_target) && exhaust_makeup_inputs[makeup_target].key?(:target_effective_floor_area)
711
- # pass in custom floor area
712
- floor_area_si = exhaust_makeup_inputs[makeup_target][:target_effective_floor_area] / thermal_zone.multiplier.to_f
713
- floor_area_ip = OpenStudio.convert(floor_area_si, 'm^2', 'ft^2').get
714
- else
715
- floor_area_ip = OpenStudio.convert(floor_area, 'm^2', 'ft^2').get
716
- end
717
-
718
- space_type_properties = space_type_get_standards_data(space_type)
719
- exhaust_per_area = space_type_properties['exhaust_per_area']
720
- next if exhaust_per_area.nil?
721
-
722
- maximum_flow_rate_ip = exhaust_per_area * floor_area_ip
723
- maximum_flow_rate_si = OpenStudio.convert(maximum_flow_rate_ip, 'cfm', 'm^3/s').get
724
- if space_type_properties['exhaust_availability_schedule'].nil?
725
- exhaust_schedule = thermal_zone.model.alwaysOnDiscreteSchedule
726
- exhaust_flow_schedule = exhaust_schedule
727
- else
728
- sch_name = space_type_properties['exhaust_availability_schedule']
729
- exhaust_schedule = model_add_schedule(thermal_zone.model, sch_name)
730
- flow_sch_name = space_type_properties['exhaust_flow_fraction_schedule']
731
- exhaust_flow_schedule = model_add_schedule(thermal_zone.model, flow_sch_name)
732
- unless exhaust_schedule
733
- OpenStudio.logFree(OpenStudio::Warn, 'openstudio.Standards.ThermalZone', "Could not find an exhaust schedule called #{sch_name}, exhaust fans will run continuously.")
734
- exhaust_schedule = thermal_zone.model.alwaysOnDiscreteSchedule
735
- end
736
- end
737
-
738
- # add exhaust fans
739
- zone_exhaust_fan = OpenStudio::Model::FanZoneExhaust.new(thermal_zone.model)
740
- zone_exhaust_fan.setName("#{thermal_zone.name} Exhaust Fan")
741
- zone_exhaust_fan.setAvailabilitySchedule(exhaust_schedule)
742
- zone_exhaust_fan.setFlowFractionSchedule(exhaust_flow_schedule)
743
- # not using zone_exhaust_fan.setFlowFractionSchedule. Exhaust fans are on when available
744
- zone_exhaust_fan.setMaximumFlowRate(maximum_flow_rate_si)
745
- zone_exhaust_fan.setEndUseSubcategory('Zone Exhaust Fans')
746
- zone_exhaust_fan.addToThermalZone(thermal_zone)
747
- exhaust_fans[zone_exhaust_fan] = {} # keys are :zone_mixing and :transfer_air_source_zone_exhaust
748
-
749
- # set fan pressure rise
750
- fan_zone_exhaust_apply_prototype_fan_pressure_rise(zone_exhaust_fan)
751
-
752
- # update efficiency and pressure rise
753
- prototype_fan_apply_prototype_fan_efficiency(zone_exhaust_fan)
754
-
755
- # add and alter objectxs related to zone exhaust makeup air
756
- if exhaust_makeup_inputs.key?(makeup_target) && exhaust_makeup_inputs[makeup_target][:source_zone]
757
-
758
- # add balanced schedule to zone_exhaust_fan
759
- balanced_sch_name = space_type_properties['balanced_exhaust_fraction_schedule']
760
- balanced_exhaust_schedule = model_add_schedule(thermal_zone.model, balanced_sch_name).to_ScheduleRuleset.get
761
- zone_exhaust_fan.setBalancedExhaustFractionSchedule(balanced_exhaust_schedule)
762
-
763
- # use max value of balanced exhaust fraction schedule for maximum flow rate
764
- max_sch_val = OpenstudioStandards::Schedules.schedule_ruleset_get_min_max(balanced_exhaust_schedule)['max']
765
- transfer_air_zone_mixing_si = maximum_flow_rate_si * max_sch_val
766
-
767
- # add dummy exhaust fan to a transfer_air_source_zones
768
- transfer_air_source_zone_exhaust = OpenStudio::Model::FanZoneExhaust.new(thermal_zone.model)
769
- transfer_air_source_zone_exhaust.setName("#{thermal_zone.name} Transfer Air Source")
770
- transfer_air_source_zone_exhaust.setAvailabilitySchedule(exhaust_schedule)
771
- # not using zone_exhaust_fan.setFlowFractionSchedule. Exhaust fans are on when available
772
- transfer_air_source_zone_exhaust.setMaximumFlowRate(transfer_air_zone_mixing_si)
773
- transfer_air_source_zone_exhaust.setFanEfficiency(1.0)
774
- transfer_air_source_zone_exhaust.setPressureRise(0.0)
775
- transfer_air_source_zone_exhaust.setEndUseSubcategory('Zone Exhaust Fans')
776
- transfer_air_source_zone_exhaust.addToThermalZone(exhaust_makeup_inputs[makeup_target][:source_zone])
777
- exhaust_fans[zone_exhaust_fan][:transfer_air_source_zone_exhaust] = transfer_air_source_zone_exhaust
778
-
779
- # @todo make zone mixing schedule by combining exhaust availability and fraction flow
780
- zone_mixing_schedule = exhaust_schedule
781
-
782
- # add zone mixing
783
- zone_mixing = OpenStudio::Model::ZoneMixing.new(thermal_zone)
784
- zone_mixing.setSchedule(zone_mixing_schedule)
785
- zone_mixing.setSourceZone(exhaust_makeup_inputs[makeup_target][:source_zone])
786
- zone_mixing.setDesignFlowRate(transfer_air_zone_mixing_si)
787
- exhaust_fans[zone_exhaust_fan][:zone_mixing] = zone_mixing
788
-
789
- end
790
- end
791
-
792
- return exhaust_fans
793
- end
794
-
795
676
  # returns true if DCV is required for exhaust fan for specified tempate
796
677
  #
797
678
  # @param thermal_zone [OpenStudio::Model::ThermalZone] thermal zone
@@ -811,7 +692,7 @@ class Standard
811
692
 
812
693
  # are there associated zone mixing or dummy exhaust objects that need to change when this changes?
813
694
  # How are these objects identified?
814
- # If this is run directly after thermal_zone_add_exhaust(thermal_zone) it will return a hash where each key is an exhaust object and hash is a hash of related zone mixing and dummy exhaust from the source zone
695
+ # If this is run directly after create_exhaust_fan(thermal_zone) it will return a hash where each key is an exhaust object and hash is a hash of related zone mixing and dummy exhaust from the source zone
815
696
  return true
816
697
  end
817
698
 
@@ -0,0 +1,142 @@
1
+ {
2
+ "computer_room_acs": [
3
+ {
4
+ "template": "90.1-2004",
5
+ "cooling_type": "AirCooled",
6
+ "heating_type": "Electric Resistance or None",
7
+ "subcategory": "CRAC",
8
+ "minimum_capacity": 0,
9
+ "maximum_capacity": 64999,
10
+ "start_date": "1919-09-09T00:00:00+00:00",
11
+ "end_date": "2999-09-09T00:00:00+00:00",
12
+ "minimum_seasonal_energy_efficiency_ratio": null,
13
+ "minimum_energy_efficiency_ratio": null,
14
+ "minimum_integrated_part_load_value": null,
15
+ "minimum_integrated_energy_efficiency_ratio": null,
16
+ "ptac_eer_coefficient_1": null,
17
+ "ptac_eer_coefficient_2": null,
18
+ "minimum_scop": 2.2,
19
+ "cool_cap_ft": "PSZ-Fine Storage DX Coil Cap-FT",
20
+ "cool_cap_fflow": "DX Coil Cap-FF",
21
+ "cool_eir_ft": "PSZ-AC DX Coil EIR-FT",
22
+ "cool_eir_fflow": "Split DX Coil EIR-FF",
23
+ "cool_plf_fplr": "HPACCOOLPLFFPLR",
24
+ "notes": "2004 not specified, follow ASHRAE 90.1-2013 Table 6.8.1-11. capacity here is sensible only. SCOP for downflow units"
25
+ },
26
+ {
27
+ "template": "90.1-2004",
28
+ "cooling_type": "AirCooled",
29
+ "heating_type": "Electric Resistance or None",
30
+ "subcategory": "CRAC",
31
+ "minimum_capacity": 65000,
32
+ "maximum_capacity": 239999,
33
+ "start_date": "1919-09-09T00:00:00+00:00",
34
+ "end_date": "2999-09-09T00:00:00+00:00",
35
+ "minimum_seasonal_energy_efficiency_ratio": null,
36
+ "minimum_energy_efficiency_ratio": null,
37
+ "minimum_integrated_part_load_value": null,
38
+ "minimum_integrated_energy_efficiency_ratio": null,
39
+ "ptac_eer_coefficient_1": null,
40
+ "ptac_eer_coefficient_2": null,
41
+ "minimum_scop": 2.1,
42
+ "cool_cap_ft": "PSZ-Fine Storage DX Coil Cap-FT",
43
+ "cool_cap_fflow": "DX Coil Cap-FF",
44
+ "cool_eir_ft": "PSZ-AC DX Coil EIR-FT",
45
+ "cool_eir_fflow": "Split DX Coil EIR-FF",
46
+ "cool_plf_fplr": "HPACCOOLPLFFPLR",
47
+ "notes": "2004 not specified, follow ASHRAE 90.1-2013 Table 6.8.1-11. capacity here is sensible only. SCOP for downflow units"
48
+ },
49
+ {
50
+ "template": "90.1-2004",
51
+ "cooling_type": "AirCooled",
52
+ "heating_type": "Electric Resistance or None",
53
+ "subcategory": "CRAC",
54
+ "minimum_capacity": 240000,
55
+ "maximum_capacity": 9999999,
56
+ "start_date": "1919-09-09T00:00:00+00:00",
57
+ "end_date": "2999-09-09T00:00:00+00:00",
58
+ "minimum_seasonal_energy_efficiency_ratio": null,
59
+ "minimum_energy_efficiency_ratio": null,
60
+ "minimum_integrated_part_load_value": null,
61
+ "minimum_integrated_energy_efficiency_ratio": null,
62
+ "ptac_eer_coefficient_1": null,
63
+ "ptac_eer_coefficient_2": null,
64
+ "minimum_scop": 1.9,
65
+ "cool_cap_ft": "PSZ-Fine Storage DX Coil Cap-FT",
66
+ "cool_cap_fflow": "DX Coil Cap-FF",
67
+ "cool_eir_ft": "PSZ-AC DX Coil EIR-FT",
68
+ "cool_eir_fflow": "Split DX Coil EIR-FF",
69
+ "cool_plf_fplr": "HPACCOOLPLFFPLR",
70
+ "notes": "2004 not specified, follow ASHRAE 90.1-2013 Table 6.8.1-11. capacity here is sensible only. SCOP for downflow units"
71
+ },
72
+ {
73
+ "template": "90.1-2004",
74
+ "cooling_type": "WaterCooled",
75
+ "heating_type": "All Other",
76
+ "subcategory": "CRAC",
77
+ "minimum_capacity": 0.0,
78
+ "maximum_capacity": 64999.0,
79
+ "start_date": "1919-09-09T00:00:00+00:00",
80
+ "end_date": "2999-09-09T00:00:00+00:00",
81
+ "minimum_seasonal_energy_efficiency_ratio": null,
82
+ "minimum_energy_efficiency_ratio": null,
83
+ "minimum_integrated_part_load_value": null,
84
+ "minimum_integrated_energy_efficiency_ratio": null,
85
+ "ptac_eer_coefficient_1": null,
86
+ "ptac_eer_coefficient_2": null,
87
+ "minimum_scop": 2.6,
88
+ "cool_cap_ft": "PSZ-Fine Storage DX Coil Cap-FT",
89
+ "cool_cap_fflow": "DX Coil Cap-FF",
90
+ "cool_eir_ft": "PSZ-AC DX Coil EIR-FT",
91
+ "cool_eir_fflow": "Split DX Coil EIR-FF",
92
+ "cool_plf_fplr": "HPACCOOLPLFFPLR",
93
+ "notes": "2004 not specified, follow ASHRAE 90.1-2010 Table 6.8.1K. capacity here is sensible only. SCOP for water cooled downflow units"
94
+ },
95
+ {
96
+ "template": "90.1-2004",
97
+ "cooling_type": "WaterCooled",
98
+ "heating_type": "All Other",
99
+ "subcategory": "CRAC",
100
+ "minimum_capacity": 65000.0,
101
+ "maximum_capacity": 239999.0,
102
+ "start_date": "1919-09-09T00:00:00+00:00",
103
+ "end_date": "2999-09-09T00:00:00+00:00",
104
+ "minimum_seasonal_energy_efficiency_ratio": null,
105
+ "minimum_energy_efficiency_ratio": null,
106
+ "minimum_integrated_part_load_value": null,
107
+ "minimum_integrated_energy_efficiency_ratio": null,
108
+ "ptac_eer_coefficient_1": null,
109
+ "ptac_eer_coefficient_2": null,
110
+ "minimum_scop": 2.5,
111
+ "cool_cap_ft": "PSZ-Fine Storage DX Coil Cap-FT",
112
+ "cool_cap_fflow": "DX Coil Cap-FF",
113
+ "cool_eir_ft": "PSZ-AC DX Coil EIR-FT",
114
+ "cool_eir_fflow": "Split DX Coil EIR-FF",
115
+ "cool_plf_fplr": "HPACCOOLPLFFPLR",
116
+ "notes": "2004 not specified, follow ASHRAE 90.1-2010 Table 6.8.1K. capacity here is sensible only. SCOP for water cooled downflow units"
117
+ },
118
+ {
119
+ "template": "90.1-2004",
120
+ "cooling_type": "WaterCooled",
121
+ "heating_type": "All Other",
122
+ "subcategory": "CRAC",
123
+ "minimum_capacity": 240000.0,
124
+ "maximum_capacity": 9999999.0,
125
+ "start_date": "1919-09-09T00:00:00+00:00",
126
+ "end_date": "2999-09-09T00:00:00+00:00",
127
+ "minimum_seasonal_energy_efficiency_ratio": null,
128
+ "minimum_energy_efficiency_ratio": null,
129
+ "minimum_integrated_part_load_value": null,
130
+ "minimum_integrated_energy_efficiency_ratio": null,
131
+ "ptac_eer_coefficient_1": null,
132
+ "ptac_eer_coefficient_2": null,
133
+ "minimum_scop": 2.4,
134
+ "cool_cap_ft": "PSZ-Fine Storage DX Coil Cap-FT",
135
+ "cool_cap_fflow": "DX Coil Cap-FF",
136
+ "cool_eir_ft": "PSZ-AC DX Coil EIR-FT",
137
+ "cool_eir_fflow": "Split DX Coil EIR-FF",
138
+ "cool_plf_fplr": "HPACCOOLPLFFPLR",
139
+ "notes": "2004 not specified, follow ASHRAE 90.1-2010 Table 6.8.1K. capacity here is sensible only. SCOP for water cooled downflow units"
140
+ }
141
+ ]
142
+ }