openstudio-standards 0.2.12.rc5 → 0.2.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/data/geometry/ASHRAE90120162019HighriseApartment.json +1042 -0
- data/data/geometry/ASHRAE90120162019Hospital.json +199 -0
- data/data/geometry/ASHRAE90120162019LargeHotel.json +73 -0
- data/data/geometry/ASHRAE90120162019LargeOffice.json +109 -0
- data/data/geometry/ASHRAE90120162019SecondarySchool.json +205 -0
- data/data/geometry/ASHRAECourthouse.json +112 -0
- data/data/geometry/ASHRAECourthouse.osm +26470 -0
- data/data/geometry/ASHRAELargeHotel.osm +11 -1
- data/data/geometry/ASHRAELargeOffice.json +4 -0
- data/data/geometry/ASHRAESmallDataCenter.json +1 -1
- data/data/standards/OpenStudio_Standards-ashrae_90_1(space_types).xlsx +0 -0
- data/data/standards/OpenStudio_Standards-ashrae_90_1.xlsx +0 -0
- data/data/standards/exclude_list.csv +19 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.boilers.json +49 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.chillers.json +293 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.construction_properties.json +25426 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.construction_sets.json +1600 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.economizers.json +564 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.elevators.json +349 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ext_ltg.json +164 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ground_temperatures.json +10663 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_pumps.json +508 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_pumps_heating.json +156 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_rejection.json +44 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.motors.json +184 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.prototype_inputs.json +3094 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ref_cases.json +829 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ref_lnup.json +562 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_compressors.json +52 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_condenser.json +220 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_system.json +156 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_walkins.json +1316 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +21446 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.unitary_acs.json +554 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.water_heaters.json +68 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.water_source_heat_pumps.json +28 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.water_source_heat_pumps_heating.json +12 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.boilers.json +49 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.chillers.json +293 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.construction_properties.json +12487 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.construction_sets.json +1600 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.economizers.json +564 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.elevators.json +349 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ext_ltg.json +164 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ground_temperatures.json +10663 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_pumps.json +466 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_pumps_heating.json +137 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_rejection.json +44 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.motors.json +184 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.prototype_inputs.json +3094 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ref_cases.json +829 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ref_lnup.json +562 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_compressors.json +52 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_condenser.json +220 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_system.json +156 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_walkins.json +1316 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +21380 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.unitary_acs.json +554 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.water_heaters.json +68 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.water_source_heat_pumps.json +28 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.water_source_heat_pumps_heating.json +12 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.boilers.json +49 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.chillers.json +395 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.construction_properties.json +12487 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.construction_sets.json +1600 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.economizers.json +592 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.elevators.json +349 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.energy_recovery.json +550 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ext_ltg.json +164 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ground_temperatures.json +10663 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_pumps.json +466 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_pumps_heating.json +137 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_rejection.json +44 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.motors.json +238 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.prototype_inputs.json +3094 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ref_cases.json +829 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ref_lnup.json +562 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_compressors.json +52 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_condenser.json +220 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_system.json +156 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_walkins.json +1316 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +21548 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.unitary_acs.json +554 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.water_heaters.json +68 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.water_source_heat_pumps.json +28 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.water_source_heat_pumps_heating.json +12 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.boilers.json +64 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.chillers.json +871 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.construction_properties.json +12487 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.construction_sets.json +1600 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.economizers.json +592 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.elevators.json +349 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.energy_recovery.json +1096 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ext_ltg.json +164 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ground_temperatures.json +10663 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_pumps.json +886 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_pumps_heating.json +194 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_rejection.json +44 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.motors.json +247 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.prototype_inputs.json +3094 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ref_cases.json +829 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ref_lnup.json +562 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_compressors.json +52 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_condenser.json +220 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_system.json +156 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_walkins.json +1316 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +22079 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.unitary_acs.json +994 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_heaters.json +68 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_source_heat_pumps.json +28 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_source_heat_pumps_heating.json +12 -0
- data/data/standards/manage_OpenStudio_Standards.rb +87 -37
- data/data/standards/metadata_units_OpenStudio_Standards-ashrae_90_1-ALL-comstockspace_types.csv +236 -0
- data/data/standards/metadata_units_OpenStudio_Standards-ashrae_90_1.csv +622 -0
- data/data/standards/metadata_units_OpenStudio_Standards-ashrae_90_1space_types.csv +195 -0
- data/data/standards/openstudio_standards_duplicates_log.csv +28 -0
- data/data/standards/test_performance_expected_dd_results.csv +1934 -1134
- data/lib/openstudio-standards.rb +68 -17
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PumpVariableSpeed.rb +28 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.FanVariableVolume.rb +0 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.PumpVariableSpeed.rb +28 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Model.rb +53 -2
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.PumpVariableSpeed.rb +29 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Model.rb +157 -2
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.PumpVariableSpeed.rb +29 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +24 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.FanConstantVolume.rb +32 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.FanOnOff.rb +33 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.FanVariableVolume.rb +32 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.elevators.rb +25 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.rb +366 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.PumpVariableSpeed.rb +144 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.hvac_systems.rb +11 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +24 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.FanConstantVolume.rb +32 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.FanOnOff.rb +33 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.FanVariableVolume.rb +32 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.elevators.rb +25 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.rb +367 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.PumpVariableSpeed.rb +144 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.hvac_systems.rb +11 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.AirTerminalSingleDuctVAVReheat.rb +0 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirTerminalSingleDuctVAVReheat.rb +0 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.HeatExchangerAirToAirSensibleAndLatent.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.Model.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.HeatExchangerAirToAirSensibleAndLatent.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Model.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.College.rb +3 -3
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Courthouse.rb +74 -0
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.FullServiceRestaurant.rb +46 -30
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.HighRiseApartment.rb +23 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Hospital.rb +26 -15
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Laboratory.rb +8 -11
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeDataCenterHighITE.rb +54 -60
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeDataCenterLowITE.rb +56 -60
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeHotel.rb +38 -12
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOffice.rb +218 -134
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOfficeDetailed.rb +6 -2
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb +230 -134
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOfficeDetailed.rb +60 -62
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MidriseApartment.rb +25 -15
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Outpatient.rb +34 -22
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.PrimarySchool.rb +31 -7
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.QuickServiceRestaurant.rb +43 -28
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.RetailStandalone.rb +48 -38
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.RetailStripmall.rb +9 -5
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SecondarySchool.rb +575 -345
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallDataCenterHighITE.rb +13 -19
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallDataCenterLowITE.rb +13 -17
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallHotel.rb +9 -5
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOffice.rb +79 -51
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOfficeDetailed.rb +60 -60
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SuperMarket.rb +2 -4
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SuperTallBuilding.rb +133 -120
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.TallBuilding.rb +124 -112
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Warehouse.rb +138 -66
- data/lib/openstudio-standards/prototypes/common/do_not_edit_metaclasses.rb +7275 -199
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirConditionerVariableRefrigerantFlow.rb +35 -35
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.BoilerHotWater.rb +2 -2
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CentralAirSourceHeatPump.rb +2 -2
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXSingleSpeed.rb +3 -3
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXTwoSpeed.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWater.rb +2 -2
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWaterToAirHeatPumpEquationFit.rb +2 -2
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingDXSingleSpeed.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingElectric.rb +2 -2
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWater.rb +2 -2
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWaterToAirHeatPumpEquationFit.rb +2 -2
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoolingTower.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Fan.rb +4 -3
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanConstantVolume.rb +7 -8
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanOnOff.rb +7 -8
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanVariableVolume.rb +13 -14
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanZoneExhaust.rb +7 -5
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.elevators.rb +4 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.exterior_lights.rb +0 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.hvac.rb +25 -14
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +474 -89
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.swh.rb +35 -33
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Pump.rb +3 -0
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.PumpVariableSpeed.rb +72 -0
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.ServiceWaterHeating.rb +120 -120
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +139 -151
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.radiant_system_controls.rb +9 -3
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.refrigeration.rb +11 -5
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.utilities.rb +26 -14
- data/lib/openstudio-standards/prototypes/common/prototype_metaprogramming.rb +270 -247
- data/lib/openstudio-standards/prototypes/deer/deer.Model.rb +1 -1
- data/lib/openstudio-standards/refs/references.rb +5 -2
- data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +47 -30
- data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctVAVReheat.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.BoilerHotWater.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.BuildingStory.rb +1 -0
- data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +2 -4
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXMultiSpeed.rb +8 -10
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +4 -5
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.CoilDX.rb +12 -9
- data/lib/openstudio-standards/standards/Standards.CoilHeatingDXMultiSpeed.rb +2 -1
- data/lib/openstudio-standards/standards/Standards.CoilHeatingDXSingleSpeed.rb +3 -1
- data/lib/openstudio-standards/standards/Standards.CoilHeatingGas.rb +0 -3
- data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +4 -7
- data/lib/openstudio-standards/standards/Standards.CoilHeatingWaterToAirHeatPumpEquationFit.rb +1 -3
- data/lib/openstudio-standards/standards/Standards.Construction.rb +124 -118
- data/lib/openstudio-standards/standards/Standards.CoolingTower.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.CoolingTowerSingleSpeed.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.CoolingTowerTwoSpeed.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.CoolingTowerVariableSpeed.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.Fan.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.FanConstantVolume.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.FanOnOff.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.FanVariableVolume.rb +2 -4
- data/lib/openstudio-standards/standards/Standards.FanZoneExhaust.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.FluidCooler.rb +10 -3
- data/lib/openstudio-standards/standards/Standards.HeaderedPumpsConstantSpeed.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.HeaderedPumpsVariableSpeed.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.Model.rb +282 -253
- data/lib/openstudio-standards/standards/Standards.PlanarSurface.rb +2 -0
- data/lib/openstudio-standards/standards/Standards.PlantLoop.rb +11 -9
- data/lib/openstudio-standards/standards/Standards.Pump.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.PumpConstantSpeed.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.PumpVariableSpeed.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.ScheduleCompact.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.ScheduleConstant.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.ScheduleRuleset.rb +103 -121
- data/lib/openstudio-standards/standards/Standards.Space.rb +42 -35
- data/lib/openstudio-standards/standards/Standards.SpaceType.rb +9 -17
- data/lib/openstudio-standards/standards/Standards.SubSurface.rb +25 -27
- data/lib/openstudio-standards/standards/Standards.Surface.rb +97 -52
- data/lib/openstudio-standards/standards/Standards.ThermalZone.rb +39 -21
- data/lib/openstudio-standards/standards/Standards.WaterHeaterMixed.rb +6 -7
- data/lib/openstudio-standards/standards/Standards.ZoneHVACComponent.rb +85 -7
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1.Standards.FanVariableVolume.rb +0 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.AirLoopHVAC.rb +10 -2
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.Model.rb +2 -2
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/ashrae_90_1.schedules.json +63 -99
- 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 +7 -7
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.construction_properties.json +2420 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.economizers.json +32 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_rejection.json +9 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.prototype_inputs.json +70 -40
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ref_lnup.json +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_system.json +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +1729 -1663
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.AirLoopHVAC.rb +5 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/ashrae_90_1.schedules.json +63 -99
- 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 +7 -7
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.construction_properties.json +1460 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.economizers.json +32 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_rejection.json +9 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.prototype_inputs.json +123 -39
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ref_lnup.json +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_system.json +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +1728 -1641
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirLoopHVAC.rb +32 -15
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Space.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/ashrae_90_1.schedules.json +63 -99
- 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 +7 -7
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.construction_properties.json +1460 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.economizers.json +64 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.energy_recovery.json +52 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_rejection.json +9 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.prototype_inputs.json +123 -39
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ref_lnup.json +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_system.json +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +1727 -1640
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirLoopHVAC.rb +37 -14
- 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/comstock_ashrae_90_1_2013/data/ashrae_90_1.schedules.json +63 -99
- 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 +7 -7
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.boilers.json +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.chillers.json +2 -2
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.construction_properties.json +1460 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.economizers.json +64 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.energy_recovery.json +104 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_rejection.json +9 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.prototype_inputs.json +125 -41
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ref_lnup.json +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_system.json +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +1882 -1765
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_heaters.json +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_source_heat_pumps_heating.json +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirLoopHVAC.rb +456 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +24 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.CoolingTower.rb +19 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.CoolingTowerSingleSpeed.rb +5 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.CoolingTowerTwoSpeed.rb +5 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.CoolingTowerVariableSpeed.rb +16 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.FanVariableVolume.rb +37 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Space.rb +189 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.ThermalZone.rb +57 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.ZoneHVACComponent.rb +22 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.rb +16 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.boilers.json +68 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.chillers.json +490 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.construction_properties.json +21244 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.construction_sets.json +2111 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.economizers.json +676 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.elevators.json +372 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.energy_recovery.json +1096 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.ext_ltg.json +169 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.heat_pumps.json +532 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.heat_pumps_heating.json +164 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.heat_rejection.json +49 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.motors.json +274 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.prototype_inputs.json +3094 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.ref_cases.json +854 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.ref_lnup.json +562 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.refrigeration_compressors.json +58 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.refrigeration_condenser.json +238 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.refrigeration_system.json +156 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.refrigeration_walkins.json +1316 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.spc_typ.json +23042 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.unitary_acs.json +648 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.water_heaters.json +72 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.water_source_heat_pumps.json +31 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.water_source_heat_pumps_heating.json +13 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirLoopHVAC.rb +456 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +24 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoolingTower.rb +19 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoolingTowerSingleSpeed.rb +5 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoolingTowerTwoSpeed.rb +5 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoolingTowerVariableSpeed.rb +16 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.FanVariableVolume.rb +37 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Space.rb +189 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.ThermalZone.rb +57 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.ZoneHVACComponent.rb +22 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.rb +16 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.boilers.json +68 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.chillers.json +490 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.construction_properties.json +21244 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.construction_sets.json +2111 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.economizers.json +676 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.elevators.json +372 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.energy_recovery.json +1096 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.ext_ltg.json +169 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.heat_pumps.json +664 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.heat_pumps_heating.json +204 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.heat_rejection.json +49 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.motors.json +274 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.prototype_inputs.json +3094 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.ref_cases.json +854 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.ref_lnup.json +562 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.refrigeration_compressors.json +58 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.refrigeration_condenser.json +238 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.refrigeration_system.json +156 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.refrigeration_walkins.json +1316 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.spc_typ.json +23067 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.unitary_acs.json +671 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.water_heaters.json +72 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.water_source_heat_pumps.json +31 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.water_source_heat_pumps_heating.json +13 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.constructions.json +1614 -284
- data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.fans.json +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.materials.json +4860 -300
- data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.schedules.json +1743 -161
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/ashrae_90_1.schedules.json +63 -99
- 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 +11 -11
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.heat_rejection.json +9 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.prototype_inputs.json +50 -29
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.ref_lnup.json +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.refrigeration_system.json +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.spc_typ.json +1334 -1334
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.Model.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/ashrae_90_1.schedules.json +63 -99
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/comstock_doe_ref_pre_1980.ext_ltg.json +10 -10
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.heat_rejection.json +9 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.prototype_inputs.json +49 -28
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.ref_lnup.json +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.refrigeration_system.json +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.spc_typ.json +1322 -1322
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.heat_rejection.json +9 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.prototype_inputs.json +14 -7
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.spc_typ.json +450 -450
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirLoopHVAC.rb +0 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.Model.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.PlantLoop.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.ZoneHVACComponent.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.heat_rejection.json +9 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.prototype_inputs.json +14 -7
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.spc_typ.json +332 -332
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.water_heaters.json +2 -2
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirLoopHVAC.rb +3 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Model.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.PlantLoop.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.ZoneHVACComponent.rb +1 -1
- data/lib/openstudio-standards/standards/cbes/cbes.Model.rb +1 -3
- data/lib/openstudio-standards/standards/cbes/cbes.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer.AirLoopHVAC.rb +8 -13
- data/lib/openstudio-standards/standards/deer/deer.Model.rb +2 -2
- data/lib/openstudio-standards/standards/deer/deer.PlanarSurface.rb +2 -0
- data/lib/openstudio-standards/standards/deer/deer.Space.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2011/deer_2011.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2014/deer_2014.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2014/deer_2014.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2015/deer_2015.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2017/deer_2017.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.Space.rb +0 -1
- data/lib/openstudio-standards/standards/icc_iecc/icc_iecc_2015/icc_iecc_2015.rb +0 -1
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/btap_pre1980.rb +28 -7
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_3_and_8_single_speed.rb +16 -2
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_4.rb +15 -0
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_6.rb +14 -0
- data/lib/openstudio-standards/standards/necb/ECMS/data/erv.json +11 -7
- data/lib/openstudio-standards/standards/necb/ECMS/data/pv.json +112 -0
- data/lib/openstudio-standards/standards/necb/ECMS/data/unitary_acs.json +50 -0
- data/lib/openstudio-standards/standards/necb/ECMS/ecms.rb +21 -8
- data/lib/openstudio-standards/standards/necb/ECMS/erv.rb +17 -6
- data/lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb +142 -6
- data/lib/openstudio-standards/standards/necb/ECMS/nv.rb +189 -0
- data/lib/openstudio-standards/standards/necb/ECMS/pv_ground.rb +104 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/building_envelope.rb +19 -13
- data/lib/openstudio-standards/standards/necb/NECB2011/data/erv.json +1 -1
- data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/LowriseApartment.osm +39278 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_single_speed.rb +17 -1
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_2_and_5.rb +15 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_single_speed.rb +14 -2
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_4.rb +13 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_6.rb +12 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +154 -12
- data/lib/openstudio-standards/standards/necb/NECB2011/lighting.rb +21 -3
- data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +187 -21
- data/lib/openstudio-standards/standards/necb/NECB2011/nv.md +74 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/pv_ground.md +44 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/qaqc/necb_qaqc.rb +2 -2
- data/lib/openstudio-standards/standards/necb/NECB2011/qaqc/qaqc_resources/neb_end_use_prices.csv +39 -84
- data/lib/openstudio-standards/standards/oeesc/oeesc_2014/oeesc_2014.rb +0 -1
- data/lib/openstudio-standards/standards/standard.rb +6 -5
- data/lib/openstudio-standards/utilities/Add_template_field_to_json.rb +3 -3
- data/lib/openstudio-standards/utilities/convert_surfaces_to_adiabatic_necb_8426.rb +54 -54
- data/lib/openstudio-standards/utilities/generate_prototype_database.rb +2 -2
- data/lib/openstudio-standards/utilities/generate_space_types.rb +3 -3
- data/lib/openstudio-standards/utilities/logging.rb +7 -7
- data/lib/openstudio-standards/utilities/necb_to_epw_map.rb +14 -14
- data/lib/openstudio-standards/utilities/os_sim_extract.rb +25 -25
- data/lib/openstudio-standards/utilities/rename_surfaces.rb +10 -13
- data/lib/openstudio-standards/utilities/round_surf_coords.rb +18 -20
- data/lib/openstudio-standards/utilities/sched_create.rb +39 -41
- data/lib/openstudio-standards/utilities/set_mult_to_adiabatic.rb +31 -31
- data/lib/openstudio-standards/utilities/simulation.rb +13 -21
- data/lib/openstudio-standards/utilities/speacetype_map_converter.rb +10 -11
- data/lib/openstudio-standards/utilities/sqlfile.rb +6 -8
- data/lib/openstudio-standards/utilities/template_measure/measure.rb +108 -0
- data/lib/openstudio-standards/utilities/template_measure/measure.xml +162 -0
- data/lib/openstudio-standards/utilities/template_measure/resources/BTAPMeasureHelper.rb +448 -0
- data/lib/openstudio-standards/utilities/template_measure/tests/test.rb +160 -0
- data/lib/openstudio-standards/utilities/weatherData1_xlsx_to_json.rb +23 -26
- data/lib/openstudio-standards/version.rb +1 -1
- data/lib/openstudio-standards/weather/Weather.Model.rb +112 -87
- data/lib/openstudio-standards/weather/Weather.stat_file.rb +17 -17
- metadata +216 -2
@@ -84,6 +84,7 @@ class NECB2011
|
|
84
84
|
# Create MAU
|
85
85
|
# TO DO: MAU sizing, characteristics (fan operation schedules, temperature setpoints, outdoor air, etc)
|
86
86
|
|
87
|
+
|
87
88
|
if mau_type == true
|
88
89
|
mau_air_loop = common_air_loop(model: model, system_data: system_data)
|
89
90
|
mau_fan = OpenStudio::Model::FanConstantVolume.new(model, always_on)
|
@@ -99,6 +100,7 @@ class NECB2011
|
|
99
100
|
|
100
101
|
# Set up Single Speed DX coil with
|
101
102
|
mau_clg_coil = self.add_onespeed_DX_coil(model, always_on)
|
103
|
+
mau_clg_coil.setName("CoilCoolingDXSingleSpeed_dx")
|
102
104
|
|
103
105
|
# Set up OA system
|
104
106
|
oa_controller = OpenStudio::Model::ControllerOutdoorAir.new(model)
|
@@ -122,7 +124,6 @@ class NECB2011
|
|
122
124
|
setpoint_mgr.addToNode(mau_air_loop.supplyOutletNode)
|
123
125
|
end
|
124
126
|
|
125
|
-
|
126
127
|
zones.each do |zone|
|
127
128
|
# Zone sizing temperature
|
128
129
|
sizing_zone = zone.sizingZone
|
@@ -158,6 +159,21 @@ class NECB2011
|
|
158
159
|
mau_air_loop.addBranchForZone(zone, diffuser.to_StraightComponent)
|
159
160
|
end # components for MAU
|
160
161
|
end # of zone loop
|
162
|
+
if mau_type
|
163
|
+
sys_name_pars = {}
|
164
|
+
sys_name_pars["sys_hr"] = "none"
|
165
|
+
sys_name_pars["sys_clg"] = "dx"
|
166
|
+
sys_name_pars["sys_htg"] = mau_heating_coil_type
|
167
|
+
sys_name_pars["sys_sf"] = "cv"
|
168
|
+
sys_name_pars["zone_htg"] = baseboard_type
|
169
|
+
sys_name_pars["zone_clg"] = "ptac"
|
170
|
+
sys_name_pars["sys_rf"] = "none"
|
171
|
+
assign_base_sys_name(mau_air_loop,
|
172
|
+
sys_abbr: "sys_1",
|
173
|
+
sys_oa: "doas",
|
174
|
+
sys_name_pars: sys_name_pars)
|
175
|
+
end
|
176
|
+
|
161
177
|
return true
|
162
178
|
end
|
163
179
|
end
|
@@ -87,6 +87,7 @@ class NECB2011
|
|
87
87
|
# Add DX or hydronic cooling coil
|
88
88
|
if mau_cooling_type == 'DX'
|
89
89
|
clg_coil = self.add_onespeed_DX_coil(model, tpfc_clg_availability_sch)
|
90
|
+
clg_coil.setName("CoilCoolingDXSingleSpeed_dx")
|
90
91
|
elsif mau_cooling_type == 'Hydronic'
|
91
92
|
clg_coil = OpenStudio::Model::CoilCoolingWater.new(model, tpfc_clg_availability_sch)
|
92
93
|
chw_loop.addDemandBranchForComponent(clg_coil)
|
@@ -154,5 +155,19 @@ class NECB2011
|
|
154
155
|
diffuser = OpenStudio::Model::AirTerminalSingleDuctUncontrolled.new(model, always_on)
|
155
156
|
air_loop.addBranchForZone(zone, diffuser.to_StraightComponent)
|
156
157
|
end # zone loop
|
158
|
+
sys_abbr = "sys_2"
|
159
|
+
sys_abbr = "sys_5" if fan_coil_type == "TPFC"
|
160
|
+
sys_name_pars = {}
|
161
|
+
sys_name_pars["sys_hr"] = "none"
|
162
|
+
sys_name_pars["sys_clg"] = mau_cooling_type
|
163
|
+
sys_name_pars["sys_htg"] = "g"
|
164
|
+
sys_name_pars["sys_sf"] = "cv"
|
165
|
+
sys_name_pars["zone_htg"] = fan_coil_type
|
166
|
+
sys_name_pars["zone_clg"] = fan_coil_type
|
167
|
+
sys_name_pars["sys_rf"] = "none"
|
168
|
+
assign_base_sys_name(mau_air_loop,
|
169
|
+
sys_abbr: sys_abbr,
|
170
|
+
sys_oa: "doas",
|
171
|
+
sys_name_pars: sys_name_pars)
|
157
172
|
end
|
158
173
|
end
|
@@ -91,7 +91,6 @@ class NECB2011
|
|
91
91
|
zone)
|
92
92
|
|
93
93
|
end
|
94
|
-
return true
|
95
94
|
else
|
96
95
|
zones.each do |zone|
|
97
96
|
air_loop = add_system_3_and_8_airloop(heating_coil_type, model, system_data, zone)
|
@@ -101,8 +100,20 @@ class NECB2011
|
|
101
100
|
model,
|
102
101
|
zone)
|
103
102
|
end
|
104
|
-
return true
|
105
103
|
end
|
104
|
+
sys_name_pars = {}
|
105
|
+
sys_name_pars["sys_hr"] = "none"
|
106
|
+
sys_name_pars["sys_clg"] = "dx"
|
107
|
+
sys_name_pars["sys_htg"] = heating_coil_type
|
108
|
+
sys_name_pars["sys_sf"] = "cv"
|
109
|
+
sys_name_pars["zone_htg"] = baseboard_type
|
110
|
+
sys_name_pars["zone_clg"] = "none"
|
111
|
+
sys_name_pars["sys_rf"] = "none"
|
112
|
+
assign_base_sys_name(air_loop,
|
113
|
+
sys_abbr: "sys_3",
|
114
|
+
sys_oa: "mixed",
|
115
|
+
sys_name_pars: sys_name_pars)
|
116
|
+
return true
|
106
117
|
end
|
107
118
|
|
108
119
|
|
@@ -151,6 +162,7 @@ class NECB2011
|
|
151
162
|
|
152
163
|
# Set up DX coil with NECB performance curve characteristics;
|
153
164
|
clg_coil = OpenStudio::Model::CoilCoolingDXSingleSpeed.new(model)
|
165
|
+
clg_coil.setName("CoilCoolingDXSingleSpeed_dx")
|
154
166
|
|
155
167
|
# oa_controller
|
156
168
|
oa_controller = OpenStudio::Model::ControllerOutdoorAir.new(model)
|
@@ -86,6 +86,7 @@ class NECB2011
|
|
86
86
|
# Set up DX coil with NECB performance curve characteristics;
|
87
87
|
|
88
88
|
clg_coil = self.add_onespeed_DX_coil(model, always_on)
|
89
|
+
clg_coil.setName("CoilCoolingDXSingleSpeed_dx")
|
89
90
|
|
90
91
|
# oa_controller
|
91
92
|
oa_controller = OpenStudio::Model::ControllerOutdoorAir.new(model)
|
@@ -141,6 +142,18 @@ class NECB2011
|
|
141
142
|
model: model,
|
142
143
|
zone: zone)
|
143
144
|
end # zone loop
|
145
|
+
sys_name_pars = {}
|
146
|
+
sys_name_pars["sys_hr"] = "none"
|
147
|
+
sys_name_pars["sys_clg"] = "dx"
|
148
|
+
sys_name_pars["sys_htg"] = heating_coil_type
|
149
|
+
sys_name_pars["sys_sf"] = "cv"
|
150
|
+
sys_name_pars["zone_htg"] = baseboard_type
|
151
|
+
sys_name_pars["zone_clg"] = "none"
|
152
|
+
sys_name_pars["sys_rf"] = "none"
|
153
|
+
assign_base_sys_name(air_loop,
|
154
|
+
sys_abbr: "sys_4",
|
155
|
+
sys_oa: "mixed",
|
156
|
+
sys_name_pars: sys_name_pars)
|
144
157
|
|
145
158
|
return true
|
146
159
|
end
|
@@ -133,6 +133,18 @@ class NECB2011
|
|
133
133
|
baseboard_type: baseboard_type,
|
134
134
|
hw_loop: hw_loop)
|
135
135
|
end
|
136
|
+
sys_name_pars = {}
|
137
|
+
sys_name_pars["sys_hr"] = "none"
|
138
|
+
sys_name_pars["sys_htg"] = heating_coil_type
|
139
|
+
sys_name_pars["sys_clg"] = "Chilled Water"
|
140
|
+
sys_name_pars["sys_sf"] = "vv"
|
141
|
+
sys_name_pars["zone_htg"] = baseboard_type
|
142
|
+
sys_name_pars["zone_clg"] = "none"
|
143
|
+
sys_name_pars["sys_rf"] = "vv"
|
144
|
+
assign_base_sys_name(air_loop,
|
145
|
+
sys_abbr: "sys_6",
|
146
|
+
sys_oa: "mixed",
|
147
|
+
sys_name_pars: sys_name_pars)
|
136
148
|
end
|
137
149
|
end # next story
|
138
150
|
|
@@ -295,6 +295,7 @@ class NECB2011
|
|
295
295
|
end
|
296
296
|
|
297
297
|
# Create an ERV
|
298
|
+
|
298
299
|
erv = OpenStudio::Model::HeatExchangerAirToAirSensibleAndLatent.new(air_loop_hvac.model)
|
299
300
|
erv.setName("#{air_loop_hvac.name} ERV")
|
300
301
|
erv.setSensibleEffectivenessat100HeatingAirFlow(0.5)
|
@@ -372,10 +373,9 @@ class NECB2011
|
|
372
373
|
def heat_exchanger_air_to_air_sensible_and_latent_apply_efficiency(heat_exchanger_air_to_air_sensible_and_latent, erv_name = nil)
|
373
374
|
# Assumed to be sensible and latent at all flow
|
374
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.
|
375
|
-
erv_name = '
|
376
|
-
erv_info = @standards_data['erv'].detect { |item| item['erv_name'] == erv_name }
|
377
|
-
|
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['erv'].map{|item| item['erv_name']}}") if erv_info.nil?
|
376
|
+
erv_name = 'NECB_Default' if erv_name.nil?
|
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?
|
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,6 +391,8 @@ 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: "erv")
|
395
|
+
|
394
396
|
return true
|
395
397
|
end
|
396
398
|
|
@@ -939,7 +941,7 @@ class NECB2011
|
|
939
941
|
# Make the COOL-CAP-FT curve
|
940
942
|
cool_cap_ft = model_add_curve(model, ac_props['cool_cap_ft'])
|
941
943
|
if cool_cap_ft
|
942
|
-
clg_stages.each do |stage|
|
944
|
+
clg_stages.sort.each do |stage|
|
943
945
|
stage.setTotalCoolingCapacityFunctionofTemperatureCurve(cool_cap_ft)
|
944
946
|
end
|
945
947
|
else
|
@@ -951,7 +953,7 @@ class NECB2011
|
|
951
953
|
# Make the COOL-CAP-FFLOW curve
|
952
954
|
cool_cap_fflow = model_add_curve(model, ac_props['cool_cap_fflow'])
|
953
955
|
if cool_cap_fflow
|
954
|
-
clg_stages.each do |stage|
|
956
|
+
clg_stages.sort.each do |stage|
|
955
957
|
stage.setTotalCoolingCapacityFunctionofFlowFractionCurve(cool_cap_fflow)
|
956
958
|
end
|
957
959
|
else
|
@@ -963,7 +965,7 @@ class NECB2011
|
|
963
965
|
# Make the COOL-EIR-FT curve
|
964
966
|
cool_eir_ft = model_add_curve(model, ac_props['cool_eir_ft'])
|
965
967
|
if cool_eir_ft
|
966
|
-
clg_stages.each do |stage|
|
968
|
+
clg_stages.sort.each do |stage|
|
967
969
|
stage.setEnergyInputRatioFunctionofTemperatureCurve(cool_eir_ft)
|
968
970
|
end
|
969
971
|
else
|
@@ -975,7 +977,7 @@ class NECB2011
|
|
975
977
|
# Make the COOL-EIR-FFLOW curve
|
976
978
|
cool_eir_fflow = model_add_curve(model, ac_props['cool_eir_fflow'])
|
977
979
|
if cool_eir_fflow
|
978
|
-
clg_stages.each do |stage|
|
980
|
+
clg_stages.sort.each do |stage|
|
979
981
|
stage.setEnergyInputRatioFunctionofFlowFractionCurve(cool_eir_fflow)
|
980
982
|
end
|
981
983
|
else
|
@@ -987,7 +989,7 @@ class NECB2011
|
|
987
989
|
# Make the COOL-PLF-FPLR curve
|
988
990
|
cool_plf_fplr = model_add_curve(model, ac_props['cool_plf_fplr'])
|
989
991
|
if cool_plf_fplr
|
990
|
-
clg_stages.each do |stage|
|
992
|
+
clg_stages.sort.each do |stage|
|
991
993
|
stage.setPartLoadFractionCorrelationCurve(cool_plf_fplr)
|
992
994
|
end
|
993
995
|
else
|
@@ -999,7 +1001,7 @@ class NECB2011
|
|
999
1001
|
# Set the COP values
|
1000
1002
|
cop, new_comp_name = coil_cooling_dx_multi_speed_standard_minimum_cop(coil_cooling_dx_multi_speed)
|
1001
1003
|
unless cop.nil?
|
1002
|
-
clg_stages.each do |istage|
|
1004
|
+
clg_stages.sort.each do |istage|
|
1003
1005
|
istage.setGrossRatedCoolingCOP(cop)
|
1004
1006
|
end
|
1005
1007
|
end
|
@@ -1077,7 +1079,7 @@ class NECB2011
|
|
1077
1079
|
# get multi speed heat pump and air loop
|
1078
1080
|
multi_speed_heat_pump = nil
|
1079
1081
|
multi_speed_heat_pumps = model.getAirLoopHVACUnitaryHeatPumpAirToAirMultiSpeeds
|
1080
|
-
multi_speed_heat_pumps.each do |iheat_pump|
|
1082
|
+
multi_speed_heat_pumps.sort.each do |iheat_pump|
|
1081
1083
|
htg_coil = iheat_pump.heatingCoil
|
1082
1084
|
if htg_coil.name.to_s.strip == coil_heating_gas_multi_stage.name.to_s.strip
|
1083
1085
|
multi_speed_heat_pump = iheat_pump
|
@@ -1239,7 +1241,7 @@ class NECB2011
|
|
1239
1241
|
|
1240
1242
|
# Set the efficiency values
|
1241
1243
|
unless thermal_eff.nil?
|
1242
|
-
htg_stages.each do |stage|
|
1244
|
+
htg_stages.sort.each do |stage|
|
1243
1245
|
stage.setGasBurnerEfficiency(thermal_eff)
|
1244
1246
|
end
|
1245
1247
|
end
|
@@ -1459,6 +1461,15 @@ class NECB2011
|
|
1459
1461
|
return true
|
1460
1462
|
end
|
1461
1463
|
|
1464
|
+
# Determine and set type of part load control type for heating and chilled
|
1465
|
+
# water variable speed pumps
|
1466
|
+
#
|
1467
|
+
# @param pump [OpenStudio::Model::PumpVariableSpeed] OpenStudio pump object
|
1468
|
+
# @return [Boolean] Returns true if applicable, false otherwise
|
1469
|
+
def pump_variable_speed_control_type(pump)
|
1470
|
+
return false
|
1471
|
+
end
|
1472
|
+
|
1462
1473
|
# Sets the fan pressure rise based on the Prototype buildings inputs
|
1463
1474
|
# which are governed by the flow rate coming through the fan
|
1464
1475
|
# and whether the fan lives inside a unit heater, PTAC, etc.
|
@@ -2042,5 +2053,136 @@ class NECB2011
|
|
2042
2053
|
return clg_availability_sch, htg_availability_sch
|
2043
2054
|
end
|
2044
2055
|
|
2056
|
+
# Method to set the base system name based on the following syntax:
|
2057
|
+
# |sys_abbr|sys_oa|sh>?|sc>?|ssf>?|zh>?|zc>?|srf>?|
|
2058
|
+
# "sys_abbr" designates the NECB system type ("sys_1, sys_2, ... sys_6")
|
2059
|
+
# "sys_oa": "mixed" or "doas"
|
2060
|
+
# "sys_name_pars" is a hash for the remaining system name parts for heat recovery,
|
2061
|
+
# 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:)
|
2063
|
+
sys_name = "#{sys_abbr}|#{sys_oa}|"
|
2064
|
+
|
2065
|
+
sys_name_pars.each do |key,value|
|
2066
|
+
case key.downcase
|
2067
|
+
when "sys_hr"
|
2068
|
+
case value.downcase
|
2069
|
+
when "none"
|
2070
|
+
sys_name += "shr>none"
|
2071
|
+
end
|
2072
|
+
|
2073
|
+
when "sys_htg"
|
2074
|
+
case value.downcase
|
2075
|
+
when "none"
|
2076
|
+
sys_name += "sh>none"
|
2077
|
+
when "electric"
|
2078
|
+
sys_name += "sh>c-e"
|
2079
|
+
when "hot water"
|
2080
|
+
sys_name += "sh>c-hw"
|
2081
|
+
when "gas"
|
2082
|
+
sys_name += "sh>c-g"
|
2083
|
+
when "dx"
|
2084
|
+
sys_name += "sh>ashp"
|
2085
|
+
end
|
2086
|
+
|
2087
|
+
when "sys_clg"
|
2088
|
+
case value.downcase
|
2089
|
+
when "none"
|
2090
|
+
sys_name += "sc>none"
|
2091
|
+
when "chilled water"
|
2092
|
+
sys_name += "sc>c-chw"
|
2093
|
+
when "dx"
|
2094
|
+
sys_name += "sc>dx"
|
2095
|
+
sys_name += "sc>ashp" if sys_name_pars["sys_htg"] == "dx"
|
2096
|
+
end
|
2097
|
+
|
2098
|
+
when "sys_sf"
|
2099
|
+
case value.downcase
|
2100
|
+
when "none"
|
2101
|
+
sys_name += "ssf>none"
|
2102
|
+
when "cv"
|
2103
|
+
sys_name += "ssf>cv"
|
2104
|
+
when "vv"
|
2105
|
+
sys_name += "ssf>vv"
|
2106
|
+
end
|
2107
|
+
|
2108
|
+
when "zone_htg"
|
2109
|
+
case value.downcase
|
2110
|
+
when "none"
|
2111
|
+
sys_name += "zh>none"
|
2112
|
+
when "electric"
|
2113
|
+
sys_name += "zh>b-e"
|
2114
|
+
when "hot water"
|
2115
|
+
sys_name += "zh>b-hw"
|
2116
|
+
when "tpfc"
|
2117
|
+
sys_name += "zh>fpfc"
|
2118
|
+
when "fpfc"
|
2119
|
+
sys_name += "zh>tpfc"
|
2120
|
+
end
|
2121
|
+
|
2122
|
+
when "zone_clg"
|
2123
|
+
case value.downcase
|
2124
|
+
when "none"
|
2125
|
+
sys_name += "zc>none"
|
2126
|
+
when "tpfc"
|
2127
|
+
sys_name += "zc>tpfc"
|
2128
|
+
when "fpfc"
|
2129
|
+
sys_name += "zc>fpfc"
|
2130
|
+
when "ptac"
|
2131
|
+
sys_name += "zc>ptac"
|
2132
|
+
end
|
2133
|
+
|
2134
|
+
when "sys_rf"
|
2135
|
+
case value.downcase
|
2136
|
+
when "none"
|
2137
|
+
sys_name += "srf>none"
|
2138
|
+
when "cv"
|
2139
|
+
sys_name += "srf>cv"
|
2140
|
+
when "vv"
|
2141
|
+
sys_name += "srf>vv"
|
2142
|
+
end
|
2143
|
+
end
|
2144
|
+
sys_name += "|"
|
2145
|
+
end
|
2146
|
+
|
2147
|
+
airloop.setName(sys_name)
|
2148
|
+
end
|
2149
|
+
|
2150
|
+
# Method to update the base system name based on the inputs provided.
|
2151
|
+
# Only the parts of the name with string inputs are updated
|
2152
|
+
def update_sys_name(airloop,
|
2153
|
+
sys_abbr: nil,
|
2154
|
+
sys_oa: nil,
|
2155
|
+
sys_hr: nil,
|
2156
|
+
sys_htg: nil,
|
2157
|
+
sys_clg: nil,
|
2158
|
+
sys_sf: nil,
|
2159
|
+
zone_htg: nil,
|
2160
|
+
zone_clg: nil,
|
2161
|
+
sys_rf: nil)
|
2162
|
+
name_parts = airloop.name.to_s.split("|").select {|part| !part.empty?}
|
2163
|
+
if sys_abbr.is_a? String then name_parts[0] = sys_abbr end
|
2164
|
+
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? "shr>") && (sys_hr.is_a? String)
|
2167
|
+
name_parts[i] = "shr>#{sys_hr}"
|
2168
|
+
elsif (name_parts[i].include? "sh>") && (sys_htg.is_a? String)
|
2169
|
+
name_parts[i] = "sh>#{sys_htg}"
|
2170
|
+
elsif (name_parts[i].include? "sc>") && (sys_clg.is_a? String)
|
2171
|
+
name_parts[i] = "sc>#{sys_clg}"
|
2172
|
+
elsif (name_parts[i].include? "ssf") && (sys_sf.is_a? String)
|
2173
|
+
name_parts[i] = "ssf>#{sys_sf}"
|
2174
|
+
elsif (name_parts[i].include? "zh>") && (zone_htg.is_a? String)
|
2175
|
+
name_parts[i] = "zh>#{zone_htg}"
|
2176
|
+
elsif (name_parts[i].include? "zc>") && (zone_clg.is_a? String)
|
2177
|
+
name_parts[i] = "zc>#{zone_clg}"
|
2178
|
+
elsif (name_parts[i].include? "srf>") && (sys_rf.is_a? String)
|
2179
|
+
name_parts[i] = "srf>#{sys_rf}"
|
2180
|
+
end
|
2181
|
+
end
|
2182
|
+
sys_name = ""
|
2183
|
+
name_parts.each {|part| sys_name += "#{part}|"}
|
2184
|
+
sys_name = sys_name.chop if (Integer(name_parts.last.strip) rescue false)
|
2045
2185
|
|
2186
|
+
airloop.setName(sys_name)
|
2187
|
+
end
|
2046
2188
|
end
|
@@ -1,9 +1,27 @@
|
|
1
1
|
class NECB2011
|
2
2
|
|
3
3
|
def apply_standard_lights(set_lights: true,
|
4
|
-
space_type:,
|
5
|
-
|
6
|
-
|
4
|
+
space_type:,
|
5
|
+
space_type_properties:,
|
6
|
+
lights_type:,
|
7
|
+
lights_scale:)
|
8
|
+
|
9
|
+
##### Remove leading or trailing whitespace in case users add them in inputs
|
10
|
+
if lights_scale.instance_of?(String)
|
11
|
+
lights_scale = lights_scale.strip
|
12
|
+
end
|
13
|
+
|
14
|
+
if lights_type.nil? || lights_type == 'none'
|
15
|
+
lights_type = 'NECB_Default'
|
16
|
+
end
|
17
|
+
if lights_scale.nil? || lights_scale == 'none' || lights_scale == 'NECB_Default'
|
18
|
+
lights_scale = 1.0
|
19
|
+
end
|
20
|
+
|
21
|
+
##### Convert a string to a float
|
22
|
+
if lights_scale.instance_of?(String)
|
23
|
+
lights_scale = lights_scale.to_f
|
24
|
+
end
|
7
25
|
|
8
26
|
lights_have_info = false
|
9
27
|
lighting_per_area = space_type_properties['lighting_per_area'].to_f
|
@@ -8,6 +8,19 @@ class NECB2011 < Standard
|
|
8
8
|
attr_accessor :space_type_map
|
9
9
|
attr_accessor :space_multiplier_map
|
10
10
|
|
11
|
+
# This is a helper method to convert arguments that may support 'NECB_Default, and nils to convert to float'
|
12
|
+
def convert_arg_to_f(variable:,default:)
|
13
|
+
if variable.instance_of?(Numeric)
|
14
|
+
return variable
|
15
|
+
elsif variable.nil? or variable == 'NECB_Default'
|
16
|
+
return default
|
17
|
+
elsif variable.instance_of?(String)
|
18
|
+
variable = variable.strip
|
19
|
+
return variable.to_f
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
|
11
24
|
def get_standards_table(table_name:)
|
12
25
|
if @standards_data["tables"][table_name].nil?
|
13
26
|
message = "Could not find table #{table_name} in database."
|
@@ -163,7 +176,7 @@ class NECB2011 < Standard
|
|
163
176
|
end
|
164
177
|
|
165
178
|
|
166
|
-
# This method is a wrapper to create the 16 archetypes easily.
|
179
|
+
# This method is a wrapper to create the 16 archetypes easily. # 37 args
|
167
180
|
def model_create_prototype_model(template:,
|
168
181
|
building_type:,
|
169
182
|
epw_file:,
|
@@ -177,6 +190,7 @@ class NECB2011 < Standard
|
|
177
190
|
ecm_system_name: 'NECB_Default',
|
178
191
|
erv_package: 'NECB_Default',
|
179
192
|
boiler_eff: nil,
|
193
|
+
unitary_cop: nil,
|
180
194
|
furnace_eff: nil,
|
181
195
|
shw_eff: nil,
|
182
196
|
ext_wall_cond: nil,
|
@@ -193,11 +207,24 @@ class NECB2011 < Standard
|
|
193
207
|
glass_door_solar_trans: nil,
|
194
208
|
fixed_wind_solar_trans: nil,
|
195
209
|
skylight_solar_trans: nil,
|
210
|
+
rotation_degrees: nil,
|
196
211
|
fdwr_set: -1.0,
|
197
|
-
srr_set: -1.0
|
198
|
-
|
212
|
+
srr_set: -1.0,
|
213
|
+
nv_type: nil,
|
214
|
+
nv_opening_fraction: nil,
|
215
|
+
nv_Tout_min: nil,
|
216
|
+
nv_Delta_Tin_Tout: nil,
|
217
|
+
scale_x: nil,
|
218
|
+
scale_y: nil,
|
219
|
+
scale_z: nil,
|
220
|
+
pv_ground_type: nil,
|
221
|
+
pv_ground_total_area_pv_panels_m2: nil,
|
222
|
+
pv_ground_tilt_angle: nil,
|
223
|
+
pv_ground_azimuth_angle: nil,
|
224
|
+
pv_ground_module_description: nil
|
199
225
|
)
|
200
226
|
|
227
|
+
|
201
228
|
model = load_building_type_from_library(building_type: building_type)
|
202
229
|
return model_apply_standard(model: model,
|
203
230
|
epw_file: epw_file,
|
@@ -210,6 +237,7 @@ class NECB2011 < Standard
|
|
210
237
|
ecm_system_name: ecm_system_name,
|
211
238
|
erv_package: erv_package,
|
212
239
|
boiler_eff: boiler_eff,
|
240
|
+
unitary_cop: unitary_cop,
|
213
241
|
furnace_eff: furnace_eff,
|
214
242
|
shw_eff: shw_eff,
|
215
243
|
ext_wall_cond: ext_wall_cond,
|
@@ -226,10 +254,23 @@ class NECB2011 < Standard
|
|
226
254
|
glass_door_solar_trans: glass_door_solar_trans,
|
227
255
|
fixed_wind_solar_trans: fixed_wind_solar_trans,
|
228
256
|
skylight_solar_trans: skylight_solar_trans,
|
257
|
+
rotation_degrees: rotation_degrees,
|
229
258
|
fdwr_set: fdwr_set,
|
230
|
-
srr_set: srr_set
|
231
|
-
|
259
|
+
srr_set: srr_set,
|
260
|
+
nv_type: 'NECB_Default', # Two options: (1) nil/none/false/'NECB_Default', (2) true
|
261
|
+
nv_opening_fraction: nv_opening_fraction, #options: (1) nil/none/false (2) 'NECB_Default' (i.e. 0.1)
|
262
|
+
nv_Tout_min: nv_Tout_min, #options: (1) nil/none/false(2) 'NECB_Default' (i.e. 13.0 based on inputs from Michel Tardif re a real school in QC)
|
263
|
+
nv_Delta_Tin_Tout: nv_Delta_Tin_Tout, #options: (1) nil/none/false (2) 'NECB_Default' (i.e. 1.0 based on inputs from Michel Tardif re a real school in QC)
|
264
|
+
scale_x: scale_x,
|
265
|
+
scale_y: scale_y,
|
266
|
+
scale_z: scale_z,
|
267
|
+
pv_ground_type: 'NECB_Default', # Two options: (1) nil/none/false/'NECB_Default', (2) true
|
268
|
+
pv_ground_total_area_pv_panels_m2: pv_ground_total_area_pv_panels_m2, # Options: (1) nil/none/false, (2) 'NECB_Default' (i.e. building footprint), (3) area value (e.g. 50)
|
269
|
+
pv_ground_tilt_angle: pv_ground_tilt_angle, # Options: (1) nil/none/false, (2) 'NECB_Default' (i.e. latitude), (3) tilt angle value (e.g. 20)
|
270
|
+
pv_ground_azimuth_angle: pv_ground_azimuth_angle, # Options: (1) nil/none/false, (2) 'NECB_Default' (i.e. south), (3) azimuth angle value (e.g. 90)
|
271
|
+
pv_ground_module_description: pv_ground_module_description # Options: (1) nil/none/false, (2) 'NECB_Default' (i.e. Standard), (3) other options ('Standard', 'Premium', ThinFilm')
|
232
272
|
)
|
273
|
+
|
233
274
|
end
|
234
275
|
|
235
276
|
def load_building_type_from_library(building_type:)
|
@@ -248,12 +289,13 @@ class NECB2011 < Standard
|
|
248
289
|
primary_heating_fuel: 'DefaultFuel',
|
249
290
|
dcv_type: 'NECB_Default',
|
250
291
|
lights_type: 'NECB_Default',
|
251
|
-
lights_scale:
|
292
|
+
lights_scale: 'NECB_Default',
|
252
293
|
daylighting_type: 'NECB_Default',
|
253
294
|
ecm_system_name: 'NECB_Default',
|
254
295
|
erv_package: 'NECB_Default',
|
255
296
|
boiler_eff: nil,
|
256
297
|
furnace_eff: nil,
|
298
|
+
unitary_cop: nil,
|
257
299
|
shw_eff: nil,
|
258
300
|
ext_wall_cond: nil,
|
259
301
|
ext_floor_cond: nil,
|
@@ -269,22 +311,49 @@ class NECB2011 < Standard
|
|
269
311
|
glass_door_solar_trans: nil,
|
270
312
|
fixed_wind_solar_trans: nil,
|
271
313
|
skylight_solar_trans: nil,
|
272
|
-
fdwr_set:
|
273
|
-
srr_set:
|
314
|
+
fdwr_set: nil,
|
315
|
+
srr_set: nil,
|
274
316
|
rotation_degrees: nil,
|
275
317
|
scale_x: nil,
|
276
318
|
scale_y: nil,
|
277
|
-
scale_z: nil
|
319
|
+
scale_z: nil,
|
320
|
+
nv_type: nil,
|
321
|
+
nv_opening_fraction: nil,
|
322
|
+
nv_Tout_min: nil,
|
323
|
+
nv_Delta_Tin_Tout: nil,
|
324
|
+
pv_ground_type: nil,
|
325
|
+
pv_ground_total_area_pv_panels_m2: nil ,
|
326
|
+
pv_ground_tilt_angle: nil,
|
327
|
+
pv_ground_azimuth_angle: nil,
|
328
|
+
pv_ground_module_description: nil
|
278
329
|
)
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
330
|
+
#clean model..
|
331
|
+
model = remove_all_HVAC(model)
|
332
|
+
model.getThermalZones.sort.each {|zone| zone.setUseIdealAirLoads(true)}
|
333
|
+
model.getZoneHVACPackagedTerminalAirConditioners.each(&:remove)
|
334
|
+
model.getCoilCoolingDXSingleSpeeds.each(&:remove)
|
335
|
+
model.getZoneHVACBaseboardConvectiveWaters.each(&:remove)
|
336
|
+
model.getAirLoopHVACZoneMixers.each(&:remove)
|
337
|
+
model.getAirLoopHVACZoneSplitters.each(&:remove)
|
338
|
+
model.getAirTerminalSingleDuctConstantVolumeNoReheats.each(&:remove)
|
339
|
+
model.getWaterUseEquipmentDefinitions.each(&:remove)
|
340
|
+
model.getWaterUseEquipments.each(&:remove)
|
341
|
+
model.getWaterUseConnectionss.each(&:remove)
|
342
|
+
|
343
|
+
rotation_degrees = convert_arg_to_f(variable: rotation_degrees,default: 0.0)
|
344
|
+
BTAP::Geometry::rotate_building(model: model,degrees: rotation_degrees) unless rotation_degrees == 0.0
|
345
|
+
scale_x = convert_arg_to_f(variable: scale_x,default: 1.0)
|
346
|
+
scale_y = convert_arg_to_f(variable: scale_y,default: 1.0)
|
347
|
+
scale_z = convert_arg_to_f(variable: scale_z,default: 1.0)
|
348
|
+
if scale_x != 1.0 || scale_y != 1.0 || scale_z != 1.0
|
349
|
+
BTAP::Geometry::scale_model(model, scale_x, scale_x, scale_x)
|
286
350
|
end
|
287
351
|
|
352
|
+
|
353
|
+
fdwr_set = convert_arg_to_f(variable: fdwr_set,default: -1)
|
354
|
+
srr_set = convert_arg_to_f(variable: srr_set,default: -1)
|
355
|
+
|
356
|
+
|
288
357
|
apply_weather_data(model: model, epw_file: epw_file)
|
289
358
|
apply_loads(model: model, lights_type: lights_type, lights_scale: lights_scale)
|
290
359
|
apply_envelope(model: model,
|
@@ -316,10 +385,21 @@ class NECB2011 < Standard
|
|
316
385
|
ecm_system_name: ecm_system_name,
|
317
386
|
erv_package: erv_package,
|
318
387
|
boiler_eff: boiler_eff,
|
388
|
+
unitary_cop: unitary_cop,
|
319
389
|
furnace_eff: furnace_eff,
|
320
390
|
shw_eff: shw_eff,
|
321
|
-
daylighting_type: daylighting_type
|
391
|
+
daylighting_type: daylighting_type,
|
392
|
+
nv_type: nv_type,
|
393
|
+
nv_opening_fraction: nv_opening_fraction,
|
394
|
+
nv_Tout_min: nv_Tout_min,
|
395
|
+
nv_Delta_Tin_Tout: nv_Delta_Tin_Tout,
|
396
|
+
pv_ground_type: pv_ground_type,
|
397
|
+
pv_ground_total_area_pv_panels_m2: pv_ground_total_area_pv_panels_m2,
|
398
|
+
pv_ground_tilt_angle: pv_ground_tilt_angle,
|
399
|
+
pv_ground_azimuth_angle: pv_ground_azimuth_angle,
|
400
|
+
pv_ground_module_description: pv_ground_module_description
|
322
401
|
)
|
402
|
+
|
323
403
|
return model
|
324
404
|
end
|
325
405
|
|
@@ -332,8 +412,20 @@ class NECB2011 < Standard
|
|
332
412
|
erv_package: 'NECB_Default',
|
333
413
|
boiler_eff: nil,
|
334
414
|
furnace_eff: nil,
|
415
|
+
unitary_cop: nil,
|
335
416
|
shw_eff: nil,
|
336
|
-
daylighting_type: 'NECB_Default'
|
417
|
+
daylighting_type: 'NECB_Default',
|
418
|
+
nv_type: nil,
|
419
|
+
nv_opening_fraction: nil,
|
420
|
+
nv_Tout_min: nil,
|
421
|
+
nv_Delta_Tin_Tout:nil,
|
422
|
+
pv_ground_type:,
|
423
|
+
pv_ground_total_area_pv_panels_m2:,
|
424
|
+
pv_ground_tilt_angle:,
|
425
|
+
pv_ground_azimuth_angle:,
|
426
|
+
pv_ground_module_description:
|
427
|
+
)
|
428
|
+
|
337
429
|
# Create ECM object.
|
338
430
|
ecm = ECMS.new
|
339
431
|
|
@@ -343,7 +435,7 @@ class NECB2011 < Standard
|
|
343
435
|
apply_systems(model: model, primary_heating_fuel: primary_heating_fuel, sizing_run_dir: sizing_run_dir)
|
344
436
|
|
345
437
|
# Apply new ECM system. Overwrite standard as required.
|
346
|
-
ecm.apply_system_ecm(model: model, ecm_system_name: ecm_system_name, template_standard: self)
|
438
|
+
ecm.apply_system_ecm(model: model, ecm_system_name: ecm_system_name, template_standard: self, primary_heating_fuel: primary_heating_fuel)
|
347
439
|
|
348
440
|
# Apply ERV equipment as required.
|
349
441
|
ecm.apply_erv_ecm(model: model, erv_package: erv_package)
|
@@ -352,7 +444,7 @@ class NECB2011 < Standard
|
|
352
444
|
# -------- Performace, Efficiencies, Controls and Sensors ------------
|
353
445
|
#
|
354
446
|
# Set code standard equipment charecteristics.
|
355
|
-
apply_standard_efficiencies(model: model, sizing_run_dir: sizing_run_dir)
|
447
|
+
sql_db_vars_map = apply_standard_efficiencies(model: model, sizing_run_dir: sizing_run_dir)
|
356
448
|
# Apply System
|
357
449
|
ecm.apply_system_efficiencies_ecm(model: model, ecm_system_name: ecm_system_name)
|
358
450
|
|
@@ -364,6 +456,8 @@ class NECB2011 < Standard
|
|
364
456
|
ecm.modify_boiler_efficiency(model: model, boiler_eff: boiler_eff)
|
365
457
|
# Apply Furnace Efficiency
|
366
458
|
ecm.modify_furnace_efficiency(model: model, furnace_eff: furnace_eff)
|
459
|
+
# Apply Unitary efficiency
|
460
|
+
ecm.modify_unitary_cop(model: model,unitary_cop: unitary_cop,sql_db_vars_map: sql_db_vars_map)
|
367
461
|
# Apply SHW Efficiency
|
368
462
|
ecm.modify_shw_efficiency(model: model, shw_eff: shw_eff)
|
369
463
|
# Apply daylight controls.
|
@@ -373,10 +467,29 @@ class NECB2011 < Standard
|
|
373
467
|
# -------Pump sizing required by some vintages----------------
|
374
468
|
# Apply Pump power as required.
|
375
469
|
apply_loop_pump_power(model: model, sizing_run_dir: sizing_run_dir)
|
470
|
+
|
471
|
+
# -------Natural ventilation----------------
|
472
|
+
# Apply natural ventilation using simplified method.
|
473
|
+
ecm.apply_nv(model: model,
|
474
|
+
nv_type: nv_type,
|
475
|
+
nv_opening_fraction: nv_opening_fraction,
|
476
|
+
nv_Tout_min: nv_Tout_min,
|
477
|
+
nv_Delta_Tin_Tout: nv_Delta_Tin_Tout)
|
478
|
+
|
479
|
+
# -------Ground-mounted PV panels---------------- #Sara
|
480
|
+
# Apply ground-mounted PV panels as required.
|
481
|
+
ecm.apply_pv_ground(model: model,
|
482
|
+
pv_ground_type: pv_ground_type,
|
483
|
+
pv_ground_total_area_pv_panels_m2: pv_ground_total_area_pv_panels_m2,
|
484
|
+
pv_ground_tilt_angle: pv_ground_tilt_angle,
|
485
|
+
pv_ground_azimuth_angle: pv_ground_azimuth_angle,
|
486
|
+
pv_ground_module_description: pv_ground_module_description)
|
487
|
+
|
376
488
|
end
|
377
489
|
|
378
490
|
|
379
491
|
def apply_loads(model:, lights_type: 'NECB_Default', lights_scale: 1.0, validate: true)
|
492
|
+
lights_scale = convert_arg_to_f(variable: lights_scale,default: 1.0)
|
380
493
|
if validate
|
381
494
|
raise('validation of model failed.') unless validate_initial_model(model)
|
382
495
|
raise('validation of spacetypes failed.') unless validate_and_upate_space_types(model)
|
@@ -448,6 +561,10 @@ class NECB2011 < Standard
|
|
448
561
|
# # <-3.1: Remove all the windows/skylights
|
449
562
|
# # > 1: Do nothing
|
450
563
|
def apply_fdwr_srr_daylighting(model:, fdwr_set: -1.0, srr_set: -1.0)
|
564
|
+
fdwr_set = -1.0 if fdwr_set == 'NECB_default' or fdwr_set.nil?
|
565
|
+
srr_set = -1.0 if srr_set == 'NECB_default' or srr_set.nil?
|
566
|
+
fdwr_set = fdwr_set.to_f
|
567
|
+
srr_set = srr_set.to_f
|
451
568
|
apply_standard_window_to_wall_ratio(model: model, fdwr_set: fdwr_set)
|
452
569
|
apply_standard_skylight_to_roof_ratio(model: model, srr_set: srr_set)
|
453
570
|
# model_add_daylighting_controls(model) # to be removed after refactor.
|
@@ -462,8 +579,57 @@ class NECB2011 < Standard
|
|
462
579
|
# Apply the prototype HVAC assumptions
|
463
580
|
model_apply_prototype_hvac_assumptions(model, nil, climate_zone)
|
464
581
|
# Apply the HVAC efficiency standard
|
465
|
-
|
582
|
+
sql_db_vars_map = {}
|
583
|
+
model_apply_hvac_efficiency_standard(model, climate_zone, sql_db_vars_map: sql_db_vars_map)
|
466
584
|
model_enable_demand_controlled_ventilation(model, dcv_type)
|
585
|
+
return sql_db_vars_map
|
586
|
+
end
|
587
|
+
|
588
|
+
# Shut off the system during unoccupied periods.
|
589
|
+
# During these times, systems will cycle on briefly
|
590
|
+
# if temperature drifts below setpoint. For systems
|
591
|
+
# with fan-powered terminals, the whole system
|
592
|
+
# (not just the terminal fans) will cycle on.
|
593
|
+
# Terminal-only night cycling is not used because the terminals cannot
|
594
|
+
# provide cooling, so terminal-only night cycling leads to excessive
|
595
|
+
# unmet cooling hours during unoccupied periods.
|
596
|
+
# If the system already has a schedule other than
|
597
|
+
# Always-On, no change will be made. If the system has
|
598
|
+
# an Always-On schedule assigned, a new schedule will be created.
|
599
|
+
# In this case, occupied is defined as the total percent
|
600
|
+
# occupancy for the loop for all zones served.
|
601
|
+
#
|
602
|
+
# @param min_occ_pct [Double] the fractional value below which
|
603
|
+
# the system will be considered unoccupied.
|
604
|
+
# @return [Bool] true if successful, false if not
|
605
|
+
def air_loop_hvac_enable_unoccupied_fan_shutoff(air_loop_hvac, min_occ_pct = 0.05)
|
606
|
+
# Set the system to night cycle
|
607
|
+
air_loop_hvac.setNightCycleControlType('CycleOnAny')
|
608
|
+
|
609
|
+
# Check if already using a schedule other than always on
|
610
|
+
avail_sch = air_loop_hvac.availabilitySchedule
|
611
|
+
unless avail_sch == air_loop_hvac.model.alwaysOnDiscreteSchedule
|
612
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.AirLoopHVAC', "For #{air_loop_hvac.name}: Availability schedule is already set to #{avail_sch.name}. Will assume this includes unoccupied shut down; no changes will be made.")
|
613
|
+
return true
|
614
|
+
end
|
615
|
+
|
616
|
+
# Get the airloop occupancy schedule
|
617
|
+
loop_occ_sch = air_loop_hvac_get_occupancy_schedule(air_loop_hvac, occupied_percentage_threshold: min_occ_pct)
|
618
|
+
flh = schedule_ruleset_annual_equivalent_full_load_hrs(loop_occ_sch)
|
619
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.AirLoopHVAC', "For #{air_loop_hvac.name}: Annual occupied hours = #{flh.round} hr/yr, assuming a #{min_occ_pct} occupancy threshold. This schedule will be used as the HVAC operation schedule.")
|
620
|
+
|
621
|
+
# Set HVAC availability schedule to follow occupancy
|
622
|
+
air_loop_hvac.setAvailabilitySchedule(loop_occ_sch)
|
623
|
+
air_loop_hvac.supplyComponents('OS:AirLoopHVAC:UnitaryHeatPump:AirToAir:MultiSpeed'.to_IddObjectType).each do |comp|
|
624
|
+
comp.to_AirLoopHVACUnitaryHeatPumpAirToAirMultiSpeed.get.setAvailabilitySchedule(loop_occ_sch)
|
625
|
+
end
|
626
|
+
|
627
|
+
return true
|
628
|
+
end
|
629
|
+
|
630
|
+
# do not apply zone hvac ventilation control
|
631
|
+
def zone_hvac_component_occupancy_ventilation_control(zone_hvac_component)
|
632
|
+
return false
|
467
633
|
end
|
468
634
|
|
469
635
|
def apply_loop_pump_power(model:, sizing_run_dir:)
|