openstudio-standards 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (378) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.md +33 -0
  3. data/data/inventory/thermal_bridging.csv +90 -0
  4. data/data/standards/OpenStudio_Standards-deer-comstock.xlsx +0 -0
  5. data/data/standards/manage_OpenStudio_Standards.rb +1 -1
  6. data/data/standards/test_performance_expected_dd_results.csv +2014 -1891
  7. data/lib/openstudio-standards/btap/analysis.rb +8 -8
  8. data/lib/openstudio-standards/btap/bridging.rb +664 -645
  9. data/lib/openstudio-standards/btap/btap.model.rb +14 -14
  10. data/lib/openstudio-standards/btap/btap.rb +7 -7
  11. data/lib/openstudio-standards/btap/btap_result.rb +1 -1
  12. data/lib/openstudio-standards/btap/economics.rb +23 -23
  13. data/lib/openstudio-standards/btap/envelope.rb +8 -8
  14. data/lib/openstudio-standards/btap/equest.rb +1 -1
  15. data/lib/openstudio-standards/btap/geometry.rb +2 -2
  16. data/lib/openstudio-standards/btap/mpc.rb +7 -7
  17. data/lib/openstudio-standards/btap/schedules.rb +1 -1
  18. data/lib/openstudio-standards/btap/simmanager.rb +4 -4
  19. data/lib/openstudio-standards/btap/spaceloads.rb +26 -26
  20. data/lib/openstudio-standards/btap/utilities.rb +6 -6
  21. data/lib/openstudio-standards/btap/vintagizer.rb +1 -1
  22. data/lib/openstudio-standards/constructions/information.rb +83 -0
  23. data/lib/openstudio-standards/constructions/materials/modify.rb +72 -0
  24. data/lib/openstudio-standards/constructions/modify.rb +80 -0
  25. data/lib/openstudio-standards/create_typical/create_typical.rb +983 -0
  26. data/lib/openstudio-standards/create_typical/enumerations.rb +484 -0
  27. data/lib/openstudio-standards/create_typical/space_type_blend.rb +791 -0
  28. data/lib/openstudio-standards/create_typical/space_type_ratios.rb +494 -0
  29. data/lib/openstudio-standards/daylighting/space.rb +47 -0
  30. data/lib/openstudio-standards/geometry/create.rb +801 -0
  31. data/lib/openstudio-standards/geometry/create_bar.rb +2170 -0
  32. data/lib/openstudio-standards/geometry/information.rb +462 -0
  33. data/lib/openstudio-standards/geometry/modify.rb +48 -0
  34. data/lib/openstudio-standards/hvac/air_loop/information.rb +79 -0
  35. data/lib/openstudio-standards/hvac/cbecs_hvac.rb +616 -0
  36. data/lib/openstudio-standards/hvac/setpoint_managers/information.rb +91 -0
  37. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.AirTerminalSingleDuctVAVReheat.rb +1 -1
  38. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.AirTerminalSingleDuctVAVReheat.rb +1 -1
  39. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +1 -1
  40. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Model.rb +1 -1
  41. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +1 -1
  42. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Model.rb +2 -2
  43. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.hvac_systems.rb +1 -1
  44. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +1 -1
  45. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.rb +4 -36
  46. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.hvac_systems.rb +1 -1
  47. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +1 -1
  48. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.rb +4 -36
  49. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Space.rb +3 -3
  50. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.hvac_systems.rb +1 -1
  51. data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.AirTerminalSingleDuctVAVReheat.rb +1 -1
  52. data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.Model.elevators.rb +1 -1
  53. data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirTerminalSingleDuctVAVReheat.rb +1 -1
  54. data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.CoilHeatingGas.rb +1 -1
  55. data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.elevators.rb +1 -1
  56. data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
  57. data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +1 -1
  58. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.College.rb +7 -7
  59. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Courthouse.rb +8 -8
  60. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.FullServiceRestaurant.rb +14 -14
  61. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.HighRiseApartment.rb +9 -9
  62. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Hospital.rb +16 -16
  63. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Laboratory.rb +7 -7
  64. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeDataCenterHighITE.rb +8 -8
  65. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeDataCenterLowITE.rb +8 -8
  66. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeHotel.rb +11 -11
  67. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOffice.rb +7 -7
  68. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOfficeDetailed.rb +9 -9
  69. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb +8 -8
  70. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOfficeDetailed.rb +11 -11
  71. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MidriseApartment.rb +9 -9
  72. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Outpatient.rb +19 -19
  73. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.PrimarySchool.rb +10 -10
  74. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.QuickServiceRestaurant.rb +13 -13
  75. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.RetailStandalone.rb +6 -6
  76. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.RetailStripmall.rb +6 -6
  77. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SecondarySchool.rb +9 -9
  78. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallDataCenterHighITE.rb +8 -8
  79. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallDataCenterLowITE.rb +8 -8
  80. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallHotel.rb +8 -8
  81. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOffice.rb +8 -8
  82. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOfficeDetailed.rb +11 -11
  83. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SuperMarket.rb +10 -10
  84. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SuperTallBuilding.rb +19 -19
  85. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.TallBuilding.rb +18 -18
  86. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Warehouse.rb +6 -6
  87. data/lib/openstudio-standards/prototypes/common/do_not_edit_metaclasses.rb +957 -957
  88. data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirConditionerVariableRefrigerantFlow.rb +1 -1
  89. data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirTerminalSingleDuctVAVReheat.rb +1 -1
  90. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWaterToAirHeatPumpEquationFit.rb +84 -16
  91. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingDXSingleSpeed.rb +1 -1
  92. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingGas.rb +1 -1
  93. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWaterToAirHeatPumpEquationFit.rb +61 -10
  94. data/lib/openstudio-standards/prototypes/common/objects/Prototype.ControllerWaterCoil.rb +1 -1
  95. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoolingTower.rb +1 -1
  96. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Fan.rb +1 -1
  97. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanConstantVolume.rb +1 -1
  98. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanOnOff.rb +1 -1
  99. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanVariableVolume.rb +1 -1
  100. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanZoneExhaust.rb +1 -1
  101. data/lib/openstudio-standards/prototypes/common/objects/Prototype.HeatExchangerAirToAirSensibleAndLatent.rb +2 -2
  102. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.exterior_lights.rb +4 -4
  103. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.hvac.rb +4 -4
  104. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +43 -30
  105. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.swh.rb +1 -1
  106. data/lib/openstudio-standards/prototypes/common/objects/Prototype.ServiceWaterHeating.rb +18 -11
  107. data/lib/openstudio-standards/prototypes/common/objects/Prototype.SizingSystem.rb +1 -1
  108. data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +774 -117
  109. data/lib/openstudio-standards/prototypes/common/objects/Prototype.radiant_system_controls.rb +340 -481
  110. data/lib/openstudio-standards/prototypes/common/objects/Prototype.refrigeration.rb +3 -3
  111. data/lib/openstudio-standards/prototypes/common/objects/Prototype.utilities.rb +3 -3
  112. data/lib/openstudio-standards/prototypes/common/prototype_metaprogramming.rb +22 -22
  113. data/lib/openstudio-standards/prototypes/deer/deer.Model.rb +1 -1
  114. data/lib/openstudio-standards/qaqc/calibration.rb +131 -0
  115. data/lib/openstudio-standards/qaqc/create_results.rb +983 -0
  116. data/lib/openstudio-standards/qaqc/envelope.rb +399 -0
  117. data/lib/openstudio-standards/qaqc/eui.rb +213 -0
  118. data/lib/openstudio-standards/qaqc/hvac.rb +1943 -0
  119. data/lib/openstudio-standards/qaqc/internal_loads.rb +568 -0
  120. data/lib/openstudio-standards/qaqc/reporting.rb +141 -0
  121. data/lib/openstudio-standards/qaqc/schedules.rb +129 -0
  122. data/lib/openstudio-standards/qaqc/service_water_heating.rb +273 -0
  123. data/lib/openstudio-standards/qaqc/weather_files.rb +497 -0
  124. data/lib/openstudio-standards/qaqc/zone_conditions.rb +278 -0
  125. data/lib/openstudio-standards/schedules/create.rb +364 -0
  126. data/lib/openstudio-standards/schedules/information.rb +169 -0
  127. data/lib/openstudio-standards/schedules/modify.rb +445 -0
  128. data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +110 -71
  129. data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctParallelPIUReheat.rb +3 -3
  130. data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctVAVReheat.rb +4 -4
  131. data/lib/openstudio-standards/standards/Standards.BoilerHotWater.rb +2 -1
  132. data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +16 -10
  133. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +4 -4
  134. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +1 -1
  135. data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +1 -1
  136. data/lib/openstudio-standards/standards/Standards.CoilDX.rb +4 -4
  137. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXMultiSpeed.rb +1 -1
  138. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXSingleSpeed.rb +5 -5
  139. data/lib/openstudio-standards/standards/Standards.CoilHeatingGas.rb +1 -1
  140. data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +1 -1
  141. data/lib/openstudio-standards/standards/Standards.CoilHeatingWaterToAirHeatPumpEquationFit.rb +1 -1
  142. data/lib/openstudio-standards/standards/Standards.Construction.rb +17 -18
  143. data/lib/openstudio-standards/standards/Standards.CoolingTower.rb +6 -6
  144. data/lib/openstudio-standards/standards/Standards.CoolingTowerSingleSpeed.rb +1 -1
  145. data/lib/openstudio-standards/standards/Standards.CoolingTowerTwoSpeed.rb +1 -1
  146. data/lib/openstudio-standards/standards/Standards.CoolingTowerVariableSpeed.rb +1 -1
  147. data/lib/openstudio-standards/standards/Standards.Fan.rb +6 -12
  148. data/lib/openstudio-standards/standards/Standards.FanVariableVolume.rb +2 -2
  149. data/lib/openstudio-standards/standards/Standards.FluidCooler.rb +1 -1
  150. data/lib/openstudio-standards/standards/Standards.HeaderedPumpsVariableSpeed.rb +1 -1
  151. data/lib/openstudio-standards/standards/Standards.HeatExchangerSensLat.rb +3 -3
  152. data/lib/openstudio-standards/standards/Standards.Model.rb +411 -261
  153. data/lib/openstudio-standards/standards/Standards.PlanarSurface.rb +2 -2
  154. data/lib/openstudio-standards/standards/Standards.PlantLoop.rb +94 -29
  155. data/lib/openstudio-standards/standards/Standards.Pump.rb +2 -2
  156. data/lib/openstudio-standards/standards/Standards.ScheduleConstant.rb +2 -2
  157. data/lib/openstudio-standards/standards/Standards.ScheduleRuleset.rb +14 -14
  158. data/lib/openstudio-standards/standards/Standards.Space.rb +37 -30
  159. data/lib/openstudio-standards/standards/Standards.SpaceType.rb +38 -29
  160. data/lib/openstudio-standards/standards/Standards.SubSurface.rb +7 -7
  161. data/lib/openstudio-standards/standards/Standards.Surface.rb +13 -13
  162. data/lib/openstudio-standards/standards/Standards.ThermalZone.rb +109 -66
  163. data/lib/openstudio-standards/standards/Standards.WaterHeaterMixed.rb +11 -4
  164. data/lib/openstudio-standards/standards/Standards.ZoneHVACComponent.rb +6 -6
  165. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.AirLoopHVAC.rb +1 -1
  166. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PlantLoop.rb +1 -1
  167. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.Space.rb +1 -1
  168. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.Space.rb +1 -1
  169. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirLoopHVAC.rb +4 -4
  170. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +1 -1
  171. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Space.rb +4 -4
  172. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirLoopHVAC.rb +4 -4
  173. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +1 -1
  174. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.CoolingTowerVariableSpeed.rb +1 -1
  175. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Model.rb +5 -21
  176. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Space.rb +4 -4
  177. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.WaterHeaterMixed.rb +1 -1
  178. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.ZoneHVACComponent.rb +1 -1
  179. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirLoopHVAC.rb +36 -4
  180. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +1 -1
  181. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.CoolingTowerVariableSpeed.rb +1 -1
  182. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Space.rb +4 -4
  183. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.ZoneHVACComponent.rb +1 -1
  184. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/comstock_ashrae_90_1_2016.AirLoopHVAC.rb +26 -0
  185. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirLoopHVAC.rb +53 -10
  186. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +1 -1
  187. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoolingTowerVariableSpeed.rb +1 -1
  188. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Space.rb +6 -6
  189. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.ZoneHVACComponent.rb +2 -2
  190. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/comstock_ashrae_90_1_2019.AirLoopHVAC.rb +26 -0
  191. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.curves.json +211 -211
  192. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.economizers.json +14 -14
  193. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.AirLoopHVAC.rb +4 -4
  194. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.Model.rb +1 -1
  195. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.PlantLoop.rb +1 -1
  196. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.economizers.json +14 -14
  197. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirLoopHVAC.rb +4 -4
  198. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.rb +1 -1
  199. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.PlantLoop.rb +1 -1
  200. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirLoopHVAC.rb +6 -6
  201. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
  202. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.CoolingTowerVariableSpeed.rb +1 -1
  203. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.PlantLoop.rb +1 -1
  204. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.Space.rb +4 -4
  205. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirLoopHVAC.rb +6 -6
  206. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +1 -1
  207. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.CoolingTowerVariableSpeed.rb +1 -1
  208. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.PlantLoop.rb +1 -1
  209. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Space.rb +4 -4
  210. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirLoopHVAC.rb +22 -28
  211. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirTerminalSingleDuctParallelPIUReheat.rb +1 -1
  212. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirTerminalSingleDuctVAVReheat.rb +2 -2
  213. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.BoilerHotWater.rb +1 -74
  214. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ChillerElectricEIR.rb +7 -59
  215. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXSingleSpeed.rb +1 -1
  216. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXTwoSpeed.rb +1 -1
  217. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilDX.rb +1 -1
  218. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingDXSingleSpeed.rb +1 -1
  219. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingGas.rb +1 -21
  220. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.DesignSpecificationOutdoorAir.rb +101 -0
  221. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanConstantVolume.rb +1 -1
  222. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanOnOff.rb +1 -1
  223. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanVariableVolume.rb +1 -1
  224. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.HeatExchangerSensLat.rb +1 -1
  225. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Model.rb +643 -526
  226. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.PlanarSurface.rb +8 -2
  227. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.PlantLoop.rb +17 -77
  228. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Space.rb +74 -16
  229. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.SpaceType.rb +96 -44
  230. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Surface.rb +6 -6
  231. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ThermalZone.rb +18 -6
  232. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ZoneHVACComponent.rb +1 -1
  233. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.rb +328 -74
  234. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb +0 -118
  235. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.rb +2 -1
  236. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.heat_rejection.json +1 -1
  237. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/baseline_outdoor_air.md +35 -0
  238. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/set_plug_load_measures.md +1 -1
  239. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/ashrae_90_1_prm.UserData.rb +228 -0
  240. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_enums.rb +131 -0
  241. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_space.csv +1 -1
  242. data/lib/openstudio-standards/standards/cbes/cbes.AirLoopHVAC.rb +5 -5
  243. data/lib/openstudio-standards/standards/cbes/cbes.Model.rb +1 -1
  244. data/lib/openstudio-standards/standards/cbes/cbes.PlantLoop.rb +1 -1
  245. data/lib/openstudio-standards/standards/cbes/cbes.Space.rb +1 -1
  246. data/lib/openstudio-standards/standards/cbes/cbes_t24_2005/cbes_t24_2005.Space.rb +1 -1
  247. data/lib/openstudio-standards/standards/cbes/cbes_t24_2008/cbes_t24_2008.Space.rb +1 -1
  248. data/lib/openstudio-standards/standards/deer/deer.AirLoopHVAC.rb +109 -27
  249. data/lib/openstudio-standards/standards/deer/deer.Space.rb +1 -1
  250. data/lib/openstudio-standards/standards/deer/deer_1985/data/deer_1985.economizers.json +246 -4
  251. data/lib/openstudio-standards/standards/deer/deer_1996/data/deer_1996.economizers.json +246 -4
  252. data/lib/openstudio-standards/standards/deer/deer_2003/data/deer_2003.economizers.json +246 -4
  253. data/lib/openstudio-standards/standards/deer/deer_2003/deer_2003.ThermalZone.rb +18 -18
  254. data/lib/openstudio-standards/standards/deer/deer_2007/data/deer_2007.economizers.json +246 -4
  255. data/lib/openstudio-standards/standards/deer/deer_2007/deer_2007.ThermalZone.rb +18 -18
  256. data/lib/openstudio-standards/standards/deer/deer_2011/data/deer_2011.economizers.json +246 -4
  257. data/lib/openstudio-standards/standards/deer/deer_2011/deer_2011.ThermalZone.rb +18 -18
  258. data/lib/openstudio-standards/standards/deer/deer_2014/data/deer_2014.economizers.json +248 -6
  259. data/lib/openstudio-standards/standards/deer/deer_2014/deer_2014.Space.rb +3 -3
  260. data/lib/openstudio-standards/standards/deer/deer_2014/deer_2014.ThermalZone.rb +18 -18
  261. data/lib/openstudio-standards/standards/deer/deer_2015/data/deer_2015.economizers.json +248 -6
  262. data/lib/openstudio-standards/standards/deer/deer_2015/deer_2015.Space.rb +3 -3
  263. data/lib/openstudio-standards/standards/deer/deer_2015/deer_2015.ThermalZone.rb +18 -18
  264. data/lib/openstudio-standards/standards/deer/deer_2017/data/deer_2017.economizers.json +248 -6
  265. data/lib/openstudio-standards/standards/deer/deer_2017/deer_2017.Space.rb +3 -3
  266. data/lib/openstudio-standards/standards/deer/deer_2017/deer_2017.ThermalZone.rb +18 -18
  267. data/lib/openstudio-standards/standards/deer/deer_2020/data/deer_2020.economizers.json +248 -6
  268. data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.AirLoopHVAC.rb +18 -5
  269. data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.FanVariableVolume.rb +1 -1
  270. data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.Space.rb +3 -3
  271. data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.ThermalZone.rb +18 -18
  272. data/lib/openstudio-standards/standards/deer/deer_2025/data/deer_2025.economizers.json +248 -6
  273. data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.AirLoopHVAC.rb +3 -3
  274. data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.FanVariableVolume.rb +1 -1
  275. data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.Space.rb +3 -3
  276. data/lib/openstudio-standards/standards/deer/deer_2030/data/deer_2030.economizers.json +248 -6
  277. data/lib/openstudio-standards/standards/deer/deer_2030/data/deer_2030.heat_pumps.json +2 -2
  278. data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.AirLoopHVAC.rb +3 -3
  279. data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.FanVariableVolume.rb +1 -1
  280. data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.Space.rb +3 -3
  281. data/lib/openstudio-standards/standards/deer/deer_2035/data/deer_2035.economizers.json +248 -6
  282. data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.AirLoopHVAC.rb +3 -3
  283. data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.FanVariableVolume.rb +1 -1
  284. data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.Space.rb +3 -3
  285. data/lib/openstudio-standards/standards/deer/deer_2040/data/deer_2040.economizers.json +248 -6
  286. data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.AirLoopHVAC.rb +3 -3
  287. data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.FanVariableVolume.rb +1 -1
  288. data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.Space.rb +3 -3
  289. data/lib/openstudio-standards/standards/deer/deer_2045/data/deer_2045.economizers.json +260 -0
  290. data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.AirLoopHVAC.rb +3 -3
  291. data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.FanVariableVolume.rb +1 -1
  292. data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.Space.rb +3 -3
  293. data/lib/openstudio-standards/standards/deer/deer_2050/data/deer_2050.economizers.json +248 -6
  294. data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.AirLoopHVAC.rb +3 -3
  295. data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.FanVariableVolume.rb +1 -1
  296. data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.Space.rb +3 -3
  297. data/lib/openstudio-standards/standards/deer/deer_2055/data/deer_2055.economizers.json +248 -6
  298. data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.AirLoopHVAC.rb +3 -3
  299. data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.FanVariableVolume.rb +1 -1
  300. data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.Space.rb +3 -3
  301. data/lib/openstudio-standards/standards/deer/deer_2060/data/deer_2060.economizers.json +248 -6
  302. data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.AirLoopHVAC.rb +3 -3
  303. data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.FanVariableVolume.rb +1 -1
  304. data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.Space.rb +3 -3
  305. data/lib/openstudio-standards/standards/deer/deer_2065/data/deer_2065.economizers.json +248 -6
  306. data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.AirLoopHVAC.rb +3 -3
  307. data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.FanVariableVolume.rb +1 -1
  308. data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.Space.rb +3 -3
  309. data/lib/openstudio-standards/standards/deer/deer_2070/data/deer_2070.economizers.json +248 -6
  310. data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.AirLoopHVAC.rb +3 -3
  311. data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.FanVariableVolume.rb +1 -1
  312. data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.Space.rb +3 -3
  313. data/lib/openstudio-standards/standards/deer/deer_2075/data/deer_2075.economizers.json +248 -6
  314. data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.AirLoopHVAC.rb +3 -3
  315. data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.FanVariableVolume.rb +1 -1
  316. data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.Space.rb +3 -3
  317. data/lib/openstudio-standards/standards/deer/deer_pre_1975/data/deer_pre_1975.economizers.json +246 -4
  318. data/lib/openstudio-standards/standards/necb/BTAP1980TO2010/data/space_types.json +447 -223
  319. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/building_envelope.rb +1 -1
  320. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/data/space_types.json +447 -223
  321. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_systems.rb +5 -2
  322. data/lib/openstudio-standards/standards/necb/ECMS/data/chiller_types.json +25 -0
  323. data/lib/openstudio-standards/standards/necb/ECMS/data/chillers.json +44 -0
  324. data/lib/openstudio-standards/standards/necb/ECMS/data/curves.json +225 -0
  325. data/lib/openstudio-standards/standards/necb/ECMS/ecms.rb +2 -2
  326. data/lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb +193 -73
  327. data/lib/openstudio-standards/standards/necb/ECMS/pv_ground.rb +1 -1
  328. data/lib/openstudio-standards/standards/necb/NECB2011/autozone.rb +10 -4
  329. data/lib/openstudio-standards/standards/necb/NECB2011/beps_compliance_path.rb +7 -7
  330. data/lib/openstudio-standards/standards/necb/NECB2011/building_envelope.rb +4 -5
  331. data/lib/openstudio-standards/standards/necb/NECB2011/data/chiller_types.json +32 -0
  332. data/lib/openstudio-standards/standards/necb/NECB2011/data/chillers.json +1 -1
  333. data/lib/openstudio-standards/standards/necb/NECB2011/data/constants.json +36 -0
  334. data/lib/openstudio-standards/standards/necb/NECB2011/data/fuel_type_sets.json +7 -7
  335. data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/NorthernEducation.osm +47587 -0
  336. data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/NorthernHealthCare.osm +49764 -0
  337. data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/Warehouse.osm +283 -297
  338. data/lib/openstudio-standards/standards/necb/NECB2011/data/space_type_unit_definitions.txt +2 -1
  339. data/lib/openstudio-standards/standards/necb/NECB2011/data/space_types.json +447 -223
  340. data/lib/openstudio-standards/standards/necb/NECB2011/data/standards_data.rb +3 -3
  341. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_multi_speed.rb +1 -1
  342. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +49 -27
  343. data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +400 -202
  344. data/lib/openstudio-standards/standards/necb/NECB2011/service_water_heating.rb +4 -4
  345. data/lib/openstudio-standards/standards/necb/NECB2015/data/space_types.json +637 -318
  346. data/lib/openstudio-standards/standards/necb/NECB2015/hvac_systems.rb +18 -1
  347. data/lib/openstudio-standards/standards/necb/NECB2015/necb_2015.rb +3 -3
  348. data/lib/openstudio-standards/standards/necb/NECB2017/data/space_types.json +637 -318
  349. data/lib/openstudio-standards/standards/necb/NECB2017/hvac_systems.rb +1 -1
  350. data/lib/openstudio-standards/standards/necb/NECB2017/necb_2017.rb +3 -3
  351. data/lib/openstudio-standards/standards/necb/NECB2020/building_envelope.rb +1 -1
  352. data/lib/openstudio-standards/standards/necb/NECB2020/data/space_types.json +615 -307
  353. data/lib/openstudio-standards/standards/necb/NECB2020/service_water_heating.rb +4 -4
  354. data/lib/openstudio-standards/standards/necb/common/btap_data.rb +10 -5
  355. data/lib/openstudio-standards/standards/necb/common/btap_datapoint.rb +1 -1
  356. data/lib/openstudio-standards/utilities/assertion.rb +128 -0
  357. data/lib/openstudio-standards/utilities/logging.rb +2 -3
  358. data/lib/openstudio-standards/utilities/object_info.rb +39 -18
  359. data/lib/openstudio-standards/utilities/schedule_translator.rb +8 -6
  360. data/lib/openstudio-standards/utilities/simulation.rb +24 -11
  361. data/lib/openstudio-standards/utilities/sqlfile.rb +10 -5
  362. data/lib/openstudio-standards/version.rb +1 -1
  363. data/lib/openstudio-standards/weather/Weather.Model.rb +8 -9
  364. data/lib/openstudio-standards/weather/Weather.stat_file.rb +3 -3
  365. data/lib/openstudio-standards/weather/information.rb +35 -0
  366. data/lib/openstudio-standards.rb +69 -5
  367. metadata +54 -18
  368. data/License.txt +0 -65
  369. data/data/standards/OpenStudio_Standards-deer-ALL-comstock(space_types).xlsx +0 -0
  370. data/lib/openstudio-standards/hvac_sizing/Siz.AirLoopHVAC.rb +0 -59
  371. data/lib/openstudio-standards/hvac_sizing/Siz.CoilCoolingWater.rb +0 -13
  372. data/lib/openstudio-standards/hvac_sizing/Siz.HVACComponent.rb +0 -36
  373. data/lib/openstudio-standards/hvac_sizing/Siz.HeatingCoolingFuels.rb +0 -898
  374. data/lib/openstudio-standards/hvac_sizing/Siz.Model.rb +0 -126
  375. data/lib/openstudio-standards/hvac_sizing/Siz.ThermalZone.rb +0 -356
  376. data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.Model.rb +0 -35
  377. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoolingTower.rb +0 -110
  378. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoolingTowerVariableSpeed.rb +0 -5
@@ -12,124 +12,6 @@ class ASHRAE901PRM2019 < ASHRAE901PRM
12
12
  return true
13
13
  end
14
14
 
15
- # Determines the area of the building above which point
16
- # the non-dominant area type gets it's own HVAC system type.
17
- # @return [Double] the minimum area (m^2)
18
- def model_prm_baseline_system_group_minimum_area(model, custom)
19
- exception_min_area_ft2 = 20_000
20
- # Customization - Xcel EDA Program Manual 2014
21
- # 3.2.1 Mechanical System Selection ii
22
- if custom == 'Xcel Energy CO EDA'
23
- exception_min_area_ft2 = 5000
24
- OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.Model', "Customization; per Xcel EDA Program Manual 2014 3.2.1 Mechanical System Selection ii, minimum area for non-predominant conditions reduced to #{exception_min_area_ft2} ft2.")
25
- end
26
- exception_min_area_m2 = OpenStudio.convert(exception_min_area_ft2, 'ft^2', 'm^2').get
27
- return exception_min_area_m2
28
- end
29
-
30
- # Determines which system number is used
31
- # for the baseline system.
32
- # @return [String] the system number: 1_or_2, 3_or_4,
33
- # 5_or_6, 7_or_8, 9_or_10
34
- def model_prm_baseline_system_number(model, climate_zone, area_type, fuel_type, area_ft2, num_stories, custom)
35
- sys_num = nil
36
-
37
- # Customization - Xcel EDA Program Manual 2014
38
- # Table 3.2.2 Baseline HVAC System Types
39
- if custom == 'Xcel Energy CO EDA'
40
- OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.Model', 'Custom; per Xcel EDA Program Manual 2014 Table 3.2.2 Baseline HVAC System Types, the 90.1-2010 lookup for HVAC system types shall be used.')
41
-
42
- # Set the area limit
43
- limit_ft2 = 25_000
44
-
45
- case area_type
46
- when 'residential'
47
- sys_num = '1_or_2'
48
- when 'nonresidential'
49
- # nonresidential and 3 floors or less and <25,000 ft2
50
- if num_stories <= 3 && area_ft2 < limit_ft2
51
- sys_num = '3_or_4'
52
- # nonresidential and 4 or 5 floors or 5 floors or less and 25,000 ft2 to 150,000 ft2
53
- elsif ((num_stories == 4 || num_stories == 5) && area_ft2 < limit_ft2) || (num_stories <= 5 && (area_ft2 >= limit_ft2 && area_ft2 <= 150_000))
54
- sys_num = '5_or_6'
55
- # nonresidential and more than 5 floors or >150,000 ft2
56
- elsif num_stories >= 5 || area_ft2 > 150_000
57
- sys_num = '7_or_8'
58
- end
59
- when 'heatedonly'
60
- sys_num = '9_or_10'
61
- when 'retail'
62
- # Should only be hit by Xcel EDA
63
- sys_num = '3_or_4'
64
- end
65
-
66
- else
67
-
68
- # Set the area limit
69
- limit_ft2 = 25_000
70
-
71
- case area_type
72
- when 'residential'
73
- sys_num = '1_or_2'
74
- when 'nonresidential'
75
- # nonresidential and 3 floors or less and <25,000 ft2
76
- if num_stories <= 3 && area_ft2 < limit_ft2
77
- sys_num = '3_or_4'
78
- # nonresidential and 4 or 5 floors or 5 floors or less and 25,000 ft2 to 150,000 ft2
79
- elsif ((num_stories == 4 || num_stories == 5) && area_ft2 < limit_ft2) || (num_stories <= 5 && (area_ft2 >= limit_ft2 && area_ft2 <= 150_000))
80
- sys_num = '5_or_6'
81
- # nonresidential and more than 5 floors or >150,000 ft2
82
- elsif num_stories >= 5 || area_ft2 > 150_000
83
- sys_num = '7_or_8'
84
- end
85
- when 'heatedonly'
86
- sys_num = '9_or_10'
87
- when 'retail'
88
- sys_num = '3_or_4'
89
- end
90
-
91
- end
92
-
93
- return sys_num
94
- end
95
-
96
- # Change the fuel type based on climate zone, depending on the standard.
97
- # For 90.1-2013, fuel type is based on climate zone, not the proposed model.
98
- # @return [String] the revised fuel type
99
- def model_prm_baseline_system_change_fuel_type(model, fuel_type, climate_zone, custom = nil)
100
- if custom == 'Xcel Energy CO EDA'
101
- OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.Model', 'Custom; per Xcel EDA Program Manual 2014 Table 3.2.2 Baseline HVAC System Types, the 90.1-2010 rules for heating fuel type (based on proposed model) rules apply.')
102
- return fuel_type
103
- end
104
-
105
- # For 90.1-2013 the fuel type is determined based on climate zone.
106
- # Don't change the fuel if it purchased heating or cooling.
107
- if fuel_type == 'electric' || fuel_type == 'fossil'
108
- case climate_zone
109
- when 'ASHRAE 169-2006-1A',
110
- 'ASHRAE 169-2006-2A',
111
- 'ASHRAE 169-2006-3A',
112
- 'ASHRAE 169-2013-1A',
113
- 'ASHRAE 169-2013-2A',
114
- 'ASHRAE 169-2013-3A'
115
- fuel_type = 'electric'
116
- else
117
- fuel_type = 'fossil'
118
- end
119
- OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.Model', "Heating fuel is #{fuel_type} for 90.1-2013, climate zone #{climate_zone}. This is independent of the heating fuel type in the proposed building, per G3.1.1-3. This is different than previous versions of 90.1.")
120
- end
121
-
122
- return fuel_type
123
- end
124
-
125
- # Determines the fan type used by VAV_Reheat and VAV_PFP_Boxes systems.
126
- # Variable speed fan for 90.1-2013
127
- # @return [String] the fan type: TwoSpeed Fan, Variable Speed Fan
128
- def model_baseline_system_vav_fan_type(model)
129
- fan_type = 'Variable Speed Fan'
130
- return fan_type
131
- end
132
-
133
15
  # Determines the skylight to roof ratio limit for a given standard
134
16
  # 3% for 90.1-PRM-2019
135
17
  # @return [Double] the skylight to roof ratio, as a percent: 5.0 = 5%
@@ -16,9 +16,10 @@ class ASHRAE901PRM2019 < ASHRAE901PRM
16
16
 
17
17
  # Determine the base infiltration rate at 75 PA.
18
18
  #
19
+ # @param space [OpenStudio::Model::Space] space object
19
20
  # @return [Double] the baseline infiltration rate, in cfm/ft^2
20
21
  # defaults to no infiltration.
21
- def space_infiltration_rate_75_pa
22
+ def space_infiltration_rate_75_pa(space = nil)
22
23
  basic_infil_rate_cfm_per_ft2 = 1.0
23
24
  return basic_infil_rate_cfm_per_ft2
24
25
  end
@@ -3,7 +3,7 @@
3
3
  {
4
4
  "template": "90.1-PRM-2019",
5
5
  "equipment_type": "Open Cooling Tower",
6
- "fan_type": "Axial",
6
+ "fan_type": "Propeller or Axial",
7
7
  "start_date": "1919-09-09T00:00:00+00:00",
8
8
  "end_date": "2999-09-09T00:00:00+00:00",
9
9
  "minimum_performance": 38.2,
@@ -0,0 +1,35 @@
1
+ Baseline Outdoor Air
2
+
3
+ # ASHRAE 90.1-2019 PRM Reference Manual
4
+ For all HVAC zones, the minimum ventilation system outdoor air intake flow shall be the same for the proposed and baseline building designs. Except in the following conditions:
5
+ - If the minimum outdoor air intake flow in the proposed design is provided in excess of the amount required by the rating authority or building official, then the baseline building design shall be modeled to reflect the greater of that required by the rating authority or building official and will be less than the proposed design.
6
+
7
+ # Implementation
8
+ - Reads in userdata_design_specification_outdoor_air
9
+ - Before the HVAC sizing run, evaluate the user data
10
+ - Loop through Sizing:Zones
11
+ - Get the DesignSpecification:OutdoorAir, if matches to the user_data_oa then check the current ventilation settings.
12
+ - Split into four sub-routines:
13
+ - calculate total OA by occupants in model: occupant_oa_p = zone_total_occupants * airflow_per_occupant_u
14
+ - calculate total OA by occupants in user data: occupant_oa_u = zone_total_occupants * airflow_per_occupant_u
15
+ - calculate total OA by floor area in model: floor_area_oa_p = zone_floor_area * airflow_per_floor_area_p
16
+ - calculate total OA by floor area in user data: floor_area_oa_u = zone_floor_area * airflow_per_floor_area_u
17
+ - calculate total OA by zone in model: zone_oa_p = airflow_per_zone_p
18
+ - calculate total OA by zone in user data: zone_oa_u = airflow_per_zone_u
19
+ - calculate total OA by ACH in model: ach_oa_p = ach_p * height(m) / 3.6 / 1000
20
+ - calculate total OA by ACH in user data: ach_oa_u = ach_u * height(m) / 3.6 / 1000
21
+ - calculate sum OA: sum_oa = occupant_oa_p + floor_area_oa_p + zone_oa_p + ach_oa_p
22
+ - calculate sum user data oa: user_data_oa = occupant_oa_u + floor_area_oa_u + zone_oa_u + ach_oa_u
23
+ - if sum_oa > user_data_oa:
24
+ - Modify the ventilation methods in the object.
25
+ - else:
26
+ - Issue a warning in the log
27
+ NOTE:
28
+ 1. There are some details relate to Zone-Space relationship needs to be explored in the above logic
29
+ 2. When assigning user specified ventilation methods, it will likely require to create a new space type and override the ventilation object in the new space type - this could cause multiple space types in the baseline model (similar case is in ligthing)
30
+
31
+ # Key Ruby Methods
32
+
33
+ ## New
34
+
35
+
@@ -70,7 +70,7 @@ Expected output: the baseline schedule is 15% higher than proposed schedule for
70
70
  - User data folder: */userdata_pe_03*
71
71
  - Summary:
72
72
  This case will test whether *motor_horsepower*, *motor_efficiency* and *motor_is_exempt* are read correctly for an electric equipment (*Office WholeBuilding - Sm Office Elec Equip*).
73
- Expected output: the electric equipment in the baseline shall have three additional properties *motor_horsepower = 10.0*, *motor_efficiency = 0.72* and *motor_is_exempt = No*
73
+ Expected output: the electric equipment in the baseline shall have three additional properties *motor_horsepower = 10.0*, *motor_efficiency = 0.72* and *motor_is_exempt = False*
74
74
 
75
75
 
76
76
  ### Test case 4
@@ -0,0 +1,228 @@
1
+ class UserDataCSV
2
+ # Abstract class for writing user data template from user model.
3
+ #
4
+ # @param model [OpenStudio::Model::Model]
5
+ # @param save_dir [String] directory to save user data files
6
+ def initialize(model, save_dir)
7
+ @model = model
8
+ @component_name = nil
9
+ unless Dir.exist?(save_dir)
10
+ raise ArgumentError "Saving directory #{save_dir} does not exist!"
11
+ end
12
+
13
+ @save_dir = save_dir
14
+ @components = nil
15
+ @headers = nil
16
+ @file_name = nil
17
+ end
18
+
19
+ # getter function to get file name
20
+ attr_reader :file_name
21
+
22
+ # method to write csv files
23
+ # this method controls the workflow for generating a user data file.
24
+ # @return [Boolean] True for success, false otherwise
25
+ def write_csv
26
+ @components = load_component
27
+ @headers = load_header
28
+ unless @components
29
+ OpenStudio.logFree(OpenStudio::Warn, 'prm.log', "No relevant component #{@component_name} found in model. Skip the process")
30
+ return false
31
+ end
32
+
33
+ CSV.open("#{@save_dir}/#{@file_name}.csv", 'w') do |csv|
34
+ csv << @headers
35
+ @components.each do |component|
36
+ csv << [prm_get_component_name(component)] + write_default_rows
37
+ end
38
+ end
39
+ return true
40
+ end
41
+
42
+ private
43
+
44
+ # method to write the parameters in the csv file.
45
+ # This method provides a template to write in default values to the user data file
46
+ # return [Array] array of strings that contains the data in the userdata file
47
+ def write_default_rows
48
+ raise NotImplementedError, 'Method write rows should be implemented in class'
49
+ end
50
+
51
+ # Load header from pre-defined user data files.
52
+ # This method loads the user data file from the list.
53
+ #
54
+ # @return [Boolean] returns true if successful, false if not
55
+ def load_header
56
+ userdata_dir = __dir__
57
+ src_csv_dir = "#{userdata_dir}/*.csv"
58
+ headers = nil
59
+ Dir.glob(src_csv_dir).each do |csv_full_name|
60
+ csv_file_name = File.basename(csv_full_name, File.extname(csv_full_name))
61
+ if csv_file_name == @file_name
62
+ headers = CSV.read(csv_full_name, headers: true).headers
63
+ end
64
+ end
65
+ return headers
66
+ end
67
+
68
+ # Method to load OpenStudio component list from the model and save to @Component
69
+ # subclass shall determine what data group to extract from a modle.
70
+ # @return [Array] array of OpenStudio components.
71
+ def load_component
72
+ return @model.public_send("get#{@component_name}")
73
+ end
74
+ end
75
+
76
+ class UserDataCSVAirLoopHVAC < UserDataCSV
77
+ # user data userdata_airloop_hvac
78
+ # @param model [OpenStudio::Model::Model]
79
+ # @param save_dir [String] directory to save user data files
80
+ def initialize(model, save_dir)
81
+ super
82
+ @component_name = 'AirLoopHVACs'
83
+ @file_name = UserDataFiles::AIRLOOP_HVAC
84
+ end
85
+
86
+ def write_default_rows
87
+ # @todo we can do more here but right now, keep everything unchecked.
88
+ return Array.new(@headers.length - 1, '')
89
+ end
90
+ end
91
+
92
+ class UserDataCSVBuilding < UserDataCSV
93
+ # user data userdata_building
94
+ # @param model [OpenStudio::Model::Model]
95
+ # @param save_dir [String] directory to save user data files
96
+ def initialize(model, save_dir)
97
+ super
98
+ @component_name = 'Building'
99
+ @file_name = UserDataFiles::BUILDING
100
+ end
101
+
102
+ private
103
+
104
+ def load_component
105
+ return [@model.public_send("get#{@component_name}")]
106
+ end
107
+
108
+ def write_default_rows
109
+ # @todo we can do more here but right now, keep everything unchecked.
110
+ return Array.new(@headers.length - 1, '')
111
+ end
112
+ end
113
+
114
+ class UserDataCSVSpace < UserDataCSV
115
+ # user data userdata_space
116
+ # @param model [OpenStudio::Model::Model]
117
+ # @param save_dir [String] directory to save user data files
118
+ def initialize(model, save_dir)
119
+ super
120
+ @component_name = 'Spaces'
121
+ @file_name = UserDataFiles::SPACE
122
+ end
123
+
124
+ private
125
+
126
+ def write_default_rows
127
+ # @todo we can do more here but right now, keep everything unchecked.
128
+ return Array.new(@headers.length - 1, '')
129
+ end
130
+ end
131
+
132
+ class UserDataCSVSpaceTypes < UserDataCSV
133
+ # user data userdata_spacetypes
134
+ # @param model [OpenStudio::Model::Model]
135
+ # @param save_dir [String] directory to save user data files
136
+ def initialize(model, save_dir)
137
+ super
138
+ @component_name = 'SpaceTypes'
139
+ @file_name = UserDataFiles::SPACETYPE
140
+ end
141
+
142
+ private
143
+
144
+ def write_default_rows
145
+ # @todo we can do more here but right now, keep everything unchecked.
146
+ return Array.new(@headers.length - 1, '')
147
+ end
148
+ end
149
+
150
+ class UserDataCSVAirLoopHVACDOAS < UserDataCSV
151
+ # user data userdata_airloop_hvac_doas
152
+ # @param model [OpenStudio::Model::Model]
153
+ # @param save_dir [String] directory to save user data files
154
+ def initialize(model, save_dir)
155
+ super
156
+ @component_name = 'AirLoopHVACDedicatedOutdoorAirSystems'
157
+ @file_name = UserDataFiles::AIRLOOP_HVAC_DOAS
158
+ end
159
+
160
+ def write_default_rows
161
+ # @todo we can do more here but right now, keep everything unchecked.
162
+ return Array.new(@headers.length - 1, '')
163
+ end
164
+ end
165
+
166
+ class UserDataCSVExteriorLights < UserDataCSV
167
+ # user data userdata_airloop_hvac_doas
168
+ # @param model [OpenStudio::Model::Model]
169
+ # @param save_dir [String] directory to save user data files
170
+ def initialize(model, save_dir)
171
+ super
172
+ @component_name = 'ExteriorLightss'
173
+ @file_name = UserDataFiles::EXTERIOR_LIGHTS
174
+ end
175
+
176
+ def write_default_rows
177
+ # @todo we can do more here but right now, keep everything unchecked.
178
+ return Array.new(@headers.length - 1, '')
179
+ end
180
+ end
181
+
182
+ class UserDataCSVThermalZone < UserDataCSV
183
+ # user data userdata_thermal_zone
184
+ # @param model [OpenStudio::Model::Model]
185
+ # @param save_dir [String] directory to save user data files
186
+ def initialize(model, save_dir)
187
+ super
188
+ @component_name = 'ThermalZones'
189
+ @file_name = UserDataFiles::THERMAL_ZONE
190
+ end
191
+
192
+ def write_default_rows
193
+ # @todo we can do more here but right now, keep everything unchecked.
194
+ return Array.new(@headers.length - 1, '')
195
+ end
196
+ end
197
+
198
+ class UserDataCSVElectricEquipment < UserDataCSV
199
+ # user data userdata_electric_equipment
200
+ # @param model [OpenStudio::Model::Model]
201
+ # @param save_dir [String] directory to save user data files
202
+ def initialize(model, save_dir)
203
+ super
204
+ @component_name = 'ElectricEquipments'
205
+ @file_name = UserDataFiles::ELECTRIC_EQUIPMENT
206
+ end
207
+
208
+ def write_default_rows
209
+ # @todo we can do more here but right now, keep everything unchecked.
210
+ return Array.new(@headers.length - 1, '')
211
+ end
212
+ end
213
+
214
+ class UserDataCSVOutdoorAir < UserDataCSV
215
+ # user data userdata_design_specification_outdoor_air
216
+ # @param model [OpenStudio::Model::Model]
217
+ # @param save_dir [String] directory to save user data files
218
+ def initialize(model, save_dir)
219
+ super
220
+ @component_name = 'DesignSpecificationOutdoorAirs'
221
+ @file_name = UserDataFiles::DESIGN_SPECIFICATION_OUTDOOR_AIR
222
+ end
223
+
224
+ def write_default_rows
225
+ # @todo we can do more here but right now, keep everything unchecked.
226
+ return Array.new(@headers.length - 1, '')
227
+ end
228
+ end
@@ -0,0 +1,131 @@
1
+ class UserData
2
+ # Static method that retrieves the function constant values in a list
3
+ def self.get_constant_values
4
+ return constants.map(&method(:const_get))
5
+ end
6
+
7
+ # Static method to check if a user data matches to any of the constant value
8
+ #
9
+ # @param user_data [String] a user data
10
+ # @return [Boolean] matched any, else false
11
+ def self.matched_any?(user_data)
12
+ userdata_constants = get_constant_values
13
+ userdata_constants.each do |constant|
14
+ return true if compare(user_data, constant)
15
+ end
16
+ return false
17
+ end
18
+
19
+ # Compare the two UserData enums are the same or not. Static method.
20
+ # @param one [String] one UserData type enum
21
+ # @param another [String] another UserDataType enum
22
+ # @return [Boolean] if the two enums or strings are the same
23
+ def self.compare(one, another)
24
+ return one && another && !one.empty? && !another.empty? && one.downcase.strip == another.downcase.strip
25
+ end
26
+ end
27
+
28
+ class UserDataBoolean < UserData
29
+ TRUE = 'true'.freeze
30
+ FALSE = 'false'.freeze
31
+ end
32
+
33
+ class UserDataHVACBldgType < UserData
34
+ HEATED_ONLY_STORAGE = 'heated only storage'.freeze
35
+ HOSPITAL = 'hospital'.freeze
36
+ PUBLIC_ASSEMBLY = 'public assembly'.freeze
37
+ RETAIL = 'retail'.freeze
38
+ OTHER_NONRESIDENTIAL = 'other nonresidential'.freeze
39
+ RESIDENTIAL = 'residential'.freeze
40
+ UNCONDITIONED = 'unconditioned'.freeze
41
+ end
42
+
43
+ class UserDataSHWBldgType < UserData
44
+ WORKSHOP = 'Workshop'.freeze
45
+ WAREHOUSE = 'Warehouse'.freeze
46
+ TRANSPORTATION = 'Transportation'.freeze
47
+ TOWN_HALL = 'Town hall'.freeze
48
+ SPORT_ARENA = 'Sport arena'.freeze
49
+ SCHOOL_UNIVERSITY = 'School/university'.freeze
50
+ RETAIL = 'Retail'.freeze
51
+ RELIGIOUS_FACILITY = 'Religious facility'.freeze
52
+ POST_OFFICE = 'Post office'.freeze
53
+ POLICE_STATION = 'Police station'.freeze
54
+ PERFORMING_ARTS_THEATER = 'Performing arts theater'.freeze
55
+ PENITENTIARY = 'Penitentiary'.freeze
56
+ PARKING_GARAGE = 'Parking garage'.freeze
57
+ OFFICE = 'Office'.freeze
58
+ MUSEUM = 'Museum'.freeze
59
+ MULTIFAMILY = 'Multifamily'.freeze
60
+ MOTION_PICTURE_THEATHER = 'Motion picture theater'.freeze
61
+ MOTEL = 'Motel'.freeze
62
+ MANUFACTURING_FACILITY = 'Manufacturing_facility'.freeze
63
+ LIBRARY = 'Library'.freeze
64
+ HOTEL = 'Hotel'.freeze
65
+ HOSPITAL_OUTPATIENT_SURGERY = 'Hospital and outpatient surgery center'.freeze
66
+ HEALTH_CARE_CLINIC = 'Health-care clinic'.freeze
67
+ GYMNASIUM = 'Gymnasium'.freeze
68
+ GROCERY_STORE = 'Grocery store'.freeze
69
+ FIRE_STATION = 'Fire station'.freeze
70
+ EXERCISE_CENTER = 'Exercise center'.freeze
71
+ DORMITORY = 'Domitory'.freeze
72
+ DINING_FAMILY = 'Dining:Family'.freeze
73
+ DINING_CAFETERIA = 'Dining: Cafeteria/fast food'.freeze
74
+ DINING_BAR = 'Dining: Bar lounge/leisure'.freeze
75
+ COURTHOUSE = 'Courthouse'.freeze
76
+ CONVENTION_CENTER = 'Convention center'.freeze
77
+ CONVENTION_STORE = 'Convention store'.freeze
78
+ AUTOMOTIVE_FACILITY = 'Automotive facility'.freeze
79
+ ALL_OTHER = 'All others'.freeze
80
+ end
81
+
82
+ class UserDataNonTradableLightsCategory < UserData
83
+ GENERAL = 'nontradeable_general'.freeze
84
+ BUILDING_FACADE_AREA = 'building_facades_area'.freeze
85
+ BUILDING_FACADE_PERIM = 'building_facades_perim'.freeze
86
+ AUTOMATED_TELLER_MACHINES_PER_LOCATION = 'automated_teller_machines_per_location'.freeze
87
+ AUTOMATED_TELLER_MACHINES_PER_MACHINE = 'automated_teller_machines_per_machine'.freeze
88
+ ENTRIES_AND_GATES = 'entries_and_gates'.freeze
89
+ LOADING_AREAS_FOR_EMERGENCY_VEHICLES = 'loading_areas_for_emergency_vehicles'.freeze
90
+ DRIVE_THROUGH = 'drive_through_windows_and_doors'.freeze
91
+ PARKING_ENTRANCES = 'parking_near_24_hour_entrances'.freeze
92
+ PARKING_ROADWAY = 'roadway_parking'.freeze
93
+ end
94
+
95
+ class UserDataWWRBldgType < UserData
96
+ WAREHOUSE = 'Warehouse (nonrefrigerated)'.freeze
97
+ SCHOOL_SECONDARY = 'School (secondary and university)'.freeze
98
+ SCHOOL_PRIMARY = 'School (primary)'.freeze
99
+ RETAIL_STRIP_MALL = 'Retail (strip mall)'.freeze
100
+ RETAIL_STAND_ALONE = 'Retail (stand alone)'.freeze
101
+ RESTAURANT_QUICK_SERVICE = 'Restaurant (quick service)'.freeze
102
+ RESTAURANT_FULL_SERVICE = 'Restaurant (full serivce)'.freeze
103
+ OFFICE_SMALL = 'Office <= 5,000 sq ft'.freeze
104
+ OFFICE_MEDIUM = 'Office 5,000 to 50,000 sq ft'.freeze
105
+ OFFICE_LARGE = 'Office > 50,000 sq ft'.freeze
106
+ HOTEL_LARGE = 'Hotel/motel > 75 rooms'.freeze
107
+ HOTEL_SMALL = 'Hotel/motel <= 75 rooms'.freeze
108
+ HOSPITAL = 'Hospital'.freeze
109
+ HEALTHCARE = 'Healthcare (outpatient)'.freeze
110
+ GROCERY = 'Grocery store'.freeze
111
+ ALL_OTHER = 'All other'.freeze
112
+ end
113
+
114
+ class UserDataFiles < UserData
115
+ AIRLOOP_HVAC = 'userdata_airloop_hvac'.freeze
116
+ AIRLOOP_HVAC_DOAS = 'userdata_airloop_hvac_doas'.freeze
117
+ BUILDING = 'userdata_building'.freeze
118
+ DESIGN_SPECIFICATION_OUTDOOR_AIR = 'userdata_design_specification_outdoor_air'.freeze
119
+ ELECTRIC_EQUIPMENT = 'userdata_electric_equipment'.freeze
120
+ EXTERIOR_LIGHTS = 'userdata_exterior_lights'.freeze
121
+ GAS_EQUIPMENT = 'userdata_gas_equipment'.freeze
122
+ LIGHTS = 'userdata_lights'.freeze
123
+ SPACE = 'userdata_space'.freeze
124
+ SPACETYPE = 'userdata_spacetype'.freeze
125
+ THERMAL_ZONE = 'userdata_thermal_zone'.freeze
126
+ WATERUSE_CONNECTIONS = 'userdata_wateruse_connections'.freeze
127
+ WATERUSE_EQUIPMENT = 'userdata_wateruse_equipment'.freeze
128
+ WATERUSE_EQUIPMENT_DEFINITION = 'userdata_wateruse_equipment_definition'.freeze
129
+ ZONE_HVAC = 'userdata_zone_hvac'.freeze
130
+ ZONE_INFILTRATION = 'userdata_zone_infiltration'.freeze
131
+ end
@@ -1 +1 @@
1
- name,building_type_for_wwr,num_std_ltg_types,std_ltg_type01,std_ltg_type_frac01,std_ltg_type02,std_ltg_type_frac02,std_ltg_type03,std_ltg_type_frac03,std_ltg_type04,std_ltg_type_frac04,std_ltg_type05,std_ltg_type_frac05,std_ltg_type06,std_ltg_type_frac06,std_ltg_type07,std_ltg_type_frac07,std_ltg_type08,std_ltg_type_frac08,std_ltg_type09,std_ltg_type_frac09,std_ltg_type10,std_ltg_type_frac10,std_ltg_type11,std_ltg_type_frac11,std_ltg_type12,std_ltg_type_frac12,std_ltg_type13,std_ltg_type_frac13,std_ltg_type14,std_ltg_type_frac14,std_ltg_type15,std_ltg_type_frac15,std_ltg_type16,std_ltg_type_frac16,std_ltg_type17,std_ltg_type_frac17,std_ltg_type18,std_ltg_type_frac18,std_ltg_type19,std_ltg_type_frac19,std_ltg_type20,std_ltg_type_frac20
1
+ name,building_type_for_wwr,num_std_ltg_types,std_ltg_type01,std_ltg_type_frac01,std_ltg_type02,std_ltg_type_frac02,std_ltg_type03,std_ltg_type_frac03,std_ltg_type04,std_ltg_type_frac04,std_ltg_type05,std_ltg_type_frac05,std_ltg_type06,std_ltg_type_frac06,std_ltg_type07,std_ltg_type_frac07,std_ltg_type08,std_ltg_type_frac08,std_ltg_type09,std_ltg_type_frac09,std_ltg_type10,std_ltg_type_frac10,std_ltg_type11,std_ltg_type_frac11,std_ltg_type12,std_ltg_type_frac12,std_ltg_type13,std_ltg_type_frac13,std_ltg_type14,std_ltg_type_frac14,std_ltg_type15,std_ltg_type_frac15,std_ltg_type16,std_ltg_type_frac16,std_ltg_type17,std_ltg_type_frac17,std_ltg_type18,std_ltg_type_frac18,std_ltg_type19,std_ltg_type_frac19,std_ltg_type20,std_ltg_type_frac20,has_residential_exception
@@ -5,7 +5,7 @@ class CBES < Standard
5
5
  # Does nothing for CBES.
6
6
  #
7
7
  # @param air_loop_hvac [OpenStudio::Model::AirLoopHVAC] air loop
8
- # return [Bool] returns true if successful, false if not
8
+ # return [Boolean] returns true if successful, false if not
9
9
  # @todo enable damper position adjustment for legacy IDFS
10
10
  def air_loop_hvac_apply_multizone_vav_outdoor_air_sizing(air_loop_hvac)
11
11
  # Do nothing
@@ -16,8 +16,8 @@ class CBES < Standard
16
16
  # Not required by CBES.
17
17
  #
18
18
  # @param air_loop_hvac [OpenStudio::Model::AirLoopHVAC] air loop
19
- # @param has_ddc [Bool] whether or not the system has DDC control over VAV terminals.
20
- # return [Bool] returns true if static pressure reset is required, false if not
19
+ # @param has_ddc [Boolean] whether or not the system has DDC control over VAV terminals.
20
+ # return [Boolean] returns true if static pressure reset is required, false if not
21
21
  def air_loop_hvac_static_pressure_reset_required?(air_loop_hvac, has_ddc)
22
22
  sp_reset_required = false
23
23
  return sp_reset_required
@@ -38,7 +38,7 @@ class CBES < Standard
38
38
  #
39
39
  # @param air_loop_hvac [OpenStudio::Model::AirLoopHVAC] air loop
40
40
  # @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
41
- # @return [Bool] returns true if required, false if not
41
+ # @return [Boolean] returns true if required, false if not
42
42
  def air_loop_hvac_demand_control_ventilation_required?(air_loop_hvac, climate_zone)
43
43
  dcv_required = false
44
44
  return dcv_required
@@ -49,7 +49,7 @@ class CBES < Standard
49
49
  #
50
50
  # @param air_loop_hvac [OpenStudio::Model::AirLoopHVAC] air loop
51
51
  # @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
52
- # @return [Bool] returns true if successful, false if not
52
+ # @return [Boolean] returns true if successful, false if not
53
53
  def air_loop_hvac_apply_single_zone_controls(air_loop_hvac, climate_zone)
54
54
  # Do nothing
55
55
  return true
@@ -12,7 +12,7 @@ class CBES
12
12
  # When 'Sum', all min OA flow rates are added up. Commonly used by 90.1.
13
13
  # When 'Maximum', only the biggest OA flow rate. Used by T24.
14
14
  #
15
- # @param model [OpenStudio::Model::Model] the model
15
+ # @param model [OpenStudio::Model::Model] OpenStudio model object
16
16
  # @return [String] the ventilation method, either Sum or Maximum
17
17
  def model_ventilation_method(model)
18
18
  ventilation_method = 'Maximum'
@@ -5,7 +5,7 @@ class CBES < Standard
5
5
  # Not required for CBES.
6
6
  #
7
7
  # @param plant_loop [OpenStudio::Model::PlantLoop] plant loop
8
- # @return [Bool] returns true if required, false if not
8
+ # @return [Boolean] returns true if required, false if not
9
9
  def plant_loop_supply_water_temperature_reset_required?(plant_loop)
10
10
  reset_required = false
11
11
  return reset_required
@@ -4,7 +4,7 @@ class CBES < Standard
4
4
  # Baseline infiltration rate
5
5
  #
6
6
  # @return [Double] the baseline infiltration rate, in cfm/ft^2 exterior above grade wall area at 75 Pa
7
- def space_infiltration_rate_75_pa(space)
7
+ def space_infiltration_rate_75_pa(space = nil)
8
8
  basic_infil_rate_cfm_per_ft2 = 1.8
9
9
  return basic_infil_rate_cfm_per_ft2
10
10
  end
@@ -4,7 +4,7 @@ class CBEST242005 < CBES
4
4
  # Baseline infiltration rate
5
5
  #
6
6
  # @return [Double] the baseline infiltration rate, in cfm/ft^2 exterior above grade wall area at 75 Pa
7
- def space_infiltration_rate_75_pa(space)
7
+ def space_infiltration_rate_75_pa(space = nil)
8
8
  basic_infil_rate_cfm_per_ft2 = 0.5
9
9
  return basic_infil_rate_cfm_per_ft2
10
10
  end
@@ -4,7 +4,7 @@ class CBEST242008 < CBES
4
4
  # Baseline infiltration rate
5
5
  #
6
6
  # @return [Double] the baseline infiltration rate, in cfm/ft^2 exterior above grade wall area at 75 Pa
7
- def space_infiltration_rate_75_pa(space)
7
+ def space_infiltration_rate_75_pa(space = nil)
8
8
  basic_infil_rate_cfm_per_ft2 = 0.5
9
9
  return basic_infil_rate_cfm_per_ft2
10
10
  end