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
@@ -4,7 +4,7 @@ class Standard
4
4
  # Sets the fan power of a PIU fan based on the W/cfm specified in the standard.
5
5
  #
6
6
  # @param air_terminal_single_duct_parallel_piu_reheat [OpenStudio::Model::AirTerminalSingleDuctParallelPIUReheat] air terminal object
7
- # @return [Bool] returns true if successful, false if not
7
+ # @return [Boolean] returns true if successful, false if not
8
8
  def air_terminal_single_duct_parallel_piu_reheat_apply_prm_baseline_fan_power(air_terminal_single_duct_parallel_piu_reheat)
9
9
  OpenStudio.logFree(OpenStudio::Debug, 'openstudio.standards.AirTerminalSingleDuctParallelPIUReheat', "Setting PIU fan power for #{air_terminal_single_duct_parallel_piu_reheat.name}.")
10
10
 
@@ -72,7 +72,7 @@ class Standard
72
72
  # means that the secondary fan will be on when the primary air
73
73
  # flow is at the minimum flow fraction.
74
74
  #
75
- # @return [Float] returns nil or a float representing the fraction
75
+ # @return [Double] returns nil or a float representing the fraction
76
76
  def air_terminal_single_duct_parallel_piu_reheat_fan_on_flow_fraction
77
77
  return nil
78
78
  end
@@ -90,7 +90,7 @@ class Standard
90
90
  #
91
91
  # @param air_terminal_single_duct_parallel_piu_reheat [OpenStudio::Model::AirTerminalSingleDuctParallelPIUReheat] the air terminal object
92
92
  # @param zone_min_oa [Double] the zone outdoor air flow rate, in m^3/s.
93
- # @return [Bool] returns true if successful, false if not
93
+ # @return [Boolean] returns true if successful, false if not
94
94
  def air_terminal_single_duct_parallel_piu_reheat_apply_minimum_primary_airflow_fraction(air_terminal_single_duct_parallel_piu_reheat, zone_min_oa = nil)
95
95
  # Minimum primary air flow
96
96
  min_primary_airflow_frac = air_terminal_single_duct_parallel_reheat_piu_minimum_primary_airflow_fraction(air_terminal_single_duct_parallel_piu_reheat)
@@ -9,9 +9,9 @@ class Standard
9
9
  # @param zone_min_oa [Double] the zone outdoor air flow rate, in m^3/s.
10
10
  # If supplied, this will be set as a minimum limit in addition to the minimum
11
11
  # damper position. EnergyPlus will use the larger of the two values during sizing.
12
- # @param has_ddc [Bool] whether or not there is DDC control of the VAV terminal,
12
+ # @param has_ddc [Boolean] whether or not there is DDC control of the VAV terminal,
13
13
  # which impacts the minimum damper position requirement.
14
- # @return [Bool] returns true if successful, false if not
14
+ # @return [Boolean] returns true if successful, false if not
15
15
  # @todo remove exception where older vintages don't have minimum positions adjusted.
16
16
  def air_terminal_single_duct_vav_reheat_apply_minimum_damper_position(air_terminal_single_duct_vav_reheat, zone_min_oa = nil, has_ddc = true)
17
17
  # Minimum damper position
@@ -34,7 +34,7 @@ class Standard
34
34
  # Defaults to 30%
35
35
  #
36
36
  # @param air_terminal_single_duct_vav_reheat [OpenStudio::Model::AirTerminalSingleDuctVAVReheat] the air terminal object
37
- # @param has_ddc [Bool] whether or not there is DDC control of the VAV terminal in question
37
+ # @param has_ddc [Boolean] whether or not there is DDC control of the VAV terminal in question
38
38
  # @return [Double] minimum damper position
39
39
  def air_terminal_single_duct_vav_reheat_minimum_damper_position(air_terminal_single_duct_vav_reheat, has_ddc = false)
40
40
  min_damper_position = 0.3
@@ -44,7 +44,7 @@ class Standard
44
44
  # Sets the capacity of the reheat coil based on the minimum flow fraction, and the maximum flow rate.
45
45
  #
46
46
  # @param air_terminal_single_duct_vav_reheat [OpenStudio::Model::AirTerminalSingleDuctVAVReheat] the air terminal object
47
- # @return [Bool] returns true if successful, false if not
47
+ # @return [Boolean] returns true if successful, false if not
48
48
  def air_terminal_single_duct_vav_reheat_set_heating_cap(air_terminal_single_duct_vav_reheat)
49
49
  flow_rate_fraction = 0.0
50
50
  if air_terminal_single_duct_vav_reheat.constantMinimumAirFlowFraction.is_initialized
@@ -74,6 +74,7 @@ class Standard
74
74
  # Finds lookup object in standards and return minimum thermal efficiency
75
75
  #
76
76
  # @param boiler_hot_water [OpenStudio::Model::BoilerHotWater] hot water boiler object
77
+ # @param rename [Boolean] if true, rename the boiler to include the new capacity and efficiency
77
78
  # @return [Double] minimum thermal efficiency
78
79
  def boiler_hot_water_standard_minimum_thermal_efficiency(boiler_hot_water, rename = false)
79
80
  # Get the boiler properties
@@ -130,7 +131,7 @@ class Standard
130
131
  # Applies the standard efficiency ratings and typical performance curves to this object.
131
132
  #
132
133
  # @param boiler_hot_water [OpenStudio::Model::BoilerHotWater] hot water boiler object
133
- # @return [Bool] returns true if successful, false if not
134
+ # @return [Boolean] returns true if successful, false if not
134
135
  def boiler_hot_water_apply_efficiency_and_curves(boiler_hot_water)
135
136
  successfully_set_all_properties = false
136
137
 
@@ -4,7 +4,7 @@ class Standard
4
4
  # Finds the search criteria
5
5
  #
6
6
  # @param chiller_electric_eir [OpenStudio::Model::ChillerElectricEIR] chiller object
7
- # @return [hash] has for search criteria to be used for find object
7
+ # @return [Hash] has for search criteria to be used for find object
8
8
  def chiller_electric_eir_find_search_criteria(chiller_electric_eir)
9
9
  search_criteria = {}
10
10
  search_criteria['template'] = template
@@ -36,14 +36,20 @@ class Standard
36
36
  condenser_type = 'WithCondenser' if absorption_type.nil?
37
37
  end
38
38
  elsif cooling_type == 'WaterCooled'
39
- if name.include?('Reciprocating')
40
- compressor_type = 'Reciprocating'
41
- elsif name.include?('Rotary Screw')
42
- compressor_type = 'Rotary Screw'
43
- elsif name.include?('Scroll')
44
- compressor_type = 'Scroll'
45
- elsif name.include?('Centrifugal')
46
- compressor_type = 'Centrifugal'
39
+ # use the chiller additional properties compressor type if defined
40
+ if chiller_electric_eir.additionalProperties.hasFeature('compressor_type')
41
+ compressor_type = chiller_electric_eir.additionalProperties.getFeatureAsString('compressor_type').get
42
+ else
43
+ # try to lookup by chiller name
44
+ if name.include?('Reciprocating')
45
+ compressor_type = 'Reciprocating'
46
+ elsif name.include?('Rotary Screw')
47
+ compressor_type = 'Rotary Screw'
48
+ elsif name.include?('Scroll')
49
+ compressor_type = 'Scroll'
50
+ elsif name.include?('Centrifugal')
51
+ compressor_type = 'Centrifugal'
52
+ end
47
53
  end
48
54
  end
49
55
  unless condenser_type.nil?
@@ -102,7 +108,7 @@ class Standard
102
108
  #
103
109
  # @param chiller_electric_eir [OpenStudio::Model::ChillerElectricEIR] chiller object
104
110
  # @param clg_tower_objs [Array] cooling towers, currently unused
105
- # @return [Bool] returns true if successful, false if not
111
+ # @return [Boolean] returns true if successful, false if not
106
112
  # @todo remove clg_tower_objs parameter if unused
107
113
  def chiller_electric_eir_apply_efficiency_and_curves(chiller_electric_eir, clg_tower_objs)
108
114
  chillers = standards_data['chillers']
@@ -6,7 +6,7 @@ class Standard
6
6
  # Finds capacity in W
7
7
  #
8
8
  # @param coil_cooling_dx_single_speed [OpenStudio::Model::CoilCoolingDXSingleSpeed] coil cooling dx single speed object
9
- # @param necb_ref_hp [Bool] for compatability with NECB ruleset only.
9
+ # @param necb_ref_hp [Boolean] for compatability with NECB ruleset only.
10
10
  # @return [Double] capacity in W to be used for find object
11
11
  def coil_cooling_dx_single_speed_find_capacity(coil_cooling_dx_single_speed, necb_ref_hp = false)
12
12
  capacity_w = nil
@@ -42,8 +42,8 @@ class Standard
42
42
  # Finds lookup object in standards and return efficiency
43
43
  #
44
44
  # @param coil_cooling_dx_single_speed [OpenStudio::Model::CoilCoolingDXSingleSpeed] coil cooling dx single speed object
45
- # @param rename [Bool] if true, object will be renamed to include capacity and efficiency level
46
- # @param necb_ref_hp [Bool] for compatability with NECB ruleset only.
45
+ # @param rename [Boolean] if true, object will be renamed to include capacity and efficiency level
46
+ # @param necb_ref_hp [Boolean] for compatability with NECB ruleset only.
47
47
  # @return [Double] full load efficiency (COP)
48
48
  def coil_cooling_dx_single_speed_standard_minimum_cop(coil_cooling_dx_single_speed, rename = false, necb_ref_hp = false)
49
49
  search_criteria = coil_dx_find_search_criteria(coil_cooling_dx_single_speed, necb_ref_hp)
@@ -173,7 +173,7 @@ class Standard
173
173
  #
174
174
  # @param coil_cooling_dx_single_speed [OpenStudio::Model::CoilCoolingDXSingleSpeed] coil cooling dx single speed object
175
175
  # @param sql_db_vars_map [Hash] hash map
176
- # @param necb_ref_hp [Bool] for compatability with NECB ruleset only.
176
+ # @param necb_ref_hp [Boolean] for compatability with NECB ruleset only.
177
177
  # @return [Hash] hash of coil objects
178
178
  def coil_cooling_dx_single_speed_apply_efficiency_and_curves(coil_cooling_dx_single_speed, sql_db_vars_map, necb_ref_hp = false)
179
179
  successfully_set_all_properties = true
@@ -24,7 +24,7 @@ class Standard
24
24
  # Finds lookup object in standards and return efficiency
25
25
  #
26
26
  # @param coil_cooling_dx_two_speed [OpenStudio::Model::CoilCoolingDXTwoSpeed] coil cooling dx two speed object
27
- # @param rename [Bool] if true, object will be renamed to include capacity and efficiency level
27
+ # @param rename [Boolean] if true, object will be renamed to include capacity and efficiency level
28
28
  # @return [Double] full load efficiency (COP)
29
29
  def coil_cooling_dx_two_speed_standard_minimum_cop(coil_cooling_dx_two_speed, rename = false)
30
30
  search_criteria = coil_dx_find_search_criteria(coil_cooling_dx_two_speed)
@@ -22,7 +22,7 @@ class Standard
22
22
  # Finds lookup object in standards and return efficiency
23
23
  #
24
24
  # @param coil_cooling_water_to_air_heat_pump [OpenStudio::Model::CoilCoolingWaterToAirHeatPumpEquationFit] coil cooling object
25
- # @param rename [Bool] if true, object will be renamed to include capacity and efficiency level
25
+ # @param rename [Boolean] if true, object will be renamed to include capacity and efficiency level
26
26
  # @return [Double] full load efficiency (COP)
27
27
  def coil_cooling_water_to_air_heat_pump_standard_minimum_cop(coil_cooling_water_to_air_heat_pump, rename = false, computer_room_air_conditioner = false)
28
28
  search_criteria = {}
@@ -48,7 +48,7 @@ module CoilDX
48
48
  #
49
49
  # @param coil_dx [OpenStudio::Model::StraightComponent] coil cooling object, allowable types:
50
50
  # CoilCoolingDXSingleSpeed, CoilCoolingDXTwoSpeed, CoilCoolingDXMultiSpeed
51
- # @return [Bool] returns true if it is a heat pump, false if not
51
+ # @return [Boolean] returns true if it is a heat pump, false if not
52
52
  def coil_dx_heat_pump?(coil_dx)
53
53
  heat_pump = false
54
54
 
@@ -84,7 +84,7 @@ module CoilDX
84
84
  #
85
85
  # @param coil_dx [OpenStudio::Model::StraightComponent] coil cooling object, allowable types:
86
86
  # CoilCoolingDXSingleSpeed, CoilCoolingDXTwoSpeed, CoilCoolingDXMultiSpeed
87
- # @param necb_ref_hp [Bool] for compatability with NECB ruleset only.
87
+ # @param necb_ref_hp [Boolean] for compatability with NECB ruleset only.
88
88
  # @return [String] the heating type
89
89
  def coil_dx_heating_type(coil_dx, necb_ref_hp = false)
90
90
  htg_type = nil
@@ -160,8 +160,8 @@ module CoilDX
160
160
  #
161
161
  # @param coil_dx [OpenStudio::Model::StraightComponent] coil cooling object, allowable types:
162
162
  # CoilCoolingDXSingleSpeed, CoilCoolingDXTwoSpeed, CoilCoolingDXMultiSpeed
163
- # @param necb_ref_hp [Bool] for compatability with NECB ruleset only.
164
- # @return [hash] has for search criteria to be used for find object
163
+ # @param necb_ref_hp [Boolean] for compatability with NECB ruleset only.
164
+ # @return [Hash] has for search criteria to be used for find object
165
165
  def coil_dx_find_search_criteria(coil_dx, necb_ref_hp = false)
166
166
  search_criteria = {}
167
167
  search_criteria['template'] = template
@@ -4,7 +4,7 @@ class Standard
4
4
  # Applies the standard efficiency ratings and typical performance curves to this object.
5
5
  #
6
6
  # @param coil_heating_dx_multi_speed [OpenStudio::Model::CoilHeatingDXMultiSpeed] coil heating dx multi speed object
7
- # @return [Bool] returns true if successful, false if not
7
+ # @return [Boolean] returns true if successful, false if not
8
8
  def coil_heating_dx_multi_speed_apply_efficiency_and_curves(coil_heating_dx_multi_speed, sql_db_vars_map)
9
9
  successfully_set_all_properties = true
10
10
 
@@ -6,7 +6,7 @@ class Standard
6
6
  # Finds capacity in W. This is the cooling capacity of the paired DX cooling coil.
7
7
  #
8
8
  # @param coil_heating_dx_single_speed [OpenStudio::Model::CoilHeatingDXSingleSpeed] coil heating dx single speed object
9
- # @param necb_ref_hp [Bool] for compatability with NECB ruleset only.
9
+ # @param necb_ref_hp [Boolean] for compatability with NECB ruleset only.
10
10
  # @return [Double] capacity in W to be used for find object
11
11
  def coil_heating_dx_single_speed_find_capacity(coil_heating_dx_single_speed, necb_ref_hp = false)
12
12
  capacity_w = nil
@@ -104,8 +104,8 @@ class Standard
104
104
  # Finds lookup object in standards and return efficiency
105
105
  #
106
106
  # @param coil_heating_dx_single_speed [OpenStudio::Model::CoilHeatingDXSingleSpeed] coil heating dx single speed object
107
- # @param rename [Bool] if true, object will be renamed to include capacity and efficiency level
108
- # @param necb_ref_hp [Bool] for compatability with NECB ruleset only.
107
+ # @param rename [Boolean] if true, object will be renamed to include capacity and efficiency level
108
+ # @param necb_ref_hp [Boolean] for compatability with NECB ruleset only.
109
109
  # @return [Double] full load efficiency (COP)
110
110
  def coil_heating_dx_single_speed_standard_minimum_cop(coil_heating_dx_single_speed, rename = false, necb_ref_hp = false)
111
111
  # find ac properties
@@ -129,7 +129,7 @@ class Standard
129
129
  end
130
130
 
131
131
  # If PTHP, use equations
132
- if sub_category == 'PTHP'
132
+ if sub_category == 'PTHP' && !ac_props['pthp_cop_coefficient_1'].nil? && !ac_props['pthp_cop_coefficient_2'].nil?
133
133
  pthp_cop_coeff_1 = ac_props['pthp_cop_coefficient_1']
134
134
  pthp_cop_coeff_2 = ac_props['pthp_cop_coefficient_2']
135
135
  # TABLE 6.8.1D
@@ -181,7 +181,7 @@ class Standard
181
181
  #
182
182
  # @param coil_heating_dx_single_speed [OpenStudio::Model::CoilHeatingDXSingleSpeed] coil heating dx single speed object
183
183
  # @param sql_db_vars_map [Hash] hash map
184
- # @param necb_ref_hp [Bool] for compatability with NECB ruleset only.
184
+ # @param necb_ref_hp [Boolean] for compatability with NECB ruleset only.
185
185
  # @return [Hash] hash of coil objects
186
186
  def coil_heating_dx_single_speed_apply_efficiency_and_curves(coil_heating_dx_single_speed, sql_db_vars_map, necb_ref_hp = false)
187
187
  successfully_set_all_properties = true
@@ -4,7 +4,7 @@ class Standard
4
4
  # Applies the standard efficiency ratings to CoilHeatingGas.
5
5
  #
6
6
  # @param coil_heating_gas [OpenStudio::Model::CoilHeatingGas] coil heating gas object
7
- # @return [Bool] returns true if successful, false if not
7
+ # @return [Boolean] returns true if successful, false if not
8
8
  def coil_heating_gas_apply_efficiency_and_curves(coil_heating_gas)
9
9
  successfully_set_all_properties = false
10
10
  # Initialize search criteria
@@ -19,7 +19,7 @@ class Standard
19
19
  # Applies the standard efficiency ratings and typical performance curves to this object.
20
20
  #
21
21
  # @param coil_heating_gas_multi_stage [OpenStudio::Model::CoilHeatingGasMultiStage] coil heating gas multi stage object
22
- # @return [Bool] returns true if successful, false if not
22
+ # @return [Boolean] returns true if successful, false if not
23
23
  def coil_heating_gas_multi_stage_apply_efficiency_and_curves(coil_heating_gas_multi_stage)
24
24
  successfully_set_all_properties = true
25
25
 
@@ -88,7 +88,7 @@ class Standard
88
88
  # Finds lookup object in standards and return efficiency
89
89
  #
90
90
  # @param coil_heating_water_to_air_heat_pump [OpenStudio::Model::CoilHeatingWaterToAirHeatPumpEquationFit] coil heating object
91
- # @param rename [Bool] if true, object will be renamed to include capacity and efficiency level
91
+ # @param rename [Boolean] if true, object will be renamed to include capacity and efficiency level
92
92
  # @return [Double] full load efficiency (COP)
93
93
  def coil_heating_water_to_air_heat_pump_standard_minimum_cop(coil_heating_water_to_air_heat_pump, rename = false)
94
94
  search_criteria = {}
@@ -12,11 +12,11 @@ class Standard
12
12
  # 'ExteriorRoof', 'Skylight', 'TubularDaylightDome', 'TubularDaylightDiffuser', 'ExteriorFloor',
13
13
  # 'ExteriorWall', 'ExteriorWindow', 'ExteriorDoor', 'GlassDoor', 'OverheadDoor', 'GroundContactFloor',
14
14
  # 'GroundContactWall', 'GroundContactRoof'
15
- # @param target_includes_int_film_coefficients [Bool] if true, subtracts off standard film interior coefficients from your
15
+ # @param target_includes_int_film_coefficients [Boolean] if true, subtracts off standard film interior coefficients from your
16
16
  # target_u_value before modifying insulation thickness. Film values from 90.1-2010 A9.4.1 Air Films
17
- # @param target_includes_ext_film_coefficients [Bool] if true, subtracts off standard exterior film coefficients from your
17
+ # @param target_includes_ext_film_coefficients [Boolean] if true, subtracts off standard exterior film coefficients from your
18
18
  # target_u_value before modifying insulation thickness. Film values from 90.1-2010 A9.4.1 Air Films
19
- # @return [Bool] returns true if successful, false if not
19
+ # @return [Boolean] returns true if successful, false if not
20
20
  # @todo Put in Phlyroy's logic for inferring the insulation layer of a construction
21
21
  def construction_set_u_value(construction, target_u_value_ip, insulation_layer_name = nil, intended_surface_type = 'ExteriorWall', target_includes_int_film_coefficients, target_includes_ext_film_coefficients)
22
22
  OpenStudio.logFree(OpenStudio::Debug, 'openstudio.standards.Construction', "Setting U-Value for #{construction.name}.")
@@ -134,11 +134,11 @@ class Standard
134
134
  # 'ExteriorRoof', 'Skylight', 'TubularDaylightDome', 'TubularDaylightDiffuser', 'ExteriorFloor',
135
135
  # 'ExteriorWall', 'ExteriorWindow', 'ExteriorDoor', 'GlassDoor', 'OverheadDoor', 'GroundContactFloor',
136
136
  # 'GroundContactWall', 'GroundContactRoof'
137
- # @param target_includes_int_film_coefficients [Bool] if true, subtracts off standard film interior coefficients from your
137
+ # @param target_includes_int_film_coefficients [Boolean] if true, subtracts off standard film interior coefficients from your
138
138
  # target_u_value before modifying insulation thickness. Film values from 90.1-2010 A9.4.1 Air Films
139
- # @param target_includes_ext_film_coefficients [Bool] if true, subtracts off standard exterior film coefficients from your
139
+ # @param target_includes_ext_film_coefficients [Boolean] if true, subtracts off standard exterior film coefficients from your
140
140
  # target_u_value before modifying insulation thickness. Film values from 90.1-2010 A9.4.1 Air Films
141
- # @return [Bool] returns true if successful, false if not
141
+ # @return [Boolean] returns true if successful, false if not
142
142
  def construction_set_glazing_u_value(construction, target_u_value_ip, intended_surface_type = 'ExteriorWall', target_includes_int_film_coefficients, target_includes_ext_film_coefficients)
143
143
  OpenStudio.logFree(OpenStudio::Debug, 'openstudio.standards.Construction', "Setting U-Value for #{construction.name}.")
144
144
 
@@ -219,7 +219,7 @@ class Standard
219
219
  #
220
220
  # @param construction [OpenStudio::Model::Construction] construction object
221
221
  # @param target_shgc [Double] Solar Heat Gain Coefficient
222
- # @return [Bool] returns true if successful, false if not
222
+ # @return [Boolean] returns true if successful, false if not
223
223
  def construction_set_glazing_shgc(construction, target_shgc)
224
224
  OpenStudio.logFree(OpenStudio::Debug, 'openstudio.standards.Construction', "Setting SHGC for #{construction.name}.")
225
225
 
@@ -244,7 +244,7 @@ class Standard
244
244
  # as indicated by having a single layer of type SimpleGlazing.
245
245
  #
246
246
  # @param construction [OpenStudio::Model::Construction] construction object
247
- # @return [Bool] returns true if it is a simple glazing, false if not
247
+ # @return [Boolean] returns true if it is a simple glazing, false if not
248
248
  def construction_simple_glazing?(construction)
249
249
  # Not simple if more than 1 layer
250
250
  if construction.layers.length > 1
@@ -269,7 +269,7 @@ class Standard
269
269
  # @param construction [OpenStudio::Model::Construction] construction object
270
270
  # @param target_f_factor_ip [Double] F-Factor
271
271
  # @param insulation_layer_name [String] The name of the insulation layer in this construction
272
- # @return [Bool] returns true if successful, false if not
272
+ # @return [Boolean] returns true if successful, false if not
273
273
  def construction_set_slab_f_factor(construction, target_f_factor_ip, insulation_layer_name = nil)
274
274
  # Regression from table A6.3 unheated, fully insulated slab
275
275
  r_value_ip = 1.0248 * target_f_factor_ip**-2.186
@@ -289,7 +289,7 @@ class Standard
289
289
  # @param construction [OpenStudio::Model::FFactorGroundFloorConstruction] OpenStudio F-factor construction object
290
290
  # @param target_f_factor_ip [Float] Targeted F-Factor in IP units
291
291
  # @param surface [OpenStudio::Model::Surface] OpenStudio surface object
292
- # @return [Bool] returns true if successful, false if not
292
+ # @return [Boolean] returns true if successful, false if not
293
293
  def construction_set_surface_slab_f_factor(construction, target_f_factor_ip, surface)
294
294
  # Get space associated with surface
295
295
  space = surface.space.get
@@ -325,7 +325,7 @@ class Standard
325
325
  # @param construction [OpenStudio::Model::Construction] construction object
326
326
  # @param target_c_factor_ip [Double] C-Factor
327
327
  # @param insulation_layer_name [String] The name of the insulation layer in this construction
328
- # @return [Bool] returns true if successful, false if not
328
+ # @return [Boolean] returns true if successful, false if not
329
329
  def construction_set_underground_wall_c_factor(construction, target_c_factor_ip, insulation_layer_name = nil)
330
330
  # Regression from table A4.2 continuous exterior insulation
331
331
  r_value_ip = 0.775 * target_c_factor_ip**-1.067
@@ -345,7 +345,7 @@ class Standard
345
345
  # @param construction [OpenStudio::Model::CFactorUndergroundWallConstruction] OpenStudio C-factor construction object
346
346
  # @param target_c_factor_ip [Float] Targeted C-Factor in IP units
347
347
  # @param surface [OpenStudio::Model::Surface] OpenStudio surface object
348
- # @return [Bool] returns true if successful, false if not
348
+ # @return [Boolean] returns true if successful, false if not
349
349
  def construction_set_surface_underground_wall_c_factor(construction, target_c_factor_ip, surface)
350
350
  # Get space associated with surface
351
351
  space = surface.space.get
@@ -529,8 +529,7 @@ class Standard
529
529
  # Calculate the fenestration U-Factor base on the glass, frame,
530
530
  # and divider performance and area calculated by EnergyPlus.
531
531
  #
532
- # @param [OpenStudio:Model:Construction] OpenStudio Construction object
533
- #
532
+ # @param construction [OpenStudio:Model:Construction] OpenStudio Construction object
534
533
  # @return [Double] the U-Factor in W/m^2*K
535
534
  def construction_calculated_fenestration_u_factor_w_frame(construction)
536
535
  construction_name = construction.name.get.to_s
@@ -684,7 +683,7 @@ class Standard
684
683
  #
685
684
  # @param model [OpenStudio::Model::Model] OpenStudio model object
686
685
  # @param values [Hash] has of values
687
- # @param is_percentage [Bool] toggle is percentage
686
+ # @param is_percentage [Boolean] toggle is percentage
688
687
  # @return [Hash] json information
689
688
  def change_construction_properties_in_model(model, values, is_percentage = false)
690
689
  # puts JSON.pretty_generate(values)
@@ -746,8 +745,8 @@ class Standard
746
745
  # @param conductance [Double] conductance value in SI
747
746
  # @param shgc [Double] solar heat gain coefficient value, unitless
748
747
  # @param tvis [Double] visible transmittance
749
- # @param is_percentage [Bool] toggle is percentage
750
- # @return [Bool] returns true if successful, false if not
748
+ # @param is_percentage [Boolean] toggle is percentage
749
+ # @return [Boolean] returns true if successful, false if not
751
750
  def apply_changes_to_surface_construction(model, surface, conductance = nil, shgc = nil, tvis = nil, is_percentage = false)
752
751
  # If user has no changes...do nothing and return true.
753
752
  return true if conductance.nil? && shgc.nil? && tvis.nil?
@@ -877,7 +876,7 @@ class Standard
877
876
  #
878
877
  # @param construction [OpenStudio::Model::Construction] construction object
879
878
  # @param target_tvis [Double] Visible Transmittance
880
- # @return [Bool] returns true if successful, false if not
879
+ # @return [Boolean] returns true if successful, false if not
881
880
  def construction_set_glazing_tvis(construction, target_tvis)
882
881
  if target_tvis >= 1.0
883
882
  OpenStudio.logFree(OpenStudio::Error, 'openstudio.standards.Construction', "Can only set the Tvis can only be set to less than 1.0. #{target_tvis} is greater than 1.0")
@@ -18,7 +18,7 @@ module CoolingTower
18
18
  #
19
19
  # @param cooling_tower [OpenStudio::Model::StraightComponent] cooling tower object, allowable types:
20
20
  # CoolingTowerSingleSpeed, CoolingTowerTwoSpeed, and CoolingTowerVariableSpeed
21
- # @return [Bool] returns true if successful, false if not
21
+ # @return [Boolean] returns true if successful, false if not
22
22
  def cooling_tower_apply_minimum_power_per_flow(cooling_tower)
23
23
  # Get the design water flow rate
24
24
  design_water_flow_m3_per_s = nil
@@ -51,11 +51,11 @@ module CoolingTower
51
51
  fan_type = nil
52
52
  if name.include?('Centrifugal')
53
53
  fan_type = 'Centrifugal'
54
- elsif name.include?('Propeller or Axial')
54
+ elsif name.include?('Propeller') || name.include?('Axial')
55
55
  fan_type = 'Propeller or Axial'
56
- end
57
- unless fan_type.nil?
58
- search_criteria['fan_type'] = fan_type
56
+ else
57
+ fan_type = 'Propeller or Axial'
58
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CoolingTower', "#{cooling_tower.name} fan type is not discernible from the name. Defaulting to Propeller or Axial.")
59
59
  end
60
60
 
61
61
  # Limit on Centrifugal Fan
@@ -65,13 +65,13 @@ module CoolingTower
65
65
  if gpm_limit
66
66
  if design_water_flow_gpm >= gpm_limit
67
67
  fan_type = 'Propeller or Axial'
68
- search_criteria['fan_type'] = fan_type
69
68
  OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CoolingTower', "For #{cooling_tower.name}, the design flow rate of #{design_water_flow_gpm.round} gpm is higher than the limit of #{gpm_limit.round} gpm for open centrifugal towers. This tower must meet the minimum performance of #{fan_type} instead.")
70
69
  end
71
70
  end
72
71
  end
73
72
 
74
73
  # Get the cooling tower properties
74
+ search_criteria['fan_type'] = fan_type
75
75
  ct_props = model_find_object(heat_rejection, search_criteria)
76
76
  unless ct_props
77
77
  OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoolingTower', "For #{cooling_tower.name}, cannot find heat rejection properties, cannot apply standard efficiencies or curves.")
@@ -6,7 +6,7 @@ class Standard
6
6
  # Applies the standard efficiency ratings and typical performance curves to this object.
7
7
  #
8
8
  # @param cooling_tower_single_speed [OpenStudio::Model::CoolingTowerSingleSpeed] single speed cooling tower
9
- # @return [Bool] returns true if successful, false if not
9
+ # @return [Boolean] returns true if successful, false if not
10
10
  def cooling_tower_single_speed_apply_efficiency_and_curves(cooling_tower_single_speed)
11
11
  cooling_tower_apply_minimum_power_per_flow(cooling_tower_single_speed)
12
12
  return true
@@ -6,7 +6,7 @@ class Standard
6
6
  # Applies the standard efficiency ratings and typical performance curves to this object.
7
7
  #
8
8
  # @param cooling_tower_two_speed [OpenStudio::Model::CoolingTowerTwoSpeed] two speed cooling tower
9
- # @return [Bool] returns true if successful, false if not
9
+ # @return [Boolean] returns true if successful, false if not
10
10
  def cooling_tower_two_speed_apply_efficiency_and_curves(cooling_tower_two_speed)
11
11
  cooling_tower_apply_minimum_power_per_flow(cooling_tower_two_speed)
12
12
 
@@ -6,7 +6,7 @@ class Standard
6
6
  # Applies the standard efficiency ratings and typical performance curves to this object.
7
7
  #
8
8
  # @param cooling_tower_variable_speed [OpenStudio::Model::CoolingTowerVariableSpeed] variable speed cooling tower
9
- # @return [Bool] returns true if successful, false if not
9
+ # @return [Boolean] returns true if successful, false if not
10
10
  def cooling_tower_variable_speed_apply_efficiency_and_curves(cooling_tower_variable_speed)
11
11
  cooling_tower_apply_minimum_power_per_flow(cooling_tower_variable_speed)
12
12
  return true
@@ -8,7 +8,7 @@ module Fan
8
8
  # @param fan [OpenStudio::Model::StraightComponent] fan object, allowable types:
9
9
  # FanConstantVolume, FanOnOff, FanVariableVolume, and FanZoneExhaust
10
10
  # @param allowed_bhp [Double] allowable brake horsepower
11
- # @return [Bool] returns true if successful, false if not
11
+ # @return [Boolean] returns true if successful, false if not
12
12
  def fan_apply_standard_minimum_motor_efficiency(fan, allowed_bhp)
13
13
  # Find the motor efficiency
14
14
  motor_eff, nominal_hp = fan_standard_minimum_motor_efficiency_and_size(fan, allowed_bhp)
@@ -39,7 +39,7 @@ module Fan
39
39
  # @param fan [OpenStudio::Model::StraightComponent] fan object, allowable types:
40
40
  # FanConstantVolume, FanOnOff, FanVariableVolume, and FanZoneExhaust
41
41
  # @param target_fan_power [Double] the target fan power in watts
42
- # @return [Bool] returns true if successful, false if not
42
+ # @return [Boolean] returns true if successful, false if not
43
43
  def fan_adjust_pressure_rise_to_meet_fan_power(fan, target_fan_power)
44
44
  # Get design supply air flow rate (whether autosized or hard-sized)
45
45
  dsn_air_flow_m3_per_s = 0
@@ -161,7 +161,7 @@ module Fan
161
161
  # @param fan [OpenStudio::Model::StraightComponent] fan object, allowable types:
162
162
  # FanConstantVolume, FanOnOff, FanVariableVolume, and FanZoneExhaust
163
163
  # @param motor_eff [Double] motor efficiency (0.0 to 1.0)
164
- # @return [Bool] returns true if successful, false if not
164
+ # @return [Boolean] returns true if successful, false if not
165
165
  def fan_change_motor_efficiency(fan, motor_eff)
166
166
  # Calculate the existing impeller efficiency
167
167
  existing_motor_eff = 0.7
@@ -190,7 +190,7 @@ module Fan
190
190
  # @param fan [OpenStudio::Model::StraightComponent] fan object, allowable types:
191
191
  # FanConstantVolume, FanOnOff, FanVariableVolume, and FanZoneExhaust
192
192
  # @param impeller_eff [Double] impeller efficiency (0.0 to 1.0)
193
- # @return [Bool] returns true if successful, false if not
193
+ # @return [Boolean] returns true if successful, false if not
194
194
  def fan_change_impeller_efficiency(fan, impeller_eff)
195
195
  # Get the existing motor efficiency
196
196
  existing_motor_eff = 0.7
@@ -305,7 +305,7 @@ module Fan
305
305
  #
306
306
  # @param fan [OpenStudio::Model::StraightComponent] fan object, allowable types:
307
307
  # FanConstantVolume, FanOnOff, FanVariableVolume, and FanZoneExhaust
308
- # @return [Bool] returns true if it is a small fan, false if not
308
+ # @return [Boolean] returns true if it is a small fan, false if not
309
309
  def fan_small_fan?(fan)
310
310
  is_small = false
311
311
 
@@ -348,13 +348,7 @@ module Fan
348
348
  # @return [Double] rated power consumption per flow in watters per cfm, W*min/ft^3
349
349
  def fan_rated_w_per_cfm(fan)
350
350
  # Get design power (whether autosized or hard-sized)
351
- rated_power_w = fan.model.getAutosizedValueFromEquipmentSummary(fan, 'Fans', 'Rated Electric Power', 'W')
352
- if rated_power_w.is_initialized
353
- rated_power_w = rated_power_w.get
354
- else
355
- rated_power_w = fan_fanpower(fan)
356
- OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.Fan', "For #{fan.name}, could not find rated fan power from Equipment Summary. Will calculate it based on current pressure rise and total fan efficiency")
357
- end
351
+ rated_power_w = fan_fanpower(fan)
358
352
 
359
353
  if fan.maximumFlowRate.is_initialized
360
354
  max_m3_per_s = fan.ratedFlowRate.get
@@ -17,7 +17,7 @@ class Standard
17
17
  # Multi Zone VAV with VSD and Fixed SP Setpoint,
18
18
  # Multi Zone VAV with VSD and Static Pressure Reset,
19
19
  # Single Zone VAV Fan
20
- # @return [Bool] returns true if successful, false if not
20
+ # @return [Boolean] returns true if successful, false if not
21
21
  def fan_variable_volume_set_control_type(fan_variable_volume, control_type)
22
22
  # Determine the coefficients
23
23
  coeff_a = nil
@@ -113,7 +113,7 @@ class Standard
113
113
  # Determines whether there is a requirement to have a VSD or some other method to reduce fan power at low part load ratios.
114
114
  #
115
115
  # @param fan_variable_volume [OpenStudio::Model::FanVariableVolume] variable volume fan object
116
- # @return [Bool] returns true if required, false if not
116
+ # @return [Boolean] returns true if required, false if not
117
117
  def fan_variable_volume_part_load_fan_power_limitation?(fan_variable_volume)
118
118
  part_load_control_required = false
119
119
 
@@ -21,7 +21,7 @@ class Standard
21
21
  # @param equipment_type [String] heat rejection equipment type enumeration used for lookup query,
22
22
  # options are 'Closed Cooling Tower', modeled as an EvaporativeFluidCooler,
23
23
  # or 'Dry Cooler', modeled as a FluidCooler
24
- # @return [Bool] returns true if successful, false if not
24
+ # @return [Boolean] returns true if successful, false if not
25
25
  def fluid_cooler_apply_minimum_power_per_flow(fluid_cooler, equipment_type: 'Closed Cooling Tower')
26
26
  # Get the design water flow rate
27
27
  if fluid_cooler.designWaterFlowRate.is_initialized
@@ -7,7 +7,7 @@ class Standard
7
7
  #
8
8
  # @param headered_pumps_variable_speed [OpenStudio::Model::HeaderedPumpsVariableSpeed] headered variable speed pumps object
9
9
  # @param control_type [String] valid choices are Riding Curve, VSD No Reset, VSD DP Reset
10
- # @return [Bool] returns true if successful, false if not
10
+ # @return [Boolean] returns true if successful, false if not
11
11
  def headered_pumps_variable_speed_set_control_type(headered_pumps_variable_speed, control_type)
12
12
  # Determine the coefficients
13
13
  coeff_a = nil
@@ -4,7 +4,7 @@ class Standard
4
4
  # Sets the minimum effectiveness of the heat exchanger per the standard.
5
5
  #
6
6
  # @param heat_exchanger_air_to_air_sensible_and_latent [OpenStudio::Model::HeatExchangerAirToAirSensibleAndLatent] the heat exchanger
7
- # @return [Bool] returns true if successful, false if not
7
+ # @return [Boolean] returns true if successful, false if not
8
8
  def heat_exchanger_air_to_air_sensible_and_latent_apply_effectiveness(heat_exchanger_air_to_air_sensible_and_latent)
9
9
  # Assumed to be sensible and latent at all flow
10
10
  full_htg_sens_eff, full_htg_lat_eff, part_htg_sens_eff, part_htg_lat_eff, full_cool_sens_eff, full_cool_lat_eff, part_cool_sens_eff, part_cool_lat_eff = heat_exchanger_air_to_air_sensible_and_latent_minimum_effectiveness(heat_exchanger_air_to_air_sensible_and_latent)
@@ -46,9 +46,9 @@ class Standard
46
46
  # climate zones a 50% ERR at typical condition leads a ERR > 50%,
47
47
  # the ERR is thus scaled down.
48
48
  #
49
- # @param enthalpy_recovery_ratio [float] Enthalpy Recovery Ratio (ERR)
49
+ # @param enthalpy_recovery_ratio [Double] Enthalpy Recovery Ratio (ERR)
50
50
  # @param climate_zone [String] climate zone
51
- # @return [float] adjusted ERR
51
+ # @return [Double] adjusted ERR
52
52
  def enthalpy_recovery_ratio_design_to_typical_adjustment(enthalpy_recovery_ratio, climate_zone)
53
53
  if climate_zone.include? '2B'
54
54
  enthalpy_recovery_ratio /= 0.65 / 0.55