openstudio-standards 0.8.4 → 0.8.5.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 (289) hide show
  1. checksums.yaml +4 -4
  2. data/data/geometry/ASHRAECollege.osm +30 -30
  3. data/data/geometry/ASHRAECourthouse.osm +22 -22
  4. data/data/geometry/ASHRAESmallOfficeDetailed.osm +2 -2
  5. data/data/geometry/DEER_Asm.osm +1 -1
  6. data/data/geometry/DEER_ECC.osm +1 -1
  7. data/data/geometry/DEER_EPr.osm +1 -1
  8. data/data/geometry/DEER_ERC.osm +1 -1
  9. data/data/geometry/DEER_ESe.osm +1 -1
  10. data/data/geometry/DEER_EUn.osm +1 -1
  11. data/data/geometry/DEER_Hsp.osm +1 -1
  12. data/data/geometry/DEER_Htl.osm +1 -1
  13. data/data/geometry/DEER_MBT.osm +1 -1
  14. data/data/geometry/DEER_MFm.osm +1 -1
  15. data/data/geometry/DEER_Nrs.osm +1 -1
  16. data/data/geometry/DEER_OfL.osm +1 -1
  17. data/data/geometry/DEER_OfS.osm +1 -1
  18. data/data/geometry/DEER_RFF.osm +1 -1
  19. data/data/geometry/DEER_RSD.osm +1 -1
  20. data/data/geometry/DEER_Rt3.osm +1 -1
  21. data/data/geometry/DEER_RtS.osm +1 -1
  22. data/data/standards/export_OpenStudio_libraries.rb +2 -3
  23. data/data/standards/test_performance_expected_dd_results.csv +42 -42
  24. data/lib/openstudio-standards/btap/NECB_building_types.csv +35 -0
  25. data/lib/openstudio-standards/btap/NECB_space_types.csv +109 -0
  26. data/lib/openstudio-standards/btap/activity.rb +480 -0
  27. data/lib/openstudio-standards/btap/attributes.rb +166 -0
  28. data/lib/openstudio-standards/btap/bridging.rb +561 -1402
  29. data/lib/openstudio-standards/btap/btap.rb +4 -2
  30. data/lib/openstudio-standards/btap/btap_test_helper.rb +86 -0
  31. data/lib/openstudio-standards/btap/carbon/btap_carbon.rb +177 -0
  32. data/lib/openstudio-standards/btap/{costing/common_paths.rb → common_paths.rb} +14 -11
  33. data/lib/openstudio-standards/btap/common_resources/carbon_frame.csv +35 -0
  34. data/lib/openstudio-standards/btap/common_resources/carbon_glazing.csv +35 -0
  35. data/lib/openstudio-standards/btap/common_resources/carbon_opaque.csv +164 -0
  36. data/lib/openstudio-standards/btap/common_resources/constructions_glazing.csv +121 -0
  37. data/lib/openstudio-standards/btap/common_resources/costs.csv +1897 -0
  38. data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/lighting.csv +59 -59
  39. data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/materials_hvac.csv +1019 -1032
  40. data/lib/openstudio-standards/btap/costing/btap_costing.rb +3 -7
  41. data/lib/openstudio-standards/btap/costing/costing_database_wrapper.rb +1 -5
  42. data/lib/openstudio-standards/btap/costing/daylighting_sensor_control_costing.rb +5 -4
  43. data/lib/openstudio-standards/btap/costing/dcv_costing.rb +1 -1
  44. data/lib/openstudio-standards/btap/costing/envelope_costing.rb +112 -181
  45. data/lib/openstudio-standards/btap/costing/heating_cooling_costing.rb +4 -4
  46. data/lib/openstudio-standards/btap/costing/led_lighting_costing.rb +2 -1
  47. data/lib/openstudio-standards/btap/costing/lighting_costing.rb +3 -3
  48. data/lib/openstudio-standards/btap/costing/test_list.txt +15 -17
  49. data/lib/openstudio-standards/btap/costing/test_run_all_test_locally.rb +10 -9
  50. data/lib/openstudio-standards/btap/geometry.rb +86 -6
  51. data/lib/openstudio-standards/btap/structure.rb +657 -0
  52. data/lib/openstudio-standards/create_typical/create_typical.rb +17 -33
  53. data/lib/openstudio-standards/create_typical/space_type_ratios.rb +36 -36
  54. data/lib/openstudio-standards/equipment/create_transformer.rb +104 -0
  55. data/lib/openstudio-standards/equipment/create_typical_equipment.rb +117 -0
  56. data/lib/openstudio-standards/equipment/data/electric_equipment_space_types.json +1514 -0
  57. data/lib/openstudio-standards/equipment/data/gas_equipment_space_types.json +227 -0
  58. data/lib/openstudio-standards/exterior_lighting/create.rb +22 -22
  59. data/lib/openstudio-standards/exterior_lighting/information.rb +3 -2
  60. data/lib/openstudio-standards/hvac/components/air_conditioner_vrf.rb +482 -0
  61. data/lib/openstudio-standards/hvac/components/air_terminal.rb +31 -0
  62. data/lib/openstudio-standards/hvac/components/boiler_hot_water.rb +163 -0
  63. data/lib/openstudio-standards/hvac/components/central_air_source_heat_pump.rb +220 -0
  64. data/lib/openstudio-standards/hvac/components/chiller.rb +25 -0
  65. data/lib/openstudio-standards/hvac/components/coil.rb +276 -0
  66. data/lib/openstudio-standards/hvac/components/coil_cooling_dx_multi_speed.rb +40 -0
  67. data/lib/openstudio-standards/hvac/components/coil_cooling_dx_single_speed.rb +300 -0
  68. data/lib/openstudio-standards/hvac/components/coil_cooling_dx_two_speed.rb +187 -0
  69. data/lib/openstudio-standards/hvac/components/coil_cooling_water.rb +80 -0
  70. data/lib/openstudio-standards/hvac/components/coil_cooling_water_to_air_heat_pump_equation_fit.rb +182 -0
  71. data/lib/openstudio-standards/hvac/components/coil_heating_dx_single_speed.rb +220 -0
  72. data/lib/openstudio-standards/hvac/components/coil_heating_electric.rb +56 -0
  73. data/lib/openstudio-standards/hvac/components/coil_heating_gas.rb +90 -0
  74. data/lib/openstudio-standards/hvac/components/coil_heating_gas_multi_stage.rb +33 -0
  75. data/lib/openstudio-standards/hvac/components/coil_heating_water.rb +98 -0
  76. data/lib/openstudio-standards/hvac/components/coil_heating_water_to_air_heat_pump_equation_fit.rb +147 -0
  77. data/lib/openstudio-standards/hvac/components/component.rb +39 -0
  78. data/lib/openstudio-standards/{standards/ashrae_90_1/data/ashrae_90_1.fans.json → hvac/components/data/fans.json} +6 -6
  79. data/lib/openstudio-standards/hvac/components/fan.rb +363 -0
  80. data/lib/openstudio-standards/hvac/components/heat_exchanger_air_to_air.rb +203 -0
  81. data/lib/openstudio-standards/hvac/components/pump.rb +181 -0
  82. data/lib/openstudio-standards/hvac/controls/radiant_system_controls.rb +594 -0
  83. data/lib/openstudio-standards/hvac/conversions.rb +222 -0
  84. data/lib/openstudio-standards/hvac/curves.rb +192 -0
  85. data/lib/openstudio-standards/hvac/helpers.rb +357 -0
  86. data/lib/openstudio-standards/hvac/setpoint_managers/information.rb +4 -4
  87. data/lib/openstudio-standards/interior_lighting/create_lights.rb +52 -0
  88. data/lib/openstudio-standards/interior_lighting/create_typical_interior_lighting.rb +254 -0
  89. data/lib/openstudio-standards/interior_lighting/data/convert_lighting_data.rb +249 -0
  90. data/lib/openstudio-standards/interior_lighting/data/lighting_space_types.csv +96 -0
  91. data/lib/openstudio-standards/interior_lighting/data/lighting_space_types.json +1429 -0
  92. data/lib/openstudio-standards/interior_lighting/data/lighting_technology.csv +46 -0
  93. data/lib/openstudio-standards/interior_lighting/data/lighting_technology.json +859 -0
  94. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +1 -1
  95. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +1 -1
  96. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +1 -1
  97. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.rb +4 -4
  98. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +1 -1
  99. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.rb +4 -4
  100. data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
  101. data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +1 -1
  102. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.HighRiseApartment.rb +6 -7
  103. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Hospital.rb +15 -15
  104. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeHotel.rb +4 -4
  105. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOffice.rb +5 -5
  106. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb +6 -6
  107. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Outpatient.rb +7 -7
  108. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.PrimarySchool.rb +4 -4
  109. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SecondarySchool.rb +6 -6
  110. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOfficeDetailed.rb +5 -1
  111. data/lib/openstudio-standards/prototypes/common/data/prototype_space_type_map.json +2594 -0
  112. data/lib/openstudio-standards/prototypes/common/data/thermostat_schedule_lookup.json +2108 -0
  113. data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirTerminalSingleDuctVAVReheat.rb +33 -0
  114. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Fan.rb +0 -140
  115. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanConstantVolume.rb +1 -73
  116. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanOnOff.rb +1 -69
  117. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanVariableVolume.rb +0 -116
  118. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanZoneExhaust.rb +0 -61
  119. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.hvac.rb +2 -2
  120. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +128 -13
  121. data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +606 -607
  122. data/lib/openstudio-standards/prototypes/common/prototype_space_type_map.rb +41 -0
  123. data/lib/openstudio-standards/prototypes/common/space_type_equipment_map.rb +184 -0
  124. data/lib/openstudio-standards/prototypes/common/space_type_thermostat_schedule_map.rb +116 -0
  125. data/lib/openstudio-standards/qaqc/hvac.rb +12 -12
  126. data/lib/openstudio-standards/refrigeration/create_compressor.rb +2 -5
  127. data/lib/openstudio-standards/refrigeration/data/refrigeration_compressors.csv +4 -4
  128. data/lib/openstudio-standards/service_water_heating/create_water_heater.rb +1 -2
  129. data/lib/openstudio-standards/service_water_heating/create_water_use.rb +5 -5
  130. data/lib/openstudio-standards/space_type/data/level_1_space_types.json +612 -0
  131. data/lib/openstudio-standards/space_type/standards_space_type.rb +53 -0
  132. data/lib/openstudio-standards/standards/Standards.AirConditionerVariableRefrigerantFlow.rb +8 -26
  133. data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +13 -13
  134. data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctVAVReheat.rb +0 -24
  135. data/lib/openstudio-standards/standards/Standards.BoilerHotWater.rb +6 -43
  136. data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +7 -24
  137. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXMultiSpeed.rb +19 -44
  138. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +25 -50
  139. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +25 -33
  140. data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +9 -22
  141. data/lib/openstudio-standards/standards/Standards.CoilDX.rb +15 -157
  142. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXMultiSpeed.rb +2 -2
  143. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXSingleSpeed.rb +18 -105
  144. data/lib/openstudio-standards/standards/Standards.CoilHeatingGas.rb +3 -23
  145. data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +0 -24
  146. data/lib/openstudio-standards/standards/Standards.CoilHeatingWaterToAirHeatPumpEquationFit.rb +2 -86
  147. data/lib/openstudio-standards/standards/Standards.FanVariableVolume.rb +0 -107
  148. data/lib/openstudio-standards/standards/Standards.Model.rb +6 -11
  149. data/lib/openstudio-standards/standards/Standards.People.rb +113 -0
  150. data/lib/openstudio-standards/standards/Standards.PlantLoop.rb +11 -11
  151. data/lib/openstudio-standards/standards/Standards.Pump.rb +2 -147
  152. data/lib/openstudio-standards/standards/Standards.PumpVariableSpeed.rb +57 -41
  153. data/lib/openstudio-standards/standards/Standards.SpaceType.rb +30 -153
  154. data/lib/openstudio-standards/standards/Standards.Ventilation.rb +74 -0
  155. data/lib/openstudio-standards/standards/Standards.ZoneHVACComponent.rb +1 -1
  156. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PlantLoop.rb +4 -4
  157. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_pumps_heating.json +3 -3
  158. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +37 -112
  159. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/comstock_ashrae_90_1_2007.spc_typ.json +37 -102
  160. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_pumps_heating.json +3 -3
  161. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +37 -112
  162. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +1 -1
  163. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/comstock_ashrae_90_1_2010.spc_typ.json +37 -37
  164. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_pumps_heating.json +6 -6
  165. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +37 -37
  166. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +1 -1
  167. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.BoilerHotWater.rb +1 -1
  168. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/comstock_ashrae_90_1_2013.spc_typ.json +37 -102
  169. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_pumps_heating.json +6 -6
  170. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +37 -37
  171. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +1 -1
  172. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.BoilerHotWater.rb +1 -1
  173. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/data/comstock_ashrae_90_1_2016.spc_typ.json +45 -109
  174. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.heat_pumps_heating.json +6 -6
  175. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.spc_typ.json +37 -37
  176. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirLoopHVAC.rb +1 -1
  177. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +1 -1
  178. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.BoilerHotWater.rb +1 -1
  179. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoilHeatingGas.rb +1 -1
  180. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/data/comstock_ashrae_90_1_2019.spc_typ.json +45 -109
  181. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.heat_pumps_heating.json +6 -6
  182. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.spc_typ.json +37 -37
  183. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.curves.json +0 -200
  184. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/comstock_doe_ref_1980_2004.spc_typ.json +37 -37
  185. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.spc_typ.json +37 -37
  186. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/comstock_doe_ref_pre_1980.spc_typ.json +37 -37
  187. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.spc_typ.json +37 -37
  188. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
  189. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.PlantLoop.rb +5 -5
  190. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +1 -1
  191. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.PlantLoop.rb +5 -5
  192. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirLoopHVAC.rb +1 -1
  193. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ChillerElectricEIR.rb +2 -2
  194. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXSingleSpeed.rb +2 -68
  195. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXTwoSpeed.rb +2 -35
  196. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilDX.rb +42 -0
  197. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingDXSingleSpeed.rb +5 -2
  198. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingGas.rb +2 -2
  199. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.PlantLoop.rb +3 -3
  200. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.SpaceType.rb +1 -1
  201. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb +1 -0
  202. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019_WaterHeaterMixed.rb +2 -4
  203. data/lib/openstudio-standards/standards/ashrae_90_1_prm/data/ashrae_90_1_prm.curves.json +0 -200
  204. data/lib/openstudio-standards/standards/ashrae_90_1_prm/data/ashrae_90_1_prm.fans.json +5 -5
  205. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/ashrae_90_1_prm.UserData.rb +1 -0
  206. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_enums.rb +0 -1
  207. data/lib/openstudio-standards/standards/cbes/data/cbes.curves.json +0 -200
  208. data/lib/openstudio-standards/standards/deer/data/deer.curves.json +0 -200
  209. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/btap_pre1980.rb +19 -10
  210. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/building_envelope.rb +12 -11
  211. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_systems.rb +4 -4
  212. data/lib/openstudio-standards/standards/necb/ECMS/ecms.rb +1 -1
  213. data/lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb +69 -92
  214. data/lib/openstudio-standards/standards/necb/NECB2011/autozone.rb +2 -1
  215. data/lib/openstudio-standards/standards/necb/NECB2011/beps_compliance_path.rb +16 -12
  216. data/lib/openstudio-standards/standards/necb/NECB2011/building_envelope.rb +799 -46
  217. data/lib/openstudio-standards/standards/necb/NECB2011/data/chillers.json +33 -51
  218. data/lib/openstudio-standards/standards/necb/NECB2011/data/constants.json +32 -0
  219. data/lib/openstudio-standards/standards/necb/NECB2011/data/fuel_type_sets.json +18 -0
  220. data/lib/openstudio-standards/standards/necb/NECB2011/data/heat_pumps_heating.json +21 -15
  221. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_namer.rb +5 -5
  222. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_single_speed.rb +2 -0
  223. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +30 -141
  224. data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +233 -112
  225. data/lib/openstudio-standards/standards/necb/NECB2015/data/heat_pumps_heating.json +10 -2
  226. data/lib/openstudio-standards/standards/necb/NECB2015/hvac_systems.rb +2 -2
  227. data/lib/openstudio-standards/standards/necb/NECB2020/data/heat_pumps_heating.json +16 -6
  228. data/lib/openstudio-standards/standards/necb/NECB2020/data/unitary_acs.json +60 -61
  229. data/lib/openstudio-standards/standards/necb/NECB2020/service_water_heating.rb +30 -30
  230. data/lib/openstudio-standards/standards/necb/common/btap_analysis.rb +79 -0
  231. data/lib/openstudio-standards/standards/necb/common/btap_data.rb +16 -4
  232. data/lib/openstudio-standards/standards/necb/common/btap_datapoint.rb +65 -42
  233. data/lib/openstudio-standards/thermal_zone/{thermal_zone.rb → information.rb} +12 -45
  234. data/lib/openstudio-standards/thermal_zone/thermostat_schedules.rb +152 -0
  235. data/lib/openstudio-standards/version.rb +1 -1
  236. data/lib/openstudio-standards/weather/stat_file.rb +2 -2
  237. data/lib/openstudio-standards.rb +55 -38
  238. metadata +106 -66
  239. data/lib/openstudio-standards/btap/costing/common_resources/constructions_glazing.csv +0 -61
  240. data/lib/openstudio-standards/btap/costing/common_resources/costs.csv +0 -1904
  241. data/lib/openstudio-standards/hvac/components/create.rb +0 -169
  242. data/lib/openstudio-standards/hvac/components/modify.rb +0 -42
  243. data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirConditionerVariableRefrigerantFlow.rb +0 -438
  244. data/lib/openstudio-standards/prototypes/common/objects/Prototype.BoilerHotWater.rb +0 -123
  245. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CentralAirSourceHeatPump.rb +0 -216
  246. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXSingleSpeed.rb +0 -273
  247. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXTwoSpeed.rb +0 -159
  248. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWater.rb +0 -77
  249. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWaterToAirHeatPumpEquationFit.rb +0 -154
  250. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingDXSingleSpeed.rb +0 -214
  251. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingElectric.rb +0 -53
  252. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingGas.rb +0 -72
  253. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWater.rb +0 -95
  254. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWaterToAirHeatPumpEquationFit.rb +0 -125
  255. data/lib/openstudio-standards/prototypes/common/objects/Prototype.ControllerWaterCoil.rb +0 -17
  256. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.transformers.rb +0 -90
  257. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Pump.rb +0 -4
  258. data/lib/openstudio-standards/prototypes/common/objects/Prototype.PumpVariableSpeed.rb +0 -70
  259. data/lib/openstudio-standards/prototypes/common/objects/Prototype.radiant_system_controls.rb +0 -590
  260. data/lib/openstudio-standards/prototypes/common/objects/Prototype.utilities.rb +0 -901
  261. data/lib/openstudio-standards/standards/Standards.FanConstantVolume.rb +0 -5
  262. data/lib/openstudio-standards/standards/Standards.FanOnOff.rb +0 -5
  263. data/lib/openstudio-standards/standards/Standards.FanZoneExhaust.rb +0 -5
  264. data/lib/openstudio-standards/standards/Standards.HeaderedPumpsConstantSpeed.rb +0 -5
  265. data/lib/openstudio-standards/standards/Standards.HeaderedPumpsVariableSpeed.rb +0 -55
  266. data/lib/openstudio-standards/standards/Standards.PumpConstantSpeed.rb +0 -5
  267. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanConstantVolume.rb +0 -5
  268. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanOnOff.rb +0 -5
  269. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanZoneExhaust.rb +0 -5
  270. data/lib/openstudio-standards/standards/cbes/data/cbes.fans.json +0 -328
  271. data/lib/openstudio-standards/standards/deer/data/deer.fans.json +0 -328
  272. /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/ConstructionProperties.csv +0 -0
  273. /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/Constructions.csv +0 -0
  274. /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/construction_sets.csv +0 -0
  275. /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/constructions_opaque.csv +0 -0
  276. /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/costs_local_factors.csv +0 -0
  277. /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/hvac_vent_ahu.csv +0 -0
  278. /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/lighting_sets.csv +0 -0
  279. /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/locations.csv +0 -0
  280. /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/materials_glazing.csv +0 -0
  281. /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/materials_lighting.csv +0 -0
  282. /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/materials_opaque.csv +0 -0
  283. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PumpVariableSpeed.rb +0 -0
  284. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.PumpVariableSpeed.rb +0 -0
  285. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.PumpVariableSpeed.rb +0 -0
  286. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.PumpVariableSpeed.rb +0 -0
  287. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.PumpVariableSpeed.rb +0 -0
  288. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Pump.rb +0 -0
  289. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.PumpVariableSpeed.rb +0 -0
@@ -16,4 +16,37 @@ class Standard
16
16
 
17
17
  return true
18
18
  end
19
+
20
+ # Sets VAV reheat and VAV no reheat terminals on an air loop to control for outdoor air
21
+ #
22
+ # @param model [OpenStudio::Model::Model] OpenStudio model object
23
+ # @param air_loop [<OpenStudio::Model::AirLoopHVAC>] air loop to enable DCV on.
24
+ # Default is nil, which will apply to all air loops
25
+ # @return [OpenStudio::Model::Model] OpenStudio model object
26
+ def model_set_vav_terminals_to_control_for_outdoor_air(model, air_loop: nil)
27
+ vav_reheats = model.getAirTerminalSingleDuctVAVReheats
28
+ vav_no_reheats = model.getAirTerminalSingleDuctVAVNoReheats
29
+
30
+ if air_loop.nil?
31
+ # all terminals
32
+ vav_reheats.each do |vav_reheat|
33
+ vav_reheat.setControlForOutdoorAir(true)
34
+ end
35
+ vav_no_reheats.each do |vav_no_reheat|
36
+ vav_no_reheat.setControlForOutdoorAir(true)
37
+ end
38
+ else
39
+ vav_reheats.each do |vav_reheat|
40
+ next if vav_reheat.airLoopHVAC.get.name.to_s != air_loop.name.to_s
41
+
42
+ vav_reheat.setControlForOutdoorAir(true)
43
+ end
44
+ vav_no_reheats.each do |vav_no_reheat|
45
+ next if vav_no_reheat.airLoopHVAC.get.name.to_s != air_loop.name.to_s
46
+
47
+ vav_no_reheat.setControlForOutdoorAir(true)
48
+ end
49
+ end
50
+ return model
51
+ end
19
52
  end
@@ -63,144 +63,4 @@ module PrototypeFan
63
63
 
64
64
  return true
65
65
  end
66
-
67
- # fan class method to apply fan variables
68
- #
69
- # @param fan [OpenStudio::Model::StraightComponent] fan object of type:
70
- # FanConstantVolume, FanOnOff, FanVariableVolume, and FanZoneExhaust
71
- # @param fan_name [String] fan name
72
- # @param fan_efficiency [Double] fan efficiency
73
- # @param pressure_rise [Double] fan pressure rise in Pa
74
- # @param end_use_subcategory [String] end use subcategory name
75
- # @return [OpenStudio::Model::StraightComponent] fan object
76
- def self.apply_base_fan_variables(fan,
77
- fan_name: nil,
78
- fan_efficiency: nil,
79
- pressure_rise: nil,
80
- end_use_subcategory: nil)
81
- fan.setName(fan_name) unless fan_name.nil?
82
- fan.setFanEfficiency(fan_efficiency) unless fan_efficiency.nil?
83
- fan.setPressureRise(pressure_rise) unless pressure_rise.nil?
84
- fan.setEndUseSubcategory(end_use_subcategory) unless end_use_subcategory.nil?
85
- return fan
86
- end
87
-
88
- # @param fan_efficiency [Double] fan efficiency
89
- # @param pressure_rise [Double] fan pressure rise in Pa
90
- def get_fan_from_standards(standards_name: nil,
91
- type: nil,
92
- fan_efficiency: nil,
93
- pressure_rise: nil,
94
- motor_efficiency: nil,
95
- motor_in_airstream_fraction: nil,
96
- fan_power_minimum_flow_rate_input_method: nil,
97
- fan_power_coefficient_1: nil,
98
- fan_power_coefficient_2: nil,
99
- fan_power_coefficient_3: nil,
100
- fan_power_coefficient_4: nil,
101
- fan_power_coefficient_5: nil,
102
- system_availability_manager_coupling_mode: nil,
103
- end_use_subcategory: nil)
104
- search_criteria = {}
105
- standards_name ? search_criteria['name'] = standards_name : search_criteria['name'] = 'default'
106
- if type then search_criteria['type'] = type end
107
- if fan_efficiency then search_criteria['fan_efficiency'] = fan_efficiency end
108
- if pressure_rise then search_criteria['pressure_rise'] = pressure_rise end
109
- if motor_efficiency then search_criteria['motor_efficiency'] = motor_efficiency end
110
- if motor_in_airstream_fraction then search_criteria['motor_in_airstream_fraction'] = motor_in_airstream_fraction end
111
- if fan_power_minimum_flow_rate_input_method then search_criteria['fan_power_minimum_flow_rate_input_method'] = fan_power_minimum_flow_rate_input_method end
112
- if fan_power_coefficient_1 then search_criteria['fan_power_coefficient_1'] = fan_power_coefficient_1 end
113
- if fan_power_coefficient_2 then search_criteria['fan_power_coefficient_2'] = fan_power_coefficient_2 end
114
- if fan_power_coefficient_3 then search_criteria['fan_power_coefficient_3'] = fan_power_coefficient_3 end
115
- if fan_power_coefficient_4 then search_criteria['fan_power_coefficient_4'] = fan_power_coefficient_4 end
116
- if fan_power_coefficient_5 then search_criteria['fan_power_coefficient_5'] = fan_power_coefficient_5 end
117
- if system_availability_manager_coupling_mode then search_criteria['system_availability_manager_coupling_mode'] = system_availability_manager_coupling_mode end
118
- if end_use_subcategory then search_criteria['end_use_subcategory'] = end_use_subcategory end
119
-
120
- model_find_object(@standards_data['fans'], search_criteria)
121
- end
122
-
123
- # create a fan with properties for a fan name in the standards data
124
- #
125
- # @param fan_name [String] fan name
126
- # @param fan_efficiency [Double] fan efficiency
127
- # @param pressure_rise [Double] fan pressure rise in Pa
128
- # @param end_use_subcategory [String] end use subcategory name
129
- # @return [OpenStudio::Model::StraightComponent] fan object
130
- def create_fan_by_name(model,
131
- standards_name,
132
- fan_name: nil,
133
- fan_efficiency: nil,
134
- pressure_rise: nil,
135
- motor_efficiency: nil,
136
- motor_in_airstream_fraction: nil,
137
- fan_power_minimum_flow_rate_input_method: nil,
138
- fan_power_minimum_flow_rate_fraction: nil,
139
- fan_power_coefficient_1: nil,
140
- fan_power_coefficient_2: nil,
141
- fan_power_coefficient_3: nil,
142
- fan_power_coefficient_4: nil,
143
- fan_power_coefficient_5: nil,
144
- system_availability_manager_coupling_mode: nil,
145
- end_use_subcategory: nil)
146
-
147
- fan_json = get_fan_from_standards(standards_name: standards_name)
148
-
149
- case fan_json['type']
150
- when 'ConstantVolume'
151
- create_fan_constant_volume_from_json(model,
152
- fan_json,
153
- fan_name: fan_name,
154
- fan_efficiency: fan_efficiency,
155
- pressure_rise: pressure_rise,
156
- motor_efficiency: motor_efficiency,
157
- motor_in_airstream_fraction: motor_in_airstream_fraction,
158
- end_use_subcategory: end_use_subcategory)
159
- when 'OnOff'
160
- create_fan_on_off_from_json(model,
161
- fan_json,
162
- fan_name: fan_name,
163
- fan_efficiency: fan_efficiency,
164
- pressure_rise: pressure_rise,
165
- motor_efficiency: motor_efficiency,
166
- motor_in_airstream_fraction: motor_in_airstream_fraction,
167
- end_use_subcategory: end_use_subcategory)
168
- when 'VariableVolume'
169
- fan_power_coefficient_1, fan_power_coefficient_2, fan_power_coefficient_3, fan_power_coefficient_4, fan_power_coefficient_5 = lookup_fan_curve_coefficients_from_json(fan_json['fan_curve']) if fan_json['fan_curve']
170
- create_fan_variable_volume_from_json(model,
171
- fan_json,
172
- fan_name: fan_name,
173
- fan_efficiency: fan_efficiency,
174
- pressure_rise: pressure_rise,
175
- motor_efficiency: motor_efficiency,
176
- motor_in_airstream_fraction: motor_in_airstream_fraction,
177
- fan_power_minimum_flow_rate_input_method: fan_power_minimum_flow_rate_input_method,
178
- fan_power_minimum_flow_rate_fraction: fan_power_minimum_flow_rate_fraction,
179
- fan_power_coefficient_1: fan_power_coefficient_1,
180
- fan_power_coefficient_2: fan_power_coefficient_2,
181
- fan_power_coefficient_3: fan_power_coefficient_3,
182
- fan_power_coefficient_4: fan_power_coefficient_4,
183
- fan_power_coefficient_5: fan_power_coefficient_5,
184
- end_use_subcategory: end_use_subcategory)
185
- when 'ZoneExhaust'
186
- create_fan_zone_exhaust_from_json(model,
187
- fan_json,
188
- fan_name: fan_name,
189
- fan_efficiency: fan_efficiency,
190
- pressure_rise: pressure_rise,
191
- system_availability_manager_coupling_mode: system_availability_manager_coupling_mode,
192
- end_use_subcategory: end_use_subcategory)
193
- end
194
- end
195
-
196
- # Lookup fan curve coefficients
197
- #
198
- # @param fan_curve [String] name of the fan curve
199
- # @return [Array] an array of fan curve coefficients
200
- def lookup_fan_curve_coefficients_from_json(fan_curve)
201
- search_criteria = {}
202
- search_criteria['name'] = fan_curve
203
- fan_curve = model_find_object(@standards_data['curves'], search_criteria)
204
- return [fan_curve['coeff_1'], fan_curve['coeff_2'], fan_curve['coeff_3'], fan_curve['coeff_4'], fan_curve['coeff_5']]
205
- end
206
66
  end
@@ -9,9 +9,6 @@ class Standard
9
9
  # @param fan_constant_volume [OpenStudio::Model::FanConstantVolume] constant volume fan object
10
10
  # @return [Boolean] returns true if successful, false if not
11
11
  def fan_constant_volume_apply_prototype_fan_pressure_rise(fan_constant_volume)
12
- # Don't modify unit heater fans
13
- return true if fan_constant_volume.name.to_s.include?('UnitHeater Fan')
14
-
15
12
  # Get the max flow rate from the fan.
16
13
  maximum_flow_rate_m3_per_s = nil
17
14
  if fan_constant_volume.maximumFlowRate.is_initialized
@@ -26,8 +23,7 @@ class Standard
26
23
  # Convert max flow rate to cfm
27
24
  maximum_flow_rate_cfm = OpenStudio.convert(maximum_flow_rate_m3_per_s, 'm^3/s', 'cfm').get
28
25
 
29
- # Pressure rise will be determined based on the
30
- # following logic.
26
+ # Pressure rise will be determined based on the following logic.
31
27
  pressure_rise_in_h2o = 0.0
32
28
 
33
29
  # If the fan lives inside of a zone hvac equipment
@@ -85,72 +81,4 @@ class Standard
85
81
 
86
82
  return pressure_rise_in_h2o
87
83
  end
88
-
89
- # creates a constant volume fan
90
- #
91
- # @param model [OpenStudio::Model::Model] OpenStudio model object
92
- # @param fan_name [String] fan name
93
- # @param fan_efficiency [Double] fan efficiency
94
- # @param pressure_rise [Double] fan pressure rise in Pa
95
- # @param motor_efficiency [Double] fan motor efficiency
96
- # @param motor_in_airstream_fraction [Double] fraction of motor heat in airstream
97
- # @param end_use_subcategory [String] end use subcategory name
98
- # @return [OpenStudio::Model::FanConstantVolume] constant volume fan object
99
- def create_fan_constant_volume(model,
100
- fan_name: nil,
101
- fan_efficiency: nil,
102
- pressure_rise: nil,
103
- motor_efficiency: nil,
104
- motor_in_airstream_fraction: nil,
105
- end_use_subcategory: nil)
106
- fan = OpenStudio::Model::FanConstantVolume.new(model)
107
- PrototypeFan.apply_base_fan_variables(fan,
108
- fan_name: fan_name,
109
- fan_efficiency: fan_efficiency,
110
- pressure_rise: pressure_rise,
111
- end_use_subcategory: end_use_subcategory)
112
- fan.setMotorEfficiency(motor_efficiency) unless motor_efficiency.nil?
113
- fan.setMotorInAirstreamFraction(motor_in_airstream_fraction) unless motor_in_airstream_fraction.nil?
114
- return fan
115
- end
116
-
117
- # creates a constant volume fan from a json
118
- #
119
- # @param model [OpenStudio::Model::Model] OpenStudio model object
120
- # @param fan_json [Hash] hash of fan properties
121
- # @param fan_name [String] fan name
122
- # @param fan_efficiency [Double] fan efficiency
123
- # @param pressure_rise [Double] fan pressure rise in Pa
124
- # @param motor_efficiency [Double] fan motor efficiency
125
- # @param motor_in_airstream_fraction [Double] fraction of motor heat in airstream
126
- # @param end_use_subcategory [String] end use subcategory name
127
- # @return [OpenStudio::Model::FanConstantVolume] constant volume fan object
128
- def create_fan_constant_volume_from_json(model,
129
- fan_json,
130
- fan_name: nil,
131
- fan_efficiency: nil,
132
- pressure_rise: nil,
133
- motor_efficiency: nil,
134
- motor_in_airstream_fraction: nil,
135
- end_use_subcategory: nil)
136
- # check values to use
137
- fan_efficiency ||= fan_json['fan_efficiency']
138
- pressure_rise ||= fan_json['pressure_rise']
139
- motor_efficiency ||= fan_json['motor_efficiency']
140
- motor_in_airstream_fraction ||= fan_json['motor_in_airstream_fraction']
141
- end_use_subcategory ||= fan_json['end_use_subcategory']
142
-
143
- # convert values
144
- pressure_rise = pressure_rise ? OpenStudio.convert(pressure_rise, 'inH_{2}O', 'Pa').get : nil
145
-
146
- # create fan
147
- fan = create_fan_constant_volume(model,
148
- fan_name: fan_name,
149
- fan_efficiency: fan_efficiency,
150
- pressure_rise: pressure_rise,
151
- motor_efficiency: motor_efficiency,
152
- motor_in_airstream_fraction: motor_in_airstream_fraction,
153
- end_use_subcategory: end_use_subcategory)
154
- return fan
155
- end
156
84
  end
@@ -24,8 +24,7 @@ class Standard
24
24
  # Convert max flow rate to cfm
25
25
  maximum_flow_rate_cfm = OpenStudio.convert(maximum_flow_rate_m3_per_s, 'm^3/s', 'cfm').get
26
26
 
27
- # Pressure rise will be determined based on the
28
- # following logic.
27
+ # Pressure rise will be determined based on the following logic.
29
28
  pressure_rise_in_h2o = 0.0
30
29
 
31
30
  # If the fan lives inside of a zone hvac equipment
@@ -92,71 +91,4 @@ class Standard
92
91
 
93
92
  return pressure_rise_in_h2o
94
93
  end
95
-
96
- # creates an on off fan
97
- #
98
- # @param model [OpenStudio::Model::Model] OpenStudio model object
99
- # @param fan_name [String] fan name
100
- # @param fan_efficiency [Double] fan efficiency
101
- # @param pressure_rise [Double] fan pressure rise in Pa
102
- # @param motor_efficiency [Double] fan motor efficiency
103
- # @param motor_in_airstream_fraction [Double] fraction of motor heat in airstream
104
- # @param end_use_subcategory [String] end use subcategory name
105
- # @return [OpenStudio::Model::FanOnOff] on off fan object
106
- def create_fan_on_off(model,
107
- fan_name: nil,
108
- fan_efficiency: nil,
109
- pressure_rise: nil,
110
- motor_efficiency: nil,
111
- motor_in_airstream_fraction: nil,
112
- end_use_subcategory: nil)
113
- fan = OpenStudio::Model::FanOnOff.new(model)
114
- PrototypeFan.apply_base_fan_variables(fan,
115
- fan_name: fan_name,
116
- fan_efficiency: fan_efficiency,
117
- pressure_rise: pressure_rise,
118
- end_use_subcategory: end_use_subcategory)
119
- fan.setMotorEfficiency(motor_efficiency) unless motor_efficiency.nil?
120
- fan.setMotorInAirstreamFraction(motor_in_airstream_fraction) unless motor_in_airstream_fraction.nil?
121
- return fan
122
- end
123
-
124
- # creates a on off fan from a json
125
- #
126
- # @param model [OpenStudio::Model::Model] OpenStudio model object
127
- # @param fan_json [Hash] hash of fan properties
128
- # @param fan_name [String] fan name
129
- # @param fan_efficiency [Double] fan efficiency
130
- # @param pressure_rise [Double] fan pressure rise in Pa
131
- # @param motor_efficiency [Double] fan motor efficiency
132
- # @param motor_in_airstream_fraction [Double] fraction of motor heat in airstream
133
- # @param end_use_subcategory [String] end use subcategory name
134
- # @return [OpenStudio::Model::FanOnOff] on off fan object
135
- def create_fan_on_off_from_json(model,
136
- fan_json,
137
- fan_name: nil,
138
- fan_efficiency: nil,
139
- pressure_rise: nil,
140
- motor_efficiency: nil,
141
- motor_in_airstream_fraction: nil,
142
- end_use_subcategory: nil)
143
- # check values to use
144
- fan_efficiency ||= fan_json['fan_efficiency']
145
- pressure_rise ||= fan_json['pressure_rise']
146
- motor_efficiency ||= fan_json['motor_efficiency']
147
- motor_in_airstream_fraction ||= fan_json['motor_in_airstream_fraction']
148
-
149
- # convert values
150
- pressure_rise = pressure_rise ? OpenStudio.convert(pressure_rise, 'inH_{2}O', 'Pa').get : nil
151
-
152
- # create fan
153
- fan = create_fan_on_off(model,
154
- fan_name: fan_name,
155
- fan_efficiency: fan_efficiency,
156
- pressure_rise: pressure_rise,
157
- motor_efficiency: motor_efficiency,
158
- motor_in_airstream_fraction: motor_in_airstream_fraction,
159
- end_use_subcategory: end_use_subcategory)
160
- return fan
161
- end
162
94
  end
@@ -83,120 +83,4 @@ class Standard
83
83
 
84
84
  return pressure_rise_in_h2o
85
85
  end
86
-
87
- # creates a variable volume fan
88
- #
89
- # @param model [OpenStudio::Model::Model] OpenStudio model object
90
- # @param fan_name [String] fan name
91
- # @param fan_efficiency [Double] fan efficiency
92
- # @param pressure_rise [Double] fan pressure rise in Pa
93
- # @param motor_efficiency [Double] fan motor efficiency
94
- # @param motor_in_airstream_fraction [Double] fraction of motor heat in airstream
95
- # @param fan_power_minimum_flow_rate_input_method [String] options are Fraction, FixedFlowRate
96
- # @param fan_power_minimum_flow_rate_fraction [Double] minimum flow rate fraction
97
- # @param end_use_subcategory [String] end use subcategory name
98
- # @param fan_power_coefficient_1 [Double] fan power coefficient 1
99
- # @param fan_power_coefficient_2 [Double] fan power coefficient 2
100
- # @param fan_power_coefficient_3 [Double] fan power coefficient 3
101
- # @param fan_power_coefficient_4 [Double] fan power coefficient 4
102
- # @param fan_power_coefficient_5 [Double] fan power coefficient 5
103
- # @return [OpenStudio::Model::FanVariableVolume] variable volume fan object
104
- def create_fan_variable_volume(model,
105
- fan_name: nil,
106
- fan_efficiency: nil,
107
- pressure_rise: nil,
108
- motor_efficiency: nil,
109
- motor_in_airstream_fraction: nil,
110
- fan_power_minimum_flow_rate_input_method: nil,
111
- fan_power_minimum_flow_rate_fraction: nil,
112
- fan_power_coefficient_1: nil,
113
- fan_power_coefficient_2: nil,
114
- fan_power_coefficient_3: nil,
115
- fan_power_coefficient_4: nil,
116
- fan_power_coefficient_5: nil,
117
- end_use_subcategory: nil)
118
- fan = OpenStudio::Model::FanVariableVolume.new(model)
119
- PrototypeFan.apply_base_fan_variables(fan,
120
- fan_name: fan_name,
121
- fan_efficiency: fan_efficiency,
122
- pressure_rise: pressure_rise,
123
- end_use_subcategory: end_use_subcategory)
124
- fan.setMotorEfficiency(motor_efficiency) unless motor_efficiency.nil?
125
- fan.setMotorInAirstreamFraction(motor_in_airstream_fraction) unless motor_in_airstream_fraction.nil?
126
- fan.setFanPowerMinimumFlowRateInputMethod(fan_power_minimum_flow_rate_input_method) unless fan_power_minimum_flow_rate_input_method.nil?
127
- fan.setFanPowerMinimumFlowFraction(fan_power_minimum_flow_rate_fraction) unless fan_power_minimum_flow_rate_fraction.nil?
128
- fan.setFanPowerCoefficient1(fan_power_coefficient_1) unless fan_power_coefficient_1.nil?
129
- fan.setFanPowerCoefficient2(fan_power_coefficient_2) unless fan_power_coefficient_2.nil?
130
- fan.setFanPowerCoefficient3(fan_power_coefficient_3) unless fan_power_coefficient_3.nil?
131
- fan.setFanPowerCoefficient4(fan_power_coefficient_4) unless fan_power_coefficient_4.nil?
132
- fan.setFanPowerCoefficient5(fan_power_coefficient_5) unless fan_power_coefficient_5.nil?
133
- return fan
134
- end
135
-
136
- # creates a variable volume fan from a json
137
- #
138
- # @param model [OpenStudio::Model::Model] OpenStudio model object
139
- # @param fan_json [Hash] hash of fan properties
140
- # @param fan_name [String] fan name
141
- # @param fan_efficiency [Double] fan efficiency
142
- # @param pressure_rise [Double] fan pressure rise in Pa
143
- # @param motor_efficiency [Double] fan motor efficiency
144
- # @param motor_in_airstream_fraction [Double] fraction of motor heat in airstream
145
- # @param fan_power_minimum_flow_rate_input_method [String] options are Fraction, FixedFlowRate
146
- # @param fan_power_minimum_flow_rate_fraction [Double] minimum flow rate fraction
147
- # @param end_use_subcategory [String] end use subcategory name
148
- # @param fan_power_coefficient_1 [Double] fan power coefficient 1
149
- # @param fan_power_coefficient_2 [Double] fan power coefficient 2
150
- # @param fan_power_coefficient_3 [Double] fan power coefficient 3
151
- # @param fan_power_coefficient_4 [Double] fan power coefficient 4
152
- # @param fan_power_coefficient_5 [Double] fan power coefficient 5
153
- # @return [OpenStudio::Model::FanVariableVolume] variable volume fan object
154
- def create_fan_variable_volume_from_json(model,
155
- fan_json,
156
- fan_name: nil,
157
- fan_efficiency: nil,
158
- pressure_rise: nil,
159
- motor_efficiency: nil,
160
- motor_in_airstream_fraction: nil,
161
- fan_power_minimum_flow_rate_input_method: nil,
162
- fan_power_minimum_flow_rate_fraction: nil,
163
- end_use_subcategory: nil,
164
- fan_power_coefficient_1: nil,
165
- fan_power_coefficient_2: nil,
166
- fan_power_coefficient_3: nil,
167
- fan_power_coefficient_4: nil,
168
- fan_power_coefficient_5: nil)
169
- # check values to use
170
- fan_efficiency ||= fan_json['fan_efficiency']
171
- pressure_rise ||= fan_json['pressure_rise']
172
- motor_efficiency ||= fan_json['motor_efficiency']
173
- motor_in_airstream_fraction ||= fan_json['motor_in_airstream_fraction']
174
- fan_power_minimum_flow_rate_input_method ||= fan_json['fan_power_minimum_flow_rate_input_method']
175
- fan_power_minimum_flow_rate_fraction ||= fan_json['fan_power_minimum_flow_rate_fraction']
176
- fan_power_coefficient_1 ||= fan_json['fan_power_coefficient_1']
177
- fan_power_coefficient_2 ||= fan_json['fan_power_coefficient_2']
178
- fan_power_coefficient_3 ||= fan_json['fan_power_coefficient_3']
179
- fan_power_coefficient_4 ||= fan_json['fan_power_coefficient_4']
180
- fan_power_coefficient_5 ||= fan_json['fan_power_coefficient_5']
181
-
182
- # convert values
183
- pressure_rise_pa = OpenStudio.convert(pressure_rise, 'inH_{2}O', 'Pa').get unless pressure_rise.nil?
184
-
185
- # create fan
186
- fan = create_fan_variable_volume(model,
187
- fan_name: fan_name,
188
- fan_efficiency: fan_efficiency,
189
- pressure_rise: pressure_rise_pa,
190
- motor_efficiency: motor_efficiency,
191
- motor_in_airstream_fraction: motor_in_airstream_fraction,
192
- fan_power_minimum_flow_rate_input_method: fan_power_minimum_flow_rate_input_method,
193
- fan_power_minimum_flow_rate_fraction: fan_power_minimum_flow_rate_fraction,
194
- end_use_subcategory: end_use_subcategory,
195
- fan_power_coefficient_1: fan_power_coefficient_1,
196
- fan_power_coefficient_2: fan_power_coefficient_2,
197
- fan_power_coefficient_3: fan_power_coefficient_3,
198
- fan_power_coefficient_4: fan_power_coefficient_4,
199
- fan_power_coefficient_5: fan_power_coefficient_5)
200
- return fan
201
- end
202
86
  end
@@ -23,65 +23,4 @@ class Standard
23
23
 
24
24
  return true
25
25
  end
26
-
27
- # creates a FanZoneExhaust from a json
28
- #
29
- # @param model [OpenStudio::Model::Model] OpenStudio model object
30
- # @param fan_json [Hash] hash of fan properties
31
- # @param fan_name [String] fan name
32
- # @param fan_efficiency [Double] fan efficiency
33
- # @param pressure_rise [Double] fan pressure rise in Pa
34
- # @param system_availability_manager_coupling_mode [String] coupling mode, options are Coupled, Decoupled
35
- # @param end_use_subcategory [String] end use subcategory name
36
- # @return [OpenStudio::Model::FanZoneExhaust] the exhaust fan
37
- def create_fan_zone_exhaust_from_json(model,
38
- fan_json,
39
- fan_name: nil,
40
- fan_efficiency: nil,
41
- pressure_rise: nil,
42
- system_availability_manager_coupling_mode: nil,
43
- end_use_subcategory: nil)
44
-
45
- # check values to use
46
- fan_efficiency ||= fan_json['fan_efficiency']
47
- pressure_rise ||= fan_json['pressure_rise']
48
- system_availability_manager_coupling_mode ||= fan_json['system_availability_manager_coupling_mode']
49
-
50
- # convert values
51
- pressure_rise = pressure_rise ? OpenStudio.convert(pressure_rise, 'inH_{2}O', 'Pa').get : nil
52
-
53
- # create fan
54
- fan = create_fan_zone_exhaust(model,
55
- fan_name: fan_name,
56
- fan_efficiency: fan_efficiency,
57
- pressure_rise: pressure_rise,
58
- system_availability_manager_coupling_mode: system_availability_manager_coupling_mode,
59
- end_use_subcategory: end_use_subcategory)
60
- return fan
61
- end
62
-
63
- # creates a FanZoneExhaust
64
- #
65
- # @param model [OpenStudio::Model::Model] OpenStudio model object
66
- # @param fan_name [String] fan name
67
- # @param fan_efficiency [Double] fan efficiency
68
- # @param pressure_rise [Double] fan pressure rise in Pa
69
- # @param system_availability_manager_coupling_mode [String] coupling mode, options are Coupled, Decoupled
70
- # @param end_use_subcategory [String] end use subcategory name
71
- # @return [OpenStudio::Model::FanZoneExhaust] the exhaust fan
72
- def create_fan_zone_exhaust(model,
73
- fan_name: nil,
74
- fan_efficiency: nil,
75
- pressure_rise: nil,
76
- system_availability_manager_coupling_mode: nil,
77
- end_use_subcategory: nil)
78
- fan = OpenStudio::Model::FanZoneExhaust.new(model)
79
- PrototypeFan.apply_base_fan_variables(fan,
80
- fan_name: fan_name,
81
- fan_efficiency: fan_efficiency,
82
- pressure_rise: pressure_rise,
83
- end_use_subcategory: end_use_subcategory)
84
- fan.setSystemAvailabilityManagerCouplingMode(system_availability_manager_coupling_mode) unless system_availability_manager_coupling_mode.nil?
85
- return fan
86
- end
87
26
  end
@@ -267,12 +267,12 @@ class Standard
267
267
  htg_dsgn_sup_air_temp = system['heating_design_supply_air_temperature'] || 70.0
268
268
 
269
269
  # for boolean input, this makes sure we get the correct input translation
270
- if system['include_exhaust_fan'].nil? || true?(system['include_exhaust_fan'])
270
+ if system['include_exhaust_fan'].nil? || (system['include_exhaust_fan'].to_s.downcase == 'true')
271
271
  include_exhaust_fan = true
272
272
  else
273
273
  include_exhaust_fan = false
274
274
  end
275
- if true?(system['demand_control_ventilation'])
275
+ if (system['demand_control_ventilation'].to_s.downcase == 'true')
276
276
  demand_control_ventilation = true
277
277
  else
278
278
  demand_control_ventilation = false