openstudio-standards 0.4.0 → 0.5.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (376) hide show
  1. checksums.yaml +4 -4
  2. data/data/inventory/thermal_bridging.csv +90 -0
  3. data/data/standards/OpenStudio_Standards-deer-comstock.xlsx +0 -0
  4. data/data/standards/manage_OpenStudio_Standards.rb +1 -1
  5. data/data/standards/test_performance_expected_dd_results.csv +2014 -1891
  6. data/lib/openstudio-standards/btap/analysis.rb +8 -8
  7. data/lib/openstudio-standards/btap/bridging.rb +664 -645
  8. data/lib/openstudio-standards/btap/btap.model.rb +14 -14
  9. data/lib/openstudio-standards/btap/btap.rb +7 -7
  10. data/lib/openstudio-standards/btap/btap_result.rb +1 -1
  11. data/lib/openstudio-standards/btap/economics.rb +23 -23
  12. data/lib/openstudio-standards/btap/envelope.rb +8 -8
  13. data/lib/openstudio-standards/btap/equest.rb +1 -1
  14. data/lib/openstudio-standards/btap/geometry.rb +2 -2
  15. data/lib/openstudio-standards/btap/mpc.rb +7 -7
  16. data/lib/openstudio-standards/btap/schedules.rb +1 -1
  17. data/lib/openstudio-standards/btap/simmanager.rb +4 -4
  18. data/lib/openstudio-standards/btap/spaceloads.rb +26 -26
  19. data/lib/openstudio-standards/btap/utilities.rb +6 -6
  20. data/lib/openstudio-standards/btap/vintagizer.rb +1 -1
  21. data/lib/openstudio-standards/constructions/information.rb +83 -0
  22. data/lib/openstudio-standards/constructions/materials/modify.rb +72 -0
  23. data/lib/openstudio-standards/constructions/modify.rb +80 -0
  24. data/lib/openstudio-standards/create_typical/create_typical.rb +983 -0
  25. data/lib/openstudio-standards/create_typical/enumerations.rb +484 -0
  26. data/lib/openstudio-standards/create_typical/space_type_blend.rb +791 -0
  27. data/lib/openstudio-standards/create_typical/space_type_ratios.rb +494 -0
  28. data/lib/openstudio-standards/daylighting/space.rb +47 -0
  29. data/lib/openstudio-standards/geometry/create.rb +801 -0
  30. data/lib/openstudio-standards/geometry/create_bar.rb +2171 -0
  31. data/lib/openstudio-standards/geometry/information.rb +462 -0
  32. data/lib/openstudio-standards/geometry/modify.rb +48 -0
  33. data/lib/openstudio-standards/hvac/air_loop/information.rb +79 -0
  34. data/lib/openstudio-standards/hvac/cbecs_hvac.rb +616 -0
  35. data/lib/openstudio-standards/hvac/setpoint_managers/information.rb +91 -0
  36. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.AirTerminalSingleDuctVAVReheat.rb +1 -1
  37. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.AirTerminalSingleDuctVAVReheat.rb +1 -1
  38. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +1 -1
  39. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Model.rb +1 -1
  40. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +1 -1
  41. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Model.rb +2 -2
  42. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.hvac_systems.rb +1 -1
  43. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +1 -1
  44. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.rb +4 -36
  45. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.hvac_systems.rb +1 -1
  46. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +1 -1
  47. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.rb +4 -36
  48. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Space.rb +3 -3
  49. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.hvac_systems.rb +1 -1
  50. data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.AirTerminalSingleDuctVAVReheat.rb +1 -1
  51. data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.Model.elevators.rb +1 -1
  52. data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirTerminalSingleDuctVAVReheat.rb +1 -1
  53. data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.CoilHeatingGas.rb +1 -1
  54. data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.elevators.rb +1 -1
  55. data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
  56. data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +1 -1
  57. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.College.rb +7 -7
  58. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Courthouse.rb +8 -8
  59. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.FullServiceRestaurant.rb +14 -14
  60. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.HighRiseApartment.rb +9 -9
  61. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Hospital.rb +16 -16
  62. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Laboratory.rb +7 -7
  63. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeDataCenterHighITE.rb +8 -8
  64. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeDataCenterLowITE.rb +8 -8
  65. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeHotel.rb +11 -11
  66. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOffice.rb +7 -7
  67. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOfficeDetailed.rb +9 -9
  68. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb +8 -8
  69. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOfficeDetailed.rb +11 -11
  70. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MidriseApartment.rb +9 -9
  71. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Outpatient.rb +19 -19
  72. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.PrimarySchool.rb +10 -10
  73. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.QuickServiceRestaurant.rb +13 -13
  74. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.RetailStandalone.rb +6 -6
  75. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.RetailStripmall.rb +6 -6
  76. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SecondarySchool.rb +9 -9
  77. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallDataCenterHighITE.rb +8 -8
  78. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallDataCenterLowITE.rb +8 -8
  79. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallHotel.rb +8 -8
  80. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOffice.rb +8 -8
  81. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOfficeDetailed.rb +11 -11
  82. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SuperMarket.rb +10 -10
  83. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SuperTallBuilding.rb +19 -19
  84. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.TallBuilding.rb +18 -18
  85. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Warehouse.rb +6 -6
  86. data/lib/openstudio-standards/prototypes/common/do_not_edit_metaclasses.rb +957 -957
  87. data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirConditionerVariableRefrigerantFlow.rb +1 -1
  88. data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirTerminalSingleDuctVAVReheat.rb +1 -1
  89. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWaterToAirHeatPumpEquationFit.rb +84 -16
  90. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingDXSingleSpeed.rb +1 -1
  91. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingGas.rb +1 -1
  92. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWaterToAirHeatPumpEquationFit.rb +61 -10
  93. data/lib/openstudio-standards/prototypes/common/objects/Prototype.ControllerWaterCoil.rb +1 -1
  94. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoolingTower.rb +1 -1
  95. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Fan.rb +1 -1
  96. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanConstantVolume.rb +1 -1
  97. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanOnOff.rb +1 -1
  98. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanVariableVolume.rb +1 -1
  99. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanZoneExhaust.rb +1 -1
  100. data/lib/openstudio-standards/prototypes/common/objects/Prototype.HeatExchangerAirToAirSensibleAndLatent.rb +2 -2
  101. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.exterior_lights.rb +4 -4
  102. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.hvac.rb +4 -4
  103. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +43 -30
  104. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.swh.rb +1 -1
  105. data/lib/openstudio-standards/prototypes/common/objects/Prototype.ServiceWaterHeating.rb +18 -11
  106. data/lib/openstudio-standards/prototypes/common/objects/Prototype.SizingSystem.rb +1 -1
  107. data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +774 -117
  108. data/lib/openstudio-standards/prototypes/common/objects/Prototype.radiant_system_controls.rb +340 -481
  109. data/lib/openstudio-standards/prototypes/common/objects/Prototype.refrigeration.rb +3 -3
  110. data/lib/openstudio-standards/prototypes/common/objects/Prototype.utilities.rb +3 -3
  111. data/lib/openstudio-standards/prototypes/common/prototype_metaprogramming.rb +22 -22
  112. data/lib/openstudio-standards/prototypes/deer/deer.Model.rb +1 -1
  113. data/lib/openstudio-standards/qaqc/calibration.rb +131 -0
  114. data/lib/openstudio-standards/qaqc/create_results.rb +983 -0
  115. data/lib/openstudio-standards/qaqc/envelope.rb +399 -0
  116. data/lib/openstudio-standards/qaqc/eui.rb +213 -0
  117. data/lib/openstudio-standards/qaqc/hvac.rb +1943 -0
  118. data/lib/openstudio-standards/qaqc/internal_loads.rb +568 -0
  119. data/lib/openstudio-standards/qaqc/reporting.rb +141 -0
  120. data/lib/openstudio-standards/qaqc/schedules.rb +129 -0
  121. data/lib/openstudio-standards/qaqc/service_water_heating.rb +273 -0
  122. data/lib/openstudio-standards/qaqc/weather_files.rb +497 -0
  123. data/lib/openstudio-standards/qaqc/zone_conditions.rb +278 -0
  124. data/lib/openstudio-standards/schedules/create.rb +364 -0
  125. data/lib/openstudio-standards/schedules/information.rb +169 -0
  126. data/lib/openstudio-standards/schedules/modify.rb +445 -0
  127. data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +110 -71
  128. data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctParallelPIUReheat.rb +3 -3
  129. data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctVAVReheat.rb +4 -4
  130. data/lib/openstudio-standards/standards/Standards.BoilerHotWater.rb +2 -1
  131. data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +16 -10
  132. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +4 -4
  133. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +1 -1
  134. data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +1 -1
  135. data/lib/openstudio-standards/standards/Standards.CoilDX.rb +4 -4
  136. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXMultiSpeed.rb +1 -1
  137. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXSingleSpeed.rb +5 -5
  138. data/lib/openstudio-standards/standards/Standards.CoilHeatingGas.rb +1 -1
  139. data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +1 -1
  140. data/lib/openstudio-standards/standards/Standards.CoilHeatingWaterToAirHeatPumpEquationFit.rb +1 -1
  141. data/lib/openstudio-standards/standards/Standards.Construction.rb +17 -18
  142. data/lib/openstudio-standards/standards/Standards.CoolingTower.rb +6 -6
  143. data/lib/openstudio-standards/standards/Standards.CoolingTowerSingleSpeed.rb +1 -1
  144. data/lib/openstudio-standards/standards/Standards.CoolingTowerTwoSpeed.rb +1 -1
  145. data/lib/openstudio-standards/standards/Standards.CoolingTowerVariableSpeed.rb +1 -1
  146. data/lib/openstudio-standards/standards/Standards.Fan.rb +6 -12
  147. data/lib/openstudio-standards/standards/Standards.FanVariableVolume.rb +2 -2
  148. data/lib/openstudio-standards/standards/Standards.FluidCooler.rb +1 -1
  149. data/lib/openstudio-standards/standards/Standards.HeaderedPumpsVariableSpeed.rb +1 -1
  150. data/lib/openstudio-standards/standards/Standards.HeatExchangerSensLat.rb +3 -3
  151. data/lib/openstudio-standards/standards/Standards.Model.rb +411 -261
  152. data/lib/openstudio-standards/standards/Standards.PlanarSurface.rb +2 -2
  153. data/lib/openstudio-standards/standards/Standards.PlantLoop.rb +94 -29
  154. data/lib/openstudio-standards/standards/Standards.Pump.rb +2 -2
  155. data/lib/openstudio-standards/standards/Standards.ScheduleConstant.rb +2 -2
  156. data/lib/openstudio-standards/standards/Standards.ScheduleRuleset.rb +14 -14
  157. data/lib/openstudio-standards/standards/Standards.Space.rb +37 -30
  158. data/lib/openstudio-standards/standards/Standards.SpaceType.rb +38 -29
  159. data/lib/openstudio-standards/standards/Standards.SubSurface.rb +7 -7
  160. data/lib/openstudio-standards/standards/Standards.Surface.rb +13 -13
  161. data/lib/openstudio-standards/standards/Standards.ThermalZone.rb +109 -66
  162. data/lib/openstudio-standards/standards/Standards.WaterHeaterMixed.rb +11 -4
  163. data/lib/openstudio-standards/standards/Standards.ZoneHVACComponent.rb +6 -6
  164. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.AirLoopHVAC.rb +1 -1
  165. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PlantLoop.rb +1 -1
  166. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.Space.rb +1 -1
  167. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.Space.rb +1 -1
  168. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirLoopHVAC.rb +4 -4
  169. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +1 -1
  170. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Space.rb +4 -4
  171. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirLoopHVAC.rb +4 -4
  172. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +1 -1
  173. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.CoolingTowerVariableSpeed.rb +1 -1
  174. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Model.rb +5 -21
  175. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Space.rb +4 -4
  176. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.WaterHeaterMixed.rb +1 -1
  177. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.ZoneHVACComponent.rb +1 -1
  178. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirLoopHVAC.rb +36 -4
  179. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +1 -1
  180. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.CoolingTowerVariableSpeed.rb +1 -1
  181. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Space.rb +4 -4
  182. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.ZoneHVACComponent.rb +1 -1
  183. 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
  184. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirLoopHVAC.rb +53 -10
  185. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +1 -1
  186. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoolingTowerVariableSpeed.rb +1 -1
  187. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Space.rb +6 -6
  188. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.ZoneHVACComponent.rb +2 -2
  189. 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
  190. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.curves.json +211 -211
  191. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.economizers.json +14 -14
  192. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.AirLoopHVAC.rb +4 -4
  193. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.Model.rb +1 -1
  194. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.PlantLoop.rb +1 -1
  195. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.economizers.json +14 -14
  196. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirLoopHVAC.rb +4 -4
  197. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.rb +1 -1
  198. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.PlantLoop.rb +1 -1
  199. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirLoopHVAC.rb +6 -6
  200. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
  201. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.CoolingTowerVariableSpeed.rb +1 -1
  202. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.PlantLoop.rb +1 -1
  203. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.Space.rb +4 -4
  204. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirLoopHVAC.rb +6 -6
  205. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +1 -1
  206. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.CoolingTowerVariableSpeed.rb +1 -1
  207. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.PlantLoop.rb +1 -1
  208. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Space.rb +4 -4
  209. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirLoopHVAC.rb +22 -28
  210. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirTerminalSingleDuctParallelPIUReheat.rb +1 -1
  211. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirTerminalSingleDuctVAVReheat.rb +2 -2
  212. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.BoilerHotWater.rb +1 -74
  213. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ChillerElectricEIR.rb +7 -59
  214. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXSingleSpeed.rb +1 -1
  215. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXTwoSpeed.rb +1 -1
  216. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilDX.rb +1 -1
  217. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingDXSingleSpeed.rb +1 -1
  218. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingGas.rb +1 -21
  219. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.DesignSpecificationOutdoorAir.rb +101 -0
  220. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanConstantVolume.rb +1 -1
  221. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanOnOff.rb +1 -1
  222. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanVariableVolume.rb +1 -1
  223. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.HeatExchangerSensLat.rb +1 -1
  224. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Model.rb +643 -526
  225. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.PlanarSurface.rb +8 -2
  226. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.PlantLoop.rb +17 -77
  227. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Space.rb +74 -16
  228. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.SpaceType.rb +96 -44
  229. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Surface.rb +6 -6
  230. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ThermalZone.rb +18 -6
  231. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ZoneHVACComponent.rb +1 -1
  232. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.rb +328 -74
  233. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb +0 -118
  234. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.rb +2 -1
  235. 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
  236. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/baseline_outdoor_air.md +35 -0
  237. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/set_plug_load_measures.md +1 -1
  238. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/ashrae_90_1_prm.UserData.rb +228 -0
  239. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_enums.rb +131 -0
  240. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_space.csv +1 -1
  241. data/lib/openstudio-standards/standards/cbes/cbes.AirLoopHVAC.rb +5 -5
  242. data/lib/openstudio-standards/standards/cbes/cbes.Model.rb +1 -1
  243. data/lib/openstudio-standards/standards/cbes/cbes.PlantLoop.rb +1 -1
  244. data/lib/openstudio-standards/standards/cbes/cbes.Space.rb +1 -1
  245. data/lib/openstudio-standards/standards/cbes/cbes_t24_2005/cbes_t24_2005.Space.rb +1 -1
  246. data/lib/openstudio-standards/standards/cbes/cbes_t24_2008/cbes_t24_2008.Space.rb +1 -1
  247. data/lib/openstudio-standards/standards/deer/deer.AirLoopHVAC.rb +109 -27
  248. data/lib/openstudio-standards/standards/deer/deer.Space.rb +1 -1
  249. data/lib/openstudio-standards/standards/deer/deer_1985/data/deer_1985.economizers.json +246 -4
  250. data/lib/openstudio-standards/standards/deer/deer_1996/data/deer_1996.economizers.json +246 -4
  251. data/lib/openstudio-standards/standards/deer/deer_2003/data/deer_2003.economizers.json +246 -4
  252. data/lib/openstudio-standards/standards/deer/deer_2003/deer_2003.ThermalZone.rb +18 -18
  253. data/lib/openstudio-standards/standards/deer/deer_2007/data/deer_2007.economizers.json +246 -4
  254. data/lib/openstudio-standards/standards/deer/deer_2007/deer_2007.ThermalZone.rb +18 -18
  255. data/lib/openstudio-standards/standards/deer/deer_2011/data/deer_2011.economizers.json +246 -4
  256. data/lib/openstudio-standards/standards/deer/deer_2011/deer_2011.ThermalZone.rb +18 -18
  257. data/lib/openstudio-standards/standards/deer/deer_2014/data/deer_2014.economizers.json +248 -6
  258. data/lib/openstudio-standards/standards/deer/deer_2014/deer_2014.Space.rb +3 -3
  259. data/lib/openstudio-standards/standards/deer/deer_2014/deer_2014.ThermalZone.rb +18 -18
  260. data/lib/openstudio-standards/standards/deer/deer_2015/data/deer_2015.economizers.json +248 -6
  261. data/lib/openstudio-standards/standards/deer/deer_2015/deer_2015.Space.rb +3 -3
  262. data/lib/openstudio-standards/standards/deer/deer_2015/deer_2015.ThermalZone.rb +18 -18
  263. data/lib/openstudio-standards/standards/deer/deer_2017/data/deer_2017.economizers.json +248 -6
  264. data/lib/openstudio-standards/standards/deer/deer_2017/deer_2017.Space.rb +3 -3
  265. data/lib/openstudio-standards/standards/deer/deer_2017/deer_2017.ThermalZone.rb +18 -18
  266. data/lib/openstudio-standards/standards/deer/deer_2020/data/deer_2020.economizers.json +248 -6
  267. data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.AirLoopHVAC.rb +18 -5
  268. data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.FanVariableVolume.rb +1 -1
  269. data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.Space.rb +3 -3
  270. data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.ThermalZone.rb +18 -18
  271. data/lib/openstudio-standards/standards/deer/deer_2025/data/deer_2025.economizers.json +248 -6
  272. data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.AirLoopHVAC.rb +3 -3
  273. data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.FanVariableVolume.rb +1 -1
  274. data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.Space.rb +3 -3
  275. data/lib/openstudio-standards/standards/deer/deer_2030/data/deer_2030.economizers.json +248 -6
  276. data/lib/openstudio-standards/standards/deer/deer_2030/data/deer_2030.heat_pumps.json +2 -2
  277. data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.AirLoopHVAC.rb +3 -3
  278. data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.FanVariableVolume.rb +1 -1
  279. data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.Space.rb +3 -3
  280. data/lib/openstudio-standards/standards/deer/deer_2035/data/deer_2035.economizers.json +248 -6
  281. data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.AirLoopHVAC.rb +3 -3
  282. data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.FanVariableVolume.rb +1 -1
  283. data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.Space.rb +3 -3
  284. data/lib/openstudio-standards/standards/deer/deer_2040/data/deer_2040.economizers.json +248 -6
  285. data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.AirLoopHVAC.rb +3 -3
  286. data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.FanVariableVolume.rb +1 -1
  287. data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.Space.rb +3 -3
  288. data/lib/openstudio-standards/standards/deer/deer_2045/data/deer_2045.economizers.json +260 -0
  289. data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.AirLoopHVAC.rb +3 -3
  290. data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.FanVariableVolume.rb +1 -1
  291. data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.Space.rb +3 -3
  292. data/lib/openstudio-standards/standards/deer/deer_2050/data/deer_2050.economizers.json +248 -6
  293. data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.AirLoopHVAC.rb +3 -3
  294. data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.FanVariableVolume.rb +1 -1
  295. data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.Space.rb +3 -3
  296. data/lib/openstudio-standards/standards/deer/deer_2055/data/deer_2055.economizers.json +248 -6
  297. data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.AirLoopHVAC.rb +3 -3
  298. data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.FanVariableVolume.rb +1 -1
  299. data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.Space.rb +3 -3
  300. data/lib/openstudio-standards/standards/deer/deer_2060/data/deer_2060.economizers.json +248 -6
  301. data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.AirLoopHVAC.rb +3 -3
  302. data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.FanVariableVolume.rb +1 -1
  303. data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.Space.rb +3 -3
  304. data/lib/openstudio-standards/standards/deer/deer_2065/data/deer_2065.economizers.json +248 -6
  305. data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.AirLoopHVAC.rb +3 -3
  306. data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.FanVariableVolume.rb +1 -1
  307. data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.Space.rb +3 -3
  308. data/lib/openstudio-standards/standards/deer/deer_2070/data/deer_2070.economizers.json +248 -6
  309. data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.AirLoopHVAC.rb +3 -3
  310. data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.FanVariableVolume.rb +1 -1
  311. data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.Space.rb +3 -3
  312. data/lib/openstudio-standards/standards/deer/deer_2075/data/deer_2075.economizers.json +248 -6
  313. data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.AirLoopHVAC.rb +3 -3
  314. data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.FanVariableVolume.rb +1 -1
  315. data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.Space.rb +3 -3
  316. data/lib/openstudio-standards/standards/deer/deer_pre_1975/data/deer_pre_1975.economizers.json +246 -4
  317. data/lib/openstudio-standards/standards/necb/BTAP1980TO2010/data/space_types.json +447 -223
  318. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/building_envelope.rb +1 -1
  319. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/data/space_types.json +447 -223
  320. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_systems.rb +5 -2
  321. data/lib/openstudio-standards/standards/necb/ECMS/data/chiller_types.json +25 -0
  322. data/lib/openstudio-standards/standards/necb/ECMS/data/chillers.json +44 -0
  323. data/lib/openstudio-standards/standards/necb/ECMS/data/curves.json +225 -0
  324. data/lib/openstudio-standards/standards/necb/ECMS/ecms.rb +2 -2
  325. data/lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb +193 -73
  326. data/lib/openstudio-standards/standards/necb/ECMS/pv_ground.rb +1 -1
  327. data/lib/openstudio-standards/standards/necb/NECB2011/autozone.rb +10 -4
  328. data/lib/openstudio-standards/standards/necb/NECB2011/beps_compliance_path.rb +7 -7
  329. data/lib/openstudio-standards/standards/necb/NECB2011/building_envelope.rb +4 -5
  330. data/lib/openstudio-standards/standards/necb/NECB2011/data/chiller_types.json +32 -0
  331. data/lib/openstudio-standards/standards/necb/NECB2011/data/chillers.json +1 -1
  332. data/lib/openstudio-standards/standards/necb/NECB2011/data/constants.json +36 -0
  333. data/lib/openstudio-standards/standards/necb/NECB2011/data/fuel_type_sets.json +7 -7
  334. data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/NorthernEducation.osm +47587 -0
  335. data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/NorthernHealthCare.osm +49764 -0
  336. data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/Warehouse.osm +283 -297
  337. data/lib/openstudio-standards/standards/necb/NECB2011/data/space_type_unit_definitions.txt +2 -1
  338. data/lib/openstudio-standards/standards/necb/NECB2011/data/space_types.json +447 -223
  339. data/lib/openstudio-standards/standards/necb/NECB2011/data/standards_data.rb +3 -3
  340. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_multi_speed.rb +1 -1
  341. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +49 -27
  342. data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +400 -202
  343. data/lib/openstudio-standards/standards/necb/NECB2011/service_water_heating.rb +4 -4
  344. data/lib/openstudio-standards/standards/necb/NECB2015/data/space_types.json +637 -318
  345. data/lib/openstudio-standards/standards/necb/NECB2015/hvac_systems.rb +18 -1
  346. data/lib/openstudio-standards/standards/necb/NECB2015/necb_2015.rb +3 -3
  347. data/lib/openstudio-standards/standards/necb/NECB2017/data/space_types.json +637 -318
  348. data/lib/openstudio-standards/standards/necb/NECB2017/hvac_systems.rb +1 -1
  349. data/lib/openstudio-standards/standards/necb/NECB2017/necb_2017.rb +3 -3
  350. data/lib/openstudio-standards/standards/necb/NECB2020/building_envelope.rb +1 -1
  351. data/lib/openstudio-standards/standards/necb/NECB2020/data/space_types.json +615 -307
  352. data/lib/openstudio-standards/standards/necb/NECB2020/service_water_heating.rb +4 -4
  353. data/lib/openstudio-standards/standards/necb/common/btap_data.rb +10 -5
  354. data/lib/openstudio-standards/standards/necb/common/btap_datapoint.rb +1 -1
  355. data/lib/openstudio-standards/utilities/assertion.rb +128 -0
  356. data/lib/openstudio-standards/utilities/logging.rb +2 -3
  357. data/lib/openstudio-standards/utilities/object_info.rb +39 -18
  358. data/lib/openstudio-standards/utilities/schedule_translator.rb +8 -6
  359. data/lib/openstudio-standards/utilities/simulation.rb +24 -11
  360. data/lib/openstudio-standards/utilities/sqlfile.rb +10 -5
  361. data/lib/openstudio-standards/version.rb +1 -1
  362. data/lib/openstudio-standards/weather/Weather.Model.rb +8 -9
  363. data/lib/openstudio-standards/weather/Weather.stat_file.rb +3 -3
  364. data/lib/openstudio-standards/weather/information.rb +35 -0
  365. data/lib/openstudio-standards.rb +69 -5
  366. metadata +52 -16
  367. data/data/standards/OpenStudio_Standards-deer-ALL-comstock(space_types).xlsx +0 -0
  368. data/lib/openstudio-standards/hvac_sizing/Siz.AirLoopHVAC.rb +0 -59
  369. data/lib/openstudio-standards/hvac_sizing/Siz.CoilCoolingWater.rb +0 -13
  370. data/lib/openstudio-standards/hvac_sizing/Siz.HVACComponent.rb +0 -36
  371. data/lib/openstudio-standards/hvac_sizing/Siz.HeatingCoolingFuels.rb +0 -898
  372. data/lib/openstudio-standards/hvac_sizing/Siz.Model.rb +0 -126
  373. data/lib/openstudio-standards/hvac_sizing/Siz.ThermalZone.rb +0 -356
  374. data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.Model.rb +0 -35
  375. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoolingTower.rb +0 -110
  376. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoolingTowerVariableSpeed.rb +0 -5
@@ -201,8 +201,8 @@ class Standard
201
201
 
202
202
  # Get appropriate construction object based on type of surface or subsurface
203
203
  # @author: Doug Maddox, PNNL
204
- # @param: surface_category [string] type of surface: this is not an OpenStudio string
205
- # @param: surface_type [string] SubSurfaceType: this is an OpenStudio string
204
+ # @param: surface_category [String type of surface: this is not an OpenStudio string
205
+ # @param: surface_type [String SubSurfaceType: this is an OpenStudio string
206
206
  # @param: cons_set [object] DefaultSubSurfaceConstructions object
207
207
  # @return: [object] Construction object
208
208
  def get_default_surface_cons_from_surface_type(surface_category, surface_type, cons_set)
@@ -5,7 +5,7 @@ class Standard
5
5
  #
6
6
  # @param plant_loop [OpenStudio::Model::PlantLoop] plant loop
7
7
  # @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
8
- # @return [Bool] returns true if successful, false if not
8
+ # @return [Boolean] returns true if successful, false if not
9
9
  def plant_loop_apply_standard_controls(plant_loop, climate_zone)
10
10
  # Supply water temperature reset
11
11
  # plant_loop_enable_supply_water_temperature_reset(plant_loop) if plant_loop_supply_water_temperature_reset_required?(plant_loop)
@@ -17,7 +17,7 @@ class Standard
17
17
  # @param chilled_water_loop [OpenStudio::Model::PlantLoop] chilled water loop
18
18
  # @param dsgn_sup_wtr_temp [Double] design chilled water supply T
19
19
  # @param dsgn_sup_wtr_temp_delt [Double] design chilled water supply delta T
20
- # @return [Bool] returns true if successful, false if not
20
+ # @return [Boolean] returns true if successful, false if not
21
21
  def chw_sizing_control(model, chilled_water_loop, dsgn_sup_wtr_temp, dsgn_sup_wtr_temp_delt)
22
22
  # chilled water loop sizing and controls
23
23
  if dsgn_sup_wtr_temp.nil?
@@ -62,7 +62,7 @@ class Standard
62
62
  # Returns true if primary and/or secondary pumps are variable speed.
63
63
  #
64
64
  # @param plant_loop [OpenStudio::Model::PlantLoop] plant loop
65
- # @return [Bool] returns true if variable flow, false if not
65
+ # @return [Boolean] returns true if variable flow, false if not
66
66
  def plant_loop_variable_flow_system?(plant_loop)
67
67
  variable_flow = false
68
68
 
@@ -89,7 +89,7 @@ class Standard
89
89
  # you could set at 0.9 and just calculate the pressure rise to have your 19 W/GPM or whatever
90
90
  #
91
91
  # @param plant_loop [OpenStudio::Model::PlantLoop] plant loop
92
- # @return [Bool] returns true if successful, false if not
92
+ # @return [Boolean] returns true if successful, false if not
93
93
  def plant_loop_apply_prm_baseline_pump_power(plant_loop)
94
94
  # Determine the pumping power per
95
95
  # flow based on loop type.
@@ -104,7 +104,7 @@ class Standard
104
104
 
105
105
  has_district_heating = false
106
106
  plant_loop.supplyComponents.each do |sc|
107
- if sc.to_DistrictHeating.is_initialized
107
+ if sc.iddObjectType.valueName.to_s.include?('DistrictHeating')
108
108
  has_district_heating = true
109
109
  end
110
110
  end
@@ -187,7 +187,7 @@ class Standard
187
187
  # Applies the temperatures to the plant loop based on Appendix G.
188
188
  #
189
189
  # @param plant_loop [OpenStudio::Model::PlantLoop] plant loop
190
- # @return [Bool] returns true if successful, false if not
190
+ # @return [Boolean] returns true if successful, false if not
191
191
  def plant_loop_apply_prm_baseline_temperatures(plant_loop)
192
192
  sizing_plant = plant_loop.sizingPlant
193
193
  loop_type = sizing_plant.loopType
@@ -206,7 +206,7 @@ class Standard
206
206
  # Applies the hot water temperatures to the plant loop based on Appendix G.
207
207
  #
208
208
  # @param plant_loop [OpenStudio::Model::PlantLoop] plant loop
209
- # @return [Bool] returns true if successful, false if not
209
+ # @return [Boolean] returns true if successful, false if not
210
210
  def plant_loop_apply_prm_baseline_hot_water_temperatures(plant_loop)
211
211
  sizing_plant = plant_loop.sizingPlant
212
212
 
@@ -243,7 +243,7 @@ class Standard
243
243
  # Applies the chilled water temperatures to the plant loop based on Appendix G.
244
244
  #
245
245
  # @param plant_loop [OpenStudio::Model::PlantLoop] plant loop
246
- # @return [Bool] returns true if successful, false if not
246
+ # @return [Boolean] returns true if successful, false if not
247
247
  def plant_loop_apply_prm_baseline_chilled_water_temperatures(plant_loop)
248
248
  sizing_plant = plant_loop.sizingPlant
249
249
 
@@ -286,7 +286,7 @@ class Standard
286
286
  # Applies the condenser water temperatures to the plant loop based on Appendix G.
287
287
  #
288
288
  # @param plant_loop [OpenStudio::Model::PlantLoop] plant loop
289
- # @return [Bool] returns true if successful, false if not
289
+ # @return [Boolean] returns true if successful, false if not
290
290
  def plant_loop_apply_prm_baseline_condenser_water_temperatures(plant_loop)
291
291
  sizing_plant = plant_loop.sizingPlant
292
292
  loop_type = sizing_plant.loopType
@@ -447,7 +447,7 @@ class Standard
447
447
  # Required if heating or cooling capacity is greater than 300,000 Btu/hr.
448
448
  #
449
449
  # @param plant_loop [OpenStudio::Model::PlantLoop] plant loop
450
- # @return [Bool] returns true if required, false if not
450
+ # @return [Boolean] returns true if required, false if not
451
451
  def plant_loop_supply_water_temperature_reset_required?(plant_loop)
452
452
  reset_required = false
453
453
 
@@ -488,7 +488,7 @@ class Standard
488
488
  # Enable reset of hot or chilled water temperature based on outdoor air temperature.
489
489
  #
490
490
  # @param plant_loop [OpenStudio::Model::PlantLoop] plant loop
491
- # @return [Bool] returns true if successful, false if not
491
+ # @return [Boolean] returns true if successful, false if not
492
492
  def plant_loop_enable_supply_water_temperature_reset(plant_loop)
493
493
  # Get the current setpoint manager on the outlet node
494
494
  # and determine if already has temperature reset
@@ -593,7 +593,7 @@ class Standard
593
593
  else
594
594
  OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.PlantLoop', "For #{plant_loop.name} capacity of #{chiller.name} is not available, total cooling capacity of plant loop will be incorrect when applying standard.")
595
595
  end
596
- # DistrictCooling
596
+ # DistrictCooling
597
597
  elsif sc.to_DistrictCooling.is_initialized
598
598
  dist_clg = sc.to_DistrictCooling.get
599
599
  if dist_clg.nominalCapacity.is_initialized
@@ -623,8 +623,8 @@ class Standard
623
623
  # on the plant loop.
624
624
  total_heating_capacity_w = 0
625
625
  plant_loop.supplyComponents.each do |sc|
626
- # BoilerHotWater
627
626
  if sc.to_BoilerHotWater.is_initialized
627
+ # BoilerHotWater
628
628
  boiler = sc.to_BoilerHotWater.get
629
629
  if boiler.nominalCapacity.is_initialized
630
630
  total_heating_capacity_w += boiler.nominalCapacity.get
@@ -633,8 +633,8 @@ class Standard
633
633
  else
634
634
  OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.PlantLoop', "For #{plant_loop.name} capacity of Boiler:HotWater ' #{boiler.name} is not available, total heating capacity of plant loop will be incorrect when applying standard.")
635
635
  end
636
- # WaterHeater:Mixed
637
636
  elsif sc.to_WaterHeaterMixed.is_initialized
637
+ # WaterHeater:Mixed
638
638
  water_heater = sc.to_WaterHeaterMixed.get
639
639
  if water_heater.heaterMaximumCapacity.is_initialized
640
640
  total_heating_capacity_w += water_heater.heaterMaximumCapacity.get
@@ -643,8 +643,8 @@ class Standard
643
643
  else
644
644
  OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.PlantLoop', "For #{plant_loop.name} capacity of WaterHeater:Mixed #{water_heater.name} is not available, total heating capacity of plant loop will be incorrect when applying standard.")
645
645
  end
646
- # WaterHeater:Stratified
647
646
  elsif sc.to_WaterHeaterStratified.is_initialized
647
+ # WaterHeater:Stratified
648
648
  water_heater = sc.to_WaterHeaterStratified.get
649
649
  if water_heater.heater1Capacity.is_initialized
650
650
  total_heating_capacity_w += water_heater.heater1Capacity.get
@@ -652,9 +652,16 @@ class Standard
652
652
  if water_heater.heater2Capacity.is_initialized
653
653
  total_heating_capacity_w += water_heater.heater2Capacity.get
654
654
  end
655
+ elsif sc.iddObjectType.valueName.to_s.include?('DistrictHeating')
655
656
  # DistrictHeating
656
- elsif sc.to_DistrictHeating.is_initialized
657
- dist_htg = sc.to_DistrictHeating.get
657
+ case sc.iddObjectType.valueName.to_s
658
+ when 'OS_DistrictHeating'
659
+ dist_htg = sc.to_DistrictHeating.get
660
+ when 'OS_DistrictHeatingWater'
661
+ dist_htg = sc.to_DistrictHeatingWater.get
662
+ when 'OS_DistrictHeatingSteam'
663
+ dist_htg = sc.to_DistrictHeatingSteam.get
664
+ end
658
665
  if dist_htg.nominalCapacity.is_initialized
659
666
  total_heating_capacity_w += dist_htg.nominalCapacity.get
660
667
  elsif dist_htg.autosizedNominalCapacity.is_initialized
@@ -743,7 +750,7 @@ class Standard
743
750
  # Applies the pumping controls to the loop based on Appendix G.
744
751
  #
745
752
  # @param plant_loop [OpenStudio::Model::PlantLoop] plant loop
746
- # @return [Bool] returns true if successful, false if not
753
+ # @return [Boolean] returns true if successful, false if not
747
754
  def plant_loop_apply_prm_baseline_pumping_type(plant_loop)
748
755
  sizing_plant = plant_loop.sizingPlant
749
756
  loop_type = sizing_plant.loopType
@@ -763,7 +770,7 @@ class Standard
763
770
  # Applies the chilled water pumping controls to the loop based on Appendix G.
764
771
  #
765
772
  # @param plant_loop [OpenStudio::Model::PlantLoop] chilled water loop
766
- # @return [Bool] returns true if successful, false if not
773
+ # @return [Boolean] returns true if successful, false if not
767
774
  def plant_loop_apply_prm_baseline_chilled_water_pumping_type(plant_loop)
768
775
  # Determine the pumping type.
769
776
  minimum_cap_tons = 300.0
@@ -835,7 +842,7 @@ class Standard
835
842
  # Applies the hot water pumping controls to the loop based on Appendix G.
836
843
  #
837
844
  # @param plant_loop [OpenStudio::Model::PlantLoop] hot water loop
838
- # @return [Bool] returns true if successful, false if not
845
+ # @return [Boolean] returns true if successful, false if not
839
846
  def plant_loop_apply_prm_baseline_hot_water_pumping_type(plant_loop)
840
847
  # Determine the minimum area to determine
841
848
  # pumping type.
@@ -870,7 +877,7 @@ class Standard
870
877
  # Applies the condenser water pumping controls to the loop based on Appendix G.
871
878
  #
872
879
  # @param plant_loop [OpenStudio::Model::PlantLoop] condenser water loop
873
- # @return [Bool] returns true if successful, false if not
880
+ # @return [Boolean] returns true if successful, false if not
874
881
  def plant_loop_apply_prm_baseline_condenser_water_pumping_type(plant_loop)
875
882
  # All condenser water loops are constant flow
876
883
  control_type = 'Constant Flow'
@@ -898,7 +905,7 @@ class Standard
898
905
  # into multiple separate boilers based on Appendix G.
899
906
  #
900
907
  # @param plant_loop [OpenStudio::Model::PlantLoop] hot water loop
901
- # @return [Bool] returns true if successful, false if not
908
+ # @return [Boolean] returns true if successful, false if not
902
909
  def plant_loop_apply_prm_number_of_boilers(plant_loop)
903
910
  # Skip non-heating plants
904
911
  return true unless plant_loop.sizingPlant.loopType == 'Heating'
@@ -961,8 +968,9 @@ class Standard
961
968
  # Splits the single chiller used for the initial sizing run
962
969
  # into multiple separate chillers based on Appendix G.
963
970
  #
964
- # @param plant_loop_args [Array] chilled water loop (OpenStudio::Model::PlantLoop), sizing run directory
965
- # @return [Bool] returns true if successful, false if not
971
+ # @param plant_loop [OpenStudio::Model::PlantLoop] chilled water loop
972
+ # @param sizing_run_dir [String] sizing run directory
973
+ # @return [Boolean] returns true if successful, false if not
966
974
  def plant_loop_apply_prm_number_of_chillers(plant_loop, sizing_run_dir = nil)
967
975
  # Skip non-cooling plants
968
976
  return true unless plant_loop.sizingPlant.loopType == 'Cooling'
@@ -1110,7 +1118,7 @@ class Standard
1110
1118
  # into multiple separate cooling towers based on Appendix G.
1111
1119
  #
1112
1120
  # @param plant_loop [OpenStudio::Model::PlantLoop] condenser water loop
1113
- # @return [Bool] returns true if successful, false if not
1121
+ # @return [Boolean] returns true if successful, false if not
1114
1122
  def plant_loop_apply_prm_number_of_cooling_towers(plant_loop)
1115
1123
  # Skip non-cooling plants
1116
1124
  return true unless plant_loop.sizingPlant.loopType == 'Condenser'
@@ -1372,7 +1380,7 @@ class Standard
1372
1380
  obj_type = component.iddObjectType.valueName.to_s
1373
1381
 
1374
1382
  case obj_type
1375
- when 'OS_DistrictHeating'
1383
+ when 'OS_DistrictHeating', 'OS_DistrictHeatingWater', 'OS_DistrictHeatingSteam'
1376
1384
  primary_fuels << 'DistrictHeating'
1377
1385
  combination_system = false
1378
1386
  when 'OS_HeatPump_WaterToWater_EquationFit_Heating'
@@ -1398,7 +1406,13 @@ class Standard
1398
1406
  # Check the plant loop connection on the source side
1399
1407
  if component.secondaryPlantLoop.is_initialized
1400
1408
  source_plant_loop = component.secondaryPlantLoop.get
1401
- secondary_fuels += plant_loop.model.plant_loop_heating_fuels(source_plant_loop)
1409
+
1410
+ # error if Loop heating fuels method is not available
1411
+ if component.model.version < OpenStudio::VersionString.new('3.6.0')
1412
+ OpenStudio.logFree(OpenStudio::Error, 'openstudio.Standards.PlantLoop', 'Required Loop method .heatingFuelTypes is not available in pre-OpenStudio 3.6.0 versions. Use a more recent version of OpenStudio.')
1413
+ end
1414
+
1415
+ secondary_fuels += source_plant_loop.heatingFuelTypes.map(&:valueName)
1402
1416
  secondary_heating_capacity += plant_loop_total_heating_capacity(source_plant_loop)
1403
1417
  end
1404
1418
 
@@ -1421,7 +1435,13 @@ class Standard
1421
1435
  # Check the plant loop connection on the source side
1422
1436
  if component.secondaryPlantLoop.is_initialized
1423
1437
  source_plant_loop = component.secondaryPlantLoop.get
1424
- secondary_fuels += plant_loop.model.plant_loop_heating_fuels(source_plant_loop)
1438
+
1439
+ # error if Loop heating fuels method is not available
1440
+ if component.model.version < OpenStudio::VersionString.new('3.6.0')
1441
+ OpenStudio.logFree(OpenStudio::Error, 'openstudio.Standards.PlantLoop', 'Required Loop method .heatingFuelTypes is not available in pre-OpenStudio 3.6.0 versions. Use a more recent version of OpenStudio.')
1442
+ end
1443
+
1444
+ secondary_fuels += source_plant_loop.heatingFuelTypes.map(&:valueName)
1425
1445
  secondary_heating_capacity += plant_loop_total_heating_capacity(source_plant_loop)
1426
1446
  end
1427
1447
 
@@ -1436,7 +1456,13 @@ class Standard
1436
1456
  cooling_hx_control_types.each(&:downcase!)
1437
1457
  if !cooling_hx_control_types.include?(hx.controlType.downcase) && hx.secondaryPlantLoop.is_initialized
1438
1458
  source_plant_loop = hx.secondaryPlantLoop.get
1439
- secondary_fuels += plant_loop.model.plant_loop_heating_fuels(source_plant_loop)
1459
+
1460
+ # error if Loop heating fuels method is not available
1461
+ if component.model.version < OpenStudio::VersionString.new('3.6.0')
1462
+ OpenStudio.logFree(OpenStudio::Error, 'openstudio.Standards.PlantLoop', 'Required Loop method .heatingFuelTypes is not available in pre-OpenStudio 3.6.0 versions. Use a more recent version of OpenStudio.')
1463
+ end
1464
+
1465
+ secondary_fuels += source_plant_loop.heatingFuelTypes.map(&:valueName)
1440
1466
  secondary_heating_capacity += plant_loop_total_heating_capacity(source_plant_loop)
1441
1467
  end
1442
1468
 
@@ -1476,4 +1502,43 @@ class Standard
1476
1502
  plantloop_capacity = plantloop_dt * plantloop_maxflowrate * 1000.0 * 4180.0
1477
1503
  return plantloop_capacity
1478
1504
  end
1505
+
1506
+ # This methods replaces all indoor or outdoor pipes which model the heat transfer between the pipe and the
1507
+ # environement by adiabatic pipes.
1508
+ #
1509
+ # @param plant_loop [OpenStudio::Model::PlantLoop] plant loop
1510
+ # @return [Boolean] returns true if successful
1511
+ def plant_loop_adiabatic_pipes_only(plant_loop)
1512
+ supply_side_components = plant_loop.supplyComponents
1513
+ demand_side_components = plant_loop.demandComponents
1514
+ plant_loop_components = supply_side_components += demand_side_components
1515
+ plant_loop_components.each do |component|
1516
+ # Get the object type
1517
+ obj_type = component.iddObjectType.valueName.to_s
1518
+ next unless ['OS_Pipe_Indoor', 'OS_Pipe_Outdoor'].include?(obj_type)
1519
+
1520
+ # Get pipe object
1521
+ pipe = nil
1522
+ case obj_type
1523
+ when 'OS_Pipe_Indoor'
1524
+ pipe = component.to_PipeIndoor.get
1525
+ when 'OS_Pipe_Outdoor'
1526
+ pipe = component.to_PipeOutdoor.get
1527
+ end
1528
+
1529
+ # Get pipe node
1530
+ node = prm_get_optional_handler(pipe, @sizing_run_dir, 'to_StraightComponent', 'outletModelObject', 'to_Node')
1531
+
1532
+ # Get pipe and node names
1533
+ node_name = node.name.get
1534
+ pipe_name = pipe.name.get
1535
+
1536
+ # Replace indoor or outdoor pipe by an adiabatic pipe
1537
+ new_pipe = OpenStudio::Model::PipeAdiabatic.new(plant_loop.model)
1538
+ new_pipe.setName(pipe_name)
1539
+ new_pipe.addToNode(node)
1540
+ component.remove
1541
+ end
1542
+ return true
1543
+ end
1479
1544
  end
@@ -9,7 +9,7 @@ module Pump
9
9
  # @param pump [OpenStudio::Model::StraightComponent] pump object, allowable types:
10
10
  # PumpConstantSpeed, PumpVariableSpeed
11
11
  # @param target_w_per_gpm [Double] the target power per flow, in W/gpm
12
- # @return [Bool] returns true if successful, false if not
12
+ # @return [Boolean] returns true if successful, false if not
13
13
  # @author jmarrec
14
14
  def pump_apply_prm_pressure_rise_and_motor_efficiency(pump, target_w_per_gpm)
15
15
  # Eplus assumes an impeller efficiency of 0.78 to determine the total efficiency
@@ -94,7 +94,7 @@ module Pump
94
94
  #
95
95
  # @param pump [OpenStudio::Model::StraightComponent] pump object, allowable types:
96
96
  # PumpConstantSpeed, PumpVariableSpeed
97
- # @return [Bool] returns true if successful, false if not
97
+ # @return [Boolean] returns true if successful, false if not
98
98
  def pump_apply_standard_minimum_motor_efficiency(pump)
99
99
  # Get the horsepower
100
100
  bhp = pump_brake_horsepower(pump)
@@ -33,8 +33,8 @@ end
33
33
  # Intended use is for storing fan schedules to hash of ZoneName:SchedArray so schedules
34
34
  # can be saved when HVAC objects are deleted
35
35
  # @author Doug Maddox, PNNL
36
- # @param [object] model
37
- # @param [Object] schedule_ruleset
36
+ # @param model [OpenStudio::Model::Model] OpenStudio model object
37
+ # @param schedule_constant [OpenStudio::Model::ScheduleConstant] schedule
38
38
  # @return [Array<Double>] Array of sequential hourly values for year + 24 hours at end for holiday
39
39
  def get_8760_values_from_schedule_constant(model, schedule_constant)
40
40
  yd = model.getYearDescription
@@ -394,13 +394,13 @@ class Standard
394
394
  end
395
395
 
396
396
  # get values for new default profile
397
- new_default_daySchedule = rule_vector[new_default_index].daySchedule
398
- new_default_daySchedule_values = new_default_daySchedule.values
399
- new_default_daySchedule_times = new_default_daySchedule.times
397
+ new_default_day_schedule = rule_vector[new_default_index].daySchedule
398
+ new_default_day_schedule_values = new_default_day_schedule.values
399
+ new_default_day_schedule_times = new_default_day_schedule.times
400
400
 
401
401
  # update values and times for default profile
402
- for i in 0..(new_default_daySchedule_values.size - 1)
403
- old_default_schedule_day.addValue(new_default_daySchedule_times[i], new_default_daySchedule_values[i])
402
+ for i in 0..(new_default_day_schedule_values.size - 1)
403
+ old_default_schedule_day.addValue(new_default_day_schedule_times[i], new_default_day_schedule_values[i])
404
404
  end
405
405
 
406
406
  # remove rule object that has become the default. Also try to remove the ScheduleDay
@@ -415,8 +415,8 @@ class Standard
415
415
  # @author David Goldwasser
416
416
  # @param schedule [OpenStudio::Model::ScheduleRuleset] schedule ruleset object
417
417
  # @param ramp_frequency [Double] ramp frequency in minutes
418
- # @param infer_hoo_for_non_assigned_objects [Bool] attempt to get hoo for objects like swh with and exterior lighting
419
- # @param error_on_out_of_order [Bool] true will error if applying formula creates out of order values
418
+ # @param infer_hoo_for_non_assigned_objects [Boolean] attempt to get hoo for objects like swh with and exterior lighting
419
+ # @param error_on_out_of_order [Boolean] true will error if applying formula creates out of order values
420
420
  # @return [OpenStudio::Model::ScheduleRuleset] schedule ruleset object
421
421
  def schedule_apply_parametric_inputs(schedule, ramp_frequency, infer_hoo_for_non_assigned_objects, error_on_out_of_order, parametric_inputs = nil)
422
422
  # Check if parametric inputs were supplied and generate them if not
@@ -611,7 +611,7 @@ class Standard
611
611
  # @param sat_end_time [OpenStudio::Time] Saturday end time. If greater than 24:00, hours of operation will wrap over midnight.
612
612
  # @param sun_start_time [OpenStudio::Time] Sunday start time. If nil, no change will be made to this day.
613
613
  # @param sun_end_time [OpenStudio::Time] Sunday end time. If greater than 24:00, hours of operation will wrap over midnight.
614
- # @return [Bool] returns true if successful, false if not
614
+ # @return [Boolean] returns true if successful, false if not
615
615
  def schedule_ruleset_set_hours_of_operation(schedule_ruleset, wkdy_start_time: nil, wkdy_end_time: nil, sat_start_time: nil, sat_end_time: nil, sun_start_time: nil, sun_end_time: nil)
616
616
  # Default day is assumed to represent weekdays
617
617
  if wkdy_start_time && wkdy_end_time
@@ -645,9 +645,9 @@ class Standard
645
645
  #
646
646
  # Return Array of weekday values from Array of all day values
647
647
  # @author Xuechen (Jerry) Lei, PNNL
648
- # @param model [OpenStudio::model::Model] OpenStudio model object
648
+ # @param model [OpenStudio::Model::Model] OpenStudio model object
649
649
  # @param values [Array] hourly time-series values of all days
650
- # @param value_includes_holiday [Bool] whether the input values include a day of holiday at the end of the array
650
+ # @param value_includes_holiday [Boolean] whether the input values include a day of holiday at the end of the array
651
651
  #
652
652
  # @return [Array] hourly time-series values in weekdays
653
653
  #
@@ -721,7 +721,7 @@ class Standard
721
721
  day_schedule_holiday = schedule_ruleset.to_ScheduleRuleset.get.defaultDaySchedule
722
722
  end
723
723
  # Currently holidaySchedule is not working in SDK in ScheduleRuleset object
724
- # TODO: enable the following lines when holidaySchedule is available
724
+ # @todo enable the following lines when holidaySchedule is available
725
725
  # if !schedule_ruleset.isHolidayScheduleDefaulted
726
726
  # day_schedule = schedule_ruleset.to_ScheduleRuleset.get.holidaySchedule
727
727
  # else
@@ -974,7 +974,7 @@ class Standard
974
974
  end
975
975
 
976
976
  # Last day in values array is the holiday schedule
977
- # TODO: add holiday schedule when implemented in OpenStudio SDK
977
+ # @todo add holiday schedule when implemented in OpenStudio SDK
978
978
  end
979
979
 
980
980
  # Need to handle design days
@@ -1186,8 +1186,8 @@ class Standard
1186
1186
  # @param val_flr [Double] value floor
1187
1187
  # @param val_clg [Double] value ceiling
1188
1188
  # @param ramp_frequency [Double] ramp frequency in minutes
1189
- # @param infer_hoo_for_non_assigned_objects [Bool] attempt to get hoo for objects like swh with and exterior lighting
1190
- # @param error_on_out_of_order [Bool] true will error if applying formula creates out of order values
1189
+ # @param infer_hoo_for_non_assigned_objects [Boolean] attempt to get hoo for objects like swh with and exterior lighting
1190
+ # @param error_on_out_of_order [Boolean] true will error if applying formula creates out of order values
1191
1191
  # @return [OpenStudio::Model::ScheduleDay] schedule day
1192
1192
  # @api private
1193
1193
  def process_hrs_of_operation_hash(sch_day, hoo_start, hoo_end, val_flr, val_clg, ramp_frequency, infer_hoo_for_non_assigned_objects, error_on_out_of_order)
@@ -8,7 +8,7 @@ class Standard
8
8
  # situations. When it fails, it will log warnings/errors for users to see.
9
9
  #
10
10
  # @param space [OpenStudio::Model::Space] space object
11
- # @param draw_daylight_areas_for_debugging [Bool] If this argument is set to true,
11
+ # @param draw_daylight_areas_for_debugging [Boolean] If this argument is set to true,
12
12
  # daylight areas will be added to the model as surfaces for visual debugging.
13
13
  # Yellow = toplighted area, Red = primary sidelighted area,
14
14
  # Blue = secondary sidelighted area, Light Blue = floor
@@ -804,9 +804,9 @@ class Standard
804
804
 
805
805
  # Default for 2013 and earlier is to Add daylighting controls (sidelighting and toplighting) per the template
806
806
  # @param space [OpenStudio::Model::Space] the space with daylighting
807
- # @param remove_existing_controls [Bool] if true, will remove existing controls then add new ones
808
- # @param draw_daylight_areas_for_debugging [Bool] If this argument is set to true,
809
- # @return [boolean] true if successful
807
+ # @param remove_existing [Boolean] if true, will remove existing controls then add new ones
808
+ # @param draw_areas_for_debug [Boolean] If this argument is set to true,
809
+ # @return [Boolean] returns true if successful, false if not
810
810
  def space_set_baseline_daylighting_controls(space, remove_existing = false, draw_areas_for_debug = false)
811
811
  added = space_add_daylighting_controls(space, remove_existing, draw_areas_for_debug)
812
812
  return added
@@ -818,12 +818,12 @@ class Standard
818
818
  # situations. When it fails, it will log warnings/errors for users to see.
819
819
  #
820
820
  # @param space [OpenStudio::Model::Space] the space with daylighting
821
- # @param remove_existing_controls [Bool] if true, will remove existing controls then add new ones
822
- # @param draw_daylight_areas_for_debugging [Bool] If this argument is set to true,
821
+ # @param remove_existing_controls [Boolean] if true, will remove existing controls then add new ones
822
+ # @param draw_daylight_areas_for_debugging [Boolean] If this argument is set to true,
823
823
  # daylight areas will be added to the model as surfaces for visual debugging.
824
824
  # Yellow = toplighted area, Red = primary sidelighted area,
825
825
  # Blue = secondary sidelighted area, Light Blue = floor
826
- # @return [boolean] true if successful
826
+ # @return [Boolean] returns true if successful, false if not
827
827
  # @todo add a list of valid choices for template argument
828
828
  # @todo add exception for retail spaces
829
829
  # @todo add exception 2 for skylights with VT < 0.4
@@ -1223,9 +1223,9 @@ class Standard
1223
1223
  # @param areas [Hash] a hash of daylighted areas
1224
1224
  # @param sorted_windows [Hash] a hash of windows, sorted by priority
1225
1225
  # @param sorted_skylights [Hash] a hash of skylights, sorted by priority
1226
- # @param req_top_ctrl [Bool] if toplighting controls are required
1227
- # @param req_pri_ctrl [Bool] if primary sidelighting controls are required
1228
- # @param req_sec_ctrl [Bool] if secondary sidelighting controls are required
1226
+ # @param req_top_ctrl [Boolean] if toplighting controls are required
1227
+ # @param req_pri_ctrl [Boolean] if primary sidelighting controls are required
1228
+ # @param req_sec_ctrl [Boolean] if secondary sidelighting controls are required
1229
1229
  # @return [Array] array of 4 items
1230
1230
  # [sensor 1 fraction, sensor 2 fraction, sensor 1 window, sensor 2 window]
1231
1231
  def space_daylighting_fractions_and_windows(space,
@@ -1342,7 +1342,7 @@ class Standard
1342
1342
  #
1343
1343
  # @param space [OpenStudio::Model::Space] space object
1344
1344
  # @return [Double] the baseline infiltration rate, in cfm/ft^2 exterior above grade wall area at 75 Pa
1345
- def space_infiltration_rate_75_pa(space)
1345
+ def space_infiltration_rate_75_pa(space = nil)
1346
1346
  basic_infil_rate_cfm_per_ft2 = 1.8
1347
1347
  return basic_infil_rate_cfm_per_ft2
1348
1348
  end
@@ -1454,7 +1454,7 @@ class Standard
1454
1454
 
1455
1455
  # Conditioned space OR semi-heated space <-> unconditioned spaces
1456
1456
  unless surf_cnt
1457
- # TODO: add a case for 'Zone' when supported
1457
+ # @todo add a case for 'Zone' when supported
1458
1458
  if surface.outsideBoundaryCondition == 'Surface'
1459
1459
  adj_space = surface.adjacentSurface.get.space.get
1460
1460
  adj_space_cond_type = space_conditioning_category(adj_space)
@@ -1481,7 +1481,7 @@ class Standard
1481
1481
  # or if the space type name contains the word plenum.
1482
1482
  #
1483
1483
  # @param space [OpenStudio::Model::Space] space object
1484
- # return [Bool] returns true if plenum, false if not
1484
+ # return [Boolean] returns true if plenum, false if not
1485
1485
  def space_plenum?(space)
1486
1486
  plenum_status = false
1487
1487
 
@@ -1523,7 +1523,7 @@ class Standard
1523
1523
  # type of the space below the largest floor in the plenum.
1524
1524
  #
1525
1525
  # @param space [OpenStudio::Model::Space] space object
1526
- # return [Bool] true if residential, false if nonresidential
1526
+ # return [Boolean] true if residential, false if nonresidential
1527
1527
  def space_residential?(space)
1528
1528
  is_res = false
1529
1529
 
@@ -1596,7 +1596,6 @@ class Standard
1596
1596
  # Determines whether the space is conditioned per 90.1, which is based on heating and cooling loads.
1597
1597
  #
1598
1598
  # @param space [OpenStudio::Model::Space] space object
1599
- # @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
1600
1599
  # @return [String] NonResConditioned, ResConditioned, Semiheated, Unconditioned
1601
1600
  # @todo add logic to detect indirectly-conditioned spaces based on air transfer
1602
1601
  def space_conditioning_category(space)
@@ -1717,7 +1716,7 @@ class Standard
1717
1716
  #
1718
1717
  # @author Andrew Parker, Julien Marrec
1719
1718
  # @param space [OpenStudio::Model::Space] space object
1720
- # @return [Bool] returns true if heated, false if not
1719
+ # @return [Boolean] returns true if heated, false if not
1721
1720
  def space_heated?(space)
1722
1721
  # Get the zone this space is inside
1723
1722
  zone = space.thermalZone
@@ -1738,7 +1737,7 @@ class Standard
1738
1737
  #
1739
1738
  # @author Andrew Parker, Julien Marrec
1740
1739
  # @param space [OpenStudio::Model::Space] space object
1741
- # @return [Bool] returns true if cooled, false if not
1740
+ # @return [Boolean] returns true if cooled, false if not
1742
1741
  def space_cooled?(space)
1743
1742
  # Get the zone this space is inside
1744
1743
  zone = space.thermalZone
@@ -1854,7 +1853,7 @@ class Standard
1854
1853
  # and fraction lost for equipment
1855
1854
  # @author Doug Maddox, PNNL
1856
1855
  # @param space object
1857
- # @param return_noncoincident_value [boolean] if true, return value is noncoincident peak; if false, return is array off coincident load
1856
+ # @param return_noncoincident_value [Boolean] if true, return value is noncoincident peak; if false, return is array off coincident load
1858
1857
  # @return [Double] 8760 array of the design internal load, in W, for this space
1859
1858
  def space_internal_load_annual_array(model, space, return_noncoincident_value)
1860
1859
  # For each type of load, first convert schedules to 8760 arrays so coincident load can be determined
@@ -2070,13 +2069,13 @@ class Standard
2070
2069
  # to determine whether specific zones should be isolated to PSZ based on
2071
2070
  # space loads that differ significantly from other zones on the multizone system
2072
2071
  #
2073
- # @param model [OpenStudio::Model::Model] the model
2072
+ # @param model [OpenStudio::Model::Model] OpenStudio model object
2074
2073
  # @param space [OpenStudio::Model::Space] the space
2075
2074
  # @param equips [object] This is an array of equipment objects in the model
2076
2075
  # @param eqp_type [String] string description of the type of equipment object
2077
2076
  # @param ppl_total [Numeric] total number of people in the space
2078
2077
  # @param load_values [Array] 8760 array of load values for the equipment type
2079
- # @param return_noncoincident_value [boolean] return a single peak value if true; return 8760 gain profile if false
2078
+ # @param return_noncoincident_value [Boolean] return a single peak value if true; return 8760 gain profile if false
2080
2079
  #
2081
2080
  # @return [Array] load values array; if return_noncoincident_value is true, array has only one value
2082
2081
  #
@@ -2108,13 +2107,13 @@ class Standard
2108
2107
  # to determine whether specific zones should be isolated to PSZ based on
2109
2108
  # space loads that differ significantly from other zones on the multizone system
2110
2109
  #
2111
- # @param model [OpenStudio::Model::Model] the model
2110
+ # @param model [OpenStudio::Model::Model] OpenStudio model object
2112
2111
  # @param space [OpenStudio::Model::Space] the space
2113
2112
  # @param equip [object] This can be any type of equipment object in the space
2114
2113
  # @param eqp_type [String] string description of the type of equipment object
2115
2114
  # @param ppl_total [Numeric] total number of people in the space
2116
2115
  # @param load_values [Array] 8760 array of load values for the equipment type
2117
- # @param return_noncoincident_value [boolean] return a single peak value if true; return 8760 gain profile if false
2116
+ # @param return_noncoincident_value [Boolean] return a single peak value if true; return 8760 gain profile if false
2118
2117
  #
2119
2118
  # @return [Array] load values array; if return_noncoincident_value is true, array has only one value
2120
2119
  #
@@ -2216,7 +2215,7 @@ class Standard
2216
2215
  # will return a sorted array of array of spaces and connected area (Descending)
2217
2216
  #
2218
2217
  # @param space [OpenStudio::Model::Space] space object
2219
- # @param same_floor [Bool] only consider spaces on the same floor
2218
+ # @param same_floor [Boolean] only consider spaces on the same floor
2220
2219
  # @return [Hash] sorted hash with array of spaces and area
2221
2220
  def space_get_adjacent_spaces_with_shared_wall_areas(space, same_floor = true)
2222
2221
  same_floor_spaces = []
@@ -2281,7 +2280,7 @@ class Standard
2281
2280
  # Find the space that has the most wall area touching this space.
2282
2281
  #
2283
2282
  # @param space [OpenStudio::Model::Space] space object
2284
- # @param same_floor [Bool] only consider spaces on the same floor
2283
+ # @param same_floor [Boolean] only consider spaces on the same floor
2285
2284
  # @return [OpenStudio::Model::Space] space object
2286
2285
  def space_get_adjacent_space_with_most_shared_wall_area(space, same_floor = true)
2287
2286
  return get_adjacent_spaces_with_touching_area(same_floor)[0][0]
@@ -2938,8 +2937,8 @@ class Standard
2938
2937
 
2939
2938
  # A function to check whether a space is a return / supply plenum.
2940
2939
  # This function only works on spaces used as a AirLoopSupplyPlenum or AirLoopReturnPlenum
2941
- # @param [OpenStudio::Model::Space] space
2942
- # @return boolean true if it is plenum, else false.
2940
+ # @param space [OpenStudio::Model::Space]
2941
+ # @return [Boolean] true if it is plenum, else false.
2943
2942
  def space_is_plenum(space)
2944
2943
  # Get the zone this space is inside
2945
2944
  zone = space.thermalZone
@@ -2970,8 +2969,8 @@ class Standard
2970
2969
 
2971
2970
  # Provide the type of daylighting control type
2972
2971
  #
2973
- # @param [OpenStudio::Model::Space] OpenStudio Space object
2974
- # return [String] daylighting control type
2972
+ # @param space [OpenStudio::Model::Space] OpenStudio Space object
2973
+ # @return [String] daylighting control type
2975
2974
  def space_daylighting_control_type(space)
2976
2975
  return 'Stepped'
2977
2976
  end
@@ -2979,9 +2978,17 @@ class Standard
2979
2978
  # Provide the minimum input power fraction for continuous
2980
2979
  # dimming daylighting control
2981
2980
  #
2982
- # @param [OpenStudio::Model::Space] OpenStudio Space object
2983
- # return [Float] daylighting minimum input power fraction
2981
+ # @param space [OpenStudio::Model::Space] OpenStudio Space object
2982
+ # @return [Double] daylighting minimum input power fraction
2984
2983
  def space_daylighting_minimum_input_power_fraction(space)
2985
2984
  return 0.3
2986
2985
  end
2986
+
2987
+ # Create and assign PRM computer room electric equipment schedule
2988
+ #
2989
+ # @param space [OpenStudio::Model::Space] OpenStudio Space object
2990
+ # @return [Boolean] returns true if successful, false if not
2991
+ def space_add_prm_computer_room_equipment_schedule(space)
2992
+ return true
2993
+ end
2987
2994
  end