From a56a4ee9f2c123b4f289328125392f62e4eed984 Mon Sep 17 00:00:00 2001 From: Scott Horowitz Date: Wed, 23 Oct 2024 17:44:37 -0600 Subject: [PATCH] A CFIS system with no outdoor air control can still meet the DUMVS requirement. Also, adds 2022CE as an ERI version. --- Changelog.md | 15 +- docs/source/workflow_inputs.rst | 4 +- .../HPXMLtoOpenStudio/resources/constants.rb | 2 +- rulesets/resources/301ruleset.rb | 19 +- rulesets/resources/301validator.xml | 4 +- rulesets/tests/test_enclosure.rb | 42 +- rulesets/tests/test_ventilation.rb | 33 +- .../sample_files/base-version-co2-2022CE.xml | 494 ++++++++++++++++++ .../sample_files/base-version-eri-2022CE.xml | 494 ++++++++++++++++++ 9 files changed, 1048 insertions(+), 59 deletions(-) create mode 100644 workflow/sample_files/base-version-co2-2022CE.xml create mode 100644 workflow/sample_files/base-version-eri-2022CE.xml diff --git a/Changelog.md b/Changelog.md index 56cfde2ab..b0eb97f5f 100644 --- a/Changelog.md +++ b/Changelog.md @@ -2,20 +2,19 @@ __New Features__ - Updates to HPXML v4.0 final release. -- Updates HERS Diagnostic Output to v0.3.0. - Adds 2024 IECC ERI pathway calculation. - **Breaking change**: Renamed `Emissions: : RESNET: XXX` to `Emissions: : ANSI301: XXX` in Annual Home CSV output files. -- Adds inputs for modeling skylight curbs and/or shafts. - Implements ANSI/RESNET/ICC Standard 301-2022 Addendum E for CFIS systems. - - **Breaking change**: Removes `FanPower`/`FanPowerDefaulted` inputs for CFIS systems (fan power assumed to be HVAC's FanPowerWattsPerCFM multiplied by the blower fan max flow rate). - - **Breaking change**: Removes `VentilationOnlyModeAirflowFraction` input for CFIS systems (blower fan assumed to run at max flow rate during ventilation only operation). - - **Breaking change**: Adds `CFISControls/HasOutdoorAirControl` input for CFIS systems to describe whether there is automatic flow control of outdoor air. - - **Breaking change**: Adds `CFISControls/extension/ControlType` input ("optimized" or "timer") to describe how the CFIS air handler fan is controlled. - - Adds choice of "none" for `CFISControls/AdditionalRuntimeOperatingMode` input for CFIS systems to describe when there is no strategy to meet remainder of ventilation target. - - Allow modeling CFIS systems with supplemental fans that run simultaneously with the air handler (`CFISControls/extension/SupplementalFanRunsWithAirHandlerFan=true`). + - `ERICalculation/Version` and `CO2IndexCalculation/Version` can now be "2022CE". + - **Breaking change**: Removes `FanPower`/`FanPowerDefaulted` and `VentilationOnlyModeAirflowFraction` inputs for CFIS systems. + - **Breaking change**: Adds `CFISControls/HasOutdoorAirControl` and `CFISControls/extension/ControlType` inputs for CFIS systems. + - Adds choice of "none" for `CFISControls/AdditionalRuntimeOperatingMode` input for CFIS systems. + - Adds optional `CFISControls/extension/SupplementalFanRunsWithAirHandlerFan` input for CFIS systems. +- Adds inputs for modeling skylight curbs and/or shafts. - Relaxes IECC climate zone requirements. - IECC climate zone years other than 2006 are now always optional; for programs that use specific IECC climate zone years (e.g., 2021 for ZERH SF 2.0), that year is used if provided, otherwise the next earliest provided year will be used with the assumption that the climate zone has not changed across the years. - See [the documentation](https://openstudio-eri.readthedocs.io/en/latest/workflow_inputs.html#hpxml-climate-zones) for more information. +- Updates HERS Diagnostic Output to v0.3.0. __Bugfixes__ - Adds error-checking for `NumberofConditionedFloorsAboveGrade`=0, which is not allowed per the documentation. diff --git a/docs/source/workflow_inputs.rst b/docs/source/workflow_inputs.rst index 2f559d841..ea52d3152 100644 --- a/docs/source/workflow_inputs.rst +++ b/docs/source/workflow_inputs.rst @@ -59,10 +59,10 @@ The OpenStudio-ERI calculation(s) to be performed are entered in ``/HPXML/Softwa ``ZERHCalculation/Version`` string See [#]_ No Version to perform DOE ZERH ERI calculation ================================= ======== ======= =========== ======== ======= ================================== - .. [#] ERICalculation/Version choices are "latest", "2022C", "2022", "2019ABCD", "2019ABC", "2019AB", "2019A", "2019", "2014AEG", "2014AE", "2014A", or "2014". + .. [#] ERICalculation/Version choices are "latest", "2022CE", "2022C", "2022", "2019ABCD", "2019ABC", "2019AB", "2019A", "2019", "2014AEG", "2014AE", "2014A", or "2014". For example, a value of "2019AB" tells the workflow to use ANSI/RESNET/ICC 301-2019 with both Addendum A and Addendum B included. A value of "latest" can be used to always point to the latest version available. - .. [#] CO2IndexCalculation/Version choices are "latest", "2022C", "2022", or "2019ABCD". + .. [#] CO2IndexCalculation/Version choices are "latest", "2022CE", "2022C", "2022", or "2019ABCD". A value of "latest" can be used to always point to the latest version available. If both CO2IndexCalculation/Version and ERICalculation/Version are provided, they must use the same version. .. [#] IECCERICalculation/Version choices are "2024", "2021", "2018", or "2015". diff --git a/hpxml-measures/HPXMLtoOpenStudio/resources/constants.rb b/hpxml-measures/HPXMLtoOpenStudio/resources/constants.rb index 0321d7ca2..eb1528a7c 100644 --- a/hpxml-measures/HPXMLtoOpenStudio/resources/constants.rb +++ b/hpxml-measures/HPXMLtoOpenStudio/resources/constants.rb @@ -86,7 +86,7 @@ module Constants # Arrays/Maps ERIVersions = ['2014', '2014A', '2014AE', '2014AEG', '2019', '2019A', - '2019AB', '2019ABC', '2019ABCD', '2022', '2022C'] + '2019AB', '2019ABC', '2019ABCD', '2022', '2022C', '2022CE'] IECCZones = ['1A', '1B', '1C', '2A', '2B', '2C', '3A', '3B', '3C', '4A', '4B', '4C', '5A', '5B', '5C', '6A', '6B', '6C', '7', '8'] StateCodesMap = { 'AK' => 'Alaska', diff --git a/rulesets/resources/301ruleset.rb b/rulesets/resources/301ruleset.rb index b7b8c0868..fe2a63a57 100644 --- a/rulesets/resources/301ruleset.rb +++ b/rulesets/resources/301ruleset.rb @@ -2522,13 +2522,16 @@ def self.calc_rated_home_infiltration_ach50(orig_bldg) mech_vent_fans = orig_bldg.ventilation_fans.select { |f| f.used_for_whole_building_ventilation } if mech_vent_fans.empty? min_nach = 0.30 - elsif mech_vent_fans.select { |f| f.fan_type == HPXML::MechVentTypeCFIS && (f.cfis_addtl_runtime_operating_mode == HPXML::CFISModeNone || !f.cfis_has_outdoor_air_control) }.size > 0 - # 301-2022 Addendum E - # Does not quality as Dwelling Unit Mechanical Ventilation System because it has no - # strategy to meet remainder of ventilation target - min_nach = 0.30 - elsif Constants::ERIVersions.index(@eri_version) >= Constants::ERIVersions.index('2019') - has_non_exhaust_systems = (mech_vent_fans.select { |f| f.fan_type != HPXML::MechVentTypeExhaust }.size > 0) + end + if Constants::ERIVersions.index(@eri_version) >= Constants::ERIVersions.index('2022CE') + if mech_vent_fans.any? { |f| f.fan_type == HPXML::MechVentTypeCFIS && f.cfis_addtl_runtime_operating_mode == HPXML::CFISModeNone } + # Does not quality as Dwelling Unit Mechanical Ventilation System because it has no + # strategy to meet remainder of ventilation target + min_nach = 0.30 + end + end + if Constants::ERIVersions.index(@eri_version) >= Constants::ERIVersions.index('2019') + has_non_exhaust_systems = mech_vent_fans.any? { |f| f.fan_type != HPXML::MechVentTypeExhaust } mech_vent_fans.each do |orig_vent_fan| if orig_vent_fan.flow_rate_not_tested || ((a_ext < 0.5) && !has_non_exhaust_systems) min_nach = 0.30 @@ -2790,7 +2793,7 @@ def self.add_reference_air_conditioner(orig_bldg, new_bldg, load_frac, orig_syst def self.add_reference_distribution_system(new_bldg) new_bldg.hvac_systems.each do |hvac| next if hvac.distribution_system_idref.nil? - next if new_bldg.hvac_distributions.select { |d| d.id == hvac.distribution_system_idref }.size > 0 + next if new_bldg.hvac_distributions.any? { |d| d.id == hvac.distribution_system_idref } # Add new DSE distribution if distribution doesn't already exist new_bldg.hvac_distributions.add(id: hvac.distribution_system_idref, diff --git a/rulesets/resources/301validator.xml b/rulesets/resources/301validator.xml index e0fcb5510..00c8f6870 100644 --- a/rulesets/resources/301validator.xml +++ b/rulesets/resources/301validator.xml @@ -7,9 +7,9 @@ [Root] Expected 0 or 1 element(s) for xpath: SoftwareInfo/extension/ERICalculation/Version - Expected SoftwareInfo/extension/ERICalculation/Version to be 'latest' or '2022C' or '2022' or '2019ABCD' or '2019ABC' or '2019AB' or '2019A' or '2019' or '2014AEG' or '2014AE' or '2014A' or '2014' + Expected SoftwareInfo/extension/ERICalculation/Version to be 'latest' or '2022CE' or '2022C' or '2022' or '2019ABCD' or '2019ABC' or '2019AB' or '2019A' or '2019' or '2014AEG' or '2014AE' or '2014A' or '2014' Expected 0 or 1 element(s) for xpath: SoftwareInfo/extension/CO2IndexCalculation/Version - Expected SoftwareInfo/extension/CO2IndexCalculation/Version to be 'latest' or '2022C' or '2022' or '2019ABCD' + Expected SoftwareInfo/extension/CO2IndexCalculation/Version to be 'latest' or '2022CE' or '2022C' or '2022' or '2019ABCD' Expected 0 or 1 element(s) for xpath: SoftwareInfo/extension/IECCERICalculation/Version Expected SoftwareInfo/extension/IECCERICalculation/Version to be '2024' or '2021' or '2018' or '2015' Expected 0 or 1 element(s) for xpath: SoftwareInfo/extension/EnergyStarCalculation/Version diff --git a/rulesets/tests/test_enclosure.rb b/rulesets/tests/test_enclosure.rb index bdda199c1..fc46bf6d1 100644 --- a/rulesets/tests/test_enclosure.rb +++ b/rulesets/tests/test_enclosure.rb @@ -173,21 +173,34 @@ def test_enclosure_infiltration # Test CFIS mechanical ventilation that does not quality as a # Dwelling Unit Mechanical Ventilation System - hpxml_names = ['base-mechvent-cfis-no-additional-runtime.xml', - 'base-mechvent-cfis-no-outdoor-air-control.xml'] + hpxml_name = 'base-mechvent-cfis-no-additional-runtime.xml' - hpxml_names.each do |hpxml_name| - _all_calc_types.each do |calc_type| - _hpxml, hpxml_bldg = _test_ruleset(hpxml_name, calc_type) - if [Constants::CalcTypeERIRatedHome].include? calc_type - _check_infiltration(hpxml_bldg, ach50: 9.3, height: 9.75, volume: 21600.0) # 0.3 nACH - elsif [Constants::CalcTypeERIReferenceHome, Constants::CalcTypeCO2eReferenceHome].include? calc_type - _check_infiltration(hpxml_bldg, ach50: 7.09, height: 9.75, volume: 21600.0) - elsif [Constants::CalcTypeERIIndexAdjustmentDesign].include? calc_type - _check_infiltration(hpxml_bldg, ach50: 3.0, height: 17.0, volume: 20400.0) - elsif [Constants::CalcTypeERIIndexAdjustmentReferenceHome].include? calc_type - _check_infiltration(hpxml_bldg, ach50: 6.67, height: 17.0, volume: 20400.0) - end + _all_calc_types.each do |calc_type| + _hpxml, hpxml_bldg = _test_ruleset(hpxml_name, calc_type) + if [Constants::CalcTypeERIRatedHome].include? calc_type + _check_infiltration(hpxml_bldg, ach50: 9.3, height: 9.75, volume: 21600.0) # 0.3 nACH + elsif [Constants::CalcTypeERIReferenceHome, Constants::CalcTypeCO2eReferenceHome].include? calc_type + _check_infiltration(hpxml_bldg, ach50: 7.09, height: 9.75, volume: 21600.0) + elsif [Constants::CalcTypeERIIndexAdjustmentDesign].include? calc_type + _check_infiltration(hpxml_bldg, ach50: 3.0, height: 17.0, volume: 20400.0) + elsif [Constants::CalcTypeERIIndexAdjustmentReferenceHome].include? calc_type + _check_infiltration(hpxml_bldg, ach50: 6.67, height: 17.0, volume: 20400.0) + end + end + + # Same as above but prior to 301-2022 Addendum E + hpxml_name = _change_eri_version(hpxml_name, '2022C') + + _all_calc_types.each do |calc_type| + _hpxml, hpxml_bldg = _test_ruleset(hpxml_name, calc_type) + if [Constants::CalcTypeERIRatedHome].include? calc_type + _check_infiltration(hpxml_bldg, ach50: 3.0, height: 9.75, volume: 21600.0) # not 0.3 nACH + elsif [Constants::CalcTypeERIReferenceHome, Constants::CalcTypeCO2eReferenceHome].include? calc_type + _check_infiltration(hpxml_bldg, ach50: 7.09, height: 9.75, volume: 21600.0) + elsif [Constants::CalcTypeERIIndexAdjustmentDesign].include? calc_type + _check_infiltration(hpxml_bldg, ach50: 3.0, height: 17.0, volume: 20400.0) + elsif [Constants::CalcTypeERIIndexAdjustmentReferenceHome].include? calc_type + _check_infiltration(hpxml_bldg, ach50: 6.67, height: 17.0, volume: 20400.0) end end end @@ -352,6 +365,7 @@ def test_enclosure_walls _check_walls(hpxml_bldg, area: 2355.52, rvalue: 16.67, sabs: 0.75, emit: 0.9) end end + hpxml_name = _change_eri_version(hpxml_name, '2022') _all_calc_types.each do |calc_type| _hpxml, hpxml_bldg = _test_ruleset(hpxml_name, calc_type) diff --git a/rulesets/tests/test_ventilation.rb b/rulesets/tests/test_ventilation.rb index e5813bf69..4676684bb 100644 --- a/rulesets/tests/test_ventilation.rb +++ b/rulesets/tests/test_ventilation.rb @@ -612,23 +612,20 @@ def test_mech_vent_cfis hpxml_names.each do |hpxml_name| cfis_suppl_flowrate = nil cfis_suppl_power = nil - cfis_is_dumvs = true cfis_suppl_fan_sync = nil cfis_control_type = HPXML::CFISControlTypeOptimized - if hpxml_name == 'base-mechvent-cfis.xml' + if ['base-mechvent-cfis.xml', + 'base-mechvent-cfis-no-outdoor-air-control.xml'].include? hpxml_name cfis_mode = HPXML::CFISModeAirHandler - elsif hpxml_name == 'base-mechvent-cfis-no-outdoor-air-control.xml' - cfis_mode = HPXML::CFISModeAirHandler - cfis_is_dumvs = false - elsif hpxml_name == 'base-mechvent-cfis-supplemental-fan-exhaust.xml' || hpxml_name == 'base-mechvent-cfis-supplemental-fan-exhaust-synchronized.xml' + elsif ['base-mechvent-cfis-supplemental-fan-exhaust.xml', + 'base-mechvent-cfis-supplemental-fan-exhaust-synchronized.xml'].include? hpxml_name cfis_mode = HPXML::CFISModeSupplementalFan cfis_suppl_flowrate = 120.0 cfis_suppl_power = 30.0 cfis_suppl_fan_sync = (hpxml_name == 'base-mechvent-cfis-supplemental-fan-exhaust-synchronized.xml') - elsif hpxml_name == 'base-mechvent-cfis-no-additional-runtime.xml' + elsif ['base-mechvent-cfis-no-additional-runtime.xml'].include? hpxml_name cfis_mode = HPXML::CFISModeNone - cfis_is_dumvs = false - elsif hpxml_name == 'base-mechvent-cfis-control-type-timer.xml' + elsif ['base-mechvent-cfis-control-type-timer.xml'].include? hpxml_name cfis_mode = HPXML::CFISModeAirHandler cfis_control_type = HPXML::CFISControlTypeTimer end @@ -636,7 +633,7 @@ def test_mech_vent_cfis _all_calc_types.each do |calc_type| _hpxml, hpxml_bldg = _test_ruleset(hpxml_name, calc_type) if [Constants::CalcTypeERIReferenceHome, Constants::CalcTypeCO2eReferenceHome].include? calc_type - if not cfis_is_dumvs + if hpxml_name == 'base-mechvent-cfis-no-additional-runtime.xml' # CFIS doesn't qualify as a Dwelling Unit Mechanical Ventilation System, so rated home gets 0.3 nACH and # ventilation requirement is lower, resulting in lower Reference Home fan power _check_mech_vent(hpxml_bldg, [{ fantype: HPXML::MechVentTypeBalanced, flowrate: 27.0, hours: 24, power: 2.1 }]) @@ -659,13 +656,7 @@ def test_mech_vent_cfis _all_calc_types.each do |calc_type| _hpxml, hpxml_bldg = _test_ruleset(hpxml_name, calc_type) if [Constants::CalcTypeERIReferenceHome, Constants::CalcTypeCO2eReferenceHome].include? calc_type - if not cfis_is_dumvs - # CFIS doesn't qualify as a Dwelling Unit Mechanical Ventilation System, so rated home gets 0.3 nACH and - # ventilation requirement is lower, resulting in lower Reference Home fan power - _check_mech_vent(hpxml_bldg, [{ fantype: HPXML::MechVentTypeBalanced, flowrate: 27.0, hours: 24, power: 0.2 }]) - else - _check_mech_vent(hpxml_bldg, [{ fantype: HPXML::MechVentTypeBalanced, flowrate: 27.0, hours: 24, power: 34.9 }]) - end + _check_mech_vent(hpxml_bldg, [{ fantype: HPXML::MechVentTypeBalanced, flowrate: 27.0, hours: 24, power: 34.9 }]) elsif [Constants::CalcTypeERIRatedHome].include? calc_type _check_mech_vent(hpxml_bldg, [{ fantype: HPXML::MechVentTypeCFIS, flowrate: 330.0, hours: 8, cfis_mode: cfis_mode, cfis_suppl_flowrate: cfis_suppl_flowrate, cfis_suppl_power: cfis_suppl_power, @@ -682,13 +673,7 @@ def test_mech_vent_cfis _all_calc_types.each do |calc_type| _hpxml, hpxml_bldg = _test_ruleset(hpxml_name, calc_type) if [Constants::CalcTypeERIReferenceHome, Constants::CalcTypeCO2eReferenceHome].include? calc_type - if not cfis_is_dumvs - # CFIS doesn't qualify as a Dwelling Unit Mechanical Ventilation System, so rated home gets 0.3 nACH and - # ventilation requirement is lower, resulting in lower Reference Home fan power - _check_mech_vent(hpxml_bldg, [{ fantype: HPXML::MechVentTypeBalanced, flowrate: 37.0, hours: 24, power: 13.0 }]) - else - _check_mech_vent(hpxml_bldg, [{ fantype: HPXML::MechVentTypeBalanced, flowrate: 37.0, hours: 24, power: 26.4 }]) - end + _check_mech_vent(hpxml_bldg, [{ fantype: HPXML::MechVentTypeBalanced, flowrate: 37.0, hours: 24, power: 26.4 }]) elsif [Constants::CalcTypeERIRatedHome].include? calc_type _check_mech_vent(hpxml_bldg, [{ fantype: HPXML::MechVentTypeCFIS, flowrate: 330.0, hours: 8, cfis_mode: cfis_mode, cfis_suppl_flowrate: cfis_suppl_flowrate, cfis_suppl_power: cfis_suppl_power, diff --git a/workflow/sample_files/base-version-co2-2022CE.xml b/workflow/sample_files/base-version-co2-2022CE.xml new file mode 100644 index 000000000..a445b5e4b --- /dev/null +++ b/workflow/sample_files/base-version-co2-2022CE.xml @@ -0,0 +1,494 @@ + + + + HPXML + tasks.rb + 2000-01-01T00:00:00-07:00 + create + + + + + 2022CE + + + + + + + +
+ CO + 80206 +
+
+ + proposed workscope + + + + + + electricity + natural gas + + + + single-family detached + 2.0 + 1.0 + 3 + 2700.0 + + + + + 2006 + 5B + + + + USA_CO_Denver.Intl.AP.725650_TMY3 + + USA_CO_Denver.Intl.AP.725650_TMY3.epw + + + + + + + + 50.0 + + ACH + 3.0 + + 21600.0 + + + + + + + + false + + + false + + + + + + + + + + + true + + + + + + + + + + + attic - unvented + 1509.3 + 0.7 + 0.92 + 6.0 + + + 2.3 + + + + + + + outside + basement - conditioned + 115.6 + 0.7 + 0.92 + + + 23.0 + + + + + + + outside + conditioned space + + + + 1200.0 + 0.7 + 0.92 + + + 23.0 + + + + + outside + attic - unvented + + + + 225.0 + 0.7 + 0.92 + + + 4.0 + + + + + + + ground + basement - conditioned + 8.0 + 1200.0 + 8.0 + 7.0 + + + + continuous - exterior + 8.9 + 0.0 + 8.0 + + + continuous - interior + 0.0 + 0.0 + 0.0 + + + + + + + + attic - unvented + conditioned space + + + + 1350.0 + + + 39.3 + + + + + + + basement - conditioned + 1350.0 + 4.0 + 150.0 + + + + 0.0 + 0.0 + + + + + + 0.0 + 0.0 + + + + 0.0 + 0.0 + + + + + + + 108.0 + 0 + 0.33 + 0.45 + 0.67 + + + + + 72.0 + 90 + 0.33 + 0.45 + 0.67 + + + + + 108.0 + 180 + 0.33 + 0.45 + 0.67 + + + + + 72.0 + 270 + 0.33 + 0.45 + 0.67 + + + + + + + + 40.0 + 180 + 4.4 + + + + + + + + + + + + + natural gas + 36000.0 + + AFUE + 0.92 + + 1.0 + + 0.58 + -0.25 + + + + + + central air conditioner + electricity + 24000.0 + single stage + 1.0 + + SEER + 13.0 + + 0.73 + + -0.25 + -0.25 + 0.58 + + + + + + manual thermostat + + + + + + regular velocity + + supply + + CFM25 + 75.0 + to outside + + + + return + + CFM25 + 25.0 + to outside + + + + + supply + 4.0 + attic - unvented + 150.0 + + + + return + 0.0 + attic - unvented + 50.0 + + 2 + + + 2700.0 + + + + + + electricity + storage water heater + conditioned space + false + 40.0 + 1.0 + 18767.0 + 0.95 + + + + + + 50.0 + + + + 0.0 + + + + + shower head + true + + + + faucet + false + + + + + + + false + conditioned space + 1.21 + 380.0 + 0.12 + 1.09 + 27.0 + 6.0 + 3.2 + + + + false + conditioned space + electricity + 3.73 + true + 150.0 + + + + false + conditioned space + 307.0 + 12 + 0.12 + 1.09 + 22.32 + 4.0 + + + + conditioned space + 650.0 + + + + conditioned space + electricity + false + + + + false + + + + + + interior + 0.4 + + + + + + + interior + 0.1 + + + + + + + interior + 0.25 + + + + + + + exterior + 0.4 + + + + + + + exterior + 0.1 + + + + + + + exterior + 0.25 + + + + + + +
+
\ No newline at end of file diff --git a/workflow/sample_files/base-version-eri-2022CE.xml b/workflow/sample_files/base-version-eri-2022CE.xml new file mode 100644 index 000000000..2f58bc3f9 --- /dev/null +++ b/workflow/sample_files/base-version-eri-2022CE.xml @@ -0,0 +1,494 @@ + + + + HPXML + tasks.rb + 2000-01-01T00:00:00-07:00 + create + + + + + 2022CE + + + + + + + +
+ CO + 80206 +
+
+ + proposed workscope + + + + + + electricity + natural gas + + + + single-family detached + 2.0 + 1.0 + 3 + 2700.0 + + + + + 2006 + 5B + + + + USA_CO_Denver.Intl.AP.725650_TMY3 + + USA_CO_Denver.Intl.AP.725650_TMY3.epw + + + + + + + + 50.0 + + ACH + 3.0 + + 21600.0 + + + + + + + + false + + + false + + + + + + + + + + + true + + + + + + + + + + + attic - unvented + 1509.3 + 0.7 + 0.92 + 6.0 + + + 2.3 + + + + + + + outside + basement - conditioned + 115.6 + 0.7 + 0.92 + + + 23.0 + + + + + + + outside + conditioned space + + + + 1200.0 + 0.7 + 0.92 + + + 23.0 + + + + + outside + attic - unvented + + + + 225.0 + 0.7 + 0.92 + + + 4.0 + + + + + + + ground + basement - conditioned + 8.0 + 1200.0 + 8.0 + 7.0 + + + + continuous - exterior + 8.9 + 0.0 + 8.0 + + + continuous - interior + 0.0 + 0.0 + 0.0 + + + + + + + + attic - unvented + conditioned space + + + + 1350.0 + + + 39.3 + + + + + + + basement - conditioned + 1350.0 + 4.0 + 150.0 + + + + 0.0 + 0.0 + + + + + + 0.0 + 0.0 + + + + 0.0 + 0.0 + + + + + + + 108.0 + 0 + 0.33 + 0.45 + 0.67 + + + + + 72.0 + 90 + 0.33 + 0.45 + 0.67 + + + + + 108.0 + 180 + 0.33 + 0.45 + 0.67 + + + + + 72.0 + 270 + 0.33 + 0.45 + 0.67 + + + + + + + + 40.0 + 180 + 4.4 + + + + + + + + + + + + + natural gas + 36000.0 + + AFUE + 0.92 + + 1.0 + + 0.58 + -0.25 + + + + + + central air conditioner + electricity + 24000.0 + single stage + 1.0 + + SEER + 13.0 + + 0.73 + + -0.25 + -0.25 + 0.58 + + + + + + manual thermostat + + + + + + regular velocity + + supply + + CFM25 + 75.0 + to outside + + + + return + + CFM25 + 25.0 + to outside + + + + + supply + 4.0 + attic - unvented + 150.0 + + + + return + 0.0 + attic - unvented + 50.0 + + 2 + + + 2700.0 + + + + + + electricity + storage water heater + conditioned space + false + 40.0 + 1.0 + 18767.0 + 0.95 + + + + + + 50.0 + + + + 0.0 + + + + + shower head + true + + + + faucet + false + + + + + + + false + conditioned space + 1.21 + 380.0 + 0.12 + 1.09 + 27.0 + 6.0 + 3.2 + + + + false + conditioned space + electricity + 3.73 + true + 150.0 + + + + false + conditioned space + 307.0 + 12 + 0.12 + 1.09 + 22.32 + 4.0 + + + + conditioned space + 650.0 + + + + conditioned space + electricity + false + + + + false + + + + + + interior + 0.4 + + + + + + + interior + 0.1 + + + + + + + interior + 0.25 + + + + + + + exterior + 0.4 + + + + + + + exterior + 0.1 + + + + + + + exterior + 0.25 + + + + + + +
+
\ No newline at end of file