openstudio-standards 0.8.4 → 0.8.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/data/geometry/ASHRAECollege.osm +30 -30
- data/data/geometry/ASHRAECourthouse.osm +22 -22
- data/data/geometry/ASHRAESmallOfficeDetailed.osm +2 -2
- data/data/geometry/DEER_Asm.osm +1 -1
- data/data/geometry/DEER_ECC.osm +1 -1
- data/data/geometry/DEER_EPr.osm +1 -1
- data/data/geometry/DEER_ERC.osm +1 -1
- data/data/geometry/DEER_ESe.osm +1 -1
- data/data/geometry/DEER_EUn.osm +1 -1
- data/data/geometry/DEER_Hsp.osm +1 -1
- data/data/geometry/DEER_Htl.osm +1 -1
- data/data/geometry/DEER_MBT.osm +1 -1
- data/data/geometry/DEER_MFm.osm +1 -1
- data/data/geometry/DEER_Nrs.osm +1 -1
- data/data/geometry/DEER_OfL.osm +1 -1
- data/data/geometry/DEER_OfS.osm +1 -1
- data/data/geometry/DEER_RFF.osm +1 -1
- data/data/geometry/DEER_RSD.osm +1 -1
- data/data/geometry/DEER_Rt3.osm +1 -1
- data/data/geometry/DEER_RtS.osm +1 -1
- data/data/standards/export_OpenStudio_libraries.rb +2 -3
- data/data/standards/test_performance_expected_dd_results.csv +42 -42
- data/lib/openstudio-standards/btap/NECB_building_types.csv +35 -0
- data/lib/openstudio-standards/btap/NECB_space_types.csv +109 -0
- data/lib/openstudio-standards/btap/activity.rb +480 -0
- data/lib/openstudio-standards/btap/attributes.rb +166 -0
- data/lib/openstudio-standards/btap/bridging.rb +561 -1402
- data/lib/openstudio-standards/btap/btap.rb +4 -2
- data/lib/openstudio-standards/btap/btap_test_helper.rb +86 -0
- data/lib/openstudio-standards/btap/carbon/btap_carbon.rb +177 -0
- data/lib/openstudio-standards/btap/{costing/common_paths.rb → common_paths.rb} +14 -11
- data/lib/openstudio-standards/btap/common_resources/carbon_frame.csv +35 -0
- data/lib/openstudio-standards/btap/common_resources/carbon_glazing.csv +35 -0
- data/lib/openstudio-standards/btap/common_resources/carbon_opaque.csv +164 -0
- data/lib/openstudio-standards/btap/common_resources/constructions_glazing.csv +121 -0
- data/lib/openstudio-standards/btap/common_resources/costs.csv +1897 -0
- data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/lighting.csv +59 -59
- data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/materials_hvac.csv +1019 -1032
- data/lib/openstudio-standards/btap/costing/btap_costing.rb +3 -7
- data/lib/openstudio-standards/btap/costing/costing_database_wrapper.rb +1 -5
- data/lib/openstudio-standards/btap/costing/daylighting_sensor_control_costing.rb +5 -4
- data/lib/openstudio-standards/btap/costing/dcv_costing.rb +1 -1
- data/lib/openstudio-standards/btap/costing/envelope_costing.rb +112 -181
- data/lib/openstudio-standards/btap/costing/heating_cooling_costing.rb +4 -4
- data/lib/openstudio-standards/btap/costing/led_lighting_costing.rb +2 -1
- data/lib/openstudio-standards/btap/costing/lighting_costing.rb +3 -3
- data/lib/openstudio-standards/btap/costing/test_list.txt +15 -17
- data/lib/openstudio-standards/btap/costing/test_run_all_test_locally.rb +10 -9
- data/lib/openstudio-standards/btap/geometry.rb +86 -6
- data/lib/openstudio-standards/btap/structure.rb +657 -0
- data/lib/openstudio-standards/create_typical/create_typical.rb +17 -33
- data/lib/openstudio-standards/create_typical/space_type_ratios.rb +36 -36
- data/lib/openstudio-standards/equipment/create_transformer.rb +104 -0
- data/lib/openstudio-standards/equipment/create_typical_equipment.rb +117 -0
- data/lib/openstudio-standards/equipment/data/electric_equipment_space_types.json +1514 -0
- data/lib/openstudio-standards/equipment/data/gas_equipment_space_types.json +227 -0
- data/lib/openstudio-standards/exterior_lighting/create.rb +22 -22
- data/lib/openstudio-standards/exterior_lighting/information.rb +3 -2
- data/lib/openstudio-standards/hvac/components/air_conditioner_vrf.rb +482 -0
- data/lib/openstudio-standards/hvac/components/air_terminal.rb +31 -0
- data/lib/openstudio-standards/hvac/components/boiler_hot_water.rb +163 -0
- data/lib/openstudio-standards/hvac/components/central_air_source_heat_pump.rb +220 -0
- data/lib/openstudio-standards/hvac/components/chiller.rb +25 -0
- data/lib/openstudio-standards/hvac/components/coil.rb +276 -0
- data/lib/openstudio-standards/hvac/components/coil_cooling_dx_multi_speed.rb +40 -0
- data/lib/openstudio-standards/hvac/components/coil_cooling_dx_single_speed.rb +300 -0
- data/lib/openstudio-standards/hvac/components/coil_cooling_dx_two_speed.rb +187 -0
- data/lib/openstudio-standards/hvac/components/coil_cooling_water.rb +80 -0
- data/lib/openstudio-standards/hvac/components/coil_cooling_water_to_air_heat_pump_equation_fit.rb +182 -0
- data/lib/openstudio-standards/hvac/components/coil_heating_dx_single_speed.rb +220 -0
- data/lib/openstudio-standards/hvac/components/coil_heating_electric.rb +56 -0
- data/lib/openstudio-standards/hvac/components/coil_heating_gas.rb +90 -0
- data/lib/openstudio-standards/hvac/components/coil_heating_gas_multi_stage.rb +33 -0
- data/lib/openstudio-standards/hvac/components/coil_heating_water.rb +98 -0
- data/lib/openstudio-standards/hvac/components/coil_heating_water_to_air_heat_pump_equation_fit.rb +147 -0
- data/lib/openstudio-standards/hvac/components/component.rb +39 -0
- data/lib/openstudio-standards/{standards/ashrae_90_1/data/ashrae_90_1.fans.json → hvac/components/data/fans.json} +6 -6
- data/lib/openstudio-standards/hvac/components/fan.rb +363 -0
- data/lib/openstudio-standards/hvac/components/heat_exchanger_air_to_air.rb +203 -0
- data/lib/openstudio-standards/hvac/components/pump.rb +181 -0
- data/lib/openstudio-standards/hvac/controls/radiant_system_controls.rb +594 -0
- data/lib/openstudio-standards/hvac/conversions.rb +222 -0
- data/lib/openstudio-standards/hvac/curves.rb +192 -0
- data/lib/openstudio-standards/hvac/helpers.rb +357 -0
- data/lib/openstudio-standards/hvac/setpoint_managers/information.rb +4 -4
- data/lib/openstudio-standards/interior_lighting/create_lights.rb +52 -0
- data/lib/openstudio-standards/interior_lighting/create_typical_interior_lighting.rb +254 -0
- data/lib/openstudio-standards/interior_lighting/data/convert_lighting_data.rb +249 -0
- data/lib/openstudio-standards/interior_lighting/data/lighting_space_types.csv +96 -0
- data/lib/openstudio-standards/interior_lighting/data/lighting_space_types.json +1429 -0
- data/lib/openstudio-standards/interior_lighting/data/lighting_technology.csv +46 -0
- data/lib/openstudio-standards/interior_lighting/data/lighting_technology.json +859 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.rb +4 -4
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.rb +4 -4
- data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.HighRiseApartment.rb +6 -7
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Hospital.rb +15 -15
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeHotel.rb +4 -4
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOffice.rb +5 -5
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb +6 -6
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Outpatient.rb +7 -7
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.PrimarySchool.rb +4 -4
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SecondarySchool.rb +6 -6
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOfficeDetailed.rb +5 -1
- data/lib/openstudio-standards/prototypes/common/data/prototype_space_type_map.json +2594 -0
- data/lib/openstudio-standards/prototypes/common/data/thermostat_schedule_lookup.json +2108 -0
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirTerminalSingleDuctVAVReheat.rb +33 -0
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Fan.rb +0 -140
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanConstantVolume.rb +1 -73
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanOnOff.rb +1 -69
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanVariableVolume.rb +0 -116
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanZoneExhaust.rb +0 -61
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.hvac.rb +2 -2
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +128 -13
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +606 -607
- data/lib/openstudio-standards/prototypes/common/prototype_space_type_map.rb +41 -0
- data/lib/openstudio-standards/prototypes/common/space_type_equipment_map.rb +184 -0
- data/lib/openstudio-standards/prototypes/common/space_type_thermostat_schedule_map.rb +116 -0
- data/lib/openstudio-standards/qaqc/hvac.rb +12 -12
- data/lib/openstudio-standards/refrigeration/create_compressor.rb +2 -5
- data/lib/openstudio-standards/refrigeration/data/refrigeration_compressors.csv +4 -4
- data/lib/openstudio-standards/service_water_heating/create_water_heater.rb +1 -2
- data/lib/openstudio-standards/service_water_heating/create_water_use.rb +5 -5
- data/lib/openstudio-standards/service_water_heating/data/typical_water_use_equipment.csv +26 -0
- data/lib/openstudio-standards/service_water_heating/data/typical_water_use_equipment.json +410 -0
- data/lib/openstudio-standards/space_type/data/level_1_space_types.json +612 -0
- data/lib/openstudio-standards/space_type/standards_space_type.rb +53 -0
- data/lib/openstudio-standards/standards/Standards.AirConditionerVariableRefrigerantFlow.rb +8 -26
- data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +13 -13
- data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctVAVReheat.rb +0 -24
- data/lib/openstudio-standards/standards/Standards.BoilerHotWater.rb +6 -43
- data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +7 -24
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXMultiSpeed.rb +19 -44
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +25 -50
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +25 -33
- data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +9 -22
- data/lib/openstudio-standards/standards/Standards.CoilDX.rb +15 -157
- data/lib/openstudio-standards/standards/Standards.CoilHeatingDXMultiSpeed.rb +2 -2
- data/lib/openstudio-standards/standards/Standards.CoilHeatingDXSingleSpeed.rb +18 -105
- data/lib/openstudio-standards/standards/Standards.CoilHeatingGas.rb +3 -23
- data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +0 -24
- data/lib/openstudio-standards/standards/Standards.CoilHeatingWaterToAirHeatPumpEquationFit.rb +2 -86
- data/lib/openstudio-standards/standards/Standards.FanVariableVolume.rb +0 -107
- data/lib/openstudio-standards/standards/Standards.Model.rb +6 -11
- data/lib/openstudio-standards/standards/Standards.People.rb +113 -0
- data/lib/openstudio-standards/standards/Standards.PlantLoop.rb +11 -11
- data/lib/openstudio-standards/standards/Standards.Pump.rb +2 -147
- data/lib/openstudio-standards/standards/Standards.PumpVariableSpeed.rb +57 -41
- data/lib/openstudio-standards/standards/Standards.SpaceType.rb +30 -153
- data/lib/openstudio-standards/standards/Standards.Ventilation.rb +74 -0
- data/lib/openstudio-standards/standards/Standards.ZoneHVACComponent.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PlantLoop.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_pumps_heating.json +3 -3
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +37 -112
- 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 +37 -102
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_pumps_heating.json +3 -3
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +37 -112
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/comstock_ashrae_90_1_2010.spc_typ.json +37 -37
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_pumps_heating.json +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +37 -37
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.BoilerHotWater.rb +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 +37 -102
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_pumps_heating.json +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +37 -37
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.BoilerHotWater.rb +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 +45 -109
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.heat_pumps_heating.json +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.spc_typ.json +37 -37
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.BoilerHotWater.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoilHeatingGas.rb +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 +45 -109
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.heat_pumps_heating.json +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.spc_typ.json +37 -37
- data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.curves.json +0 -200
- 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 +37 -37
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.spc_typ.json +37 -37
- 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 +37 -37
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.spc_typ.json +37 -37
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.PlantLoop.rb +5 -5
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.PlantLoop.rb +5 -5
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ChillerElectricEIR.rb +2 -2
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXSingleSpeed.rb +2 -68
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXTwoSpeed.rb +2 -35
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilDX.rb +42 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingDXSingleSpeed.rb +5 -2
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingGas.rb +2 -2
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.PlantLoop.rb +3 -3
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.SpaceType.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb +1 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019_WaterHeaterMixed.rb +2 -4
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/data/ashrae_90_1_prm.curves.json +0 -200
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/data/ashrae_90_1_prm.fans.json +5 -5
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/ashrae_90_1_prm.UserData.rb +1 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_enums.rb +0 -1
- data/lib/openstudio-standards/standards/cbes/data/cbes.curves.json +0 -200
- data/lib/openstudio-standards/standards/deer/data/deer.curves.json +0 -200
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/btap_pre1980.rb +19 -10
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/building_envelope.rb +12 -11
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_systems.rb +4 -4
- data/lib/openstudio-standards/standards/necb/ECMS/ecms.rb +1 -1
- data/lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb +69 -92
- data/lib/openstudio-standards/standards/necb/NECB2011/autozone.rb +2 -1
- data/lib/openstudio-standards/standards/necb/NECB2011/beps_compliance_path.rb +16 -12
- data/lib/openstudio-standards/standards/necb/NECB2011/building_envelope.rb +799 -46
- data/lib/openstudio-standards/standards/necb/NECB2011/data/chillers.json +33 -51
- data/lib/openstudio-standards/standards/necb/NECB2011/data/constants.json +32 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/data/fuel_type_sets.json +18 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/data/heat_pumps_heating.json +21 -15
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_namer.rb +5 -5
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_single_speed.rb +2 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +30 -141
- data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +233 -112
- data/lib/openstudio-standards/standards/necb/NECB2015/data/heat_pumps_heating.json +10 -2
- data/lib/openstudio-standards/standards/necb/NECB2015/hvac_systems.rb +2 -2
- data/lib/openstudio-standards/standards/necb/NECB2020/data/heat_pumps_heating.json +16 -6
- data/lib/openstudio-standards/standards/necb/NECB2020/data/unitary_acs.json +60 -61
- data/lib/openstudio-standards/standards/necb/NECB2020/service_water_heating.rb +30 -30
- data/lib/openstudio-standards/standards/necb/common/btap_analysis.rb +79 -0
- data/lib/openstudio-standards/standards/necb/common/btap_data.rb +16 -4
- data/lib/openstudio-standards/standards/necb/common/btap_datapoint.rb +65 -42
- data/lib/openstudio-standards/thermal_zone/{thermal_zone.rb → information.rb} +12 -45
- data/lib/openstudio-standards/thermal_zone/thermostat_schedules.rb +152 -0
- data/lib/openstudio-standards/utilities/simulation.rb +6 -1
- data/lib/openstudio-standards/version.rb +1 -1
- data/lib/openstudio-standards/weather/stat_file.rb +2 -2
- data/lib/openstudio-standards.rb +55 -38
- metadata +106 -66
- data/lib/openstudio-standards/btap/costing/common_resources/constructions_glazing.csv +0 -61
- data/lib/openstudio-standards/btap/costing/common_resources/costs.csv +0 -1904
- data/lib/openstudio-standards/hvac/components/create.rb +0 -169
- data/lib/openstudio-standards/hvac/components/modify.rb +0 -42
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirConditionerVariableRefrigerantFlow.rb +0 -438
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.BoilerHotWater.rb +0 -123
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CentralAirSourceHeatPump.rb +0 -216
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXSingleSpeed.rb +0 -273
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXTwoSpeed.rb +0 -159
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWater.rb +0 -77
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWaterToAirHeatPumpEquationFit.rb +0 -154
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingDXSingleSpeed.rb +0 -214
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingElectric.rb +0 -53
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingGas.rb +0 -72
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWater.rb +0 -95
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWaterToAirHeatPumpEquationFit.rb +0 -125
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.ControllerWaterCoil.rb +0 -17
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.transformers.rb +0 -90
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Pump.rb +0 -4
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.PumpVariableSpeed.rb +0 -70
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.radiant_system_controls.rb +0 -590
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.utilities.rb +0 -901
- data/lib/openstudio-standards/standards/Standards.FanConstantVolume.rb +0 -5
- data/lib/openstudio-standards/standards/Standards.FanOnOff.rb +0 -5
- data/lib/openstudio-standards/standards/Standards.FanZoneExhaust.rb +0 -5
- data/lib/openstudio-standards/standards/Standards.HeaderedPumpsConstantSpeed.rb +0 -5
- data/lib/openstudio-standards/standards/Standards.HeaderedPumpsVariableSpeed.rb +0 -55
- data/lib/openstudio-standards/standards/Standards.PumpConstantSpeed.rb +0 -5
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanConstantVolume.rb +0 -5
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanOnOff.rb +0 -5
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanZoneExhaust.rb +0 -5
- data/lib/openstudio-standards/standards/cbes/data/cbes.fans.json +0 -328
- data/lib/openstudio-standards/standards/deer/data/deer.fans.json +0 -328
- /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/ConstructionProperties.csv +0 -0
- /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/Constructions.csv +0 -0
- /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/construction_sets.csv +0 -0
- /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/constructions_opaque.csv +0 -0
- /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/costs_local_factors.csv +0 -0
- /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/hvac_vent_ahu.csv +0 -0
- /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/lighting_sets.csv +0 -0
- /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/locations.csv +0 -0
- /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/materials_glazing.csv +0 -0
- /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/materials_lighting.csv +0 -0
- /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/materials_opaque.csv +0 -0
- /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PumpVariableSpeed.rb +0 -0
- /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.PumpVariableSpeed.rb +0 -0
- /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.PumpVariableSpeed.rb +0 -0
- /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.PumpVariableSpeed.rb +0 -0
- /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.PumpVariableSpeed.rb +0 -0
- /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Pump.rb +0 -0
- /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.PumpVariableSpeed.rb +0 -0
|
@@ -2382,8 +2382,13 @@ class ECMS
|
|
|
2382
2382
|
search_criteria['name'] = eqpt_name
|
|
2383
2383
|
|
|
2384
2384
|
# Get the capacity
|
|
2385
|
-
|
|
2386
|
-
|
|
2385
|
+
multiplier = nil
|
|
2386
|
+
if ['PTAC', 'PTHP'].include?(OpenstudioStandards::HVAC.coil_dx_subcategory(coil_cooling_dx_single_speed))
|
|
2387
|
+
thermal_zone = OpenstudioStandards::HVAC.hvac_component_get_thermal_zone(coil_cooling_dx_single_speed)
|
|
2388
|
+
multiplier = thermal_zone.multiplier if !thermal_zone.nil?
|
|
2389
|
+
end
|
|
2390
|
+
capacity_w = OpenstudioStandards::HVAC.coil_cooling_dx_single_speed_get_capacity(coil_cooling_dx_single_speed, multiplier: multiplier)
|
|
2391
|
+
capacity_w = capacity_w.nil? ? 1.0 : [1.0, capacity_w].max
|
|
2387
2392
|
capacity_btu_per_hr = OpenStudio.convert(capacity_w, 'W', 'Btu/hr').get
|
|
2388
2393
|
|
|
2389
2394
|
# Lookup efficiencies
|
|
@@ -2452,8 +2457,8 @@ class ECMS
|
|
|
2452
2457
|
search_criteria['name'] = eqpt_name
|
|
2453
2458
|
|
|
2454
2459
|
# Get the capacity
|
|
2455
|
-
capacity_w =
|
|
2456
|
-
capacity_w = [1.0,capacity_w].max
|
|
2460
|
+
capacity_w = OpenstudioStandards::HVAC.coil_heating_get_paired_coil_cooling_capacity(coil_heating_dx_single_speed)
|
|
2461
|
+
capacity_w = capacity_w.nil? ? 1.0 : [1.0, capacity_w].max
|
|
2457
2462
|
capacity_btu_per_hr = OpenStudio.convert(capacity_w, 'W', 'Btu/hr').get
|
|
2458
2463
|
|
|
2459
2464
|
# Lookup efficiencies
|
|
@@ -2527,7 +2532,7 @@ class ECMS
|
|
|
2527
2532
|
successfully_set_all_properties = true
|
|
2528
2533
|
|
|
2529
2534
|
# Get the capacity
|
|
2530
|
-
capacity_w =
|
|
2535
|
+
capacity_w = OpenstudioStandards::HVAC.chiller_electric_get_capacity(chiller_electric_eir)
|
|
2531
2536
|
capacity_tons = OpenStudio.convert(capacity_w, 'W', 'ton').get
|
|
2532
2537
|
|
|
2533
2538
|
# Lookup performance curves
|
|
@@ -2732,8 +2737,11 @@ class ECMS
|
|
|
2732
2737
|
search_criteria = {}
|
|
2733
2738
|
search_criteria['name'] = eqpt_name
|
|
2734
2739
|
# Get the capacity
|
|
2735
|
-
capacity_w =
|
|
2736
|
-
|
|
2740
|
+
capacity_w = OpenstudioStandards::HVAC.air_conditioner_variable_refrigerant_flow_get_cooling_capacity(airconditioner_variablerefrigerantflow)
|
|
2741
|
+
if airconditioner_variablerefrigerantflow.autosizedGrossRatedTotalCoolingCapacity.is_initialized
|
|
2742
|
+
airconditioner_variablerefrigerantflow.setGrossRatedTotalCoolingCapacity(capacity_w)
|
|
2743
|
+
end
|
|
2744
|
+
capacity_w = [1.0, capacity_w].max
|
|
2737
2745
|
capacity_btu_per_hr = OpenStudio.convert(capacity_w, 'W', 'Btu/hr').get
|
|
2738
2746
|
|
|
2739
2747
|
# Lookup performance curves
|
|
@@ -2863,8 +2871,11 @@ class ECMS
|
|
|
2863
2871
|
search_criteria = {}
|
|
2864
2872
|
search_criteria['name'] = eqpt_name
|
|
2865
2873
|
# Get the capacity
|
|
2866
|
-
capacity_w =
|
|
2867
|
-
|
|
2874
|
+
capacity_w = OpenstudioStandards::HVAC.air_conditioner_variable_refrigerant_flow_get_heating_capacity(airconditioner_variablerefrigerantflow)
|
|
2875
|
+
if airconditioner_variablerefrigerantflow.autosizedGrossRatedHeatingCapacity.is_initialized
|
|
2876
|
+
airconditioner_variablerefrigerantflow.setGrossRatedHeatingCapacity(capacity_w)
|
|
2877
|
+
end
|
|
2878
|
+
capacity_w = [1.0, capacity_w].max
|
|
2868
2879
|
capacity_btu_per_hr = OpenStudio.convert(capacity_w, 'W', 'Btu/hr').get
|
|
2869
2880
|
|
|
2870
2881
|
# Lookup performance curves
|
|
@@ -2982,8 +2993,12 @@ class ECMS
|
|
|
2982
2993
|
def coil_cooling_dx_single_speed_apply_cop(coil_cooling_dx_single_speed,
|
|
2983
2994
|
search_criteria,
|
|
2984
2995
|
rename = false)
|
|
2985
|
-
|
|
2986
|
-
|
|
2996
|
+
multiplier = nil
|
|
2997
|
+
if ['PTAC', 'PTHP'].include?(OpenstudioStandards::HVAC.coil_dx_subcategory(coil_cooling_dx_single_speed))
|
|
2998
|
+
thermal_zone = OpenstudioStandards::HVAC.hvac_component_get_thermal_zone(coil_cooling_dx_single_speed)
|
|
2999
|
+
multiplier = thermal_zone.multiplier if !thermal_zone.nil?
|
|
3000
|
+
end
|
|
3001
|
+
capacity_w = OpenstudioStandards::HVAC.coil_cooling_dx_single_speed_get_capacity(coil_cooling_dx_single_speed, multiplier: multiplier)
|
|
2987
3002
|
capacity_btu_per_hr = OpenStudio.convert(capacity_w, 'W', 'Btu/hr').get
|
|
2988
3003
|
capacity_kbtu_per_hr = OpenStudio.convert(capacity_w, 'W', 'kBtu/hr').get
|
|
2989
3004
|
|
|
@@ -3003,7 +3018,7 @@ class ECMS
|
|
|
3003
3018
|
# If specified as SEER
|
|
3004
3019
|
unless ac_props['minimum_seasonal_energy_efficiency_ratio'].nil?
|
|
3005
3020
|
min_seer = ac_props['minimum_seasonal_energy_efficiency_ratio']
|
|
3006
|
-
cop = seer_to_cop_no_fan(min_seer)
|
|
3021
|
+
cop = OpenstudioStandards::HVAC.seer_to_cop_no_fan(min_seer)
|
|
3007
3022
|
new_comp_name = "#{coil_cooling_dx_single_speed.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_seer}SEER"
|
|
3008
3023
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CoilCoolingDXSingleSpeed', "For #{template}: #{coil_cooling_dx_single_speed.name}: Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; SEER = #{min_seer}")
|
|
3009
3024
|
end
|
|
@@ -3011,7 +3026,7 @@ class ECMS
|
|
|
3011
3026
|
# If specified as EER
|
|
3012
3027
|
unless ac_props['minimum_energy_efficiency_ratio'].nil?
|
|
3013
3028
|
min_eer = ac_props['minimum_energy_efficiency_ratio']
|
|
3014
|
-
cop = eer_to_cop_no_fan(min_eer)
|
|
3029
|
+
cop = OpenstudioStandards::HVAC.eer_to_cop_no_fan(min_eer)
|
|
3015
3030
|
new_comp_name = "#{coil_cooling_dx_single_speed.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_eer}EER"
|
|
3016
3031
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CoilCoolingDXSingleSpeed', "For #{template}: #{coil_cooling_dx_single_speed.name}: Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; EER = #{min_eer}")
|
|
3017
3032
|
end
|
|
@@ -3019,7 +3034,7 @@ class ECMS
|
|
|
3019
3034
|
# if specified as SEER (heat pump)
|
|
3020
3035
|
unless ac_props['minimum_seasonal_efficiency'].nil?
|
|
3021
3036
|
min_seer = ac_props['minimum_seasonal_efficiency']
|
|
3022
|
-
cop = seer_to_cop_no_fan(min_seer)
|
|
3037
|
+
cop = OpenstudioStandards::HVAC.seer_to_cop_no_fan(min_seer)
|
|
3023
3038
|
new_comp_name = "#{coil_cooling_dx_single_speed.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_seer}SEER"
|
|
3024
3039
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CoilCoolingDXSingleSpeed', "For #{template}: #{coil_cooling_dx_single_speed.name}: Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; SEER = #{min_seer}")
|
|
3025
3040
|
end
|
|
@@ -3027,7 +3042,7 @@ class ECMS
|
|
|
3027
3042
|
# If specified as EER (heat pump)
|
|
3028
3043
|
unless ac_props['minimum_full_load_efficiency'].nil?
|
|
3029
3044
|
min_eer = ac_props['minimum_full_load_efficiency']
|
|
3030
|
-
cop = eer_to_cop_no_fan(min_eer)
|
|
3045
|
+
cop = OpenstudioStandards::HVAC.eer_to_cop_no_fan(min_eer)
|
|
3031
3046
|
new_comp_name = "#{coil_cooling_dx_single_speed.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_eer}EER"
|
|
3032
3047
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CoilCoolingDXSingleSpeed', "For #{template}: #{coil_cooling_dx_single_speed.name}: Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; EER = #{min_eer}")
|
|
3033
3048
|
end
|
|
@@ -3055,7 +3070,7 @@ class ECMS
|
|
|
3055
3070
|
search_criteria,
|
|
3056
3071
|
rename = false)
|
|
3057
3072
|
|
|
3058
|
-
capacity_w =
|
|
3073
|
+
capacity_w = OpenstudioStandards::HVAC.coil_heating_get_paired_coil_cooling_capacity(coil_heating_dx_single_speed)
|
|
3059
3074
|
capacity_btu_per_hr = OpenStudio.convert(capacity_w, 'W', 'Btu/hr').get
|
|
3060
3075
|
capacity_kbtu_per_hr = OpenStudio.convert(capacity_w, 'W', 'kBtu/hr').get
|
|
3061
3076
|
|
|
@@ -3075,7 +3090,7 @@ class ECMS
|
|
|
3075
3090
|
# If specified as EER
|
|
3076
3091
|
unless props['minimum_energy_efficiency_ratio'].nil?
|
|
3077
3092
|
min_eer = props['minimum_energy_efficiency_ratio']
|
|
3078
|
-
cop = eer_to_cop_no_fan(min_eer)
|
|
3093
|
+
cop = OpenstudioStandards::HVAC.eer_to_cop_no_fan(min_eer)
|
|
3079
3094
|
new_comp_name = "#{coil_heating_dx_single_speed.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_eer}EER"
|
|
3080
3095
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CoilHeatingDXSingleSpeed', "For #{template}: #{coil_heating_dx_single_speed.name}: Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; EER = #{min_eer}")
|
|
3081
3096
|
end
|
|
@@ -3083,7 +3098,7 @@ class ECMS
|
|
|
3083
3098
|
# if specified as HSPF (heat pump)
|
|
3084
3099
|
unless props['minimum_heating_seasonal_performance_factor'].nil?
|
|
3085
3100
|
min_hspf = props['minimum_heating_seasonal_performance_factor']
|
|
3086
|
-
cop = hspf_to_cop_no_fan(min_hspf)
|
|
3101
|
+
cop = OpenstudioStandards::HVAC.hspf_to_cop_no_fan(min_hspf)
|
|
3087
3102
|
new_comp_name = "#{coil_heating_dx_single_speed.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_seer}HSPF"
|
|
3088
3103
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CoilHeatingDXSingleSpeed', "For #{template}: #{coil_heating_dx_single_speed.name}: Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; SEER = #{min_seer}")
|
|
3089
3104
|
end
|
|
@@ -3091,7 +3106,7 @@ class ECMS
|
|
|
3091
3106
|
# If specified as EER (heat pump)
|
|
3092
3107
|
unless props['minimum_full_load_efficiency'].nil?
|
|
3093
3108
|
min_eer = props['minimum_full_load_efficiency']
|
|
3094
|
-
cop = eer_to_cop_no_fan(min_eer)
|
|
3109
|
+
cop = OpenstudioStandards::HVAC.eer_to_cop_no_fan(min_eer)
|
|
3095
3110
|
new_comp_name = "#{coil_heating_dx_single_speed.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_eer}EER"
|
|
3096
3111
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CoilHeatingDXSingleSpeed', "For #{template}: #{coil_heating_dx_single_speed.name}: Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; EER = #{min_eer}")
|
|
3097
3112
|
end
|
|
@@ -3099,7 +3114,7 @@ class ECMS
|
|
|
3099
3114
|
# If specified as COP
|
|
3100
3115
|
unless props['minimum_coefficient_of_performance_heating'].nil?
|
|
3101
3116
|
cop_min = props['minimum_coefficient_of_performance_heating']
|
|
3102
|
-
cop = cop_heating_to_cop_heating_no_fan(cop_min, capacity_w)
|
|
3117
|
+
cop = OpenstudioStandards::HVAC.cop_heating_to_cop_heating_no_fan(cop_min, capacity_w)
|
|
3103
3118
|
new_comp_name = "#{coil_heating_dx_single_speed.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{cop}COP"
|
|
3104
3119
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CoilHeatingDXSingleSpeed', "For #{template}: #{coil_heating_dx_single_speed.name}: Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; EER = #{min_eer}")
|
|
3105
3120
|
end
|
|
@@ -3140,7 +3155,7 @@ class ECMS
|
|
|
3140
3155
|
# If specified as SEER
|
|
3141
3156
|
unless ac_props['minimum_seasonal_energy_efficiency_ratio'].nil?
|
|
3142
3157
|
min_seer = ac_props['minimum_seasonal_energy_efficiency_ratio']
|
|
3143
|
-
cop = seer_to_cop_no_fan(min_seer)
|
|
3158
|
+
cop = OpenstudioStandards::HVAC.seer_to_cop_no_fan(min_seer)
|
|
3144
3159
|
new_comp_name = "#{coil_cooling_dx_variable_speed.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_seer}SEER"
|
|
3145
3160
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CoilCoolingDXVariableSpeed', "For #{template}: #{coil_cooling_dx_variable_speed.name}: Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; SEER = #{min_seer}")
|
|
3146
3161
|
end
|
|
@@ -3148,7 +3163,7 @@ class ECMS
|
|
|
3148
3163
|
# If specified as EER
|
|
3149
3164
|
unless ac_props['minimum_energy_efficiency_ratio'].nil?
|
|
3150
3165
|
min_eer = ac_props['minimum_energy_efficiency_ratio']
|
|
3151
|
-
cop = eer_to_cop_no_fan(min_eer)
|
|
3166
|
+
cop = OpenstudioStandards::HVAC.eer_to_cop_no_fan(min_eer)
|
|
3152
3167
|
new_comp_name = "#{coil_cooling_dx_single_speed.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_eer}EER"
|
|
3153
3168
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CoilCoolingDXVariableSpeed', "For #{template}: #{coil_cooling_dx_variable_speed.name}: Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; EER = #{min_eer}")
|
|
3154
3169
|
end
|
|
@@ -3156,7 +3171,7 @@ class ECMS
|
|
|
3156
3171
|
# if specified as SEER (heat pump)
|
|
3157
3172
|
unless ac_props['minimum_seasonal_efficiency'].nil?
|
|
3158
3173
|
min_seer = ac_props['minimum_seasonal_efficiency']
|
|
3159
|
-
cop = seer_to_cop_no_fan(min_seer)
|
|
3174
|
+
cop = OpenstudioStandards::HVAC.seer_to_cop_no_fan(min_seer)
|
|
3160
3175
|
new_comp_name = "#{coil_cooling_dx_variable_speed.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_seer}SEER"
|
|
3161
3176
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CoilCoolingDXVariableSpeed', "For #{template}: #{coil_cooling_dx_variable_speed.name}: Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; SEER = #{min_seer}")
|
|
3162
3177
|
end
|
|
@@ -3164,7 +3179,7 @@ class ECMS
|
|
|
3164
3179
|
# If specified as EER (heat pump)
|
|
3165
3180
|
unless ac_props['minimum_full_load_efficiency'].nil?
|
|
3166
3181
|
min_eer = ac_props['minimum_full_load_efficiency']
|
|
3167
|
-
cop = eer_to_cop_no_fan(min_eer)
|
|
3182
|
+
cop = OpenstudioStandards::HVAC.eer_to_cop_no_fan(min_eer)
|
|
3168
3183
|
new_comp_name = "#{coil_cooling_dx_variable_speed.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_eer}EER"
|
|
3169
3184
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CoilCoolingDXVariableSpeed', "For #{template}: #{coil_cooling_dx_variable_speed.name}: Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; EER = #{min_eer}")
|
|
3170
3185
|
end
|
|
@@ -3212,7 +3227,7 @@ class ECMS
|
|
|
3212
3227
|
# If specified as EER
|
|
3213
3228
|
unless props['minimum_energy_efficiency_ratio'].nil?
|
|
3214
3229
|
min_eer = props['minimum_energy_efficiency_ratio']
|
|
3215
|
-
cop = eer_to_cop_no_fan(min_eer)
|
|
3230
|
+
cop = OpenstudioStandards::HVAC.eer_to_cop_no_fan(min_eer)
|
|
3216
3231
|
new_comp_name = "#{coil_heating_dx_variable_speed.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_eer}EER"
|
|
3217
3232
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CoilHeatingDXVariableSpeed', "For #{template}: #{coil_heating_dx_variable_speed.name}: Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; EER = #{min_eer}")
|
|
3218
3233
|
end
|
|
@@ -3220,7 +3235,7 @@ class ECMS
|
|
|
3220
3235
|
# if specified as HSPF (heat pump)
|
|
3221
3236
|
unless props['minimum_heating_seasonal_performance_factor'].nil?
|
|
3222
3237
|
min_hspf = props['minimum_heating_seasonal_performance_factor']
|
|
3223
|
-
cop = hspf_to_cop_no_fan(min_hspf)
|
|
3238
|
+
cop = OpenstudioStandards::HVAC.hspf_to_cop_no_fan(min_hspf)
|
|
3224
3239
|
new_comp_name = "#{coil_heating_dx_variable_speed.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_seer}HSPF"
|
|
3225
3240
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CoilHeatingDXVariableSpeed', "For #{template}: #{coil_heating_dx_variable_speed.name}: Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; SEER = #{min_seer}")
|
|
3226
3241
|
end
|
|
@@ -3228,7 +3243,7 @@ class ECMS
|
|
|
3228
3243
|
# If specified as EER (heat pump)
|
|
3229
3244
|
unless props['minimum_full_load_efficiency'].nil?
|
|
3230
3245
|
min_eer = props['minimum_full_load_efficiency']
|
|
3231
|
-
cop = eer_to_cop_no_fan(min_eer)
|
|
3246
|
+
cop = OpenstudioStandards::HVAC.eer_to_cop_no_fan(min_eer)
|
|
3232
3247
|
new_comp_name = "#{coil_heating_dx_variable_speed.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_eer}EER"
|
|
3233
3248
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CoilHeatingDXVariableSpeed', "For #{template}: #{coil_heating_dx_variable_speed.name}: Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; EER = #{min_eer}")
|
|
3234
3249
|
end
|
|
@@ -3236,7 +3251,7 @@ class ECMS
|
|
|
3236
3251
|
# If specified as COP
|
|
3237
3252
|
unless props['minimum_coefficient_of_performance_heating'].nil?
|
|
3238
3253
|
min_cop = props['minimum_coefficient_of_performance_heating']
|
|
3239
|
-
cop = cop_heating_to_cop_heating_no_fan(min_cop, capacity_w)
|
|
3254
|
+
cop = OpenstudioStandards::HVAC.cop_heating_to_cop_heating_no_fan(min_cop, capacity_w)
|
|
3240
3255
|
new_comp_name = "#{coil_heating_dx_variable_speed.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{cop}COP"
|
|
3241
3256
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CoilHeatingDXVariableSpeed', "For #{template}: #{coil_heating_dx_variable_speed.name}: Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; EER = #{min_eer}")
|
|
3242
3257
|
end
|
|
@@ -3257,7 +3272,10 @@ class ECMS
|
|
|
3257
3272
|
search_criteria,
|
|
3258
3273
|
rename = false)
|
|
3259
3274
|
|
|
3260
|
-
capacity_w =
|
|
3275
|
+
capacity_w = OpenstudioStandards::HVAC.air_conditioner_variable_refrigerant_flow_get_cooling_capacity(airconditioner_variablerefrigerantflow)
|
|
3276
|
+
if airconditioner_variablerefrigerantflow.autosizedGrossRatedTotalCoolingCapacity.is_initialized
|
|
3277
|
+
airconditioner_variablerefrigerantflow.setGrossRatedTotalCoolingCapacity(capacity_w)
|
|
3278
|
+
end
|
|
3261
3279
|
capacity_btu_per_hr = OpenStudio.convert(capacity_w, 'W', 'Btu/hr').get
|
|
3262
3280
|
capacity_kbtu_per_hr = OpenStudio.convert(capacity_w, 'W', 'kBtu/hr').get
|
|
3263
3281
|
|
|
@@ -3277,7 +3295,7 @@ class ECMS
|
|
|
3277
3295
|
# If specified as EER
|
|
3278
3296
|
unless props['minimum_energy_efficiency_ratio'].nil?
|
|
3279
3297
|
min_eer = props['minimum_energy_efficiency_ratio']
|
|
3280
|
-
cop = eer_to_cop_no_fan(min_eer)
|
|
3298
|
+
cop = OpenstudioStandards::HVAC.eer_to_cop_no_fan(min_eer)
|
|
3281
3299
|
new_comp_name = "#{airconditioner_variablerefrigerantflow.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_eer}EER"
|
|
3282
3300
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.AirConditionerVariableRefrigerantFlow', "For #{template}: #{airconditioner_variablerefrigerantflow.name}: Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; EER = #{min_eer}")
|
|
3283
3301
|
end
|
|
@@ -3285,7 +3303,7 @@ class ECMS
|
|
|
3285
3303
|
# if specified as HSPF (heat pump)
|
|
3286
3304
|
unless props['minimum_heating_seasonal_performance_factor'].nil?
|
|
3287
3305
|
min_hspf = props['minimum_heating_seasonal_performance_factor']
|
|
3288
|
-
cop = hspf_to_cop_no_fan(min_hspf)
|
|
3306
|
+
cop = OpenstudioStandards::HVAC.hspf_to_cop_no_fan(min_hspf)
|
|
3289
3307
|
new_comp_name = "#{coil_heating_dx_variable_speed.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_seer}HSPF"
|
|
3290
3308
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.AirConditionerVariableRefrigerantFlow', "For #{template}: #{airconditioner_variablerefrigerantflow.name}: Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; SEER = #{min_seer}")
|
|
3291
3309
|
end
|
|
@@ -3293,7 +3311,7 @@ class ECMS
|
|
|
3293
3311
|
# If specified as EER (heat pump)
|
|
3294
3312
|
unless props['minimum_full_load_efficiency'].nil?
|
|
3295
3313
|
min_eer = props['minimum_full_load_efficiency']
|
|
3296
|
-
cop = eer_to_cop_no_fan(min_eer)
|
|
3314
|
+
cop = OpenstudioStandards::HVAC.eer_to_cop_no_fan(min_eer)
|
|
3297
3315
|
new_comp_name = "#{airconditioner_variablerefrigerantflow.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_eer}EER"
|
|
3298
3316
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.AirConditionerVariableRefrigerantFlow', "For #{template}: #{airconditioner_variablerefrigerantflow.name}: Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; EER = #{min_eer}")
|
|
3299
3317
|
end
|
|
@@ -3326,7 +3344,10 @@ class ECMS
|
|
|
3326
3344
|
search_criteria,
|
|
3327
3345
|
rename = false)
|
|
3328
3346
|
|
|
3329
|
-
capacity_w =
|
|
3347
|
+
capacity_w = OpenstudioStandards::HVAC.air_conditioner_variable_refrigerant_flow_get_heating_capacity(airconditioner_variablerefrigerantflow)
|
|
3348
|
+
if airconditioner_variablerefrigerantflow.autosizedGrossRatedHeatingCapacity.is_initialized
|
|
3349
|
+
airconditioner_variablerefrigerantflow.setGrossRatedHeatingCapacity(capacity_w)
|
|
3350
|
+
end
|
|
3330
3351
|
capacity_btu_per_hr = OpenStudio.convert(capacity_w, 'W', 'Btu/hr').get
|
|
3331
3352
|
capacity_kbtu_per_hr = OpenStudio.convert(capacity_w, 'W', 'kBtu/hr').get
|
|
3332
3353
|
|
|
@@ -3346,7 +3367,7 @@ class ECMS
|
|
|
3346
3367
|
# If specified as EER
|
|
3347
3368
|
unless props['minimum_energy_efficiency_ratio'].nil?
|
|
3348
3369
|
min_eer = props['minimum_energy_efficiency_ratio']
|
|
3349
|
-
cop = eer_to_cop_no_fan(min_eer)
|
|
3370
|
+
cop = OpenstudioStandards::HVAC.eer_to_cop_no_fan(min_eer)
|
|
3350
3371
|
new_comp_name = "#{airconditioner_variablerefrigerantflow.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_eer}EER"
|
|
3351
3372
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.AirConditionerVariableRefrigerantFlow', "For #{template}: #{airconditioner_variablerefrigerantflow.name}: Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; EER = #{min_eer}")
|
|
3352
3373
|
end
|
|
@@ -3354,7 +3375,7 @@ class ECMS
|
|
|
3354
3375
|
# if specified as HSPF (heat pump)
|
|
3355
3376
|
unless props['minimum_heating_seasonal_performance_factor'].nil?
|
|
3356
3377
|
min_hspf = props['minimum_heating_seasonal_performance_factor']
|
|
3357
|
-
cop = hspf_to_cop_no_fan(min_hspf)
|
|
3378
|
+
cop = OpenstudioStandards::HVAC.hspf_to_cop_no_fan(min_hspf)
|
|
3358
3379
|
new_comp_name = "#{coil_heating_dx_variable_speed.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_seer}HSPF"
|
|
3359
3380
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.AirConditionerVariableRefrigerantFlow', "For #{template}: #{airconditioner_variablerefrigerantflow.name}: Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; SEER = #{min_seer}")
|
|
3360
3381
|
end
|
|
@@ -3362,7 +3383,7 @@ class ECMS
|
|
|
3362
3383
|
# If specified as EER (heat pump)
|
|
3363
3384
|
unless props['minimum_full_load_efficiency'].nil?
|
|
3364
3385
|
min_eer = props['minimum_full_load_efficiency']
|
|
3365
|
-
cop = eer_to_cop_no_fan(min_eer)
|
|
3386
|
+
cop = OpenstudioStandards::HVAC.eer_to_cop_no_fan(min_eer)
|
|
3366
3387
|
new_comp_name = "#{airconditioner_variablerefrigerantflow.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_eer}EER"
|
|
3367
3388
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.AirConditionerVariableRefrigerantFlow', "For #{template}: #{airconditioner_variablerefrigerantflow.name}: Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; EER = #{min_eer}")
|
|
3368
3389
|
end
|
|
@@ -3370,7 +3391,7 @@ class ECMS
|
|
|
3370
3391
|
# If specified as COP
|
|
3371
3392
|
unless props['minimum_coefficient_of_performance_heating'].nil?
|
|
3372
3393
|
min_cop = props['minimum_coefficient_of_performance_heating']
|
|
3373
|
-
cop = cop_heating_to_cop_heating_no_fan(min_cop, capacity_w)
|
|
3394
|
+
cop = OpenstudioStandards::HVAC.cop_heating_to_cop_heating_no_fan(min_cop, capacity_w)
|
|
3374
3395
|
new_comp_name = "#{airconditioner_variablerefrigerantflow.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{cop}COP"
|
|
3375
3396
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.AirConditionerVariableRefrigerantFlow', "For #{template}: #{airconditioner_variablerefrigerantflow.name}: Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; EER = #{min_eer}")
|
|
3376
3397
|
end
|
|
@@ -3417,57 +3438,6 @@ class ECMS
|
|
|
3417
3438
|
return capacity_w
|
|
3418
3439
|
end
|
|
3419
3440
|
|
|
3420
|
-
# =============================================================================================================================
|
|
3421
|
-
# Find cooling capacity for "AirConditionerVariableRefrigerantFlow" object
|
|
3422
|
-
def airconditioner_variablerefrigerantflow_cooling_find_capacity(airconditioner_variablerefrigerantflow)
|
|
3423
|
-
capacity_w = nil
|
|
3424
|
-
if airconditioner_variablerefrigerantflow.ratedTotalCoolingCapacity.is_initialized
|
|
3425
|
-
capacity_w = airconditioner_variablerefrigerantflow.ratedTotalCoolingCapacity.get
|
|
3426
|
-
elsif airconditioner_variablerefrigerantflow.autosizedRatedTotalCoolingCapacity.is_initialized
|
|
3427
|
-
capacity_w = airconditioner_variablerefrigerantflow.autosizedRatedTotalCoolingCapacity.get
|
|
3428
|
-
airconditioner_variablerefrigerantflow.setRatedTotalCoolingCapacity(capacity_w)
|
|
3429
|
-
else
|
|
3430
|
-
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.AirConditionerVariableRefrigerantFlow', "For #{airconditioner_variablerefrigerantflow.name} cooling capacity is not available.")
|
|
3431
|
-
return 0.0
|
|
3432
|
-
end
|
|
3433
|
-
|
|
3434
|
-
return capacity_w
|
|
3435
|
-
end
|
|
3436
|
-
|
|
3437
|
-
# =============================================================================================================================
|
|
3438
|
-
# Find heating capacity for "AirConditionerVariableRefrigerantFlow" object
|
|
3439
|
-
def airconditioner_variablerefrigerantflow_heating_find_capacity(airconditioner_variablerefrigerantflow)
|
|
3440
|
-
capacity_w = nil
|
|
3441
|
-
if airconditioner_variablerefrigerantflow.ratedTotalHeatingCapacity.is_initialized
|
|
3442
|
-
capacity_w = airconditioner_variablerefrigerantflow.ratedTotalHeatingCapacity.get
|
|
3443
|
-
elsif airconditioner_variablerefrigerantflow.autosizedRatedTotalHeatingCapacity.is_initialized
|
|
3444
|
-
capacity_w = airconditioner_variablerefrigerantflow.autosizedRatedTotalHeatingCapacity.get
|
|
3445
|
-
airconditioner_variablerefrigerantflow.setRatedTotalHeatingCapacity(capacity_w)
|
|
3446
|
-
else
|
|
3447
|
-
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.AirConditionerVariableRefrigerantFlow', "For #{airconditioner_variablerefrigerantflow.name} heating capacity is not available.")
|
|
3448
|
-
return 0.0
|
|
3449
|
-
end
|
|
3450
|
-
|
|
3451
|
-
return capacity_w
|
|
3452
|
-
end
|
|
3453
|
-
|
|
3454
|
-
# =============================================================================================================================
|
|
3455
|
-
# Find cooling capacity for "ChillerElectricEIR" object
|
|
3456
|
-
def chiller_electric_eir_find_capacity(chiller_electric_eir)
|
|
3457
|
-
capacity_w = nil
|
|
3458
|
-
if chiller_electric_eir.referenceCapacity.is_initialized
|
|
3459
|
-
capacity_w = chiller_electric_eir.referenceCapacity.get
|
|
3460
|
-
elsif chiller_electric_eir.autosizedRererenceCapacity.is_initialized
|
|
3461
|
-
capacity_w = chiller_electric_eir.autosizedRerenceCapacity.get
|
|
3462
|
-
chiller_electric_eir.setReferenceCapacity(capacity_w)
|
|
3463
|
-
else
|
|
3464
|
-
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.ChillerElectricEIR', "For #{chiller_electric_eir.name} capacity not available")
|
|
3465
|
-
return 0.0
|
|
3466
|
-
end
|
|
3467
|
-
|
|
3468
|
-
return capacity_w
|
|
3469
|
-
end
|
|
3470
|
-
|
|
3471
3441
|
# ============================================================================================================================
|
|
3472
3442
|
# Apply boiler efficiency
|
|
3473
3443
|
# This model takes an OS model and a boiler efficiency string or hash sent to it with the following form:
|
|
@@ -3772,10 +3742,17 @@ class ECMS
|
|
|
3772
3742
|
search_criteria['name'] = unitary_cop_copy
|
|
3773
3743
|
coil_name = coil.name.to_s
|
|
3774
3744
|
if (sql_db_vars_map.has_key? coil_name) && !sizing_done then coil.setName(sql_db_vars_map[coil_name]) end
|
|
3745
|
+
|
|
3746
|
+
multiplier = nil
|
|
3747
|
+
if ['PTAC', 'PTHP'].include?(OpenstudioStandards::HVAC.coil_dx_subcategory(coil))
|
|
3748
|
+
thermal_zone = OpenstudioStandards::HVAC.hvac_component_get_thermal_zone(coil)
|
|
3749
|
+
multiplier = thermal_zone.multiplier if !thermal_zone.nil?
|
|
3750
|
+
end
|
|
3751
|
+
|
|
3775
3752
|
if coil_type == 'SingleSpeed'
|
|
3776
|
-
capacity_w =
|
|
3753
|
+
capacity_w = OpenstudioStandards::HVAC.coil_cooling_dx_single_speed_get_capacity(coil, multiplier: multiplier)
|
|
3777
3754
|
elsif coil_type == 'MultiSpeed'
|
|
3778
|
-
capacity_w =
|
|
3755
|
+
capacity_w = OpenstudioStandards::HVAC.coil_cooling_dx_multi_speed_get_capacity(coil, multiplier: multiplier)
|
|
3779
3756
|
end
|
|
3780
3757
|
coil.setName(coil_name)
|
|
3781
3758
|
cop_package = model_find_object(@standards_data['tables']['unitary_cop_ecm'], search_criteria, capacity_w)
|
|
@@ -3807,9 +3784,9 @@ class ECMS
|
|
|
3807
3784
|
if sizing_done
|
|
3808
3785
|
cop = nil
|
|
3809
3786
|
if unitary_cop['minimum_energy_efficiency_ratio']
|
|
3810
|
-
cop = eer_to_cop_no_fan(unitary_cop['minimum_energy_efficiency_ratio'].to_f)
|
|
3787
|
+
cop = OpenstudioStandards::HVAC.eer_to_cop_no_fan(unitary_cop['minimum_energy_efficiency_ratio'].to_f)
|
|
3811
3788
|
elsif unitary_cop['minimum_seasonal_energy_efficiency_ratio']
|
|
3812
|
-
cop = seer_to_cop_no_fan(unitary_cop['minimum_seasonal_energy_efficiency_ratio'].to_f)
|
|
3789
|
+
cop = OpenstudioStandards::HVAC.seer_to_cop_no_fan(unitary_cop['minimum_seasonal_energy_efficiency_ratio'].to_f)
|
|
3813
3790
|
elsif unitary_cop['minimum_coefficient_of_performance_cooling']
|
|
3814
3791
|
cop = unitary_cop['minimum_coefficient_of_performance_cooling'].to_f
|
|
3815
3792
|
end
|
|
@@ -739,7 +739,8 @@ class NECB2011
|
|
|
739
739
|
new_spacetype.setStandardsSpaceType(new_spacetype_name)
|
|
740
740
|
new_spacetype.setName("#{space.spaceType.get.standardsBuildingType.get} #{new_spacetype_name}")
|
|
741
741
|
space_type_apply_internal_loads(space_type: new_spacetype, lights_type: lights_type, lights_scale: lights_scale)
|
|
742
|
-
space_type_apply_internal_load_schedules(new_spacetype
|
|
742
|
+
space_type_apply_internal_load_schedules(new_spacetype)
|
|
743
|
+
space_type_apply_thermostat_schedules(new_spacetype)
|
|
743
744
|
end
|
|
744
745
|
space.setSpaceType(new_spacetype)
|
|
745
746
|
# sanity check.
|
|
@@ -16,13 +16,8 @@ class NECB2011
|
|
|
16
16
|
space_type_apply_internal_loads(space_type: space_type)
|
|
17
17
|
|
|
18
18
|
# Schedules
|
|
19
|
-
space_type_apply_internal_load_schedules(space_type
|
|
20
|
-
|
|
21
|
-
true,
|
|
22
|
-
true,
|
|
23
|
-
true,
|
|
24
|
-
true,
|
|
25
|
-
true)
|
|
19
|
+
space_type_apply_internal_load_schedules(space_type)
|
|
20
|
+
space_type_apply_thermostat_schedules(space_type)
|
|
26
21
|
end
|
|
27
22
|
end
|
|
28
23
|
|
|
@@ -67,7 +62,6 @@ class NECB2011
|
|
|
67
62
|
end
|
|
68
63
|
|
|
69
64
|
# Get the space Type data from @standards data
|
|
70
|
-
|
|
71
65
|
spacetype_data = @standards_data['tables']['space_types']['table']
|
|
72
66
|
|
|
73
67
|
standards_building_type = space_type.standardsBuildingType.is_initialized ? space_type.standardsBuildingType.get : nil
|
|
@@ -79,6 +73,7 @@ class NECB2011
|
|
|
79
73
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.SpaceType', "#{space_type.name} was not found in the standards data.")
|
|
80
74
|
return false
|
|
81
75
|
end
|
|
76
|
+
|
|
82
77
|
# People
|
|
83
78
|
people_have_info = false
|
|
84
79
|
occupancy_per_area = space_type_properties['occupancy_per_area'].to_f
|
|
@@ -296,9 +291,10 @@ class NECB2011
|
|
|
296
291
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.SpaceType', "#{space_type.name} set ventilation per area to #{ventilation_per_area} cfm/ft^2.")
|
|
297
292
|
end
|
|
298
293
|
unless ventilation_per_person.zero?
|
|
299
|
-
#
|
|
300
|
-
#
|
|
301
|
-
#
|
|
294
|
+
# The occupancy per area rate for ventilation is different from the occupancy used for other loads as the occupancy assumption in the applicable
|
|
295
|
+
# ventilation standard is followed. The mod_ventilation_per_person rate adjusts the per person ventilation rate (from the standard) so that the
|
|
296
|
+
# correct ventilation rate (per the standard) is calculated when using the NECB occupant density (defined as occupancy_per_area in the space_types.json file)
|
|
297
|
+
# Later the method thermal_zone_convert_outdoor_air_to_per_area (in standards) uses the space occupancy which is the NECB figure to get the total vent rate.
|
|
302
298
|
mod_ventilation_per_person = ventilation_per_person * ventilation_occupancy_per_area / occupancy_per_area
|
|
303
299
|
ventilation.setOutdoorAirFlowperPerson(OpenStudio.convert(mod_ventilation_per_person.to_f, 'ft^3/min*person', 'm^3/s*person').get)
|
|
304
300
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.SpaceType', "#{space_type.name} set ventilation per person to #{mod_ventilation_per_person} cfm/person.")
|
|
@@ -307,7 +303,15 @@ class NECB2011
|
|
|
307
303
|
ventilation.setOutdoorAirFlowAirChangesperHour(ventilation_ach)
|
|
308
304
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.SpaceType', "#{space_type.name} set ventilation to #{ventilation_ach} ACH.")
|
|
309
305
|
end
|
|
310
|
-
|
|
306
|
+
|
|
307
|
+
# Add information about the source to an additional properties object. Used in unit testing but could be useful elsewhere.
|
|
308
|
+
notes = ventilation.additionalProperties
|
|
309
|
+
notes.setFeature("Ref OA per area", space_type_properties['ventilation_per_area'].to_f)
|
|
310
|
+
notes.setFeature("Ref OA per person", space_type_properties['ventilation_per_person'].to_f)
|
|
311
|
+
notes.setFeature("Ref OA ach", space_type_properties['ventilation_air_changes'].to_f)
|
|
312
|
+
notes.setFeature("Ref occupancy per 1000ft2", space_type_properties['ventilation_occupancy_rate_people_per_1000ft2'].to_f)
|
|
313
|
+
notes.setFeature("Ref standard", space_type_properties['ventilation_occupancy_standard'].to_s)
|
|
314
|
+
notes.setFeature("Ref space type", space_type_properties['ventilation_standard_space_type'].to_s)
|
|
311
315
|
elsif set_ventilation && !ventilation_have_info
|
|
312
316
|
|
|
313
317
|
# All space types must have a design spec OA
|