openstudio-standards 0.2.14 → 0.2.15.pre.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/data/geometry/ASHRAECollege.json +0 -19
- data/data/geometry/ASHRAEMidriseApartment.json +47 -47
- data/data/geometry/ASHRAESecondarySchool.osm +2 -2
- data/data/standards/OpenStudio_Standards-ashrae_90_1.xlsx +0 -0
- data/data/standards/export_OpenStudio_libraries.rb +1 -1
- data/data/standards/manage_OpenStudio_Standards.rb +43 -87
- data/data/standards/metadata_units_OpenStudio_Standards-ashrae_90_1.csv +9 -0
- data/data/standards/openstudio_standards_duplicates_log.csv +142 -27
- data/data/standards/test_performance_expected_dd_results.csv +2016 -2016
- data/data/weather/CAN_NU_Iqaluit.AP.719090_CWEC2016.ddy +2316 -0
- data/data/weather/CAN_NU_Iqaluit.AP.719090_CWEC2016.epw +8768 -0
- data/data/weather/CAN_NU_Iqaluit.AP.719090_CWEC2016.stat +697 -0
- data/lib/openstudio-standards/btap/WeatherData1.json +54 -0
- data/lib/openstudio-standards/btap/WeatherData1.xlsx +0 -0
- data/lib/openstudio-standards/btap/btap_result.rb +12 -10
- data/lib/openstudio-standards/btap/envelope.rb +2 -2
- data/lib/openstudio-standards/btap/geometry.rb +96 -49
- data/lib/openstudio-standards/{utilities → btap/utilities}/Add_template_field_to_json.rb +0 -0
- data/lib/openstudio-standards/{utilities → btap/utilities}/convert_surfaces_to_adiabatic_necb_8426.rb +0 -0
- data/lib/openstudio-standards/{utilities → btap/utilities}/generate_space_types.rb +0 -0
- data/lib/openstudio-standards/{utilities → btap/utilities}/necb_to_epw_map.rb +0 -0
- data/lib/openstudio-standards/{utilities → btap/utilities}/os_sim_extract.rb +0 -0
- data/lib/openstudio-standards/{utilities → btap/utilities}/rename_surfaces.rb +0 -0
- data/lib/openstudio-standards/{utilities → btap/utilities}/round_surf_coords.rb +0 -0
- data/lib/openstudio-standards/{utilities → btap/utilities}/sched_create.rb +0 -0
- data/lib/openstudio-standards/{utilities → btap/utilities}/set_mult_to_adiabatic.rb +0 -0
- data/lib/openstudio-standards/btap/utilities/space_type.rb +78 -0
- data/lib/openstudio-standards/{utilities → btap/utilities}/weatherData1_xlsx_to_json.rb +0 -0
- data/lib/openstudio-standards/hvac_sizing/Siz.AirConditionerVariableRefrigerantFlow.rb +1 -1
- data/lib/openstudio-standards/hvac_sizing/Siz.HVACComponent.rb +1 -1
- data/lib/openstudio-standards/hvac_sizing/Siz.HeatingCoolingFuels.rb +20 -6
- data/lib/openstudio-standards/hvac_sizing/Siz.Model.rb +6 -6
- data/lib/openstudio-standards/hvac_sizing/Siz.WaterHeaterMixed.rb +2 -2
- data/lib/openstudio-standards/hvac_sizing/Siz.ZoneHVACTerminalUnitVariableRefrigerantFlow.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.AirTerminalSingleDuctVAVReheat.rb +2 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PumpVariableSpeed.rb +6 -7
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.AirTerminalSingleDuctVAVReheat.rb +2 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.FanConstantVolume.rb +5 -4
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.FanOnOff.rb +5 -5
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.FanVariableVolume.rb +5 -4
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.PumpVariableSpeed.rb +6 -7
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +2 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.FanConstantVolume.rb +5 -4
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.FanOnOff.rb +5 -5
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.FanVariableVolume.rb +5 -4
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Model.elevators.rb +6 -4
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Model.rb +10 -9
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.PumpVariableSpeed.rb +9 -11
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +2 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.FanConstantVolume.rb +5 -4
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.FanOnOff.rb +5 -5
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.FanVariableVolume.rb +5 -4
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Model.elevators.rb +11 -7
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Model.rb +17 -16
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.PumpVariableSpeed.rb +9 -11
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.hvac_systems.rb +4 -2
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +2 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.FanConstantVolume.rb +5 -4
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.FanOnOff.rb +5 -5
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.FanVariableVolume.rb +5 -4
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.elevators.rb +11 -7
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.rb +23 -22
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.PumpVariableSpeed.rb +9 -10
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.hvac_systems.rb +4 -2
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +2 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.FanConstantVolume.rb +5 -4
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.FanOnOff.rb +5 -5
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.FanVariableVolume.rb +5 -4
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.elevators.rb +11 -7
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.rb +23 -22
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Pump.rb +89 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.PumpVariableSpeed.rb +9 -10
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Space.rb +76 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.hvac_systems.rb +22 -2
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.AirTerminalSingleDuctVAVReheat.rb +2 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.Model.elevators.rb +11 -11
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.refrigeration.rb +5 -4
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirTerminalSingleDuctVAVReheat.rb +2 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.CoilHeatingGas.rb +5 -4
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.elevators.rb +11 -11
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.refrigeration.rb +5 -4
- data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +2 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.FanConstantVolume.rb +5 -4
- data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.FanOnOff.rb +5 -5
- data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.FanVariableVolume.rb +5 -4
- data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.HeatExchangerAirToAirSensibleAndLatent.rb +2 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.Model.elevators.rb +11 -7
- data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.Model.rb +10 -10
- data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.hvac_systems.rb +4 -2
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +2 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.FanConstantVolume.rb +5 -4
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.FanOnOff.rb +5 -5
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.FanVariableVolume.rb +5 -4
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.HeatExchangerAirToAirSensibleAndLatent.rb +2 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Model.elevators.rb +11 -7
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Model.rb +10 -10
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.hvac_systems.rb +4 -2
- data/lib/openstudio-standards/prototypes/cbes/cbes.Model.elevators.rb +3 -6
- data/lib/openstudio-standards/prototypes/cbes/cbes.refrigeration.rb +5 -4
- data/lib/openstudio-standards/prototypes/cbes/cbes_t24_2008/cbes_t24_2008.FanConstantVolume.rb +5 -3
- data/lib/openstudio-standards/prototypes/cbes/cbes_t24_2008/cbes_t24_2008.FanOnOff.rb +5 -4
- data/lib/openstudio-standards/prototypes/cbes/cbes_t24_2008/cbes_t24_2008.FanVariableVolume.rb +5 -3
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.College.rb +65 -30
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Courthouse.rb +54 -23
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.FullServiceRestaurant.rb +135 -147
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.HighRiseApartment.rb +42 -7
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Hospital.rb +85 -12
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Laboratory.rb +42 -30
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeDataCenterHighITE.rb +39 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeDataCenterLowITE.rb +39 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeHotel.rb +60 -12
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOffice.rb +33 -265
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOfficeDetailed.rb +41 -3
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb +69 -297
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOfficeDetailed.rb +68 -25
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MidriseApartment.rb +88 -59
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Outpatient.rb +88 -9
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.PrimarySchool.rb +48 -10
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.QuickServiceRestaurant.rb +130 -145
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.RetailStandalone.rb +29 -101
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.RetailStripmall.rb +24 -7
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SecondarySchool.rb +48 -589
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallDataCenterHighITE.rb +38 -7
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallDataCenterLowITE.rb +38 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallHotel.rb +40 -7
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOffice.rb +85 -171
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOfficeDetailed.rb +87 -44
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SuperMarket.rb +46 -5
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SuperTallBuilding.rb +105 -17
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.TallBuilding.rb +97 -15
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Warehouse.rb +26 -167
- data/lib/openstudio-standards/prototypes/common/do_not_edit_metaclasses.rb +3828 -1131
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirConditionerVariableRefrigerantFlow.rb +3 -0
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirTerminalSingleDuctVAVReheat.rb +2 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.BoilerHotWater.rb +2 -0
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CentralAirSourceHeatPump.rb +2 -0
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXSingleSpeed.rb +4 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXTwoSpeed.rb +3 -0
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWater.rb +4 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWaterToAirHeatPumpEquationFit.rb +3 -0
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingDXSingleSpeed.rb +9 -0
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingElectric.rb +3 -0
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingGas.rb +9 -4
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWater.rb +4 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWaterToAirHeatPumpEquationFit.rb +3 -0
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.ControllerWaterCoil.rb +2 -2
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoolingTower.rb +4 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Fan.rb +23 -2
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanConstantVolume.rb +29 -4
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanOnOff.rb +29 -5
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanVariableVolume.rb +43 -4
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanZoneExhaust.rb +22 -0
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.HeatExchangerAirToAirSensibleAndLatent.rb +46 -3
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.elevators.rb +27 -22
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.exterior_lights.rb +15 -8
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.hvac.rb +22 -4
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +429 -59
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.swh.rb +18 -11
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.transformers.rb +11 -2
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Pump.rb +1 -0
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.PumpVariableSpeed.rb +8 -10
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.ServiceWaterHeating.rb +37 -28
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.SizingSystem.rb +24 -6
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +251 -65
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.radiant_system_controls.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.refrigeration.rb +46 -31
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.utilities.rb +62 -10
- data/lib/openstudio-standards/prototypes/common/prototype_metaprogramming.rb +76 -33
- data/lib/openstudio-standards/prototypes/deer/deer.Model.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +445 -275
- data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctParallelPIUReheat.rb +3 -3
- data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctVAVReheat.rb +26 -21
- data/lib/openstudio-standards/standards/Standards.BoilerHotWater.rb +5 -2
- data/lib/openstudio-standards/standards/Standards.BuildingStory.rb +7 -9
- data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +8 -2
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXMultiSpeed.rb +10 -6
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +5 -1
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +6 -1
- data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +45 -4
- data/lib/openstudio-standards/standards/Standards.CoilDX.rb +18 -8
- data/lib/openstudio-standards/standards/Standards.CoilHeatingDXMultiSpeed.rb +9 -7
- data/lib/openstudio-standards/standards/Standards.CoilHeatingDXSingleSpeed.rb +8 -4
- data/lib/openstudio-standards/standards/Standards.CoilHeatingGas.rb +86 -3
- data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +5 -2
- data/lib/openstudio-standards/standards/Standards.CoilHeatingWaterToAirHeatPumpEquationFit.rb +6 -2
- data/lib/openstudio-standards/standards/Standards.Construction.rb +66 -35
- data/lib/openstudio-standards/standards/Standards.CoolingTower.rb +7 -7
- data/lib/openstudio-standards/standards/Standards.CoolingTowerSingleSpeed.rb +2 -2
- data/lib/openstudio-standards/standards/Standards.CoolingTowerTwoSpeed.rb +2 -1
- data/lib/openstudio-standards/standards/Standards.CoolingTowerVariableSpeed.rb +2 -1
- data/lib/openstudio-standards/standards/Standards.Fan.rb +53 -35
- data/lib/openstudio-standards/standards/Standards.FanVariableVolume.rb +22 -16
- data/lib/openstudio-standards/standards/Standards.FluidCooler.rb +2 -2
- data/lib/openstudio-standards/standards/Standards.HeaderedPumpsVariableSpeed.rb +4 -4
- data/lib/openstudio-standards/standards/Standards.HeatExchangerSensLat.rb +77 -19
- data/lib/openstudio-standards/standards/Standards.Model.rb +387 -245
- data/lib/openstudio-standards/standards/Standards.PlanarSurface.rb +13 -15
- data/lib/openstudio-standards/standards/Standards.PlantLoop.rb +94 -48
- data/lib/openstudio-standards/standards/Standards.Pump.rb +28 -20
- data/lib/openstudio-standards/standards/Standards.PumpVariableSpeed.rb +3 -4
- data/lib/openstudio-standards/standards/Standards.ScheduleCompact.rb +2 -1
- data/lib/openstudio-standards/standards/Standards.ScheduleConstant.rb +2 -0
- data/lib/openstudio-standards/standards/Standards.ScheduleRuleset.rb +34 -24
- data/lib/openstudio-standards/standards/Standards.Space.rb +179 -116
- data/lib/openstudio-standards/standards/Standards.SpaceType.rb +23 -12
- data/lib/openstudio-standards/standards/Standards.SubSurface.rb +55 -25
- data/lib/openstudio-standards/standards/Standards.Surface.rb +57 -32
- data/lib/openstudio-standards/standards/Standards.ThermalZone.rb +157 -107
- data/lib/openstudio-standards/standards/Standards.WaterHeaterMixed.rb +9 -6
- data/lib/openstudio-standards/standards/Standards.ZoneHVACComponent.rb +52 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1.Standards.FanVariableVolume.rb +2 -2
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1.rb +4 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.AirLoopHVAC.rb +28 -18
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PlantLoop.rb +4 -2
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.rb +4 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/comstock_ashrae_90_1_2004.rb +4 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/ashrae_90_1.schedules.json +696 -2938
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/comstock_ashrae_90_1_2004.ext_ltg.json +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/comstock_ashrae_90_1_2004.spc_typ.json +123 -123
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.furnaces.json +26 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.prototype_inputs.json +11 -11
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_system.json +0 -8
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +395 -384
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.unitary_acs.json +69 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.AirLoopHVAC.rb +20 -13
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.Model.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.rb +4 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/comstock_ashrae_90_1_2007.rb +4 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/ashrae_90_1.schedules.json +696 -2938
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/comstock_ashrae_90_1_2007.ext_ltg.json +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/comstock_ashrae_90_1_2007.spc_typ.json +122 -122
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.furnaces.json +26 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.prototype_inputs.json +11 -11
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_system.json +0 -8
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +413 -401
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.unitary_acs.json +69 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirLoopHVAC.rb +42 -53
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +3 -2
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.CoolingTower.rb +5 -8
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Space.rb +6 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.rb +4 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/comstock_ashrae_90_1_2010.rb +4 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/ashrae_90_1.schedules.json +696 -2938
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/comstock_ashrae_90_1_2010.ext_ltg.json +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/comstock_ashrae_90_1_2010.spc_typ.json +129 -129
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.energy_recovery.json +210 -42
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.furnaces.json +26 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.prototype_inputs.json +11 -11
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_system.json +0 -8
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +460 -320
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.unitary_acs.json +69 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirLoopHVAC.rb +45 -51
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +3 -2
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.CoolingTower.rb +5 -8
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.CoolingTowerVariableSpeed.rb +2 -3
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.FanVariableVolume.rb +2 -2
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Space.rb +8 -5
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.ThermalZone.rb +2 -1
- 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 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.rb +4 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/comstock_ashrae_90_1_2013.rb +4 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/ashrae_90_1.schedules.json +696 -2938
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/comstock_ashrae_90_1_2013.ext_ltg.json +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/comstock_ashrae_90_1_2013.spc_typ.json +121 -121
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.energy_recovery.json +420 -84
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.furnaces.json +26 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.prototype_inputs.json +12 -12
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_system.json +0 -8
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +475 -335
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.unitary_acs.json +69 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirLoopHVAC.rb +40 -50
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +3 -2
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.CoolingTower.rb +5 -8
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.CoolingTowerVariableSpeed.rb +2 -3
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.FanVariableVolume.rb +2 -2
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Space.rb +8 -5
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.ThermalZone.rb +2 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.ZoneHVACComponent.rb +1 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.rb +4 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/comstock_ashrae_90_1_2016.rb +4 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/data/ashrae_90_1.schedules.json +696 -2938
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/data/comstock_ashrae_90_1_2016.ext_ltg.json +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/data/comstock_ashrae_90_1_2016.spc_typ.json +152 -128
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.energy_recovery.json +488 -84
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.furnaces.json +26 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.spc_typ.json +47 -47
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.unitary_acs.json +69 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirLoopHVAC.rb +342 -56
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +3 -2
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoolingTower.rb +5 -8
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoolingTowerVariableSpeed.rb +2 -3
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.FanVariableVolume.rb +2 -2
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Space.rb +25 -5
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.ThermalZone.rb +2 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.ZoneHVACComponent.rb +30 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.rb +4 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/comstock_ashrae_90_1_2019.rb +4 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/data/ashrae_90_1.schedules.json +696 -2938
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/data/comstock_ashrae_90_1_2019.ext_ltg.json +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/data/comstock_ashrae_90_1_2019.spc_typ.json +151 -127
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.boilers.json +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.energy_recovery.json +2307 -101
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.furnaces.json +26 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.refrigeration_compressors.json +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.spc_typ.json +47 -47
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.unitary_acs.json +69 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.curves.json +25 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.schedules.json +286 -224
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/comstock_doe_ref_1980_2004.rb +4 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/ashrae_90_1.schedules.json +696 -2938
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/comstock_doe_ref_1980_2004.ext_ltg.json +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/comstock_doe_ref_1980_2004.spc_typ.json +126 -126
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.furnaces.json +26 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.prototype_inputs.json +11 -11
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.refrigeration_system.json +0 -8
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.spc_typ.json +405 -393
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.AirLoopHVAC.rb +15 -11
- 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 +3 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.rb +4 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/comstock_doe_ref_pre_1980.rb +4 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/ashrae_90_1.schedules.json +696 -2938
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/comstock_doe_ref_pre_1980.spc_typ.json +121 -121
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.furnaces.json +37 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.prototype_inputs.json +11 -11
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.refrigeration_system.json +0 -8
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.spc_typ.json +403 -391
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirLoopHVAC.rb +15 -11
- 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 +3 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.rb +4 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.furnaces.json +15 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirLoopHVAC.rb +64 -42
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +3 -2
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.CoolingTower.rb +5 -8
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.CoolingTowerVariableSpeed.rb +2 -3
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.FanVariableVolume.rb +2 -2
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.HeatExchangerSensLat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.Model.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.PlantLoop.rb +4 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.Space.rb +5 -3
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.ZoneHVACComponent.rb +3 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.rb +4 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.furnaces.json +15 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirLoopHVAC.rb +61 -36
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +3 -2
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.CoolingTower.rb +5 -8
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.CoolingTowerVariableSpeed.rb +2 -3
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.FanVariableVolume.rb +2 -2
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.HeatExchangerSensLat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Model.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.PlantLoop.rb +4 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Space.rb +6 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.ZoneHVACComponent.rb +3 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.rb +4 -0
- data/lib/openstudio-standards/standards/cbes/cbes.AirLoopHVAC.rb +20 -14
- data/lib/openstudio-standards/standards/cbes/cbes.PlantLoop.rb +3 -0
- data/lib/openstudio-standards/standards/cbes/cbes.rb +4 -0
- data/lib/openstudio-standards/standards/cbes/cbes_pre_1978/cbes_pre_1978.rb +4 -0
- data/lib/openstudio-standards/standards/cbes/cbes_t24_1978/cbes_t24_1978.rb +4 -0
- data/lib/openstudio-standards/standards/cbes/cbes_t24_1992/cbes_t24_1992.rb +4 -0
- data/lib/openstudio-standards/standards/cbes/cbes_t24_2001/cbes_t24_2001.rb +4 -0
- data/lib/openstudio-standards/standards/cbes/cbes_t24_2005/cbes_t24_2005.rb +4 -0
- data/lib/openstudio-standards/standards/cbes/cbes_t24_2008/cbes_t24_2008.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer.AirLoopHVAC.rb +10 -5
- data/lib/openstudio-standards/standards/deer/deer.PlanarSurface.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_1985/comstock_deer_1985/comstock_deer_1985.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_1985/comstock_deer_1985/data/comstock_deer_1985.ext_ltg.json +2 -2
- data/lib/openstudio-standards/standards/deer/deer_1985/deer_1985.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_1996/comstock_deer_1996/comstock_deer_1996.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_1996/comstock_deer_1996/data/comstock_deer_1996.ext_ltg.json +2 -2
- data/lib/openstudio-standards/standards/deer/deer_1996/deer_1996.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2003/comstock_deer_2003/comstock_deer_2003.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2003/comstock_deer_2003/data/comstock_deer_2003.ext_ltg.json +2 -2
- data/lib/openstudio-standards/standards/deer/deer_2003/deer_2003.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2007/comstock_deer_2007/comstock_deer_2007.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2007/comstock_deer_2007/data/comstock_deer_2007.ext_ltg.json +2 -2
- data/lib/openstudio-standards/standards/deer/deer_2007/deer_2007.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2011/comstock_deer_2011/comstock_deer_2011.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2011/comstock_deer_2011/data/comstock_deer_2011.ext_ltg.json +2 -2
- data/lib/openstudio-standards/standards/deer/deer_2011/deer_2011.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2014/comstock_deer_2014/comstock_deer_2014.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2014/comstock_deer_2014/data/comstock_deer_2014.ext_ltg.json +2 -2
- data/lib/openstudio-standards/standards/deer/deer_2014/deer_2014.Space.rb +5 -3
- data/lib/openstudio-standards/standards/deer/deer_2014/deer_2014.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2015/comstock_deer_2015/comstock_deer_2015.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2015/comstock_deer_2015/data/comstock_deer_2015.ext_ltg.json +2 -2
- data/lib/openstudio-standards/standards/deer/deer_2015/deer_2015.Space.rb +5 -3
- data/lib/openstudio-standards/standards/deer/deer_2015/deer_2015.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2017/comstock_deer_2017/comstock_deer_2017.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2017/comstock_deer_2017/data/comstock_deer_2017.ext_ltg.json +2 -2
- data/lib/openstudio-standards/standards/deer/deer_2017/deer_2017.Space.rb +5 -3
- data/lib/openstudio-standards/standards/deer/deer_2017/deer_2017.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2020/comstock_deer_2020/comstock_deer_2020.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.AirLoopHVAC.rb +9 -5
- data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.FanVariableVolume.rb +3 -0
- data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.Space.rb +5 -3
- data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2025/comstock_deer_2025/comstock_deer_2025.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.AirLoopHVAC.rb +9 -5
- data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.FanVariableVolume.rb +3 -0
- data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.Space.rb +5 -3
- data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2030/comstock_deer_2030/comstock_deer_2030.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.AirLoopHVAC.rb +9 -5
- data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.FanVariableVolume.rb +3 -0
- data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.Space.rb +5 -3
- data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2035/comstock_deer_2035/comstock_deer_2035.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.AirLoopHVAC.rb +9 -5
- data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.FanVariableVolume.rb +3 -0
- data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.Space.rb +5 -3
- data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2040/comstock_deer_2040/comstock_deer_2040.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.AirLoopHVAC.rb +9 -5
- data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.FanVariableVolume.rb +3 -0
- data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.Space.rb +5 -3
- data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2045/comstock_deer_2045/comstock_deer_2045.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.AirLoopHVAC.rb +9 -5
- data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.FanVariableVolume.rb +3 -0
- data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.Space.rb +5 -3
- data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2050/comstock_deer_2050/comstock_deer_2050.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.AirLoopHVAC.rb +9 -5
- data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.FanVariableVolume.rb +3 -0
- data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.Space.rb +5 -3
- data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2055/comstock_deer_2055/comstock_deer_2055.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.AirLoopHVAC.rb +9 -5
- data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.FanVariableVolume.rb +3 -0
- data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.Space.rb +5 -3
- data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2060/comstock_deer_2060/comstock_deer_2060.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.AirLoopHVAC.rb +9 -5
- data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.FanVariableVolume.rb +3 -0
- data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.Space.rb +5 -3
- data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2065/comstock_deer_2065/comstock_deer_2065.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.AirLoopHVAC.rb +9 -5
- data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.FanVariableVolume.rb +3 -0
- data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.Space.rb +5 -3
- data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2070/comstock_deer_2070/comstock_deer_2070.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.AirLoopHVAC.rb +9 -5
- data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.FanVariableVolume.rb +3 -0
- data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.Space.rb +5 -3
- data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2075/comstock_deer_2075/comstock_deer_2075.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.AirLoopHVAC.rb +9 -5
- data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.FanVariableVolume.rb +3 -0
- data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.Space.rb +5 -3
- data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_pre_1975/comstock_deer_pre_1975/comstock_deer_pre_1975.rb +4 -0
- data/lib/openstudio-standards/standards/deer/deer_pre_1975/comstock_deer_pre_1975/data/comstock_deer_pre_1975.ext_ltg.json +2 -2
- data/lib/openstudio-standards/standards/deer/deer_pre_1975/deer_pre_1975.rb +4 -0
- data/lib/openstudio-standards/standards/icc_iecc/icc_iecc_2015/icc_iecc_2015.rb +4 -0
- data/lib/openstudio-standards/standards/necb/BTAP1980TO2010/btap_1980to2010.rb +6 -28
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/btap_pre1980.rb +25 -110
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/building_envelope.rb +45 -60
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_3_and_8_single_speed.rb +19 -23
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_4.rb +84 -83
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_6.rb +52 -47
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_systems.rb +43 -40
- data/lib/openstudio-standards/standards/necb/ECMS/data/boiler_set.json +18 -0
- data/lib/openstudio-standards/standards/necb/ECMS/data/chiller_set.json +211 -0
- data/lib/openstudio-standards/standards/necb/ECMS/data/curves.json +1195 -20
- data/lib/openstudio-standards/standards/necb/ECMS/data/furnace_set.json +18 -0
- data/lib/openstudio-standards/standards/necb/ECMS/data/heat_pumps.json +244 -182
- data/lib/openstudio-standards/standards/necb/ECMS/data/heat_pumps_heating.json +232 -185
- data/lib/openstudio-standards/standards/necb/ECMS/data/shw_set.json +20 -2
- data/lib/openstudio-standards/standards/necb/ECMS/ecms.rb +18 -25
- data/lib/openstudio-standards/standards/necb/ECMS/erv.rb +12 -13
- data/lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb +1647 -466
- data/lib/openstudio-standards/standards/necb/ECMS/loads.rb +93 -0
- data/lib/openstudio-standards/standards/necb/ECMS/nv.rb +40 -47
- data/lib/openstudio-standards/standards/necb/ECMS/pv_ground.rb +26 -25
- data/lib/openstudio-standards/standards/necb/NECB2011/autozone.rb +303 -305
- data/lib/openstudio-standards/standards/necb/NECB2011/beps_compliance_path.rb +45 -45
- data/lib/openstudio-standards/standards/necb/NECB2011/building_envelope.rb +90 -120
- data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/Hospital.osm +1176 -1115
- data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/LowriseApartment.osm +8279 -28923
- data/lib/openstudio-standards/standards/necb/NECB2011/data/space_types.json +1173 -1173
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_multi_speed.rb +15 -13
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_single_speed.rb +32 -29
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_2_and_5.rb +25 -26
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_multi_speed.rb +14 -14
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_single_speed.rb +24 -29
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_4.rb +85 -84
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_6.rb +41 -42
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +209 -197
- data/lib/openstudio-standards/standards/necb/NECB2011/lighting.rb +87 -82
- data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +510 -406
- data/lib/openstudio-standards/standards/necb/NECB2011/nv.md +3 -3
- data/lib/openstudio-standards/standards/necb/NECB2011/qaqc/necb_qaqc.rb +686 -683
- data/lib/openstudio-standards/standards/necb/NECB2011/service_water_heating.rb +129 -82
- data/lib/openstudio-standards/standards/necb/NECB2015/data/space_types.json +1608 -1608
- data/lib/openstudio-standards/standards/necb/NECB2015/hvac_systems.rb +25 -18
- data/lib/openstudio-standards/standards/necb/NECB2015/lighting.rb +73 -67
- data/lib/openstudio-standards/standards/necb/NECB2015/necb_2015.rb +18 -22
- data/lib/openstudio-standards/standards/necb/NECB2015/qaqc/necb_2015_qaqc.rb +59 -63
- data/lib/openstudio-standards/standards/necb/NECB2017/data/space_types.json +1608 -1608
- data/lib/openstudio-standards/standards/necb/NECB2017/hvac_systems.rb +1 -4
- data/lib/openstudio-standards/standards/necb/NECB2017/necb_2017.rb +10 -14
- data/lib/openstudio-standards/standards/necb/NECB2020/building_envelope.rb +779 -0
- data/lib/openstudio-standards/standards/necb/NECB2020/data/boilers.json +122 -0
- data/lib/openstudio-standards/standards/necb/NECB2020/data/chillers.json +335 -0
- data/lib/openstudio-standards/standards/necb/NECB2020/data/constants.json +13 -0
- data/lib/openstudio-standards/standards/necb/NECB2020/data/furnaces.json +41 -0
- data/lib/openstudio-standards/standards/necb/NECB2020/data/heat_pumps.json +452 -0
- data/lib/openstudio-standards/standards/necb/NECB2020/data/heat_pumps_heating.json +164 -0
- data/lib/openstudio-standards/standards/necb/NECB2020/data/heat_rejection.json +228 -0
- data/lib/openstudio-standards/standards/necb/NECB2020/data/led_lighting_data.json +2883 -0
- data/lib/openstudio-standards/standards/necb/NECB2020/data/space_types.json +25851 -0
- data/lib/openstudio-standards/standards/necb/NECB2020/data/surface_thermal_transmittance.json +60 -0
- data/lib/openstudio-standards/standards/necb/NECB2020/data/unitary_acs.json +585 -0
- data/lib/openstudio-standards/standards/necb/NECB2020/necb_2020.rb +175 -0
- data/lib/openstudio-standards/standards/necb/common/bc_step_code_indicators.md +10 -0
- data/lib/openstudio-standards/standards/necb/common/btap_data.rb +1963 -0
- data/lib/openstudio-standards/standards/necb/common/btap_datapoint.rb +410 -0
- data/lib/openstudio-standards/standards/necb/common/neb_end_use_prices.csv +42 -0
- data/lib/openstudio-standards/standards/necb/common/necb_reference_runs.csv +28705 -0
- data/lib/openstudio-standards/standards/necb/common/phius.md +23 -0
- data/lib/openstudio-standards/standards/necb/common/space_type_upgrade_map.json +1158 -386
- data/lib/openstudio-standards/standards/oeesc/oeesc_2014/oeesc_2014.rb +4 -0
- data/lib/openstudio-standards/standards/standard.rb +2 -1
- data/lib/openstudio-standards/utilities/define_thermal_zone_and_mulitpliers.rb +1 -1
- data/lib/openstudio-standards/utilities/logging.rb +6 -0
- data/lib/openstudio-standards/utilities/simulation.rb +30 -14
- data/lib/openstudio-standards/utilities/{speacetype_map_converter.rb → spacetype_map_converter.rb} +0 -0
- data/lib/openstudio-standards/utilities/sqlfile.rb +112 -71
- data/lib/openstudio-standards/version.rb +2 -2
- data/lib/openstudio-standards/weather/Weather.Model.rb +209 -9
- data/lib/openstudio-standards/weather/Weather.stat_file.rb +1 -1
- data/lib/openstudio-standards.rb +9 -0
- metadata +106 -205
- data/data/standards/OpenStudio_Standards-ashrae_90_1-ALL-comstock(space_types).xlsx +0 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.boilers.json +0 -49
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.chillers.json +0 -293
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.construction_properties.json +0 -25426
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.construction_sets.json +0 -1600
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.economizers.json +0 -564
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.elevators.json +0 -349
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ext_ltg.json +0 -164
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ground_temperatures.json +0 -10663
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_pumps.json +0 -508
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_pumps_heating.json +0 -156
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_rejection.json +0 -44
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.motors.json +0 -184
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.prototype_inputs.json +0 -3094
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ref_cases.json +0 -829
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ref_lnup.json +0 -562
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_compressors.json +0 -52
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_condenser.json +0 -220
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_system.json +0 -156
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_walkins.json +0 -1316
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +0 -21446
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.unitary_acs.json +0 -554
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.water_heaters.json +0 -68
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.water_source_heat_pumps.json +0 -28
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.water_source_heat_pumps_heating.json +0 -12
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.boilers.json +0 -49
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.chillers.json +0 -293
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.construction_properties.json +0 -12487
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.construction_sets.json +0 -1600
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.economizers.json +0 -564
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.elevators.json +0 -349
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ext_ltg.json +0 -164
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ground_temperatures.json +0 -10663
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_pumps.json +0 -466
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_pumps_heating.json +0 -137
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_rejection.json +0 -44
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.motors.json +0 -184
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.prototype_inputs.json +0 -3094
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ref_cases.json +0 -829
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ref_lnup.json +0 -562
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_compressors.json +0 -52
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_condenser.json +0 -220
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_system.json +0 -156
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_walkins.json +0 -1316
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +0 -21380
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.unitary_acs.json +0 -554
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.water_heaters.json +0 -68
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.water_source_heat_pumps.json +0 -28
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.water_source_heat_pumps_heating.json +0 -12
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.boilers.json +0 -49
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.chillers.json +0 -395
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.construction_properties.json +0 -12487
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.construction_sets.json +0 -1600
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.economizers.json +0 -592
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.elevators.json +0 -349
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.energy_recovery.json +0 -550
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ext_ltg.json +0 -164
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ground_temperatures.json +0 -10663
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_pumps.json +0 -466
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_pumps_heating.json +0 -137
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_rejection.json +0 -44
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.motors.json +0 -238
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.prototype_inputs.json +0 -3094
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ref_cases.json +0 -829
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ref_lnup.json +0 -562
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_compressors.json +0 -52
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_condenser.json +0 -220
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_system.json +0 -156
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_walkins.json +0 -1316
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +0 -21548
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.unitary_acs.json +0 -554
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.water_heaters.json +0 -68
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.water_source_heat_pumps.json +0 -28
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.water_source_heat_pumps_heating.json +0 -12
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.boilers.json +0 -64
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.chillers.json +0 -871
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.construction_properties.json +0 -12487
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.construction_sets.json +0 -1600
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.economizers.json +0 -592
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.elevators.json +0 -349
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.energy_recovery.json +0 -1096
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ext_ltg.json +0 -164
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ground_temperatures.json +0 -10663
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_pumps.json +0 -886
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_pumps_heating.json +0 -194
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_rejection.json +0 -44
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.motors.json +0 -247
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.prototype_inputs.json +0 -3094
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ref_cases.json +0 -829
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ref_lnup.json +0 -562
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_compressors.json +0 -52
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_condenser.json +0 -220
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_system.json +0 -156
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_walkins.json +0 -1316
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +0 -22079
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.unitary_acs.json +0 -994
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_heaters.json +0 -68
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_source_heat_pumps.json +0 -28
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_source_heat_pumps_heating.json +0 -12
- data/lib/openstudio-standards/utilities/convert_costing_constructions.rb +0 -105
@@ -1,6 +1,14 @@
|
|
1
1
|
Standard.class_eval do
|
2
2
|
# @!group Model
|
3
3
|
|
4
|
+
# creates an openstudio standards version of PNNL/DOE prototype buildings
|
5
|
+
#
|
6
|
+
# @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
|
7
|
+
# @param epw_file []
|
8
|
+
# @param sizing_run_dir [String]
|
9
|
+
# @param debug
|
10
|
+
# @param measure_model
|
11
|
+
# @return
|
4
12
|
def model_create_prototype_model(climate_zone, epw_file, sizing_run_dir = Dir.pwd, debug = false, measure_model = nil)
|
5
13
|
building_type = @instvarbuilding_type
|
6
14
|
raise 'no building_type!' if @instvarbuilding_type.nil?
|
@@ -14,10 +22,6 @@ Standard.class_eval do
|
|
14
22
|
OpenStudio.logFree(OpenStudio::Error, 'Not available', "DOE Reference models for #{@instvarbuilding_type} at are not available, the measure is disabled for this specific type.")
|
15
23
|
return false
|
16
24
|
end
|
17
|
-
when 'College'
|
18
|
-
# delete this case statement once the College model is complete
|
19
|
-
OpenStudio.logFree(OpenStudio::Error, 'Not available', 'While this release includes data for colleges, this only an early draft and should not be used for anything other that early testing or work to improve the college prototype.')
|
20
|
-
return false
|
21
25
|
end
|
22
26
|
# optionally determine the climate zone from the epw and stat files.
|
23
27
|
if climate_zone == 'NECB HDD Method'
|
@@ -27,7 +31,7 @@ Standard.class_eval do
|
|
27
31
|
epw_file = ''
|
28
32
|
end
|
29
33
|
model = load_geometry_osm(@geometry_file)
|
30
|
-
model_custom_geometry_tweaks(building_type, climate_zone, @prototype_input
|
34
|
+
model_custom_geometry_tweaks(model, building_type, climate_zone, @prototype_input)
|
31
35
|
model.getThermostatSetpointDualSetpoints(&:remove)
|
32
36
|
model.getBuilding.setName(self.class.to_s)
|
33
37
|
# save new basefile to new geometry folder as class name.
|
@@ -39,13 +43,13 @@ Standard.class_eval do
|
|
39
43
|
model_modify_surface_convection_algorithm(model)
|
40
44
|
model_create_thermal_zones(model, @space_multiplier_map)
|
41
45
|
model_add_design_days_and_weather_file(model, climate_zone, epw_file)
|
42
|
-
model_add_hvac(model, @instvarbuilding_type, climate_zone, @prototype_input
|
46
|
+
model_add_hvac(model, @instvarbuilding_type, climate_zone, @prototype_input)
|
43
47
|
model_add_constructions(model, @instvarbuilding_type, climate_zone)
|
44
48
|
model_fenestration_orientation(model, climate_zone)
|
45
|
-
model_custom_hvac_tweaks(building_type, climate_zone, @prototype_input
|
49
|
+
model_custom_hvac_tweaks(model, building_type, climate_zone, @prototype_input)
|
46
50
|
model_add_transfer_air(model)
|
47
51
|
model_add_internal_mass(model, @instvarbuilding_type)
|
48
|
-
model_add_swh(model, @instvarbuilding_type,
|
52
|
+
model_add_swh(model, @instvarbuilding_type, @prototype_input)
|
49
53
|
model_add_exterior_lights(model, @instvarbuilding_type, climate_zone, @prototype_input)
|
50
54
|
model_add_occupancy_sensors(model, @instvarbuilding_type, climate_zone)
|
51
55
|
model_add_daylight_savings(model)
|
@@ -81,9 +85,9 @@ Standard.class_eval do
|
|
81
85
|
model_temp_fix_ems_references(model)
|
82
86
|
# Add daylighting controls per standard
|
83
87
|
# only four zones in large hotel have daylighting controls
|
84
|
-
# todo
|
88
|
+
# @todo YXC to merge to the main function
|
85
89
|
model_add_daylighting_controls(model)
|
86
|
-
model_custom_daylighting_tweaks(building_type, climate_zone, @prototype_input
|
90
|
+
model_custom_daylighting_tweaks(model, building_type, climate_zone, @prototype_input)
|
87
91
|
model_update_exhaust_fan_efficiency(model)
|
88
92
|
model_update_fan_efficiency(model)
|
89
93
|
# rename air loop and plant loop nodes for readability
|
@@ -94,17 +98,19 @@ Standard.class_eval do
|
|
94
98
|
# Add output variables for debugging
|
95
99
|
model_request_timeseries_outputs(model) if debug
|
96
100
|
# If measure model is passed, then replace measure model with new model created here.
|
97
|
-
if measure_model.nil?
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
return measure_model
|
102
|
-
end
|
101
|
+
return model if measure_model.nil?
|
102
|
+
|
103
|
+
model_replace_model(measure_model, model)
|
104
|
+
return measure_model
|
103
105
|
end
|
104
106
|
|
105
107
|
# Replaces the contents of 'model_to_replace' with the contents of 'new_model.'
|
106
108
|
# This method can be used when the memory location of model_to_replace needs
|
107
109
|
# to be preserved, for example, when a measure is passed.
|
110
|
+
#
|
111
|
+
# @param model_to_replace [OpenStudio::Model::Model] OpenStudio model object
|
112
|
+
# @param new_model [OpenStudio::Model::Model] OpenStudio model object
|
113
|
+
# @return [OpenStudio::Model::Model] OpenStudio model object
|
108
114
|
def model_replace_model(model_to_replace, new_model, runner = nil)
|
109
115
|
# remove existing objects from model
|
110
116
|
handles = OpenStudio::UUIDVector.new
|
@@ -116,12 +122,14 @@ Standard.class_eval do
|
|
116
122
|
# put contents of new_model into model_to_replace
|
117
123
|
model_to_replace.addObjects(new_model.toIdfFile.objects)
|
118
124
|
BTAP.runner_register('Info', "Model name is now #{model_to_replace.building.get.name}.", runner)
|
125
|
+
return model_to_replace
|
119
126
|
end
|
120
127
|
|
121
128
|
# Replaces all objects in the current model
|
122
129
|
# with the objects in the .osm. Typically used to
|
123
130
|
# load a model as a starting point.
|
124
131
|
#
|
132
|
+
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
125
133
|
# @param rel_path_to_osm [String] the path to an .osm file, relative to this file
|
126
134
|
# @return [Bool] returns true if successful, false if not
|
127
135
|
def model_replace_model_from_osm(model, rel_path_to_osm)
|
@@ -341,8 +349,9 @@ Standard.class_eval do
|
|
341
349
|
# individual space type, this construction set will be created and applied
|
342
350
|
# to this space type, overriding the whole-building construction set.
|
343
351
|
#
|
344
|
-
# @param
|
345
|
-
# @param
|
352
|
+
# @param model[OpenStudio::Model::Model] OpenStudio Model
|
353
|
+
# @param building_type [String] the building type
|
354
|
+
# @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
|
346
355
|
# @return [Bool] returns true if successful, false if not
|
347
356
|
def model_add_constructions(model, building_type, climate_zone)
|
348
357
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Started applying constructions')
|
@@ -350,8 +359,8 @@ Standard.class_eval do
|
|
350
359
|
|
351
360
|
# The constructions lookup table uses a slightly different list of building types.
|
352
361
|
@lookup_building_type = model_get_lookup_name(building_type)
|
353
|
-
#
|
354
|
-
#
|
362
|
+
# @todo this is a workaround. Need to synchronize the building type names
|
363
|
+
# across different parts of the code, including splitting of Office types
|
355
364
|
case building_type
|
356
365
|
when 'SmallOffice', 'MediumOffice', 'LargeOffice', 'SmallOfficeDetailed', 'MediumOfficeDetailed', 'LargeOfficeDetailed'
|
357
366
|
new_lookup_building_type = building_type
|
@@ -526,9 +535,10 @@ Standard.class_eval do
|
|
526
535
|
|
527
536
|
# Creates and sets below grade wall constructions for 90.1 prototype building models. These utilize
|
528
537
|
# CFactorUndergroundWallConstruction and require some additional parameters when compared to Construction
|
538
|
+
#
|
529
539
|
# @param model[OpenStudio::Model::Model] OpenStudio Model
|
530
540
|
# @param climate_zone [string] climate zone as described for prototype models. C-Factor is based on this parameter
|
531
|
-
# @param building_type [string] the type
|
541
|
+
# @param building_type [string] the building type
|
532
542
|
# @return [void]
|
533
543
|
def model_set_below_grade_wall_constructions(model, building_type, climate_zone)
|
534
544
|
# Find ground contact wall building category
|
@@ -603,8 +613,9 @@ Standard.class_eval do
|
|
603
613
|
|
604
614
|
# Searches a model for spaces adjacent to ground. If the slab's perimeter is adjacent to ground, the length is
|
605
615
|
# calculated. Used for F-Factor floors that require additional parameters.
|
616
|
+
#
|
606
617
|
# @param model [OpenStudio Model] OpenStudio model being modified
|
607
|
-
# @param building_type [string] the type
|
618
|
+
# @param building_type [string] the building type
|
608
619
|
# @param climate_zone [string] climate zone as described for prototype models. F-Factor is based on this parameter
|
609
620
|
def model_set_floor_constructions(model, building_type, climate_zone)
|
610
621
|
# Find ground contact wall building category
|
@@ -631,8 +642,8 @@ Standard.class_eval do
|
|
631
642
|
next if area == 0 # skip floors not adjacent to ground
|
632
643
|
|
633
644
|
# Record combination of perimeter and area. Each unique combination requires a FFactorGroundFloorConstruction.
|
634
|
-
#
|
635
|
-
#
|
645
|
+
# @note periods '.' were causing issues and were therefore removed.
|
646
|
+
# Caused E+ error with duplicate names despite being different.
|
636
647
|
f_floor_const_name = "Foundation F #{f_factor_si.round(2)} Perim #{perimeter.round(2)} Area #{area.round(2)}".gsub('.', '')
|
637
648
|
|
638
649
|
# Check if the floor construction has been constructed already. If so, look it up in the model
|
@@ -657,7 +668,7 @@ Standard.class_eval do
|
|
657
668
|
end
|
658
669
|
|
659
670
|
# This function returns the space's ground perimeter and area. Assumes only one floor per space!
|
660
|
-
# @param space[OpenStudio::Model::Space]
|
671
|
+
# @param space [OpenStudio::Model::Space] space object
|
661
672
|
# @return [Numeric, Numeric]
|
662
673
|
def model_get_f_floor_geometry(space)
|
663
674
|
perimeter = 0
|
@@ -696,7 +707,7 @@ Standard.class_eval do
|
|
696
707
|
|
697
708
|
# This function returns the length of intersection between a wall and floor sharing space. Primarily used for
|
698
709
|
# FFactorGroundFloorConstruction exposed perimeter calculations.
|
699
|
-
#
|
710
|
+
# @note this calculation has a few assumptions:
|
700
711
|
# - Floors are flat. This means they have a constant z-axis value.
|
701
712
|
# - If a wall shares an edge with a floor, it's assumed that edge intersects with only this floor.
|
702
713
|
# - The wall and floor share a common space. This space is assumed to only have one floor!
|
@@ -769,7 +780,8 @@ Standard.class_eval do
|
|
769
780
|
|
770
781
|
# Adds internal mass objects and constructions based on the building type
|
771
782
|
#
|
772
|
-
# @param
|
783
|
+
# @param model[OpenStudio::Model::Model] OpenStudio Model
|
784
|
+
# @param building_type [String] the building type
|
773
785
|
# @return [Bool] returns true if successful, false if not
|
774
786
|
def model_add_internal_mass(model, building_type)
|
775
787
|
# Assign a material to all internal mass objects
|
@@ -845,6 +857,7 @@ Standard.class_eval do
|
|
845
857
|
model.getThermalZones.each(&:remove)
|
846
858
|
|
847
859
|
# Create a thermal zone for each space in the self
|
860
|
+
thermostat_to_offset = []
|
848
861
|
model.getSpaces.sort.each do |space|
|
849
862
|
zone = OpenStudio::Model::ThermalZone.new(model)
|
850
863
|
zone.setName("#{space.name} ZN")
|
@@ -871,18 +884,28 @@ Standard.class_eval do
|
|
871
884
|
ideal_loads.addToThermalZone(zone)
|
872
885
|
end
|
873
886
|
end
|
887
|
+
|
888
|
+
# Modify thermostat schedules if space
|
889
|
+
# has standby mode occupancy requirements
|
890
|
+
if space_occupancy_standby_mode_required?(space)
|
891
|
+
next if thermostat_to_offset.include?(thermostat_clone.name)
|
892
|
+
|
893
|
+
space_occupancy_standby_mode(thermostat_clone)
|
894
|
+
thermostat_to_offset << thermostat_name
|
895
|
+
end
|
874
896
|
end
|
897
|
+
|
875
898
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Finished creating thermal zones')
|
876
|
-
|
899
|
+
end
|
877
900
|
|
878
901
|
# Loop through thermal zones and model_run(model) thermal_zone.add_exhaust
|
879
902
|
# If kitchen_makeup is "None" then exhaust will be modeled in every kitchen zone without makeup air
|
880
903
|
# If kitchen_makeup is "Adjacent" then exhaust will be modeled in every kitchen zone. Makeup air will be provided when there as an adjacent dining,cafe, or cafeteria zone of the same building type.
|
881
904
|
# If kitchen_makeup is "Largest Zone" then exhaust will only be modeled in the largest kitchen zone, but the flow rate will be based on the kitchen area for all zones. Makeup air will be modeled in the largest dining,cafe, or cafeteria zone of the same building type.
|
882
905
|
#
|
883
|
-
# @param kitchen_makeup [String] Valid choices are
|
906
|
+
# @param kitchen_makeup [String] Valid choices are None, Largest Zone, Adjacent
|
884
907
|
# @return [Hash] Hash of newly made exhaust fan objects along with secondary exhaust and zone mixing objects
|
885
|
-
def model_add_exhaust(model, kitchen_makeup = 'Adjacent')
|
908
|
+
def model_add_exhaust(model, kitchen_makeup = 'Adjacent')
|
886
909
|
zone_exhaust_fans = {}
|
887
910
|
|
888
911
|
# apply use specified kitchen_makup logic
|
@@ -938,7 +961,7 @@ Standard.class_eval do
|
|
938
961
|
# populate floor area
|
939
962
|
space_type_hash[space_type][:effective_floor_area] += space.floorArea * space.multiplier
|
940
963
|
|
941
|
-
#
|
964
|
+
# @todo populate adjacent zones (need to add methods to space and zone for this)
|
942
965
|
if kitchen_makeup == 'Adjacent'
|
943
966
|
space_type_hash[space_type][:adjacent_zones] << nil
|
944
967
|
end
|
@@ -1053,7 +1076,7 @@ Standard.class_eval do
|
|
1053
1076
|
if zones_by_standards.key?(makeup_source) && zones_by_standards[makeup_source].key?(adjacent_zone)
|
1054
1077
|
first_adjacent_makeup_source = adjacent_zone
|
1055
1078
|
|
1056
|
-
#
|
1079
|
+
# @todo add in extra arguments for makeup air
|
1057
1080
|
exhaust_makeup_inputs = {}
|
1058
1081
|
exhaust_makeup_inputs[makeup_target] = {} # for now only one makeup target per zone, but method could have multiple
|
1059
1082
|
exhaust_makeup_inputs[makeup_target][:source_zone] = first_adjacent_makeup_source
|
@@ -1098,10 +1121,10 @@ Standard.class_eval do
|
|
1098
1121
|
end
|
1099
1122
|
|
1100
1123
|
# Add guestroom vacancy controls
|
1124
|
+
# @note code_sections [90.1-2016_6.4.3.3.5]
|
1101
1125
|
#
|
1102
|
-
# @code_sections [90.1-2016_6.4.3.3.5]
|
1103
1126
|
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
1104
|
-
# @param building_type [String]
|
1127
|
+
# @param building_type [String] the building type
|
1105
1128
|
# @return [Boolean] Returns true if successful, false otherwise
|
1106
1129
|
def model_add_guestroom_vacancy_controls(model, building_type)
|
1107
1130
|
# Guestrooms are currently only included in the small and large hotel prototypes
|
@@ -1174,7 +1197,7 @@ Standard.class_eval do
|
|
1174
1197
|
|
1175
1198
|
# Get zone equipment fan
|
1176
1199
|
# Currently prototypes with guestrooms use PTAC and 4PFC
|
1177
|
-
#
|
1200
|
+
# @todo Implement additional system type (zonal and air loop-based)
|
1178
1201
|
thermal_zone.equipment.sort.each do |zone_equipment|
|
1179
1202
|
if zone_equipment.to_ZoneHVACPackagedTerminalAirConditioner.is_initialized
|
1180
1203
|
equipment = zone_equipment.to_ZoneHVACPackagedTerminalAirConditioner.get
|
@@ -1192,7 +1215,7 @@ Standard.class_eval do
|
|
1192
1215
|
equipment.supplyAirFan.to_FanVariableVolume.get
|
1193
1216
|
elsif equipment.supplyAirFan.to_FanOnOff.is_initialized
|
1194
1217
|
equipment.supplyAirFan.to_FanOnOff.get
|
1195
|
-
|
1218
|
+
end
|
1196
1219
|
fan.setAvailabilitySchedule(model_add_schedule(model, 'GuestroomVacantFanSchedule'))
|
1197
1220
|
end
|
1198
1221
|
|
@@ -1227,6 +1250,195 @@ Standard.class_eval do
|
|
1227
1250
|
end
|
1228
1251
|
end
|
1229
1252
|
|
1253
|
+
# Add guestroom ventilation availability schedules based on the thermostat heating setpoint schedules (to infer setback)
|
1254
|
+
# Call to this method needs to be place before purge hour implementation of zone ventilation (if any)
|
1255
|
+
#
|
1256
|
+
# @code_sections [90.1-2019_6.4.3.3.5.2]
|
1257
|
+
# @author Xuechen (Jerry) Lei, PNNL
|
1258
|
+
# @param model [OpenStudio::Model::Model] OpenStudio Model
|
1259
|
+
# @param building_type [String] Building type
|
1260
|
+
def model_add_guestroom_vent_sch(model, building_type)
|
1261
|
+
return true unless (template == '90.1-2016') || (template == '90.1-2019')
|
1262
|
+
|
1263
|
+
# Guestrooms are currently only included in the small and large hotel prototypes
|
1264
|
+
return true unless (building_type == 'LargeHotel') || (building_type == 'SmallHotel')
|
1265
|
+
|
1266
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Started Adding Guestroom Ventilation Schedules')
|
1267
|
+
|
1268
|
+
# Define guestroom occupied maps
|
1269
|
+
# List of all spaces that represent vacant rooms
|
1270
|
+
guestroom_occupied_map = {
|
1271
|
+
'LargeHotel' => [
|
1272
|
+
'Room_1_Flr_3',
|
1273
|
+
'Room_1_Flr_6',
|
1274
|
+
'Room_2_Flr_3',
|
1275
|
+
'Room_2_Flr_6',
|
1276
|
+
'Room_3_Mult9_Flr_6',
|
1277
|
+
'Room_4_Mult19_Flr_3',
|
1278
|
+
'Room_5_Flr_3',
|
1279
|
+
'Room_6_Flr_3'
|
1280
|
+
],
|
1281
|
+
'SmallHotel' => [
|
1282
|
+
'GuestRoom103',
|
1283
|
+
'GuestRoom104',
|
1284
|
+
'GuestRoom105',
|
1285
|
+
'GuestRoom202_205',
|
1286
|
+
'GuestRoom206_208',
|
1287
|
+
'GuestRoom209_212',
|
1288
|
+
'GuestRoom213',
|
1289
|
+
'GuestRoom214',
|
1290
|
+
'GuestRoom219',
|
1291
|
+
'GuestRoom220_223',
|
1292
|
+
'GuestRoom224',
|
1293
|
+
'GuestRoom306_308',
|
1294
|
+
'GuestRoom309_312',
|
1295
|
+
'GuestRoom314',
|
1296
|
+
'GuestRoom315_318',
|
1297
|
+
'GuestRoom320_323',
|
1298
|
+
'GuestRoom401',
|
1299
|
+
'GuestRoom409_412',
|
1300
|
+
'GuestRoom415_418',
|
1301
|
+
'GuestRoom419',
|
1302
|
+
'GuestRoom420_423',
|
1303
|
+
'GuestRoom424'
|
1304
|
+
]
|
1305
|
+
}
|
1306
|
+
|
1307
|
+
# Extract thermostat schedule as the base for ventilation schedule
|
1308
|
+
if building_type == 'LargeHotel'
|
1309
|
+
# thermostat_name = 'LargeHotel GuestRoom Thermostat'
|
1310
|
+
air_terminals = model.getAirTerminalSingleDuctConstantVolumeNoReheats.sort
|
1311
|
+
elsif building_type == 'SmallHotel'
|
1312
|
+
# thermostat_name = 'SmallHotel GuestRoom4Occ Thermostat'
|
1313
|
+
air_terminals = model.getZoneHVACPackagedTerminalAirConditioners.sort
|
1314
|
+
end
|
1315
|
+
|
1316
|
+
guestroom_htg_schrst, guestroom_clg_schrst = get_occ_guestroom_setpoint_schedules(model)
|
1317
|
+
|
1318
|
+
# intentionally no check so if anything is wrong, this will break
|
1319
|
+
guestroom_htg_sch = guestroom_htg_schrst.to_ScheduleRuleset.get.defaultDaySchedule
|
1320
|
+
guestroom_clg_sch = guestroom_clg_schrst.to_ScheduleRuleset.get.defaultDaySchedule
|
1321
|
+
|
1322
|
+
if guestroom_htg_sch.times != guestroom_clg_sch.times
|
1323
|
+
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.model.Model', "#{building_type} Guestroom heating and cooling schedule has different setback times, will use htg for generating the ventilation binary schedule")
|
1324
|
+
end
|
1325
|
+
|
1326
|
+
# Build ventilation binary schedule
|
1327
|
+
htg_sch_values = guestroom_htg_sch.values
|
1328
|
+
htg_sch_times = guestroom_htg_sch.times
|
1329
|
+
|
1330
|
+
vent_schrst = OpenStudio::Model::ScheduleRuleset.new(model)
|
1331
|
+
vent_schrst.setName("#{building_type}_GuestRoom_Vent_Ctrl_Sch")
|
1332
|
+
# add design day values (1)
|
1333
|
+
vent_winterdesignday_sch = OpenStudio::Model::ScheduleDay.new(model)
|
1334
|
+
vent_winterdesignday_sch.setName("#{building_type}_GuestRoom_Vent_Ctrl_Sch Winter Design Day")
|
1335
|
+
model_add_vals_to_sch(model, vent_winterdesignday_sch, 'Constant', [1])
|
1336
|
+
vent_schrst.setSummerDesignDaySchedule(vent_winterdesignday_sch)
|
1337
|
+
vent_summerdesignday_sch = OpenStudio::Model::ScheduleDay.new(model)
|
1338
|
+
vent_summerdesignday_sch.setName("#{building_type}_GuestRoom_Vent_Ctrl_Sch Summer Design Day")
|
1339
|
+
model_add_vals_to_sch(model, vent_summerdesignday_sch, 'Constant', [1])
|
1340
|
+
vent_schrst.setWinterDesignDaySchedule(vent_summerdesignday_sch)
|
1341
|
+
|
1342
|
+
# add default ventilation schedule
|
1343
|
+
vent_day_sch = vent_schrst.defaultDaySchedule
|
1344
|
+
vent_day_sch.setName("#{building_type}_GuestRoom_Vent_Ctrl_Sch Default")
|
1345
|
+
vent_day_binary_values = []
|
1346
|
+
off_value = htg_sch_values.min
|
1347
|
+
htg_sch_values.each do |value|
|
1348
|
+
vent_day_binary_values << if value > off_value
|
1349
|
+
1.0
|
1350
|
+
else
|
1351
|
+
0.0
|
1352
|
+
end
|
1353
|
+
end
|
1354
|
+
vent_day_binary_values.each_with_index do |binary_value, i|
|
1355
|
+
vent_day_sch.addValue(htg_sch_times[i], binary_value)
|
1356
|
+
end
|
1357
|
+
|
1358
|
+
# link vent schedule to guest room air terminals
|
1359
|
+
modified_zones = []
|
1360
|
+
air_terminals.each do |airterminal|
|
1361
|
+
zone_name = airterminal.name.to_s.strip.split[0]
|
1362
|
+
if guestroom_occupied_map[building_type].include? zone_name
|
1363
|
+
if building_type == 'LargeHotel'
|
1364
|
+
airterminal.setAvailabilitySchedule(vent_schrst)
|
1365
|
+
elsif building_type == 'SmallHotel'
|
1366
|
+
airterminal.setSupplyAirFanOperatingModeSchedule(vent_schrst)
|
1367
|
+
end
|
1368
|
+
modified_zones << zone_name
|
1369
|
+
end
|
1370
|
+
end
|
1371
|
+
end
|
1372
|
+
|
1373
|
+
# Reduce thermostat temperature setpoint delay (when switching from occupied to unoccupied ) by 10 mins
|
1374
|
+
#
|
1375
|
+
# @code_sections [90.1-2019_6.4.3.3.5.1]
|
1376
|
+
# @author Xuechen (Jerry) Lei, PNNL
|
1377
|
+
# @param model [OpenStudio::Model::Model] OpenStudio Model
|
1378
|
+
# @param building_type [String] Building type
|
1379
|
+
def model_reduce_setback_sch_delay(model, building_type)
|
1380
|
+
# Guestrooms are currently only included in the small and large hotel prototypes
|
1381
|
+
return true unless (building_type == 'LargeHotel') || (building_type == 'SmallHotel')
|
1382
|
+
|
1383
|
+
# Guestrooms setback schedule delay modifications are only added to 2019
|
1384
|
+
return true unless template == '90.1-2019'
|
1385
|
+
|
1386
|
+
heating_schrst, cooling_schrst = get_occ_guestroom_setpoint_schedules(model)
|
1387
|
+
heating_default_day_sch = heating_schrst.defaultDaySchedule
|
1388
|
+
schedule_reduce_reset_delay_10min(heating_default_day_sch, heating_default_day_sch.values.min)
|
1389
|
+
cooling_default_day_sch = cooling_schrst.defaultDaySchedule
|
1390
|
+
schedule_reduce_reset_delay_10min(cooling_default_day_sch, cooling_default_day_sch.values.max)
|
1391
|
+
end
|
1392
|
+
|
1393
|
+
# Helper method for model_add_guestroom_vent_sch and model_reduce_setback_sch_delay
|
1394
|
+
# @author Xuechen (Jerry) Lei, PNNL
|
1395
|
+
#
|
1396
|
+
def get_occ_guestroom_setpoint_schedules(model)
|
1397
|
+
thermostats = model.getThermostatSetpointDualSetpoints.sort
|
1398
|
+
thermostats.each do |thermostat|
|
1399
|
+
next unless thermostat.name.to_s.include? 'GuestRoom'
|
1400
|
+
|
1401
|
+
heating_schrst = thermostat.heatingSetpointTemperatureSchedule.get.to_ScheduleRuleset.get
|
1402
|
+
cooling_schrst = thermostat.coolingSetpointTemperatureSchedule.get.to_ScheduleRuleset.get
|
1403
|
+
next unless heating_schrst.name.to_s.include? 'Occ'
|
1404
|
+
next unless cooling_schrst.name.to_s.include? 'Occ'
|
1405
|
+
|
1406
|
+
return heating_schrst, cooling_schrst
|
1407
|
+
end
|
1408
|
+
return false
|
1409
|
+
end
|
1410
|
+
|
1411
|
+
# Helper method for model_reduce_setback_sch_delay
|
1412
|
+
# @author Xuechen (Jerry) Lei, PNNL
|
1413
|
+
#
|
1414
|
+
def schedule_reduce_reset_delay_10min(sch, off_value)
|
1415
|
+
sch_values = sch.values
|
1416
|
+
sch_times = sch.times
|
1417
|
+
ten_mins = OpenStudio::Time.new(0, 0, 10, 0)
|
1418
|
+
new_times = []
|
1419
|
+
(0..(sch_values.length - 2)).each do |i|
|
1420
|
+
current_time = sch_times[i]
|
1421
|
+
current_value = sch_values[i]
|
1422
|
+
next_value = sch_values[i + 1]
|
1423
|
+
if ((current_value - off_value).abs >= 0.01) && ((next_value - off_value).abs < 0.01) # reduce occupied (current) time by 10 min if next value is off_value
|
1424
|
+
new_times << (current_time - ten_mins)
|
1425
|
+
else
|
1426
|
+
new_times << current_time
|
1427
|
+
end
|
1428
|
+
end
|
1429
|
+
new_times << sch_times[-1]
|
1430
|
+
|
1431
|
+
# remove old values
|
1432
|
+
sch_times.each do |old_time|
|
1433
|
+
sch.removeValue(old_time)
|
1434
|
+
end
|
1435
|
+
|
1436
|
+
# add new time
|
1437
|
+
(0..(new_times.length - 1)).each do |i|
|
1438
|
+
sch.addValue(new_times[i], sch_values[i])
|
1439
|
+
end
|
1440
|
+
end
|
1441
|
+
|
1230
1442
|
# Adds occupancy sensors to certain space types per
|
1231
1443
|
# the PNNL documentation.
|
1232
1444
|
#
|
@@ -1240,7 +1452,7 @@ Standard.class_eval do
|
|
1240
1452
|
# currently modeled using different schedules
|
1241
1453
|
# hence this code double counts savings from
|
1242
1454
|
# sensors.
|
1243
|
-
#
|
1455
|
+
# @todo Move occupancy sensor modeling from
|
1244
1456
|
# schedule to code.
|
1245
1457
|
case template
|
1246
1458
|
when 'DOE Ref Pre-1980', 'DOE Ref 1980-2004', '90.1-2004', '90.1-2007', '90.1-2010', '90.1-2013', '90.1-2016', '90.1-2019'
|
@@ -1340,9 +1552,9 @@ Standard.class_eval do
|
|
1340
1552
|
# into lookup table and implement that way instead of hard-coding as
|
1341
1553
|
# inputs in the spreadsheet.
|
1342
1554
|
def model_add_exterior_lights(model, building_type, climate_zone, prototype_input)
|
1343
|
-
#
|
1344
|
-
#
|
1345
|
-
#
|
1555
|
+
# @todo Standards - translate w/linear foot of facade, door, parking, etc
|
1556
|
+
# into lookup table and implement that way instead of hard-coding as
|
1557
|
+
# inputs in the spreadsheet.
|
1346
1558
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Started adding exterior lights')
|
1347
1559
|
|
1348
1560
|
# Occupancy Sensing Exterior Lights
|
@@ -1431,7 +1643,7 @@ Standard.class_eval do
|
|
1431
1643
|
# modify the infiltration coefficients
|
1432
1644
|
case template
|
1433
1645
|
when 'DOE Ref Pre-1980', 'DOE Ref 1980-2004'
|
1434
|
-
#
|
1646
|
+
# @todo make this consistent with newer prototypes
|
1435
1647
|
const_coeff = 1.0
|
1436
1648
|
temp_coeff = 0.0
|
1437
1649
|
velo_coeff = 0.0
|
@@ -1565,8 +1777,7 @@ Standard.class_eval do
|
|
1565
1777
|
# Add Economizers
|
1566
1778
|
apply_economizers(climate_zone, model)
|
1567
1779
|
|
1568
|
-
#
|
1569
|
-
# hot water coil convergence tolerances?
|
1780
|
+
# @todo What is the logic behind hard-sizing hot water coil convergence tolerances?
|
1570
1781
|
model.getControllerWaterCoils.sort.each { |obj| controller_water_coil_set_convergence_limits(obj) }
|
1571
1782
|
|
1572
1783
|
# Adjust defrost curve limits for coil heating dx single speed
|
@@ -1583,10 +1794,78 @@ Standard.class_eval do
|
|
1583
1794
|
#
|
1584
1795
|
# @param model [OpenStudio::Model::Model] the model
|
1585
1796
|
def model_apply_prototype_hvac_efficiency_adjustments(model)
|
1797
|
+
building_data = model_get_building_climate_zone_and_building_type(model)
|
1798
|
+
building_type = building_data['building_type']
|
1799
|
+
climate_zone = building_data['climate_zone']
|
1800
|
+
|
1586
1801
|
# ERVs
|
1587
|
-
|
1588
|
-
|
1589
|
-
|
1802
|
+
if building_type == 'MidriseApartment' || building_type == 'HighriseApartment'
|
1803
|
+
# Use standalone ERV in dwelling units to provide OA
|
1804
|
+
# Loads are met by mechanical cooling and the heating system with a cycling fan
|
1805
|
+
model.getAirLoopHVACs.each do |air_loop_hvac|
|
1806
|
+
# Find out if air loop has an ERV (i.e. if heat recovery is required)
|
1807
|
+
has_erv = false
|
1808
|
+
has_erv = true if air_loop_hvac_energy_recovery?(air_loop_hvac)
|
1809
|
+
|
1810
|
+
serves_res_spc = false
|
1811
|
+
|
1812
|
+
air_loop_hvac.thermalZones.each do |zone|
|
1813
|
+
next unless thermal_zone_residential?(zone)
|
1814
|
+
|
1815
|
+
oa_cfm_per_ft2 = 0.0578940512546562
|
1816
|
+
oa_m3_per_m2 = OpenStudio.convert(OpenStudio.convert(oa_cfm_per_ft2, 'cfm', 'm^3/s').get, '1/ft^2', '1/m^2').get
|
1817
|
+
model_add_residential_erv(model, zone, climate_zone, has_erv, oa_m3_per_m2)
|
1818
|
+
|
1819
|
+
# Shut-off air loop level OA intake
|
1820
|
+
oa_controller = air_loop_hvac.airLoopHVACOutdoorAirSystem.get.getControllerOutdoorAir
|
1821
|
+
oa_controller.setMinimumOutdoorAirSchedule(model.alwaysOffDiscreteSchedule)
|
1822
|
+
|
1823
|
+
serves_res_spc = true
|
1824
|
+
end
|
1825
|
+
|
1826
|
+
if has_erv & serves_res_spc
|
1827
|
+
# Remove air loop ERV
|
1828
|
+
air_loop_hvac_remove_erv(air_loop_hvac)
|
1829
|
+
elsif has_erv
|
1830
|
+
# Apply regular adjustment if the ERV doesn't serve a residential space
|
1831
|
+
oa_sys = nil
|
1832
|
+
if air_loop_hvac.airLoopHVACOutdoorAirSystem.is_initialized
|
1833
|
+
oa_sys = air_loop_hvac.airLoopHVACOutdoorAirSystem.get
|
1834
|
+
else
|
1835
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.AirLoopHVAC', "For #{air_loop_hvac.name}, ERV cannot be removed because the system has no OA intake.")
|
1836
|
+
return false
|
1837
|
+
end
|
1838
|
+
|
1839
|
+
# Get the existing ERV or create an ERV and add it to the OA system
|
1840
|
+
oa_sys.oaComponents.each do |oa_comp|
|
1841
|
+
if oa_comp.to_HeatExchangerAirToAirSensibleAndLatent.is_initialized
|
1842
|
+
erv = oa_comp.to_HeatExchangerAirToAirSensibleAndLatent.get
|
1843
|
+
heat_exchanger_air_to_air_sensible_and_latent_apply_prototype_efficiency(erv)
|
1844
|
+
end
|
1845
|
+
end
|
1846
|
+
end
|
1847
|
+
end
|
1848
|
+
else
|
1849
|
+
# Applies the DOE Prototype Building assumption that ERVs use
|
1850
|
+
# enthalpy wheels and therefore exceed the minimum effectiveness specified by 90.1
|
1851
|
+
model.getHeatExchangerAirToAirSensibleAndLatents.each { |obj| heat_exchanger_air_to_air_sensible_and_latent_apply_prototype_efficiency(obj) }
|
1852
|
+
end
|
1853
|
+
|
1854
|
+
# Update COP for large office CRAC
|
1855
|
+
# Applies the DOE Prototype Building Model (Large Office only)
|
1856
|
+
if @instvarbuilding_type == 'LargeOffice'
|
1857
|
+
model.getCoilCoolingWaterToAirHeatPumpEquationFits.sort.each do |coil_cooling_water_to_air_heat_pump|
|
1858
|
+
if coil_cooling_water_to_air_heat_pump.name.get.downcase.include?('datacenter')
|
1859
|
+
cop = coil_cooling_water_to_air_heat_pump_standard_minimum_cop(coil_cooling_water_to_air_heat_pump, rename = false, computer_room_air_conditioner = true)
|
1860
|
+
if cop.nil?
|
1861
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', "COP for #{coil_cooling_water_to_air_heat_pump.name} is not changed")
|
1862
|
+
else
|
1863
|
+
coil_cooling_water_to_air_heat_pump.setRatedCoolingCoefficientofPerformance(cop)
|
1864
|
+
end
|
1865
|
+
end
|
1866
|
+
end
|
1867
|
+
end
|
1868
|
+
|
1590
1869
|
return true
|
1591
1870
|
end
|
1592
1871
|
|
@@ -2198,7 +2477,7 @@ Standard.class_eval do
|
|
2198
2477
|
# Defaults to the pre-90.1-2010 assumption of DifferentialDryBulb.
|
2199
2478
|
#
|
2200
2479
|
# @param model [OpenStudio::Model::Model] the model
|
2201
|
-
# @param climate_zone [String]
|
2480
|
+
# @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
|
2202
2481
|
# @return [String] the economizer type. Possible values are:
|
2203
2482
|
# 'NoEconomizer'
|
2204
2483
|
# 'FixedDryBulb'
|
@@ -2230,7 +2509,7 @@ Standard.class_eval do
|
|
2230
2509
|
# that exception c to 90.1-2004/7 Section 6.5.1 applies.
|
2231
2510
|
if template == '90.1-2004' || template == '90.1-2007'
|
2232
2511
|
economizer_required = false
|
2233
|
-
|
2512
|
+
end
|
2234
2513
|
# This exception exist through 90.1-2019, for hospitals
|
2235
2514
|
# see Section 6.5.1 exception 4
|
2236
2515
|
if @instvarbuilding_type == 'Hospital' &&
|
@@ -2299,17 +2578,18 @@ Standard.class_eval do
|
|
2299
2578
|
end
|
2300
2579
|
|
2301
2580
|
# Implement occupancy based lighting level threshold (0.02 W/sqft). This is only for ASHRAE 90.1 2016 onwards.
|
2302
|
-
#
|
2303
|
-
# @code_sections [90.1-2016_9.4.1.1.h/i]
|
2581
|
+
# @note code_sections [90.1-2016_9.4.1.1.h/i]
|
2304
2582
|
# @author Xuechen (Jerry) Lei, PNNL
|
2305
|
-
# @param model [OpenStudio::Model::Model] OpenStudio Model
|
2306
2583
|
#
|
2584
|
+
# @param model [OpenStudio::Model::Model] OpenStudio Model
|
2585
|
+
# @return [Bool] returns true if successful, false if not
|
2307
2586
|
def model_add_lights_shutoff(model)
|
2308
2587
|
return false
|
2309
2588
|
end
|
2310
2589
|
|
2311
2590
|
# Get building door information to update infiltration
|
2312
2591
|
#
|
2592
|
+
# @param model [OpenStudio::Model::Model] OpenStudio Model
|
2313
2593
|
# return [Hash] Door infiltration information
|
2314
2594
|
def get_building_door_info(model)
|
2315
2595
|
get_building_door_info = {}
|
@@ -2351,8 +2631,8 @@ Standard.class_eval do
|
|
2351
2631
|
|
2352
2632
|
# Add door infiltration
|
2353
2633
|
#
|
2354
|
-
# @param [OpenStudio
|
2355
|
-
# @climate_zone [String]
|
2634
|
+
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
2635
|
+
# @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
|
2356
2636
|
# @return [Boolean] Returns true if successful, false otherwise or not applicable
|
2357
2637
|
def model_add_door_infiltration(model, climate_zone)
|
2358
2638
|
# Get door parameters for the building model
|
@@ -2456,16 +2736,16 @@ Standard.class_eval do
|
|
2456
2736
|
end
|
2457
2737
|
end
|
2458
2738
|
|
2459
|
-
if wwr
|
2460
|
-
|
2461
|
-
else
|
2462
|
-
|
2463
|
-
end
|
2739
|
+
return window_area / wall_area if wwr
|
2740
|
+
|
2741
|
+
# else
|
2742
|
+
return window_area
|
2464
2743
|
end
|
2465
2744
|
|
2466
2745
|
# Adjust model to comply with fenestration orientation
|
2467
2746
|
#
|
2468
|
-
# @param [OpenStudio::Model::Model] OpenStudio model object
|
2747
|
+
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
2748
|
+
# @param climate_zone [String] ASHRAE climate zone, e.g. 'ASHRAE 169-2013-4A'
|
2469
2749
|
# @return [Boolean] Returns true if successful, false otherwise
|
2470
2750
|
def model_fenestration_orientation(model, climate_zone)
|
2471
2751
|
return true
|
@@ -2546,4 +2826,94 @@ Standard.class_eval do
|
|
2546
2826
|
|
2547
2827
|
return true
|
2548
2828
|
end
|
2829
|
+
|
2830
|
+
# Offset values of a schedule
|
2831
|
+
# Main usage is for modeling occupancy standby mode
|
2832
|
+
# where the thermostat schedule in these mode are
|
2833
|
+
# required to setup/back their thermostat setpoints
|
2834
|
+
#
|
2835
|
+
# @param time_offset_hash [Hash] Hash providing time (key) and schedule value offset (values)
|
2836
|
+
# @param schedule [OpenStudio::model::ScheduleRuleset] OpenStudio schedule object
|
2837
|
+
# @return [OpenStudio::model::ScheduleRuleset] Modified OpenStudio schedule object
|
2838
|
+
def model_offset_schedule_value(schedule, time_offset_hash)
|
2839
|
+
offset_sch = schedule.clone(schedule.model).to_ScheduleRuleset.get
|
2840
|
+
|
2841
|
+
# Get day schedule
|
2842
|
+
day_schedules = []
|
2843
|
+
default_day_schedule = offset_sch.defaultDaySchedule
|
2844
|
+
day_schedules << default_day_schedule
|
2845
|
+
offset_sch.scheduleRules.each do |rule|
|
2846
|
+
day_schedules << rule.daySchedule
|
2847
|
+
end
|
2848
|
+
|
2849
|
+
# Offset schedule values
|
2850
|
+
day_schedules.each do |day_schedule|
|
2851
|
+
(0..23).each do |hr|
|
2852
|
+
next if !time_offset_hash.key?(hr.to_s)
|
2853
|
+
|
2854
|
+
t = OpenStudio::Time.new(0, hr, 0, 0)
|
2855
|
+
|
2856
|
+
# Get schedule value
|
2857
|
+
value = day_schedule.getValue(t)
|
2858
|
+
|
2859
|
+
# Offset schedule value
|
2860
|
+
day_schedule.addValue(t, value)
|
2861
|
+
t_p_1 = OpenStudio::Time.new(0, hr + 1, 0, 0)
|
2862
|
+
day_schedule.addValue(t_p_1, value + time_offset_hash[hr.to_s])
|
2863
|
+
end
|
2864
|
+
end
|
2865
|
+
|
2866
|
+
offset_sch.setName("#{schedule.name} - offset")
|
2867
|
+
return offset_sch
|
2868
|
+
end
|
2869
|
+
|
2870
|
+
# Set/change values of a schedule
|
2871
|
+
# Main usage is for modeling occupancy standby mode
|
2872
|
+
# where the thermostat schedule in these mode are
|
2873
|
+
# required to setup/back their thermostat setpoints
|
2874
|
+
#
|
2875
|
+
# @param time_offset_hash [Hash] Hash providing time (key) and schedule value offset (values)
|
2876
|
+
# @param schedule [OpenStudio::model::ScheduleRuleset] OpenStudio schedule object
|
2877
|
+
# @return [OpenStudio::model::ScheduleRuleset] Modified OpenStudio schedule object
|
2878
|
+
def model_set_schedule_value(schedule, time_value_hash)
|
2879
|
+
return nil unless schedule.to_ScheduleRuleset.is_initialized
|
2880
|
+
|
2881
|
+
new_sch = schedule.clone(schedule.model).to_ScheduleRuleset.get
|
2882
|
+
|
2883
|
+
# Get day schedule
|
2884
|
+
day_schedules = []
|
2885
|
+
default_day_schedule = new_sch.defaultDaySchedule
|
2886
|
+
day_schedules << default_day_schedule
|
2887
|
+
new_sch.scheduleRules.each do |rule|
|
2888
|
+
day_schedules << rule.daySchedule
|
2889
|
+
end
|
2890
|
+
|
2891
|
+
# Set schedule values
|
2892
|
+
day_schedules.each do |day_schedule|
|
2893
|
+
(0..23).each do |hr|
|
2894
|
+
next if !time_value_hash.key?(hr.to_s)
|
2895
|
+
|
2896
|
+
t = OpenStudio::Time.new(0, hr, 0, 0)
|
2897
|
+
|
2898
|
+
# Get schedule value
|
2899
|
+
value = day_schedule.getValue(t)
|
2900
|
+
|
2901
|
+
# Set schedule value
|
2902
|
+
day_schedule.addValue(t, value)
|
2903
|
+
t_p_1 = OpenStudio::Time.new(0, hr + 1, 0, 0)
|
2904
|
+
day_schedule.addValue(t_p_1, time_value_hash[hr.to_s])
|
2905
|
+
end
|
2906
|
+
end
|
2907
|
+
|
2908
|
+
new_sch.setName("#{schedule.name} - adjusted")
|
2909
|
+
return new_sch
|
2910
|
+
end
|
2911
|
+
|
2912
|
+
# Modify thermostat schedule to account for a thermostat setback/up
|
2913
|
+
#
|
2914
|
+
# @param thermostat [OpenStudio::model::ThermostatSetpointDualSetpoint] OpenStudio ThermostatSetpointDualSetpoint object
|
2915
|
+
# @return [Boolean] true if success
|
2916
|
+
def space_occupancy_standby_mode(thermostat)
|
2917
|
+
return false
|
2918
|
+
end
|
2549
2919
|
end
|