openstudio-standards 0.7.1 → 0.8.0.rc2

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 +22 -21
  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.CentralAirSourceHeatPump.rb +1 -1
  34. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Fan.rb +0 -7
  35. data/lib/openstudio-standards/prototypes/common/objects/Prototype.HeatExchangerAirToAirSensibleAndLatent.rb +36 -18
  36. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.hvac.rb +1 -1
  37. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +121 -239
  38. data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +179 -151
  39. data/lib/openstudio-standards/prototypes/common/objects/Prototype.refrigeration.rb +0 -466
  40. data/lib/openstudio-standards/prototypes/common/objects/Prototype.utilities.rb +18 -2
  41. data/lib/openstudio-standards/refrigeration/create_case.rb +125 -0
  42. data/lib/openstudio-standards/refrigeration/create_compressor.rb +78 -0
  43. data/lib/openstudio-standards/refrigeration/create_compressor_rack.rb +48 -0
  44. data/lib/openstudio-standards/refrigeration/create_refrigeration_system.rb +74 -0
  45. data/lib/openstudio-standards/refrigeration/create_typical_refrigeration.rb +161 -0
  46. data/lib/openstudio-standards/refrigeration/create_walkin.rb +116 -0
  47. data/lib/openstudio-standards/refrigeration/data/refrigerated_cases.csv +31 -0
  48. data/lib/openstudio-standards/refrigeration/data/refrigerated_walkins.csv +76 -0
  49. data/lib/openstudio-standards/refrigeration/data/refrigeration_compressors.csv +13 -0
  50. data/lib/openstudio-standards/refrigeration/data/typical_refrigerated_cases.csv +17 -0
  51. data/lib/openstudio-standards/refrigeration/data/typical_refrigerated_walkins.csv +53 -0
  52. data/lib/openstudio-standards/refrigeration/information.rb +130 -0
  53. data/lib/openstudio-standards/schedules/parametric.rb +1 -1
  54. data/lib/openstudio-standards/service_water_heating/create_typical.rb +299 -0
  55. data/lib/openstudio-standards/service_water_heating/create_water_heating_loop.rb +16 -14
  56. data/lib/openstudio-standards/service_water_heating/data/convert_data.rb +119 -0
  57. data/lib/openstudio-standards/service_water_heating/data/typical_water_use_equipment.csv +54 -0
  58. data/lib/openstudio-standards/service_water_heating/data/typical_water_use_equipment.json +810 -0
  59. data/lib/openstudio-standards/service_water_heating/information.rb +69 -0
  60. data/lib/openstudio-standards/sql_file/fenestration.rb +1 -1
  61. data/lib/openstudio-standards/standards/Standards.AirConditionerVariableRefrigerantFlow.rb +154 -0
  62. data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +35 -12
  63. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXMultiSpeed.rb +110 -61
  64. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +128 -29
  65. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +103 -38
  66. data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +1 -1
  67. data/lib/openstudio-standards/standards/Standards.CoilDX.rb +106 -5
  68. data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +8 -8
  69. data/lib/openstudio-standards/standards/Standards.CoolingTower.rb +44 -17
  70. data/lib/openstudio-standards/standards/Standards.Fan.rb +32 -21
  71. data/lib/openstudio-standards/standards/Standards.FluidCooler.rb +45 -18
  72. data/lib/openstudio-standards/standards/Standards.HeatExchangerSensLat.rb +14 -9
  73. data/lib/openstudio-standards/standards/Standards.Model.rb +294 -76
  74. data/lib/openstudio-standards/standards/Standards.Motor.rb +66 -0
  75. data/lib/openstudio-standards/standards/Standards.PlanarSurface.rb +2 -1
  76. data/lib/openstudio-standards/standards/Standards.Pump.rb +34 -20
  77. data/lib/openstudio-standards/standards/Standards.ServiceWaterHeating.rb +0 -353
  78. data/lib/openstudio-standards/standards/Standards.Space.rb +3 -107
  79. data/lib/openstudio-standards/standards/Standards.SpaceType.rb +2 -57
  80. data/lib/openstudio-standards/standards/Standards.Surface.rb +11 -3
  81. data/lib/openstudio-standards/standards/Standards.ThermalZone.rb +1 -120
  82. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.computer_room_acs.json +142 -0
  83. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.economizers.json +1006 -596
  84. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.energy_recovery.json +724 -0
  85. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ext_ltg.json +1258 -163
  86. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.motors.json +1070 -140
  87. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +33 -3374
  88. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.unitary_acs.json +1400 -340
  89. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.vrfs.json +769 -0
  90. 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
  91. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.computer_room_acs.json +142 -0
  92. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.economizers.json +1006 -596
  93. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.energy_recovery.json +724 -0
  94. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ext_ltg.json +1258 -163
  95. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.motors.json +1070 -140
  96. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +15 -3343
  97. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.unitary_acs.json +1840 -372
  98. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.vrfs.json +769 -0
  99. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirLoopHVAC.rb +20 -10
  100. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Space.rb +0 -9
  101. 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
  102. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.computer_room_acs.json +142 -0
  103. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.economizers.json +1006 -628
  104. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.energy_recovery.json +718 -712
  105. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ext_ltg.json +1438 -163
  106. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.motors.json +2552 -182
  107. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +14 -3368
  108. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.unitary_acs.json +2348 -352
  109. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.vrfs.json +769 -0
  110. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirLoopHVAC.rb +47 -61
  111. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Model.rb +6 -0
  112. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Motor.rb +11 -0
  113. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Space.rb +0 -9
  114. 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
  115. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.computer_room_acs.json +142 -0
  116. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.economizers.json +1006 -628
  117. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.energy_recovery.json +1358 -1346
  118. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ext_ltg.json +1438 -163
  119. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.motors.json +1359 -189
  120. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +19 -3451
  121. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.unitary_acs.json +2176 -616
  122. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.vrfs.json +616 -0
  123. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirLoopHVAC.rb +47 -61
  124. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.rb +9 -0
  125. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Motor.rb +11 -0
  126. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Space.rb +0 -9
  127. 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
  128. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.computer_room_acs.json +142 -0
  129. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.economizers.json +1006 -628
  130. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.energy_recovery.json +1188 -1424
  131. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.ext_ltg.json +1498 -163
  132. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.motors.json +1769 -189
  133. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.spc_typ.json +15 -3422
  134. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.unitary_acs.json +1807 -408
  135. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.vrfs.json +1024 -0
  136. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirLoopHVAC.rb +70 -87
  137. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.rb +9 -0
  138. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Motor.rb +11 -0
  139. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Space.rb +0 -9
  140. 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
  141. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.computer_room_acs.json +142 -0
  142. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.economizers.json +1006 -628
  143. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.energy_recovery.json +2806 -3296
  144. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.ext_ltg.json +1558 -163
  145. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.motors.json +1759 -189
  146. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.spc_typ.json +16 -3448
  147. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.unitary_acs.json +2758 -422
  148. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.vrfs.json +684 -0
  149. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.schedules.json +14 -3318
  150. 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
  151. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.chillers.json +1 -1
  152. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.economizers.json +953 -207
  153. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.energy_recovery.json +724 -0
  154. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.ext_ltg.json +5 -5
  155. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.spc_typ.json +11 -2858
  156. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.AirConditionerVariableRefrigerantFlow.rb +13 -0
  157. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.Model.rb +0 -18
  158. 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
  159. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.chillers.json +0 -51
  160. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.economizers.json +953 -207
  161. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.energy_recovery.json +724 -0
  162. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.ext_ltg.json +5 -5
  163. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.spc_typ.json +9 -2830
  164. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirConditionerVariableRefrigerantFlow.rb +13 -0
  165. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.rb +0 -18
  166. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.economizers.json +1006 -564
  167. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.energy_recovery.json +1264 -0
  168. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.ext_ltg.json +5 -5
  169. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.spc_typ.json +0 -1079
  170. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirLoopHVAC.rb +132 -288
  171. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.HeatExchangerSensLat.rb +44 -20
  172. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.Model.rb +11 -0
  173. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.Space.rb +0 -8
  174. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.economizers.json +1006 -564
  175. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.energy_recovery.json +1264 -0
  176. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.ext_ltg.json +5 -5
  177. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.spc_typ.json +0 -1079
  178. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirLoopHVAC.rb +137 -288
  179. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.HeatExchangerSensLat.rb +44 -20
  180. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Model.rb +11 -0
  181. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Space.rb +0 -9
  182. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirLoopHVAC.rb +12 -10
  183. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXSingleSpeed.rb +8 -6
  184. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXTwoSpeed.rb +8 -6
  185. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilDX.rb +9 -3
  186. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Fan.rb +6 -40
  187. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Model.rb +30 -337
  188. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Space.rb +4 -5
  189. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.SpaceType.rb +1 -2
  190. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.rb +56 -3
  191. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb +80 -0
  192. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.rb +0 -10
  193. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019_WaterHeaterMixed.rb +35 -0
  194. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.economizers.json +550 -0
  195. 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
  196. 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
  197. 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
  198. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.motors.json +225 -245
  199. 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
  200. 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
  201. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_enums.rb +19 -3
  202. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_airloop_hvac.json +185 -0
  203. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_airloop_hvac_doas.json +127 -0
  204. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_building.json +121 -0
  205. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_design_specification_outdoor_air.json +49 -0
  206. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_electric_equipment.json +113 -0
  207. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_exterior_lights.json +120 -0
  208. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_space.json +388 -0
  209. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_spacetype.json +367 -0
  210. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_thermal_zone.json +56 -0
  211. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_wateruse_connections.json +37 -0
  212. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_wateruse_equipment.json +69 -0
  213. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_wateruse_equipment_definition.json +37 -0
  214. data/lib/openstudio-standards/standards/cbes/cbes_pre_1978/data/cbes_pre_1978.ext_ltg.json +5 -5
  215. data/lib/openstudio-standards/standards/cbes/cbes_t24_1978/data/cbes_t24_1978.ext_ltg.json +5 -5
  216. data/lib/openstudio-standards/standards/cbes/cbes_t24_1992/data/cbes_t24_1992.ext_ltg.json +5 -5
  217. data/lib/openstudio-standards/standards/cbes/cbes_t24_2001/data/cbes_t24_2001.ext_ltg.json +5 -5
  218. data/lib/openstudio-standards/standards/cbes/cbes_t24_2005/data/cbes_t24_2005.ext_ltg.json +5 -5
  219. data/lib/openstudio-standards/standards/cbes/cbes_t24_2008/data/cbes_t24_2008.ext_ltg.json +5 -5
  220. data/lib/openstudio-standards/standards/deer/deer_1985/comstock_deer_1985/data/comstock_deer_1985.ext_ltg.json +5 -5
  221. data/lib/openstudio-standards/standards/deer/deer_1985/data/deer_1985.ext_ltg.json +5 -5
  222. data/lib/openstudio-standards/standards/deer/deer_1996/comstock_deer_1996/data/comstock_deer_1996.ext_ltg.json +5 -5
  223. data/lib/openstudio-standards/standards/deer/deer_1996/data/deer_1996.ext_ltg.json +5 -5
  224. data/lib/openstudio-standards/standards/deer/deer_2003/comstock_deer_2003/data/comstock_deer_2003.ext_ltg.json +5 -5
  225. data/lib/openstudio-standards/standards/deer/deer_2003/data/deer_2003.ext_ltg.json +5 -5
  226. data/lib/openstudio-standards/standards/deer/deer_2007/comstock_deer_2007/data/comstock_deer_2007.ext_ltg.json +5 -5
  227. data/lib/openstudio-standards/standards/deer/deer_2007/data/deer_2007.ext_ltg.json +5 -5
  228. data/lib/openstudio-standards/standards/deer/deer_2011/comstock_deer_2011/data/comstock_deer_2011.ext_ltg.json +5 -5
  229. data/lib/openstudio-standards/standards/deer/deer_2011/data/deer_2011.ext_ltg.json +5 -5
  230. data/lib/openstudio-standards/standards/deer/deer_2014/comstock_deer_2014/data/comstock_deer_2014.ext_ltg.json +5 -5
  231. data/lib/openstudio-standards/standards/deer/deer_2014/data/deer_2014.ext_ltg.json +5 -5
  232. data/lib/openstudio-standards/standards/deer/deer_2015/comstock_deer_2015/data/comstock_deer_2015.ext_ltg.json +5 -5
  233. data/lib/openstudio-standards/standards/deer/deer_2015/data/deer_2015.ext_ltg.json +5 -5
  234. data/lib/openstudio-standards/standards/deer/deer_2017/comstock_deer_2017/data/comstock_deer_2017.ext_ltg.json +5 -5
  235. data/lib/openstudio-standards/standards/deer/deer_2017/data/deer_2017.ext_ltg.json +5 -5
  236. data/lib/openstudio-standards/standards/deer/deer_2020/comstock_deer_2020/data/comstock_deer_2020.ext_ltg.json +5 -5
  237. data/lib/openstudio-standards/standards/deer/deer_2020/data/deer_2020.ext_ltg.json +5 -5
  238. data/lib/openstudio-standards/standards/deer/deer_2025/comstock_deer_2025/data/comstock_deer_2025.ext_ltg.json +5 -5
  239. data/lib/openstudio-standards/standards/deer/deer_2025/data/deer_2025.ext_ltg.json +5 -5
  240. data/lib/openstudio-standards/standards/deer/deer_2030/comstock_deer_2030/data/comstock_deer_2030.ext_ltg.json +5 -5
  241. data/lib/openstudio-standards/standards/deer/deer_2030/data/deer_2030.ext_ltg.json +5 -5
  242. data/lib/openstudio-standards/standards/deer/deer_2035/comstock_deer_2035/data/comstock_deer_2035.ext_ltg.json +5 -5
  243. data/lib/openstudio-standards/standards/deer/deer_2035/data/deer_2035.ext_ltg.json +5 -5
  244. data/lib/openstudio-standards/standards/deer/deer_2040/comstock_deer_2040/data/comstock_deer_2040.ext_ltg.json +5 -5
  245. data/lib/openstudio-standards/standards/deer/deer_2040/data/deer_2040.ext_ltg.json +5 -5
  246. data/lib/openstudio-standards/standards/deer/deer_2045/comstock_deer_2045/data/comstock_deer_2045.ext_ltg.json +5 -5
  247. data/lib/openstudio-standards/standards/deer/deer_2045/data/deer_2045.ext_ltg.json +5 -5
  248. data/lib/openstudio-standards/standards/deer/deer_2050/comstock_deer_2050/data/comstock_deer_2050.ext_ltg.json +5 -5
  249. data/lib/openstudio-standards/standards/deer/deer_2050/data/deer_2050.ext_ltg.json +5 -5
  250. data/lib/openstudio-standards/standards/deer/deer_2055/comstock_deer_2055/data/comstock_deer_2055.ext_ltg.json +5 -5
  251. data/lib/openstudio-standards/standards/deer/deer_2055/data/deer_2055.ext_ltg.json +5 -5
  252. data/lib/openstudio-standards/standards/deer/deer_2060/comstock_deer_2060/data/comstock_deer_2060.ext_ltg.json +5 -5
  253. data/lib/openstudio-standards/standards/deer/deer_2060/data/deer_2060.ext_ltg.json +5 -5
  254. data/lib/openstudio-standards/standards/deer/deer_2065/comstock_deer_2065/data/comstock_deer_2065.ext_ltg.json +5 -5
  255. data/lib/openstudio-standards/standards/deer/deer_2065/data/deer_2065.ext_ltg.json +5 -5
  256. data/lib/openstudio-standards/standards/deer/deer_2070/comstock_deer_2070/data/comstock_deer_2070.ext_ltg.json +5 -5
  257. data/lib/openstudio-standards/standards/deer/deer_2070/data/deer_2070.ext_ltg.json +5 -5
  258. data/lib/openstudio-standards/standards/deer/deer_2075/comstock_deer_2075/data/comstock_deer_2075.ext_ltg.json +5 -5
  259. data/lib/openstudio-standards/standards/deer/deer_2075/data/deer_2075.ext_ltg.json +5 -5
  260. data/lib/openstudio-standards/standards/deer/deer_pre_1975/comstock_deer_pre_1975/data/comstock_deer_pre_1975.ext_ltg.json +5 -5
  261. data/lib/openstudio-standards/standards/deer/deer_pre_1975/data/deer_pre_1975.ext_ltg.json +5 -5
  262. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/btap_pre1980.rb +10 -1
  263. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/data/unitary_acs.json +20 -20
  264. data/lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb +379 -27
  265. data/lib/openstudio-standards/standards/necb/NECB2011/autozone.rb +1 -4
  266. data/lib/openstudio-standards/standards/necb/NECB2011/beps_compliance_path.rb +0 -1
  267. data/lib/openstudio-standards/standards/necb/NECB2011/data/fuel_type_sets.json +1 -1
  268. data/lib/openstudio-standards/standards/necb/NECB2011/data/unitary_acs.json +20 -20
  269. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +34 -22
  270. data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +76 -23
  271. data/lib/openstudio-standards/standards/necb/NECB2011/necb_shw_calculation.xlsx +0 -0
  272. data/lib/openstudio-standards/standards/necb/NECB2011/service_water_heating.rb +4 -5
  273. data/lib/openstudio-standards/standards/necb/NECB2011/system_fuels.rb +6 -2
  274. data/lib/openstudio-standards/standards/necb/NECB2015/data/unitary_acs.json +26 -24
  275. data/lib/openstudio-standards/standards/necb/NECB2015/hvac_systems.rb +2 -1
  276. data/lib/openstudio-standards/standards/necb/NECB2020/data/unitary_acs.json +38 -32
  277. data/lib/openstudio-standards/standards/necb/common/btap_data.rb +215 -18
  278. data/lib/openstudio-standards/standards/necb/common/btap_datapoint.rb +190 -15
  279. data/lib/openstudio-standards/standards/necb/common/national_carbon_price_sched_feb_2025.json +60 -0
  280. data/lib/openstudio-standards/standards/necb/common/utility_pricing_2025-02-20.csv +92 -0
  281. data/lib/openstudio-standards/utilities/ruleset_check.rb +204 -0
  282. data/lib/openstudio-standards/version.rb +1 -1
  283. data/lib/openstudio-standards/weather/information.rb +1 -1
  284. data/lib/openstudio-standards.rb +32 -12
  285. metadata +78 -80
  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
@@ -285,20 +285,19 @@ module OpenstudioStandards
285
285
  hash['Toilet'] = { ratio: 0.0193, space_type_gen: true, default: false }
286
286
  hash['Undeveloped'] = { ratio: 0.0835, space_type_gen: false, default: false }
287
287
  hash['Xray'] = { ratio: 0.0220, space_type_gen: true, default: false }
288
- when 'SuperMarket'
289
- # @todo populate ratios for SuperMarket
290
- hash['Bakery'] = { ratio: 0.99, space_type_gen: true, default: false }
291
- hash['Deli'] = { ratio: 0.99, space_type_gen: true, default: false }
292
- hash['DryStorage'] = { ratio: 0.99, space_type_gen: true, default: false }
293
- hash['Office'] = { ratio: 0.99, space_type_gen: true, default: false }
294
- hash['Produce'] = { ratio: 0.99, space_type_gen: true, default: true }
295
- hash['Sales'] = { ratio: 0.99, space_type_gen: true, default: true }
296
- hash['Corridor'] = { ratio: 0.99, space_type_gen: true, default: true }
297
- hash['Dining'] = { ratio: 0.99, space_type_gen: true, default: true }
298
- hash['Elec/MechRoom'] = { ratio: 0.99, space_type_gen: true, default: true }
299
- hash['Meeting'] = { ratio: 0.99, space_type_gen: true, default: true }
300
- hash['Restroom'] = { ratio: 0.99, space_type_gen: true, default: true }
301
- hash['Vestibule'] = { ratio: 0.99, space_type_gen: true, default: true }
288
+ when 'SuperMarket', 'GroceryStore'
289
+ hash['Bakery'] = { ratio: 0.05, space_type_gen: true, default: false }
290
+ hash['Deli'] = { ratio: 0.0537, space_type_gen: true, default: false }
291
+ hash['DryStorage'] = { ratio: 0.1010, space_type_gen: true, default: false }
292
+ hash['Office'] = { ratio: 0.0067, space_type_gen: true, default: false }
293
+ hash['Produce'] = { ratio: 0.1701, space_type_gen: true, default: true }
294
+ hash['Sales'] = { ratio: 0.5495, space_type_gen: true, default: true }
295
+ hash['Corridor'] = { ratio: 0.0118, space_type_gen: true, default: true }
296
+ hash['Dining'] = { ratio: 0.0111, space_type_gen: true, default: true }
297
+ hash['Elec/MechRoom'] = { ratio: 0.0133, space_type_gen: true, default: true }
298
+ hash['Meeting'] = { ratio: 0.0111, space_type_gen: true, default: true }
299
+ hash['Restroom'] = { ratio: 0.0150, space_type_gen: true, default: true }
300
+ hash['Vestibule'] = { ratio: 0.0067, space_type_gen: true, default: true }
302
301
  when 'Laboratory'
303
302
  hash['Office'] = { ratio: 0.50, space_type_gen: true, default: true }
304
303
  hash['Open lab'] = { ratio: 0.35, space_type_gen: true, default: true }
@@ -384,11 +383,9 @@ module OpenstudioStandards
384
383
  hash['FacMaint'] = { ratio: 0.08, space_type_gen: true, default: false }
385
384
  hash['DormitoryRoom'] = { ratio: 0.1699, space_type_gen: true, default: false }
386
385
  when 'Gro'
387
- hash['GrocSales'] = { ratio: 0.8002, space_type_gen: true, default: true }
388
- hash['RefWalkInCool'] = { ratio: 0.0312, space_type_gen: true, default: false }
389
- hash['OfficeGeneral'] = { ratio: 0.07, space_type_gen: true, default: false }
390
- hash['RefFoodPrep'] = { ratio: 0.0253, space_type_gen: true, default: false }
391
- hash['RefWalkInFreeze'] = { ratio: 0.0162, space_type_gen: true, default: false }
386
+ hash['GrocSales'] = { ratio: 0.800, space_type_gen: true, default: true }
387
+ hash['OfficeGeneral'] = { ratio: 0.070, space_type_gen: true, default: false }
388
+ hash['RefFoodPrep'] = { ratio: 0.073, space_type_gen: true, default: false }
392
389
  hash['IndLoadDock'] = { ratio: 0.057, space_type_gen: true, default: false }
393
390
  when 'Hsp'
394
391
  hash['HspSurgOutptLab'] = { ratio: 0.2317, space_type_gen: true, default: false }
@@ -462,9 +459,13 @@ module OpenstudioStandards
462
459
  hash['RetailSales'] = { ratio: 0.8, space_type_gen: true, default: true }
463
460
  hash['StockRoom'] = { ratio: 0.2, space_type_gen: true, default: false }
464
461
  when 'SCn'
465
- hash['WarehouseCond'] = { ratio: 1.0, space_type_gen: true, default: true }
462
+ hash['WarehouseCond'] = { ratio: 0.951, space_type_gen: true, default: true }
463
+ hash['OfficeGeneral'] = { ratio: 0.049, space_type_gen: true, default: false }
464
+
466
465
  when 'SUn'
467
- hash['WarehouseUnCond'] = { ratio: 1.0, space_type_gen: true, default: true }
466
+ hash['WarehouseUnCond'] = { ratio: 0.951, space_type_gen: true, default: true }
467
+ hash['OfficeGeneral'] = { ratio: 0.049, space_type_gen: true, default: false }
468
+
468
469
  when 'WRf'
469
470
  hash['IndLoadDock'] = { ratio: 0.08, space_type_gen: true, default: false }
470
471
  hash['OfficeGeneral'] = { ratio: 0.02, space_type_gen: true, default: false }
@@ -0,0 +1,454 @@
1
+ module OpenstudioStandards
2
+ # The Exterior Lighting module provides methods create, modify, and get information about model exterior lighting
3
+ module ExteriorLighting
4
+ # @!group Create
5
+
6
+ # create an ExtertiorLights object from inputs
7
+ #
8
+ # @param model [OpenStudio::Model::Model] OpenStudio model object
9
+ # @param name [String] the name of the exterior lights
10
+ # @param power [Double] the watts value, can be watts or watts per area or length
11
+ # @param units [String] units for the power, either 'W', 'W/ft' or 'W/ft^2'
12
+ # @param multiplier [Double] the multiplier for the lighting, representing ft or ft^2
13
+ # @param schedule [OpenStudio::Model::Schedule] OpenStudio Schedule object. If nil, will default to always on.
14
+ # @param control_option [String] Options are 'ScheduleNameOnly' and 'AstronomicalClock'.
15
+ # 'ScheduleNameOnly' will follow the schedule. 'AstronomicalClock' will follow the schedule, but turn off lights when the sun is up.
16
+ # @return [OpenStudio::Model::ExteriorLights] OpenStudio ExteriorLights object
17
+ def self.model_create_exterior_lights(model,
18
+ name: nil,
19
+ power: 1.0,
20
+ units: 'W',
21
+ multiplier: 1.0,
22
+ schedule: nil,
23
+ control_option: 'AstronomicalClock')
24
+ # default name
25
+ if name.nil?
26
+ name = "Exterior Lights #{power.round(2)} #{units}"
27
+ else
28
+ end_use_category = name
29
+ name = "#{name} #{power.round(2)} #{units}"
30
+ end
31
+
32
+ # warn if incorrect control option
33
+ unless OpenStudio::Model::ExteriorLights::validControlOptionValues.include? control_option
34
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.ExteriorLighting', "Invalid control option #{control_option}. Use either ScheduleNameOnly' or 'AstronomicalClock'. Defaulting to 'AstronomicalClock'.")
35
+ control_option = 'AstronomicalClock'
36
+ end
37
+
38
+ # default schedule
39
+ schedule = model.alwaysOnDiscreteSchedule if schedule.nil?
40
+
41
+ # create exterior light definition
42
+ exterior_lights_definition = OpenStudio::Model::ExteriorLightsDefinition.new(model)
43
+ exterior_lights_definition.setName("#{name} Def (#{units})")
44
+ exterior_lights_definition.setDesignLevel(power)
45
+
46
+ # creating exterior lights object
47
+ exterior_lights = OpenStudio::Model::ExteriorLights.new(exterior_lights_definition, schedule)
48
+ exterior_lights.setMultiplier(multiplier)
49
+ exterior_lights.setName(name)
50
+ exterior_lights.setControlOption(control_option)
51
+ exterior_lights.setEndUseSubcategory(end_use_category)
52
+
53
+ return exterior_lights
54
+ end
55
+
56
+ # Create typical exterior lighting in a model
57
+ #
58
+ # @param model [OpenStudio::Model::Model] OpenStudio model object
59
+ # @param standard [Standard] standard object to use for lighting properties. If set, will override lighting_generation.
60
+ # @param lighting_generation [String] lighting generation to use for lighting properties. Currently defaulted to a mix of Metal Halide, High Pressure Sodium, and LEDs.
61
+ # @param lighting_zone [Integer] exterior lighting zone number, 0-4
62
+ # @param onsite_parking_fraction [Double] onsite parking fraction, 0-1
63
+ # @param add_base_site_allowance [Boolean] whether to include the base site allowance
64
+ # @param use_model_for_entries_and_canopies [Boolean] use building geometry for number of entries and canopy size
65
+ # @param control_option [String] Options are 'ScheduleNameOnly' and 'AstronomicalClock'.
66
+ # 'ScheduleNameOnly' will follow the schedule. 'AstronomicalClock' will follow the schedule, but turn off lights when the sun is up.
67
+ # @return [Array<OpenStudio::Model::ExteriorLights>] Array of OpenStudio ExteriorLights object
68
+ def self.model_create_typical_exterior_lighting(model,
69
+ standard: nil,
70
+ lighting_generation: 'default',
71
+ lighting_zone: 3,
72
+ onsite_parking_fraction: 1.0,
73
+ add_base_site_allowance: false,
74
+ use_model_for_entries_and_canopies: false,
75
+ control_option: 'AstronomicalClock')
76
+ exterior_lights = []
77
+ installed_power = 0.0
78
+ # get the exterior lighting properties from standard or the lighting_generation
79
+ if standard.nil?
80
+ exterior_lighting_properties = OpenstudioStandards::ExteriorLighting.model_get_exterior_lighting_properties(lighting_generation: lighting_generation)
81
+ lookup_key = lighting_generation
82
+ else
83
+ lookup_key = standard.template
84
+ if ['90.1-2004', '90.1-2007', '90.1-2010', '90.1-2013', '90.1-2016', '90.1-2019 PRM'].include?(lookup_key)
85
+ exterior_lighting_properties = {}
86
+ else
87
+ search_criteria = {
88
+ 'lighting_zone' => lighting_zone
89
+ }
90
+ exterior_lighting_properties = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
91
+ end
92
+ end
93
+
94
+ # make sure lighting properties were found
95
+ if exterior_lighting_properties.nil?
96
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.ExteriorLighting', "Exterior lighting properties not found for #{lookup_key}, ext lighting zone #{lighting_zone}, none will be added to model.")
97
+ return exterior_lights
98
+ end
99
+
100
+ # get model specific areas to for exterior lighting
101
+ area_length_count_hash = OpenstudioStandards::ExteriorLighting.model_get_exterior_lighting_sizes(model)
102
+
103
+ # create schedules for exterior lighting objects using midnight to 6am setback or shutdown
104
+ start_setback_shutoff = { hr: 24, min: 0 }
105
+ end_setback_shutoff = { hr: 6, min: 0 }
106
+ shuttoff = false
107
+ setback = false
108
+
109
+ if exterior_lighting_properties.has_key?('building_facade_and_landscape_automatic_shut_off')
110
+ if exterior_lighting_properties['building_facade_and_landscape_automatic_shut_off'] == 1
111
+ facade_automatic_shut_off = true
112
+ else
113
+ facade_automatic_shut_off = false
114
+ end
115
+ else
116
+ search_criteria = {
117
+ 'template' => lookup_key,
118
+ 'lighting_zone' => lighting_zone,
119
+ 'allowance_type' => 'building facades'
120
+ }
121
+ exterior_lighting_building_facade_req = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
122
+ if exterior_lighting_building_facade_req['daylight_off_control'] == 'REQ'
123
+ facade_automatic_shut_off = true
124
+ else
125
+ facade_automatic_shut_off = false
126
+ end
127
+ end
128
+
129
+ if facade_automatic_shut_off
130
+ ext_lights_sch_facade_and_landscape = OpenStudio::Model::ScheduleRuleset.new(model)
131
+ default_day = ext_lights_sch_facade_and_landscape.defaultDaySchedule
132
+ default_day.addValue(OpenStudio::Time.new(0, end_setback_shutoff[:hr], end_setback_shutoff[:min], 0), 0.0)
133
+ default_day.addValue(OpenStudio::Time.new(0, start_setback_shutoff[:hr], start_setback_shutoff[:min], 0), 1.0)
134
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.ExteriorLighting', "Facade and Landscape exterior lights shut off from #{start_setback_shutoff} to #{end_setback_shutoff}")
135
+ else
136
+ ext_lights_sch_facade_and_landscape = model.alwaysOnDiscreteSchedule
137
+ end
138
+
139
+
140
+ occupancy_setback_reduction = 0.0
141
+ if exterior_lighting_properties.has_key?('occupancy_setback_reduction')
142
+ if !exterior_lighting_properties['occupancy_setback_reduction'].nil? && (exterior_lighting_properties['occupancy_setback_reduction'] > 0.0)
143
+ occupancy_setback_reduction = exterior_lighting_properties['occupancy_setback_reduction']
144
+ end
145
+ else
146
+ unless ['90.1-2004', '90.1-2007', 'DOE Ref Pre-1980', 'DOE Ref 1980-2004', 'DEER 1985', 'DEER 1996', 'DEER 2003', 'DEER 2007', 'DEER Pre-1975'].include?(lookup_key)
147
+ occupancy_setback_reduction = 0.3
148
+ end
149
+ end
150
+
151
+ if occupancy_setback_reduction > 0
152
+ ext_lights_sch_other = OpenStudio::Model::ScheduleRuleset.new(model)
153
+ setback_value = 1.0 - occupancy_setback_reduction
154
+ default_day = ext_lights_sch_other.defaultDaySchedule
155
+ default_day.addValue(OpenStudio::Time.new(0, end_setback_shutoff[:hr], end_setback_shutoff[:min], 0), setback_value)
156
+ default_day.addValue(OpenStudio::Time.new(0, start_setback_shutoff[:hr], start_setback_shutoff[:min], 0), 1.0)
157
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.ExteriorLighting', "Non Facade and Landscape lights reduce by #{occupancy_setback_reduction * 100} % from #{start_setback_shutoff} to #{end_setback_shutoff}")
158
+ else
159
+ ext_lights_sch_other = model.alwaysOnDiscreteSchedule
160
+ end
161
+
162
+ # add exterior lights for parking area
163
+ if !area_length_count_hash[:parking_area_and_drives_area].nil? && area_length_count_hash[:parking_area_and_drives_area] > 0
164
+ # lighting values
165
+ multiplier = area_length_count_hash[:parking_area_and_drives_area] * onsite_parking_fraction
166
+
167
+ # get power
168
+ if exterior_lighting_properties.has_key?('parking_areas_and_drives')
169
+ power = exterior_lighting_properties['parking_areas_and_drives']
170
+ else
171
+ search_criteria = {
172
+ 'template' => lookup_key,
173
+ 'lighting_zone' => lighting_zone,
174
+ 'allowance_type' => 'parking lots and drives'
175
+ }
176
+ exterior_lighting_parking_req = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
177
+ power = exterior_lighting_parking_req['allowance']
178
+ end
179
+
180
+ # create exterior lights
181
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.ExteriorLighting', "Added #{power.round(2)} W/ft^2 of lighting for #{multiplier} ft^2 of parking area.")
182
+ ext_lights = OpenstudioStandards::ExteriorLighting.model_create_exterior_lights(model,
183
+ name: 'Parking Areas and Drives',
184
+ power: power,
185
+ units: 'W/ft^2',
186
+ multiplier: multiplier,
187
+ schedule: ext_lights_sch_other,
188
+ control_option: control_option)
189
+ exterior_lights << ext_lights
190
+ installed_power += power * multiplier
191
+ end
192
+
193
+ # add exterior lights for facades
194
+ if !area_length_count_hash[:building_facades].nil? && area_length_count_hash[:building_facades] > 0
195
+ # lighting values
196
+ multiplier = area_length_count_hash[:building_facades]
197
+
198
+ # get power
199
+ if exterior_lighting_properties.has_key?('building_facades')
200
+ power = exterior_lighting_properties['building_facades']
201
+ else
202
+ search_criteria = {
203
+ 'template' => lookup_key,
204
+ 'lighting_zone' => lighting_zone,
205
+ 'allowance_type' => 'building facades',
206
+ 'allowance_unit' => 'W/ft2'
207
+ }
208
+ exterior_lighting_facade_req = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
209
+ power = exterior_lighting_facade_req['allowance']
210
+ end
211
+
212
+ # create exterior lights
213
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.ExteriorLighting', "Added #{power.round(2)} W/ft^2 of lighting for #{multiplier} ft^2 of building facade area.")
214
+ ext_lights = OpenstudioStandards::ExteriorLighting.model_create_exterior_lights(model,
215
+ name: 'Building Facades',
216
+ power: power,
217
+ units: 'W/ft^2',
218
+ multiplier: multiplier,
219
+ schedule: ext_lights_sch_facade_and_landscape,
220
+ control_option: control_option)
221
+ exterior_lights << ext_lights
222
+ installed_power += power * multiplier
223
+ end
224
+
225
+ # add exterior lights for main entries
226
+ if !area_length_count_hash[:main_entries].nil? && area_length_count_hash[:main_entries] > 0
227
+ # lighting values
228
+ multiplier = area_length_count_hash[:main_entries]
229
+
230
+ # get power
231
+ if exterior_lighting_properties.has_key?('main_entries')
232
+ power = exterior_lighting_properties['main_entries']
233
+ else
234
+ search_criteria = {
235
+ 'template' => lookup_key,
236
+ 'lighting_zone' => lighting_zone,
237
+ 'allowance_type' => 'main entries'
238
+ }
239
+ exterior_lighting_entries_req = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
240
+ # change of reference for 90.1-2019 and onwards
241
+ if exterior_lighting_entries_req.nil?
242
+ search_criteria = {
243
+ 'template' => lookup_key,
244
+ 'lighting_zone' => lighting_zone,
245
+ 'allowance_type' => 'pedestrian and vehicular entrances and exists'
246
+ }
247
+ exterior_lighting_entries_req = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
248
+ end
249
+ power = exterior_lighting_entries_req['allowance']
250
+ end
251
+
252
+ # create exterior lights
253
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.ExteriorLighting', "Added #{power.round(2)} W/ft of lighting for #{multiplier} ft of main entry length.")
254
+ ext_lights = OpenstudioStandards::ExteriorLighting.model_create_exterior_lights(model,
255
+ name: 'Main Entries',
256
+ power: power,
257
+ units: 'W/ft',
258
+ multiplier: multiplier,
259
+ schedule: ext_lights_sch_other,
260
+ control_option: control_option)
261
+ exterior_lights << ext_lights
262
+ installed_power += power * multiplier
263
+ end
264
+
265
+ # add exterior lights for other doors
266
+ if !area_length_count_hash[:other_doors].nil? && area_length_count_hash[:other_doors] > 0
267
+ # lighting values
268
+ multiplier = area_length_count_hash[:other_doors]
269
+
270
+ # get power
271
+ if exterior_lighting_properties.has_key?('other_doors')
272
+ power = exterior_lighting_properties['other_doors']
273
+ else
274
+ search_criteria = {
275
+ 'template' => lookup_key,
276
+ 'lighting_zone' => lighting_zone,
277
+ 'allowance_type' => 'other doors'
278
+ }
279
+ exterior_lighting_doors_req = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
280
+ # change of reference for 90.1-2019 and onwards
281
+ if exterior_lighting_doors_req.nil?
282
+ search_criteria = {
283
+ 'template' => lookup_key,
284
+ 'lighting_zone' => lighting_zone,
285
+ 'allowance_type' => 'pedestrian and vehicular entrances and exists'
286
+ }
287
+ exterior_lighting_doors_req = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
288
+ end
289
+ power = exterior_lighting_doors_req['allowance']
290
+ end
291
+
292
+ # create exterior lights
293
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.ExteriorLighting', "Added #{power.round(2)} W/ft of lighting for #{multiplier} ft of other doors.")
294
+ ext_lights = OpenstudioStandards::ExteriorLighting.model_create_exterior_lights(model,
295
+ name: 'Other Doors',
296
+ power: power,
297
+ units: 'W/ft',
298
+ multiplier: multiplier,
299
+ schedule: ext_lights_sch_other,
300
+ control_option: control_option)
301
+ exterior_lights << ext_lights
302
+ installed_power += power * multiplier
303
+ end
304
+
305
+ # add exterior lights for entry canopies
306
+ if !area_length_count_hash[:canopy_entry_area].nil? && area_length_count_hash[:canopy_entry_area] > 0
307
+ # lighting values
308
+ multiplier = area_length_count_hash[:canopy_entry_area]
309
+
310
+ # get power
311
+ if exterior_lighting_properties.has_key?('entry_canopies')
312
+ power = exterior_lighting_properties['entry_canopies']
313
+ else
314
+ search_criteria = {
315
+ 'template' => lookup_key,
316
+ 'lighting_zone' => lighting_zone,
317
+ 'allowance_type' => 'canopies'
318
+ }
319
+ exterior_lighting_canopies_req = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
320
+ # change of reference for 90.1-2010 and onwards
321
+ if exterior_lighting_parking_req.nil?
322
+ search_criteria = {
323
+ 'template' => lookup_key,
324
+ 'lighting_zone' => lighting_zone,
325
+ 'allowance_type' => 'entry canopies'
326
+ }
327
+ exterior_lighting_canopies_req = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
328
+ end
329
+ power = exterior_lighting_canopies_req['allowance']
330
+ end
331
+
332
+ # create exterior lights
333
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.ExteriorLighting', "Added #{power} W/ft^2 of lighting for #{multiplier} ft^2 of building entry canopies.")
334
+ ext_lights = OpenstudioStandards::ExteriorLighting.model_create_exterior_lights(model,
335
+ name: 'Entry Canopies',
336
+ power: power,
337
+ units: 'W/ft^2',
338
+ multiplier: multiplier,
339
+ schedule: ext_lights_sch_other,
340
+ control_option: control_option)
341
+ exterior_lights << ext_lights
342
+ installed_power += power * multiplier
343
+ end
344
+
345
+ # add exterior lights for emergency canopies
346
+ if !area_length_count_hash[:canopy_emergency_area].nil? && area_length_count_hash[:canopy_emergency_area] > 0
347
+ # lighting values
348
+ multiplier = area_length_count_hash[:canopy_emergency_area]
349
+
350
+ # get power
351
+ if exterior_lighting_properties.has_key?('loading_areas_for_emergency_vehicles')
352
+ power = exterior_lighting_properties['loading_areas_for_emergency_vehicles']
353
+ else
354
+ search_criteria = {
355
+ 'template' => lookup_key,
356
+ 'lighting_zone' => lighting_zone,
357
+ 'allowance_type' => 'loading areas for law enforcement, fire, ambulance and other emergency service vehicles (uncovered)'
358
+ }
359
+ exterior_lighting_emergency_canopies_req = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
360
+ power = exterior_lighting_emergency_canopies_req['allowance']
361
+ end
362
+
363
+ # create exterior lights
364
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.ExteriorLighting', "Added #{power} W/ft^2 of lighting for #{multiplier} ft^2 of building emergency canopies.")
365
+ ext_lights = OpenstudioStandards::ExteriorLighting.model_create_exterior_lights(model,
366
+ name: 'Emergency Canopies',
367
+ power: power,
368
+ units: 'W/ft^2',
369
+ multiplier: multiplier,
370
+ schedule: ext_lights_sch_other,
371
+ control_option: control_option)
372
+ exterior_lights << ext_lights
373
+ installed_power += power * multiplier
374
+ end
375
+
376
+ # add exterior lights for drive through windows
377
+ if !area_length_count_hash[:drive_through_windows].nil? && area_length_count_hash[:drive_through_windows] > 0
378
+ # lighting values
379
+ multiplier = area_length_count_hash[:drive_through_windows]
380
+
381
+ # get power
382
+ if exterior_lighting_properties.has_key?('drive_through_windows_and_doors')
383
+ power = exterior_lighting_properties['drive_through_windows_and_doors']
384
+ else
385
+ search_criteria = {
386
+ 'template' => lookup_key,
387
+ 'lighting_zone' => lighting_zone,
388
+ 'allowance_type' => 'drive-up windows at fast food restaurant'
389
+ }
390
+ exterior_lighting_emergency_drive_through_req = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
391
+ power = exterior_lighting_emergency_drive_through_req['allowance']
392
+ end
393
+
394
+ # create exterior lights
395
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.ExteriorLighting', "Added #{power} W/drive through window of lighting for #{multiplier} drive through windows.")
396
+ ext_lights = OpenstudioStandards::ExteriorLighting.model_create_exterior_lights(model,
397
+ name: 'Drive Through Windows',
398
+ power: power,
399
+ units: 'W/ft^2',
400
+ multiplier: multiplier,
401
+ schedule: ext_lights_sch_other,
402
+ control_option: control_option)
403
+ exterior_lights << ext_lights
404
+ installed_power += power * multiplier
405
+ end
406
+
407
+ # add base site allowance
408
+ if add_base_site_allowance
409
+ # lighting values
410
+ if exterior_lighting_properties.has_key?('base_site_allowance_power')
411
+ if !exterior_lighting_properties['base_site_allowance_power'].nil?
412
+ power = exterior_lighting_properties['base_site_allowance_power']
413
+ elsif !exterior_lighting_properties['base_site_allowance_fraction'].nil?
414
+ power = exterior_lighting_properties['base_site_allowance_fraction'] * installed_power # should be of allowed vs. installed, but hard to calculate
415
+ else
416
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.ExteriorLighting', 'Cannot determine target base site allowance power, will set to 0 W.')
417
+ power = 0.0
418
+ end
419
+ else
420
+ search_criteria = {
421
+ 'template' => lookup_key,
422
+ 'lighting_zone' => lighting_zone,
423
+ 'allowance_type' => 'base site allowance'
424
+ }
425
+ exterior_lighting_base_allowance = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
426
+ power = exterior_lighting_base_allowance['allowance']
427
+
428
+ search_criteria = {
429
+ 'template' => lookup_key,
430
+ 'lighting_zone' => lighting_zone,
431
+ 'allowance_type' => 'additional unrestricted allowance'
432
+ }
433
+ exterior_lighting_add_base_allowance = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
434
+ if !exterior_lighting_add_base_allowance.nil?
435
+ power += exterior_lighting_add_base_allowance['allowance'] * installed_power / 100.0 # should be of allowed vs. installed, but hard to calculate
436
+ end
437
+ end
438
+
439
+ # create exterior lights
440
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.ExteriorLighting', "Added #{power} W of non landscape tradable exterior lighting. Will follow occupancy setback reduction.")
441
+ ext_lights = OpenstudioStandards::ExteriorLighting.model_create_exterior_lights(model,
442
+ name: 'Base Site Allowance',
443
+ power: power,
444
+ units: 'W',
445
+ multiplier: 1.0,
446
+ schedule: ext_lights_sch_other,
447
+ control_option: control_option)
448
+ exterior_lights << ext_lights
449
+ end
450
+
451
+ return exterior_lights
452
+ end
453
+ end
454
+ end
@@ -0,0 +1,52 @@
1
+ building_type,rollup_doors_per_10000_ft2,entrance_doors_per_10000_ft2,other_doors_per_10000_ft2,entrance_canopies,emergency_canopies,canopy_size,floor_area_per_drive_through_window,notes
2
+ SmallOffice,0.47,2,2,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
3
+ MediumOffice,0.13,1,3,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
4
+ LargeOffice,0,1,3,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
5
+ Retail,1.84,1,2.93,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
6
+ StripMall,0.05,6,6.6,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
7
+ PrimarySchool,0.07,2,3.3,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
8
+ SecondarySchool,0.1,2,2.45,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
9
+ Outpatient,0.1,1,5.19,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
10
+ Hospital,0.03,2,3.8,,1,720,,"No source for canopy size, Table 5.41. Exterior Lighting Savings Summary for Addendum 90.1-07i doesn't indicate canopy lighting. Section 5.4.2 Exterior Lights in U.S. Department of Energy Commercial Reference Building Models of the National Building Stock shows their use."
11
+ SmallHotel,0,2,28.91,1,,720,,"SmallHotel appears to have exterior entries for all units, No source for canopy size, Table 5.41. Exterior Lighting Savings Summary for Addendum 90.1-07i doesn't indicate canopy lighting. Section 5.4.2 Exterior Lights in U.S. Department of Energy Commercial Reference Building Models of the National Building Stock shows their use."
12
+ LargeHotel,0,2,2.27,1,,1620,,"No source for canopy size, Table 5.41. Exterior Lighting Savings Summary for Addendum 90.1-07i doesn't indicate canopy lighting. Section 5.4.2 Exterior Lights in U.S. Department of Energy Commercial Reference Building Models of the National Building Stock shows their use."
13
+ Warehouse,3.67,1,2,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
14
+ QuickServiceRestaurant,0,2,1,,,,2500,"No source for drive through count, Table 5.41. Exterior Lighting Savings Summary for Addendum 90.1-07i doesn't indicate drive through lighting. Section 5.4.2 Exterior Lights in U.S. Department of Energy Commercial Reference Building Models of the National Building Stock shows their use."
15
+ FullServiceRestaurant,0,1,3,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
16
+ MidriseApartment,0,1,1.13,,,,,"Midrise not in table 4.18, using half of values from LargeHotel."
17
+ HighriseApartment,0,1,1.13,,,,,"Highrise not in table 4.18, using half of values from LargeHotel."
18
+ SuperMarket,1.84,1,2.93,,,,,"SuperMarket not in table 4.18, using values from RetailStandAlone. Consistant with SuperMarket parking area used in U.S. Department of Energy Commercial Reference Building Models of the National Building Stock report."
19
+ Courthouse,0,1,3,,,,,match MediumOffice
20
+ College,0,2,2.45,,,,,match SecondarySchool
21
+ Laboratory,0,2,2.45,,,,,match SecondarySchool
22
+ SmallDataCenterLowITE,0,1,3,,,,,match MediumOffice
23
+ SmallDataCenterHighITE,0,1,3,,,,,match MediumOffice
24
+ LargeDataCenterLowITE,0,1,3,,,,,match MediumOffice
25
+ LargeDataCenterHighITE,0,1,3,,,,,match MediumOffice
26
+ SmallOfficeDetailed,0.47,2,2,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
27
+ MediumOfficeDetailed,0.13,1,3,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
28
+ LargeOfficeDetailed,0,1,3,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
29
+ Asm,0.1,2,2.45,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
30
+ ECC,0.1,2,2.45,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
31
+ EPr,0.07,2,3.3,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
32
+ ERC,0,1,0,,,,,Relocatable classrooms typically have 1 door based on engineering judgement
33
+ ESe,0.1,2,2.45,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
34
+ EUn,0.1,2,2.45,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
35
+ Gro,1.84,1,2.93,,,,,"SuperMarket not in table 4.18, using values from RetailStandAlone. Consistant with SuperMarket parking area used in U.S. Department of Energy Commercial Reference Building Models of the National Building Stock report."
36
+ Hsp,0.03,0.67,3.8,,1,720,,"No source for canopy size, Table 5.41. Exterior Lighting Savings Summary for Addendum 90.1-07i doesn't indicate canopy lighting. Section 5.4.2 Exterior Lights in U.S. Department of Energy Commercial Reference Building Models of the National Building Stock shows their use."
37
+ Htl,0,0.67,2.27,1,,1620,,"No source for canopy size, Table 5.41. Exterior Lighting Savings Summary for Addendum 90.1-07i doesn't indicate canopy lighting. Section 5.4.2 Exterior Lights in U.S. Department of Energy Commercial Reference Building Models of the National Building Stock shows their use."
38
+ MBT,3.67,1,2,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
39
+ MFm,0,1,1.13,,,,,"Midrise not in table 4.18, using half of values from LargeHotel."
40
+ MLI,3.67,1,2,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
41
+ Mtl,0,2,28.91,,,,,"Assuming no canopy; this is different from the DOE SmallHotel prototype. The DOE SmallHotel appears to have exterior entries for all units, No source for canopy size, Table 5.41. Exterior Lighting Savings Summary for Addendum 90.1-07i doesn't indicate canopy lighting. Section 5.4.2 Exterior Lights in U.S. Department of Energy Commercial Reference Building Models of the National Building Stock shows their use."
42
+ Nrs,0,1,1.13,,,,,"Nursing home not in table 4.18, using half of values from LargeHotel."
43
+ OfL,0,1,3,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
44
+ OfS,0.47,2,2,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
45
+ RFF,0,2,1,,,,2500,"No source for drive through count, Table 5.41. Exterior Lighting Savings Summary for Addendum 90.1-07i doesn't indicate drive through lighting. Section 5.4.2 Exterior Lights in U.S. Department of Energy Commercial Reference Building Models of the National Building Stock shows their use."
46
+ RSD,0,1,3,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
47
+ Rt3,1.84,1,2.93,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
48
+ RtL,1.84,1,2.93,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
49
+ RtS,0.05,6,6.6,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
50
+ SCn,3.67,0.2,0.2,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
51
+ SUn,3.67,0.2,0.2,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
52
+ WRf,3.67,0.2,0.2,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
@@ -0,0 +1,54 @@
1
+ building_type,building_area_per_spot,units_per_spot,students_per_spot,beds_per_spot,parking_area_per_spot
2
+ SmallOffice,250,,,,405
3
+ MediumOffice,250,,,,405
4
+ LargeOffice,620,,,,405
5
+ Retail,285.7,,,,405
6
+ StripMall,215,,,,405
7
+ PrimarySchool,,,17,,405
8
+ SecondarySchool,,,8,,405
9
+ Outpatient,200,,,,405
10
+ Hospital,,,,0.83,405
11
+ SmallHotel,,1,,,405
12
+ LargeHotel,,1,,,405
13
+ Warehouse,1000,,,,405
14
+ QuickServiceRestaurant,100,,,,405
15
+ FullServiceRestaurant,100,,,,405
16
+ MidriseApartment,,0.45,,,405
17
+ HighriseApartment,,0.45,,,405
18
+ SuperMarket,285.7,,,,405
19
+ Parking surface,,,,,405
20
+ Parking garage,,,,,486
21
+ SmallDataCenterLowITE,0,,,,405
22
+ SmallDataCenterHighITE,0,,,,405
23
+ LargeDataCenterLowITE,0,,,,405
24
+ LargeDataCenterHighITE,0,,,,405
25
+ SmallOfficeDetailed,250,,,,405
26
+ MediumOfficeDetailed,250,,,,405
27
+ LargeOfficeDetailed,620,,,,405
28
+ Courthouse,250,,,,405
29
+ College,250,,,,405
30
+ Laboratory,250,,,,405
31
+ Asm,285.7,,,,405
32
+ ECC,,,8,,405
33
+ EPr,,,17,,405
34
+ ERC,,,8,,405
35
+ ESe,,,8,,405
36
+ EUn,,,30,,405
37
+ Gro,285.7,,,,405
38
+ Hsp,,,,0.83,405
39
+ Htl,,1,,,405
40
+ MBT,1000,,,,405
41
+ MFm,,0.45,,,405
42
+ MLI,1000,,,,405
43
+ Mtl,,1,,,405
44
+ Nrs,,1,,,405
45
+ OfL,250,,,,405
46
+ OfS,250,,,,405
47
+ RFF,100,,,,405
48
+ RSD,100,,,,405
49
+ Rt3,285.7,,,,405
50
+ RtL,285.7,,,,405
51
+ RtS,285.7,,,,405
52
+ SCn,1000,,,,405
53
+ SUn,1000,,,,405
54
+ WRf,1000,,,,405