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.
- checksums.yaml +4 -4
- data/data/inventory/thermal_bridging.csv +90 -0
- data/data/standards/OpenStudio_Standards-deer-comstock.xlsx +0 -0
- data/data/standards/manage_OpenStudio_Standards.rb +1 -1
- data/data/standards/test_performance_expected_dd_results.csv +2014 -1891
- data/lib/openstudio-standards/btap/analysis.rb +8 -8
- data/lib/openstudio-standards/btap/bridging.rb +664 -645
- data/lib/openstudio-standards/btap/btap.model.rb +14 -14
- data/lib/openstudio-standards/btap/btap.rb +7 -7
- data/lib/openstudio-standards/btap/btap_result.rb +1 -1
- data/lib/openstudio-standards/btap/economics.rb +23 -23
- data/lib/openstudio-standards/btap/envelope.rb +8 -8
- data/lib/openstudio-standards/btap/equest.rb +1 -1
- data/lib/openstudio-standards/btap/geometry.rb +2 -2
- data/lib/openstudio-standards/btap/mpc.rb +7 -7
- data/lib/openstudio-standards/btap/schedules.rb +1 -1
- data/lib/openstudio-standards/btap/simmanager.rb +4 -4
- data/lib/openstudio-standards/btap/spaceloads.rb +26 -26
- data/lib/openstudio-standards/btap/utilities.rb +6 -6
- data/lib/openstudio-standards/btap/vintagizer.rb +1 -1
- data/lib/openstudio-standards/constructions/information.rb +83 -0
- data/lib/openstudio-standards/constructions/materials/modify.rb +72 -0
- data/lib/openstudio-standards/constructions/modify.rb +80 -0
- data/lib/openstudio-standards/create_typical/create_typical.rb +983 -0
- data/lib/openstudio-standards/create_typical/enumerations.rb +484 -0
- data/lib/openstudio-standards/create_typical/space_type_blend.rb +791 -0
- data/lib/openstudio-standards/create_typical/space_type_ratios.rb +494 -0
- data/lib/openstudio-standards/daylighting/space.rb +47 -0
- data/lib/openstudio-standards/geometry/create.rb +801 -0
- data/lib/openstudio-standards/geometry/create_bar.rb +2171 -0
- data/lib/openstudio-standards/geometry/information.rb +462 -0
- data/lib/openstudio-standards/geometry/modify.rb +48 -0
- data/lib/openstudio-standards/hvac/air_loop/information.rb +79 -0
- data/lib/openstudio-standards/hvac/cbecs_hvac.rb +616 -0
- data/lib/openstudio-standards/hvac/setpoint_managers/information.rb +91 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Model.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Model.rb +2 -2
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.hvac_systems.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.rb +4 -36
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.hvac_systems.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.rb +4 -36
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Space.rb +3 -3
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.hvac_systems.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.Model.elevators.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.CoilHeatingGas.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.elevators.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.College.rb +7 -7
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Courthouse.rb +8 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.FullServiceRestaurant.rb +14 -14
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.HighRiseApartment.rb +9 -9
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Hospital.rb +16 -16
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Laboratory.rb +7 -7
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeDataCenterHighITE.rb +8 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeDataCenterLowITE.rb +8 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeHotel.rb +11 -11
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOffice.rb +7 -7
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOfficeDetailed.rb +9 -9
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb +8 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOfficeDetailed.rb +11 -11
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MidriseApartment.rb +9 -9
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Outpatient.rb +19 -19
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.PrimarySchool.rb +10 -10
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.QuickServiceRestaurant.rb +13 -13
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.RetailStandalone.rb +6 -6
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.RetailStripmall.rb +6 -6
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SecondarySchool.rb +9 -9
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallDataCenterHighITE.rb +8 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallDataCenterLowITE.rb +8 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallHotel.rb +8 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOffice.rb +8 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOfficeDetailed.rb +11 -11
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SuperMarket.rb +10 -10
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SuperTallBuilding.rb +19 -19
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.TallBuilding.rb +18 -18
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Warehouse.rb +6 -6
- data/lib/openstudio-standards/prototypes/common/do_not_edit_metaclasses.rb +957 -957
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirConditionerVariableRefrigerantFlow.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWaterToAirHeatPumpEquationFit.rb +84 -16
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingDXSingleSpeed.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingGas.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWaterToAirHeatPumpEquationFit.rb +61 -10
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.ControllerWaterCoil.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoolingTower.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Fan.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanConstantVolume.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanOnOff.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanZoneExhaust.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.HeatExchangerAirToAirSensibleAndLatent.rb +2 -2
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.exterior_lights.rb +4 -4
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.hvac.rb +4 -4
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +43 -30
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.swh.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.ServiceWaterHeating.rb +18 -11
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.SizingSystem.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +774 -117
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.radiant_system_controls.rb +340 -481
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.refrigeration.rb +3 -3
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.utilities.rb +3 -3
- data/lib/openstudio-standards/prototypes/common/prototype_metaprogramming.rb +22 -22
- data/lib/openstudio-standards/prototypes/deer/deer.Model.rb +1 -1
- data/lib/openstudio-standards/qaqc/calibration.rb +131 -0
- data/lib/openstudio-standards/qaqc/create_results.rb +983 -0
- data/lib/openstudio-standards/qaqc/envelope.rb +399 -0
- data/lib/openstudio-standards/qaqc/eui.rb +213 -0
- data/lib/openstudio-standards/qaqc/hvac.rb +1943 -0
- data/lib/openstudio-standards/qaqc/internal_loads.rb +568 -0
- data/lib/openstudio-standards/qaqc/reporting.rb +141 -0
- data/lib/openstudio-standards/qaqc/schedules.rb +129 -0
- data/lib/openstudio-standards/qaqc/service_water_heating.rb +273 -0
- data/lib/openstudio-standards/qaqc/weather_files.rb +497 -0
- data/lib/openstudio-standards/qaqc/zone_conditions.rb +278 -0
- data/lib/openstudio-standards/schedules/create.rb +364 -0
- data/lib/openstudio-standards/schedules/information.rb +169 -0
- data/lib/openstudio-standards/schedules/modify.rb +445 -0
- data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +110 -71
- data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctParallelPIUReheat.rb +3 -3
- data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctVAVReheat.rb +4 -4
- data/lib/openstudio-standards/standards/Standards.BoilerHotWater.rb +2 -1
- data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +16 -10
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +4 -4
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.CoilDX.rb +4 -4
- data/lib/openstudio-standards/standards/Standards.CoilHeatingDXMultiSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.CoilHeatingDXSingleSpeed.rb +5 -5
- data/lib/openstudio-standards/standards/Standards.CoilHeatingGas.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.CoilHeatingWaterToAirHeatPumpEquationFit.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.Construction.rb +17 -18
- data/lib/openstudio-standards/standards/Standards.CoolingTower.rb +6 -6
- data/lib/openstudio-standards/standards/Standards.CoolingTowerSingleSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.CoolingTowerTwoSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.CoolingTowerVariableSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.Fan.rb +6 -12
- data/lib/openstudio-standards/standards/Standards.FanVariableVolume.rb +2 -2
- data/lib/openstudio-standards/standards/Standards.FluidCooler.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.HeaderedPumpsVariableSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.HeatExchangerSensLat.rb +3 -3
- data/lib/openstudio-standards/standards/Standards.Model.rb +411 -261
- data/lib/openstudio-standards/standards/Standards.PlanarSurface.rb +2 -2
- data/lib/openstudio-standards/standards/Standards.PlantLoop.rb +94 -29
- data/lib/openstudio-standards/standards/Standards.Pump.rb +2 -2
- data/lib/openstudio-standards/standards/Standards.ScheduleConstant.rb +2 -2
- data/lib/openstudio-standards/standards/Standards.ScheduleRuleset.rb +14 -14
- data/lib/openstudio-standards/standards/Standards.Space.rb +37 -30
- data/lib/openstudio-standards/standards/Standards.SpaceType.rb +38 -29
- data/lib/openstudio-standards/standards/Standards.SubSurface.rb +7 -7
- data/lib/openstudio-standards/standards/Standards.Surface.rb +13 -13
- data/lib/openstudio-standards/standards/Standards.ThermalZone.rb +109 -66
- data/lib/openstudio-standards/standards/Standards.WaterHeaterMixed.rb +11 -4
- data/lib/openstudio-standards/standards/Standards.ZoneHVACComponent.rb +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PlantLoop.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.Space.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.Space.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirLoopHVAC.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Space.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirLoopHVAC.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.CoolingTowerVariableSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Model.rb +5 -21
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Space.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.WaterHeaterMixed.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.ZoneHVACComponent.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirLoopHVAC.rb +36 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.CoolingTowerVariableSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Space.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.ZoneHVACComponent.rb +1 -1
- 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
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirLoopHVAC.rb +53 -10
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoolingTowerVariableSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Space.rb +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.ZoneHVACComponent.rb +2 -2
- 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
- data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.curves.json +211 -211
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.economizers.json +14 -14
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.AirLoopHVAC.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.Model.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.PlantLoop.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.economizers.json +14 -14
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirLoopHVAC.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.PlantLoop.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirLoopHVAC.rb +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.CoolingTowerVariableSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.PlantLoop.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.Space.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirLoopHVAC.rb +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.CoolingTowerVariableSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.PlantLoop.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Space.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirLoopHVAC.rb +22 -28
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirTerminalSingleDuctParallelPIUReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirTerminalSingleDuctVAVReheat.rb +2 -2
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.BoilerHotWater.rb +1 -74
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ChillerElectricEIR.rb +7 -59
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXSingleSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXTwoSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilDX.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingDXSingleSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingGas.rb +1 -21
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.DesignSpecificationOutdoorAir.rb +101 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanConstantVolume.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanOnOff.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.HeatExchangerSensLat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Model.rb +643 -526
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.PlanarSurface.rb +8 -2
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.PlantLoop.rb +17 -77
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Space.rb +74 -16
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.SpaceType.rb +96 -44
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Surface.rb +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ThermalZone.rb +18 -6
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ZoneHVACComponent.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.rb +328 -74
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb +0 -118
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.rb +2 -1
- 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
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/baseline_outdoor_air.md +35 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/set_plug_load_measures.md +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/ashrae_90_1_prm.UserData.rb +228 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_enums.rb +131 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_space.csv +1 -1
- data/lib/openstudio-standards/standards/cbes/cbes.AirLoopHVAC.rb +5 -5
- data/lib/openstudio-standards/standards/cbes/cbes.Model.rb +1 -1
- data/lib/openstudio-standards/standards/cbes/cbes.PlantLoop.rb +1 -1
- data/lib/openstudio-standards/standards/cbes/cbes.Space.rb +1 -1
- data/lib/openstudio-standards/standards/cbes/cbes_t24_2005/cbes_t24_2005.Space.rb +1 -1
- data/lib/openstudio-standards/standards/cbes/cbes_t24_2008/cbes_t24_2008.Space.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer.AirLoopHVAC.rb +109 -27
- data/lib/openstudio-standards/standards/deer/deer.Space.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_1985/data/deer_1985.economizers.json +246 -4
- data/lib/openstudio-standards/standards/deer/deer_1996/data/deer_1996.economizers.json +246 -4
- data/lib/openstudio-standards/standards/deer/deer_2003/data/deer_2003.economizers.json +246 -4
- data/lib/openstudio-standards/standards/deer/deer_2003/deer_2003.ThermalZone.rb +18 -18
- data/lib/openstudio-standards/standards/deer/deer_2007/data/deer_2007.economizers.json +246 -4
- data/lib/openstudio-standards/standards/deer/deer_2007/deer_2007.ThermalZone.rb +18 -18
- data/lib/openstudio-standards/standards/deer/deer_2011/data/deer_2011.economizers.json +246 -4
- data/lib/openstudio-standards/standards/deer/deer_2011/deer_2011.ThermalZone.rb +18 -18
- data/lib/openstudio-standards/standards/deer/deer_2014/data/deer_2014.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2014/deer_2014.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2014/deer_2014.ThermalZone.rb +18 -18
- data/lib/openstudio-standards/standards/deer/deer_2015/data/deer_2015.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2015/deer_2015.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2015/deer_2015.ThermalZone.rb +18 -18
- data/lib/openstudio-standards/standards/deer/deer_2017/data/deer_2017.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2017/deer_2017.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2017/deer_2017.ThermalZone.rb +18 -18
- data/lib/openstudio-standards/standards/deer/deer_2020/data/deer_2020.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.AirLoopHVAC.rb +18 -5
- data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.ThermalZone.rb +18 -18
- data/lib/openstudio-standards/standards/deer/deer_2025/data/deer_2025.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.AirLoopHVAC.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2030/data/deer_2030.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2030/data/deer_2030.heat_pumps.json +2 -2
- data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.AirLoopHVAC.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2035/data/deer_2035.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.AirLoopHVAC.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2040/data/deer_2040.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.AirLoopHVAC.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2045/data/deer_2045.economizers.json +260 -0
- data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.AirLoopHVAC.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2050/data/deer_2050.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.AirLoopHVAC.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2055/data/deer_2055.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.AirLoopHVAC.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2060/data/deer_2060.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.AirLoopHVAC.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2065/data/deer_2065.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.AirLoopHVAC.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2070/data/deer_2070.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.AirLoopHVAC.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2075/data/deer_2075.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.AirLoopHVAC.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_pre_1975/data/deer_pre_1975.economizers.json +246 -4
- data/lib/openstudio-standards/standards/necb/BTAP1980TO2010/data/space_types.json +447 -223
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/building_envelope.rb +1 -1
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/data/space_types.json +447 -223
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_systems.rb +5 -2
- data/lib/openstudio-standards/standards/necb/ECMS/data/chiller_types.json +25 -0
- data/lib/openstudio-standards/standards/necb/ECMS/data/chillers.json +44 -0
- data/lib/openstudio-standards/standards/necb/ECMS/data/curves.json +225 -0
- data/lib/openstudio-standards/standards/necb/ECMS/ecms.rb +2 -2
- data/lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb +193 -73
- data/lib/openstudio-standards/standards/necb/ECMS/pv_ground.rb +1 -1
- data/lib/openstudio-standards/standards/necb/NECB2011/autozone.rb +10 -4
- data/lib/openstudio-standards/standards/necb/NECB2011/beps_compliance_path.rb +7 -7
- data/lib/openstudio-standards/standards/necb/NECB2011/building_envelope.rb +4 -5
- data/lib/openstudio-standards/standards/necb/NECB2011/data/chiller_types.json +32 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/data/chillers.json +1 -1
- data/lib/openstudio-standards/standards/necb/NECB2011/data/constants.json +36 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/data/fuel_type_sets.json +7 -7
- data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/NorthernEducation.osm +47587 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/NorthernHealthCare.osm +49764 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/Warehouse.osm +283 -297
- data/lib/openstudio-standards/standards/necb/NECB2011/data/space_type_unit_definitions.txt +2 -1
- data/lib/openstudio-standards/standards/necb/NECB2011/data/space_types.json +447 -223
- data/lib/openstudio-standards/standards/necb/NECB2011/data/standards_data.rb +3 -3
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_multi_speed.rb +1 -1
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +49 -27
- data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +400 -202
- data/lib/openstudio-standards/standards/necb/NECB2011/service_water_heating.rb +4 -4
- data/lib/openstudio-standards/standards/necb/NECB2015/data/space_types.json +637 -318
- data/lib/openstudio-standards/standards/necb/NECB2015/hvac_systems.rb +18 -1
- data/lib/openstudio-standards/standards/necb/NECB2015/necb_2015.rb +3 -3
- data/lib/openstudio-standards/standards/necb/NECB2017/data/space_types.json +637 -318
- data/lib/openstudio-standards/standards/necb/NECB2017/hvac_systems.rb +1 -1
- data/lib/openstudio-standards/standards/necb/NECB2017/necb_2017.rb +3 -3
- data/lib/openstudio-standards/standards/necb/NECB2020/building_envelope.rb +1 -1
- data/lib/openstudio-standards/standards/necb/NECB2020/data/space_types.json +615 -307
- data/lib/openstudio-standards/standards/necb/NECB2020/service_water_heating.rb +4 -4
- data/lib/openstudio-standards/standards/necb/common/btap_data.rb +10 -5
- data/lib/openstudio-standards/standards/necb/common/btap_datapoint.rb +1 -1
- data/lib/openstudio-standards/utilities/assertion.rb +128 -0
- data/lib/openstudio-standards/utilities/logging.rb +2 -3
- data/lib/openstudio-standards/utilities/object_info.rb +39 -18
- data/lib/openstudio-standards/utilities/schedule_translator.rb +8 -6
- data/lib/openstudio-standards/utilities/simulation.rb +24 -11
- data/lib/openstudio-standards/utilities/sqlfile.rb +10 -5
- data/lib/openstudio-standards/version.rb +1 -1
- data/lib/openstudio-standards/weather/Weather.Model.rb +8 -9
- data/lib/openstudio-standards/weather/Weather.stat_file.rb +3 -3
- data/lib/openstudio-standards/weather/information.rb +35 -0
- data/lib/openstudio-standards.rb +69 -5
- metadata +52 -16
- data/data/standards/OpenStudio_Standards-deer-ALL-comstock(space_types).xlsx +0 -0
- data/lib/openstudio-standards/hvac_sizing/Siz.AirLoopHVAC.rb +0 -59
- data/lib/openstudio-standards/hvac_sizing/Siz.CoilCoolingWater.rb +0 -13
- data/lib/openstudio-standards/hvac_sizing/Siz.HVACComponent.rb +0 -36
- data/lib/openstudio-standards/hvac_sizing/Siz.HeatingCoolingFuels.rb +0 -898
- data/lib/openstudio-standards/hvac_sizing/Siz.Model.rb +0 -126
- data/lib/openstudio-standards/hvac_sizing/Siz.ThermalZone.rb +0 -356
- data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.Model.rb +0 -35
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoolingTower.rb +0 -110
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoolingTowerVariableSpeed.rb +0 -5
|
@@ -7,7 +7,7 @@ class Standard
|
|
|
7
7
|
# Appendix A: Service Water Heating
|
|
8
8
|
#
|
|
9
9
|
# @param water_heater_mixed [OpenStudio::Model::WaterHeaterMixed] water heater mixed object
|
|
10
|
-
# @return [
|
|
10
|
+
# @return [Boolean] returns true if successful, false if not
|
|
11
11
|
def water_heater_mixed_apply_efficiency(water_heater_mixed)
|
|
12
12
|
# @todo remove this once workaround for HPWHs is removed
|
|
13
13
|
if water_heater_mixed.partLoadFactorCurve.is_initialized
|
|
@@ -17,6 +17,13 @@ class Standard
|
|
|
17
17
|
end
|
|
18
18
|
end
|
|
19
19
|
|
|
20
|
+
# get number of water heaters
|
|
21
|
+
if water_heater_mixed.additionalProperties.getFeatureAsInteger('component_quantity').is_initialized
|
|
22
|
+
comp_qty = water_heater_mixed.additionalProperties.getFeatureAsInteger('component_quantity').get
|
|
23
|
+
else
|
|
24
|
+
comp_qty = 1
|
|
25
|
+
end
|
|
26
|
+
|
|
20
27
|
# Get the capacity of the water heater
|
|
21
28
|
# @todo add capability to pull autosized water heater capacity
|
|
22
29
|
# if the Sizing:WaterHeater object is ever implemented in OpenStudio.
|
|
@@ -25,7 +32,7 @@ class Standard
|
|
|
25
32
|
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.WaterHeaterMixed', "For #{water_heater_mixed.name}, cannot find capacity, standard will not be applied.")
|
|
26
33
|
return false
|
|
27
34
|
else
|
|
28
|
-
capacity_w = capacity_w.get /
|
|
35
|
+
capacity_w = capacity_w.get / comp_qty
|
|
29
36
|
end
|
|
30
37
|
capacity_btu_per_hr = OpenStudio.convert(capacity_w, 'W', 'Btu/hr').get
|
|
31
38
|
|
|
@@ -37,7 +44,7 @@ class Standard
|
|
|
37
44
|
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.WaterHeaterMixed', "For #{water_heater_mixed.name}, cannot find volume, standard will not be applied.")
|
|
38
45
|
return false
|
|
39
46
|
else
|
|
40
|
-
volume_m3 = @instvarbuilding_type == 'MidriseApartment' ? volume_m3.get / 23 : volume_m3.get /
|
|
47
|
+
volume_m3 = @instvarbuilding_type == 'MidriseApartment' ? volume_m3.get / 23 : volume_m3.get / comp_qty
|
|
41
48
|
end
|
|
42
49
|
volume_gal = OpenStudio.convert(volume_m3, 'm^3', 'gal').get
|
|
43
50
|
|
|
@@ -201,7 +208,7 @@ class Standard
|
|
|
201
208
|
#
|
|
202
209
|
# @param water_heater_mixed [OpenStudio::Model::WaterHeaterMixed] water heater mixed object
|
|
203
210
|
# @param building_type [String] the building type
|
|
204
|
-
# @return [
|
|
211
|
+
# @return [Boolean] returns true if successful, false if not
|
|
205
212
|
def water_heater_mixed_apply_prm_baseline_fuel_type(water_heater_mixed, building_type)
|
|
206
213
|
# baseline is same as proposed per Table G3.1 item 11.b
|
|
207
214
|
return true # Do nothing
|
|
@@ -14,7 +14,7 @@ class Standard
|
|
|
14
14
|
# based on the W/cfm specified in the standard.
|
|
15
15
|
#
|
|
16
16
|
# @param zone_hvac_component [OpenStudio::Model::ZoneHVACComponent] zone hvac component
|
|
17
|
-
# @return [
|
|
17
|
+
# @return [Boolean] returns true if successful, false if not
|
|
18
18
|
def zone_hvac_component_apply_prm_baseline_fan_power(zone_hvac_component)
|
|
19
19
|
OpenStudio.logFree(OpenStudio::Debug, 'openstudio.standards.ZoneHVACComponent', "Setting fan power for #{zone_hvac_component.name}.")
|
|
20
20
|
|
|
@@ -138,7 +138,7 @@ class Standard
|
|
|
138
138
|
# and the zone requires ventilation, override it to follow the zone occupancy schedule
|
|
139
139
|
#
|
|
140
140
|
# @param zone_hvac_component [OpenStudio::Model::ZoneHVACComponent] zone hvac component
|
|
141
|
-
# @return [
|
|
141
|
+
# @return [Boolean] returns true if successful, false if not
|
|
142
142
|
def zone_hvac_component_occupancy_ventilation_control(zone_hvac_component)
|
|
143
143
|
ventilation = false
|
|
144
144
|
# Zone HVAC operating schedule if providing ventilation
|
|
@@ -216,7 +216,7 @@ class Standard
|
|
|
216
216
|
# Apply all standard required controls to the zone equipment
|
|
217
217
|
#
|
|
218
218
|
# @param zone_hvac_component [OpenStudio::Model::ZoneHVACComponent] zone hvac component
|
|
219
|
-
# @return [
|
|
219
|
+
# @return [Boolean] returns true if successful, false if not
|
|
220
220
|
def zone_hvac_component_apply_standard_controls(zone_hvac_component)
|
|
221
221
|
# Vestibule heating control
|
|
222
222
|
if zone_hvac_component_vestibule_heating_control_required?(zone_hvac_component)
|
|
@@ -262,7 +262,7 @@ class Standard
|
|
|
262
262
|
# Defaults to 90.1-2004 through 2010, not required.
|
|
263
263
|
#
|
|
264
264
|
# @param zone_hvac_component [OpenStudio::Model::ZoneHVACComponent] zone hvac component
|
|
265
|
-
# @return [
|
|
265
|
+
# @return [Boolean] returns true if successful, false if not
|
|
266
266
|
def zone_hvac_component_vestibule_heating_control_required?(zone_hvac_component)
|
|
267
267
|
vest_htg_control_required = false
|
|
268
268
|
return vest_htg_control_required
|
|
@@ -273,7 +273,7 @@ class Standard
|
|
|
273
273
|
# fan during the occupant standby mode hours
|
|
274
274
|
#
|
|
275
275
|
# @param zone_hvac_component OpenStudio zonal equipment object
|
|
276
|
-
# @
|
|
276
|
+
# @return [Boolean] true if sucessful, false otherwise
|
|
277
277
|
def zone_hvac_model_standby_mode_occupancy_control(zone_hvac_component)
|
|
278
278
|
return true
|
|
279
279
|
end
|
|
@@ -281,7 +281,7 @@ class Standard
|
|
|
281
281
|
# Turns off vestibule heating below 45F
|
|
282
282
|
#
|
|
283
283
|
# @param zone_hvac_component [OpenStudio::Model::ZoneHVACComponent] zone hvac component
|
|
284
|
-
# @return [
|
|
284
|
+
# @return [Boolean] returns true if successful, false if not
|
|
285
285
|
def zone_hvac_component_apply_vestibule_heating_control(zone_hvac_component)
|
|
286
286
|
# Ensure that the equipment is assigned to a thermal zone
|
|
287
287
|
if zone_hvac_component.thermalZone.empty?
|
data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.AirLoopHVAC.rb
CHANGED
|
@@ -5,7 +5,7 @@ class ASHRAE9012004 < ASHRAE901
|
|
|
5
5
|
#
|
|
6
6
|
# @param air_loop_hvac [OpenStudio::Model::AirLoopHVAC] air loop
|
|
7
7
|
# @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
|
|
8
|
-
# @return [
|
|
8
|
+
# @return [Boolean] returns true if required, false if not
|
|
9
9
|
def air_loop_hvac_prm_baseline_economizer_required?(air_loop_hvac, climate_zone)
|
|
10
10
|
economizer_required = false
|
|
11
11
|
|
data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PlantLoop.rb
CHANGED
|
@@ -4,7 +4,7 @@ class ASHRAE9012004 < ASHRAE901
|
|
|
4
4
|
# Set the primary and secondary pumping control types for the chilled water loop, as specified in Appendix G.
|
|
5
5
|
#
|
|
6
6
|
# @param plant_loop [OpenStudio::Model::PlantLoop] chilled water loop
|
|
7
|
-
# @return [
|
|
7
|
+
# @return [Boolean] returns true if successful, false if not
|
|
8
8
|
def plant_loop_apply_prm_baseline_chilled_water_pumping_type(plant_loop)
|
|
9
9
|
# Determine the pumping type.
|
|
10
10
|
minimum_area_ft2 = 120_000
|
data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.Space.rb
CHANGED
|
@@ -4,7 +4,7 @@ class ASHRAE9012004 < ASHRAE901
|
|
|
4
4
|
# Baseline infiltration rate
|
|
5
5
|
#
|
|
6
6
|
# @return [Double] the baseline infiltration rate, in cfm/ft^2 exterior above grade wall area at 75 Pa
|
|
7
|
-
def space_infiltration_rate_75_pa(space)
|
|
7
|
+
def space_infiltration_rate_75_pa(space = nil)
|
|
8
8
|
basic_infil_rate_cfm_per_ft2 = 1.8
|
|
9
9
|
return basic_infil_rate_cfm_per_ft2
|
|
10
10
|
end
|
data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.Space.rb
CHANGED
|
@@ -4,7 +4,7 @@ class ASHRAE9012007 < ASHRAE901
|
|
|
4
4
|
# Baseline infiltration rate
|
|
5
5
|
#
|
|
6
6
|
# @return [Double] the baseline infiltration rate, in cfm/ft^2 exterior above grade wall area at 75 Pa
|
|
7
|
-
def space_infiltration_rate_75_pa(space)
|
|
7
|
+
def space_infiltration_rate_75_pa(space = nil)
|
|
8
8
|
basic_infil_rate_cfm_per_ft2 = 1.8
|
|
9
9
|
return basic_infil_rate_cfm_per_ft2
|
|
10
10
|
end
|
data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirLoopHVAC.rb
CHANGED
|
@@ -44,7 +44,7 @@ class ASHRAE9012010 < ASHRAE901
|
|
|
44
44
|
#
|
|
45
45
|
# @param air_loop_hvac [OpenStudio::Model::AirLoopHVAC] air loop
|
|
46
46
|
# @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
|
|
47
|
-
# @return [
|
|
47
|
+
# @return [Boolean] returns true if required, false if not
|
|
48
48
|
def air_loop_hvac_integrated_economizer_required?(air_loop_hvac, climate_zone)
|
|
49
49
|
return true
|
|
50
50
|
end
|
|
@@ -54,7 +54,7 @@ class ASHRAE9012010 < ASHRAE901
|
|
|
54
54
|
#
|
|
55
55
|
# @param air_loop_hvac [OpenStudio::Model::AirLoopHVAC] air loop
|
|
56
56
|
# @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
|
|
57
|
-
# @return [
|
|
57
|
+
# @return [Boolean] Returns true if allowable, if the system has no economizer or no OA system.
|
|
58
58
|
# Returns false if the economizer type is not allowable.
|
|
59
59
|
def air_loop_hvac_economizer_type_allowable?(air_loop_hvac, climate_zone)
|
|
60
60
|
# EnergyPlus economizer types
|
|
@@ -142,7 +142,7 @@ class ASHRAE9012010 < ASHRAE901
|
|
|
142
142
|
#
|
|
143
143
|
# @param air_loop_hvac [OpenStudio::Model::AirLoopHVAC] air loop
|
|
144
144
|
# @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
|
|
145
|
-
# @return [
|
|
145
|
+
# @return [Boolean] returns true if required, false if not
|
|
146
146
|
# @todo Add exception logic for systems with AIA healthcare ventilation requirements dual duct systems
|
|
147
147
|
def air_loop_hvac_multizone_vav_optimization_required?(air_loop_hvac, climate_zone)
|
|
148
148
|
multizone_opt_required = false
|
|
@@ -296,7 +296,7 @@ class ASHRAE9012010 < ASHRAE901
|
|
|
296
296
|
#
|
|
297
297
|
# @param air_loop_hvac [OpenStudio::Model::AirLoopHVAC] air loop
|
|
298
298
|
# @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
|
|
299
|
-
# @return [
|
|
299
|
+
# @return [Boolean] returns true if required, false if not
|
|
300
300
|
def air_loop_hvac_supply_air_temperature_reset_required?(air_loop_hvac, climate_zone)
|
|
301
301
|
is_sat_reset_required = false
|
|
302
302
|
|
|
@@ -5,7 +5,7 @@ class ASHRAE9012010 < ASHRAE901
|
|
|
5
5
|
# For terminals with hot water heat and DDC, the minimum is 20%, otherwise the minimum is 30%.
|
|
6
6
|
#
|
|
7
7
|
# @param air_terminal_single_duct_vav_reheat [OpenStudio::Model::AirTerminalSingleDuctVAVReheat] the air terminal object
|
|
8
|
-
# @param has_ddc [
|
|
8
|
+
# @param has_ddc [Boolean] whether or not there is DDC control of the VAV terminal in question
|
|
9
9
|
# @return [Double] minimum damper position
|
|
10
10
|
def air_terminal_single_duct_vav_reheat_minimum_damper_position(air_terminal_single_duct_vav_reheat, has_ddc = false)
|
|
11
11
|
min_damper_position = nil
|
data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Space.rb
CHANGED
|
@@ -97,9 +97,9 @@ class ASHRAE9012010 < ASHRAE901
|
|
|
97
97
|
# @param areas [Hash] a hash of daylighted areas
|
|
98
98
|
# @param sorted_windows [Hash] a hash of windows, sorted by priority
|
|
99
99
|
# @param sorted_skylights [Hash] a hash of skylights, sorted by priority
|
|
100
|
-
# @param req_top_ctrl [
|
|
101
|
-
# @param req_pri_ctrl [
|
|
102
|
-
# @param req_sec_ctrl [
|
|
100
|
+
# @param req_top_ctrl [Boolean] if toplighting controls are required
|
|
101
|
+
# @param req_pri_ctrl [Boolean] if primary sidelighting controls are required
|
|
102
|
+
# @param req_sec_ctrl [Boolean] if secondary sidelighting controls are required
|
|
103
103
|
# @return [Array] array of 4 items
|
|
104
104
|
# [sensor 1 fraction, sensor 2 fraction, sensor 1 window, sensor 2 window]
|
|
105
105
|
def space_daylighting_fractions_and_windows(space,
|
|
@@ -161,7 +161,7 @@ class ASHRAE9012010 < ASHRAE901
|
|
|
161
161
|
#
|
|
162
162
|
# @return [Double] the baseline infiltration rate, in cfm/ft^2
|
|
163
163
|
# defaults to no infiltration.
|
|
164
|
-
def space_infiltration_rate_75_pa(space)
|
|
164
|
+
def space_infiltration_rate_75_pa(space = nil)
|
|
165
165
|
basic_infil_rate_cfm_per_ft2 = 1.0
|
|
166
166
|
return basic_infil_rate_cfm_per_ft2
|
|
167
167
|
end
|
data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirLoopHVAC.rb
CHANGED
|
@@ -50,7 +50,7 @@ class ASHRAE9012013 < ASHRAE901
|
|
|
50
50
|
#
|
|
51
51
|
# @param air_loop_hvac [OpenStudio::Model::AirLoopHVAC] air loop
|
|
52
52
|
# @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
|
|
53
|
-
# @return [
|
|
53
|
+
# @return [Boolean] returns true if required, false if not
|
|
54
54
|
def air_loop_hvac_integrated_economizer_required?(air_loop_hvac, climate_zone)
|
|
55
55
|
return true
|
|
56
56
|
end
|
|
@@ -123,7 +123,7 @@ class ASHRAE9012013 < ASHRAE901
|
|
|
123
123
|
#
|
|
124
124
|
# @param air_loop_hvac [OpenStudio::Model::AirLoopHVAC] air loop
|
|
125
125
|
# @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
|
|
126
|
-
# @return [
|
|
126
|
+
# @return [Boolean] Returns true if allowable, if the system has no economizer or no OA system.
|
|
127
127
|
# Returns false if the economizer type is not allowable.
|
|
128
128
|
def air_loop_hvac_economizer_type_allowable?(air_loop_hvac, climate_zone)
|
|
129
129
|
# EnergyPlus economizer types
|
|
@@ -211,7 +211,7 @@ class ASHRAE9012013 < ASHRAE901
|
|
|
211
211
|
#
|
|
212
212
|
# @param air_loop_hvac [OpenStudio::Model::AirLoopHVAC] air loop
|
|
213
213
|
# @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
|
|
214
|
-
# @return [
|
|
214
|
+
# @return [Boolean] returns true if required, false if not
|
|
215
215
|
# @todo Add exception logic for systems with AIA healthcare ventilation requirements dual duct systems
|
|
216
216
|
def air_loop_hvac_multizone_vav_optimization_required?(air_loop_hvac, climate_zone)
|
|
217
217
|
multizone_opt_required = false
|
|
@@ -365,7 +365,7 @@ class ASHRAE9012013 < ASHRAE901
|
|
|
365
365
|
#
|
|
366
366
|
# @param air_loop_hvac [OpenStudio::Model::AirLoopHVAC] air loop
|
|
367
367
|
# @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
|
|
368
|
-
# @return [
|
|
368
|
+
# @return [Boolean] returns true if required, false if not
|
|
369
369
|
def air_loop_hvac_supply_air_temperature_reset_required?(air_loop_hvac, climate_zone)
|
|
370
370
|
is_sat_reset_required = false
|
|
371
371
|
|
|
@@ -5,7 +5,7 @@ class ASHRAE9012013 < ASHRAE901
|
|
|
5
5
|
# For terminals with hot water heat and DDC, the minimum is 20%, otherwise the minimum is 30%.
|
|
6
6
|
#
|
|
7
7
|
# @param air_terminal_single_duct_vav_reheat [OpenStudio::Model::AirTerminalSingleDuctVAVReheat] the air terminal object
|
|
8
|
-
# @param has_ddc [
|
|
8
|
+
# @param has_ddc [Boolean] whether or not there is DDC control of the VAV terminal in question
|
|
9
9
|
# @return [Double] minimum damper position
|
|
10
10
|
def air_terminal_single_duct_vav_reheat_minimum_damper_position(air_terminal_single_duct_vav_reheat, has_ddc = false)
|
|
11
11
|
min_damper_position = nil
|
|
@@ -6,7 +6,7 @@ class ASHRAE9012013 < ASHRAE901
|
|
|
6
6
|
# Apply the efficiency, plus Multicell heat rejection with VSD per 90.1-2013 6.5.2.2
|
|
7
7
|
#
|
|
8
8
|
# @param cooling_tower_variable_speed [OpenStudio::Model::CoolingTowerVariableSpeed] variable speed cooling tower
|
|
9
|
-
# @return [
|
|
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
|
cooling_tower_variable_speed.setCellControl('MaximalCell')
|
data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Model.rb
CHANGED
|
@@ -1,21 +1,6 @@
|
|
|
1
1
|
class ASHRAE9012013 < ASHRAE901
|
|
2
2
|
# @!group Model
|
|
3
3
|
|
|
4
|
-
# Determines the area of the building above which point
|
|
5
|
-
# the non-dominant area type gets it's own HVAC system type.
|
|
6
|
-
# @return [Double] the minimum area (m^2)
|
|
7
|
-
def model_prm_baseline_system_group_minimum_area(model, custom)
|
|
8
|
-
exception_min_area_ft2 = 20_000
|
|
9
|
-
# Customization - Xcel EDA Program Manual 2014
|
|
10
|
-
# 3.2.1 Mechanical System Selection ii
|
|
11
|
-
if custom == 'Xcel Energy CO EDA'
|
|
12
|
-
exception_min_area_ft2 = 5000
|
|
13
|
-
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.Model', "Customization; per Xcel EDA Program Manual 2014 3.2.1 Mechanical System Selection ii, minimum area for non-predominant conditions reduced to #{exception_min_area_ft2} ft2.")
|
|
14
|
-
end
|
|
15
|
-
exception_min_area_m2 = OpenStudio.convert(exception_min_area_ft2, 'ft^2', 'm^2').get
|
|
16
|
-
return exception_min_area_m2
|
|
17
|
-
end
|
|
18
|
-
|
|
19
4
|
# Determines which system number is used
|
|
20
5
|
# for the baseline system.
|
|
21
6
|
# @return [String] the system number: 1_or_2, 3_or_4,
|
|
@@ -84,13 +69,12 @@ class ASHRAE9012013 < ASHRAE901
|
|
|
84
69
|
|
|
85
70
|
# Change the fuel type based on climate zone, depending on the standard.
|
|
86
71
|
# For 90.1-2013, fuel type is based on climate zone, not the proposed model.
|
|
72
|
+
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
|
73
|
+
# @param fuel_type [String] Valid choices are electric, fossil, fossilandelectric,
|
|
74
|
+
# purchasedheat, purchasedcooling, purchasedheatandcooling
|
|
75
|
+
# @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
|
|
87
76
|
# @return [String] the revised fuel type
|
|
88
|
-
def model_prm_baseline_system_change_fuel_type(model, fuel_type, climate_zone
|
|
89
|
-
if custom == 'Xcel Energy CO EDA'
|
|
90
|
-
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.Model', 'Custom; per Xcel EDA Program Manual 2014 Table 3.2.2 Baseline HVAC System Types, the 90.1-2010 rules for heating fuel type (based on proposed model) rules apply.')
|
|
91
|
-
return fuel_type
|
|
92
|
-
end
|
|
93
|
-
|
|
77
|
+
def model_prm_baseline_system_change_fuel_type(model, fuel_type, climate_zone)
|
|
94
78
|
# For 90.1-2013 the fuel type is determined based on climate zone.
|
|
95
79
|
# Don't change the fuel if it purchased heating or cooling.
|
|
96
80
|
if fuel_type == 'electric' || fuel_type == 'fossil'
|
data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Space.rb
CHANGED
|
@@ -102,9 +102,9 @@ class ASHRAE9012013 < ASHRAE901
|
|
|
102
102
|
# @param areas [Hash] a hash of daylighted areas
|
|
103
103
|
# @param sorted_windows [Hash] a hash of windows, sorted by priority
|
|
104
104
|
# @param sorted_skylights [Hash] a hash of skylights, sorted by priority
|
|
105
|
-
# @param req_top_ctrl [
|
|
106
|
-
# @param req_pri_ctrl [
|
|
107
|
-
# @param req_sec_ctrl [
|
|
105
|
+
# @param req_top_ctrl [Boolean] if toplighting controls are required
|
|
106
|
+
# @param req_pri_ctrl [Boolean] if primary sidelighting controls are required
|
|
107
|
+
# @param req_sec_ctrl [Boolean] if secondary sidelighting controls are required
|
|
108
108
|
# @return [Array] array of 4 items
|
|
109
109
|
# [sensor 1 fraction, sensor 2 fraction, sensor 1 window, sensor 2 window]
|
|
110
110
|
def space_daylighting_fractions_and_windows(space,
|
|
@@ -185,7 +185,7 @@ class ASHRAE9012013 < ASHRAE901
|
|
|
185
185
|
#
|
|
186
186
|
# @return [Double] the baseline infiltration rate, in cfm/ft^2
|
|
187
187
|
# defaults to no infiltration.
|
|
188
|
-
def space_infiltration_rate_75_pa(space)
|
|
188
|
+
def space_infiltration_rate_75_pa(space = nil)
|
|
189
189
|
basic_infil_rate_cfm_per_ft2 = 1.0
|
|
190
190
|
return basic_infil_rate_cfm_per_ft2
|
|
191
191
|
end
|
|
@@ -6,7 +6,7 @@ class ASHRAE9012013 < ASHRAE901
|
|
|
6
6
|
# from the proposed building in some scenarios.
|
|
7
7
|
#
|
|
8
8
|
# @param building_type [String] the building type
|
|
9
|
-
# @return [
|
|
9
|
+
# @return [Boolean] returns true if successful, false if not
|
|
10
10
|
def water_heater_mixed_apply_prm_baseline_fuel_type(water_heater_mixed, building_type)
|
|
11
11
|
# Determine the building-type specific
|
|
12
12
|
# fuel requirements from Table G3.1.1-2
|
|
@@ -6,7 +6,7 @@ class ASHRAE9012013 < ASHRAE901
|
|
|
6
6
|
#
|
|
7
7
|
# @ref [References::ASHRAE9012013] 6.4.3.9
|
|
8
8
|
# @param zone_hvac_component [OpenStudio::Model::ZoneHVACComponent] zone hvac component
|
|
9
|
-
# @return [
|
|
9
|
+
# @return [Boolean] returns true if successful, false if not
|
|
10
10
|
def zone_hvac_component_vestibule_heating_control_required?(zone_hvac_component)
|
|
11
11
|
# Ensure that the equipment is assigned to a thermal zone
|
|
12
12
|
if zone_hvac_component.thermalZone.empty?
|
data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirLoopHVAC.rb
CHANGED
|
@@ -1,6 +1,38 @@
|
|
|
1
1
|
class ASHRAE9012016 < ASHRAE901
|
|
2
2
|
# @!group AirLoopHVAC
|
|
3
3
|
|
|
4
|
+
# Determine the prototypical economizer type for the model.
|
|
5
|
+
#
|
|
6
|
+
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
|
7
|
+
# @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
|
|
8
|
+
# @return [String] the economizer type. Possible values are:
|
|
9
|
+
# 'NoEconomizer'
|
|
10
|
+
# 'FixedDryBulb'
|
|
11
|
+
# 'FixedEnthalpy'
|
|
12
|
+
# 'DifferentialDryBulb'
|
|
13
|
+
# 'DifferentialEnthalpy'
|
|
14
|
+
# 'FixedDewPointAndDryBulb'
|
|
15
|
+
# 'ElectronicEnthalpy'
|
|
16
|
+
# 'DifferentialDryBulbAndEnthalpy'
|
|
17
|
+
def model_economizer_type(model, climate_zone)
|
|
18
|
+
economizer_type = case climate_zone
|
|
19
|
+
when 'ASHRAE 169-2006-0A',
|
|
20
|
+
'ASHRAE 169-2006-1A',
|
|
21
|
+
'ASHRAE 169-2006-2A',
|
|
22
|
+
'ASHRAE 169-2006-3A',
|
|
23
|
+
'ASHRAE 169-2006-4A',
|
|
24
|
+
'ASHRAE 169-2013-0A',
|
|
25
|
+
'ASHRAE 169-2013-1A',
|
|
26
|
+
'ASHRAE 169-2013-2A',
|
|
27
|
+
'ASHRAE 169-2013-3A',
|
|
28
|
+
'ASHRAE 169-2013-4A'
|
|
29
|
+
'DifferentialEnthalpy'
|
|
30
|
+
else
|
|
31
|
+
'DifferentialDryBulb'
|
|
32
|
+
end
|
|
33
|
+
return economizer_type
|
|
34
|
+
end
|
|
35
|
+
|
|
4
36
|
# Determine the limits for the type of economizer present on the AirLoopHVAC, if any.
|
|
5
37
|
#
|
|
6
38
|
# @param air_loop_hvac [OpenStudio::Model::AirLoopHVAC] air loop
|
|
@@ -50,7 +82,7 @@ class ASHRAE9012016 < ASHRAE901
|
|
|
50
82
|
#
|
|
51
83
|
# @param air_loop_hvac [OpenStudio::Model::AirLoopHVAC] air loop
|
|
52
84
|
# @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
|
|
53
|
-
# @return [
|
|
85
|
+
# @return [Boolean] returns true if required, false if not
|
|
54
86
|
def air_loop_hvac_integrated_economizer_required?(air_loop_hvac, climate_zone)
|
|
55
87
|
return true
|
|
56
88
|
end
|
|
@@ -60,7 +92,7 @@ class ASHRAE9012016 < ASHRAE901
|
|
|
60
92
|
#
|
|
61
93
|
# @param air_loop_hvac [OpenStudio::Model::AirLoopHVAC] air loop
|
|
62
94
|
# @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
|
|
63
|
-
# @return [
|
|
95
|
+
# @return [Boolean] Returns true if allowable, if the system has no economizer or no OA system.
|
|
64
96
|
# Returns false if the economizer type is not allowable.
|
|
65
97
|
def air_loop_hvac_economizer_type_allowable?(air_loop_hvac, climate_zone)
|
|
66
98
|
# EnergyPlus economizer types
|
|
@@ -148,7 +180,7 @@ class ASHRAE9012016 < ASHRAE901
|
|
|
148
180
|
#
|
|
149
181
|
# @param air_loop_hvac [OpenStudio::Model::AirLoopHVAC] air loop
|
|
150
182
|
# @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
|
|
151
|
-
# @return [
|
|
183
|
+
# @return [Boolean] returns true if required, false if not
|
|
152
184
|
# @todo Add exception logic for systems with AIA healthcare ventilation requirements dual duct systems
|
|
153
185
|
def air_loop_hvac_multizone_vav_optimization_required?(air_loop_hvac, climate_zone)
|
|
154
186
|
multizone_opt_required = false
|
|
@@ -295,7 +327,7 @@ class ASHRAE9012016 < ASHRAE901
|
|
|
295
327
|
#
|
|
296
328
|
# @param air_loop_hvac [OpenStudio::Model::AirLoopHVAC] air loop
|
|
297
329
|
# @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
|
|
298
|
-
# @return [
|
|
330
|
+
# @return [Boolean] returns true if required, false if not
|
|
299
331
|
def air_loop_hvac_supply_air_temperature_reset_required?(air_loop_hvac, climate_zone)
|
|
300
332
|
is_sat_reset_required = false
|
|
301
333
|
|
|
@@ -5,7 +5,7 @@ class ASHRAE9012016 < ASHRAE901
|
|
|
5
5
|
# For terminals with hot water heat and DDC, the minimum is 20%, otherwise the minimum is 30%.
|
|
6
6
|
#
|
|
7
7
|
# @param air_terminal_single_duct_vav_reheat [OpenStudio::Model::AirTerminalSingleDuctVAVReheat] the air terminal object
|
|
8
|
-
# @param has_ddc [
|
|
8
|
+
# @param has_ddc [Boolean] whether or not there is DDC control of the VAV terminal in question
|
|
9
9
|
# @return [Double] minimum damper position
|
|
10
10
|
def air_terminal_single_duct_vav_reheat_minimum_damper_position(air_terminal_single_duct_vav_reheat, has_ddc = false)
|
|
11
11
|
min_damper_position = nil
|
|
@@ -6,7 +6,7 @@ class ASHRAE9012016 < ASHRAE901
|
|
|
6
6
|
# Apply the efficiency, plus Multicell heat rejection with VSD
|
|
7
7
|
#
|
|
8
8
|
# @param cooling_tower_variable_speed [OpenStudio::Model::CoolingTowerVariableSpeed] variable speed cooling tower
|
|
9
|
-
# @return [
|
|
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
|
cooling_tower_variable_speed.setCellControl('MaximalCell')
|
data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Space.rb
CHANGED
|
@@ -102,9 +102,9 @@ class ASHRAE9012016 < ASHRAE901
|
|
|
102
102
|
# @param areas [Hash] a hash of daylighted areas
|
|
103
103
|
# @param sorted_windows [Hash] a hash of windows, sorted by priority
|
|
104
104
|
# @param sorted_skylights [Hash] a hash of skylights, sorted by priority
|
|
105
|
-
# @param req_top_ctrl [
|
|
106
|
-
# @param req_pri_ctrl [
|
|
107
|
-
# @param req_sec_ctrl [
|
|
105
|
+
# @param req_top_ctrl [Boolean] if toplighting controls are required
|
|
106
|
+
# @param req_pri_ctrl [Boolean] if primary sidelighting controls are required
|
|
107
|
+
# @param req_sec_ctrl [Boolean] if secondary sidelighting controls are required
|
|
108
108
|
# @return [Array] array of 4 items
|
|
109
109
|
# [sensor 1 fraction, sensor 2 fraction, sensor 1 window, sensor 2 window]
|
|
110
110
|
def space_daylighting_fractions_and_windows(space,
|
|
@@ -185,7 +185,7 @@ class ASHRAE9012016 < ASHRAE901
|
|
|
185
185
|
#
|
|
186
186
|
# @return [Double] the baseline infiltration rate, in cfm/ft^2
|
|
187
187
|
# defaults to no infiltration.
|
|
188
|
-
def space_infiltration_rate_75_pa(space)
|
|
188
|
+
def space_infiltration_rate_75_pa(space = nil)
|
|
189
189
|
basic_infil_rate_cfm_per_ft2 = 1.0
|
|
190
190
|
return basic_infil_rate_cfm_per_ft2
|
|
191
191
|
end
|
|
@@ -6,7 +6,7 @@ class ASHRAE9012016 < ASHRAE901
|
|
|
6
6
|
#
|
|
7
7
|
# @ref [References::ASHRAE9012016] 6.4.3.9
|
|
8
8
|
# @param zone_hvac_component [OpenStudio::Model::ZoneHVACComponent] zone hvac component
|
|
9
|
-
# @return [
|
|
9
|
+
# @return [Boolean] returns true if successful, false if not
|
|
10
10
|
def zone_hvac_component_vestibule_heating_control_required?(zone_hvac_component)
|
|
11
11
|
# Ensure that the equipment is assigned to a thermal zone
|
|
12
12
|
if zone_hvac_component.thermalZone.empty?
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
class ComStockASHRAE9012016 < ASHRAE9012016
|
|
2
|
+
# Determine the prototypical economizer type for the model.
|
|
3
|
+
# Defaults to FixedDryBulb based on anecdotal evidence of this being
|
|
4
|
+
# the most common type encountered in the field, combined
|
|
5
|
+
# with this being the default option for many equipment manufacturers,
|
|
6
|
+
# and being the strategy recommended in the 2010 ASHRAE journal article
|
|
7
|
+
# "Economizer High Limit Devices and Why Enthalpy Economizers Don't Work"
|
|
8
|
+
# by Steven Taylor and Hwakong Cheng.
|
|
9
|
+
# https://tayloreng.egnyte.com/dl/mN0c9t4WSO/ASHRAE_Journal_-_Economizer_High_Limit_Devices_and_Why_Enthalpy_Economizers_Dont_Work.pdf_
|
|
10
|
+
#
|
|
11
|
+
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
|
12
|
+
# @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
|
|
13
|
+
# @return [String] the economizer type. Possible values are:
|
|
14
|
+
# 'NoEconomizer'
|
|
15
|
+
# 'FixedDryBulb'
|
|
16
|
+
# 'FixedEnthalpy'
|
|
17
|
+
# 'DifferentialDryBulb'
|
|
18
|
+
# 'DifferentialEnthalpy'
|
|
19
|
+
# 'FixedDewPointAndDryBulb'
|
|
20
|
+
# 'ElectronicEnthalpy'
|
|
21
|
+
# 'DifferentialDryBulbAndEnthalpy'
|
|
22
|
+
def model_economizer_type(model, climate_zone)
|
|
23
|
+
economizer_type = 'FixedDryBulb'
|
|
24
|
+
return economizer_type
|
|
25
|
+
end
|
|
26
|
+
end
|