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
|
@@ -10,7 +10,7 @@ class Standard
|
|
|
10
10
|
# @param type [String] the type of unit to reference for the correct curve set
|
|
11
11
|
# @param cooling_cop [Double] rated cooling coefficient of performance
|
|
12
12
|
# @param heating_cop [Double] rated heating coefficient of performance
|
|
13
|
-
# @param heat_recovery [
|
|
13
|
+
# @param heat_recovery [Boolean] does the unit have heat recovery
|
|
14
14
|
# @param defrost_strategy [String] type of defrost strategy. options are ReverseCycle or Resistive
|
|
15
15
|
# @param condenser_type [String] type of condenser
|
|
16
16
|
# options are AirCooled (default), WaterCooled, and EvaporativelyCooled.
|
data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirTerminalSingleDuctVAVReheat.rb
CHANGED
|
@@ -7,7 +7,7 @@ class Standard
|
|
|
7
7
|
#
|
|
8
8
|
# @param air_terminal_single_duct_vav_reheat [OpenStudio::Model::AirTerminalSingleDuctVAVReheat] the air terminal object
|
|
9
9
|
# @param zone_oa_per_area [Double] the zone outdoor air per area in m^3/s*m^2
|
|
10
|
-
# @return [
|
|
10
|
+
# @return [Boolean] returns true if successful, false if not
|
|
11
11
|
def air_terminal_single_duct_vav_reheat_apply_initial_prototype_damper_position(air_terminal_single_duct_vav_reheat, zone_oa_per_area)
|
|
12
12
|
min_damper_position = 0.3
|
|
13
13
|
|
|
@@ -62,22 +62,90 @@ class Standard
|
|
|
62
62
|
clg_coil.setCoolingPowerConsumptionCoefficient4(0.141605667000125)
|
|
63
63
|
clg_coil.setCoolingPowerConsumptionCoefficient5(-0.168727936032429)
|
|
64
64
|
else
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
65
|
+
if model.getCurveByName('Water to Air Heat Pump Total Cooling Capacity Curve').is_initialized
|
|
66
|
+
total_cooling_capacity_curve = model.getCurveByName('Water to Air Heat Pump Total Cooling Capacity Curve').get
|
|
67
|
+
total_cooling_capacity_curve = total_cooling_capacity_curve.to_CurveQuadLinear.get
|
|
68
|
+
else
|
|
69
|
+
total_cooling_capacity_curve = OpenStudio::Model::CurveQuadLinear.new(model)
|
|
70
|
+
total_cooling_capacity_curve.setName('Water to Air Heat Pump Total Cooling Capacity Curve')
|
|
71
|
+
total_cooling_capacity_curve.setCoefficient1Constant(-4.30266987344639)
|
|
72
|
+
total_cooling_capacity_curve.setCoefficient2w(7.18536990534372)
|
|
73
|
+
total_cooling_capacity_curve.setCoefficient3x(-2.23946714486189)
|
|
74
|
+
total_cooling_capacity_curve.setCoefficient4y(0.139995928440879)
|
|
75
|
+
total_cooling_capacity_curve.setCoefficient5z(0.102660179888915)
|
|
76
|
+
total_cooling_capacity_curve.setMinimumValueofw(-100)
|
|
77
|
+
total_cooling_capacity_curve.setMaximumValueofw(100)
|
|
78
|
+
total_cooling_capacity_curve.setMinimumValueofx(-100)
|
|
79
|
+
total_cooling_capacity_curve.setMaximumValueofx(100)
|
|
80
|
+
total_cooling_capacity_curve.setMinimumValueofy(0)
|
|
81
|
+
total_cooling_capacity_curve.setMaximumValueofy(100)
|
|
82
|
+
total_cooling_capacity_curve.setMinimumValueofz(0)
|
|
83
|
+
total_cooling_capacity_curve.setMaximumValueofz(100)
|
|
84
|
+
end
|
|
85
|
+
clg_coil.setTotalCoolingCapacityCurve(total_cooling_capacity_curve)
|
|
86
|
+
|
|
87
|
+
if model.getCurveByName('Water to Air Heat Pump Sensible Cooling Capacity Curve').is_initialized
|
|
88
|
+
sensible_cooling_capacity_curve = model.getCurveByName('Water to Air Heat Pump Sensible Cooling Capacity Curve').get
|
|
89
|
+
sensible_cooling_capacity_curve = sensible_cooling_capacity_curve.to_CurveQuintLinear.get
|
|
90
|
+
else
|
|
91
|
+
sensible_cooling_capacity_curve = OpenStudio::Model::CurveQuintLinear.new(model)
|
|
92
|
+
sensible_cooling_capacity_curve.setName('Water to Air Heat Pump Sensible Cooling Capacity Curve')
|
|
93
|
+
sensible_cooling_capacity_curve.setCoefficient1Constant(6.0019444814887)
|
|
94
|
+
sensible_cooling_capacity_curve.setCoefficient2v(22.6300677244073)
|
|
95
|
+
sensible_cooling_capacity_curve.setCoefficient3w(-26.7960783730934)
|
|
96
|
+
sensible_cooling_capacity_curve.setCoefficient4x(-1.72374720346819)
|
|
97
|
+
sensible_cooling_capacity_curve.setCoefficient5y(0.490644802367817)
|
|
98
|
+
sensible_cooling_capacity_curve.setCoefficient6z(0.0693119353468141)
|
|
99
|
+
sensible_cooling_capacity_curve.setMinimumValueofw(-100)
|
|
100
|
+
sensible_cooling_capacity_curve.setMaximumValueofw(100)
|
|
101
|
+
sensible_cooling_capacity_curve.setMinimumValueofx(-100)
|
|
102
|
+
sensible_cooling_capacity_curve.setMaximumValueofx(100)
|
|
103
|
+
sensible_cooling_capacity_curve.setMinimumValueofy(0)
|
|
104
|
+
sensible_cooling_capacity_curve.setMaximumValueofy(100)
|
|
105
|
+
sensible_cooling_capacity_curve.setMinimumValueofz(0)
|
|
106
|
+
sensible_cooling_capacity_curve.setMaximumValueofz(100)
|
|
107
|
+
end
|
|
108
|
+
clg_coil.setSensibleCoolingCapacityCurve(sensible_cooling_capacity_curve)
|
|
109
|
+
|
|
110
|
+
if model.getCurveByName('Water to Air Heat Pump Cooling Power Consumption Curve').is_initialized
|
|
111
|
+
cooling_power_consumption_curve = model.getCurveByName('Water to Air Heat Pump Cooling Power Consumption Curve').get
|
|
112
|
+
cooling_power_consumption_curve = cooling_power_consumption_curve.to_CurveQuadLinear.get
|
|
113
|
+
else
|
|
114
|
+
cooling_power_consumption_curve = OpenStudio::Model::CurveQuadLinear.new(model)
|
|
115
|
+
cooling_power_consumption_curve.setName('Water to Air Heat Pump Cooling Power Consumption Curve')
|
|
116
|
+
cooling_power_consumption_curve.setCoefficient1Constant(-5.67775976415698)
|
|
117
|
+
cooling_power_consumption_curve.setCoefficient2w(0.438988156976704)
|
|
118
|
+
cooling_power_consumption_curve.setCoefficient3x(5.845277342193)
|
|
119
|
+
cooling_power_consumption_curve.setCoefficient4y(0.141605667000125)
|
|
120
|
+
cooling_power_consumption_curve.setCoefficient5z(-0.168727936032429)
|
|
121
|
+
cooling_power_consumption_curve.setMinimumValueofw(-100)
|
|
122
|
+
cooling_power_consumption_curve.setMaximumValueofw(100)
|
|
123
|
+
cooling_power_consumption_curve.setMinimumValueofx(-100)
|
|
124
|
+
cooling_power_consumption_curve.setMaximumValueofx(100)
|
|
125
|
+
cooling_power_consumption_curve.setMinimumValueofy(0)
|
|
126
|
+
cooling_power_consumption_curve.setMaximumValueofy(100)
|
|
127
|
+
cooling_power_consumption_curve.setMinimumValueofz(0)
|
|
128
|
+
cooling_power_consumption_curve.setMaximumValueofz(100)
|
|
129
|
+
end
|
|
130
|
+
clg_coil.setCoolingPowerConsumptionCurve(cooling_power_consumption_curve)
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
# part load fraction correlation curve added as a required curve in OS v3.7.0
|
|
134
|
+
if model.version > OpenStudio::VersionString.new('3.6.1')
|
|
135
|
+
if model.getCurveByName('Water to Air Heat Pump Part Load Fraction Correlation Curve').is_initialized
|
|
136
|
+
part_load_correlation_curve = model.getCurveByName('Water to Air Heat Pump Part Load Fraction Correlation Curve').get
|
|
137
|
+
part_load_correlation_curve = part_load_correlation_curve.to_CurveLinear.get
|
|
138
|
+
else
|
|
139
|
+
part_load_correlation_curve = OpenStudio::Model::CurveLinear.new(model)
|
|
140
|
+
part_load_correlation_curve.setName('Water to Air Heat Pump Part Load Fraction Correlation Curve')
|
|
141
|
+
part_load_correlation_curve.setCoefficient1Constant(0.833746458696111)
|
|
142
|
+
part_load_correlation_curve.setCoefficient2x(0.166253541303889)
|
|
143
|
+
part_load_correlation_curve.setMinimumValueofx(0)
|
|
144
|
+
part_load_correlation_curve.setMaximumValueofx(1)
|
|
145
|
+
part_load_correlation_curve.setMinimumCurveOutput(0)
|
|
146
|
+
part_load_correlation_curve.setMaximumCurveOutput(1)
|
|
147
|
+
end
|
|
148
|
+
clg_coil.setPartLoadFractionCorrelationCurve(part_load_correlation_curve)
|
|
81
149
|
end
|
|
82
150
|
end
|
|
83
151
|
|
data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingDXSingleSpeed.rb
CHANGED
|
@@ -200,7 +200,7 @@ class Standard
|
|
|
200
200
|
# sets defrost curve limits
|
|
201
201
|
#
|
|
202
202
|
# @param htg_coil [OpenStudio::Model::CoilHeatingDXSingleSpeed] a DX heating coil
|
|
203
|
-
# @return [
|
|
203
|
+
# @return [Boolean] returns true if successful, false if not
|
|
204
204
|
def coil_heating_dx_single_speed_apply_defrost_eir_curve_limits(htg_coil)
|
|
205
205
|
return false unless htg_coil.defrostEnergyInputRatioFunctionofTemperatureCurve.is_initialized
|
|
206
206
|
|
|
@@ -61,7 +61,7 @@ class Standard
|
|
|
61
61
|
# Defaults to making no changes.
|
|
62
62
|
#
|
|
63
63
|
# @param coil_heating_gas [OpenStudio::Model::CoilHeatingGas] a gas heating coil
|
|
64
|
-
# @return [
|
|
64
|
+
# @return [Boolean] returns true if successful, false if not
|
|
65
65
|
def coil_heating_gas_apply_prototype_efficiency(coil_heating_gas)
|
|
66
66
|
# do nothing
|
|
67
67
|
return true
|
|
@@ -56,16 +56,67 @@ class Standard
|
|
|
56
56
|
htg_coil.setHeatingPowerConsumptionCoefficient4(-0.177653510577989)
|
|
57
57
|
htg_coil.setHeatingPowerConsumptionCoefficient5(-0.103079864171839)
|
|
58
58
|
else
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
59
|
+
if model.getCurveByName('Water to Air Heat Pump Heating Capacity Curve').is_initialized
|
|
60
|
+
heating_capacity_curve = model.getCurveByName('Water to Air Heat Pump Heating Capacity Curve').get
|
|
61
|
+
heating_capacity_curve = heating_capacity_curve.to_CurveQuadLinear.get
|
|
62
|
+
else
|
|
63
|
+
heating_capacity_curve = OpenStudio::Model::CurveQuadLinear.new(model)
|
|
64
|
+
heating_capacity_curve.setName('Water to Air Heat Pump Heating Capacity Curve')
|
|
65
|
+
heating_capacity_curve.setCoefficient1Constant(0.237847462869254)
|
|
66
|
+
heating_capacity_curve.setCoefficient2w(-3.35823796081626)
|
|
67
|
+
heating_capacity_curve.setCoefficient3x(3.80640467406376)
|
|
68
|
+
heating_capacity_curve.setCoefficient4y(0.179200417311554)
|
|
69
|
+
heating_capacity_curve.setCoefficient5z(0.12860719846082)
|
|
70
|
+
heating_capacity_curve.setMinimumValueofw(-100)
|
|
71
|
+
heating_capacity_curve.setMaximumValueofw(100)
|
|
72
|
+
heating_capacity_curve.setMinimumValueofx(-100)
|
|
73
|
+
heating_capacity_curve.setMaximumValueofx(100)
|
|
74
|
+
heating_capacity_curve.setMinimumValueofy(0)
|
|
75
|
+
heating_capacity_curve.setMaximumValueofy(100)
|
|
76
|
+
heating_capacity_curve.setMinimumValueofz(0)
|
|
77
|
+
heating_capacity_curve.setMaximumValueofz(100)
|
|
78
|
+
end
|
|
79
|
+
htg_coil.setHeatingCapacityCurve(heating_capacity_curve)
|
|
80
|
+
|
|
81
|
+
if model.getCurveByName('Water to Air Heat Pump Heating Power Consumption Curve').is_initialized
|
|
82
|
+
heating_power_consumption_curve = model.getCurveByName('Water to Air Heat Pump Heating Power Consumption Curve').get
|
|
83
|
+
heating_power_consumption_curve = heating_power_consumption_curve.to_CurveQuadLinear.get
|
|
84
|
+
else
|
|
85
|
+
heating_power_consumption_curve = OpenStudio::Model::CurveQuadLinear.new(model)
|
|
86
|
+
heating_power_consumption_curve.setName('Water to Air Heat Pump Heating Power Consumption Curve')
|
|
87
|
+
heating_power_consumption_curve.setCoefficient1Constant(-3.79175529243238)
|
|
88
|
+
heating_power_consumption_curve.setCoefficient2w(3.38799239505527)
|
|
89
|
+
heating_power_consumption_curve.setCoefficient3x(1.5022612076303)
|
|
90
|
+
heating_power_consumption_curve.setCoefficient4y(-0.177653510577989)
|
|
91
|
+
heating_power_consumption_curve.setCoefficient5z(-0.103079864171839)
|
|
92
|
+
heating_power_consumption_curve.setMinimumValueofw(-100)
|
|
93
|
+
heating_power_consumption_curve.setMaximumValueofw(100)
|
|
94
|
+
heating_power_consumption_curve.setMinimumValueofx(-100)
|
|
95
|
+
heating_power_consumption_curve.setMaximumValueofx(100)
|
|
96
|
+
heating_power_consumption_curve.setMinimumValueofy(0)
|
|
97
|
+
heating_power_consumption_curve.setMaximumValueofy(100)
|
|
98
|
+
heating_power_consumption_curve.setMinimumValueofz(0)
|
|
99
|
+
heating_power_consumption_curve.setMaximumValueofz(100)
|
|
100
|
+
end
|
|
101
|
+
htg_coil.setHeatingPowerConsumptionCurve(heating_power_consumption_curve)
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
# part load fraction correlation curve added as a required curve in OS v3.7.0
|
|
105
|
+
if model.version > OpenStudio::VersionString.new('3.6.1')
|
|
106
|
+
if model.getCurveByName('Water to Air Heat Pump Part Load Fraction Correlation Curve').is_initialized
|
|
107
|
+
part_load_correlation_curve = model.getCurveByName('Water to Air Heat Pump Part Load Fraction Correlation Curve').get
|
|
108
|
+
part_load_correlation_curve = part_load_correlation_curve.to_CurveLinear.get
|
|
109
|
+
else
|
|
110
|
+
part_load_correlation_curve = OpenStudio::Model::CurveLinear.new(model)
|
|
111
|
+
part_load_correlation_curve.setName('Water to Air Heat Pump Part Load Fraction Correlation Curve')
|
|
112
|
+
part_load_correlation_curve.setCoefficient1Constant(0.833746458696111)
|
|
113
|
+
part_load_correlation_curve.setCoefficient2x(0.166253541303889)
|
|
114
|
+
part_load_correlation_curve.setMinimumValueofx(0)
|
|
115
|
+
part_load_correlation_curve.setMaximumValueofx(1)
|
|
116
|
+
part_load_correlation_curve.setMinimumCurveOutput(0)
|
|
117
|
+
part_load_correlation_curve.setMaximumCurveOutput(1)
|
|
118
|
+
end
|
|
119
|
+
htg_coil.setPartLoadFractionCorrelationCurve(part_load_correlation_curve)
|
|
69
120
|
end
|
|
70
121
|
end
|
|
71
122
|
|
|
@@ -4,7 +4,7 @@ class Standard
|
|
|
4
4
|
# Sets the convergence tolerance to 0.0001 deltaC for all hot water coils.
|
|
5
5
|
#
|
|
6
6
|
# @param controller_water_coil [OpenStudio::Model::ControllerWaterCoil] controller water coil object
|
|
7
|
-
# @return [
|
|
7
|
+
# @return [Boolean] returns true if successful, false if not
|
|
8
8
|
# @todo Figure out what the reason for this is, because it seems like a workaround for an E+ bug that was probably addressed long ago.
|
|
9
9
|
def controller_water_coil_set_convergence_limits(controller_water_coil)
|
|
10
10
|
controller_action = controller_water_coil.action
|
|
@@ -5,7 +5,7 @@ class Standard
|
|
|
5
5
|
#
|
|
6
6
|
# @param condenser_loop [<OpenStudio::Model::PlantLoop>] a condenser loop served by a cooling tower
|
|
7
7
|
# @param design_wet_bulb_c [Double] the outdoor design wetbulb conditions in degrees Celsius
|
|
8
|
-
# @return [
|
|
8
|
+
# @return [Boolean] returns true if successful, false if not
|
|
9
9
|
def prototype_apply_condenser_water_temperatures(condenser_loop,
|
|
10
10
|
design_wet_bulb_c: nil)
|
|
11
11
|
sizing_plant = condenser_loop.sizingPlant
|
|
@@ -9,7 +9,7 @@ module PrototypeFan
|
|
|
9
9
|
#
|
|
10
10
|
# @param fan [OpenStudio::Model::StraightComponent] fan object of type:
|
|
11
11
|
# FanConstantVolume, FanOnOff, FanVariableVolume, and FanZoneExhaust
|
|
12
|
-
# @return [
|
|
12
|
+
# @return [Boolean] returns true if successful, false if not
|
|
13
13
|
def prototype_fan_apply_prototype_fan_efficiency(fan)
|
|
14
14
|
# Do not modify dummy exhaust fans
|
|
15
15
|
return true unless !fan.name.to_s.downcase.include? 'dummy'
|
|
@@ -7,7 +7,7 @@ class Standard
|
|
|
7
7
|
# and whether the fan lives inside a unit heater, PTAC, etc.
|
|
8
8
|
#
|
|
9
9
|
# @param fan_constant_volume [OpenStudio::Model::FanConstantVolume] constant volume fan object
|
|
10
|
-
# @return [
|
|
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
12
|
# Don't modify unit heater fans
|
|
13
13
|
return true if fan_constant_volume.name.to_s.include?('UnitHeater Fan')
|
|
@@ -8,7 +8,7 @@ class Standard
|
|
|
8
8
|
# and whether the fan lives inside a unit heater, PTAC, etc.
|
|
9
9
|
#
|
|
10
10
|
# @param fan_on_off [OpenStudio::Model::FanOnOff] on off fan object
|
|
11
|
-
# @return [
|
|
11
|
+
# @return [Boolean] returns true if successful, false if not
|
|
12
12
|
def fan_on_off_apply_prototype_fan_pressure_rise(fan_on_off)
|
|
13
13
|
# Get the max flow rate from the fan.
|
|
14
14
|
maximum_flow_rate_m3_per_s = nil
|
|
@@ -8,7 +8,7 @@ class Standard
|
|
|
8
8
|
# and whether the fan lives inside a unit heater, PTAC, etc.
|
|
9
9
|
#
|
|
10
10
|
# @param fan_variable_volume [OpenStudio::Model::FanVariableVolume] variable volume fan object
|
|
11
|
-
# @return [
|
|
11
|
+
# @return [Boolean] returns true if successful, false if not
|
|
12
12
|
def fan_variable_volume_apply_prototype_fan_pressure_rise(fan_variable_volume)
|
|
13
13
|
# Get the max flow rate from the fan.
|
|
14
14
|
maximum_flow_rate_m3_per_s = nil
|
|
@@ -6,7 +6,7 @@ class Standard
|
|
|
6
6
|
# Sets the fan pressure rise based on the Prototype buildings inputs
|
|
7
7
|
#
|
|
8
8
|
# @param fan_zone_exhaust [OpenStudio::Model::FanZoneExhaust] the exhaust fan
|
|
9
|
-
# @return [
|
|
9
|
+
# @return [Boolean] returns true if successful, false if not
|
|
10
10
|
def fan_zone_exhaust_apply_prototype_fan_pressure_rise(fan_zone_exhaust)
|
|
11
11
|
# Do not modify dummy exhaust fans
|
|
12
12
|
return true if fan_zone_exhaust.name.to_s.downcase.include? 'dummy'
|
|
@@ -11,7 +11,7 @@ class Standard
|
|
|
11
11
|
|
|
12
12
|
# Sets the motor power to account for the extra fan energy from the increase in fan total static pressure
|
|
13
13
|
#
|
|
14
|
-
# @return [
|
|
14
|
+
# @return [Boolean] returns true if successful, false if not
|
|
15
15
|
def heat_exchanger_air_to_air_sensible_and_latent_apply_prototype_nominal_electric_power(heat_exchanger_air_to_air_sensible_and_latent)
|
|
16
16
|
# Get the nominal supply air flow rate
|
|
17
17
|
supply_air_flow_m3_per_s = nil
|
|
@@ -77,7 +77,7 @@ class Standard
|
|
|
77
77
|
# which assume that an enthalpy wheel is used, which exceeds the 50% effectiveness minimum actually defined by 90.1.
|
|
78
78
|
#
|
|
79
79
|
# @param heat_exchanger_air_to_air_sensible_and_latent [OpenStudio::Model::HeatExchangerAirToAirSensibleAndLatent] hx
|
|
80
|
-
# @return [
|
|
80
|
+
# @return [Boolean] returns true if successful, false if not
|
|
81
81
|
def heat_exchanger_air_to_air_sensible_and_latent_apply_prototype_efficiency(heat_exchanger_air_to_air_sensible_and_latent)
|
|
82
82
|
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat100HeatingAirFlow(0.7)
|
|
83
83
|
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat100HeatingAirFlow(0.6)
|
|
@@ -4,8 +4,8 @@ class Standard
|
|
|
4
4
|
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
|
5
5
|
# @param exterior_lighting_zone_number [Integer] exterior lighting zone number, 0-4
|
|
6
6
|
# @param onsite_parking_fraction [Double] onsite parking fraction, 0-1
|
|
7
|
-
# @param add_base_site_allowance [
|
|
8
|
-
# @param use_model_for_entries_and_canopies [
|
|
7
|
+
# @param add_base_site_allowance [Boolean] whether to include the base site allowance
|
|
8
|
+
# @param use_model_for_entries_and_canopies [Boolean] use building geometry for number of entries and canopy size
|
|
9
9
|
# @return [Hash] a hash of OpenStudio::Model::ExteriorLights objects
|
|
10
10
|
# @todo would be nice to add argument for some building types (SmallHotel, MidriseApartment, PrimarySchool, SecondarySchool, RetailStripmall) if it has interior or exterior circulation.
|
|
11
11
|
def model_add_typical_exterior_lights(model, exterior_lighting_zone_number, onsite_parking_fraction = 1.0, add_base_site_allowance = false, use_model_for_entries_and_canopies = false)
|
|
@@ -286,8 +286,8 @@ class Standard
|
|
|
286
286
|
#
|
|
287
287
|
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
|
288
288
|
# @param space_type_hash [Hash] hash of space types
|
|
289
|
-
# @param use_model_for_entries_and_canopies [
|
|
290
|
-
# @return [
|
|
289
|
+
# @param use_model_for_entries_and_canopies [Boolean] use building geometry for number of entries and canopy size
|
|
290
|
+
# @return [Hhash] hash of exterior lighting value types and building type and model specific values
|
|
291
291
|
# @todo add code in to determine number of entries and canopy area from model geoemtry
|
|
292
292
|
# @todo come up with better logic for entry widths
|
|
293
293
|
def model_create_exterior_lighting_area_length_count_hash(model, space_type_hash, use_model_for_entries_and_canopies)
|
|
@@ -5,7 +5,7 @@ class Standard
|
|
|
5
5
|
# @param building_type [String] the building type
|
|
6
6
|
# @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
|
|
7
7
|
# @param prototype_input [Hash] hash of prototype inputs
|
|
8
|
-
# @return [
|
|
8
|
+
# @return [Boolean] returns true if successful, false if not
|
|
9
9
|
def model_add_hvac(model, building_type, climate_zone, prototype_input)
|
|
10
10
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Started Adding HVAC')
|
|
11
11
|
|
|
@@ -449,7 +449,7 @@ class Standard
|
|
|
449
449
|
|
|
450
450
|
when 'Fan Coil'
|
|
451
451
|
case system['heating_type']
|
|
452
|
-
when 'Gas', 'DistrictHeating', 'Electricity'
|
|
452
|
+
when 'Gas', 'DistrictHeating', 'DistrictHeatingWater', 'DistrictHeatingSteam', 'Electricity'
|
|
453
453
|
hot_water_loop = model_get_or_add_hot_water_loop(model, system['heating_type'])
|
|
454
454
|
when nil
|
|
455
455
|
hot_water_loop = nil
|
|
@@ -468,7 +468,7 @@ class Standard
|
|
|
468
468
|
|
|
469
469
|
when 'Baseboards'
|
|
470
470
|
case system['heating_type']
|
|
471
|
-
when 'Gas', 'DistrictHeating'
|
|
471
|
+
when 'Gas', 'DistrictHeating', 'DistrictHeatingWater', 'DistrictHeatingSteam'
|
|
472
472
|
hot_water_loop = model_get_or_add_hot_water_loop(model, system['heating_type'])
|
|
473
473
|
when 'Electricity'
|
|
474
474
|
hot_water_loop = nil
|
|
@@ -498,7 +498,7 @@ class Standard
|
|
|
498
498
|
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
|
499
499
|
# @param area_type [String] Valid choices are residential and nonresidential
|
|
500
500
|
# @param delivery_type [String] Conditioning delivery type. Valid choices are air and hydronic
|
|
501
|
-
# @param heating_source [String] Valid choices are Electricity, NaturalGas, DistrictHeating, DistrictAmbient
|
|
501
|
+
# @param heating_source [String] Valid choices are Electricity, NaturalGas, DistrictHeating, DistrictHeatingWater, DistrictHeatingSteam, DistrictAmbient
|
|
502
502
|
# @param cooling_source [String] Valid choices are Electricity, DistrictCooling, DistrictAmbient
|
|
503
503
|
# @param area_m2 [Double] Area in m^2
|
|
504
504
|
# @param num_stories [Integer] Number of stories
|
|
@@ -44,6 +44,12 @@ Standard.class_eval do
|
|
|
44
44
|
model_create_thermal_zones(model, @space_multiplier_map)
|
|
45
45
|
model_add_design_days_and_weather_file(model, climate_zone, epw_file)
|
|
46
46
|
model_add_hvac(model, @instvarbuilding_type, climate_zone, @prototype_input)
|
|
47
|
+
model.getAirLoopHVACs.each do |air_loop|
|
|
48
|
+
next unless air_loop_hvac_multizone_vav_system?(air_loop)
|
|
49
|
+
|
|
50
|
+
model_system_outdoor_air_sizing_vrp_method(air_loop)
|
|
51
|
+
air_loop_hvac_apply_vav_damper_action(air_loop)
|
|
52
|
+
end
|
|
47
53
|
model_add_constructions(model, @instvarbuilding_type, climate_zone)
|
|
48
54
|
model_fenestration_orientation(model, climate_zone)
|
|
49
55
|
model_custom_hvac_tweaks(model, building_type, climate_zone, @prototype_input)
|
|
@@ -131,7 +137,7 @@ Standard.class_eval do
|
|
|
131
137
|
#
|
|
132
138
|
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
|
133
139
|
# @param rel_path_to_osm [String] the path to an .osm file, relative to this file
|
|
134
|
-
# @return [
|
|
140
|
+
# @return [Boolean] returns true if successful, false if not
|
|
135
141
|
def model_replace_model_from_osm(model, rel_path_to_osm)
|
|
136
142
|
# Take the existing model and remove all the objects
|
|
137
143
|
# (this is cheesy), but need to keep the same memory block
|
|
@@ -238,7 +244,7 @@ Standard.class_eval do
|
|
|
238
244
|
# Some loads are governed by the standard, others are typical values
|
|
239
245
|
# pulled from sources such as the DOE Reference and DOE Prototype Buildings.
|
|
240
246
|
#
|
|
241
|
-
# @return [
|
|
247
|
+
# @return [Boolean] returns true if successful, false if not
|
|
242
248
|
def model_add_loads(model)
|
|
243
249
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Started applying space types (loads)')
|
|
244
250
|
|
|
@@ -352,7 +358,7 @@ Standard.class_eval do
|
|
|
352
358
|
# @param model[OpenStudio::Model::Model] OpenStudio Model
|
|
353
359
|
# @param building_type [String] the building type
|
|
354
360
|
# @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
|
|
355
|
-
# @return [
|
|
361
|
+
# @return [Boolean] returns true if successful, false if not
|
|
356
362
|
def model_add_constructions(model, building_type, climate_zone)
|
|
357
363
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Started applying constructions')
|
|
358
364
|
is_residential = 'No' # default is nonresidential for building level
|
|
@@ -537,8 +543,8 @@ Standard.class_eval do
|
|
|
537
543
|
# CFactorUndergroundWallConstruction and require some additional parameters when compared to Construction
|
|
538
544
|
#
|
|
539
545
|
# @param model[OpenStudio::Model::Model] OpenStudio Model
|
|
540
|
-
# @param climate_zone [
|
|
541
|
-
# @param building_type [
|
|
546
|
+
# @param climate_zone [String climate zone as described for prototype models. C-Factor is based on this parameter
|
|
547
|
+
# @param building_type [String the building type
|
|
542
548
|
# @return [void]
|
|
543
549
|
def model_set_below_grade_wall_constructions(model, building_type, climate_zone)
|
|
544
550
|
# Find ground contact wall building category
|
|
@@ -615,8 +621,8 @@ Standard.class_eval do
|
|
|
615
621
|
# calculated. Used for F-Factor floors that require additional parameters.
|
|
616
622
|
#
|
|
617
623
|
# @param model [OpenStudio Model] OpenStudio model being modified
|
|
618
|
-
# @param building_type [
|
|
619
|
-
# @param climate_zone [
|
|
624
|
+
# @param building_type [String the building type
|
|
625
|
+
# @param climate_zone [String climate zone as described for prototype models. F-Factor is based on this parameter
|
|
620
626
|
def model_set_floor_constructions(model, building_type, climate_zone)
|
|
621
627
|
# Find ground contact wall building category
|
|
622
628
|
construction_set_data = model_get_construction_set(building_type)
|
|
@@ -744,7 +750,8 @@ Standard.class_eval do
|
|
|
744
750
|
|
|
745
751
|
# If the edge is parallel with the floor and in the same x-y plane as the floor, assume an intersection the
|
|
746
752
|
# length of the wall edge
|
|
747
|
-
|
|
753
|
+
intersect_vector = wall_edge_p1 - wall_edge_p2
|
|
754
|
+
edge_vector = OpenStudio::Vector3d.new(intersect_vector.x, intersect_vector.y, intersect_vector.z)
|
|
748
755
|
return(edge_vector.length)
|
|
749
756
|
end
|
|
750
757
|
|
|
@@ -782,7 +789,7 @@ Standard.class_eval do
|
|
|
782
789
|
#
|
|
783
790
|
# @param model[OpenStudio::Model::Model] OpenStudio Model
|
|
784
791
|
# @param building_type [String] the building type
|
|
785
|
-
# @return [
|
|
792
|
+
# @return [Boolean] returns true if successful, false if not
|
|
786
793
|
def model_add_internal_mass(model, building_type)
|
|
787
794
|
# Assign a material to all internal mass objects
|
|
788
795
|
material = OpenStudio::Model::StandardOpaqueMaterial.new(model)
|
|
@@ -841,7 +848,7 @@ Standard.class_eval do
|
|
|
841
848
|
# e.g. (Prototype.secondary_school.rb) file.
|
|
842
849
|
#
|
|
843
850
|
# @param (see #add_constructions)
|
|
844
|
-
# @return [
|
|
851
|
+
# @return [Boolean] returns true if successful, false if not
|
|
845
852
|
def model_create_thermal_zones(model, space_multiplier_map = nil)
|
|
846
853
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Started creating thermal zones')
|
|
847
854
|
|
|
@@ -1443,7 +1450,7 @@ Standard.class_eval do
|
|
|
1443
1450
|
# the PNNL documentation.
|
|
1444
1451
|
#
|
|
1445
1452
|
# @param (see #add_constructions)
|
|
1446
|
-
# @return [
|
|
1453
|
+
# @return [Boolean] returns true if successful, false if not
|
|
1447
1454
|
# @todo genericize and move this method to Standards.Space
|
|
1448
1455
|
def model_add_occupancy_sensors(model, building_type, climate_zone)
|
|
1449
1456
|
# Only add occupancy sensors for 90.1-2010
|
|
@@ -1547,7 +1554,7 @@ Standard.class_eval do
|
|
|
1547
1554
|
# in OpenStudio_Standards_prototype_inputs
|
|
1548
1555
|
#
|
|
1549
1556
|
# @param (see #add_constructions)
|
|
1550
|
-
# @return [
|
|
1557
|
+
# @return [Boolean] returns true if successful, false if not
|
|
1551
1558
|
# @todo translate w/linear foot of facade, door, parking, etc
|
|
1552
1559
|
# into lookup table and implement that way instead of hard-coding as
|
|
1553
1560
|
# inputs in the spreadsheet.
|
|
@@ -1622,7 +1629,7 @@ Standard.class_eval do
|
|
|
1622
1629
|
# Changes the infiltration coefficients for the prototype vintages.
|
|
1623
1630
|
#
|
|
1624
1631
|
# @param (see #add_constructions)
|
|
1625
|
-
# @return [
|
|
1632
|
+
# @return [Boolean] returns true if successful, false if not
|
|
1626
1633
|
# @todo Consistency - make prototype and reference vintages consistent
|
|
1627
1634
|
def model_modify_infiltration_coefficients(model, building_type, climate_zone)
|
|
1628
1635
|
# Select the terrain type, which
|
|
@@ -1667,7 +1674,7 @@ Standard.class_eval do
|
|
|
1667
1674
|
# Sets the inside and outside convection algorithms for different vintages
|
|
1668
1675
|
#
|
|
1669
1676
|
# @param (see #add_constructions)
|
|
1670
|
-
# @return [
|
|
1677
|
+
# @return [Boolean] returns true if successful, false if not
|
|
1671
1678
|
# @todo Consistency - make prototype and reference vintages consistent
|
|
1672
1679
|
def model_modify_surface_convection_algorithm(model)
|
|
1673
1680
|
inside = model.getInsideSurfaceConvectionAlgorithm
|
|
@@ -1715,7 +1722,7 @@ Standard.class_eval do
|
|
|
1715
1722
|
# Changes the infiltration coefficients for the prototype vintages.
|
|
1716
1723
|
#
|
|
1717
1724
|
# @param (see #add_constructions)
|
|
1718
|
-
# @return [
|
|
1725
|
+
# @return [Boolean] returns true if successful, false if not
|
|
1719
1726
|
# @todo Consistency - make sizing factors consistent
|
|
1720
1727
|
# between building types, climate zones, and vintages?
|
|
1721
1728
|
def model_apply_sizing_parameters(model, building_type)
|
|
@@ -1792,7 +1799,7 @@ Standard.class_eval do
|
|
|
1792
1799
|
# Applies the Prototype Building assumptions that contradict/supersede
|
|
1793
1800
|
# the given standard.
|
|
1794
1801
|
#
|
|
1795
|
-
# @param model [OpenStudio::Model::Model]
|
|
1802
|
+
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
|
1796
1803
|
def model_apply_prototype_hvac_efficiency_adjustments(model)
|
|
1797
1804
|
building_data = model_get_building_properties(model)
|
|
1798
1805
|
building_type = building_data['building_type']
|
|
@@ -2474,9 +2481,15 @@ Standard.class_eval do
|
|
|
2474
2481
|
# end reduce schedule
|
|
2475
2482
|
|
|
2476
2483
|
# Determine the prototypical economizer type for the model.
|
|
2477
|
-
# Defaults to
|
|
2484
|
+
# Defaults to FixedDryBulb based on anecdotal evidence of this being
|
|
2485
|
+
# the most common type encountered in the field, combined
|
|
2486
|
+
# with this being the default option for many equipment manufacturers,
|
|
2487
|
+
# and being the strategy recommended in the 2010 ASHRAE journal article
|
|
2488
|
+
# "Economizer High Limit Devices and Why Enthalpy Economizers Don't Work"
|
|
2489
|
+
# by Steven Taylor and Hwakong Cheng.
|
|
2490
|
+
# https://tayloreng.egnyte.com/dl/mN0c9t4WSO/ASHRAE_Journal_-_Economizer_High_Limit_Devices_and_Why_Enthalpy_Economizers_Dont_Work.pdf_
|
|
2478
2491
|
#
|
|
2479
|
-
# @param model [OpenStudio::Model::Model]
|
|
2492
|
+
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
|
2480
2493
|
# @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
|
|
2481
2494
|
# @return [String] the economizer type. Possible values are:
|
|
2482
2495
|
# 'NoEconomizer'
|
|
@@ -2488,7 +2501,7 @@ Standard.class_eval do
|
|
|
2488
2501
|
# 'ElectronicEnthalpy'
|
|
2489
2502
|
# 'DifferentialDryBulbAndEnthalpy'
|
|
2490
2503
|
def model_economizer_type(model, climate_zone)
|
|
2491
|
-
economizer_type = '
|
|
2504
|
+
economizer_type = 'FixedDryBulb'
|
|
2492
2505
|
return economizer_type
|
|
2493
2506
|
end
|
|
2494
2507
|
|
|
@@ -2582,7 +2595,7 @@ Standard.class_eval do
|
|
|
2582
2595
|
# @author Xuechen (Jerry) Lei, PNNL
|
|
2583
2596
|
#
|
|
2584
2597
|
# @param model [OpenStudio::Model::Model] OpenStudio Model
|
|
2585
|
-
# @return [
|
|
2598
|
+
# @return [Boolean] returns true if successful, false if not
|
|
2586
2599
|
def model_add_lights_shutoff(model)
|
|
2587
2600
|
return false
|
|
2588
2601
|
end
|
|
@@ -2600,7 +2613,7 @@ Standard.class_eval do
|
|
|
2600
2613
|
# Metal coiling door code minimum infiltration rate at 75 Pa
|
|
2601
2614
|
#
|
|
2602
2615
|
# @param [String] Climate zone
|
|
2603
|
-
# @return [
|
|
2616
|
+
# @return [Double] Minimum infiltration rate for metal coiling doors
|
|
2604
2617
|
def model_door_infil_flow_rate_metal_coiling_cfm_ft2(climate_zone)
|
|
2605
2618
|
case climate_zone
|
|
2606
2619
|
when 'ASHRAE 169-2006-7A',
|
|
@@ -2616,7 +2629,7 @@ Standard.class_eval do
|
|
|
2616
2629
|
# Metal rollup door code minimum infiltration rate at 75 Pa
|
|
2617
2630
|
#
|
|
2618
2631
|
# @param [String] Climate zone
|
|
2619
|
-
# @return [
|
|
2632
|
+
# @return [Double] Minimum infiltration rate for metal coiling doors
|
|
2620
2633
|
def model_door_infil_flow_rate_rollup_cfm_ft2(climate_zone)
|
|
2621
2634
|
return 0.4
|
|
2622
2635
|
end
|
|
@@ -2624,7 +2637,7 @@ Standard.class_eval do
|
|
|
2624
2637
|
# Open door infiltration rate at 75 Pa
|
|
2625
2638
|
#
|
|
2626
2639
|
# @param [String] Climate zone
|
|
2627
|
-
# @return [
|
|
2640
|
+
# @return [Double] Open door infiltration rate
|
|
2628
2641
|
def model_door_infil_flow_rate_open_cfm_ft2(climate_zone)
|
|
2629
2642
|
return 9.7875
|
|
2630
2643
|
end
|
|
@@ -2811,7 +2824,7 @@ Standard.class_eval do
|
|
|
2811
2824
|
# Add transfer to prototype for spaces that require it
|
|
2812
2825
|
#
|
|
2813
2826
|
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
|
2814
|
-
# @return [Boolean] true if successful, false
|
|
2827
|
+
# @return [Boolean] returns true if successful, false if not
|
|
2815
2828
|
def model_add_transfer_air(model)
|
|
2816
2829
|
# Do not add transfer air if not required
|
|
2817
2830
|
return true unless model_transfer_air_required?(model)
|
|
@@ -2872,8 +2885,8 @@ Standard.class_eval do
|
|
|
2872
2885
|
# required to setup/back their thermostat setpoints
|
|
2873
2886
|
#
|
|
2874
2887
|
# @param time_offset_hash [Hash] Hash providing time (key) and schedule value offset (values)
|
|
2875
|
-
# @param schedule [OpenStudio::
|
|
2876
|
-
# @return [OpenStudio::
|
|
2888
|
+
# @param schedule [OpenStudio::Model::ScheduleRuleset] OpenStudio schedule object
|
|
2889
|
+
# @return [OpenStudio::Model::ScheduleRuleset] Modified OpenStudio schedule object
|
|
2877
2890
|
def model_offset_schedule_value(schedule, time_offset_hash)
|
|
2878
2891
|
offset_sch = schedule.clone(schedule.model).to_ScheduleRuleset.get
|
|
2879
2892
|
|
|
@@ -2912,8 +2925,8 @@ Standard.class_eval do
|
|
|
2912
2925
|
# required to setup/back their thermostat setpoints
|
|
2913
2926
|
#
|
|
2914
2927
|
# @param time_offset_hash [Hash] Hash providing time (key) and schedule value offset (values)
|
|
2915
|
-
# @param schedule [OpenStudio::
|
|
2916
|
-
# @return [OpenStudio::
|
|
2928
|
+
# @param schedule [OpenStudio::Model::ScheduleRuleset] OpenStudio schedule object
|
|
2929
|
+
# @return [OpenStudio::Model::ScheduleRuleset] Modified OpenStudio schedule object
|
|
2917
2930
|
def model_set_schedule_value(schedule, time_value_hash)
|
|
2918
2931
|
return nil unless schedule.to_ScheduleRuleset.is_initialized
|
|
2919
2932
|
|
|
@@ -2950,8 +2963,8 @@ Standard.class_eval do
|
|
|
2950
2963
|
|
|
2951
2964
|
# Modify thermostat schedule to account for a thermostat setback/up
|
|
2952
2965
|
#
|
|
2953
|
-
# @param thermostat [OpenStudio::
|
|
2954
|
-
# @return [Boolean] true if
|
|
2966
|
+
# @param thermostat [OpenStudio::Model::ThermostatSetpointDualSetpoint] OpenStudio ThermostatSetpointDualSetpoint object
|
|
2967
|
+
# @return [Boolean] returns true if successful, false if not
|
|
2955
2968
|
def space_occupancy_standby_mode(thermostat)
|
|
2956
2969
|
return false
|
|
2957
2970
|
end
|
|
@@ -4,7 +4,7 @@ class Standard
|
|
|
4
4
|
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
|
5
5
|
# @param building_type [String] building type
|
|
6
6
|
# @param prototype_input [Hash] hash of prototype inputs
|
|
7
|
-
# @return [
|
|
7
|
+
# @return [Boolean] returns true if successful, false if not
|
|
8
8
|
def model_add_swh(model, building_type, prototype_input)
|
|
9
9
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Started Adding Service Water Heating')
|
|
10
10
|
|