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,13 +1,12 @@
|
|
1
1
|
class NECB2011
|
2
2
|
def model_add_hvac(model:)
|
3
3
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Started Adding HVAC')
|
4
|
-
system_fuel_defaults =
|
4
|
+
system_fuel_defaults = get_canadian_system_defaults_by_weatherfile_name(model)
|
5
5
|
necb_autozone_and_autosystem(model: model, runner: nil, use_ideal_air_loads: false, system_fuel_defaults: system_fuel_defaults)
|
6
6
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Finished adding HVAC')
|
7
7
|
return true
|
8
8
|
end
|
9
9
|
|
10
|
-
|
11
10
|
# NECB does not change damper positions
|
12
11
|
#
|
13
12
|
# return [Bool] returns true if successful, false if not
|
@@ -45,7 +44,7 @@ class NECB2011
|
|
45
44
|
dsafr_m3_per_s = air_loop_hvac.model.getAutosizedValue(air_loop_hvac, 'Design Supply Air Flow Rate', 'm3/s')
|
46
45
|
min_dsafr_l_per_s = 1500
|
47
46
|
unless dsafr_m3_per_s.empty?
|
48
|
-
dsafr_l_per_s = dsafr_m3_per_s.get
|
47
|
+
dsafr_l_per_s = dsafr_m3_per_s.get * 1000
|
49
48
|
if dsafr_l_per_s > min_dsafr_l_per_s
|
50
49
|
economizer_required = true
|
51
50
|
puts "economizer_required = true for #{air_loop_hvac.name} because dsafr_l_per_s(#{dsafr_l_per_s}) > 1500"
|
@@ -90,11 +89,10 @@ class NECB2011
|
|
90
89
|
def air_loop_hvac_apply_economizer_integration(air_loop_hvac, climate_zone)
|
91
90
|
# Get the OA system and OA controller
|
92
91
|
oa_sys = air_loop_hvac.airLoopHVACOutdoorAirSystem
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
end
|
92
|
+
# No OA system
|
93
|
+
return false if !oa_sys.is_initialized
|
94
|
+
|
95
|
+
oa_sys = oa_sys.get
|
98
96
|
oa_control = oa_sys.getControllerOutdoorAir
|
99
97
|
|
100
98
|
# Apply integrated economizer
|
@@ -236,10 +234,12 @@ class NECB2011
|
|
236
234
|
oa_flow = oa_flow_per_floor_area * space.floorArea * zone.multiplier # oa flow for the space
|
237
235
|
zone_oa += oa_flow # add up oa flow for all spaces to get zone air flow
|
238
236
|
end
|
239
|
-
|
237
|
+
# space loop
|
238
|
+
end
|
240
239
|
sum_zone_oa += zone_oa # sum of all zone oa flows to get system oa flow
|
241
240
|
sum_zone_oa_times_heat_design_t += (zone_oa * heat_design_t) # calculated to get oa flow weighted average of design exhaust temperature
|
242
|
-
|
241
|
+
# zone loop
|
242
|
+
end
|
243
243
|
|
244
244
|
# Calculate average exhaust temperature (oa flow weighted average)
|
245
245
|
avg_exhaust_temp = sum_zone_oa_times_heat_design_t / sum_zone_oa
|
@@ -370,12 +370,12 @@ class NECB2011
|
|
370
370
|
|
371
371
|
# Sets the minimum effectiveness of the heat exchanger per
|
372
372
|
# the standard.
|
373
|
-
def
|
373
|
+
def heat_exchanger_air_to_air_sensible_and_latent_apply_effectiveness(heat_exchanger_air_to_air_sensible_and_latent, erv_name = nil)
|
374
374
|
# Assumed to be sensible and latent at all flow
|
375
375
|
# This will now get data of the erv from the json file instead of hardcoding it. Defaults to NECB2011 erv we have been using.
|
376
376
|
erv_name = 'NECB_Default' if erv_name.nil?
|
377
377
|
erv_info = @standards_data['tables']['erv']['table'].detect { |item| item['erv_name'] == erv_name }
|
378
|
-
raise("Could not find #{erv_name} in #{self.class.name} class' erv.json file or it's parents. The available ervs are #{@standards_data['tables']['erv']['table'].map{|item| item['erv_name']}}") if erv_info.nil?
|
378
|
+
raise("Could not find #{erv_name} in #{self.class.name} class' erv.json file or it's parents. The available ervs are #{@standards_data['tables']['erv']['table'].map { |item| item['erv_name'] }}") if erv_info.nil?
|
379
379
|
|
380
380
|
heat_exchanger_air_to_air_sensible_and_latent.setHeatExchangerType(erv_info['HeatExchangerType'])
|
381
381
|
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat100HeatingAirFlow(erv_info['SensibleEffectivenessat100HeatingAirFlow'])
|
@@ -391,12 +391,11 @@ class NECB2011
|
|
391
391
|
heat_exchanger_air_to_air_sensible_and_latent.setEconomizerLockout(erv_info['EconomizerLockout'])
|
392
392
|
heat_exchanger_air_to_air_sensible_and_latent.setThresholdTemperature(erv_info['ThresholdTemperature'])
|
393
393
|
heat_exchanger_air_to_air_sensible_and_latent.setInitialDefrostTimeFraction(erv_info['InitialDefrostTimeFraction'])
|
394
|
-
update_sys_name(heat_exchanger_air_to_air_sensible_and_latent.airLoopHVAC.get,sys_hr:
|
394
|
+
update_sys_name(heat_exchanger_air_to_air_sensible_and_latent.airLoopHVAC.get, sys_hr: 'erv')
|
395
395
|
|
396
396
|
return true
|
397
397
|
end
|
398
398
|
|
399
|
-
|
400
399
|
# Determine if demand control ventilation (DCV) is
|
401
400
|
# required for this air loop.
|
402
401
|
#
|
@@ -720,7 +719,6 @@ class NECB2011
|
|
720
719
|
#
|
721
720
|
# @return [Double] minimum thermal efficiency
|
722
721
|
def coil_heating_gas_standard_minimum_thermal_efficiency(coil_heating_gas, rename = false)
|
723
|
-
|
724
722
|
# Get the coil properties
|
725
723
|
search_criteria = coil_heating_gas_find_search_criteria
|
726
724
|
capacity_w = coil_heating_gas_find_capacity(coil_heating_gas)
|
@@ -803,7 +801,6 @@ class NECB2011
|
|
803
801
|
successfully_set_all_properties = false
|
804
802
|
end
|
805
803
|
|
806
|
-
|
807
804
|
# Make the plf vs plr curve
|
808
805
|
plffplr_curve = model_add_curve(coil_heating_gas.model, coil_props['efffplr'])
|
809
806
|
if plffplr_curve
|
@@ -820,7 +817,6 @@ class NECB2011
|
|
820
817
|
coil_heating_gas.setGasBurnerEfficiency(thermal_eff.to_f)
|
821
818
|
|
822
819
|
return successfully_set_all_properties
|
823
|
-
|
824
820
|
end
|
825
821
|
|
826
822
|
# Applies the standard efficiency ratings and typical performance curves to this object.
|
@@ -842,7 +838,9 @@ class NECB2011
|
|
842
838
|
oa_system = airloop.airLoopHVACOutdoorAirSystem.get
|
843
839
|
controller_oa = oa_system.getControllerOutdoorAir
|
844
840
|
end
|
845
|
-
min_oa_flow_rate
|
841
|
+
min_oa_flow_rate = 0.0
|
842
|
+
oaf = 0.0
|
843
|
+
|
846
844
|
if controller_oa
|
847
845
|
min_oa_flow_rate = nil
|
848
846
|
if controller_oa.minimumOutdoorAirFlowRate.is_initialized
|
@@ -881,7 +879,7 @@ class NECB2011
|
|
881
879
|
end
|
882
880
|
|
883
881
|
# Set final number of cooling stages and create missing stages if needed
|
884
|
-
for istage in 2..final_num_stages-1
|
882
|
+
for istage in 2..final_num_stages - 1
|
885
883
|
new_clg_stage = OpenStudio::Model::CoilCoolingDXMultiSpeedStageData.new(model)
|
886
884
|
coil_cooling_dx_multi_speed.addStage(new_clg_stage)
|
887
885
|
end
|
@@ -891,14 +889,14 @@ class NECB2011
|
|
891
889
|
# is maintained above the outside air flow rate
|
892
890
|
coil_cooling_dx_multi_speed.stages[0].setGrossRatedTotalCoolingCapacity(stage_cap[0])
|
893
891
|
coil_cooling_dx_multi_speed.stages[1].setGrossRatedTotalCoolingCapacity(stage_cap[1])
|
894
|
-
case
|
892
|
+
case coil_cooling_dx_multi_speed.stages.size
|
895
893
|
when 2
|
896
|
-
if
|
894
|
+
if oaf > 0.5 then multi_speed_heat_pump.setSpeed1SupplyAirFlowRateDuringCoolingOperation(min_oa_flow_rate) end
|
897
895
|
when 3
|
898
896
|
coil_cooling_dx_multi_speed.stages[2].setGrossRatedTotalCoolingCapacity(stage_cap[2])
|
899
897
|
if (oaf > 0.333) && (oaf <= 0.666)
|
900
898
|
multi_speed_heat_pump.setSpeed1SupplyAirFlowRateDuringCoolingOperation(min_oa_flow_rate)
|
901
|
-
elsif
|
899
|
+
elsif oaf > 0.666
|
902
900
|
multi_speed_heat_pump.setSpeed1SupplyAirFlowRateDuringCoolingOperation(min_oa_flow_rate)
|
903
901
|
multi_speed_heat_pump.setSpeed2SupplyAirFlowRateDuringCoolingOperation(min_oa_flow_rate)
|
904
902
|
end
|
@@ -910,7 +908,7 @@ class NECB2011
|
|
910
908
|
elsif (oaf > 0.5) && (oaf <= 0.75)
|
911
909
|
multi_speed_heat_pump.setSpeed1SupplyAirFlowRateDuringCoolingOperation(min_oa_flow_rate)
|
912
910
|
multi_speed_heat_pump.setSpeed2SupplyAirFlowRateDuringCoolingOperation(min_oa_flow_rate)
|
913
|
-
elsif
|
911
|
+
elsif oaf > 0.75
|
914
912
|
multi_speed_heat_pump.setSpeed1SupplyAirFlowRateDuringCoolingOperation(min_oa_flow_rate)
|
915
913
|
multi_speed_heat_pump.setSpeed2SupplyAirFlowRateDuringCoolingOperation(min_oa_flow_rate)
|
916
914
|
multi_speed_heat_pump.setSpeed3SupplyAirFlowRateDuringCoolingOperation(min_oa_flow_rate)
|
@@ -1001,8 +999,8 @@ class NECB2011
|
|
1001
999
|
# Set the COP values
|
1002
1000
|
cop, new_comp_name = coil_cooling_dx_multi_speed_standard_minimum_cop(coil_cooling_dx_multi_speed)
|
1003
1001
|
unless cop.nil?
|
1004
|
-
clg_stages.sort.each do |
|
1005
|
-
|
1002
|
+
clg_stages.sort.each do |curr_istage|
|
1003
|
+
curr_istage.setGrossRatedCoolingCOP(cop)
|
1006
1004
|
end
|
1007
1005
|
end
|
1008
1006
|
sql_db_vars_map[new_comp_name] = coil_cooling_dx_multi_speed.name.to_s
|
@@ -1015,7 +1013,6 @@ class NECB2011
|
|
1015
1013
|
create_ems_to_turn_on_AirLoopHVACUnitaryHeatPumpAirToAirMultiSpeed_for_night_cycle(multi_speed_heat_pump)
|
1016
1014
|
|
1017
1015
|
return sql_db_vars_map
|
1018
|
-
|
1019
1016
|
end
|
1020
1017
|
|
1021
1018
|
# Create EMS to turn on "AirLoopHVACUnitaryHeatPumpAirToAirMultiSpeed" in response to a call
|
@@ -1025,48 +1022,48 @@ class NECB2011
|
|
1025
1022
|
model = multi_speed_heat_pump.model
|
1026
1023
|
avail_manager_name = nil
|
1027
1024
|
if multi_speed_heat_pump.airLoopHVAC.is_initialized
|
1028
|
-
if
|
1025
|
+
if !multi_speed_heat_pump.airLoopHVAC.get.availabilityManagers.empty?
|
1029
1026
|
avail_manager_name = multi_speed_heat_pump.airLoopHVAC.get.availabilityManagers[0].name.to_s
|
1030
1027
|
end
|
1031
1028
|
end
|
1032
|
-
|
1033
|
-
|
1034
|
-
|
1035
|
-
|
1036
|
-
|
1037
|
-
|
1038
|
-
|
1039
|
-
|
1040
|
-
|
1041
|
-
|
1042
|
-
|
1043
|
-
|
1044
|
-
|
1045
|
-
|
1046
|
-
|
1047
|
-
|
1048
|
-
|
1049
|
-
|
1050
|
-
|
1051
|
-
|
1052
|
-
|
1053
|
-
|
1054
|
-
|
1055
|
-
|
1056
|
-
|
1029
|
+
return unless avail_manager_name
|
1030
|
+
|
1031
|
+
avail_manager_out_var_name = 'Availability Manager Night Cycle Control Status'
|
1032
|
+
avail_manager_out_var = OpenStudio::Model::OutputVariable.new(avail_manager_out_var_name, model)
|
1033
|
+
avail_manager_out_var.setKeyValue(avail_manager_name)
|
1034
|
+
avail_manager_out_var.setReportingFrequency('Timestep')
|
1035
|
+
night_cycle_sensor = OpenStudio::Model::EnergyManagementSystemSensor.new(model, avail_manager_out_var)
|
1036
|
+
heat_pump_avail_sch = nil
|
1037
|
+
if multi_speed_heat_pump.availabilitySchedule.is_initialized
|
1038
|
+
heat_pump_avail_sch = multi_speed_heat_pump.availabilitySchedule.get
|
1039
|
+
elsif multi_speed_heat_pump.airLoopHVAC.get.availabilitySchedule.is_initialized
|
1040
|
+
heat_pump_avail_sch = multi_speed_heat_pump.airLoopHVAC.get.availabilitySchedule.get
|
1041
|
+
else
|
1042
|
+
heat_pump_avail_sch = OpenStudio::Model::ScheduleConstant.new(model)
|
1043
|
+
heat_pump_avail_sch.setValue(1.0)
|
1044
|
+
end
|
1045
|
+
heat_pump_avail_sch_var = OpenStudio::Model::OutputVariable.new('Schedule Value', model)
|
1046
|
+
heat_pump_avail_sch_var.setKeyValue(heat_pump_avail_sch.name.to_s)
|
1047
|
+
heat_pump_avail_sch_sensor = OpenStudio::Model::EnergyManagementSystemSensor.new(model, heat_pump_avail_sch_var)
|
1048
|
+
updated_heat_pump_avail_sch = OpenStudio::Model::ScheduleConstant.new(model)
|
1049
|
+
multi_speed_heat_pump.setAvailabilitySchedule(updated_heat_pump_avail_sch)
|
1050
|
+
heat_pump_avail_sch_actuator = OpenStudio::Model::EnergyManagementSystemActuator.new(updated_heat_pump_avail_sch, 'Schedule:Constant', 'Schedule Value')
|
1051
|
+
heat_pump_avail_sch_prog = OpenStudio::Model::EnergyManagementSystemProgram.new(model)
|
1052
|
+
heat_pump_avail_sch_prog.setName("#{multi_speed_heat_pump.name.to_s.gsub(/[ +-.]/, '_')} Availability Schedule Program by Line")
|
1053
|
+
heat_pump_avail_sch_prog_body = <<-EMS
|
1054
|
+
IF #{heat_pump_avail_sch_sensor.handle} > 0.0
|
1057
1055
|
SET #{heat_pump_avail_sch_actuator.handle} = #{heat_pump_avail_sch_sensor.handle}
|
1058
1056
|
ELSEIF #{night_cycle_sensor.handle} == 2.0
|
1059
1057
|
SET #{heat_pump_avail_sch_actuator.handle} = 1.0
|
1060
1058
|
ELSE
|
1061
1059
|
SET #{heat_pump_avail_sch_actuator.handle} = 0.0
|
1062
1060
|
ENDIF
|
1063
|
-
|
1064
|
-
|
1065
|
-
|
1066
|
-
|
1067
|
-
|
1068
|
-
|
1069
|
-
end
|
1061
|
+
EMS
|
1062
|
+
heat_pump_avail_sch_prog.setBody(heat_pump_avail_sch_prog_body)
|
1063
|
+
pcm = OpenStudio::Model::EnergyManagementSystemProgramCallingManager.new(model)
|
1064
|
+
pcm.setName("#{heat_pump_avail_sch_prog.name.to_s.gsub(/[ +-.]/, '_')} Calling Manager")
|
1065
|
+
pcm.setCallingPoint('InsideHVACSystemIterationLoop')
|
1066
|
+
pcm.addProgram(heat_pump_avail_sch_prog)
|
1070
1067
|
end
|
1071
1068
|
|
1072
1069
|
# Applies the standard efficiency ratings and typical performance curves to this object.
|
@@ -1090,7 +1087,7 @@ class NECB2011
|
|
1090
1087
|
|
1091
1088
|
# Define the criteria to find the properties in the hvac standards data set.
|
1092
1089
|
search_criteria = coil_heating_gas_multi_stage_find_search_criteria(coil_heating_gas_multi_stage)
|
1093
|
-
fuel_type = search_criteria[
|
1090
|
+
fuel_type = search_criteria['fuel_type']
|
1094
1091
|
capacity_w = coil_heating_gas_multi_stage_find_capacity(coil_heating_gas_multi_stage)
|
1095
1092
|
|
1096
1093
|
# Find system design outside air flow rate and fraction
|
@@ -1099,7 +1096,8 @@ class NECB2011
|
|
1099
1096
|
oa_system = airloop.airLoopHVACOutdoorAirSystem.get
|
1100
1097
|
controller_oa = oa_system.getControllerOutdoorAir
|
1101
1098
|
end
|
1102
|
-
min_oa_flow_rate
|
1099
|
+
min_oa_flow_rate = 0.0
|
1100
|
+
oaf = 0.0
|
1103
1101
|
if controller_oa
|
1104
1102
|
min_oa_flow_rate = nil
|
1105
1103
|
if controller_oa.minimumOutdoorAirFlowRate.is_initialized
|
@@ -1143,7 +1141,7 @@ class NECB2011
|
|
1143
1141
|
end
|
1144
1142
|
|
1145
1143
|
# Set final number of stages and create missing stages if needed
|
1146
|
-
for istage in 1..final_num_stages-1
|
1144
|
+
for istage in 1..final_num_stages - 1
|
1147
1145
|
new_htg_stage = OpenStudio::Model::CoilHeatingGasMultiStageStageData.new(model)
|
1148
1146
|
coil_heating_gas_multi_stage.addStage(new_htg_stage)
|
1149
1147
|
end
|
@@ -1152,16 +1150,16 @@ class NECB2011
|
|
1152
1150
|
# Set final capacities for each of the stages. The air flow rate for each of the stages
|
1153
1151
|
# is maintained above the outside air flow rate
|
1154
1152
|
coil_heating_gas_multi_stage.stages[0].setNominalCapacity(stage_cap[0])
|
1155
|
-
case
|
1153
|
+
case coil_heating_gas_multi_stage.stages.size
|
1156
1154
|
when 2
|
1157
1155
|
coil_heating_gas_multi_stage.stages[1].setNominalCapacity(stage_cap[1])
|
1158
|
-
if
|
1156
|
+
if oaf > 0.5 then multi_speed_heat_pump.setSpeed1SupplyAirFlowRateDuringHeatingOperation(min_oa_flow_rate) end
|
1159
1157
|
when 3
|
1160
1158
|
coil_heating_gas_multi_stage.stages[1].setNominalCapacity(stage_cap[1])
|
1161
1159
|
coil_heating_gas_multi_stage.stages[2].setNominalCapacity(stage_cap[2])
|
1162
1160
|
if (oaf > 0.333) && (oaf <= 0.666)
|
1163
1161
|
multi_speed_heat_pump.setSpeed1SupplyAirFlowRateDuringHeatingOperation(min_oa_flow_rate)
|
1164
|
-
elsif
|
1162
|
+
elsif oaf > 0.666
|
1165
1163
|
multi_speed_heat_pump.setSpeed1SupplyAirFlowRateDuringHeatingOperation(min_oa_flow_rate)
|
1166
1164
|
multi_speed_heat_pump.setSpeed2SupplyAirFlowRateDuringHeatingOperation(min_oa_flow_rate)
|
1167
1165
|
end
|
@@ -1174,7 +1172,7 @@ class NECB2011
|
|
1174
1172
|
elsif (oaf > 0.5) && (oaf <= 0.75)
|
1175
1173
|
multi_speed_heat_pump.setSpeed1SupplyAirFlowRateDuringHeatingOperation(min_oa_flow_rate)
|
1176
1174
|
multi_speed_heat_pump.setSpeed2SupplyAirFlowRateDuringHeatingOperation(min_oa_flow_rate)
|
1177
|
-
elsif
|
1175
|
+
elsif oaf > 0.75
|
1178
1176
|
multi_speed_heat_pump.setSpeed1SupplyAirFlowRateDuringHeatingOperation(min_oa_flow_rate)
|
1179
1177
|
multi_speed_heat_pump.setSpeed2SupplyAirFlowRateDuringHeatingOperation(min_oa_flow_rate)
|
1180
1178
|
multi_speed_heat_pump.setSpeed3SupplyAirFlowRateDuringHeatingOperation(min_oa_flow_rate)
|
@@ -1247,7 +1245,6 @@ class NECB2011
|
|
1247
1245
|
end
|
1248
1246
|
|
1249
1247
|
return successfully_set_all_properties
|
1250
|
-
|
1251
1248
|
end
|
1252
1249
|
|
1253
1250
|
# Determines the baseline fan impeller efficiency
|
@@ -1329,10 +1326,10 @@ class NECB2011
|
|
1329
1326
|
end
|
1330
1327
|
|
1331
1328
|
search_criteria = {
|
1332
|
-
|
1333
|
-
|
1334
|
-
|
1335
|
-
|
1329
|
+
'motor_use' => motor_use,
|
1330
|
+
'motor_type' => motor_type,
|
1331
|
+
'number_of_poles' => 4.0,
|
1332
|
+
'type' => 'Enclosed'
|
1336
1333
|
}
|
1337
1334
|
|
1338
1335
|
# Exception for small fans, including
|
@@ -1398,9 +1395,9 @@ class NECB2011
|
|
1398
1395
|
|
1399
1396
|
# Assuming all pump motors are 4-pole ODP
|
1400
1397
|
search_criteria = {
|
1401
|
-
|
1402
|
-
|
1403
|
-
|
1398
|
+
'motor_use' => 'PUMP',
|
1399
|
+
'number_of_poles' => 4.0,
|
1400
|
+
'type' => 'Enclosed'
|
1404
1401
|
}
|
1405
1402
|
|
1406
1403
|
motor_properties = model_find_object(motors, search_criteria, motor_bhp)
|
@@ -1428,13 +1425,11 @@ class NECB2011
|
|
1428
1425
|
return [motor_eff, nominal_hp]
|
1429
1426
|
end
|
1430
1427
|
|
1431
|
-
|
1432
1428
|
# Determines whether there is a requirement to have a
|
1433
1429
|
# VSD or some other method to reduce fan power
|
1434
1430
|
# at low part load ratios.
|
1435
1431
|
def fan_variable_volume_part_load_fan_power_limitation?(fan_variable_volume)
|
1436
1432
|
part_load_control_required = false
|
1437
|
-
|
1438
1433
|
return part_load_control_required
|
1439
1434
|
end
|
1440
1435
|
|
@@ -1451,13 +1446,13 @@ class NECB2011
|
|
1451
1446
|
end
|
1452
1447
|
|
1453
1448
|
def model_apply_sizing_parameters(model)
|
1454
|
-
model.getSizingParameters.setHeatingSizingFactor(
|
1455
|
-
model.getSizingParameters.setCoolingSizingFactor(
|
1456
|
-
OpenStudio.logFree(OpenStudio::Info, 'openstudio.prototype.Model', "Set sizing factors to #{
|
1449
|
+
model.getSizingParameters.setHeatingSizingFactor(get_standards_constant('sizing_factor_max_heating'))
|
1450
|
+
model.getSizingParameters.setCoolingSizingFactor(get_standards_constant('sizing_factor_max_cooling'))
|
1451
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.prototype.Model', "Set sizing factors to #{get_standards_constant('sizing_factor_max_heating')} for heating and #{get_standards_constant('sizing_factor_max_heating')} for cooling.")
|
1457
1452
|
end
|
1458
1453
|
|
1459
1454
|
def fan_constant_volume_apply_prototype_fan_pressure_rise(fan_constant_volume)
|
1460
|
-
fan_constant_volume.setPressureRise(
|
1455
|
+
fan_constant_volume.setPressureRise(get_standards_constant('fan_constant_volume_pressure_rise_value'))
|
1461
1456
|
return true
|
1462
1457
|
end
|
1463
1458
|
|
@@ -1475,11 +1470,11 @@ class NECB2011
|
|
1475
1470
|
# and whether the fan lives inside a unit heater, PTAC, etc.
|
1476
1471
|
def fan_variable_volume_apply_prototype_fan_pressure_rise(fan_variable_volume)
|
1477
1472
|
# 1000 Pa for supply fan and 458.33 Pa for return fan (accounts for efficiency differences between two fans)
|
1478
|
-
if
|
1479
|
-
sfan_deltaP =
|
1473
|
+
if fan_variable_volume.name.to_s.include?('Supply')
|
1474
|
+
sfan_deltaP = get_standards_constant('supply_fan_variable_volume_pressure_rise_value')
|
1480
1475
|
fan_variable_volume.setPressureRise(sfan_deltaP)
|
1481
|
-
elsif
|
1482
|
-
rfan_deltaP =
|
1476
|
+
elsif fan_variable_volume.name.to_s.include?('Return')
|
1477
|
+
rfan_deltaP = get_standards_constant('return_fan_variable_volume_pressure_rise_value')
|
1483
1478
|
fan_variable_volume.setPressureRise(rfan_deltaP)
|
1484
1479
|
end
|
1485
1480
|
return true
|
@@ -1581,7 +1576,7 @@ class NECB2011
|
|
1581
1576
|
# Helper method to find out which climate zone set contains a specific climate zone.
|
1582
1577
|
# Returns climate zone set name as String if success, nil if not found.
|
1583
1578
|
def model_find_climate_zone_set(model, clim)
|
1584
|
-
return
|
1579
|
+
return 'NECB-CNEB ClimatZone 4-8'
|
1585
1580
|
end
|
1586
1581
|
|
1587
1582
|
def setup_hw_loop_with_components(model,
|
@@ -1725,7 +1720,6 @@ class NECB2011
|
|
1725
1720
|
|
1726
1721
|
return clg_tower
|
1727
1722
|
end
|
1728
|
-
|
1729
1723
|
|
1730
1724
|
# This method cycles through the spaces in a thermal zone and then sorts them by story. The method then cycles
|
1731
1725
|
# through the spaces on a story and then calculates the centroid of the spaces in the thermal zone on that floor. The
|
@@ -1746,8 +1740,8 @@ class NECB2011
|
|
1746
1740
|
# Including regular expressions in the following match for cases where extra characters, which do not belong, are
|
1747
1741
|
# added to either the space type in the model or the space type reference file.
|
1748
1742
|
sp_type_info = @standards_data['space_types'].detect do |data|
|
1749
|
-
(
|
1750
|
-
|
1743
|
+
(Regexp.new(data['space_type'].to_s.upcase).match(sp_type.upcase) || Regexp.new(sp_type.upcase).match(data['space_type'].to_s.upcase) || (data['space_type'].to_s.upcase == sp_type.upcase)) &&
|
1744
|
+
(data['building_type'].to_s == 'Space Function')
|
1751
1745
|
end
|
1752
1746
|
if sp_type_info.nil?
|
1753
1747
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.thermal_zone_get_centroid_per_floor', "The space type called #{sp_type} could not be found. Please check that the schedules.json file is available and that the space types are spelled correctly")
|
@@ -1755,33 +1749,33 @@ class NECB2011
|
|
1755
1749
|
end
|
1756
1750
|
# Determine if space is heated or cooled via spacetype heating or cooling setpoints also checking if the space is
|
1757
1751
|
# a plenum by checking if there is a hvac system associtated with it
|
1758
|
-
if sp_type_info['heating_setpoint_schedule'].nil?
|
1752
|
+
if sp_type_info['heating_setpoint_schedule'].nil?
|
1759
1753
|
heated = FALSE
|
1760
1754
|
else
|
1761
1755
|
heated = TRUE
|
1762
1756
|
end
|
1763
|
-
if sp_type_info['cooling_setpoint_schedule'].nil?
|
1757
|
+
if sp_type_info['cooling_setpoint_schedule'].nil?
|
1764
1758
|
cooled = FALSE
|
1765
1759
|
else
|
1766
1760
|
cooled = TRUE
|
1767
1761
|
end
|
1768
|
-
if (sp_type_info['necb_hvac_system_selection_type'] == '- undefined -') || /undefined/.match(sp_type_info['necb_hvac_system_selection_type'])
|
1762
|
+
if (sp_type_info['necb_hvac_system_selection_type'] == '- undefined -') || /undefined/.match(sp_type_info['necb_hvac_system_selection_type'])
|
1769
1763
|
not_plenum = FALSE
|
1770
1764
|
else
|
1771
1765
|
not_plenum = TRUE
|
1772
1766
|
end
|
1773
1767
|
# If the spaces are heated or cooled and are not a plenum then continue
|
1774
|
-
if (heated || cooled)
|
1768
|
+
if (heated || cooled) && not_plenum
|
1775
1769
|
# Get the story name and sit it to none if there is no story name
|
1776
1770
|
story_name = space.buildingStory.get.nameString
|
1777
1771
|
story_name = 'none' if story_name.nil?
|
1778
1772
|
# If this is the first story in the arry then add a new one.
|
1779
1773
|
if stories.empty?
|
1780
1774
|
stories << {
|
1781
|
-
|
1782
|
-
|
1783
|
-
|
1784
|
-
|
1775
|
+
story_name: story_name,
|
1776
|
+
spaces: [space],
|
1777
|
+
centroid: [0, 0, 0],
|
1778
|
+
ceiling_area: 0
|
1785
1779
|
}
|
1786
1780
|
next
|
1787
1781
|
else
|
@@ -1795,10 +1789,10 @@ class NECB2011
|
|
1795
1789
|
# If the story is not in the array then add it.
|
1796
1790
|
if i.nil?
|
1797
1791
|
stories << {
|
1798
|
-
|
1799
|
-
|
1800
|
-
|
1801
|
-
|
1792
|
+
story_name: story_name,
|
1793
|
+
spaces: [space],
|
1794
|
+
centroid: [0, 0, 0],
|
1795
|
+
ceiling_area: 0
|
1802
1796
|
}
|
1803
1797
|
else
|
1804
1798
|
# If the story is already in the arry then add the space to the array of spaces for that story
|
@@ -1854,10 +1848,9 @@ class NECB2011
|
|
1854
1848
|
return stories
|
1855
1849
|
end
|
1856
1850
|
|
1857
|
-
#Create a new DX cooling coil with NECB curve characteristics
|
1851
|
+
# Create a new DX cooling coil with NECB curve characteristics
|
1858
1852
|
def add_onespeed_DX_coil(model, always_on)
|
1859
|
-
|
1860
|
-
#clg_cap_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
|
1853
|
+
# clg_cap_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
|
1861
1854
|
# clg_cap_f_of_temp = model_add_curve("DXCOOL-NECB2011-REF-CAPFT")
|
1862
1855
|
clg_cap_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
|
1863
1856
|
clg_cap_f_of_temp.setCoefficient1Constant(0.867905)
|
@@ -1871,7 +1864,7 @@ class NECB2011
|
|
1871
1864
|
clg_cap_f_of_temp.setMinimumValueofy(24.0)
|
1872
1865
|
clg_cap_f_of_temp.setMaximumValueofy(46.0)
|
1873
1866
|
|
1874
|
-
#clg_cap_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
|
1867
|
+
# clg_cap_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
|
1875
1868
|
clg_cap_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
|
1876
1869
|
clg_cap_f_of_flow.setCoefficient1Constant(1.0)
|
1877
1870
|
clg_cap_f_of_flow.setCoefficient2x(0.0)
|
@@ -1880,7 +1873,7 @@ class NECB2011
|
|
1880
1873
|
clg_cap_f_of_flow.setMaximumValueofx(1.0)
|
1881
1874
|
|
1882
1875
|
# clg_energy_input_ratio_f_of_temp = = model_add_curve(""DXCOOL-NECB2011-REF-COOLEIRFT")
|
1883
|
-
#clg_energy_input_ratio_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
|
1876
|
+
# clg_energy_input_ratio_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
|
1884
1877
|
clg_energy_input_ratio_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
|
1885
1878
|
clg_energy_input_ratio_f_of_temp.setCoefficient1Constant(0.116936)
|
1886
1879
|
clg_energy_input_ratio_f_of_temp.setCoefficient2x(0.0284933)
|
@@ -1893,7 +1886,7 @@ class NECB2011
|
|
1893
1886
|
clg_energy_input_ratio_f_of_temp.setMinimumValueofy(24.0)
|
1894
1887
|
clg_energy_input_ratio_f_of_temp.setMaximumValueofy(46.0)
|
1895
1888
|
|
1896
|
-
#clg_energy_input_ratio_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
|
1889
|
+
# clg_energy_input_ratio_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
|
1897
1890
|
# clg_energy_input_ratio_f_of_flow = = model_add_curve("DXCOOL-NECB2011-REF-CAPFFLOW")
|
1898
1891
|
clg_energy_input_ratio_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
|
1899
1892
|
clg_energy_input_ratio_f_of_flow.setCoefficient1Constant(1.0)
|
@@ -1912,14 +1905,13 @@ class NECB2011
|
|
1912
1905
|
clg_part_load_ratio.setMinimumValueofx(0.7)
|
1913
1906
|
clg_part_load_ratio.setMaximumValueofx(1.0)
|
1914
1907
|
|
1915
|
-
|
1916
1908
|
return OpenStudio::Model::CoilCoolingDXSingleSpeed.new(model,
|
1917
1909
|
always_on,
|
1918
1910
|
clg_cap_f_of_temp,
|
1919
1911
|
clg_cap_f_of_flow,
|
1920
1912
|
clg_energy_input_ratio_f_of_temp,
|
1921
1913
|
clg_energy_input_ratio_f_of_flow,
|
1922
|
-
clg_part_load_ratio)
|
1914
|
+
clg_part_load_ratio)
|
1923
1915
|
end
|
1924
1916
|
|
1925
1917
|
# Zonal systems
|
@@ -1932,16 +1924,16 @@ class NECB2011
|
|
1932
1924
|
zone_elec_baseboard = OpenStudio::Model::ZoneHVACBaseboardConvectiveElectric.new(model)
|
1933
1925
|
zone_elec_baseboard.addToThermalZone(zone)
|
1934
1926
|
end
|
1935
|
-
if baseboard_type == 'Hot Water'
|
1936
|
-
baseboard_coil = OpenStudio::Model::CoilHeatingWaterBaseboard.new(model)
|
1937
|
-
# Connect baseboard coil to hot water loop
|
1938
|
-
hw_loop.addDemandBranchForComponent(baseboard_coil)
|
1939
|
-
zone_baseboard = OpenStudio::Model::ZoneHVACBaseboardConvectiveWater.new(model, always_on, baseboard_coil)
|
1940
|
-
# add zone_baseboard to zone
|
1941
|
-
zone_baseboard.addToThermalZone(zone)
|
1942
|
-
end
|
1943
|
-
end
|
1944
1927
|
|
1928
|
+
return unless baseboard_type == 'Hot Water'
|
1929
|
+
|
1930
|
+
baseboard_coil = OpenStudio::Model::CoilHeatingWaterBaseboard.new(model)
|
1931
|
+
# Connect baseboard coil to hot water loop
|
1932
|
+
hw_loop.addDemandBranchForComponent(baseboard_coil)
|
1933
|
+
zone_baseboard = OpenStudio::Model::ZoneHVACBaseboardConvectiveWater.new(model, always_on, baseboard_coil)
|
1934
|
+
# add zone_baseboard to zone
|
1935
|
+
zone_baseboard.addToThermalZone(zone)
|
1936
|
+
end
|
1945
1937
|
|
1946
1938
|
def add_ptac_dx_cooling(model, zone, zero_outdoor_air)
|
1947
1939
|
# Create a PTAC for each zone:
|
@@ -1960,7 +1952,7 @@ class NECB2011
|
|
1960
1952
|
htg_coil = OpenStudio::Model::CoilHeatingElectric.new(model, always_off)
|
1961
1953
|
|
1962
1954
|
# Set up PTAC DX coil with NECB performance curve characteristics;
|
1963
|
-
clg_coil =
|
1955
|
+
clg_coil = add_onespeed_DX_coil(model, always_on)
|
1964
1956
|
|
1965
1957
|
# Set up PTAC constant volume supply fan
|
1966
1958
|
fan = OpenStudio::Model::FanConstantVolume.new(model, always_on)
|
@@ -1973,7 +1965,7 @@ class NECB2011
|
|
1973
1965
|
clg_coil)
|
1974
1966
|
ptac.setName("#{zone.name} PTAC")
|
1975
1967
|
if zero_outdoor_air
|
1976
|
-
ptac.setOutdoorAirFlowRateWhenNoCoolingorHeatingisNeeded
|
1968
|
+
ptac.setOutdoorAirFlowRateWhenNoCoolingorHeatingisNeeded 1.0e-5
|
1977
1969
|
ptac.setOutdoorAirFlowRateDuringCoolingOperation(1.0e-5)
|
1978
1970
|
ptac.setOutdoorAirFlowRateDuringHeatingOperation(1.0e-5)
|
1979
1971
|
end
|
@@ -2007,11 +1999,10 @@ class NECB2011
|
|
2007
1999
|
end
|
2008
2000
|
|
2009
2001
|
def create_heating_cooling_on_off_availability_schedule(model)
|
2010
|
-
#
|
2011
|
-
avail_data = [{start_month: 1, start_day: 1, end_month: 6, end_day: 30, htg_value: 1, clg_value: 0},
|
2012
|
-
{start_month: 7, start_day: 1, end_month: 10, end_day: 31, htg_value: 0, clg_value: 1},
|
2013
|
-
{start_month: 11, start_day: 1, end_month: 12, end_day: 31, htg_value: 1, clg_value: 0}
|
2014
|
-
]
|
2002
|
+
# TODO: Create a feature to derive start and end heating and cooling seasons from weather file.
|
2003
|
+
avail_data = [{ start_month: 1, start_day: 1, end_month: 6, end_day: 30, htg_value: 1, clg_value: 0 },
|
2004
|
+
{ start_month: 7, start_day: 1, end_month: 10, end_day: 31, htg_value: 0, clg_value: 1 },
|
2005
|
+
{ start_month: 11, start_day: 1, end_month: 12, end_day: 31, htg_value: 1, clg_value: 0 }]
|
2015
2006
|
|
2016
2007
|
# Heating coil availability schedule for tpfc
|
2017
2008
|
htg_availability_sch = OpenStudio::Model::ScheduleRuleset.new(model)
|
@@ -2054,94 +2045,108 @@ class NECB2011
|
|
2054
2045
|
end
|
2055
2046
|
|
2056
2047
|
# Method to set the base system name based on the following syntax:
|
2057
|
-
# |sys_abbr|sys_oa|sh>?|
|
2048
|
+
# |sys_abbr|sys_oa|sc>?|sh>?|ssf>?|zh>?|zc>?|srf>?|
|
2058
2049
|
# "sys_abbr" designates the NECB system type ("sys_1, sys_2, ... sys_6")
|
2059
2050
|
# "sys_oa": "mixed" or "doas"
|
2060
2051
|
# "sys_name_pars" is a hash for the remaining system name parts for heat recovery,
|
2061
2052
|
# heating, cooling, supply fan, zone heating, zone cooling, and return fan
|
2062
|
-
def assign_base_sys_name(airloop,sys_abbr:,sys_oa:,sys_name_pars:)
|
2053
|
+
def assign_base_sys_name(airloop, sys_abbr:, sys_oa:, sys_name_pars:)
|
2063
2054
|
sys_name = "#{sys_abbr}|#{sys_oa}|"
|
2064
|
-
|
2065
|
-
sys_name_pars.each do |key,value|
|
2055
|
+
sys_name_pars.each do |key, value|
|
2066
2056
|
case key.downcase
|
2067
|
-
when
|
2057
|
+
when 'sys_hr'
|
2068
2058
|
case value.downcase
|
2069
|
-
when
|
2070
|
-
sys_name +=
|
2059
|
+
when 'none'
|
2060
|
+
sys_name += 'shr>none'
|
2071
2061
|
end
|
2072
2062
|
|
2073
|
-
when
|
2063
|
+
when 'sys_htg'
|
2074
2064
|
case value.downcase
|
2075
|
-
when
|
2076
|
-
sys_name +=
|
2077
|
-
when
|
2078
|
-
sys_name +=
|
2079
|
-
when
|
2080
|
-
sys_name +=
|
2081
|
-
when
|
2082
|
-
sys_name +=
|
2083
|
-
when
|
2084
|
-
sys_name +=
|
2065
|
+
when 'none'
|
2066
|
+
sys_name += 'sh>none'
|
2067
|
+
when 'electric'
|
2068
|
+
sys_name += 'sh>c-e'
|
2069
|
+
when 'hot water'
|
2070
|
+
sys_name += 'sh>c-hw'
|
2071
|
+
when 'gas'
|
2072
|
+
sys_name += 'sh>c-g'
|
2073
|
+
when 'dx'
|
2074
|
+
sys_name += 'sh>ashp'
|
2075
|
+
when 'ccashp'
|
2076
|
+
sys_name += 'sh>ccashp'
|
2077
|
+
when 'ashp'
|
2078
|
+
sys_name += 'sh>ashp'
|
2085
2079
|
end
|
2086
2080
|
|
2087
|
-
when
|
2081
|
+
when 'sys_clg'
|
2088
2082
|
case value.downcase
|
2089
|
-
when
|
2090
|
-
sys_name +=
|
2091
|
-
when
|
2092
|
-
sys_name +=
|
2093
|
-
when
|
2094
|
-
|
2095
|
-
|
2083
|
+
when 'none'
|
2084
|
+
sys_name += 'sc>none'
|
2085
|
+
when 'chilled water'
|
2086
|
+
sys_name += 'sc>c-chw'
|
2087
|
+
when 'dx'
|
2088
|
+
if sys_name_pars['sys_htg'] == 'dx'
|
2089
|
+
sys_name += 'sc>ashp'
|
2090
|
+
else
|
2091
|
+
sys_name += 'sc>dx'
|
2092
|
+
end
|
2093
|
+
when 'ccashp'
|
2094
|
+
sys_name += 'sc>ccashp'
|
2095
|
+
when 'ashp'
|
2096
|
+
sys_name += 'sc>ashp'
|
2096
2097
|
end
|
2097
2098
|
|
2098
|
-
when
|
2099
|
+
when 'sys_sf'
|
2099
2100
|
case value.downcase
|
2100
|
-
when
|
2101
|
-
sys_name +=
|
2102
|
-
when
|
2103
|
-
sys_name +=
|
2104
|
-
when
|
2105
|
-
sys_name +=
|
2101
|
+
when 'none'
|
2102
|
+
sys_name += 'ssf>none'
|
2103
|
+
when 'cv'
|
2104
|
+
sys_name += 'ssf>cv'
|
2105
|
+
when 'vv'
|
2106
|
+
sys_name += 'ssf>vv'
|
2106
2107
|
end
|
2107
2108
|
|
2108
|
-
when
|
2109
|
+
when 'zone_htg'
|
2109
2110
|
case value.downcase
|
2110
|
-
when
|
2111
|
-
sys_name +=
|
2112
|
-
when
|
2113
|
-
sys_name +=
|
2114
|
-
when
|
2115
|
-
sys_name +=
|
2116
|
-
when
|
2117
|
-
sys_name +=
|
2118
|
-
when
|
2119
|
-
sys_name +=
|
2111
|
+
when 'none'
|
2112
|
+
sys_name += 'zh>none'
|
2113
|
+
when 'electric'
|
2114
|
+
sys_name += 'zh>b-e'
|
2115
|
+
when 'hot water'
|
2116
|
+
sys_name += 'zh>b-hw'
|
2117
|
+
when 'tpfc'
|
2118
|
+
sys_name += 'zh>fpfc'
|
2119
|
+
when 'fpfc'
|
2120
|
+
sys_name += 'zh>tpfc'
|
2121
|
+
when 'pthp'
|
2122
|
+
sys_name += 'zh>pthp'
|
2120
2123
|
end
|
2121
2124
|
|
2122
|
-
when
|
2125
|
+
when 'zone_clg'
|
2123
2126
|
case value.downcase
|
2124
|
-
when
|
2125
|
-
sys_name +=
|
2126
|
-
when
|
2127
|
-
sys_name +=
|
2128
|
-
when
|
2129
|
-
sys_name +=
|
2130
|
-
when
|
2131
|
-
sys_name +=
|
2127
|
+
when 'none'
|
2128
|
+
sys_name += 'zc>none'
|
2129
|
+
when 'tpfc'
|
2130
|
+
sys_name += 'zc>tpfc'
|
2131
|
+
when 'fpfc'
|
2132
|
+
sys_name += 'zc>fpfc'
|
2133
|
+
when 'ptac'
|
2134
|
+
sys_name += 'zc>ptac'
|
2135
|
+
when 'pthp'
|
2136
|
+
sys_name += 'zc>pthp'
|
2132
2137
|
end
|
2133
2138
|
|
2134
|
-
when
|
2139
|
+
when 'sys_rf'
|
2135
2140
|
case value.downcase
|
2136
|
-
when
|
2137
|
-
sys_name +=
|
2138
|
-
when
|
2139
|
-
sys_name +=
|
2140
|
-
when
|
2141
|
-
sys_name +=
|
2141
|
+
when 'none'
|
2142
|
+
sys_name += 'srf>none'
|
2143
|
+
when 'cv'
|
2144
|
+
sys_name += 'srf>cv'
|
2145
|
+
when 'vv'
|
2146
|
+
sys_name += 'srf>vv'
|
2142
2147
|
end
|
2143
2148
|
end
|
2144
|
-
sys_name +=
|
2149
|
+
sys_name += '|'
|
2145
2150
|
end
|
2146
2151
|
|
2147
2152
|
airloop.setName(sys_name)
|
@@ -2159,29 +2164,36 @@ class NECB2011
|
|
2159
2164
|
zone_htg: nil,
|
2160
2165
|
zone_clg: nil,
|
2161
2166
|
sys_rf: nil)
|
2162
|
-
name_parts = airloop.name.to_s.split(
|
2167
|
+
name_parts = airloop.name.to_s.split('|').reject(&:empty?)
|
2163
2168
|
if sys_abbr.is_a? String then name_parts[0] = sys_abbr end
|
2164
2169
|
if sys_oa.is_a? String then name_parts[1] = sys_oa end
|
2165
|
-
for i in 0..name_parts.size-1
|
2166
|
-
if (name_parts[i].include?
|
2170
|
+
for i in 0..name_parts.size - 1
|
2171
|
+
if (name_parts[i].include? 'shr>') && (sys_hr.is_a? String)
|
2167
2172
|
name_parts[i] = "shr>#{sys_hr}"
|
2168
|
-
elsif (name_parts[i].include?
|
2173
|
+
elsif (name_parts[i].include? 'sh>') && (sys_htg.is_a? String)
|
2169
2174
|
name_parts[i] = "sh>#{sys_htg}"
|
2170
|
-
elsif (name_parts[i].include?
|
2175
|
+
elsif (name_parts[i].include? 'sc>') && (sys_clg.is_a? String)
|
2171
2176
|
name_parts[i] = "sc>#{sys_clg}"
|
2172
|
-
elsif (name_parts[i].include?
|
2177
|
+
elsif (name_parts[i].include? 'ssf') && (sys_sf.is_a? String)
|
2173
2178
|
name_parts[i] = "ssf>#{sys_sf}"
|
2174
|
-
elsif (name_parts[i].include?
|
2179
|
+
elsif (name_parts[i].include? 'zh>') && (zone_htg.is_a? String)
|
2175
2180
|
name_parts[i] = "zh>#{zone_htg}"
|
2176
|
-
elsif (name_parts[i].include?
|
2181
|
+
elsif (name_parts[i].include? 'zc>') && (zone_clg.is_a? String)
|
2177
2182
|
name_parts[i] = "zc>#{zone_clg}"
|
2178
|
-
elsif (name_parts[i].include?
|
2183
|
+
elsif (name_parts[i].include? 'srf>') && (sys_rf.is_a? String)
|
2179
2184
|
name_parts[i] = "srf>#{sys_rf}"
|
2180
2185
|
end
|
2181
2186
|
end
|
2182
|
-
sys_name =
|
2183
|
-
name_parts.each {|part| sys_name += "#{part}|"}
|
2184
|
-
|
2187
|
+
sys_name = ''
|
2188
|
+
name_parts.each { |part| sys_name += "#{part}|" }
|
2189
|
+
|
2190
|
+
# Check if the last part of the system name is an integer. If it is, then remove the last part from the system name.
|
2191
|
+
check_int = begin
|
2192
|
+
Integer(name_parts.last.strip)
|
2193
|
+
rescue StandardError
|
2194
|
+
nil
|
2195
|
+
end
|
2196
|
+
sys_name = sys_name.chop unless check_int.nil?
|
2185
2197
|
|
2186
2198
|
airloop.setName(sys_name)
|
2187
2199
|
end
|