urbanopt-cli 0.5.1 → 0.6.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +2 -2
- data/CHANGELOG.md +43 -1
- data/CMakeLists.txt +14 -14
- data/FindOpenStudioSDK.cmake +11 -6
- data/Gemfile +11 -5
- data/LICENSE.md +11 -1
- data/Rakefile +16 -6
- data/example_files/Gemfile +8 -8
- data/example_files/example_project_combined.json +100 -5
- data/example_files/example_project_with_streets.json +826 -0
- data/example_files/mappers/Baseline.rb +107 -59
- data/example_files/mappers/CreateBar.rb +17 -7
- data/example_files/mappers/EvCharging.rb +20 -10
- data/example_files/mappers/Floorspace.rb +17 -7
- data/example_files/mappers/HighEfficiency.rb +20 -8
- data/example_files/mappers/HighEfficiencyCreateBar.rb +19 -8
- data/example_files/mappers/HighEfficiencyFloorspace.rb +19 -8
- data/example_files/mappers/ThermalStorage.rb +16 -6
- data/example_files/measures/BuildResidentialModel/measure.rb +249 -134
- data/example_files/reopt/base_assumptions.json +2 -2
- data/example_files/reopt/multiPV_assumptions.json +4 -3
- data/example_files/residential/clothes_dryer.tsv +7 -7
- data/example_files/residential/clothes_washer.tsv +1 -1
- data/example_files/residential/cooling_system.tsv +42 -22
- data/example_files/residential/dishwasher.tsv +1 -1
- data/example_files/residential/exhaust.tsv +3 -0
- data/example_files/residential/heat_pump.tsv +62 -40
- data/example_files/resources/hpxml-measures/.github/pull_request_template.md +2 -1
- data/example_files/resources/hpxml-measures/.github/workflows/config.yml +116 -0
- data/example_files/resources/hpxml-measures/.gitignore +1 -8
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.rb +746 -1236
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.xml +1550 -1215
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/constants.rb +0 -8
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/geometry.rb +432 -343
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules.rb +134 -91
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_config.json +388 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_config.md +43 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_state_and_monthly_schedule_shift.csv +613 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_state_and_monthly_schedule_shift.csv +613 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-coal.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier-ief-portable.osw +35 -59
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier-ief-whole-home.osw +35 -59
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier.osw +35 -59
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-gas.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-modified.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-none.osw +41 -65
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-oil.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-propane.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-wood.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-flat.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-radiant-barrier.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-unvented-insulated-roof.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-vented.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-boiler-only-baseboard.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-boiler-only-fan-coil.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-mechvent-preconditioning.osw +39 -63
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-mechvent.osw +39 -63
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-pv.osw +39 -63
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-water-heater.osw +39 -63
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily.osw +39 -63
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-single-family-attached.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-combi-tankless-outside.osw +36 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-combi-tankless.osw +36 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-dwhr.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-outside.osw +36 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-standbyloss.osw +36 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-with-solar-fraction.osw +36 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect.osw +36 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-electric.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-gas.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-hpwh.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-indirect.osw +36 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-low-flow-fixtures.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-none.osw +37 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-demand.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-manual.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-nocontrol.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-temperature.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-timer.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-evacuated-tube.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-flat-plate.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-ics.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-fraction.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-indirect-flat-plate.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-thermosyphon-flat-plate.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-coal.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-elec-uef.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas-outside.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas-uef.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-outside.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-uef.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-with-solar-fraction.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-with-solar.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-oil.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-wood.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric-outside.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric-uef.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-uef.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-with-solar-fraction.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-with-solar.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-propane.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-2stories-garage.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-2stories.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-1.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-2.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-4.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-5.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-garage.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-ach-house-pressure.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-cfm-house-pressure.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-cfm50.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-flue.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-natural-ach.osw +37 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-overhangs.osw +37 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-windows-none.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-ambient.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-conditioned-basement-slab-insulation.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-slab.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement-assembly-r.osw +35 -59
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement-wall-insulation.osw +35 -59
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement.osw +35 -59
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unvented-crawlspace.osw +35 -59
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-vented-crawlspace.osw +35 -59
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-1-speed-cooling-only.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-1-speed-heating-only.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-1-speed.osw +36 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-2-speed.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-var-speed.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-coal-only.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-elec-only.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-gas-central-ac-1-speed.osw +36 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-gas-only.osw +36 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-oil-only.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-propane-only.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-wood-only.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-1-speed.osw +36 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-2-speed.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-var-speed.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.osw +36 -62
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.osw +35 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.osw +35 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.osw +35 -59
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.osw +35 -59
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-mini-split-heat-pump-ducted.osw +36 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ducts-leakage-percent.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-elec-resistance-only.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-furnace-gas.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-only-ducted.osw +37 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-only.osw +36 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-fireplace-wood-only.osw +36 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-fixed-heater-gas-only.osw +37 -62
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-floor-furnace-propane-only.osw +36 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-coal-only.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-elec-central-ac-1-speed.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-elec-only.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-central-ac-2-speed.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-central-ac-var-speed.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-only.osw +36 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-room-ac.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-oil-only.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-propane-only.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-wood-only.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ground-to-air-heat-pump-cooling-only.osw +336 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ground-to-air-heat-pump-heating-only.osw +336 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ground-to-air-heat-pump.osw +36 -62
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{extra-plug-loads-additional-multipliers.osw → base-hvac-install-quality-airflow-defect-furnace-gas-central-ac-1-speed.osw} +41 -63
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-air-to-air-heat-pump-1-speed.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-air-to-air-heat-pump-2-speed.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-air-to-air-heat-pump-var-speed.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-central-ac-1-speed.osw +340 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-central-ac-2-speed.osw +340 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-central-ac-var-speed.osw +340 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-only.osw +338 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-ground-to-air-heat-pump.osw +338 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-mini-split-air-conditioner-only-ducted.osw +338 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-mini-split-heat-pump-ducted.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-charge-defect-furnace-gas-central-ac-1-speed.osw +338 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-none-furnace-gas-central-ac-1-speed.osw +340 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-air-conditioner-only-ducted.osw +36 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-air-conditioner-only-ductless.osw +36 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted-cooling-only.osw +36 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted-heating-only.osw +36 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted.osw +37 -62
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ductless.osw +37 -62
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-none.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-portable-heater-gas-only.osw +37 -62
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-programmable-thermostat-detailed.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-room-ac-only-33percent.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-room-ac-only.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-setpoints.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-stove-oil-only.osw +36 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-stove-wood-pellets-only.osw +36 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-undersized.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-wall-furnace-elec-only.osw +36 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-lighting-ceiling-fans.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-lighting-detailed.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-AMY-2012.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-baltimore-md.osw +45 -69
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-dallas-tx.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-duluth-mn.osw +49 -73
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-helena-mt.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{base-appliances-dehumidifier-50percent.osw → base-location-honolulu-hi.osw} +39 -63
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-miami-fl.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-phoenix-az.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-portland-or.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-balanced.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-bath-kitchen-fans.osw +44 -70
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-cfis-evap-cooler-only-ducted.osw +37 -61
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-cfis.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-erv-atre-asre.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-erv.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-exhaust-rated-flow-rate.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-exhaust.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-hrv-asre.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-hrv.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-supply.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-whole-house-fan.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-defaults.osw +34 -58
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-loads-large-uncommon.osw +34 -58
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-loads-large-uncommon2.osw +34 -58
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-neighbor-shading.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-shielding-of-home.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-usage-multiplier.osw +35 -59
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-pv.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{extra-vacancy-6-months.osw → base-schedules-stochastic-vacant.osw} +39 -63
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-schedules-stochastic.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-schedules-user-specified.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-calendar-year-custom.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-daylight-saving-custom.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-daylight-saving-disabled.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-runperiod-1-month.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-timestep-10-mins.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/build_residential_hpxml_test.rb +60 -57
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-auto.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-double-exterior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-eaves.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-single-exterior-front.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-bottom-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-bottom.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-middle-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-middle.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-top-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-top.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-bottom-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-bottom.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-middle-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-middle.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-top-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-top.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-bottom-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-bottom.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-middle-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-middle.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-top-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-top.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-bottom-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-bottom.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-middle-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-middle.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-top-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-top.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-bottom-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-bottom.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-middle-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-middle.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-top-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-top.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-bottom-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-bottom.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-middle-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-middle.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-top-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-top.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-bottom-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-bottom.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-middle-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-middle.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-top-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-top.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-bottom-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-bottom.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-middle-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-middle.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-top-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-top.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-bottom-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-bottom.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-middle-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-middle.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-top-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-top.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-gable.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-hip.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-atticroof-flat.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-double-exterior.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-double-loaded-interior.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-single-exterior-front.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-slab-middle.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-slab-right.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-slab.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unconditioned-basement-middle.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unconditioned-basement-right.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unconditioned-basement.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unvented-crawlspace-middle.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unvented-crawlspace-right.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unvented-crawlspace.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-vented-crawlspace-middle.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-vented-crawlspace-right.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-vented-crawlspace.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-dhw-solar-latitude.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-atticroof-conditioned-eaves-gable.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-atticroof-conditioned-eaves-hip.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-garage-atticroof-conditioned.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-garage-partially-protruded.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-windows-shading.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-gas-hot-tub-heater-with-zero-kwh.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-gas-pool-heater-with-zero-kwh.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-pv-roofpitch.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-schedules-random-seed.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-boiler-to-heat-pump.osw +336 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-boiler-to-heating-system.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-fireplace-to-heat-pump.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{extra-second-heating-system-fireplace.osw → extra-second-heating-system-fireplace-to-heating-system.osw} +38 -62
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-portable-heater-to-heat-pump.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{extra-second-heating-system-portable-heater.osw → extra-second-heating-system-portable-heater-to-heating-system.osw} +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-refrigerator.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-clothes-washer-kwh.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-dishwasher-kwh.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-extra-refrigerator-kwh.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-freezer-kwh.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-refrigerator-kwh.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/conditioned-attic-with-floor-insulation.osw +39 -63
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/conditioned-attic-with-one-floor-above-grade.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/conditioned-basement-with-ceiling-insulation.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/cooling-system-and-heat-pump.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/dhw-indirect-without-boiler.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/ducts-location-and-areas-not-same-type.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/foundation-wall-insulation-greater-than-height.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/heating-system-and-heat-pump.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-bottom-crawlspace-zero-foundation-height.osw +39 -63
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-bottom-slab-non-zero-foundation-height.osw +39 -63
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-no-building-orientation.osw +38 -62
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-fuel-loads.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-other-plug-loads.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/{multipliers-without-plug-loads.osw → multipliers-without-tv-plug-loads.osw} +40 -64
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-vehicle-plug-loads.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-well-pump-plug-loads.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-electric-heat-pump-water-heater.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-integer-ceiling-fan-quantity.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-integer-geometry-num-bathrooms.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/second-heating-system-but-no-primary-heating.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/second-heating-system-serves-majority-heat.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/second-heating-system-serves-total-heat-load.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-attached-ambient.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-attached-no-building-orientation.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-detached-finished-basement-zero-foundation-height.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-detached-slab-non-zero-foundation-height.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-detached-with-shared-system.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/slab-non-zero-foundation-height-above-grade.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unconditioned-basement-with-wall-and-ceiling-insulation.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unvented-attic-with-floor-and-roof-insulation.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unvented-crawlspace-with-wall-and-ceiling-insulation.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/vented-attic-with-floor-and-roof-insulation.osw +38 -62
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/vented-crawlspace-with-wall-and-ceiling-insulation.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/zero-number-of-bedrooms.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/schedules/vacant.csv +8761 -0
- data/example_files/resources/hpxml-measures/Changelog.md +249 -0
- data/example_files/resources/hpxml-measures/Gemfile +3 -4
- data/example_files/resources/hpxml-measures/Gemfile.lock +27 -32
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.rb +318 -1283
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.xml +167 -121
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/BaseElements.xsd +7 -97
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/EPvalidator.xml +600 -203
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/HPXMLDataTypes.xsd +21 -28
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/HPXMLvalidator.xml +114 -22
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/airflow.rb +112 -177
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constants.rb +16 -180
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constructions.rb +543 -94
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/energyplus.rb +1 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/generator.rb +4 -7
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/geometry.rb +410 -14
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hotwater_appliances.rb +27 -25
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml.rb +782 -460
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +455 -107
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac.rb +1466 -1403
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac_sizing.rb +1391 -1467
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/lighting.rb +2 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/location.rb +20 -7
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/meta_measure.rb +85 -13
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/minitest_helper.rb +4 -26
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/misc_loads.rb +14 -33
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/pv.rb +3 -4
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedules.rb +43 -7
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/simcontrols.rb +24 -7
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/unit_conversions.rb +2 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/version.rb +2 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/waterheater.rb +4 -4
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/xmlhelper.rb +32 -30
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_airflow.rb +6 -29
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_defaults.rb +523 -635
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_enclosure.rb +151 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_generator.rb +3 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hotwater_appliance.rb +4 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac.rb +297 -7
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac_sizing.rb +0 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_lighting.rb +3 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_location.rb +3 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_miscloads.rb +3 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_pv.rb +3 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_simcontrols.rb +3 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_validation.rb +26 -3
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_water_heater.rb +3 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/util.rb +26 -0
- data/example_files/resources/hpxml-measures/README.md +4 -5
- data/example_files/resources/hpxml-measures/Rakefile +1 -2
- data/example_files/resources/hpxml-measures/SimulationOutputReport/measure.rb +140 -47
- data/example_files/resources/hpxml-measures/SimulationOutputReport/measure.xml +351 -495
- data/example_files/resources/hpxml-measures/SimulationOutputReport/tests/output_report_test.rb +260 -189
- data/example_files/resources/hpxml-measures/docs/source/conf.py +4 -1
- data/example_files/resources/hpxml-measures/docs/source/getting_started.rst +3 -3
- data/example_files/resources/hpxml-measures/docs/source/intro.rst +4 -105
- data/example_files/resources/hpxml-measures/docs/source/workflow_inputs.rst +538 -396
- data/example_files/resources/hpxml-measures/docs/source/workflow_outputs.rst +158 -130
- data/example_files/resources/hpxml-measures/tasks.rb +1497 -736
- data/example_files/resources/hpxml-measures/weather/USA_AZ_Phoenix-Sky.Harbor.Intl.AP.722780_TMY3-cache.csv +35 -0
- data/example_files/resources/hpxml-measures/weather/USA_AZ_Phoenix-Sky.Harbor.Intl.AP.722780_TMY3.epw +8768 -0
- data/example_files/resources/hpxml-measures/weather/USA_CO_Denver.Intl.AP.725650_TMY3-cache.csv +10 -10
- data/example_files/resources/hpxml-measures/weather/USA_HI_Honolulu.Intl.AP.911820_TMY3-cache.csv +35 -0
- data/example_files/resources/hpxml-measures/weather/USA_HI_Honolulu.Intl.AP.911820_TMY3.epw +8768 -0
- data/example_files/resources/hpxml-measures/weather/USA_MT_Helena.Rgnl.AP.727720_TMY3-cache.csv +35 -0
- data/example_files/resources/hpxml-measures/weather/USA_MT_Helena.Rgnl.AP.727720_TMY3.epw +8768 -0
- data/example_files/resources/hpxml-measures/weather/USA_OR_Portland.Intl.AP.726980_TMY3-cache.csv +35 -0
- data/example_files/resources/hpxml-measures/weather/USA_OR_Portland.Intl.AP.726980_TMY3.epw +8768 -0
- data/example_files/resources/hpxml-measures/workflow/run_simulation.rb +36 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-coal.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-portable.xml +5 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-whole-home.xml +5 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-multiple.xml +535 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier.xml +5 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-gas.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-modified.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-none.xml +4 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-oil.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-propane.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-wood.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-cathedral.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-conditioned.xml +6 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-flat.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-radiant-barrier.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-unvented-insulated-roof.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-vented.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multifamily-buffer-space.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multiple.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-non-freezing-space.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-heated-space.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-housing-unit.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-baseboard.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil-ducted.xml +4 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.xml +3 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.xml +28 -18
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-cooling-tower-water-loop-heat-pump.xml +28 -18
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-baseboard.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-ducted.xml +4 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-eae.xml +3 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil.xml +3 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-water-loop-heat-pump.xml +23 -11
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-baseboard.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil-ducted.xml +4 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil.xml +3 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-water-loop-heat-pump.xml +23 -12
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-cooling-tower-only-water-loop-heat-pump.xml +23 -12
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-generator.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-ground-loop-ground-to-air-heat-pump.xml +6 -6
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-laundry-room.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-multiple.xml +8 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-preconditioning.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-pv.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater-recirc.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-single-family-attached.xml +17 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless-outside.xml +1 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless.xml +1 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-2-speed.xml +3 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-gshp.xml +564 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-hpwh.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-tankless.xml +3 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-var-speed.xml +3 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater.xml +3 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-dwhr.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-dse.xml +1 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-outside.xml +1 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-standbyloss.xml +1 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-with-solar-fraction.xml +1 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect.xml +1 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-electric.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-gas.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-hpwh.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-indirect.xml +1 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-low-flow-fixtures.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-multiple.xml +1 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-none.xml +4 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-demand.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-manual.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-nocontrol.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-temperature.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-timer.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-evacuated-tube.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-flat-plate.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-ics.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-fraction.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-indirect-flat-plate.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-thermosyphon-flat-plate.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-coal.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-elec-uef.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-outside.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-uef.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-outside.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-uef.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar-fraction.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-oil.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-wood.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-outside.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-uef.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-uef.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar-fraction.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-propane.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories-garage.xml +5 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-1.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-2.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-4.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-5.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-garage.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-ach-house-pressure.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm-house-pressure.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm50.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-flue.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-natural-ach.xml +5 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-overhangs.xml +9 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-rooftypes.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-shading.xml +601 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights.xml +6 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-level.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces.xml +22 -21
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces2.xml +2475 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-walltypes.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-none.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-enclosure-windows-interior-shading.xml → base-enclosure-windows-shading.xml} +577 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-ambient.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-basement-garage.xml +644 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-complex.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-slab-insulation.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-wall-interior-insulation.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-multiple.xml +6 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-slab.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-above-grade.xml +5 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-assembly-r.xml +5 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-wall-insulation.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement.xml +5 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unvented-crawlspace.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-vented-crawlspace.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-walkout-basement.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-cooling-only.xml +556 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-heating-only.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed.xml +6 -8
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-2-speed.xml +6 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed.xml +6 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-cooling-only.xml +553 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-heating-only.xml +558 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-air-to-air-heat-pump-1-speed-autosize-manual-s-oversize-allowances.xml → base-hvac-autosize-air-to-air-heat-pump-1-speed-manual-s-oversize-allowances.xml} +2 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed.xml +558 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-air-to-air-heat-pump-2-speed-autosize-manual-s-oversize-allowances.xml → base-hvac-autosize-air-to-air-heat-pump-2-speed-manual-s-oversize-allowances.xml} +560 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-air-to-air-heat-pump-2-speed-autosize.xml → base-hvac-autosize-air-to-air-heat-pump-2-speed.xml} +557 -556
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-air-to-air-heat-pump-var-speed-autosize-manual-s-oversize-allowances.xml → base-hvac-autosize-air-to-air-heat-pump-var-speed-manual-s-oversize-allowances.xml} +560 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-air-to-air-heat-pump-var-speed-autosize.xml → base-hvac-autosize-air-to-air-heat-pump-var-speed.xml} +557 -556
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-boiler-elec-only-autosize.xml → base-hvac-autosize-boiler-elec-only.xml} +517 -518
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-boiler-gas-central-ac-1-speed-autosize.xml → base-hvac-autosize-boiler-gas-central-ac-1-speed.xml} +569 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-boiler-gas-only-autosize.xml → base-hvac-autosize-boiler-gas-only.xml} +518 -519
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-central-ac-only-1-speed-autosize.xml → base-hvac-autosize-central-ac-only-1-speed.xml} +2 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-central-ac-only-2-speed-autosize.xml → base-hvac-autosize-central-ac-only-2-speed.xml} +547 -546
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-central-ac-only-var-speed-autosize.xml → base-hvac-autosize-central-ac-only-var-speed.xml} +547 -546
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-central-ac-plus-air-to-air-heat-pump-heating-autosize.xml → base-hvac-autosize-central-ac-plus-air-to-air-heat-pump-heating.xml} +2 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-autosize.xml → base-hvac-autosize-dual-fuel-air-to-air-heat-pump-1-speed.xml} +2 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-dual-fuel-mini-split-heat-pump-ducted-autosize.xml → base-hvac-autosize-dual-fuel-mini-split-heat-pump-ducted.xml} +2 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-elec-resistance-only-autosize.xml → base-hvac-autosize-elec-resistance-only.xml} +508 -509
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-evap-cooler-furnace-gas-autosize.xml → base-hvac-autosize-evap-cooler-furnace-gas.xml} +553 -552
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-floor-furnace-propane-only-autosize.xml → base-hvac-autosize-floor-furnace-propane-only.xml} +511 -512
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-furnace-elec-only-autosize.xml → base-hvac-autosize-furnace-elec-only.xml} +547 -546
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-furnace-gas-central-ac-2-speed-autosize.xml → base-hvac-autosize-furnace-gas-central-ac-2-speed.xml} +560 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-furnace-gas-central-ac-var-speed-autosize.xml → base-hvac-autosize-furnace-gas-central-ac-var-speed.xml} +560 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-only.xml +548 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-furnace-gas-room-ac-autosize.xml → base-hvac-autosize-furnace-gas-room-ac.xml} +558 -557
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-cooling-only.xml +555 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-heating-only.xml +560 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-ground-to-air-heat-pump-autosize-manual-s-oversize-allowances.xml → base-hvac-autosize-ground-to-air-heat-pump-manual-s-oversize-allowances.xml} +562 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-ground-to-air-heat-pump-autosize.xml → base-hvac-autosize-ground-to-air-heat-pump.xml} +559 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-air-conditioner-only-ducted.xml +547 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-mini-split-heat-pump-ducted-cooling-only-autosize.xml → base-hvac-autosize-mini-split-heat-pump-ducted-cooling-only.xml} +2 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-mini-split-heat-pump-ducted-heating-only-autosize.xml → base-hvac-autosize-mini-split-heat-pump-ducted-heating-only.xml} +2 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-mini-split-heat-pump-ducted-autosize-manual-s-oversize-allowances.xml → base-hvac-autosize-mini-split-heat-pump-ducted-manual-s-oversize-allowances.xml} +2 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted.xml +557 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-room-ac-only-autosize.xml → base-hvac-autosize-room-ac-only.xml} +507 -508
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-stove-oil-only-autosize.xml → base-hvac-autosize-stove-oil-only.xml} +511 -512
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-wall-furnace-elec-only-autosize.xml → base-hvac-autosize-wall-furnace-elec-only.xml} +511 -512
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-autosize.xml → base-hvac-autosize.xml} +560 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-coal-only.xml +1 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-elec-only.xml +1 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-central-ac-1-speed.xml +4 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-only.xml +1 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-oil-only.xml +1 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-propane-only.xml +1 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-wood-only.xml +1 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-1-speed.xml +3 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-2-speed.xml +3 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-var-speed.xml +3 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml +7 -12
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dse.xml +2 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.xml +5 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml +5 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.xml +5 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.xml +5 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-mini-split-heat-pump-ducted.xml +5 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-leakage-percent.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-elec-resistance-only.xml +1 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-furnace-gas.xml +4 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only-ducted.xml +11 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fireplace-wood-only.xml +512 -513
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fixed-heater-gas-only.xml +512 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-floor-furnace-propane-only.xml +512 -513
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-coal-only.xml +548 -547
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-central-ac-1-speed.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-only.xml +3 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-2-speed.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-var-speed.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only.xml +548 -550
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-room-ac.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-oil-only.xml +3 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-propane-only.xml +3 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-wood-only.xml +3 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-x3-dse.xml +4 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-cooling-only.xml +557 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-heating-only.xml +563 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump.xml +562 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/{invalid_files/slab-zero-exposed-perimeter.xml → base-hvac-install-quality-airflow-defect-furnace-gas-central-ac-1-speed.xml} +568 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-air-to-air-heat-pump-1-speed-autosize.xml → base-hvac-install-quality-all-air-to-air-heat-pump-1-speed.xml} +566 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-air-to-air-heat-pump-2-speed.xml +567 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-air-to-air-heat-pump-var-speed.xml +567 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-misc-shelter-coefficient.xml → base-hvac-install-quality-all-furnace-gas-central-ac-1-speed.xml} +571 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-furnace-gas-central-ac-2-speed.xml +572 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-furnace-gas-central-ac-var-speed.xml +572 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-furnace-gas-only-autosize.xml → base-hvac-install-quality-all-furnace-gas-only.xml} +552 -549
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-ground-to-air-heat-pump.xml +566 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-mini-split-air-conditioner-only-ducted-autosize.xml → base-hvac-install-quality-all-mini-split-air-conditioner-only-ducted.xml} +552 -548
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-mini-split-heat-pump-ducted-autosize.xml → base-hvac-install-quality-all-mini-split-heat-pump-ducted.xml} +565 -558
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-blower-efficiency-furnace-gas-central-ac-1-speed.xml +569 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-charge-defect-furnace-gas-central-ac-1-speed.xml +566 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-none-furnace-gas-central-ac-1-speed.xml +570 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ducted.xml +3 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ductless.xml +1 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-cooling-only.xml +3 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-heating-only.xml +5 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted.xml +6 -8
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless.xml +3 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple.xml +920 -913
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-none.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-portable-heater-gas-only.xml +512 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-programmable-thermostat-detailed.xml +7 -6
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-programmable-thermostat.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-33percent.xml +1 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only.xml +1 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-oil-only.xml +512 -513
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-wood-pellets-only.xml +512 -513
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized-allow-increased-fixed-capacities.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-wall-furnace-elec-only.xml +512 -513
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-ceiling-fans.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-detailed.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-none.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-AMY-2012.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-baltimore-md.xml +37 -25
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-dallas-tx.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-duluth-mn.xml +37 -25
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-helena-mt.xml +563 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-honolulu-hi.xml +517 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-miami-fl.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-phoenix-az.xml +517 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-portland-or.xml +577 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-balanced.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-bath-kitchen-fans.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-dse.xml +2 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-evap-cooler-only-ducted.xml +11 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv-atre-asre.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust-rated-flow-rate.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv-asre.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-multiple.xml +32 -29
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-supply.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-whole-house-fan.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-defaults.xml +4 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators.xml +5 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon.xml +8 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon2.xml +12 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-none.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-neighbor-shading.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-shielding-of-home.xml +564 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-usage-multiplier.xml +8 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-multiple-buildings.xml +1657 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-stochastic-vacant.xml +564 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-stochastic.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-user-specified.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-calendar-year-custom.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-custom.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-disabled.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-runperiod-1-month.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/boiler-invalid-afue.xml +519 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/cfis-with-hydronic-distribution.xml +1 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/clothes-dryer-location.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/clothes-washer-location.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/cooking-range-location.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-appliances-dehumidifier-50percent.xml → invalid_files/dehumidifier-fraction-served.xml} +534 -523
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dehumidifier-setpoints.xml +535 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-frac-load-served.xml +1 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-invalid-ef-tank.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-invalid-uef-tank-heat-pump.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dishwasher-location.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-leakage-cfm25.xml +563 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-leakage-percent.xml +563 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-location-unconditioned-space.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-location.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duplicate-id.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-attic-missing-roof.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-basement-missing-exterior-foundation-wall.xml +5 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-basement-missing-slab.xml +5 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-floor-area-exceeds-cfa.xml +7 -6
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-floor-area-exceeds-cfa2.xml +448 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-exterior-wall.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-roof-ceiling.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-slab.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-ceiling-roof.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-exterior-wall.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-floor-slab.xml +14 -60
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-sensible-fuel-load.xml +760 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-sensible-plug-load.xml +759 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-total-fuel-load.xml +761 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-total-plug-load.xml +759 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/furnace-invalid-afue.xml +563 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/generator-number-of-bedrooms-served.xml +460 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/generator-output-greater-than-consumption.xml +579 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/heat-pump-mixed-fixed-and-autosize-capacities.xml +3 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-multiple-attached-cooling.xml +920 -913
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-multiple-attached-heating.xml +920 -913
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-return-duct-leakage-missing.xml +3 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-dse-multiple-attached-cooling.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-dse-multiple-attached-heating.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-frac-load-served.xml +920 -913
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-inconsistent-fan-powers.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-invalid-distribution-system-type.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-shared-negative-seer-eq.xml +407 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-assembly-effective-rvalue.xml +563 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-boolean.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-float.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-integer.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-daylight-saving.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-distribution-cfa-served.xml +5 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-epw-filepath.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-facility-type-equipment.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-facility-type-surfaces.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-foundation-wall-properties.xml +574 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-id.xml +591 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-id2.xml +591 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-infiltration-volume.xml +563 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-input-parameters.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-neighbor-shading-azimuth.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-number-of-bedrooms-served.xml +465 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-number-of-conditioned-floors.xml +563 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-number-of-units-served.xml +451 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-relatedhvac-desuperheater.xml +3 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-relatedhvac-dhw-indirect.xml +1 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-runperiod.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-schema-version.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-shared-vent-in-unit-flowrate.xml +473 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-timestep.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-window-height.xml +9 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/lighting-fractions.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/missing-duct-location.xml +916 -909
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/missing-elements.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-appliance.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-duct.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-surface.xml +15 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-water-heater.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multiple-buildings-without-building-id.xml +1657 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multiple-buildings-wrong-building-id.xml +1657 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-ideal-air.xml → invalid_files/multiple-shared-cooling-systems.xml} +431 -498
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multiple-shared-heating-systems.xml +434 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/net-area-negative-roof.xml +5 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/net-area-negative-wall.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/num-bedrooms-exceeds-limit.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/orphaned-hvac-distribution.xml +3 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerator-location.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerators-multiple-primary.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerators-no-primary.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/repeated-relatedhvac-desuperheater.xml +3 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/repeated-relatedhvac-dhw-indirect.xml +1 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-fraction-one.xml +571 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-combi-tankless.xml +1 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-desuperheater.xml +3 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-dhw-indirect.xml +1 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-cfis.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-door.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-hvac-distribution.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-shared-clothes-washer-water-heater.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-shared-dishwasher-water-heater.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-skylight.xml +6 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-solar-thermal-system.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-window.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/water-heater-location-other.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/water-heater-location.xml +4 -3
- data/example_files/resources/hpxml-measures/workflow/template.osw +5 -1
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AL.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AL.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AL.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AL.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AL.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AL.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AL.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AL.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AL.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AL.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AL.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L302XC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L304XC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L322XC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L324XC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/base_results/results.csv +294 -0
- data/example_files/resources/hpxml-measures/workflow/tests/base_results/results_ashrae_140.csv +27 -0
- data/example_files/resources/hpxml-measures/workflow/tests/base_results/results_hvac_sizing.csv +294 -0
- data/example_files/resources/hpxml-measures/workflow/tests/compare.rb +130 -0
- data/example_files/resources/hpxml-measures/workflow/tests/hpxml_translator_test.rb +324 -382
- data/example_files/{measures/BuildResidentialModel/resources → resources}/measure-info.json +0 -0
- data/example_files/{measures/BuildResidentialModel/resources → resources}/meta_measure.rb +53 -44
- data/example_files/visualization/input_visualization_feature.html +13 -14
- data/example_files/visualization/input_visualization_scenario.html +14 -9
- data/lib/uo_cli.rb +293 -60
- data/lib/uo_cli/version.rb +17 -7
- data/requirements.txt +2 -0
- data/scripts/setup-env-gitbash.sh +4 -4
- data/scripts/setup-env-unix.sh +4 -4
- data/scripts/setup-env.bat +3 -3
- data/scripts/setup-env.ps1 +3 -3
- data/uo_cli.gemspec +10 -7
- metadata +320 -82
- data/example_files/measures/ResidentialGeometryCreateMultifamily/measure.rb +0 -1005
- data/example_files/measures/ResidentialGeometryCreateMultifamily/measure.xml +0 -326
- data/example_files/measures/ResidentialGeometryCreateMultifamily/tests/create_residential_multifamily_geometry_test.rb +0 -477
- data/example_files/measures/ResidentialGeometryCreateSingleFamilyAttached/measure.rb +0 -1039
- data/example_files/measures/ResidentialGeometryCreateSingleFamilyAttached/measure.xml +0 -393
- data/example_files/measures/ResidentialGeometryCreateSingleFamilyAttached/tests/create_residential_single_family_attached_geometry_test.rb +0 -456
- data/example_files/measures/ResidentialGeometryCreateSingleFamilyDetached/measure.rb +0 -979
- data/example_files/measures/ResidentialGeometryCreateSingleFamilyDetached/measure.xml +0 -388
- data/example_files/measures/ResidentialGeometryCreateSingleFamilyDetached/tests/create_residential_single_family_detached_geometry_test.rb +0 -704
- data/example_files/resources/hpxml-measures/.circleci/config.yml +0 -20
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/location.rb +0 -24
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_config.yml +0 -74
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-hvac-programmable-thermostat.osw +0 -369
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_constructions.rb +0 -109
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple2.xml +0 -835
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/heat-pump-mixed-fixed-and-autosize-capacities2.xml +0 -563
@@ -3,136 +3,153 @@
|
|
3
3
|
Workflow Outputs
|
4
4
|
================
|
5
5
|
|
6
|
-
OpenStudio-HPXML generates a
|
6
|
+
OpenStudio-HPXML generates a number of workflow outputs:
|
7
|
+
|
8
|
+
================================= ======================================
|
9
|
+
File Notes
|
10
|
+
================================= ======================================
|
11
|
+
results_annual.csv (or .json) Summary annual outputs in either CSV or JSON formats. See :ref:`annual_outputs`.
|
12
|
+
results_timeseries.csv (or .json) Timeseries outputs in either CSV or JSON formats. See :ref:`timeseries_outputs`. Only generated if requested.
|
13
|
+
in.idf The EnergyPlus input file.
|
14
|
+
in.xml HPXML file populated with defaulted values (e.g., autosized HVAC capacities); defaults use the ``dataSource='software'`` attribute.
|
15
|
+
in.osm The OpenStudio model file. Only generated if the ``debug`` argument is used.
|
16
|
+
run.log Errors/warnings generated by the OpenStudio-HPXML workflow.
|
17
|
+
eplusout.* Minimal E+ files (e.g., sql output, error file, etc.). ALL output files can be generated using the ``debug`` argument.
|
18
|
+
================================= ======================================
|
19
|
+
|
20
|
+
.. _annual_outputs:
|
7
21
|
|
8
22
|
Annual Outputs
|
9
23
|
--------------
|
10
24
|
|
11
|
-
OpenStudio-HPXML will always generate an annual
|
12
|
-
The
|
13
|
-
|
14
|
-
Annual Energy Consumption by Fuel
|
15
|
-
|
16
|
-
|
17
|
-
Current fuel
|
18
|
-
|
19
|
-
|
20
|
-
Type
|
21
|
-
|
22
|
-
Electricity: Total (MBtu)
|
23
|
-
Electricity: Net (MBtu)
|
24
|
-
Natural Gas: Total (MBtu)
|
25
|
-
Fuel Oil: Total (MBtu) Includes "fuel oil", "fuel oil 1", "fuel oil 2", "fuel oil 4", "fuel oil 5/6", "kerosene", and "diesel"
|
26
|
-
Propane: Total (MBtu)
|
27
|
-
Wood: Total (MBtu)
|
28
|
-
Wood Pellets: Total (MBtu)
|
29
|
-
Coal: Total (MBtu) Includes "coal", "anthracite coal", "bituminous coal", and "coke".
|
30
|
-
|
31
|
-
|
32
|
-
Annual Energy Consumption By
|
33
|
-
|
34
|
-
|
35
|
-
Current end
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
Electricity:
|
44
|
-
Electricity:
|
45
|
-
Electricity:
|
46
|
-
Electricity:
|
47
|
-
Electricity:
|
48
|
-
Electricity:
|
49
|
-
Electricity:
|
50
|
-
Electricity:
|
51
|
-
Electricity:
|
52
|
-
Electricity:
|
53
|
-
Electricity:
|
54
|
-
Electricity:
|
55
|
-
Electricity:
|
56
|
-
Electricity:
|
57
|
-
Electricity:
|
58
|
-
Electricity:
|
59
|
-
Electricity:
|
60
|
-
Electricity:
|
61
|
-
Electricity:
|
62
|
-
Electricity:
|
63
|
-
Electricity:
|
64
|
-
Electricity:
|
65
|
-
Electricity:
|
66
|
-
Electricity:
|
67
|
-
Electricity:
|
68
|
-
Electricity:
|
69
|
-
Electricity:
|
70
|
-
Electricity:
|
71
|
-
Electricity:
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
Natural Gas:
|
76
|
-
Natural Gas:
|
77
|
-
Natural Gas:
|
78
|
-
Natural Gas:
|
79
|
-
Natural Gas:
|
80
|
-
Natural Gas:
|
81
|
-
Natural Gas:
|
82
|
-
Natural Gas:
|
83
|
-
Natural Gas:
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
Fuel Oil:
|
88
|
-
Fuel Oil:
|
89
|
-
Fuel Oil:
|
90
|
-
Fuel Oil:
|
91
|
-
Fuel Oil:
|
92
|
-
Fuel Oil:
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
Propane:
|
97
|
-
Propane:
|
98
|
-
Propane:
|
99
|
-
Propane:
|
100
|
-
Propane:
|
101
|
-
Propane:
|
102
|
-
Propane:
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
Wood Cord:
|
107
|
-
Wood Cord:
|
108
|
-
Wood Cord:
|
109
|
-
Wood Cord:
|
110
|
-
Wood Cord:
|
111
|
-
Wood Cord:
|
112
|
-
Wood
|
113
|
-
Wood
|
114
|
-
Wood
|
115
|
-
Wood Pellets:
|
116
|
-
Wood Pellets:
|
117
|
-
Wood Pellets:
|
118
|
-
Wood Pellets:
|
119
|
-
Wood Pellets:
|
120
|
-
Wood Pellets:
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
Coal:
|
125
|
-
Coal:
|
126
|
-
Coal:
|
127
|
-
Coal:
|
128
|
-
Coal:
|
129
|
-
Coal:
|
130
|
-
|
25
|
+
OpenStudio-HPXML will always generate an annual output file called results_annual.csv (or results_annual.json), co-located with the EnergyPlus output.
|
26
|
+
The file includes the following sections of output:
|
27
|
+
|
28
|
+
Annual Energy Consumption by Fuel Use
|
29
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
30
|
+
|
31
|
+
Current fuel uses are listed below.
|
32
|
+
|
33
|
+
==================================== ===========================
|
34
|
+
Type Notes
|
35
|
+
==================================== ===========================
|
36
|
+
Fuel Use: Electricity: Total (MBtu)
|
37
|
+
Fuel Use: Electricity: Net (MBtu) Subtracts any power produced by PV or generators.
|
38
|
+
Fuel Use: Natural Gas: Total (MBtu)
|
39
|
+
Fuel Use: Fuel Oil: Total (MBtu) Includes "fuel oil", "fuel oil 1", "fuel oil 2", "fuel oil 4", "fuel oil 5/6", "kerosene", and "diesel"
|
40
|
+
Fuel Use: Propane: Total (MBtu)
|
41
|
+
Fuel Use: Wood: Total (MBtu)
|
42
|
+
Fuel Use: Wood Pellets: Total (MBtu)
|
43
|
+
Fuel Use: Coal: Total (MBtu) Includes "coal", "anthracite coal", "bituminous coal", and "coke".
|
44
|
+
==================================== ===========================
|
45
|
+
|
46
|
+
Annual Energy Consumption By End Use
|
47
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
48
|
+
|
49
|
+
Current end uses are listed below.
|
50
|
+
|
51
|
+
Note that all end uses are mutually exclusive -- the "Electricity: Heating" end use, for example, excludes energy reported in the "Electricity: Heating Fans/Pumps" end use.
|
52
|
+
So the sum of all end uses for a given fuel (e.g., sum of all "End Use: Natural Gas: \*") equal the above reported fuel use (e.g., "Fuel Use: Natural Gas: Total").
|
53
|
+
|
54
|
+
=================================================================== ====================================================
|
55
|
+
Type Notes
|
56
|
+
=================================================================== ====================================================
|
57
|
+
End Use: Electricity: Heating (MBtu) Excludes fans/pumps
|
58
|
+
End Use: Electricity: Heating Fans/Pumps (MBtu)
|
59
|
+
End Use: Electricity: Cooling (MBtu) Excludes fans/pumps
|
60
|
+
End Use: Electricity: Cooling Fans/Pumps (MBtu)
|
61
|
+
End Use: Electricity: Hot Water (MBtu) Excludes recirc pump and solar thermal pump
|
62
|
+
End Use: Electricity: Hot Water Recirc Pump (MBtu)
|
63
|
+
End Use: Electricity: Hot Water Solar Thermal Pump (MBtu) Non-zero only when using detailed (not simple) solar thermal inputs
|
64
|
+
End Use: Electricity: Lighting Interior (MBtu)
|
65
|
+
End Use: Electricity: Lighting Garage (MBtu)
|
66
|
+
End Use: Electricity: Lighting Exterior (MBtu)
|
67
|
+
End Use: Electricity: Mech Vent (MBtu) Excludes preheating/precooling
|
68
|
+
End Use: Electricity: Mech Vent Preheating (MBtu)
|
69
|
+
End Use: Electricity: Mech Vent Precooling (MBtu)
|
70
|
+
End Use: Electricity: Whole House Fan (MBtu)
|
71
|
+
End Use: Electricity: Refrigerator (MBtu)
|
72
|
+
End Use: Electricity: Freezer (MBtu)
|
73
|
+
End Use: Electricity: Dehumidifier (MBtu)
|
74
|
+
End Use: Electricity: Dishwasher (MBtu)
|
75
|
+
End Use: Electricity: Clothes Washer (MBtu)
|
76
|
+
End Use: Electricity: Clothes Dryer (MBtu)
|
77
|
+
End Use: Electricity: Range/Oven (MBtu)
|
78
|
+
End Use: Electricity: Ceiling Fan (MBtu)
|
79
|
+
End Use: Electricity: Television (MBtu)
|
80
|
+
End Use: Electricity: Plug Loads (MBtu) Excludes independently reported plug loads (e.g., well pump)
|
81
|
+
End Use: Electricity: Electric Vehicle Charging (MBtu)
|
82
|
+
End Use: Electricity: Well Pump (MBtu)
|
83
|
+
End Use: Electricity: Pool Heater (MBtu)
|
84
|
+
End Use: Electricity: Pool Pump (MBtu)
|
85
|
+
End Use: Electricity: Hot Tub Heater (MBtu)
|
86
|
+
End Use: Electricity: Hot Tub Pump (MBtu)
|
87
|
+
End Use: Electricity: PV (MBtu) Negative value for any power produced
|
88
|
+
End Use: Electricity: Generator (MBtu) Negative value for any power produced
|
89
|
+
End Use: Natural Gas: Heating (MBtu)
|
90
|
+
End Use: Natural Gas: Hot Water (MBtu)
|
91
|
+
End Use: Natural Gas: Clothes Dryer (MBtu)
|
92
|
+
End Use: Natural Gas: Range/Oven (MBtu)
|
93
|
+
End Use: Natural Gas: Mech Vent Preheating (MBtu)
|
94
|
+
End Use: Natural Gas: Mech Vent Precooling (MBtu)
|
95
|
+
End Use: Natural Gas: Pool Heater (MBtu)
|
96
|
+
End Use: Natural Gas: Hot Tub Heater (MBtu)
|
97
|
+
End Use: Natural Gas: Grill (MBtu)
|
98
|
+
End Use: Natural Gas: Lighting (MBtu)
|
99
|
+
End Use: Natural Gas: Fireplace (MBtu)
|
100
|
+
End Use: Natural Gas: Generator (MBtu) Positive value for any fuel consumed
|
101
|
+
End Use: Fuel Oil: Heating (MBtu)
|
102
|
+
End Use: Fuel Oil: Hot Water (MBtu)
|
103
|
+
End Use: Fuel Oil: Clothes Dryer (MBtu)
|
104
|
+
End Use: Fuel Oil: Range/Oven (MBtu)
|
105
|
+
End Use: Fuel Oil: Mech Vent Preheating (MBtu)
|
106
|
+
End Use: Fuel Oil: Mech Vent Precooling (MBtu)
|
107
|
+
End Use: Fuel Oil: Grill (MBtu)
|
108
|
+
End Use: Fuel Oil: Lighting (MBtu)
|
109
|
+
End Use: Fuel Oil: Fireplace (MBtu)
|
110
|
+
End Use: Propane: Heating (MBtu)
|
111
|
+
End Use: Propane: Hot Water (MBtu)
|
112
|
+
End Use: Propane: Clothes Dryer (MBtu)
|
113
|
+
End Use: Propane: Range/Oven (MBtu)
|
114
|
+
End Use: Propane: Mech Vent Preheating (MBtu)
|
115
|
+
End Use: Propane: Mech Vent Precooling (MBtu)
|
116
|
+
End Use: Propane: Grill (MBtu)
|
117
|
+
End Use: Propane: Lighting (MBtu)
|
118
|
+
End Use: Propane: Fireplace (MBtu)
|
119
|
+
End Use: Propane: Generator (MBtu) Positive value for any fuel consumed
|
120
|
+
End Use: Wood Cord: Heating (MBtu)
|
121
|
+
End Use: Wood Cord: Hot Water (MBtu)
|
122
|
+
End Use: Wood Cord: Clothes Dryer (MBtu)
|
123
|
+
End Use: Wood Cord: Range/Oven (MBtu)
|
124
|
+
End Use: Wood Cord: Mech Vent Preheating (MBtu)
|
125
|
+
End Use: Wood Cord: Mech Vent Precooling (MBtu)
|
126
|
+
End Use: Wood Cord: Grill (MBtu)
|
127
|
+
End Use: Wood Cord: Lighting (MBtu)
|
128
|
+
End Use: Wood Cord: Fireplace (MBtu)
|
129
|
+
End Use: Wood Pellets: Heating (MBtu)
|
130
|
+
End Use: Wood Pellets: Hot Water (MBtu)
|
131
|
+
End Use: Wood Pellets: Clothes Dryer (MBtu)
|
132
|
+
End Use: Wood Pellets: Range/Oven (MBtu)
|
133
|
+
End Use: Wood Pellets: Mech Vent Preheating (MBtu)
|
134
|
+
End Use: Wood Pellets: Mech Vent Precooling (MBtu)
|
135
|
+
End Use: Wood Pellets: Grill (MBtu)
|
136
|
+
End Use: Wood Pellets: Lighting (MBtu)
|
137
|
+
End Use: Wood Pellets: Fireplace (MBtu)
|
138
|
+
End Use: Coal: Heating (MBtu)
|
139
|
+
End Use: Coal: Hot Water (MBtu)
|
140
|
+
End Use: Coal: Clothes Dryer (MBtu)
|
141
|
+
End Use: Coal: Range/Oven (MBtu)
|
142
|
+
End Use: Coal: Mech Vent Preheating (MBtu)
|
143
|
+
End Use: Coal: Mech Vent Precooling (MBtu)
|
144
|
+
End Use: Coal: Grill (MBtu)
|
145
|
+
End Use: Coal: Lighting (MBtu)
|
146
|
+
End Use: Coal: Fireplace (MBtu)
|
147
|
+
=================================================================== ====================================================
|
131
148
|
|
132
149
|
Annual Building Loads
|
133
150
|
~~~~~~~~~~~~~~~~~~~~~
|
134
151
|
|
135
|
-
Current annual building loads are
|
152
|
+
Current annual building loads are listed below.
|
136
153
|
|
137
154
|
===================================== ==================================================================
|
138
155
|
Type Notes
|
@@ -148,7 +165,7 @@ Current annual building loads are:
|
|
148
165
|
Annual Unmet Building Loads
|
149
166
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
150
167
|
|
151
|
-
Current annual unmet building loads are
|
168
|
+
Current annual unmet building loads are listed below.
|
152
169
|
|
153
170
|
========================== =====
|
154
171
|
Type Notes
|
@@ -167,7 +184,7 @@ Rather, the unmet load is only the amount of load that the room AC *should* be s
|
|
167
184
|
Peak Building Electricity
|
168
185
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
169
186
|
|
170
|
-
Current peak building electricity outputs are
|
187
|
+
Current peak building electricity outputs are listed below.
|
171
188
|
|
172
189
|
================================== =========================================================
|
173
190
|
Type Notes
|
@@ -179,7 +196,7 @@ Current peak building electricity outputs are:
|
|
179
196
|
Peak Building Loads
|
180
197
|
~~~~~~~~~~~~~~~~~~~
|
181
198
|
|
182
|
-
Current peak building loads are
|
199
|
+
Current peak building loads are listed below.
|
183
200
|
|
184
201
|
========================== ==================================
|
185
202
|
Type Notes
|
@@ -191,9 +208,13 @@ Current peak building loads are:
|
|
191
208
|
Annual Component Building Loads
|
192
209
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
193
210
|
|
211
|
+
**Note**: This section is only available if the ``--add-component-loads`` argument is used.
|
212
|
+
The argument is not used by default for faster performance.
|
213
|
+
|
194
214
|
Component loads represent the estimated contribution of different building components to the annual heating/cooling building loads.
|
195
215
|
The sum of component loads for heating (or cooling) will roughly equal the annual heating (or cooling) building load reported above.
|
196
|
-
|
216
|
+
|
217
|
+
Current component loads disaggregated by Heating/Cooling are listed below.
|
197
218
|
|
198
219
|
================================================= =========================================================================================================
|
199
220
|
Type Notes
|
@@ -220,7 +241,7 @@ Current component loads disaggregated by Heating/Cooling are:
|
|
220
241
|
Annual Hot Water Uses
|
221
242
|
~~~~~~~~~~~~~~~~~~~~~
|
222
243
|
|
223
|
-
Current annual hot water uses are
|
244
|
+
Current annual hot water uses are listed below.
|
224
245
|
|
225
246
|
=================================== ====================
|
226
247
|
Type Notes
|
@@ -231,14 +252,15 @@ Current annual hot water uses are:
|
|
231
252
|
Hot Water: Distribution Waste (gal)
|
232
253
|
=================================== ====================
|
233
254
|
|
255
|
+
.. _timeseries_outputs:
|
234
256
|
|
235
257
|
Timeseries Outputs
|
236
258
|
------------------
|
237
259
|
|
238
|
-
OpenStudio-HPXML can optionally generate a timeseries
|
239
|
-
The timeseries output file is called results_timeseries.csv and co-located with the EnergyPlus output.
|
260
|
+
OpenStudio-HPXML can optionally generate a timeseries output file.
|
261
|
+
The timeseries output file is called results_timeseries.csv (or results_timeseries.json) and co-located with the EnergyPlus output.
|
240
262
|
|
241
|
-
Depending on the outputs requested,
|
263
|
+
Depending on the outputs requested, the file may include:
|
242
264
|
|
243
265
|
=================================== ==================================================================================================================================
|
244
266
|
Type Notes
|
@@ -248,7 +270,13 @@ Depending on the outputs requested, CSV files may include:
|
|
248
270
|
Hot Water Uses Water use for each end use type (in gallons).
|
249
271
|
Total Loads Heating, cooling, and hot water loads (in kBtu) for the building.
|
250
272
|
Component Loads Heating and cooling loads (in kBtu) disaggregated by component (e.g., Walls, Windows, Infiltration, Ducts, etc.).
|
273
|
+
Unmet Loads Unmet heating and cooling loads (in kBtu) for the building.
|
251
274
|
Zone Temperatures Average temperatures (in deg-F) for each space modeled (e.g., living space, attic, garage, basement, crawlspace, etc.).
|
252
275
|
Airflows Airflow rates (in cfm) for infiltration, mechanical ventilation (including clothes dryer exhaust), natural ventilation, whole house fans.
|
253
276
|
Weather Weather file data including outdoor temperatures, relative humidity, wind speed, and solar.
|
254
277
|
=================================== ==================================================================================================================================
|
278
|
+
|
279
|
+
Timeseries outputs can be one of the following frequencies: hourly, daily, monthly, or timestep (i.e., equal to the simulation timestep, which defaults to an hour but can be sub-hourly).
|
280
|
+
|
281
|
+
Timestamps in the output use the end-of-hour (or end-of-day for daily frequency, etc.) convention.
|
282
|
+
Most outputs will be summed over the hour (e.g., energy) but some will be averaged over the hour (e.g., temperatures, airflows).
|
@@ -16,7 +16,7 @@ def create_osws
|
|
16
16
|
'base-appliances-dehumidifier.osw' => 'base-location-dallas-tx.osw',
|
17
17
|
'base-appliances-dehumidifier-ief-portable.osw' => 'base-appliances-dehumidifier.osw',
|
18
18
|
'base-appliances-dehumidifier-ief-whole-home.osw' => 'base-appliances-dehumidifier-ief-portable.osw',
|
19
|
-
'base-appliances-dehumidifier-
|
19
|
+
# 'base-appliances-dehumidifier-multiple.osw' => 'base-appliances-dehumidifier.osw',
|
20
20
|
'base-appliances-gas.osw' => 'base.osw',
|
21
21
|
'base-appliances-modified.osw' => 'base.osw',
|
22
22
|
'base-appliances-none.osw' => 'base.osw',
|
@@ -29,20 +29,37 @@ def create_osws
|
|
29
29
|
'base-atticroof-radiant-barrier.osw' => 'base-location-dallas-tx.osw',
|
30
30
|
'base-atticroof-unvented-insulated-roof.osw' => 'base.osw',
|
31
31
|
'base-atticroof-vented.osw' => 'base.osw',
|
32
|
+
'base-bldgtype-single-family-attached.osw' => 'base.osw',
|
32
33
|
'base-bldgtype-multifamily.osw' => 'base.osw',
|
33
34
|
# 'base-bldgtype-multifamily-adjacent-to-multifamily-buffer-space.osw' => 'base.osw', # Not supporting units adjacent to other MF spaces for now
|
34
35
|
# 'base-bldgtype-multifamily-adjacent-to-multiple.osw' => 'base.osw', # Not supporting units adjacent to other MF spaces for now
|
35
36
|
# 'base-bldgtype-multifamily-adjacent-to-non-freezing-space.osw' => 'base.osw', # Not supporting units adjacent to other MF spaces for now
|
36
37
|
# 'base-bldgtype-multifamily-adjacent-to-other-heated-space.osw' => 'base.osw', # Not supporting units adjacent to other MF spaces for now
|
37
38
|
# 'base-bldgtype-multifamily-adjacent-to-other-housing-unit.osw' => 'base.osw', # Not supporting units adjacent to other MF spaces for now
|
38
|
-
# 'base-bldgtype-multifamily-shared-
|
39
|
+
# 'base-bldgtype-multifamily-shared-boiler-chiller-baseboard.osw' => 'base-bldgtype-multifamily.osw',
|
40
|
+
# 'base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.osw' => 'base-bldgtype-multifamily-shared-boiler-chiller-baseboard.osw',
|
41
|
+
# 'base-bldgtype-multifamily-shared-boiler-chiller-fan-coil-ducted.osw' => 'base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.osw',
|
42
|
+
# 'base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.osw' => 'base-bldgtype-multifamily-shared-boiler-chiller-baseboard.osw',
|
43
|
+
# 'base-bldgtype-multifamily-shared-boiler-cooling-tower-water-loop-heat-pump.osw' => 'base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.osw',
|
44
|
+
'base-bldgtype-multifamily-shared-boiler-only-baseboard.osw' => 'base-bldgtype-multifamily.osw',
|
45
|
+
'base-bldgtype-multifamily-shared-boiler-only-fan-coil.osw' => 'base-bldgtype-multifamily-shared-boiler-only-baseboard.osw',
|
46
|
+
# 'base-bldgtype-multifamily-shared-boiler-only-fan-coil-ducted.osw' => 'base-bldgtype-multifamily-shared-boiler-only-fan-coil.osw',
|
47
|
+
# 'base-bldgtype-multifamily-shared-boiler-only-fan-coil-eae.osw' => 'base-bldgtype-multifamily-shared-boiler-only-fan-coil.osw',
|
48
|
+
# 'base-bldgtype-multifamily-shared-boiler-only-water-loop-heat-pump.osw' => 'base-bldgtype-multifamily-shared-boiler-only-baseboard.osw',
|
49
|
+
# 'base-bldgtype-multifamily-shared-chiller-only-baseboard.osw' => 'base-bldgtype-multifamily.osw',
|
50
|
+
# 'base-bldgtype-multifamily-shared-chiller-only-fan-coil.osw' => 'base-bldgtype-multifamily-shared-chiller-only-baseboard.osw',
|
51
|
+
# 'base-bldgtype-multifamily-shared-chiller-only-fan-coil-ducted.osw' => 'base-bldgtype-multifamily-shared-chiller-only-fan-coil.osw',
|
52
|
+
# 'base-bldgtype-multifamily-shared-chiller-only-water-loop-heat-pump.osw' => 'base-bldgtype-multifamily-shared-chiller-only-baseboard.osw',
|
53
|
+
# 'base-bldgtype-multifamily-shared-cooling-tower-only-water-loop-heat-pump.osw' => 'base-bldgtype-multifamily-shared-chiller-only-water-loop-heat-pump.osw',
|
54
|
+
# 'base-bldgtype-multifamily-shared-generator.osw' => 'base-bldgtype-multifamily.osw',
|
55
|
+
# 'base-bldgtype-multifamily-shared-ground-loop-ground-to-air-heat-pump.osw' => 'base-bldgtype-multifamily.osw',
|
56
|
+
# 'base-bldgtype-multifamily-shared-laundry-room.osw' => 'base-bldgtype-multifamily.osw', # Not going to support shared laundry room
|
39
57
|
'base-bldgtype-multifamily-shared-mechvent.osw' => 'base-bldgtype-multifamily.osw',
|
40
58
|
# 'base-bldgtype-multifamily-shared-mechvent-multiple.osw' => 'base.osw', # Not going to support > 2 MV systems
|
41
59
|
'base-bldgtype-multifamily-shared-mechvent-preconditioning.osw' => 'base-bldgtype-multifamily-shared-mechvent.osw',
|
42
60
|
'base-bldgtype-multifamily-shared-pv.osw' => 'base-bldgtype-multifamily.osw',
|
43
61
|
'base-bldgtype-multifamily-shared-water-heater.osw' => 'base-bldgtype-multifamily.osw',
|
44
62
|
# 'base-bldgtype-multifamily-shared-water-heater-recirc.osw' => 'base.osw', $ Not supporting shared recirculation for now
|
45
|
-
'base-bldgtype-single-family-attached.osw' => 'base.osw',
|
46
63
|
'base-dhw-combi-tankless.osw' => 'base-dhw-indirect.osw',
|
47
64
|
'base-dhw-combi-tankless-outside.osw' => 'base-dhw-combi-tankless.osw',
|
48
65
|
# 'base-dhw-desuperheater.osw' => 'base.osw', # Not supporting desuperheater for now
|
@@ -96,7 +113,7 @@ def create_osws
|
|
96
113
|
'base-dhw-tank-oil.osw' => 'base.osw',
|
97
114
|
'base-dhw-tank-wood.osw' => 'base.osw',
|
98
115
|
'base-enclosure-2stories.osw' => 'base.osw',
|
99
|
-
'base-enclosure-2stories-garage.osw' => 'base.osw',
|
116
|
+
'base-enclosure-2stories-garage.osw' => 'base-enclosure-2stories.osw',
|
100
117
|
'base-enclosure-beds-1.osw' => 'base.osw',
|
101
118
|
'base-enclosure-beds-2.osw' => 'base.osw',
|
102
119
|
'base-enclosure-beds-4.osw' => 'base.osw',
|
@@ -110,11 +127,14 @@ def create_osws
|
|
110
127
|
'base-enclosure-overhangs.osw' => 'base.osw',
|
111
128
|
# 'base-enclosure-rooftypes.osw' => 'base.osw',
|
112
129
|
# 'base-enclosure-skylights.osw' => 'base.osw', # There are no front roof surfaces, but 15.0 ft^2 of skylights were specified.
|
130
|
+
# 'base-enclosure-skylights-shading.osw' => 'base-enclosure-skylights.osw", # Not going to support interior/exterior shading by facade
|
113
131
|
# 'base-enclosure-split-surfaces.osw' => 'base.osw',
|
132
|
+
# 'base-enclosure-split-surfaces2.osw' => 'base.osw',
|
114
133
|
# 'base-enclosure-walltypes.osw' => 'base.osw',
|
115
|
-
# 'base-enclosure-windows-
|
134
|
+
# 'base-enclosure-windows-shading.osw' => 'base.osw', # Not going to support interior/exterior shading by facade
|
116
135
|
'base-enclosure-windows-none.osw' => 'base.osw',
|
117
136
|
'base-foundation-ambient.osw' => 'base.osw',
|
137
|
+
# 'base-foundation-basement-garage.osw' => 'base.osw',
|
118
138
|
# 'base-foundation-complex.osw' => 'base.osw', # Not going to support multiple foundation types
|
119
139
|
'base-foundation-conditioned-basement-slab-insulation.osw' => 'base.osw',
|
120
140
|
# 'base-foundation-conditioned-basement-wall-interior-insulation.osw' => 'base.osw',
|
@@ -128,6 +148,8 @@ def create_osws
|
|
128
148
|
'base-foundation-vented-crawlspace.osw' => 'base.osw',
|
129
149
|
# 'base-foundation-walkout-basement.osw' => 'base.osw', # 1 kiva object instead of 4
|
130
150
|
'base-hvac-air-to-air-heat-pump-1-speed.osw' => 'base.osw',
|
151
|
+
'base-hvac-air-to-air-heat-pump-1-speed-cooling-only.osw' => 'base-hvac-air-to-air-heat-pump-1-speed.osw',
|
152
|
+
'base-hvac-air-to-air-heat-pump-1-speed-heating-only.osw' => 'base-hvac-air-to-air-heat-pump-1-speed.osw',
|
131
153
|
'base-hvac-air-to-air-heat-pump-2-speed.osw' => 'base.osw',
|
132
154
|
'base-hvac-air-to-air-heat-pump-var-speed.osw' => 'base.osw',
|
133
155
|
'base-hvac-boiler-coal-only.osw' => 'base.osw',
|
@@ -155,6 +177,7 @@ def create_osws
|
|
155
177
|
'base-hvac-fireplace-wood-only.osw' => 'base.osw',
|
156
178
|
'base-hvac-fixed-heater-gas-only.osw' => 'base.osw',
|
157
179
|
'base-hvac-floor-furnace-propane-only.osw' => 'base.osw',
|
180
|
+
'base-hvac-furnace-coal-only.osw' => 'base.osw',
|
158
181
|
'base-hvac-furnace-elec-central-ac-1-speed.osw' => 'base.osw',
|
159
182
|
'base-hvac-furnace-elec-only.osw' => 'base.osw',
|
160
183
|
'base-hvac-furnace-gas-central-ac-2-speed.osw' => 'base.osw',
|
@@ -166,7 +189,23 @@ def create_osws
|
|
166
189
|
'base-hvac-furnace-wood-only.osw' => 'base.osw',
|
167
190
|
# 'base-hvac-furnace-x3-dse.osw' => 'base.osw', # Not going to support DSE
|
168
191
|
'base-hvac-ground-to-air-heat-pump.osw' => 'base.osw',
|
192
|
+
'base-hvac-ground-to-air-heat-pump-cooling-only.osw' => 'base-hvac-ground-to-air-heat-pump.osw',
|
193
|
+
'base-hvac-ground-to-air-heat-pump-heating-only.osw' => 'base-hvac-ground-to-air-heat-pump.osw',
|
169
194
|
# 'base-hvac-ideal-air.osw' => 'base.osw',
|
195
|
+
'base-hvac-install-quality-none-furnace-gas-central-ac-1-speed.osw' => 'base.osw',
|
196
|
+
'base-hvac-install-quality-airflow-defect-furnace-gas-central-ac-1-speed.osw' => 'base.osw',
|
197
|
+
'base-hvac-install-quality-charge-defect-furnace-gas-central-ac-1-speed.osw' => 'base.osw',
|
198
|
+
# 'base-hvac-install-quality-blower-efficiency-furnace-gas-central-ac-1-speed.osw' => 'base.osw',
|
199
|
+
'base-hvac-install-quality-all-air-to-air-heat-pump-1-speed.osw' => 'base-hvac-air-to-air-heat-pump-1-speed.osw',
|
200
|
+
'base-hvac-install-quality-all-air-to-air-heat-pump-2-speed.osw' => 'base-hvac-air-to-air-heat-pump-2-speed.osw',
|
201
|
+
'base-hvac-install-quality-all-air-to-air-heat-pump-var-speed.osw' => 'base-hvac-air-to-air-heat-pump-var-speed.osw',
|
202
|
+
'base-hvac-install-quality-all-furnace-gas-central-ac-1-speed.osw' => 'base.osw',
|
203
|
+
'base-hvac-install-quality-all-furnace-gas-central-ac-2-speed.osw' => 'base-hvac-furnace-gas-central-ac-2-speed.osw',
|
204
|
+
'base-hvac-install-quality-all-furnace-gas-central-ac-var-speed.osw' => 'base-hvac-furnace-gas-central-ac-var-speed.osw',
|
205
|
+
'base-hvac-install-quality-all-furnace-gas-only.osw' => 'base-hvac-furnace-gas-only.osw',
|
206
|
+
'base-hvac-install-quality-all-ground-to-air-heat-pump.osw' => 'base-hvac-ground-to-air-heat-pump.osw',
|
207
|
+
'base-hvac-install-quality-all-mini-split-heat-pump-ducted.osw' => 'base-hvac-mini-split-heat-pump-ducted.osw',
|
208
|
+
'base-hvac-install-quality-all-mini-split-air-conditioner-only-ducted.osw' => 'base-hvac-mini-split-air-conditioner-only-ducted.osw',
|
170
209
|
'base-hvac-mini-split-air-conditioner-only-ducted.osw' => 'base.osw',
|
171
210
|
'base-hvac-mini-split-air-conditioner-only-ductless.osw' => 'base-hvac-mini-split-air-conditioner-only-ducted.osw',
|
172
211
|
'base-hvac-mini-split-heat-pump-ducted.osw' => 'base.osw',
|
@@ -174,11 +213,10 @@ def create_osws
|
|
174
213
|
'base-hvac-mini-split-heat-pump-ducted-heating-only.osw' => 'base-hvac-mini-split-heat-pump-ducted.osw',
|
175
214
|
'base-hvac-mini-split-heat-pump-ductless.osw' => 'base-hvac-mini-split-heat-pump-ducted.osw',
|
176
215
|
# 'base-hvac-multiple.osw' => 'base.osw', # Not supporting multiple heating/cooling systems for now
|
177
|
-
# 'base-hvac-multiple2.osw' => 'base.osw', # Not supporting multiple heating/cooling systems for now
|
178
216
|
'base-hvac-none.osw' => 'base.osw',
|
179
217
|
'base-hvac-portable-heater-gas-only.osw' => 'base.osw',
|
180
218
|
# 'base-hvac-programmable-thermostat.osw' => 'base.osw',
|
181
|
-
|
219
|
+
'base-hvac-programmable-thermostat-detailed.osw' => 'base.osw',
|
182
220
|
'base-hvac-room-ac-only.osw' => 'base.osw',
|
183
221
|
'base-hvac-room-ac-only-33percent.osw' => 'base.osw',
|
184
222
|
'base-hvac-setpoints.osw' => 'base.osw',
|
@@ -191,10 +229,14 @@ def create_osws
|
|
191
229
|
'base-lighting-detailed.osw' => 'base.osw',
|
192
230
|
# 'base-lighting-none.osw' => 'base.osw',
|
193
231
|
'base-location-AMY-2012.osw' => 'base.osw',
|
194
|
-
'base-location-baltimore-md.osw' => 'base.osw',
|
232
|
+
'base-location-baltimore-md.osw' => 'base-foundation-unvented-crawlspace.osw',
|
195
233
|
'base-location-dallas-tx.osw' => 'base-foundation-slab.osw',
|
196
|
-
'base-location-duluth-mn.osw' => 'base.osw',
|
234
|
+
'base-location-duluth-mn.osw' => 'base-foundation-unconditioned-basement.osw',
|
235
|
+
'base-location-helena-mt.osw' => 'base.osw',
|
236
|
+
'base-location-honolulu-hi.osw' => 'base-foundation-slab.osw',
|
197
237
|
'base-location-miami-fl.osw' => 'base-foundation-slab.osw',
|
238
|
+
'base-location-phoenix-az.osw' => 'base-foundation-slab.osw',
|
239
|
+
'base-location-portland-or.osw' => 'base-foundation-vented-crawlspace.osw',
|
198
240
|
'base-mechvent-balanced.osw' => 'base.osw',
|
199
241
|
'base-mechvent-bath-kitchen-fans.osw' => 'base.osw',
|
200
242
|
'base-mechvent-cfis.osw' => 'base.osw',
|
@@ -203,17 +245,21 @@ def create_osws
|
|
203
245
|
'base-mechvent-erv.osw' => 'base.osw',
|
204
246
|
'base-mechvent-erv-atre-asre.osw' => 'base.osw',
|
205
247
|
'base-mechvent-exhaust.osw' => 'base.osw',
|
248
|
+
'base-mechvent-exhaust-rated-flow-rate.osw' => 'base.osw',
|
206
249
|
'base-mechvent-hrv.osw' => 'base.osw',
|
207
250
|
'base-mechvent-hrv-asre.osw' => 'base.osw',
|
208
251
|
# 'base-mechvent-multiple.osw' => 'base.osw', # Not going to support > 2 MV systems
|
209
252
|
'base-mechvent-supply.osw' => 'base.osw',
|
210
253
|
'base-mechvent-whole-house-fan.osw' => 'base.osw',
|
211
254
|
'base-misc-defaults.osw' => 'base.osw',
|
255
|
+
# 'base-misc-generators.osw' => 'base.osw',
|
212
256
|
'base-misc-loads-large-uncommon.osw' => 'base.osw',
|
213
257
|
'base-misc-loads-large-uncommon2.osw' => 'base-misc-loads-large-uncommon.osw',
|
214
258
|
# 'base-misc-loads-none.osw' => 'base.osw',
|
215
259
|
'base-misc-neighbor-shading.osw' => 'base.osw',
|
260
|
+
'base-misc-shielding-of-home.osw' => 'base.osw',
|
216
261
|
'base-misc-usage-multiplier.osw' => 'base.osw',
|
262
|
+
# 'base-multiple-buildings.osw' => 'base.osw',
|
217
263
|
'base-pv.osw' => 'base.osw',
|
218
264
|
'base-simcontrol-calendar-year-custom.osw' => 'base.osw',
|
219
265
|
'base-simcontrol-daylight-saving-custom.osw' => 'base.osw',
|
@@ -221,6 +267,7 @@ def create_osws
|
|
221
267
|
'base-simcontrol-runperiod-1-month.osw' => 'base.osw',
|
222
268
|
'base-simcontrol-timestep-10-mins.osw' => 'base.osw',
|
223
269
|
'base-schedules-stochastic.osw' => 'base.osw',
|
270
|
+
'base-schedules-stochastic-vacant.osw' => 'base-schedules-stochastic.osw',
|
224
271
|
'base-schedules-user-specified.osw' => 'base.osw',
|
225
272
|
|
226
273
|
# Extra test files that don't correspond with sample files
|
@@ -228,13 +275,115 @@ def create_osws
|
|
228
275
|
'extra-pv-roofpitch.osw' => 'base.osw',
|
229
276
|
'extra-dhw-solar-latitude.osw' => 'base.osw',
|
230
277
|
'extra-second-refrigerator.osw' => 'base.osw',
|
231
|
-
'extra-second-heating-system-portable-heater.osw' => 'base.osw',
|
232
|
-
'extra-second-heating-system-fireplace.osw' => 'base.osw',
|
278
|
+
'extra-second-heating-system-portable-heater-to-heating-system.osw' => 'base.osw',
|
279
|
+
'extra-second-heating-system-fireplace-to-heating-system.osw' => 'base-hvac-elec-resistance-only.osw',
|
280
|
+
'extra-second-heating-system-boiler-to-heating-system.osw' => 'base-hvac-boiler-gas-central-ac-1-speed.osw',
|
281
|
+
'extra-second-heating-system-portable-heater-to-heat-pump.osw' => 'base-hvac-air-to-air-heat-pump-1-speed.osw',
|
282
|
+
'extra-second-heating-system-fireplace-to-heat-pump.osw' => 'base-hvac-mini-split-heat-pump-ducted.osw',
|
283
|
+
'extra-second-heating-system-boiler-to-heat-pump.osw' => 'base-hvac-ground-to-air-heat-pump.osw',
|
284
|
+
'extra-enclosure-windows-shading.osw' => 'base.osw',
|
233
285
|
'extra-enclosure-garage-partially-protruded.osw' => 'base.osw',
|
234
|
-
'extra-
|
286
|
+
'extra-enclosure-garage-atticroof-conditioned.osw' => 'base-enclosure-garage.osw',
|
287
|
+
'extra-enclosure-atticroof-conditioned-eaves-gable.osw' => 'base-foundation-slab.osw',
|
288
|
+
'extra-enclosure-atticroof-conditioned-eaves-hip.osw' => 'extra-enclosure-atticroof-conditioned-eaves-gable.osw',
|
235
289
|
'extra-schedules-random-seed.osw' => 'base-schedules-stochastic.osw',
|
236
|
-
'extra-
|
237
|
-
'extra-
|
290
|
+
'extra-zero-refrigerator-kwh.osw' => 'base.osw',
|
291
|
+
'extra-zero-extra-refrigerator-kwh.osw' => 'base.osw',
|
292
|
+
'extra-zero-freezer-kwh.osw' => 'base.osw',
|
293
|
+
'extra-zero-clothes-washer-kwh.osw' => 'base.osw',
|
294
|
+
'extra-zero-dishwasher-kwh.osw' => 'base.osw',
|
295
|
+
'extra-bldgtype-single-family-attached-atticroof-flat.osw' => 'base-bldgtype-single-family-attached.osw',
|
296
|
+
'extra-gas-pool-heater-with-zero-kwh.osw' => 'base.osw',
|
297
|
+
'extra-gas-hot-tub-heater-with-zero-kwh.osw' => 'base.osw',
|
298
|
+
|
299
|
+
'extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-gable.osw' => 'extra-bldgtype-single-family-attached-slab.osw',
|
300
|
+
'extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-hip.osw' => 'extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-gable.osw',
|
301
|
+
'extra-bldgtype-multifamily-eaves.osw' => 'extra-bldgtype-multifamily-slab.osw',
|
302
|
+
|
303
|
+
'extra-bldgtype-single-family-attached-slab.osw' => 'base-bldgtype-single-family-attached.osw',
|
304
|
+
'extra-bldgtype-single-family-attached-vented-crawlspace.osw' => 'base-bldgtype-single-family-attached.osw',
|
305
|
+
'extra-bldgtype-single-family-attached-unvented-crawlspace.osw' => 'base-bldgtype-single-family-attached.osw',
|
306
|
+
'extra-bldgtype-single-family-attached-unconditioned-basement.osw' => 'base-bldgtype-single-family-attached.osw',
|
307
|
+
|
308
|
+
'extra-bldgtype-single-family-attached-double-loaded-interior.osw' => 'base-bldgtype-single-family-attached.osw',
|
309
|
+
'extra-bldgtype-single-family-attached-single-exterior-front.osw' => 'base-bldgtype-single-family-attached.osw',
|
310
|
+
'extra-bldgtype-single-family-attached-double-exterior.osw' => 'base-bldgtype-single-family-attached.osw',
|
311
|
+
|
312
|
+
'extra-bldgtype-single-family-attached-slab-middle.osw' => 'extra-bldgtype-single-family-attached-slab.osw',
|
313
|
+
'extra-bldgtype-single-family-attached-slab-right.osw' => 'extra-bldgtype-single-family-attached-slab.osw',
|
314
|
+
'extra-bldgtype-single-family-attached-vented-crawlspace-middle.osw' => 'extra-bldgtype-single-family-attached-vented-crawlspace.osw',
|
315
|
+
'extra-bldgtype-single-family-attached-vented-crawlspace-right.osw' => 'extra-bldgtype-single-family-attached-vented-crawlspace.osw',
|
316
|
+
'extra-bldgtype-single-family-attached-unvented-crawlspace-middle.osw' => 'extra-bldgtype-single-family-attached-unvented-crawlspace.osw',
|
317
|
+
'extra-bldgtype-single-family-attached-unvented-crawlspace-right.osw' => 'extra-bldgtype-single-family-attached-unvented-crawlspace.osw',
|
318
|
+
'extra-bldgtype-single-family-attached-unconditioned-basement-middle.osw' => 'extra-bldgtype-single-family-attached-unconditioned-basement.osw',
|
319
|
+
'extra-bldgtype-single-family-attached-unconditioned-basement-right.osw' => 'extra-bldgtype-single-family-attached-unconditioned-basement.osw',
|
320
|
+
|
321
|
+
'extra-bldgtype-multifamily-slab.osw' => 'base-bldgtype-multifamily.osw',
|
322
|
+
'extra-bldgtype-multifamily-vented-crawlspace.osw' => 'base-bldgtype-multifamily.osw',
|
323
|
+
'extra-bldgtype-multifamily-unvented-crawlspace.osw' => 'base-bldgtype-multifamily.osw',
|
324
|
+
|
325
|
+
'extra-bldgtype-multifamily-double-loaded-interior.osw' => 'base-bldgtype-multifamily.osw',
|
326
|
+
'extra-bldgtype-multifamily-single-exterior-front.osw' => 'base-bldgtype-multifamily.osw',
|
327
|
+
'extra-bldgtype-multifamily-double-exterior.osw' => 'base-bldgtype-multifamily.osw',
|
328
|
+
|
329
|
+
'extra-bldgtype-multifamily-slab-left-bottom.osw' => 'extra-bldgtype-multifamily-slab.osw',
|
330
|
+
'extra-bldgtype-multifamily-slab-left-middle.osw' => 'extra-bldgtype-multifamily-slab.osw',
|
331
|
+
'extra-bldgtype-multifamily-slab-left-top.osw' => 'extra-bldgtype-multifamily-slab.osw',
|
332
|
+
'extra-bldgtype-multifamily-slab-middle-bottom.osw' => 'extra-bldgtype-multifamily-slab.osw',
|
333
|
+
'extra-bldgtype-multifamily-slab-middle-middle.osw' => 'extra-bldgtype-multifamily-slab.osw',
|
334
|
+
'extra-bldgtype-multifamily-slab-middle-top.osw' => 'extra-bldgtype-multifamily-slab.osw',
|
335
|
+
'extra-bldgtype-multifamily-slab-right-bottom.osw' => 'extra-bldgtype-multifamily-slab.osw',
|
336
|
+
'extra-bldgtype-multifamily-slab-right-middle.osw' => 'extra-bldgtype-multifamily-slab.osw',
|
337
|
+
'extra-bldgtype-multifamily-slab-right-top.osw' => 'extra-bldgtype-multifamily-slab.osw',
|
338
|
+
'extra-bldgtype-multifamily-vented-crawlspace-left-bottom.osw' => 'extra-bldgtype-multifamily-vented-crawlspace.osw',
|
339
|
+
'extra-bldgtype-multifamily-vented-crawlspace-left-middle.osw' => 'extra-bldgtype-multifamily-vented-crawlspace.osw',
|
340
|
+
'extra-bldgtype-multifamily-vented-crawlspace-left-top.osw' => 'extra-bldgtype-multifamily-vented-crawlspace.osw',
|
341
|
+
'extra-bldgtype-multifamily-vented-crawlspace-middle-bottom.osw' => 'extra-bldgtype-multifamily-vented-crawlspace.osw',
|
342
|
+
'extra-bldgtype-multifamily-vented-crawlspace-middle-middle.osw' => 'extra-bldgtype-multifamily-vented-crawlspace.osw',
|
343
|
+
'extra-bldgtype-multifamily-vented-crawlspace-middle-top.osw' => 'extra-bldgtype-multifamily-vented-crawlspace.osw',
|
344
|
+
'extra-bldgtype-multifamily-vented-crawlspace-right-bottom.osw' => 'extra-bldgtype-multifamily-vented-crawlspace.osw',
|
345
|
+
'extra-bldgtype-multifamily-vented-crawlspace-right-middle.osw' => 'extra-bldgtype-multifamily-vented-crawlspace.osw',
|
346
|
+
'extra-bldgtype-multifamily-vented-crawlspace-right-top.osw' => 'extra-bldgtype-multifamily-vented-crawlspace.osw',
|
347
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-left-bottom.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace.osw',
|
348
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-left-middle.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace.osw',
|
349
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-left-top.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace.osw',
|
350
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-middle-bottom.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace.osw',
|
351
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-middle-middle.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace.osw',
|
352
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-middle-top.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace.osw',
|
353
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-right-bottom.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace.osw',
|
354
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-right-middle.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace.osw',
|
355
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-right-top.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace.osw',
|
356
|
+
|
357
|
+
'extra-bldgtype-multifamily-slab-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-slab.osw',
|
358
|
+
'extra-bldgtype-multifamily-vented-crawlspace-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-vented-crawlspace.osw',
|
359
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace.osw',
|
360
|
+
'extra-bldgtype-multifamily-slab-left-bottom-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-slab-left-bottom.osw',
|
361
|
+
'extra-bldgtype-multifamily-slab-left-middle-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-slab-left-middle.osw',
|
362
|
+
'extra-bldgtype-multifamily-slab-left-top-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-slab-left-top.osw',
|
363
|
+
'extra-bldgtype-multifamily-slab-middle-bottom-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-slab-middle-bottom.osw',
|
364
|
+
'extra-bldgtype-multifamily-slab-middle-middle-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-slab-middle-middle.osw',
|
365
|
+
'extra-bldgtype-multifamily-slab-middle-top-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-slab-middle-top.osw',
|
366
|
+
'extra-bldgtype-multifamily-slab-right-bottom-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-slab-right-bottom.osw',
|
367
|
+
'extra-bldgtype-multifamily-slab-right-middle-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-slab-right-middle.osw',
|
368
|
+
'extra-bldgtype-multifamily-slab-right-top-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-slab-right-top.osw',
|
369
|
+
'extra-bldgtype-multifamily-vented-crawlspace-left-bottom-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-vented-crawlspace-left-bottom.osw',
|
370
|
+
'extra-bldgtype-multifamily-vented-crawlspace-left-middle-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-vented-crawlspace-left-middle.osw',
|
371
|
+
'extra-bldgtype-multifamily-vented-crawlspace-left-top-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-vented-crawlspace-left-top.osw',
|
372
|
+
'extra-bldgtype-multifamily-vented-crawlspace-middle-bottom-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-vented-crawlspace-middle-bottom.osw',
|
373
|
+
'extra-bldgtype-multifamily-vented-crawlspace-middle-middle-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-vented-crawlspace-middle-middle.osw',
|
374
|
+
'extra-bldgtype-multifamily-vented-crawlspace-middle-top-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-vented-crawlspace-middle-top.osw',
|
375
|
+
'extra-bldgtype-multifamily-vented-crawlspace-right-bottom-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-vented-crawlspace-right-bottom.osw',
|
376
|
+
'extra-bldgtype-multifamily-vented-crawlspace-right-middle-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-vented-crawlspace-right-middle.osw',
|
377
|
+
'extra-bldgtype-multifamily-vented-crawlspace-right-top-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-vented-crawlspace-right-top.osw',
|
378
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-left-bottom-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace-left-bottom.osw',
|
379
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-left-middle-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace-left-middle.osw',
|
380
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-left-top-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace-left-top.osw',
|
381
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-middle-bottom-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace-middle-bottom.osw',
|
382
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-middle-middle-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace-middle-middle.osw',
|
383
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-middle-top-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace-middle-top.osw',
|
384
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-right-bottom-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace-right-bottom.osw',
|
385
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-right-middle-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace-right-middle.osw',
|
386
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-right-top-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace-right-top.osw',
|
238
387
|
|
239
388
|
'invalid_files/non-electric-heat-pump-water-heater.osw' => 'base.osw',
|
240
389
|
'invalid_files/heating-system-and-heat-pump.osw' => 'base.osw',
|
@@ -249,6 +398,8 @@ def create_osws
|
|
249
398
|
'invalid_files/slab-non-zero-foundation-height-above-grade.osw' => 'base.osw',
|
250
399
|
'invalid_files/ducts-location-and-areas-not-same-type.osw' => 'base.osw',
|
251
400
|
'invalid_files/second-heating-system-serves-majority-heat.osw' => 'base.osw',
|
401
|
+
'invalid_files/second-heating-system-serves-total-heat-load.osw' => 'base.osw',
|
402
|
+
'invalid_files/second-heating-system-but-no-primary-heating.osw' => 'base.osw',
|
252
403
|
'invalid_files/single-family-attached-no-building-orientation.osw' => 'base-bldgtype-single-family-attached.osw',
|
253
404
|
'invalid_files/multifamily-no-building-orientation.osw' => 'base-bldgtype-multifamily.osw',
|
254
405
|
'invalid_files/vented-crawlspace-with-wall-and-ceiling-insulation.osw' => 'base.osw',
|
@@ -259,8 +410,15 @@ def create_osws
|
|
259
410
|
'invalid_files/conditioned-basement-with-ceiling-insulation.osw' => 'base.osw',
|
260
411
|
'invalid_files/conditioned-attic-with-floor-insulation.osw' => 'base.osw',
|
261
412
|
'invalid_files/dhw-indirect-without-boiler.osw' => 'base.osw',
|
262
|
-
'invalid_files/multipliers-without-plug-loads.osw' => 'base.osw',
|
263
|
-
'invalid_files/multipliers-without-
|
413
|
+
'invalid_files/multipliers-without-tv-plug-loads.osw' => 'base.osw',
|
414
|
+
'invalid_files/multipliers-without-other-plug-loads.osw' => 'base.osw',
|
415
|
+
'invalid_files/multipliers-without-well-pump-plug-loads.osw' => 'base.osw',
|
416
|
+
'invalid_files/multipliers-without-vehicle-plug-loads.osw' => 'base.osw',
|
417
|
+
'invalid_files/multipliers-without-fuel-loads.osw' => 'base.osw',
|
418
|
+
'invalid_files/foundation-wall-insulation-greater-than-height.osw' => 'base-foundation-vented-crawlspace.osw',
|
419
|
+
'invalid_files/conditioned-attic-with-one-floor-above-grade.osw' => 'base.osw',
|
420
|
+
'invalid_files/zero-number-of-bedrooms.osw' => 'base.osw',
|
421
|
+
'invalid_files/single-family-detached-with-shared-system.osw' => 'base.osw'
|
264
422
|
}
|
265
423
|
|
266
424
|
puts "Generating #{osws_files.size} OSW files..."
|
@@ -359,6 +517,7 @@ def get_values(osw_file, step)
|
|
359
517
|
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeBasementConditioned)
|
360
518
|
step.setArgument('geometry_foundation_height', 8.0)
|
361
519
|
step.setArgument('geometry_foundation_height_above_grade', 1.0)
|
520
|
+
step.setArgument('geometry_rim_joist_height', 9.25)
|
362
521
|
step.setArgument('geometry_roof_type', 'gable')
|
363
522
|
step.setArgument('geometry_roof_pitch', '6:12')
|
364
523
|
step.setArgument('geometry_attic_type', HPXML::AtticTypeUnvented)
|
@@ -366,11 +525,13 @@ def get_values(osw_file, step)
|
|
366
525
|
step.setArgument('geometry_num_bedrooms', 3)
|
367
526
|
step.setArgument('geometry_num_bathrooms', '2')
|
368
527
|
step.setArgument('geometry_num_occupants', '3')
|
528
|
+
step.setArgument('geometry_has_flue_or_chimney', Constants.Auto)
|
369
529
|
step.setArgument('floor_assembly_r', 0)
|
370
530
|
step.setArgument('foundation_wall_insulation_r', 8.9)
|
371
531
|
step.setArgument('foundation_wall_insulation_distance_to_top', 0.0)
|
372
|
-
step.setArgument('foundation_wall_insulation_distance_to_bottom',
|
532
|
+
step.setArgument('foundation_wall_insulation_distance_to_bottom', Constants.Auto)
|
373
533
|
step.setArgument('foundation_wall_thickness', '8.0')
|
534
|
+
step.setArgument('rim_joist_assembly_r', 23.0)
|
374
535
|
step.setArgument('slab_perimeter_insulation_r', 0)
|
375
536
|
step.setArgument('slab_perimeter_depth', 0)
|
376
537
|
step.setArgument('slab_under_insulation_r', 0)
|
@@ -380,11 +541,9 @@ def get_values(osw_file, step)
|
|
380
541
|
step.setArgument('slab_carpet_r', '0.0')
|
381
542
|
step.setArgument('ceiling_assembly_r', 39.3)
|
382
543
|
step.setArgument('roof_material_type', HPXML::RoofTypeAsphaltShingles)
|
383
|
-
step.setArgument('roof_color',
|
544
|
+
step.setArgument('roof_color', HPXML::ColorMedium)
|
384
545
|
step.setArgument('roof_assembly_r', 2.3)
|
385
|
-
step.setArgument('
|
386
|
-
step.setArgument('roof_emittance', '0.92')
|
387
|
-
step.setArgument('roof_radiant_barrier', 'false')
|
546
|
+
step.setArgument('roof_radiant_barrier', false)
|
388
547
|
step.setArgument('roof_radiant_barrier_grade', '1')
|
389
548
|
step.setArgument('neighbor_front_distance', 0)
|
390
549
|
step.setArgument('neighbor_back_distance', 0)
|
@@ -396,10 +555,8 @@ def get_values(osw_file, step)
|
|
396
555
|
step.setArgument('neighbor_right_height', Constants.Auto)
|
397
556
|
step.setArgument('wall_type', HPXML::WallTypeWoodStud)
|
398
557
|
step.setArgument('wall_siding_type', HPXML::SidingTypeWood)
|
399
|
-
step.setArgument('wall_color',
|
558
|
+
step.setArgument('wall_color', HPXML::ColorMedium)
|
400
559
|
step.setArgument('wall_assembly_r', 23)
|
401
|
-
step.setArgument('wall_solar_absorptance', Constants.Auto)
|
402
|
-
step.setArgument('wall_emittance', '0.92')
|
403
560
|
step.setArgument('window_front_wwr', 0)
|
404
561
|
step.setArgument('window_back_wwr', 0)
|
405
562
|
step.setArgument('window_left_wwr', 0)
|
@@ -433,40 +590,39 @@ def get_values(osw_file, step)
|
|
433
590
|
step.setArgument('air_leakage_units', HPXML::UnitsACH)
|
434
591
|
step.setArgument('air_leakage_house_pressure', 50)
|
435
592
|
step.setArgument('air_leakage_value', 3)
|
436
|
-
step.setArgument('
|
593
|
+
step.setArgument('air_leakage_shielding_of_home', Constants.Auto)
|
437
594
|
step.setArgument('heating_system_type', HPXML::HVACTypeFurnace)
|
438
595
|
step.setArgument('heating_system_fuel', HPXML::FuelTypeNaturalGas)
|
439
596
|
step.setArgument('heating_system_heating_efficiency', 0.92)
|
440
|
-
step.setArgument('heating_system_heating_capacity', '
|
597
|
+
step.setArgument('heating_system_heating_capacity', '36000.0')
|
441
598
|
step.setArgument('heating_system_fraction_heat_load_served', 1)
|
442
|
-
step.setArgument('heating_system_has_flue_or_chimney', false)
|
443
599
|
step.setArgument('cooling_system_type', HPXML::HVACTypeCentralAirConditioner)
|
444
|
-
step.setArgument('
|
445
|
-
step.setArgument('
|
600
|
+
step.setArgument('cooling_system_cooling_efficiency_type', HPXML::UnitsSEER)
|
601
|
+
step.setArgument('cooling_system_cooling_efficiency', 13.0)
|
446
602
|
step.setArgument('cooling_system_cooling_compressor_type', HPXML::HVACCompressorTypeSingleStage)
|
447
603
|
step.setArgument('cooling_system_cooling_sensible_heat_fraction', 0.73)
|
448
|
-
step.setArgument('cooling_system_cooling_capacity', '
|
604
|
+
step.setArgument('cooling_system_cooling_capacity', '24000.0')
|
449
605
|
step.setArgument('cooling_system_fraction_cool_load_served', 1)
|
450
606
|
step.setArgument('cooling_system_is_ducted', false)
|
451
607
|
step.setArgument('heat_pump_type', 'none')
|
452
|
-
step.setArgument('
|
453
|
-
step.setArgument('
|
454
|
-
step.setArgument('
|
455
|
-
step.setArgument('
|
608
|
+
step.setArgument('heat_pump_heating_efficiency_type', HPXML::UnitsHSPF)
|
609
|
+
step.setArgument('heat_pump_heating_efficiency', 7.7)
|
610
|
+
step.setArgument('heat_pump_cooling_efficiency_type', HPXML::UnitsSEER)
|
611
|
+
step.setArgument('heat_pump_cooling_efficiency', 13.0)
|
456
612
|
step.setArgument('heat_pump_cooling_compressor_type', HPXML::HVACCompressorTypeSingleStage)
|
457
613
|
step.setArgument('heat_pump_cooling_sensible_heat_fraction', 0.73)
|
458
|
-
step.setArgument('heat_pump_heating_capacity', '
|
459
|
-
step.setArgument('
|
460
|
-
step.setArgument('heat_pump_cooling_capacity', '
|
614
|
+
step.setArgument('heat_pump_heating_capacity', '36000.0')
|
615
|
+
step.setArgument('heat_pump_heating_capacity_17_f', Constants.Auto)
|
616
|
+
step.setArgument('heat_pump_cooling_capacity', '36000.0')
|
461
617
|
step.setArgument('heat_pump_fraction_heat_load_served', 1)
|
462
618
|
step.setArgument('heat_pump_fraction_cool_load_served', 1)
|
463
619
|
step.setArgument('heat_pump_backup_fuel', 'none')
|
464
620
|
step.setArgument('heat_pump_backup_heating_efficiency', 1)
|
465
|
-
step.setArgument('heat_pump_backup_heating_capacity', '
|
466
|
-
step.setArgument('
|
467
|
-
step.setArgument('
|
468
|
-
step.setArgument('
|
469
|
-
step.setArgument('
|
621
|
+
step.setArgument('heat_pump_backup_heating_capacity', '36000.0')
|
622
|
+
step.setArgument('setpoint_heating_weekday', '68')
|
623
|
+
step.setArgument('setpoint_heating_weekend', '68')
|
624
|
+
step.setArgument('setpoint_cooling_weekday', '78')
|
625
|
+
step.setArgument('setpoint_cooling_weekend', '78')
|
470
626
|
step.setArgument('ducts_supply_leakage_units', HPXML::UnitsCFM25)
|
471
627
|
step.setArgument('ducts_return_leakage_units', HPXML::UnitsCFM25)
|
472
628
|
step.setArgument('ducts_supply_leakage_value', 75.0)
|
@@ -477,32 +633,29 @@ def get_values(osw_file, step)
|
|
477
633
|
step.setArgument('ducts_return_location', HPXML::LocationAtticUnvented)
|
478
634
|
step.setArgument('ducts_supply_surface_area', '150.0')
|
479
635
|
step.setArgument('ducts_return_surface_area', '50.0')
|
480
|
-
step.setArgument('ducts_number_of_return_registers',
|
636
|
+
step.setArgument('ducts_number_of_return_registers', '2')
|
481
637
|
step.setArgument('heating_system_type_2', 'none')
|
482
638
|
step.setArgument('heating_system_fuel_2', HPXML::FuelTypeElectricity)
|
483
639
|
step.setArgument('heating_system_heating_efficiency_2', 1.0)
|
484
640
|
step.setArgument('heating_system_heating_capacity_2', Constants.Auto)
|
485
641
|
step.setArgument('heating_system_fraction_heat_load_served_2', 0.25)
|
486
|
-
step.setArgument('heating_system_has_flue_or_chimney_2', false)
|
487
642
|
step.setArgument('mech_vent_fan_type', 'none')
|
488
643
|
step.setArgument('mech_vent_flow_rate', 110)
|
489
644
|
step.setArgument('mech_vent_hours_in_operation', 24)
|
490
|
-
step.setArgument('
|
645
|
+
step.setArgument('mech_vent_recovery_efficiency_type', 'Unadjusted')
|
491
646
|
step.setArgument('mech_vent_total_recovery_efficiency', 0.48)
|
492
|
-
step.setArgument('mech_vent_sensible_recovery_efficiency_type', 'Unadjusted')
|
493
647
|
step.setArgument('mech_vent_sensible_recovery_efficiency', 0.72)
|
494
648
|
step.setArgument('mech_vent_fan_power', 30)
|
495
649
|
step.setArgument('mech_vent_num_units_served', 1)
|
496
650
|
step.setArgument('mech_vent_fan_type_2', 'none')
|
497
651
|
step.setArgument('mech_vent_flow_rate_2', 110)
|
498
652
|
step.setArgument('mech_vent_hours_in_operation_2', 24)
|
499
|
-
step.setArgument('
|
653
|
+
step.setArgument('mech_vent_recovery_efficiency_type_2', 'Unadjusted')
|
500
654
|
step.setArgument('mech_vent_total_recovery_efficiency_2', 0.48)
|
501
|
-
step.setArgument('mech_vent_sensible_recovery_efficiency_type_2', 'Unadjusted')
|
502
655
|
step.setArgument('mech_vent_sensible_recovery_efficiency_2', 0.72)
|
503
656
|
step.setArgument('mech_vent_fan_power_2', 30)
|
504
|
-
step.setArgument('
|
505
|
-
step.setArgument('
|
657
|
+
step.setArgument('kitchen_fans_quantity', '0')
|
658
|
+
step.setArgument('bathroom_fans_quantity', '0')
|
506
659
|
step.setArgument('whole_house_fan_present', false)
|
507
660
|
step.setArgument('whole_house_fan_flow_rate', 4500)
|
508
661
|
step.setArgument('whole_house_fan_power', 300)
|
@@ -510,14 +663,12 @@ def get_values(osw_file, step)
|
|
510
663
|
step.setArgument('water_heater_fuel_type', HPXML::FuelTypeElectricity)
|
511
664
|
step.setArgument('water_heater_location', HPXML::LocationLivingSpace)
|
512
665
|
step.setArgument('water_heater_tank_volume', '40')
|
513
|
-
step.setArgument('water_heater_heating_capacity', '18767')
|
514
666
|
step.setArgument('water_heater_efficiency_type', 'EnergyFactor')
|
515
667
|
step.setArgument('water_heater_efficiency', 0.95)
|
516
668
|
step.setArgument('water_heater_recovery_efficiency', '0.76')
|
517
669
|
step.setArgument('water_heater_standby_loss', 0)
|
518
670
|
step.setArgument('water_heater_jacket_rvalue', 0)
|
519
671
|
step.setArgument('water_heater_setpoint_temperature', '125')
|
520
|
-
step.setArgument('water_heater_has_flue_or_chimney', false)
|
521
672
|
step.setArgument('water_heater_num_units_served', 1)
|
522
673
|
step.setArgument('dhw_distribution_system_type', HPXML::DHWDistTypeStandard)
|
523
674
|
step.setArgument('dhw_distribution_standard_piping_length', '50')
|
@@ -578,19 +729,15 @@ def get_values(osw_file, step)
|
|
578
729
|
step.setArgument('holiday_lighting_period_begin_day_of_month', Constants.Auto)
|
579
730
|
step.setArgument('holiday_lighting_period_end_month', Constants.Auto)
|
580
731
|
step.setArgument('holiday_lighting_period_end_day_of_month', Constants.Auto)
|
581
|
-
step.setArgument('
|
582
|
-
step.setArgument('dehumidifier_type', HPXML::DehumidifierTypePortable)
|
732
|
+
step.setArgument('dehumidifier_type', 'none')
|
583
733
|
step.setArgument('dehumidifier_efficiency_type', 'EnergyFactor')
|
584
|
-
step.setArgument('
|
585
|
-
step.setArgument('dehumidifier_efficiency_ief', 1.5)
|
734
|
+
step.setArgument('dehumidifier_efficiency', 1.8)
|
586
735
|
step.setArgument('dehumidifier_capacity', 40)
|
587
736
|
step.setArgument('dehumidifier_rh_setpoint', 0.5)
|
588
737
|
step.setArgument('dehumidifier_fraction_dehumidification_load_served', 1)
|
589
|
-
step.setArgument('clothes_washer_present', true)
|
590
738
|
step.setArgument('clothes_washer_location', HPXML::LocationLivingSpace)
|
591
739
|
step.setArgument('clothes_washer_efficiency_type', 'IntegratedModifiedEnergyFactor')
|
592
|
-
step.setArgument('
|
593
|
-
step.setArgument('clothes_washer_efficiency_imef', '1.21')
|
740
|
+
step.setArgument('clothes_washer_efficiency', '1.21')
|
594
741
|
step.setArgument('clothes_washer_rated_annual_kwh', '380.0')
|
595
742
|
step.setArgument('clothes_washer_label_electric_rate', '0.12')
|
596
743
|
step.setArgument('clothes_washer_label_gas_rate', '1.09')
|
@@ -598,39 +745,30 @@ def get_values(osw_file, step)
|
|
598
745
|
step.setArgument('clothes_washer_label_usage', '6.0')
|
599
746
|
step.setArgument('clothes_washer_capacity', '3.2')
|
600
747
|
step.setArgument('clothes_washer_usage_multiplier', 1.0)
|
601
|
-
step.setArgument('clothes_dryer_present', true)
|
602
748
|
step.setArgument('clothes_dryer_location', HPXML::LocationLivingSpace)
|
603
749
|
step.setArgument('clothes_dryer_fuel_type', HPXML::FuelTypeElectricity)
|
604
750
|
step.setArgument('clothes_dryer_efficiency_type', 'CombinedEnergyFactor')
|
605
|
-
step.setArgument('
|
606
|
-
step.setArgument('clothes_dryer_efficiency_cef', '3.73')
|
607
|
-
step.setArgument('clothes_dryer_control_type', HPXML::ClothesDryerControlTypeTimer)
|
751
|
+
step.setArgument('clothes_dryer_efficiency', '3.73')
|
608
752
|
step.setArgument('clothes_dryer_vented_flow_rate', '150.0')
|
609
753
|
step.setArgument('clothes_dryer_usage_multiplier', 1.0)
|
610
|
-
step.setArgument('dishwasher_present', true)
|
611
754
|
step.setArgument('dishwasher_location', HPXML::LocationLivingSpace)
|
612
755
|
step.setArgument('dishwasher_efficiency_type', 'RatedAnnualkWh')
|
613
|
-
step.setArgument('
|
614
|
-
step.setArgument('dishwasher_efficiency_ef', 0.46)
|
756
|
+
step.setArgument('dishwasher_efficiency', '307')
|
615
757
|
step.setArgument('dishwasher_label_electric_rate', '0.12')
|
616
758
|
step.setArgument('dishwasher_label_gas_rate', '1.09')
|
617
759
|
step.setArgument('dishwasher_label_annual_gas_cost', '22.32')
|
618
760
|
step.setArgument('dishwasher_label_usage', '4.0')
|
619
761
|
step.setArgument('dishwasher_place_setting_capacity', '12')
|
620
762
|
step.setArgument('dishwasher_usage_multiplier', 1.0)
|
621
|
-
step.setArgument('refrigerator_present', true)
|
622
763
|
step.setArgument('refrigerator_location', HPXML::LocationLivingSpace)
|
623
764
|
step.setArgument('refrigerator_rated_annual_kwh', '650.0')
|
624
765
|
step.setArgument('refrigerator_usage_multiplier', 1.0)
|
625
|
-
step.setArgument('
|
626
|
-
step.setArgument('extra_refrigerator_location', Constants.Auto)
|
766
|
+
step.setArgument('extra_refrigerator_location', 'none')
|
627
767
|
step.setArgument('extra_refrigerator_rated_annual_kwh', Constants.Auto)
|
628
768
|
step.setArgument('extra_refrigerator_usage_multiplier', 1.0)
|
629
|
-
step.setArgument('
|
630
|
-
step.setArgument('freezer_location', Constants.Auto)
|
769
|
+
step.setArgument('freezer_location', 'none')
|
631
770
|
step.setArgument('freezer_rated_annual_kwh', Constants.Auto)
|
632
771
|
step.setArgument('freezer_usage_multiplier', 1.0)
|
633
|
-
step.setArgument('cooking_range_oven_present', true)
|
634
772
|
step.setArgument('cooking_range_oven_location', HPXML::LocationLivingSpace)
|
635
773
|
step.setArgument('cooking_range_oven_fuel_type', HPXML::FuelTypeElectricity)
|
636
774
|
step.setArgument('cooking_range_oven_is_induction', false)
|
@@ -642,20 +780,16 @@ def get_values(osw_file, step)
|
|
642
780
|
step.setArgument('ceiling_fan_cooling_setpoint_temp_offset', 0)
|
643
781
|
step.setArgument('plug_loads_television_annual_kwh', '620.0')
|
644
782
|
step.setArgument('plug_loads_television_usage_multiplier', 1.0)
|
645
|
-
step.setArgument('plug_loads_television_usage_multiplier_2', 1.0)
|
646
783
|
step.setArgument('plug_loads_other_annual_kwh', '2457.0')
|
647
784
|
step.setArgument('plug_loads_other_frac_sensible', '0.855')
|
648
785
|
step.setArgument('plug_loads_other_frac_latent', '0.045')
|
649
786
|
step.setArgument('plug_loads_other_usage_multiplier', 1.0)
|
650
|
-
step.setArgument('plug_loads_other_usage_multiplier_2', 1.0)
|
651
787
|
step.setArgument('plug_loads_well_pump_present', false)
|
652
788
|
step.setArgument('plug_loads_well_pump_annual_kwh', Constants.Auto)
|
653
789
|
step.setArgument('plug_loads_well_pump_usage_multiplier', 0.0)
|
654
|
-
step.setArgument('plug_loads_well_pump_usage_multiplier_2', 0.0)
|
655
790
|
step.setArgument('plug_loads_vehicle_present', false)
|
656
791
|
step.setArgument('plug_loads_vehicle_annual_kwh', Constants.Auto)
|
657
792
|
step.setArgument('plug_loads_vehicle_usage_multiplier', 0.0)
|
658
|
-
step.setArgument('plug_loads_vehicle_usage_multiplier_2', 0.0)
|
659
793
|
step.setArgument('fuel_loads_grill_present', false)
|
660
794
|
step.setArgument('fuel_loads_grill_fuel_type', HPXML::FuelTypeNaturalGas)
|
661
795
|
step.setArgument('fuel_loads_grill_annual_therm', Constants.Auto)
|
@@ -684,121 +818,57 @@ def get_values(osw_file, step)
|
|
684
818
|
step.setArgument('hot_tub_heater_annual_kwh', Constants.Auto)
|
685
819
|
step.setArgument('hot_tub_heater_annual_therm', Constants.Auto)
|
686
820
|
step.setArgument('hot_tub_heater_usage_multiplier', 1.0)
|
687
|
-
|
688
|
-
|
689
|
-
|
690
|
-
|
691
|
-
step.setArgument('geometry_building_num_units', 3)
|
692
|
-
step.setArgument('geometry_horizontal_location', 'Left')
|
693
|
-
step.setArgument('window_front_wwr', 0.18)
|
694
|
-
step.setArgument('window_back_wwr', 0.18)
|
695
|
-
step.setArgument('window_left_wwr', 0.18)
|
696
|
-
step.setArgument('window_right_wwr', 0.18)
|
697
|
-
step.setArgument('window_area_front', 0)
|
698
|
-
step.setArgument('window_area_back', 0)
|
699
|
-
step.setArgument('window_area_left', 0)
|
700
|
-
step.setArgument('window_area_right', 0)
|
701
|
-
step.setArgument('plug_loads_other_annual_kwh', '1638.0')
|
702
|
-
elsif ['base-bldgtype-multifamily.osw'].include? osw_file
|
703
|
-
step.setArgument('geometry_unit_type', HPXML::ResidentialTypeApartment)
|
704
|
-
step.setArgument('geometry_cfa', 900.0)
|
705
|
-
step.setArgument('geometry_corridor_position', 'None')
|
706
|
-
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeBasementUnconditioned)
|
707
|
-
step.setArgument('geometry_level', 'Middle')
|
708
|
-
step.setArgument('geometry_horizontal_location', 'Left')
|
709
|
-
step.setArgument('geometry_building_num_units', 50)
|
710
|
-
step.setArgument('geometry_building_num_bedrooms', 50 * 3)
|
711
|
-
step.setArgument('geometry_num_floors_above_grade', 5)
|
712
|
-
step.setArgument('window_front_wwr', 0.18)
|
713
|
-
step.setArgument('window_back_wwr', 0.18)
|
714
|
-
step.setArgument('window_left_wwr', 0.18)
|
715
|
-
step.setArgument('window_right_wwr', 0.18)
|
716
|
-
step.setArgument('window_area_front', 0)
|
717
|
-
step.setArgument('window_area_back', 0)
|
718
|
-
step.setArgument('window_area_left', 0)
|
719
|
-
step.setArgument('window_area_right', 0)
|
720
|
-
step.setArgument('ducts_supply_leakage_value', 0.0)
|
721
|
-
step.setArgument('ducts_return_leakage_value', 0.0)
|
722
|
-
step.setArgument('ducts_supply_location', HPXML::LocationLivingSpace)
|
723
|
-
step.setArgument('ducts_return_location', HPXML::LocationLivingSpace)
|
724
|
-
step.setArgument('ducts_supply_insulation_r', 0.0)
|
725
|
-
step.setArgument('ducts_return_insulation_r', 0.0)
|
726
|
-
step.setArgument('door_area', 20.0)
|
727
|
-
step.setArgument('plug_loads_other_annual_kwh', '819.0')
|
728
|
-
elsif ['base-appliances-coal.osw'].include? osw_file
|
821
|
+
end
|
822
|
+
|
823
|
+
# Appliances
|
824
|
+
if ['base-appliances-coal.osw'].include? osw_file
|
729
825
|
step.setArgument('clothes_dryer_fuel_type', HPXML::FuelTypeCoal)
|
730
|
-
step.setArgument('
|
731
|
-
step.setArgument('clothes_dryer_control_type', HPXML::ClothesDryerControlTypeMoisture)
|
826
|
+
step.setArgument('clothes_dryer_efficiency', '3.3')
|
732
827
|
step.setArgument('clothes_dryer_vented_flow_rate', Constants.Auto)
|
733
828
|
step.setArgument('cooking_range_oven_fuel_type', HPXML::FuelTypeCoal)
|
734
829
|
elsif ['base-appliances-dehumidifier.osw'].include? osw_file
|
735
|
-
step.setArgument('
|
736
|
-
|
737
|
-
step.setArgument('dehumidifier_fraction_dehumidification_load_served', 0.5)
|
830
|
+
step.setArgument('heating_system_heating_capacity', '24000.0')
|
831
|
+
step.setArgument('dehumidifier_type', HPXML::DehumidifierTypePortable)
|
738
832
|
elsif ['base-appliances-dehumidifier-ief-portable.osw'].include? osw_file
|
739
833
|
step.setArgument('dehumidifier_efficiency_type', 'IntegratedEnergyFactor')
|
834
|
+
step.setArgument('dehumidifier_efficiency', '1.5')
|
740
835
|
elsif ['base-appliances-dehumidifier-ief-whole-home.osw'].include? osw_file
|
741
836
|
step.setArgument('dehumidifier_type', HPXML::DehumidifierTypeWholeHome)
|
742
837
|
elsif ['base-appliances-gas.osw'].include? osw_file
|
743
838
|
step.setArgument('clothes_dryer_fuel_type', HPXML::FuelTypeNaturalGas)
|
744
|
-
step.setArgument('
|
745
|
-
step.setArgument('clothes_dryer_control_type', HPXML::ClothesDryerControlTypeMoisture)
|
839
|
+
step.setArgument('clothes_dryer_efficiency', '3.3')
|
746
840
|
step.setArgument('clothes_dryer_vented_flow_rate', Constants.Auto)
|
747
841
|
step.setArgument('cooking_range_oven_fuel_type', HPXML::FuelTypeNaturalGas)
|
748
842
|
elsif ['base-appliances-modified.osw'].include? osw_file
|
749
843
|
step.setArgument('clothes_washer_efficiency_type', 'ModifiedEnergyFactor')
|
750
|
-
step.setArgument('
|
844
|
+
step.setArgument('clothes_washer_efficiency', '1.65')
|
751
845
|
step.setArgument('clothes_dryer_efficiency_type', 'EnergyFactor')
|
752
|
-
step.setArgument('
|
753
|
-
step.setArgument('clothes_dryer_control_type', HPXML::ClothesDryerControlTypeMoisture)
|
846
|
+
step.setArgument('clothes_dryer_efficiency', '4.29')
|
754
847
|
step.setArgument('clothes_dryer_vented_flow_rate', '0.0')
|
755
848
|
step.setArgument('dishwasher_efficiency_type', 'EnergyFactor')
|
756
|
-
step.setArgument('
|
849
|
+
step.setArgument('dishwasher_efficiency', 0.7)
|
757
850
|
step.setArgument('dishwasher_place_setting_capacity', '6')
|
758
851
|
elsif ['base-appliances-none.osw'].include? osw_file
|
759
|
-
step.setArgument('
|
760
|
-
step.setArgument('
|
761
|
-
step.setArgument('
|
762
|
-
step.setArgument('
|
763
|
-
step.setArgument('
|
852
|
+
step.setArgument('clothes_washer_location', 'none')
|
853
|
+
step.setArgument('clothes_dryer_location', 'none')
|
854
|
+
step.setArgument('dishwasher_location', 'none')
|
855
|
+
step.setArgument('refrigerator_location', 'none')
|
856
|
+
step.setArgument('cooking_range_oven_location', 'none')
|
764
857
|
elsif ['base-appliances-oil.osw'].include? osw_file
|
765
858
|
step.setArgument('clothes_dryer_fuel_type', HPXML::FuelTypeOil)
|
766
|
-
step.setArgument('
|
767
|
-
step.setArgument('clothes_dryer_control_type', HPXML::ClothesDryerControlTypeMoisture)
|
859
|
+
step.setArgument('clothes_dryer_efficiency', '3.3')
|
768
860
|
step.setArgument('clothes_dryer_vented_flow_rate', Constants.Auto)
|
769
861
|
step.setArgument('cooking_range_oven_fuel_type', HPXML::FuelTypeOil)
|
770
862
|
elsif ['base-appliances-propane.osw'].include? osw_file
|
771
863
|
step.setArgument('clothes_dryer_fuel_type', HPXML::FuelTypePropane)
|
772
|
-
step.setArgument('
|
773
|
-
step.setArgument('clothes_dryer_control_type', HPXML::ClothesDryerControlTypeMoisture)
|
864
|
+
step.setArgument('clothes_dryer_efficiency', '3.3')
|
774
865
|
step.setArgument('clothes_dryer_vented_flow_rate', Constants.Auto)
|
775
866
|
step.setArgument('cooking_range_oven_fuel_type', HPXML::FuelTypePropane)
|
776
867
|
elsif ['base-appliances-wood.osw'].include? osw_file
|
777
868
|
step.setArgument('clothes_dryer_fuel_type', HPXML::FuelTypeWoodCord)
|
778
|
-
step.setArgument('
|
779
|
-
step.setArgument('clothes_dryer_control_type', HPXML::ClothesDryerControlTypeMoisture)
|
869
|
+
step.setArgument('clothes_dryer_efficiency', '3.3')
|
780
870
|
step.setArgument('clothes_dryer_vented_flow_rate', Constants.Auto)
|
781
871
|
step.setArgument('cooking_range_oven_fuel_type', HPXML::FuelTypeWoodCord)
|
782
|
-
elsif ['base-atticroof-cathedral.osw'].include? osw_file
|
783
|
-
step.setArgument('geometry_attic_type', HPXML::AtticTypeConditioned)
|
784
|
-
step.setArgument('roof_assembly_r', 25.8)
|
785
|
-
step.setArgument('ducts_supply_location', HPXML::LocationLivingSpace)
|
786
|
-
step.setArgument('ducts_return_location', HPXML::LocationLivingSpace)
|
787
|
-
step.setArgument('ducts_supply_leakage_value', 0.0)
|
788
|
-
step.setArgument('ducts_return_leakage_value', 0.0)
|
789
|
-
elsif ['base-atticroof-conditioned.osw'].include? osw_file
|
790
|
-
step.setArgument('geometry_cfa', 3600.0)
|
791
|
-
step.setArgument('geometry_num_floors_above_grade', 2)
|
792
|
-
step.setArgument('geometry_attic_type', HPXML::AtticTypeConditioned)
|
793
|
-
step.setArgument('roof_assembly_r', 25.8)
|
794
|
-
step.setArgument('ducts_supply_location', HPXML::LocationLivingSpace)
|
795
|
-
step.setArgument('ducts_return_location', HPXML::LocationLivingSpace)
|
796
|
-
step.setArgument('ducts_supply_leakage_value', 0.0)
|
797
|
-
step.setArgument('ducts_return_leakage_value', 0.0)
|
798
|
-
step.setArgument('water_heater_location', HPXML::LocationBasementConditioned)
|
799
|
-
step.setArgument('clothes_washer_location', HPXML::LocationBasementConditioned)
|
800
|
-
step.setArgument('clothes_dryer_location', HPXML::LocationBasementConditioned)
|
801
|
-
step.setArgument('refrigerator_location', HPXML::LocationBasementConditioned)
|
802
872
|
elsif ['base-atticroof-flat.osw'].include? osw_file
|
803
873
|
step.setArgument('geometry_roof_type', 'flat')
|
804
874
|
step.setArgument('roof_assembly_r', 25.8)
|
@@ -807,7 +877,7 @@ def get_values(osw_file, step)
|
|
807
877
|
step.setArgument('ducts_supply_location', HPXML::LocationBasementConditioned)
|
808
878
|
step.setArgument('ducts_return_location', HPXML::LocationBasementConditioned)
|
809
879
|
elsif ['base-atticroof-radiant-barrier.osw'].include? osw_file
|
810
|
-
step.setArgument('roof_radiant_barrier',
|
880
|
+
step.setArgument('roof_radiant_barrier', true)
|
811
881
|
step.setArgument('roof_radiant_barrier_grade', '2')
|
812
882
|
elsif ['base-atticroof-unvented-insulated-roof.osw'].include? osw_file
|
813
883
|
step.setArgument('ceiling_assembly_r', 2.1)
|
@@ -817,7 +887,93 @@ def get_values(osw_file, step)
|
|
817
887
|
step.setArgument('water_heater_location', HPXML::LocationAtticVented)
|
818
888
|
step.setArgument('ducts_supply_location', HPXML::LocationAtticVented)
|
819
889
|
step.setArgument('ducts_return_location', HPXML::LocationAtticVented)
|
820
|
-
elsif ['base-
|
890
|
+
elsif ['base-bldgtype-single-family-attached.osw'].include? osw_file
|
891
|
+
step.setArgument('geometry_unit_type', HPXML::ResidentialTypeSFA)
|
892
|
+
step.setArgument('geometry_cfa', 1800.0)
|
893
|
+
step.setArgument('geometry_corridor_position', 'None')
|
894
|
+
step.setArgument('geometry_building_num_units', 3)
|
895
|
+
step.setArgument('geometry_horizontal_location', 'Left')
|
896
|
+
step.setArgument('window_front_wwr', 0.18)
|
897
|
+
step.setArgument('window_back_wwr', 0.18)
|
898
|
+
step.setArgument('window_left_wwr', 0.18)
|
899
|
+
step.setArgument('window_right_wwr', 0.18)
|
900
|
+
step.setArgument('window_area_front', 0)
|
901
|
+
step.setArgument('window_area_back', 0)
|
902
|
+
step.setArgument('window_area_left', 0)
|
903
|
+
step.setArgument('window_area_right', 0)
|
904
|
+
step.setArgument('heating_system_heating_capacity', '24000.0')
|
905
|
+
step.setArgument('plug_loads_other_annual_kwh', '1638.0')
|
906
|
+
elsif ['base-bldgtype-multifamily.osw'].include? osw_file
|
907
|
+
step.setArgument('geometry_unit_type', HPXML::ResidentialTypeApartment)
|
908
|
+
step.setArgument('geometry_cfa', 900.0)
|
909
|
+
step.setArgument('geometry_corridor_position', 'None')
|
910
|
+
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeBasementUnconditioned)
|
911
|
+
step.setArgument('geometry_level', 'Middle')
|
912
|
+
step.setArgument('geometry_horizontal_location', 'Left')
|
913
|
+
step.setArgument('geometry_building_num_units', 6)
|
914
|
+
step.setArgument('geometry_building_num_bedrooms', 6 * 3)
|
915
|
+
step.setArgument('geometry_num_floors_above_grade', 3)
|
916
|
+
step.setArgument('window_front_wwr', 0.18)
|
917
|
+
step.setArgument('window_back_wwr', 0.18)
|
918
|
+
step.setArgument('window_left_wwr', 0.18)
|
919
|
+
step.setArgument('window_right_wwr', 0.18)
|
920
|
+
step.setArgument('window_area_front', 0)
|
921
|
+
step.setArgument('window_area_back', 0)
|
922
|
+
step.setArgument('window_area_left', 0)
|
923
|
+
step.setArgument('window_area_right', 0)
|
924
|
+
step.setArgument('heating_system_heating_capacity', '12000.0')
|
925
|
+
step.setArgument('cooling_system_cooling_capacity', '12000.0')
|
926
|
+
step.setArgument('ducts_supply_leakage_value', 0.0)
|
927
|
+
step.setArgument('ducts_return_leakage_value', 0.0)
|
928
|
+
step.setArgument('ducts_supply_location', HPXML::LocationLivingSpace)
|
929
|
+
step.setArgument('ducts_return_location', HPXML::LocationLivingSpace)
|
930
|
+
step.setArgument('ducts_supply_insulation_r', 0.0)
|
931
|
+
step.setArgument('ducts_return_insulation_r', 0.0)
|
932
|
+
step.setArgument('ducts_number_of_return_registers', '1')
|
933
|
+
step.setArgument('door_area', 20.0)
|
934
|
+
step.setArgument('plug_loads_other_annual_kwh', '819.0')
|
935
|
+
elsif ['base-bldgtype-multifamily-shared-boiler-only-baseboard.osw'].include? osw_file
|
936
|
+
step.setArgument('heating_system_type', "Shared #{HPXML::HVACTypeBoiler} w/ Baseboard")
|
937
|
+
step.setArgument('cooling_system_type', 'none')
|
938
|
+
elsif ['base-bldgtype-multifamily-shared-boiler-only-fan-coil.osw'].include? osw_file
|
939
|
+
step.setArgument('heating_system_type', "Shared #{HPXML::HVACTypeBoiler} w/ Ductless Fan Coil")
|
940
|
+
step.setArgument('cooling_system_type', 'none')
|
941
|
+
elsif ['base-bldgtype-multifamily-shared-mechvent.osw'].include? osw_file
|
942
|
+
step.setArgument('mech_vent_fan_type', HPXML::MechVentTypeSupply)
|
943
|
+
step.setArgument('mech_vent_flow_rate', 800)
|
944
|
+
step.setArgument('mech_vent_fan_power', 240)
|
945
|
+
step.setArgument('mech_vent_num_units_served', 10)
|
946
|
+
step.setArgument('shared_mech_vent_frac_recirculation', 0.5)
|
947
|
+
step.setArgument('mech_vent_fan_type_2', HPXML::MechVentTypeExhaust)
|
948
|
+
step.setArgument('mech_vent_flow_rate_2', 72)
|
949
|
+
step.setArgument('mech_vent_fan_power_2', 26)
|
950
|
+
elsif ['base-bldgtype-multifamily-shared-mechvent-preconditioning.osw'].include? osw_file
|
951
|
+
step.setArgument('shared_mech_vent_preheating_fuel', HPXML::FuelTypeNaturalGas)
|
952
|
+
step.setArgument('shared_mech_vent_preheating_efficiency', 0.92)
|
953
|
+
step.setArgument('shared_mech_vent_preheating_fraction_heat_load_served', 0.7)
|
954
|
+
step.setArgument('shared_mech_vent_precooling_fuel', HPXML::FuelTypeElectricity)
|
955
|
+
step.setArgument('shared_mech_vent_precooling_efficiency', 4.0)
|
956
|
+
step.setArgument('shared_mech_vent_precooling_fraction_cool_load_served', 0.8)
|
957
|
+
elsif ['base-bldgtype-multifamily-shared-pv.osw'].include? osw_file
|
958
|
+
step.setArgument('pv_system_num_units_served_1', 6)
|
959
|
+
step.setArgument('pv_system_location_1', HPXML::LocationGround)
|
960
|
+
step.setArgument('pv_system_module_type_1', HPXML::PVModuleTypeStandard)
|
961
|
+
step.setArgument('pv_system_tracking_1', HPXML::PVTrackingTypeFixed)
|
962
|
+
step.setArgument('pv_system_array_azimuth_1', 225)
|
963
|
+
step.setArgument('pv_system_array_tilt_1', '30')
|
964
|
+
step.setArgument('pv_system_max_power_output_1', 30000)
|
965
|
+
step.setArgument('pv_system_inverter_efficiency_1', 0.96)
|
966
|
+
step.setArgument('pv_system_system_losses_fraction_1', 0.14)
|
967
|
+
elsif ['base-bldgtype-multifamily-shared-water-heater.osw'].include? osw_file
|
968
|
+
step.setArgument('water_heater_fuel_type', HPXML::FuelTypeNaturalGas)
|
969
|
+
step.setArgument('water_heater_num_units_served', 6)
|
970
|
+
step.setArgument('water_heater_tank_volume', '120')
|
971
|
+
step.setArgument('water_heater_efficiency', 0.59)
|
972
|
+
step.setArgument('water_heater_recovery_efficiency', '0.76')
|
973
|
+
end
|
974
|
+
|
975
|
+
# DHW
|
976
|
+
if ['base-dhw-combi-tankless.osw'].include? osw_file
|
821
977
|
step.setArgument('water_heater_type', HPXML::WaterHeaterTypeCombiTankless)
|
822
978
|
step.setArgument('water_heater_tank_volume', Constants.Auto)
|
823
979
|
elsif ['base-dhw-combi-tankless-outside.osw'].include? osw_file
|
@@ -846,7 +1002,7 @@ def get_values(osw_file, step)
|
|
846
1002
|
step.setArgument('water_fixtures_sink_low_flow', true)
|
847
1003
|
elsif ['base-dhw-none.osw'].include? osw_file
|
848
1004
|
step.setArgument('water_heater_type', 'none')
|
849
|
-
step.setArgument('
|
1005
|
+
step.setArgument('dishwasher_location', 'none')
|
850
1006
|
elsif ['base-dhw-recirc-demand.osw'].include? osw_file
|
851
1007
|
step.setArgument('dhw_distribution_system_type', HPXML::DHWDistTypeRecirc)
|
852
1008
|
step.setArgument('dhw_distribution_recirc_control_type', HPXML::DHWRecirControlTypeSensor)
|
@@ -863,13 +1019,6 @@ def get_values(osw_file, step)
|
|
863
1019
|
elsif ['base-dhw-recirc-timer.osw'].include? osw_file
|
864
1020
|
step.setArgument('dhw_distribution_system_type', HPXML::DHWDistTypeRecirc)
|
865
1021
|
step.setArgument('dhw_distribution_recirc_control_type', HPXML::DHWRecirControlTypeTimer)
|
866
|
-
elsif ['base-bldgtype-multifamily-shared-water-heater.osw'].include? osw_file
|
867
|
-
step.setArgument('water_heater_fuel_type', HPXML::FuelTypeNaturalGas)
|
868
|
-
step.setArgument('water_heater_num_units_served', 6)
|
869
|
-
step.setArgument('water_heater_tank_volume', '120')
|
870
|
-
step.setArgument('water_heater_heating_capacity', '40000')
|
871
|
-
step.setArgument('water_heater_efficiency', 0.59)
|
872
|
-
step.setArgument('water_heater_recovery_efficiency', '0.76')
|
873
1022
|
elsif ['base-dhw-solar-direct-evacuated-tube.osw'].include? osw_file
|
874
1023
|
step.setArgument('solar_thermal_system_type', 'hot water')
|
875
1024
|
step.setArgument('solar_thermal_storage_volume', '60')
|
@@ -905,11 +1054,9 @@ def get_values(osw_file, step)
|
|
905
1054
|
elsif ['base-dhw-tank-coal.osw'].include? osw_file
|
906
1055
|
step.setArgument('water_heater_fuel_type', HPXML::FuelTypeCoal)
|
907
1056
|
step.setArgument('water_heater_tank_volume', '50')
|
908
|
-
step.setArgument('water_heater_heating_capacity', '40000')
|
909
1057
|
step.setArgument('water_heater_efficiency', 0.59)
|
910
1058
|
elsif ['base-dhw-tank-elec-uef.osw'].include? osw_file
|
911
1059
|
step.setArgument('water_heater_tank_volume', '30')
|
912
|
-
step.setArgument('water_heater_heating_capacity', '15354')
|
913
1060
|
step.setArgument('water_heater_efficiency_type', 'UniformEnergyFactor')
|
914
1061
|
step.setArgument('water_heater_efficiency', 0.93)
|
915
1062
|
step.setArgument('water_heater_first_hour_rating', 46)
|
@@ -917,11 +1064,9 @@ def get_values(osw_file, step)
|
|
917
1064
|
elsif ['base-dhw-tank-gas.osw'].include? osw_file
|
918
1065
|
step.setArgument('water_heater_fuel_type', HPXML::FuelTypeNaturalGas)
|
919
1066
|
step.setArgument('water_heater_tank_volume', '50')
|
920
|
-
step.setArgument('water_heater_heating_capacity', '40000')
|
921
1067
|
step.setArgument('water_heater_efficiency', 0.59)
|
922
1068
|
elsif ['base-dhw-tank-gas-uef.osw'].include? osw_file
|
923
1069
|
step.setArgument('water_heater_tank_volume', '30')
|
924
|
-
step.setArgument('water_heater_heating_capacity', '30000')
|
925
1070
|
step.setArgument('water_heater_efficiency_type', 'UniformEnergyFactor')
|
926
1071
|
step.setArgument('water_heater_efficiency', 0.59)
|
927
1072
|
step.setArgument('water_heater_first_hour_rating', 56)
|
@@ -930,29 +1075,24 @@ def get_values(osw_file, step)
|
|
930
1075
|
step.setArgument('water_heater_fuel_type', HPXML::FuelTypeNaturalGas)
|
931
1076
|
step.setArgument('water_heater_location', HPXML::LocationOtherExterior)
|
932
1077
|
step.setArgument('water_heater_tank_volume', '50')
|
933
|
-
step.setArgument('water_heater_heating_capacity', '40000')
|
934
1078
|
step.setArgument('water_heater_efficiency', 0.59)
|
935
1079
|
elsif ['base-dhw-tank-heat-pump.osw'].include? osw_file
|
936
1080
|
step.setArgument('water_heater_type', HPXML::WaterHeaterTypeHeatPump)
|
937
1081
|
step.setArgument('water_heater_tank_volume', '80')
|
938
|
-
step.setArgument('water_heater_heating_capacity', Constants.Auto)
|
939
1082
|
step.setArgument('water_heater_efficiency', 2.3)
|
940
1083
|
elsif ['base-dhw-tank-heat-pump-outside.osw'].include? osw_file
|
941
1084
|
step.setArgument('water_heater_type', HPXML::WaterHeaterTypeHeatPump)
|
942
1085
|
step.setArgument('water_heater_location', HPXML::LocationOtherExterior)
|
943
1086
|
step.setArgument('water_heater_tank_volume', '80')
|
944
|
-
step.setArgument('water_heater_heating_capacity', Constants.Auto)
|
945
1087
|
step.setArgument('water_heater_efficiency', 2.3)
|
946
1088
|
elsif ['base-dhw-tank-heat-pump-uef.osw'].include? osw_file
|
947
1089
|
step.setArgument('water_heater_tank_volume', '50')
|
948
|
-
step.setArgument('water_heater_heating_capacity', '18767')
|
949
1090
|
step.setArgument('water_heater_efficiency_type', 'UniformEnergyFactor')
|
950
1091
|
step.setArgument('water_heater_efficiency', 3.75)
|
951
1092
|
step.setArgument('water_heater_first_hour_rating', 60)
|
952
1093
|
elsif ['base-dhw-tank-heat-pump-with-solar.osw'].include? osw_file
|
953
1094
|
step.setArgument('water_heater_type', HPXML::WaterHeaterTypeHeatPump)
|
954
1095
|
step.setArgument('water_heater_tank_volume', '80')
|
955
|
-
step.setArgument('water_heater_heating_capacity', Constants.Auto)
|
956
1096
|
step.setArgument('water_heater_efficiency', 2.3)
|
957
1097
|
step.setArgument('solar_thermal_system_type', 'hot water')
|
958
1098
|
step.setArgument('solar_thermal_collector_loop_type', HPXML::SolarThermalLoopTypeIndirect)
|
@@ -963,7 +1103,6 @@ def get_values(osw_file, step)
|
|
963
1103
|
elsif ['base-dhw-tank-heat-pump-with-solar-fraction.osw'].include? osw_file
|
964
1104
|
step.setArgument('water_heater_type', HPXML::WaterHeaterTypeHeatPump)
|
965
1105
|
step.setArgument('water_heater_tank_volume', '80')
|
966
|
-
step.setArgument('water_heater_heating_capacity', Constants.Auto)
|
967
1106
|
step.setArgument('water_heater_efficiency', 2.3)
|
968
1107
|
step.setArgument('solar_thermal_system_type', 'hot water')
|
969
1108
|
step.setArgument('solar_thermal_solar_fraction', 0.65)
|
@@ -1013,29 +1152,28 @@ def get_values(osw_file, step)
|
|
1013
1152
|
elsif ['base-dhw-tank-oil.osw'].include? osw_file
|
1014
1153
|
step.setArgument('water_heater_fuel_type', HPXML::FuelTypeOil)
|
1015
1154
|
step.setArgument('water_heater_tank_volume', '50')
|
1016
|
-
step.setArgument('water_heater_heating_capacity', '40000')
|
1017
1155
|
step.setArgument('water_heater_efficiency', 0.59)
|
1018
1156
|
elsif ['base-dhw-tank-wood.osw'].include? osw_file
|
1019
1157
|
step.setArgument('water_heater_fuel_type', HPXML::FuelTypeWoodCord)
|
1020
1158
|
step.setArgument('water_heater_tank_volume', '50')
|
1021
|
-
step.setArgument('water_heater_heating_capacity', '40000')
|
1022
1159
|
step.setArgument('water_heater_efficiency', 0.59)
|
1023
|
-
|
1160
|
+
end
|
1161
|
+
|
1162
|
+
# Enclosure
|
1163
|
+
if ['base-enclosure-2stories.osw'].include? osw_file
|
1024
1164
|
step.setArgument('geometry_cfa', 4050.0)
|
1025
1165
|
step.setArgument('geometry_num_floors_above_grade', 2)
|
1026
1166
|
step.setArgument('window_area_front', 216.0)
|
1027
1167
|
step.setArgument('window_area_back', 216.0)
|
1028
1168
|
step.setArgument('window_area_left', 144.0)
|
1029
1169
|
step.setArgument('window_area_right', 144.0)
|
1170
|
+
step.setArgument('heating_system_heating_capacity', '48000.0')
|
1171
|
+
step.setArgument('cooling_system_cooling_capacity', '36000.0')
|
1172
|
+
step.setArgument('ducts_number_of_return_registers', '3')
|
1030
1173
|
step.setArgument('plug_loads_other_annual_kwh', '3685.5')
|
1031
1174
|
elsif ['base-enclosure-2stories-garage.osw'].include? osw_file
|
1032
1175
|
step.setArgument('geometry_cfa', 3250.0)
|
1033
|
-
step.setArgument('geometry_num_floors_above_grade', 2)
|
1034
1176
|
step.setArgument('geometry_garage_width', 20.0)
|
1035
|
-
step.setArgument('window_area_front', 216.0)
|
1036
|
-
step.setArgument('window_area_back', 216.0)
|
1037
|
-
step.setArgument('window_area_left', 144.0)
|
1038
|
-
step.setArgument('window_area_right', 144.0)
|
1039
1177
|
step.setArgument('ducts_supply_surface_area', '112.5')
|
1040
1178
|
step.setArgument('ducts_return_surface_area', '37.5')
|
1041
1179
|
step.setArgument('plug_loads_other_annual_kwh', '2957.5')
|
@@ -1043,13 +1181,11 @@ def get_values(osw_file, step)
|
|
1043
1181
|
step.setArgument('geometry_num_bedrooms', 1)
|
1044
1182
|
step.setArgument('geometry_num_bathrooms', '1')
|
1045
1183
|
step.setArgument('geometry_num_occupants', '1')
|
1046
|
-
step.setArgument('water_heater_heating_capacity', '18767')
|
1047
1184
|
step.setArgument('plug_loads_television_annual_kwh', '482.0')
|
1048
1185
|
elsif ['base-enclosure-beds-2.osw'].include? osw_file
|
1049
1186
|
step.setArgument('geometry_num_bedrooms', 2)
|
1050
1187
|
step.setArgument('geometry_num_bathrooms', '1')
|
1051
1188
|
step.setArgument('geometry_num_occupants', '2')
|
1052
|
-
step.setArgument('water_heater_heating_capacity', '18767')
|
1053
1189
|
step.setArgument('plug_loads_television_annual_kwh', '551.0')
|
1054
1190
|
elsif ['base-enclosure-beds-4.osw'].include? osw_file
|
1055
1191
|
step.setArgument('geometry_num_bedrooms', 4)
|
@@ -1082,10 +1218,10 @@ def get_values(osw_file, step)
|
|
1082
1218
|
step.setArgument('air_leakage_units', HPXML::UnitsCFM)
|
1083
1219
|
step.setArgument('air_leakage_value', 1080)
|
1084
1220
|
elsif ['base-enclosure-infil-flue.osw'].include? osw_file
|
1085
|
-
step.setArgument('
|
1221
|
+
step.setArgument('geometry_has_flue_or_chimney', 'true')
|
1086
1222
|
elsif ['base-enclosure-infil-natural-ach.osw'].include? osw_file
|
1087
1223
|
step.setArgument('air_leakage_units', HPXML::UnitsACHNatural)
|
1088
|
-
step.setArgument('air_leakage_value', 0.
|
1224
|
+
step.setArgument('air_leakage_value', 0.2)
|
1089
1225
|
elsif ['base-enclosure-other-heated-space.osw'].include? osw_file
|
1090
1226
|
step.setArgument('geometry_unit_type', HPXML::ResidentialTypeApartment)
|
1091
1227
|
step.setArgument('ducts_supply_location', HPXML::LocationOtherHeatedSpace)
|
@@ -1127,23 +1263,26 @@ def get_values(osw_file, step)
|
|
1127
1263
|
step.setArgument('refrigerator_location', HPXML::LocationOtherNonFreezingSpace)
|
1128
1264
|
step.setArgument('cooking_range_oven_location', HPXML::LocationOtherNonFreezingSpace)
|
1129
1265
|
elsif ['base-enclosure-overhangs.osw'].include? osw_file
|
1266
|
+
step.setArgument('overhangs_front_distance_to_top_of_window', 1.0)
|
1130
1267
|
step.setArgument('overhangs_back_depth', 2.5)
|
1131
1268
|
step.setArgument('overhangs_left_depth', 1.5)
|
1132
1269
|
step.setArgument('overhangs_left_distance_to_top_of_window', 2.0)
|
1133
1270
|
step.setArgument('overhangs_right_depth', 1.5)
|
1134
1271
|
step.setArgument('overhangs_right_distance_to_top_of_window', 2.0)
|
1135
|
-
elsif ['base-enclosure-skylights.osw'].include? osw_file
|
1136
|
-
step.setArgument('skylight_area_front', 15)
|
1137
|
-
step.setArgument('skylight_area_back', 15)
|
1138
1272
|
elsif ['base-enclosure-windows-none.osw'].include? osw_file
|
1139
1273
|
step.setArgument('window_area_front', 0)
|
1140
1274
|
step.setArgument('window_area_back', 0)
|
1141
1275
|
step.setArgument('window_area_left', 0)
|
1142
1276
|
step.setArgument('window_area_right', 0)
|
1143
|
-
|
1277
|
+
end
|
1278
|
+
|
1279
|
+
# Foundation
|
1280
|
+
if ['base-foundation-ambient.osw'].include? osw_file
|
1144
1281
|
step.setArgument('geometry_cfa', 1350.0)
|
1145
1282
|
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeAmbient)
|
1283
|
+
step.setArgument('geometry_rim_joist_height', 0)
|
1146
1284
|
step.setArgument('floor_assembly_r', 18.7)
|
1285
|
+
step.setArgument('ducts_number_of_return_registers', '1')
|
1147
1286
|
step.setArgument('plug_loads_other_annual_kwh', '1228.5')
|
1148
1287
|
elsif ['base-foundation-conditioned-basement-slab-insulation.osw'].include? osw_file
|
1149
1288
|
step.setArgument('slab_under_insulation_r', 10)
|
@@ -1162,6 +1301,7 @@ def get_values(osw_file, step)
|
|
1162
1301
|
step.setArgument('slab_carpet_r', '2.5')
|
1163
1302
|
step.setArgument('ducts_supply_location', HPXML::LocationUnderSlab)
|
1164
1303
|
step.setArgument('ducts_return_location', HPXML::LocationUnderSlab)
|
1304
|
+
step.setArgument('ducts_number_of_return_registers', '1')
|
1165
1305
|
step.setArgument('plug_loads_other_annual_kwh', '1228.5')
|
1166
1306
|
elsif ['base-foundation-unconditioned-basement.osw'].include? osw_file
|
1167
1307
|
step.setArgument('geometry_cfa', 1350.0)
|
@@ -1169,8 +1309,10 @@ def get_values(osw_file, step)
|
|
1169
1309
|
step.setArgument('floor_assembly_r', 18.7)
|
1170
1310
|
step.setArgument('foundation_wall_insulation_r', 0)
|
1171
1311
|
step.setArgument('foundation_wall_insulation_distance_to_bottom', 0)
|
1312
|
+
step.setArgument('rim_joist_assembly_r', 4.0)
|
1172
1313
|
step.setArgument('ducts_supply_location', HPXML::LocationBasementUnconditioned)
|
1173
1314
|
step.setArgument('ducts_return_location', HPXML::LocationBasementUnconditioned)
|
1315
|
+
step.setArgument('ducts_number_of_return_registers', '1')
|
1174
1316
|
step.setArgument('water_heater_location', HPXML::LocationBasementUnconditioned)
|
1175
1317
|
step.setArgument('clothes_washer_location', HPXML::LocationBasementUnconditioned)
|
1176
1318
|
step.setArgument('clothes_dryer_location', HPXML::LocationBasementUnconditioned)
|
@@ -1199,61 +1341,69 @@ def get_values(osw_file, step)
|
|
1199
1341
|
step.setArgument('floor_assembly_r', 2.1)
|
1200
1342
|
step.setArgument('foundation_wall_insulation_r', 8.9)
|
1201
1343
|
step.setArgument('foundation_wall_insulation_distance_to_bottom', 4)
|
1344
|
+
step.setArgument('rim_joist_assembly_r', 23.0)
|
1202
1345
|
elsif ['base-foundation-unvented-crawlspace.osw'].include? osw_file
|
1203
1346
|
step.setArgument('geometry_cfa', 1350.0)
|
1204
1347
|
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeCrawlspaceUnvented)
|
1205
1348
|
step.setArgument('geometry_foundation_height', 4.0)
|
1206
|
-
step.setArgument('geometry_foundation_height_above_grade', 1.0)
|
1207
1349
|
step.setArgument('floor_assembly_r', 18.7)
|
1208
1350
|
step.setArgument('foundation_wall_insulation_distance_to_bottom', 4.0)
|
1209
1351
|
step.setArgument('slab_carpet_r', '2.5')
|
1210
1352
|
step.setArgument('ducts_supply_location', HPXML::LocationCrawlspaceUnvented)
|
1211
1353
|
step.setArgument('ducts_return_location', HPXML::LocationCrawlspaceUnvented)
|
1354
|
+
step.setArgument('ducts_number_of_return_registers', '1')
|
1212
1355
|
step.setArgument('water_heater_location', HPXML::LocationCrawlspaceUnvented)
|
1213
1356
|
step.setArgument('plug_loads_other_annual_kwh', '1228.5')
|
1214
1357
|
elsif ['base-foundation-vented-crawlspace.osw'].include? osw_file
|
1215
1358
|
step.setArgument('geometry_cfa', 1350.0)
|
1216
1359
|
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeCrawlspaceVented)
|
1217
1360
|
step.setArgument('geometry_foundation_height', 4.0)
|
1218
|
-
step.setArgument('geometry_foundation_height_above_grade', 1.0)
|
1219
1361
|
step.setArgument('floor_assembly_r', 18.7)
|
1220
1362
|
step.setArgument('foundation_wall_insulation_distance_to_bottom', 4.0)
|
1221
1363
|
step.setArgument('slab_carpet_r', '2.5')
|
1222
1364
|
step.setArgument('ducts_supply_location', HPXML::LocationCrawlspaceVented)
|
1223
1365
|
step.setArgument('ducts_return_location', HPXML::LocationCrawlspaceVented)
|
1366
|
+
step.setArgument('ducts_number_of_return_registers', '1')
|
1224
1367
|
step.setArgument('water_heater_location', HPXML::LocationCrawlspaceVented)
|
1225
1368
|
step.setArgument('plug_loads_other_annual_kwh', '1228.5')
|
1226
1369
|
elsif ['base-foundation-walkout-basement.osw'].include? osw_file
|
1227
1370
|
step.setArgument('geometry_foundation_height_above_grade', 5.0)
|
1228
1371
|
step.setArgument('foundation_wall_insulation_distance_to_bottom', 4.0)
|
1229
|
-
|
1372
|
+
end
|
1373
|
+
|
1374
|
+
# HVAC
|
1375
|
+
if ['base-hvac-air-to-air-heat-pump-1-speed.osw'].include? osw_file
|
1230
1376
|
step.setArgument('heating_system_type', 'none')
|
1231
1377
|
step.setArgument('cooling_system_type', 'none')
|
1232
1378
|
step.setArgument('heat_pump_type', HPXML::HVACTypeHeatPumpAirToAir)
|
1233
|
-
step.setArgument('
|
1234
|
-
step.setArgument('heat_pump_heating_capacity_17F', '26460.0')
|
1379
|
+
step.setArgument('heat_pump_heating_capacity_17_f', '22680.0')
|
1235
1380
|
step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeElectricity)
|
1236
|
-
|
1381
|
+
elsif ['base-hvac-air-to-air-heat-pump-1-speed-cooling-only.osw'].include? osw_file
|
1382
|
+
step.setArgument('heat_pump_heating_capacity', '0.0')
|
1383
|
+
step.setArgument('heat_pump_heating_capacity_17_f', '0.0')
|
1384
|
+
step.setArgument('heat_pump_fraction_heat_load_served', 0)
|
1385
|
+
step.setArgument('heat_pump_backup_fuel', 'none')
|
1386
|
+
elsif ['base-hvac-air-to-air-heat-pump-1-speed-heating-only.osw'].include? osw_file
|
1387
|
+
step.setArgument('heat_pump_cooling_capacity', '0.0')
|
1388
|
+
step.setArgument('heat_pump_fraction_cool_load_served', 0)
|
1237
1389
|
elsif ['base-hvac-air-to-air-heat-pump-2-speed.osw'].include? osw_file
|
1238
1390
|
step.setArgument('heating_system_type', 'none')
|
1239
1391
|
step.setArgument('cooling_system_type', 'none')
|
1240
1392
|
step.setArgument('heat_pump_type', HPXML::HVACTypeHeatPumpAirToAir)
|
1241
|
-
step.setArgument('
|
1393
|
+
step.setArgument('heat_pump_heating_efficiency', 9.3)
|
1242
1394
|
step.setArgument('heat_pump_cooling_compressor_type', HPXML::HVACCompressorTypeTwoStage)
|
1243
|
-
step.setArgument('
|
1244
|
-
step.setArgument('
|
1245
|
-
step.setArgument('heat_pump_cooling_efficiency_seer', 18.0)
|
1395
|
+
step.setArgument('heat_pump_heating_capacity_17_f', '21240.0')
|
1396
|
+
step.setArgument('heat_pump_cooling_efficiency', 18.0)
|
1246
1397
|
step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeElectricity)
|
1247
1398
|
elsif ['base-hvac-air-to-air-heat-pump-var-speed.osw'].include? osw_file
|
1248
1399
|
step.setArgument('heating_system_type', 'none')
|
1249
1400
|
step.setArgument('cooling_system_type', 'none')
|
1250
1401
|
step.setArgument('heat_pump_type', HPXML::HVACTypeHeatPumpAirToAir)
|
1251
|
-
step.setArgument('
|
1402
|
+
step.setArgument('heat_pump_heating_efficiency', 10.0)
|
1252
1403
|
step.setArgument('heat_pump_cooling_compressor_type', HPXML::HVACCompressorTypeVariableSpeed)
|
1253
1404
|
step.setArgument('heat_pump_cooling_sensible_heat_fraction', 0.78)
|
1254
|
-
step.setArgument('
|
1255
|
-
step.setArgument('
|
1256
|
-
step.setArgument('heat_pump_cooling_efficiency_seer', 22.0)
|
1405
|
+
step.setArgument('heat_pump_heating_capacity_17_f', '23040.0')
|
1406
|
+
step.setArgument('heat_pump_cooling_efficiency', 22.0)
|
1257
1407
|
step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeElectricity)
|
1258
1408
|
elsif ['base-hvac-boiler-coal-only.osw'].include? osw_file
|
1259
1409
|
step.setArgument('heating_system_type', HPXML::HVACTypeBoiler)
|
@@ -1266,11 +1416,8 @@ def get_values(osw_file, step)
|
|
1266
1416
|
step.setArgument('cooling_system_type', 'none')
|
1267
1417
|
elsif ['base-hvac-boiler-gas-central-ac-1-speed.osw'].include? osw_file
|
1268
1418
|
step.setArgument('heating_system_type', HPXML::HVACTypeBoiler)
|
1269
|
-
step.setArgument('heating_system_electric_auxiliary_energy', 200.0)
|
1270
|
-
step.setArgument('ducts_number_of_return_registers', '3')
|
1271
1419
|
elsif ['base-hvac-boiler-gas-only.osw'].include? osw_file
|
1272
1420
|
step.setArgument('heating_system_type', HPXML::HVACTypeBoiler)
|
1273
|
-
step.setArgument('heating_system_electric_auxiliary_energy', 200.0)
|
1274
1421
|
step.setArgument('cooling_system_type', 'none')
|
1275
1422
|
elsif ['base-hvac-boiler-oil-only.osw'].include? osw_file
|
1276
1423
|
step.setArgument('heating_system_type', HPXML::HVACTypeBoiler)
|
@@ -1286,32 +1433,27 @@ def get_values(osw_file, step)
|
|
1286
1433
|
step.setArgument('cooling_system_type', 'none')
|
1287
1434
|
elsif ['base-hvac-central-ac-only-1-speed.osw'].include? osw_file
|
1288
1435
|
step.setArgument('heating_system_type', 'none')
|
1289
|
-
step.setArgument('cooling_system_fan_power_watts_per_cfm', 0.45)
|
1290
1436
|
elsif ['base-hvac-central-ac-only-2-speed.osw'].include? osw_file
|
1291
1437
|
step.setArgument('heating_system_type', 'none')
|
1292
|
-
step.setArgument('
|
1438
|
+
step.setArgument('cooling_system_cooling_efficiency', 18.0)
|
1293
1439
|
step.setArgument('cooling_system_cooling_compressor_type', HPXML::HVACCompressorTypeTwoStage)
|
1294
1440
|
elsif ['base-hvac-central-ac-only-var-speed.osw'].include? osw_file
|
1295
1441
|
step.setArgument('heating_system_type', 'none')
|
1296
|
-
step.setArgument('
|
1442
|
+
step.setArgument('cooling_system_cooling_efficiency', 24.0)
|
1297
1443
|
step.setArgument('cooling_system_cooling_compressor_type', HPXML::HVACCompressorTypeVariableSpeed)
|
1298
1444
|
step.setArgument('cooling_system_cooling_sensible_heat_fraction', 0.78)
|
1299
1445
|
elsif ['base-hvac-central-ac-plus-air-to-air-heat-pump-heating.osw'].include? osw_file
|
1300
1446
|
step.setArgument('heat_pump_type', HPXML::HVACTypeHeatPumpAirToAir)
|
1301
|
-
step.setArgument('
|
1302
|
-
step.setArgument('
|
1303
|
-
step.setArgument('heat_pump_heating_capacity_17F', '26460.0')
|
1447
|
+
step.setArgument('heat_pump_heating_efficiency', 7.7)
|
1448
|
+
step.setArgument('heat_pump_heating_capacity_17_f', '22680.0')
|
1304
1449
|
step.setArgument('heat_pump_fraction_cool_load_served', 0)
|
1305
1450
|
step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeElectricity)
|
1306
|
-
step.setArgument('heat_pump_fan_power_watts_per_cfm', 0.45)
|
1307
1451
|
elsif ['base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.osw'].include? osw_file
|
1308
1452
|
step.setArgument('cooling_system_type', 'none')
|
1309
|
-
step.setArgument('
|
1310
|
-
step.setArgument('
|
1311
|
-
step.setArgument('heat_pump_heating_capacity_17F', '26460.0')
|
1453
|
+
step.setArgument('heat_pump_heating_efficiency', 7.7)
|
1454
|
+
step.setArgument('heat_pump_heating_capacity_17_f', '22680.0')
|
1312
1455
|
step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeNaturalGas)
|
1313
1456
|
step.setArgument('heat_pump_backup_heating_efficiency', 0.95)
|
1314
|
-
step.setArgument('heat_pump_backup_heating_capacity', '36000.0')
|
1315
1457
|
step.setArgument('heat_pump_backup_heating_switchover_temp', 25)
|
1316
1458
|
elsif ['base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.osw'].include? osw_file
|
1317
1459
|
step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeElectricity)
|
@@ -1319,19 +1461,17 @@ def get_values(osw_file, step)
|
|
1319
1461
|
elsif ['base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.osw'].include? osw_file
|
1320
1462
|
step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeNaturalGas)
|
1321
1463
|
step.setArgument('heat_pump_backup_heating_efficiency', 0.95)
|
1322
|
-
step.setArgument('heat_pump_backup_heating_capacity', '36000.0')
|
1323
1464
|
step.setArgument('heat_pump_backup_heating_switchover_temp', 25)
|
1324
1465
|
elsif ['base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.osw'].include? osw_file
|
1325
1466
|
step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeNaturalGas)
|
1326
1467
|
step.setArgument('heat_pump_backup_heating_efficiency', 0.95)
|
1327
|
-
step.setArgument('heat_pump_backup_heating_capacity', '36000.0')
|
1328
1468
|
step.setArgument('heat_pump_backup_heating_switchover_temp', 25)
|
1329
1469
|
elsif ['base-hvac-dual-fuel-mini-split-heat-pump-ducted.osw'].include? osw_file
|
1470
|
+
step.setArgument('heat_pump_heating_capacity', '36000.0')
|
1471
|
+
step.setArgument('heat_pump_heating_capacity_17_f', '20423.0')
|
1330
1472
|
step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeNaturalGas)
|
1331
1473
|
step.setArgument('heat_pump_backup_heating_efficiency', 0.95)
|
1332
|
-
step.setArgument('heat_pump_backup_heating_capacity', '36000.0')
|
1333
1474
|
step.setArgument('heat_pump_backup_heating_switchover_temp', 25)
|
1334
|
-
step.setArgument('heat_pump_fan_power_watts_per_cfm', 0.2)
|
1335
1475
|
elsif ['base-hvac-ducts-leakage-percent.osw'].include? osw_file
|
1336
1476
|
step.setArgument('ducts_supply_leakage_units', HPXML::UnitsPercent)
|
1337
1477
|
step.setArgument('ducts_return_leakage_units', HPXML::UnitsPercent)
|
@@ -1351,28 +1491,29 @@ def get_values(osw_file, step)
|
|
1351
1491
|
step.setArgument('cooling_system_type', HPXML::HVACTypeEvaporativeCooler)
|
1352
1492
|
step.removeArgument('cooling_system_cooling_compressor_type')
|
1353
1493
|
step.removeArgument('cooling_system_cooling_sensible_heat_fraction')
|
1354
|
-
step.setArgument('cooling_system_fan_power_watts_per_cfm', 0.3)
|
1355
1494
|
elsif ['base-hvac-evap-cooler-only-ducted.osw'].include? osw_file
|
1356
1495
|
step.setArgument('heating_system_type', 'none')
|
1357
1496
|
step.setArgument('cooling_system_type', HPXML::HVACTypeEvaporativeCooler)
|
1358
1497
|
step.removeArgument('cooling_system_cooling_compressor_type')
|
1359
1498
|
step.removeArgument('cooling_system_cooling_sensible_heat_fraction')
|
1360
1499
|
step.setArgument('cooling_system_is_ducted', true)
|
1500
|
+
step.setArgument('ducts_return_leakage_value', 0.0)
|
1361
1501
|
elsif ['base-hvac-fireplace-wood-only.osw'].include? osw_file
|
1362
1502
|
step.setArgument('heating_system_type', HPXML::HVACTypeFireplace)
|
1363
1503
|
step.setArgument('heating_system_fuel', HPXML::FuelTypeWoodCord)
|
1364
1504
|
step.setArgument('heating_system_heating_efficiency', 0.8)
|
1365
|
-
step.setArgument('heating_system_fan_power_watts', 0.0)
|
1366
1505
|
step.setArgument('cooling_system_type', 'none')
|
1367
1506
|
elsif ['base-hvac-fixed-heater-gas-only.osw'].include? osw_file
|
1368
1507
|
step.setArgument('heating_system_type', HPXML::HVACTypeFixedHeater)
|
1369
1508
|
step.setArgument('heating_system_heating_efficiency', 1.0)
|
1370
|
-
step.setArgument('
|
1509
|
+
step.setArgument('cooling_system_type', 'none')
|
1371
1510
|
elsif ['base-hvac-floor-furnace-propane-only.osw'].include? osw_file
|
1372
1511
|
step.setArgument('heating_system_type', HPXML::HVACTypeFloorFurnace)
|
1373
1512
|
step.setArgument('heating_system_fuel', HPXML::FuelTypePropane)
|
1374
1513
|
step.setArgument('heating_system_heating_efficiency', 0.8)
|
1375
|
-
step.setArgument('
|
1514
|
+
step.setArgument('cooling_system_type', 'none')
|
1515
|
+
elsif ['base-hvac-furnace-coal-only.osw'].include? osw_file
|
1516
|
+
step.setArgument('heating_system_fuel', HPXML::FuelTypeCoal)
|
1376
1517
|
step.setArgument('cooling_system_type', 'none')
|
1377
1518
|
elsif ['base-hvac-furnace-elec-central-ac-1-speed.osw'].include? osw_file
|
1378
1519
|
step.setArgument('heating_system_fuel', HPXML::FuelTypeElectricity)
|
@@ -1382,17 +1523,18 @@ def get_values(osw_file, step)
|
|
1382
1523
|
step.setArgument('heating_system_heating_efficiency', 1.0)
|
1383
1524
|
step.setArgument('cooling_system_type', 'none')
|
1384
1525
|
elsif ['base-hvac-furnace-gas-central-ac-2-speed.osw'].include? osw_file
|
1385
|
-
step.setArgument('
|
1526
|
+
step.setArgument('cooling_system_cooling_efficiency', 18.0)
|
1386
1527
|
step.setArgument('cooling_system_cooling_compressor_type', HPXML::HVACCompressorTypeTwoStage)
|
1387
1528
|
elsif ['base-hvac-furnace-gas-central-ac-var-speed.osw'].include? osw_file
|
1388
|
-
step.setArgument('
|
1529
|
+
step.setArgument('cooling_system_cooling_efficiency', 24.0)
|
1389
1530
|
step.setArgument('cooling_system_cooling_compressor_type', HPXML::HVACCompressorTypeVariableSpeed)
|
1390
1531
|
step.setArgument('cooling_system_cooling_sensible_heat_fraction', 0.78)
|
1391
1532
|
elsif ['base-hvac-furnace-gas-only.osw'].include? osw_file
|
1392
|
-
step.setArgument('heating_system_fan_power_watts_per_cfm', 0.45)
|
1393
1533
|
step.setArgument('cooling_system_type', 'none')
|
1394
1534
|
elsif ['base-hvac-furnace-gas-room-ac.osw'].include? osw_file
|
1395
1535
|
step.setArgument('cooling_system_type', HPXML::HVACTypeRoomAirConditioner)
|
1536
|
+
step.setArgument('cooling_system_cooling_efficiency_type', HPXML::UnitsEER)
|
1537
|
+
step.setArgument('cooling_system_cooling_efficiency', 8.5)
|
1396
1538
|
step.removeArgument('cooling_system_cooling_compressor_type')
|
1397
1539
|
step.setArgument('cooling_system_cooling_sensible_heat_fraction', 0.65)
|
1398
1540
|
elsif ['base-hvac-furnace-oil-only.osw'].include? osw_file
|
@@ -1407,10 +1549,9 @@ def get_values(osw_file, step)
|
|
1407
1549
|
elsif ['base-hvac-mini-split-air-conditioner-only-ducted.osw'].include? osw_file
|
1408
1550
|
step.setArgument('heating_system_type', 'none')
|
1409
1551
|
step.setArgument('cooling_system_type', HPXML::HVACTypeMiniSplitAirConditioner)
|
1410
|
-
step.setArgument('
|
1552
|
+
step.setArgument('cooling_system_cooling_efficiency', 19.0)
|
1411
1553
|
step.removeArgument('cooling_system_cooling_compressor_type')
|
1412
1554
|
step.setArgument('cooling_system_is_ducted', true)
|
1413
|
-
step.setArgument('cooling_system_fan_power_watts_per_cfm', 0.2)
|
1414
1555
|
step.setArgument('ducts_supply_leakage_value', 15.0)
|
1415
1556
|
step.setArgument('ducts_return_leakage_value', 5.0)
|
1416
1557
|
step.setArgument('ducts_supply_insulation_r', 0.0)
|
@@ -1422,25 +1563,70 @@ def get_values(osw_file, step)
|
|
1422
1563
|
step.setArgument('heating_system_type', 'none')
|
1423
1564
|
step.setArgument('cooling_system_type', 'none')
|
1424
1565
|
step.setArgument('heat_pump_type', HPXML::HVACTypeHeatPumpGroundToAir)
|
1425
|
-
step.setArgument('
|
1426
|
-
step.setArgument('
|
1566
|
+
step.setArgument('heat_pump_heating_efficiency_type', HPXML::UnitsCOP)
|
1567
|
+
step.setArgument('heat_pump_heating_efficiency', 3.6)
|
1568
|
+
step.setArgument('heat_pump_cooling_efficiency_type', HPXML::UnitsEER)
|
1569
|
+
step.setArgument('heat_pump_cooling_efficiency', 16.6)
|
1427
1570
|
step.removeArgument('heat_pump_cooling_compressor_type')
|
1428
|
-
step.setArgument('heat_pump_heating_capacity', '42000.0')
|
1429
1571
|
step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeElectricity)
|
1430
|
-
|
1431
|
-
step.setArgument('
|
1572
|
+
elsif ['base-hvac-ground-to-air-heat-pump-cooling-only.osw'].include? osw_file
|
1573
|
+
step.setArgument('heat_pump_heating_capacity', '0.0')
|
1574
|
+
step.setArgument('heat_pump_fraction_heat_load_served', 0)
|
1575
|
+
step.setArgument('heat_pump_backup_fuel', 'none')
|
1576
|
+
elsif ['base-hvac-ground-to-air-heat-pump-heating-only.osw'].include? osw_file
|
1577
|
+
step.setArgument('heat_pump_cooling_capacity', '0.0')
|
1578
|
+
step.setArgument('heat_pump_fraction_cool_load_served', 0)
|
1579
|
+
elsif ['base-hvac-install-quality-none-furnace-gas-central-ac-1-speed.osw'].include? osw_file
|
1580
|
+
step.setArgument('heating_system_airflow_defect_ratio', 0.0)
|
1581
|
+
step.setArgument('cooling_system_airflow_defect_ratio', 0.0)
|
1582
|
+
step.setArgument('cooling_system_charge_defect_ratio', 0.0)
|
1583
|
+
elsif ['base-hvac-install-quality-airflow-defect-furnace-gas-central-ac-1-speed.osw'].include? osw_file
|
1584
|
+
step.setArgument('heating_system_airflow_defect_ratio', -0.25)
|
1585
|
+
step.setArgument('cooling_system_airflow_defect_ratio', -0.25)
|
1586
|
+
elsif ['base-hvac-install-quality-charge-defect-furnace-gas-central-ac-1-speed.osw'].include? osw_file
|
1587
|
+
step.setArgument('cooling_system_charge_defect_ratio', -0.25)
|
1588
|
+
elsif ['base-hvac-install-quality-all-air-to-air-heat-pump-1-speed.osw'].include? osw_file
|
1589
|
+
step.setArgument('heat_pump_airflow_defect_ratio', -0.25)
|
1590
|
+
step.setArgument('heat_pump_charge_defect_ratio', -0.25)
|
1591
|
+
elsif ['base-hvac-install-quality-all-air-to-air-heat-pump-2-speed.osw'].include? osw_file
|
1592
|
+
step.setArgument('heat_pump_airflow_defect_ratio', -0.25)
|
1593
|
+
step.setArgument('heat_pump_charge_defect_ratio', -0.25)
|
1594
|
+
elsif ['base-hvac-install-quality-all-air-to-air-heat-pump-var-speed.osw'].include? osw_file
|
1595
|
+
step.setArgument('heat_pump_airflow_defect_ratio', -0.25)
|
1596
|
+
step.setArgument('heat_pump_charge_defect_ratio', -0.25)
|
1597
|
+
elsif ['base-hvac-install-quality-all-furnace-gas-central-ac-1-speed.osw'].include? osw_file
|
1598
|
+
step.setArgument('heating_system_airflow_defect_ratio', -0.25)
|
1599
|
+
step.setArgument('cooling_system_airflow_defect_ratio', -0.25)
|
1600
|
+
step.setArgument('cooling_system_charge_defect_ratio', -0.25)
|
1601
|
+
elsif ['base-hvac-install-quality-all-furnace-gas-central-ac-2-speed.osw'].include? osw_file
|
1602
|
+
step.setArgument('heating_system_airflow_defect_ratio', -0.25)
|
1603
|
+
step.setArgument('cooling_system_airflow_defect_ratio', -0.25)
|
1604
|
+
step.setArgument('cooling_system_charge_defect_ratio', -0.25)
|
1605
|
+
elsif ['base-hvac-install-quality-all-furnace-gas-central-ac-var-speed.osw'].include? osw_file
|
1606
|
+
step.setArgument('heating_system_airflow_defect_ratio', -0.25)
|
1607
|
+
step.setArgument('cooling_system_airflow_defect_ratio', -0.25)
|
1608
|
+
step.setArgument('cooling_system_charge_defect_ratio', -0.25)
|
1609
|
+
elsif ['base-hvac-install-quality-all-furnace-gas-only.osw'].include? osw_file
|
1610
|
+
step.setArgument('heating_system_airflow_defect_ratio', -0.25)
|
1611
|
+
elsif ['base-hvac-install-quality-all-ground-to-air-heat-pump.osw'].include? osw_file
|
1612
|
+
step.setArgument('heat_pump_airflow_defect_ratio', -0.25)
|
1613
|
+
step.setArgument('heat_pump_charge_defect_ratio', 0.0)
|
1614
|
+
elsif ['base-hvac-install-quality-all-mini-split-heat-pump-ducted.osw'].include? osw_file
|
1615
|
+
step.setArgument('heat_pump_airflow_defect_ratio', -0.25)
|
1616
|
+
step.setArgument('heat_pump_charge_defect_ratio', -0.25)
|
1617
|
+
elsif ['base-hvac-install-quality-all-mini-split-air-conditioner-only-ducted.osw'].include? osw_file
|
1618
|
+
step.setArgument('cooling_system_airflow_defect_ratio', -0.25)
|
1619
|
+
step.setArgument('cooling_system_charge_defect_ratio', -0.25)
|
1432
1620
|
elsif ['base-hvac-mini-split-heat-pump-ducted.osw'].include? osw_file
|
1433
1621
|
step.setArgument('heating_system_type', 'none')
|
1434
1622
|
step.setArgument('cooling_system_type', 'none')
|
1435
1623
|
step.setArgument('heat_pump_type', HPXML::HVACTypeHeatPumpMiniSplit)
|
1436
|
-
step.setArgument('
|
1437
|
-
step.setArgument('
|
1438
|
-
step.setArgument('
|
1439
|
-
step.setArgument('heat_pump_cooling_efficiency_seer', 19.0)
|
1624
|
+
step.setArgument('heat_pump_heating_capacity_17_f', '20423.0')
|
1625
|
+
step.setArgument('heat_pump_heating_efficiency', 10.0)
|
1626
|
+
step.setArgument('heat_pump_cooling_efficiency', 19.0)
|
1440
1627
|
step.removeArgument('heat_pump_cooling_compressor_type')
|
1441
1628
|
step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeElectricity)
|
1442
|
-
step.setArgument('
|
1443
|
-
step.setArgument('heat_pump_fan_power_watts_per_cfm', 0.2)
|
1629
|
+
step.setArgument('heat_pump_is_ducted', true)
|
1444
1630
|
step.setArgument('ducts_supply_leakage_value', 15.0)
|
1445
1631
|
step.setArgument('ducts_return_leakage_value', 5.0)
|
1446
1632
|
step.setArgument('ducts_supply_insulation_r', 0.0)
|
@@ -1448,65 +1634,73 @@ def get_values(osw_file, step)
|
|
1448
1634
|
step.setArgument('ducts_return_surface_area', '10.0')
|
1449
1635
|
elsif ['base-hvac-mini-split-heat-pump-ducted-cooling-only.osw'].include? osw_file
|
1450
1636
|
step.setArgument('heat_pump_heating_capacity', '0')
|
1451
|
-
step.setArgument('
|
1637
|
+
step.setArgument('heat_pump_heating_capacity_17_f', '0')
|
1452
1638
|
step.setArgument('heat_pump_fraction_heat_load_served', 0)
|
1453
1639
|
step.setArgument('heat_pump_backup_fuel', 'none')
|
1454
|
-
step.setArgument('heat_pump_fan_power_watts_per_cfm', 0.2)
|
1455
1640
|
elsif ['base-hvac-mini-split-heat-pump-ducted-heating-only.osw'].include? osw_file
|
1456
1641
|
step.setArgument('heat_pump_cooling_capacity', '0')
|
1457
1642
|
step.setArgument('heat_pump_fraction_cool_load_served', 0)
|
1458
1643
|
step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeElectricity)
|
1459
|
-
step.setArgument('heat_pump_fan_power_watts_per_cfm', 0.2)
|
1460
1644
|
elsif ['base-hvac-mini-split-heat-pump-ductless.osw'].include? osw_file
|
1461
1645
|
step.setArgument('heat_pump_backup_fuel', 'none')
|
1462
|
-
step.setArgument('
|
1646
|
+
step.setArgument('heat_pump_is_ducted', false)
|
1463
1647
|
elsif ['base-hvac-none.osw'].include? osw_file
|
1464
1648
|
step.setArgument('heating_system_type', 'none')
|
1465
1649
|
step.setArgument('cooling_system_type', 'none')
|
1466
1650
|
elsif ['base-hvac-portable-heater-gas-only.osw'].include? osw_file
|
1467
1651
|
step.setArgument('heating_system_type', HPXML::HVACTypePortableHeater)
|
1468
1652
|
step.setArgument('heating_system_heating_efficiency', 1.0)
|
1469
|
-
step.setArgument('
|
1653
|
+
step.setArgument('cooling_system_type', 'none')
|
1654
|
+
elsif ['base-hvac-programmable-thermostat-detailed.osw'].include? osw_file
|
1655
|
+
step.setArgument('setpoint_heating_weekday', '64, 64, 64, 64, 64, 64, 64, 70, 70, 66, 66, 66, 66, 66, 66, 66, 66, 68, 68, 68, 68, 68, 64, 64')
|
1656
|
+
step.setArgument('setpoint_heating_weekend', '68, 68, 68, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70')
|
1657
|
+
step.setArgument('setpoint_cooling_weekday', '80, 80, 80, 80, 80, 80, 80, 75, 75, 80, 80, 80, 80, 80, 80, 80, 80, 78, 78, 78, 78, 78, 80, 80')
|
1658
|
+
step.setArgument('setpoint_cooling_weekend', '78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78')
|
1470
1659
|
elsif ['base-hvac-room-ac-only.osw'].include? osw_file
|
1471
1660
|
step.setArgument('heating_system_type', 'none')
|
1472
1661
|
step.setArgument('cooling_system_type', HPXML::HVACTypeRoomAirConditioner)
|
1662
|
+
step.setArgument('cooling_system_cooling_efficiency_type', HPXML::UnitsEER)
|
1663
|
+
step.setArgument('cooling_system_cooling_efficiency', 8.5)
|
1473
1664
|
step.removeArgument('cooling_system_cooling_compressor_type')
|
1474
1665
|
step.setArgument('cooling_system_cooling_sensible_heat_fraction', 0.65)
|
1475
1666
|
elsif ['base-hvac-room-ac-only-33percent.osw'].include? osw_file
|
1476
1667
|
step.setArgument('heating_system_type', 'none')
|
1477
1668
|
step.setArgument('cooling_system_type', HPXML::HVACTypeRoomAirConditioner)
|
1669
|
+
step.setArgument('cooling_system_cooling_efficiency_type', HPXML::UnitsEER)
|
1670
|
+
step.setArgument('cooling_system_cooling_efficiency', 8.5)
|
1478
1671
|
step.removeArgument('cooling_system_cooling_compressor_type')
|
1479
1672
|
step.setArgument('cooling_system_cooling_sensible_heat_fraction', 0.65)
|
1480
1673
|
step.setArgument('cooling_system_fraction_cool_load_served', 0.33)
|
1674
|
+
step.setArgument('cooling_system_cooling_capacity', '8000.0')
|
1481
1675
|
elsif ['base-hvac-setpoints.osw'].include? osw_file
|
1482
|
-
step.setArgument('
|
1483
|
-
step.setArgument('
|
1484
|
-
step.setArgument('
|
1485
|
-
step.setArgument('
|
1676
|
+
step.setArgument('setpoint_heating_weekday', '60')
|
1677
|
+
step.setArgument('setpoint_heating_weekend', '60')
|
1678
|
+
step.setArgument('setpoint_cooling_weekday', '80')
|
1679
|
+
step.setArgument('setpoint_cooling_weekend', '80')
|
1486
1680
|
elsif ['base-hvac-stove-oil-only.osw'].include? osw_file
|
1487
1681
|
step.setArgument('heating_system_type', HPXML::HVACTypeStove)
|
1488
1682
|
step.setArgument('heating_system_fuel', HPXML::FuelTypeOil)
|
1489
1683
|
step.setArgument('heating_system_heating_efficiency', 0.8)
|
1490
|
-
step.setArgument('heating_system_fan_power_watts', 40.0)
|
1491
1684
|
step.setArgument('cooling_system_type', 'none')
|
1492
1685
|
elsif ['base-hvac-stove-wood-pellets-only.osw'].include? osw_file
|
1493
1686
|
step.setArgument('heating_system_type', HPXML::HVACTypeStove)
|
1494
1687
|
step.setArgument('heating_system_fuel', HPXML::FuelTypeWoodPellets)
|
1495
1688
|
step.setArgument('heating_system_heating_efficiency', 0.8)
|
1496
|
-
step.setArgument('heating_system_fan_power_watts', 40.0)
|
1497
1689
|
step.setArgument('cooling_system_type', 'none')
|
1498
1690
|
elsif ['base-hvac-undersized.osw'].include? osw_file
|
1499
|
-
step.setArgument('heating_system_heating_capacity', '
|
1500
|
-
step.setArgument('cooling_system_cooling_capacity', '
|
1691
|
+
step.setArgument('heating_system_heating_capacity', '3600.0')
|
1692
|
+
step.setArgument('cooling_system_cooling_capacity', '2400.0')
|
1501
1693
|
step.setArgument('ducts_supply_leakage_value', 7.5)
|
1502
1694
|
step.setArgument('ducts_return_leakage_value', 2.5)
|
1503
1695
|
elsif ['base-hvac-wall-furnace-elec-only.osw'].include? osw_file
|
1504
1696
|
step.setArgument('heating_system_type', HPXML::HVACTypeWallFurnace)
|
1505
1697
|
step.setArgument('heating_system_fuel', HPXML::FuelTypeElectricity)
|
1506
1698
|
step.setArgument('heating_system_heating_efficiency', 1.0)
|
1507
|
-
step.setArgument('heating_system_fan_power_watts', 0.0)
|
1508
1699
|
step.setArgument('cooling_system_type', 'none')
|
1509
|
-
|
1700
|
+
end
|
1701
|
+
|
1702
|
+
# Lighting
|
1703
|
+
if ['base-lighting-ceiling-fans.osw'].include? osw_file
|
1510
1704
|
step.setArgument('ceiling_fan_present', true)
|
1511
1705
|
step.setArgument('ceiling_fan_efficiency', '100.0')
|
1512
1706
|
step.setArgument('ceiling_fan_quantity', '4')
|
@@ -1518,32 +1712,51 @@ def get_values(osw_file, step)
|
|
1518
1712
|
step.setArgument('holiday_lighting_period_begin_day_of_month', '24')
|
1519
1713
|
step.setArgument('holiday_lighting_period_end_month', '1')
|
1520
1714
|
step.setArgument('holiday_lighting_period_end_day_of_month', '6')
|
1521
|
-
|
1715
|
+
end
|
1716
|
+
|
1717
|
+
# Location
|
1718
|
+
if ['base-location-AMY-2012.osw'].include? osw_file
|
1522
1719
|
step.setArgument('weather_station_epw_filepath', 'US_CO_Boulder_AMY_2012.epw')
|
1523
1720
|
elsif ['base-location-baltimore-md.osw'].include? osw_file
|
1524
1721
|
step.setArgument('weather_station_epw_filepath', 'USA_MD_Baltimore-Washington.Intl.AP.724060_TMY3.epw')
|
1722
|
+
step.setArgument('heating_system_heating_capacity', '24000.0')
|
1525
1723
|
elsif ['base-location-dallas-tx.osw'].include? osw_file
|
1526
1724
|
step.setArgument('weather_station_epw_filepath', 'USA_TX_Dallas-Fort.Worth.Intl.AP.722590_TMY3.epw')
|
1725
|
+
step.setArgument('heating_system_heating_capacity', '24000.0')
|
1527
1726
|
elsif ['base-location-duluth-mn.osw'].include? osw_file
|
1528
1727
|
step.setArgument('weather_station_epw_filepath', 'USA_MN_Duluth.Intl.AP.727450_TMY3.epw')
|
1728
|
+
elsif ['base-location-helena-mt.osw'].include? osw_file
|
1729
|
+
step.setArgument('weather_station_epw_filepath', 'USA_MT_Helena.Rgnl.AP.727720_TMY3.epw')
|
1730
|
+
step.setArgument('heating_system_heating_capacity', '48000.0')
|
1731
|
+
elsif ['base-location-honolulu-hi.osw'].include? osw_file
|
1732
|
+
step.setArgument('weather_station_epw_filepath', 'USA_HI_Honolulu.Intl.AP.911820_TMY3.epw')
|
1733
|
+
step.setArgument('heating_system_heating_capacity', '12000.0')
|
1529
1734
|
elsif ['base-location-miami-fl.osw'].include? osw_file
|
1530
1735
|
step.setArgument('weather_station_epw_filepath', 'USA_FL_Miami.Intl.AP.722020_TMY3.epw')
|
1531
|
-
|
1736
|
+
step.setArgument('heating_system_heating_capacity', '12000.0')
|
1737
|
+
elsif ['base-location-phoenix-az.osw'].include? osw_file
|
1738
|
+
step.setArgument('weather_station_epw_filepath', 'USA_AZ_Phoenix-Sky.Harbor.Intl.AP.722780_TMY3.epw')
|
1739
|
+
step.setArgument('heating_system_heating_capacity', '24000.0')
|
1740
|
+
elsif ['base-location-portland-or.osw'].include? osw_file
|
1741
|
+
step.setArgument('weather_station_epw_filepath', 'USA_OR_Portland.Intl.AP.726980_TMY3.epw')
|
1742
|
+
step.setArgument('heating_system_heating_capacity', '24000.0')
|
1743
|
+
end
|
1744
|
+
|
1745
|
+
# Mechanical Ventilation
|
1746
|
+
if ['base-mechvent-balanced.osw'].include? osw_file
|
1532
1747
|
step.setArgument('mech_vent_fan_type', HPXML::MechVentTypeBalanced)
|
1533
1748
|
step.setArgument('mech_vent_fan_power', 60)
|
1534
1749
|
elsif ['base-mechvent-bath-kitchen-fans.osw'].include? osw_file
|
1535
|
-
step.setArgument('
|
1536
|
-
step.setArgument('
|
1537
|
-
step.setArgument('
|
1538
|
-
step.setArgument('
|
1539
|
-
step.setArgument('
|
1540
|
-
step.setArgument('
|
1541
|
-
step.setArgument('
|
1542
|
-
step.setArgument('
|
1543
|
-
step.setArgument('
|
1544
|
-
step.setArgument('
|
1545
|
-
step.setArgument('bathroom_fans_power', 15.0)
|
1546
|
-
step.setArgument('bathroom_fans_start_hour', 7)
|
1750
|
+
step.setArgument('kitchen_fans_quantity', '1')
|
1751
|
+
step.setArgument('kitchen_fans_flow_rate', '100.0')
|
1752
|
+
step.setArgument('kitchen_fans_hours_in_operation', '1.5')
|
1753
|
+
step.setArgument('kitchen_fans_power', '30.0')
|
1754
|
+
step.setArgument('kitchen_fans_start_hour', '18')
|
1755
|
+
step.setArgument('bathroom_fans_quantity', '2')
|
1756
|
+
step.setArgument('bathroom_fans_flow_rate', '50.0')
|
1757
|
+
step.setArgument('bathroom_fans_hours_in_operation', '1.5')
|
1758
|
+
step.setArgument('bathroom_fans_power', '15.0')
|
1759
|
+
step.setArgument('bathroom_fans_start_hour', '7')
|
1547
1760
|
elsif ['base-mechvent-cfis.osw'].include? osw_file
|
1548
1761
|
step.setArgument('mech_vent_fan_type', HPXML::MechVentTypeCFIS)
|
1549
1762
|
step.setArgument('mech_vent_flow_rate', 330)
|
@@ -1559,42 +1772,30 @@ def get_values(osw_file, step)
|
|
1559
1772
|
step.setArgument('mech_vent_fan_power', 60)
|
1560
1773
|
elsif ['base-mechvent-erv-atre-asre.osw'].include? osw_file
|
1561
1774
|
step.setArgument('mech_vent_fan_type', HPXML::MechVentTypeERV)
|
1562
|
-
step.setArgument('
|
1775
|
+
step.setArgument('mech_vent_recovery_efficiency_type', 'Adjusted')
|
1563
1776
|
step.setArgument('mech_vent_total_recovery_efficiency', 0.526)
|
1564
|
-
step.setArgument('mech_vent_sensible_recovery_efficiency_type', 'Adjusted')
|
1565
1777
|
step.setArgument('mech_vent_sensible_recovery_efficiency', 0.79)
|
1566
1778
|
step.setArgument('mech_vent_fan_power', 60)
|
1567
1779
|
elsif ['base-mechvent-exhaust.osw'].include? osw_file
|
1568
1780
|
step.setArgument('mech_vent_fan_type', HPXML::MechVentTypeExhaust)
|
1781
|
+
elsif ['base-mechvent-exhaust-rated-flow-rate.osw'].include? osw_file
|
1782
|
+
step.setArgument('mech_vent_fan_type', HPXML::MechVentTypeExhaust)
|
1569
1783
|
elsif ['base-mechvent-hrv.osw'].include? osw_file
|
1570
1784
|
step.setArgument('mech_vent_fan_type', HPXML::MechVentTypeHRV)
|
1571
1785
|
step.setArgument('mech_vent_fan_power', 60)
|
1572
1786
|
elsif ['base-mechvent-hrv-asre.osw'].include? osw_file
|
1573
1787
|
step.setArgument('mech_vent_fan_type', HPXML::MechVentTypeHRV)
|
1574
|
-
step.setArgument('
|
1788
|
+
step.setArgument('mech_vent_recovery_efficiency_type', 'Adjusted')
|
1575
1789
|
step.setArgument('mech_vent_sensible_recovery_efficiency', 0.79)
|
1576
1790
|
step.setArgument('mech_vent_fan_power', 60)
|
1577
|
-
elsif ['base-bldgtype-multifamily-shared-mechvent.osw'].include? osw_file
|
1578
|
-
step.setArgument('mech_vent_fan_type', HPXML::MechVentTypeSupply)
|
1579
|
-
step.setArgument('mech_vent_flow_rate', 800)
|
1580
|
-
step.setArgument('mech_vent_fan_power', 240)
|
1581
|
-
step.setArgument('mech_vent_num_units_served', 10)
|
1582
|
-
step.setArgument('shared_mech_vent_frac_recirculation', 0.5)
|
1583
|
-
step.setArgument('mech_vent_fan_type_2', HPXML::MechVentTypeExhaust)
|
1584
|
-
step.setArgument('mech_vent_flow_rate_2', 72)
|
1585
|
-
step.setArgument('mech_vent_fan_power_2', 26)
|
1586
|
-
elsif ['base-bldgtype-multifamily-shared-mechvent-preconditioning.osw'].include? osw_file
|
1587
|
-
step.setArgument('shared_mech_vent_preheating_fuel', HPXML::FuelTypeNaturalGas)
|
1588
|
-
step.setArgument('shared_mech_vent_preheating_efficiency', 0.92)
|
1589
|
-
step.setArgument('shared_mech_vent_preheating_fraction_heat_load_served', 0.7)
|
1590
|
-
step.setArgument('shared_mech_vent_precooling_fuel', HPXML::FuelTypeElectricity)
|
1591
|
-
step.setArgument('shared_mech_vent_precooling_efficiency', 4.0)
|
1592
|
-
step.setArgument('shared_mech_vent_precooling_fraction_cool_load_served', 0.8)
|
1593
1791
|
elsif ['base-mechvent-supply.osw'].include? osw_file
|
1594
1792
|
step.setArgument('mech_vent_fan_type', HPXML::MechVentTypeSupply)
|
1595
1793
|
elsif ['base-mechvent-whole-house-fan.osw'].include? osw_file
|
1596
1794
|
step.setArgument('whole_house_fan_present', true)
|
1597
|
-
|
1795
|
+
end
|
1796
|
+
|
1797
|
+
# Misc
|
1798
|
+
if ['base-misc-defaults.osw'].include? osw_file
|
1598
1799
|
step.removeArgument('simulation_control_timestep')
|
1599
1800
|
step.removeArgument('site_type')
|
1600
1801
|
step.setArgument('geometry_num_bathrooms', Constants.Auto)
|
@@ -1605,11 +1806,9 @@ def get_values(osw_file, step)
|
|
1605
1806
|
step.removeArgument('roof_material_type')
|
1606
1807
|
step.setArgument('roof_color', HPXML::ColorLight)
|
1607
1808
|
step.removeArgument('roof_material_type')
|
1608
|
-
step.setArgument('
|
1609
|
-
step.setArgument('roof_radiant_barrier', Constants.Auto)
|
1809
|
+
step.setArgument('roof_radiant_barrier', false)
|
1610
1810
|
step.removeArgument('wall_siding_type')
|
1611
1811
|
step.setArgument('wall_color', HPXML::ColorMedium)
|
1612
|
-
step.setArgument('wall_emittance', Constants.Auto)
|
1613
1812
|
step.removeArgument('window_fraction_operable')
|
1614
1813
|
step.removeArgument('window_interior_shading_winter')
|
1615
1814
|
step.removeArgument('window_interior_shading_summer')
|
@@ -1619,11 +1818,10 @@ def get_values(osw_file, step)
|
|
1619
1818
|
step.setArgument('ducts_return_location', Constants.Auto)
|
1620
1819
|
step.setArgument('ducts_supply_surface_area', Constants.Auto)
|
1621
1820
|
step.setArgument('ducts_return_surface_area', Constants.Auto)
|
1622
|
-
step.setArgument('
|
1623
|
-
step.setArgument('
|
1821
|
+
step.setArgument('kitchen_fans_quantity', Constants.Auto)
|
1822
|
+
step.setArgument('bathroom_fans_quantity', Constants.Auto)
|
1624
1823
|
step.setArgument('water_heater_location', Constants.Auto)
|
1625
1824
|
step.setArgument('water_heater_tank_volume', Constants.Auto)
|
1626
|
-
step.setArgument('water_heater_heating_capacity', Constants.Auto)
|
1627
1825
|
step.setArgument('water_heater_setpoint_temperature', Constants.Auto)
|
1628
1826
|
step.setArgument('dhw_distribution_standard_piping_length', Constants.Auto)
|
1629
1827
|
step.setArgument('dhw_distribution_pipe_r', Constants.Auto)
|
@@ -1635,8 +1833,7 @@ def get_values(osw_file, step)
|
|
1635
1833
|
step.removeArgument('pv_system_inverter_efficiency_1')
|
1636
1834
|
step.removeArgument('pv_system_system_losses_fraction_1')
|
1637
1835
|
step.setArgument('clothes_washer_location', Constants.Auto)
|
1638
|
-
step.setArgument('
|
1639
|
-
step.setArgument('clothes_washer_efficiency_imef', Constants.Auto)
|
1836
|
+
step.setArgument('clothes_washer_efficiency', Constants.Auto)
|
1640
1837
|
step.setArgument('clothes_washer_rated_annual_kwh', Constants.Auto)
|
1641
1838
|
step.setArgument('clothes_washer_label_electric_rate', Constants.Auto)
|
1642
1839
|
step.setArgument('clothes_washer_label_gas_rate', Constants.Auto)
|
@@ -1644,11 +1841,10 @@ def get_values(osw_file, step)
|
|
1644
1841
|
step.setArgument('clothes_washer_label_usage', Constants.Auto)
|
1645
1842
|
step.setArgument('clothes_washer_capacity', Constants.Auto)
|
1646
1843
|
step.setArgument('clothes_dryer_location', Constants.Auto)
|
1647
|
-
step.setArgument('
|
1648
|
-
step.setArgument('clothes_dryer_control_type', Constants.Auto)
|
1844
|
+
step.setArgument('clothes_dryer_efficiency', Constants.Auto)
|
1649
1845
|
step.setArgument('clothes_dryer_vented_flow_rate', Constants.Auto)
|
1650
1846
|
step.setArgument('dishwasher_location', Constants.Auto)
|
1651
|
-
step.setArgument('
|
1847
|
+
step.setArgument('dishwasher_efficiency', Constants.Auto)
|
1652
1848
|
step.setArgument('dishwasher_label_electric_rate', Constants.Auto)
|
1653
1849
|
step.setArgument('dishwasher_label_gas_rate', Constants.Auto)
|
1654
1850
|
step.setArgument('dishwasher_label_annual_gas_cost', Constants.Auto)
|
@@ -1665,19 +1861,16 @@ def get_values(osw_file, step)
|
|
1665
1861
|
step.setArgument('plug_loads_other_frac_sensible', Constants.Auto)
|
1666
1862
|
step.setArgument('plug_loads_other_frac_latent', Constants.Auto)
|
1667
1863
|
elsif ['base-misc-loads-large-uncommon.osw'].include? osw_file
|
1668
|
-
step.setArgument('
|
1864
|
+
step.setArgument('extra_refrigerator_location', Constants.Auto)
|
1669
1865
|
step.setArgument('extra_refrigerator_rated_annual_kwh', '700.0')
|
1670
|
-
step.setArgument('freezer_present', true)
|
1671
1866
|
step.setArgument('freezer_location', HPXML::LocationLivingSpace)
|
1672
1867
|
step.setArgument('freezer_rated_annual_kwh', '300.0')
|
1673
1868
|
step.setArgument('plug_loads_well_pump_present', true)
|
1674
1869
|
step.setArgument('plug_loads_well_pump_annual_kwh', '475.0')
|
1675
1870
|
step.setArgument('plug_loads_well_pump_usage_multiplier', 1.0)
|
1676
|
-
step.setArgument('plug_loads_well_pump_usage_multiplier_2', 1.0)
|
1677
1871
|
step.setArgument('plug_loads_vehicle_present', true)
|
1678
1872
|
step.setArgument('plug_loads_vehicle_annual_kwh', '1500.0')
|
1679
1873
|
step.setArgument('plug_loads_vehicle_usage_multiplier', 1.0)
|
1680
|
-
step.setArgument('plug_loads_vehicle_usage_multiplier_2', 1.0)
|
1681
1874
|
step.setArgument('fuel_loads_grill_present', true)
|
1682
1875
|
step.setArgument('fuel_loads_grill_fuel_type', HPXML::FuelTypePropane)
|
1683
1876
|
step.setArgument('fuel_loads_grill_annual_therm', '25.0')
|
@@ -1699,11 +1892,17 @@ def get_values(osw_file, step)
|
|
1699
1892
|
step.setArgument('hot_tub_pump_annual_kwh', '1000.0')
|
1700
1893
|
step.setArgument('hot_tub_heater_annual_kwh', '1300.0')
|
1701
1894
|
elsif ['base-misc-loads-large-uncommon2.osw'].include? osw_file
|
1702
|
-
step.setArgument('pool_heater_type',
|
1895
|
+
step.setArgument('pool_heater_type', HPXML::TypeNone)
|
1703
1896
|
step.setArgument('hot_tub_heater_type', HPXML::HeaterTypeHeatPump)
|
1704
1897
|
step.setArgument('hot_tub_heater_annual_kwh', '260.0')
|
1705
1898
|
step.setArgument('fuel_loads_grill_fuel_type', HPXML::FuelTypeOil)
|
1706
1899
|
step.setArgument('fuel_loads_fireplace_fuel_type', HPXML::FuelTypeWoodPellets)
|
1900
|
+
elsif ['base-misc-neighbor-shading.osw'].include? osw_file
|
1901
|
+
step.setArgument('neighbor_back_distance', 10)
|
1902
|
+
step.setArgument('neighbor_front_distance', 15)
|
1903
|
+
step.setArgument('neighbor_front_height', '12')
|
1904
|
+
elsif ['base-misc-shielding-of-home.osw'].include? osw_file
|
1905
|
+
step.setArgument('air_leakage_shielding_of_home', HPXML::ShieldingWellShielded)
|
1707
1906
|
elsif ['base-misc-usage-multiplier.osw'].include? osw_file
|
1708
1907
|
step.setArgument('water_fixtures_usage_multiplier', 0.9)
|
1709
1908
|
step.setArgument('lighting_usage_multiplier_interior', 0.9)
|
@@ -1713,7 +1912,6 @@ def get_values(osw_file, step)
|
|
1713
1912
|
step.setArgument('clothes_dryer_usage_multiplier', 0.9)
|
1714
1913
|
step.setArgument('dishwasher_usage_multiplier', 0.9)
|
1715
1914
|
step.setArgument('refrigerator_usage_multiplier', 0.9)
|
1716
|
-
step.setArgument('freezer_present', true)
|
1717
1915
|
step.setArgument('freezer_location', HPXML::LocationLivingSpace)
|
1718
1916
|
step.setArgument('freezer_rated_annual_kwh', '300.0')
|
1719
1917
|
step.setArgument('freezer_usage_multiplier', 0.9)
|
@@ -1745,11 +1943,10 @@ def get_values(osw_file, step)
|
|
1745
1943
|
step.setArgument('fuel_loads_fireplace_frac_sensible', '0.5')
|
1746
1944
|
step.setArgument('fuel_loads_fireplace_frac_latent', '0.1')
|
1747
1945
|
step.setArgument('fuel_loads_fireplace_usage_multiplier', 0.9)
|
1748
|
-
|
1749
|
-
|
1750
|
-
|
1751
|
-
|
1752
|
-
elsif ['base-pv.osw'].include? osw_file
|
1946
|
+
end
|
1947
|
+
|
1948
|
+
# PV
|
1949
|
+
if ['base-pv.osw'].include? osw_file
|
1753
1950
|
step.setArgument('pv_system_module_type_1', HPXML::PVModuleTypeStandard)
|
1754
1951
|
step.setArgument('pv_system_location_1', HPXML::LocationRoof)
|
1755
1952
|
step.setArgument('pv_system_tracking_1', HPXML::PVTrackingTypeFixed)
|
@@ -1758,17 +1955,10 @@ def get_values(osw_file, step)
|
|
1758
1955
|
step.setArgument('pv_system_tracking_2', HPXML::PVTrackingTypeFixed)
|
1759
1956
|
step.setArgument('pv_system_array_azimuth_2', 90)
|
1760
1957
|
step.setArgument('pv_system_max_power_output_2', 1500)
|
1761
|
-
|
1762
|
-
|
1763
|
-
|
1764
|
-
|
1765
|
-
step.setArgument('pv_system_tracking_1', HPXML::PVTrackingTypeFixed)
|
1766
|
-
step.setArgument('pv_system_array_azimuth_1', 225)
|
1767
|
-
step.setArgument('pv_system_array_tilt_1', '30')
|
1768
|
-
step.setArgument('pv_system_max_power_output_1', 30000)
|
1769
|
-
step.setArgument('pv_system_inverter_efficiency_1', 0.96)
|
1770
|
-
step.setArgument('pv_system_system_losses_fraction_1', 0.14)
|
1771
|
-
elsif ['base-simcontrol-calendar-year-custom.osw'].include? osw_file
|
1958
|
+
end
|
1959
|
+
|
1960
|
+
# Simulation Control
|
1961
|
+
if ['base-simcontrol-calendar-year-custom.osw'].include? osw_file
|
1772
1962
|
step.setArgument('simulation_control_run_period_calendar_year', 2008)
|
1773
1963
|
elsif ['base-simcontrol-daylight-saving-custom.osw'].include? osw_file
|
1774
1964
|
step.setArgument('simulation_control_daylight_saving_enabled', true)
|
@@ -1778,11 +1968,6 @@ def get_values(osw_file, step)
|
|
1778
1968
|
step.setArgument('simulation_control_daylight_saving_end_day_of_month', 6)
|
1779
1969
|
elsif ['base-simcontrol-daylight-saving-disabled.osw'].include? osw_file
|
1780
1970
|
step.setArgument('simulation_control_daylight_saving_enabled', false)
|
1781
|
-
elsif ['base-schedules-stochastic.osw'].include? osw_file
|
1782
|
-
step.setArgument('schedules_type', 'stochastic')
|
1783
|
-
elsif ['base-schedules-user-specified.osw'].include? osw_file
|
1784
|
-
step.setArgument('schedules_type', 'user-specified')
|
1785
|
-
step.setArgument('schedules_path', 'BuildResidentialHPXML/tests/schedules/user-specified.csv')
|
1786
1971
|
elsif ['base-simcontrol-runperiod-1-month.osw'].include? osw_file
|
1787
1972
|
step.setArgument('simulation_control_run_period_begin_month', 1)
|
1788
1973
|
step.setArgument('simulation_control_run_period_begin_day_of_month', 1)
|
@@ -1792,6 +1977,19 @@ def get_values(osw_file, step)
|
|
1792
1977
|
step.setArgument('simulation_control_timestep', '10')
|
1793
1978
|
end
|
1794
1979
|
|
1980
|
+
# Schedules
|
1981
|
+
if ['base-schedules-stochastic.osw'].include? osw_file
|
1982
|
+
step.setArgument('schedules_type', 'stochastic')
|
1983
|
+
elsif ['base-schedules-stochastic-vacant.osw'].include? osw_file
|
1984
|
+
step.setArgument('schedules_vacancy_begin_month', 1)
|
1985
|
+
step.setArgument('schedules_vacancy_begin_day_of_month', 1)
|
1986
|
+
step.setArgument('schedules_vacancy_end_month', 12)
|
1987
|
+
step.setArgument('schedules_vacancy_end_day_of_month', 31)
|
1988
|
+
elsif ['base-schedules-user-specified.osw'].include? osw_file
|
1989
|
+
step.setArgument('schedules_type', 'user-specified')
|
1990
|
+
step.setArgument('schedules_path', 'BuildResidentialHPXML/tests/schedules/user-specified.csv')
|
1991
|
+
end
|
1992
|
+
|
1795
1993
|
# Extras
|
1796
1994
|
if ['extra-auto.osw'].include? osw_file
|
1797
1995
|
step.setArgument('geometry_num_occupants', Constants.Auto)
|
@@ -1814,8 +2012,8 @@ def get_values(osw_file, step)
|
|
1814
2012
|
step.setArgument('solar_thermal_system_type', 'hot water')
|
1815
2013
|
step.setArgument('solar_thermal_collector_tilt', 'latitude-15')
|
1816
2014
|
elsif ['extra-second-refrigerator.osw'].include? osw_file
|
1817
|
-
step.setArgument('
|
1818
|
-
elsif ['extra-second-heating-system-portable-heater.osw'].include? osw_file
|
2015
|
+
step.setArgument('extra_refrigerator_location', HPXML::LocationLivingSpace)
|
2016
|
+
elsif ['extra-second-heating-system-portable-heater-to-heating-system.osw'].include? osw_file
|
1819
2017
|
step.setArgument('heating_system_fuel', HPXML::FuelTypeElectricity)
|
1820
2018
|
step.setArgument('heating_system_heating_capacity', '48000.0')
|
1821
2019
|
step.setArgument('heating_system_fraction_heat_load_served', 0.75)
|
@@ -1825,39 +2023,301 @@ def get_values(osw_file, step)
|
|
1825
2023
|
step.setArgument('ducts_return_location', HPXML::LocationLivingSpace)
|
1826
2024
|
step.setArgument('heating_system_type_2', HPXML::HVACTypePortableHeater)
|
1827
2025
|
step.setArgument('heating_system_heating_capacity_2', '16000.0')
|
1828
|
-
elsif ['extra-second-heating-system-fireplace.osw'].include? osw_file
|
1829
|
-
step.setArgument('heating_system_type', HPXML::HVACTypeElectricResistance)
|
1830
|
-
step.setArgument('heating_system_fuel', HPXML::FuelTypeElectricity)
|
2026
|
+
elsif ['extra-second-heating-system-fireplace-to-heating-system.osw'].include? osw_file
|
1831
2027
|
step.setArgument('heating_system_heating_capacity', '48000.0')
|
1832
2028
|
step.setArgument('heating_system_fraction_heat_load_served', 0.75)
|
1833
2029
|
step.setArgument('heating_system_type_2', HPXML::HVACTypeFireplace)
|
1834
2030
|
step.setArgument('heating_system_heating_capacity_2', '16000.0')
|
2031
|
+
elsif ['extra-second-heating-system-boiler-to-heating-system.osw'].include? osw_file
|
2032
|
+
step.setArgument('heating_system_fraction_heat_load_served', 0.75)
|
2033
|
+
step.setArgument('heating_system_type_2', HPXML::HVACTypeBoiler)
|
2034
|
+
elsif ['extra-second-heating-system-portable-heater-to-heat-pump.osw'].include? osw_file
|
2035
|
+
step.setArgument('heat_pump_heating_capacity', '48000.0')
|
2036
|
+
step.setArgument('heat_pump_fraction_heat_load_served', 0.75)
|
2037
|
+
step.setArgument('ducts_supply_leakage_value', 0.0)
|
2038
|
+
step.setArgument('ducts_return_leakage_value', 0.0)
|
2039
|
+
step.setArgument('ducts_supply_location', HPXML::LocationLivingSpace)
|
2040
|
+
step.setArgument('ducts_return_location', HPXML::LocationLivingSpace)
|
2041
|
+
step.setArgument('heating_system_type_2', HPXML::HVACTypePortableHeater)
|
2042
|
+
step.setArgument('heating_system_heating_capacity_2', '16000.0')
|
2043
|
+
elsif ['extra-second-heating-system-fireplace-to-heat-pump.osw'].include? osw_file
|
2044
|
+
step.setArgument('heat_pump_heating_capacity', '48000.0')
|
2045
|
+
step.setArgument('heat_pump_fraction_heat_load_served', 0.75)
|
2046
|
+
step.setArgument('heating_system_type_2', HPXML::HVACTypeFireplace)
|
2047
|
+
step.setArgument('heating_system_heating_capacity_2', '16000.0')
|
2048
|
+
elsif ['extra-second-heating-system-boiler-to-heat-pump.osw'].include? osw_file
|
2049
|
+
step.setArgument('heat_pump_fraction_heat_load_served', 0.75)
|
2050
|
+
step.setArgument('heating_system_type_2', HPXML::HVACTypeBoiler)
|
2051
|
+
elsif ['extra-enclosure-windows-shading.osw'].include? osw_file
|
2052
|
+
step.setArgument('window_interior_shading_winter', 0.99)
|
2053
|
+
step.setArgument('window_interior_shading_summer', 0.01)
|
2054
|
+
step.setArgument('window_exterior_shading_winter', 0.9)
|
2055
|
+
step.setArgument('window_exterior_shading_summer', 0.1)
|
1835
2056
|
elsif ['extra-enclosure-garage-partially-protruded.osw'].include? osw_file
|
1836
2057
|
step.setArgument('geometry_garage_width', 12)
|
1837
2058
|
step.setArgument('geometry_garage_protrusion', 0.5)
|
1838
|
-
elsif ['extra-
|
1839
|
-
step.setArgument('
|
1840
|
-
step.setArgument('
|
1841
|
-
step.setArgument('
|
1842
|
-
|
2059
|
+
elsif ['extra-enclosure-garage-atticroof-conditioned.osw'].include? osw_file
|
2060
|
+
step.setArgument('geometry_cfa', 4500.0)
|
2061
|
+
step.setArgument('geometry_num_floors_above_grade', 2)
|
2062
|
+
step.setArgument('geometry_attic_type', HPXML::AtticTypeConditioned)
|
2063
|
+
elsif ['extra-enclosure-atticroof-conditioned-eaves-gable.osw'].include? osw_file
|
2064
|
+
step.setArgument('geometry_num_floors_above_grade', 2)
|
2065
|
+
step.setArgument('geometry_attic_type', HPXML::AtticTypeConditioned)
|
2066
|
+
step.setArgument('geometry_eaves_depth', 2)
|
2067
|
+
elsif ['extra-enclosure-atticroof-conditioned-eaves-hip.osw'].include? osw_file
|
2068
|
+
step.setArgument('geometry_roof_type', 'hip')
|
1843
2069
|
elsif ['extra-schedules-random-seed.osw'].include? osw_file
|
1844
2070
|
step.setArgument('schedules_random_seed', 123)
|
1845
|
-
elsif ['extra-
|
1846
|
-
step.setArgument('
|
1847
|
-
|
1848
|
-
step.setArgument('
|
1849
|
-
|
1850
|
-
step.setArgument('
|
1851
|
-
|
1852
|
-
step.setArgument('
|
1853
|
-
step.setArgument('
|
1854
|
-
elsif ['extra-
|
1855
|
-
step.setArgument('
|
1856
|
-
|
1857
|
-
step.setArgument('
|
1858
|
-
step.setArgument('
|
1859
|
-
step.setArgument('
|
1860
|
-
step.setArgument('
|
2071
|
+
elsif ['extra-zero-refrigerator-kwh.osw'].include? osw_file
|
2072
|
+
step.setArgument('refrigerator_rated_annual_kwh', '0')
|
2073
|
+
elsif ['extra-zero-extra-refrigerator-kwh.osw'].include? osw_file
|
2074
|
+
step.setArgument('extra_refrigerator_rated_annual_kwh', '0')
|
2075
|
+
elsif ['extra-zero-freezer-kwh.osw'].include? osw_file
|
2076
|
+
step.setArgument('freezer_rated_annual_kwh', '0')
|
2077
|
+
elsif ['extra-zero-clothes-washer-kwh.osw'].include? osw_file
|
2078
|
+
step.setArgument('clothes_washer_rated_annual_kwh', '0')
|
2079
|
+
step.setArgument('clothes_dryer_location', 'none')
|
2080
|
+
elsif ['extra-zero-dishwasher-kwh.osw'].include? osw_file
|
2081
|
+
step.setArgument('dishwasher_efficiency', '0')
|
2082
|
+
elsif ['extra-bldgtype-single-family-attached-atticroof-flat.osw'].include? osw_file
|
2083
|
+
step.setArgument('geometry_roof_type', 'flat')
|
2084
|
+
step.setArgument('ducts_supply_leakage_value', 0.0)
|
2085
|
+
step.setArgument('ducts_return_leakage_value', 0.0)
|
2086
|
+
step.setArgument('ducts_supply_location', HPXML::LocationBasementConditioned)
|
2087
|
+
step.setArgument('ducts_return_location', HPXML::LocationBasementConditioned)
|
2088
|
+
elsif ['extra-gas-pool-heater-with-zero-kwh.osw'].include? osw_file
|
2089
|
+
step.setArgument('pool_present', true)
|
2090
|
+
step.setArgument('pool_heater_type', HPXML::HeaterTypeGas)
|
2091
|
+
step.setArgument('pool_heater_annual_kwh', 0)
|
2092
|
+
elsif ['extra-gas-hot-tub-heater-with-zero-kwh.osw'].include? osw_file
|
2093
|
+
step.setArgument('hot_tub_present', true)
|
2094
|
+
step.setArgument('hot_tub_heater_type', HPXML::HeaterTypeGas)
|
2095
|
+
step.setArgument('hot_tub_heater_annual_kwh', 0)
|
2096
|
+
|
2097
|
+
elsif ['extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-gable.osw'].include? osw_file
|
2098
|
+
step.setArgument('geometry_num_floors_above_grade', 2)
|
2099
|
+
step.setArgument('geometry_attic_type', HPXML::AtticTypeConditioned)
|
2100
|
+
step.setArgument('geometry_eaves_depth', 2)
|
2101
|
+
step.setArgument('ducts_supply_location', HPXML::LocationLivingSpace)
|
2102
|
+
step.setArgument('ducts_return_location', HPXML::LocationLivingSpace)
|
2103
|
+
elsif ['extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-hip.osw'].include? osw_file
|
2104
|
+
step.setArgument('geometry_roof_type', 'hip')
|
2105
|
+
elsif ['extra-bldgtype-multifamily-eaves.osw'].include? osw_file
|
2106
|
+
step.setArgument('geometry_eaves_depth', 2)
|
2107
|
+
|
2108
|
+
elsif ['extra-bldgtype-single-family-attached-slab.osw'].include? osw_file
|
2109
|
+
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeSlab)
|
2110
|
+
step.setArgument('geometry_foundation_height', 0.0)
|
2111
|
+
step.setArgument('geometry_foundation_height_above_grade', 0.0)
|
2112
|
+
elsif ['extra-bldgtype-single-family-attached-vented-crawlspace.osw'].include? osw_file
|
2113
|
+
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeCrawlspaceVented)
|
2114
|
+
step.setArgument('geometry_foundation_height', 4.0)
|
2115
|
+
step.setArgument('floor_assembly_r', 18.7)
|
2116
|
+
step.setArgument('foundation_wall_insulation_distance_to_bottom', 4.0)
|
2117
|
+
elsif ['extra-bldgtype-single-family-attached-unvented-crawlspace.osw'].include? osw_file
|
2118
|
+
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeCrawlspaceUnvented)
|
2119
|
+
step.setArgument('geometry_foundation_height', 4.0)
|
2120
|
+
step.setArgument('floor_assembly_r', 18.7)
|
2121
|
+
step.setArgument('foundation_wall_insulation_distance_to_bottom', 4.0)
|
2122
|
+
elsif ['extra-bldgtype-single-family-attached-unconditioned-basement.osw'].include? osw_file
|
2123
|
+
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeBasementUnconditioned)
|
2124
|
+
step.setArgument('floor_assembly_r', 18.7)
|
2125
|
+
step.setArgument('foundation_wall_insulation_r', 0)
|
2126
|
+
step.setArgument('foundation_wall_insulation_distance_to_bottom', 0)
|
2127
|
+
|
2128
|
+
elsif ['extra-bldgtype-single-family-attached-double-loaded-interior.osw'].include? osw_file
|
2129
|
+
step.setArgument('geometry_building_num_units', 4)
|
2130
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2131
|
+
elsif ['extra-bldgtype-single-family-attached-single-exterior-front.osw'].include? osw_file
|
2132
|
+
step.setArgument('geometry_corridor_position', 'Single Exterior (Front)')
|
2133
|
+
elsif ['extra-bldgtype-single-family-attached-double-exterior.osw'].include? osw_file
|
2134
|
+
step.setArgument('geometry_building_num_units', 4)
|
2135
|
+
step.setArgument('geometry_corridor_position', 'Double Exterior')
|
2136
|
+
|
2137
|
+
elsif ['extra-bldgtype-single-family-attached-slab-middle.osw'].include? osw_file
|
2138
|
+
step.setArgument('geometry_horizontal_location', 'Middle')
|
2139
|
+
elsif ['extra-bldgtype-single-family-attached-slab-right.osw'].include? osw_file
|
2140
|
+
step.setArgument('geometry_horizontal_location', 'Right')
|
2141
|
+
elsif ['extra-bldgtype-single-family-attached-vented-crawlspace-middle.osw'].include? osw_file
|
2142
|
+
step.setArgument('geometry_horizontal_location', 'Middle')
|
2143
|
+
elsif ['extra-bldgtype-single-family-attached-vented-crawlspace-right.osw'].include? osw_file
|
2144
|
+
step.setArgument('geometry_horizontal_location', 'Right')
|
2145
|
+
elsif ['extra-bldgtype-single-family-attached-unvented-crawlspace-middle.osw'].include? osw_file
|
2146
|
+
step.setArgument('geometry_horizontal_location', 'Middle')
|
2147
|
+
elsif ['extra-bldgtype-single-family-attached-unvented-crawlspace-right.osw'].include? osw_file
|
2148
|
+
step.setArgument('geometry_horizontal_location', 'Right')
|
2149
|
+
elsif ['extra-bldgtype-single-family-attached-unconditioned-basement-middle.osw'].include? osw_file
|
2150
|
+
step.setArgument('geometry_horizontal_location', 'Middle')
|
2151
|
+
elsif ['extra-bldgtype-single-family-attached-unconditioned-basement-right.osw'].include? osw_file
|
2152
|
+
step.setArgument('geometry_horizontal_location', 'Right')
|
2153
|
+
|
2154
|
+
elsif ['extra-bldgtype-multifamily-slab.osw'].include? osw_file
|
2155
|
+
step.setArgument('geometry_building_num_units', 9)
|
2156
|
+
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeSlab)
|
2157
|
+
step.setArgument('geometry_foundation_height', 0.0)
|
2158
|
+
step.setArgument('geometry_foundation_height_above_grade', 0.0)
|
2159
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace.osw'].include? osw_file
|
2160
|
+
step.setArgument('geometry_building_num_units', 9)
|
2161
|
+
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeCrawlspaceVented)
|
2162
|
+
step.setArgument('geometry_foundation_height', 4.0)
|
2163
|
+
step.setArgument('floor_assembly_r', 18.7)
|
2164
|
+
step.setArgument('foundation_wall_insulation_distance_to_bottom', 4.0)
|
2165
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace.osw'].include? osw_file
|
2166
|
+
step.setArgument('geometry_building_num_units', 9)
|
2167
|
+
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeCrawlspaceUnvented)
|
2168
|
+
step.setArgument('geometry_foundation_height', 4.0)
|
2169
|
+
step.setArgument('floor_assembly_r', 18.7)
|
2170
|
+
step.setArgument('foundation_wall_insulation_distance_to_bottom', 4.0)
|
2171
|
+
|
2172
|
+
elsif ['extra-bldgtype-multifamily-double-loaded-interior.osw'].include? osw_file
|
2173
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2174
|
+
elsif ['extra-bldgtype-multifamily-single-exterior-front.osw'].include? osw_file
|
2175
|
+
step.setArgument('geometry_corridor_position', 'Single Exterior (Front)')
|
2176
|
+
elsif ['extra-bldgtype-multifamily-double-exterior.osw'].include? osw_file
|
2177
|
+
step.setArgument('geometry_corridor_position', 'Double Exterior')
|
2178
|
+
|
2179
|
+
elsif ['extra-bldgtype-multifamily-slab-left-bottom.osw'].include? osw_file
|
2180
|
+
step.setArgument('geometry_horizontal_location', 'Left')
|
2181
|
+
step.setArgument('geometry_level', 'Bottom')
|
2182
|
+
elsif ['extra-bldgtype-multifamily-slab-left-middle.osw'].include? osw_file
|
2183
|
+
step.setArgument('geometry_horizontal_location', 'Left')
|
2184
|
+
step.setArgument('geometry_level', 'Middle')
|
2185
|
+
elsif ['extra-bldgtype-multifamily-slab-left-top.osw'].include? osw_file
|
2186
|
+
step.setArgument('geometry_horizontal_location', 'Left')
|
2187
|
+
step.setArgument('geometry_level', 'Top')
|
2188
|
+
elsif ['extra-bldgtype-multifamily-slab-middle-bottom.osw'].include? osw_file
|
2189
|
+
step.setArgument('geometry_horizontal_location', 'Middle')
|
2190
|
+
step.setArgument('geometry_level', 'Bottom')
|
2191
|
+
elsif ['extra-bldgtype-multifamily-slab-middle-middle.osw'].include? osw_file
|
2192
|
+
step.setArgument('geometry_horizontal_location', 'Middle')
|
2193
|
+
step.setArgument('geometry_level', 'Middle')
|
2194
|
+
elsif ['extra-bldgtype-multifamily-slab-middle-top.osw'].include? osw_file
|
2195
|
+
step.setArgument('geometry_horizontal_location', 'Middle')
|
2196
|
+
step.setArgument('geometry_level', 'Top')
|
2197
|
+
elsif ['extra-bldgtype-multifamily-slab-right-bottom.osw'].include? osw_file
|
2198
|
+
step.setArgument('geometry_horizontal_location', 'Right')
|
2199
|
+
step.setArgument('geometry_level', 'Bottom')
|
2200
|
+
elsif ['extra-bldgtype-multifamily-slab-right-middle.osw'].include? osw_file
|
2201
|
+
step.setArgument('geometry_horizontal_location', 'Right')
|
2202
|
+
step.setArgument('geometry_level', 'Middle')
|
2203
|
+
elsif ['extra-bldgtype-multifamily-slab-right-top.osw'].include? osw_file
|
2204
|
+
step.setArgument('geometry_horizontal_location', 'Right')
|
2205
|
+
step.setArgument('geometry_level', 'Top')
|
2206
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-left-bottom.osw'].include? osw_file
|
2207
|
+
step.setArgument('geometry_horizontal_location', 'Left')
|
2208
|
+
step.setArgument('geometry_level', 'Bottom')
|
2209
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-left-middle.osw'].include? osw_file
|
2210
|
+
step.setArgument('geometry_horizontal_location', 'Left')
|
2211
|
+
step.setArgument('geometry_level', 'Middle')
|
2212
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-left-top.osw'].include? osw_file
|
2213
|
+
step.setArgument('geometry_horizontal_location', 'Left')
|
2214
|
+
step.setArgument('geometry_level', 'Top')
|
2215
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-middle-bottom.osw'].include? osw_file
|
2216
|
+
step.setArgument('geometry_horizontal_location', 'Middle')
|
2217
|
+
step.setArgument('geometry_level', 'Bottom')
|
2218
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-middle-middle.osw'].include? osw_file
|
2219
|
+
step.setArgument('geometry_horizontal_location', 'Middle')
|
2220
|
+
step.setArgument('geometry_level', 'Middle')
|
2221
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-middle-top.osw'].include? osw_file
|
2222
|
+
step.setArgument('geometry_horizontal_location', 'Middle')
|
2223
|
+
step.setArgument('geometry_level', 'Top')
|
2224
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-right-bottom.osw'].include? osw_file
|
2225
|
+
step.setArgument('geometry_horizontal_location', 'Right')
|
2226
|
+
step.setArgument('geometry_level', 'Bottom')
|
2227
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-right-middle.osw'].include? osw_file
|
2228
|
+
step.setArgument('geometry_horizontal_location', 'Right')
|
2229
|
+
step.setArgument('geometry_level', 'Middle')
|
2230
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-right-top.osw'].include? osw_file
|
2231
|
+
step.setArgument('geometry_horizontal_location', 'Right')
|
2232
|
+
step.setArgument('geometry_level', 'Top')
|
2233
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-left-bottom.osw'].include? osw_file
|
2234
|
+
step.setArgument('geometry_horizontal_location', 'Left')
|
2235
|
+
step.setArgument('geometry_level', 'Bottom')
|
2236
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-left-middle.osw'].include? osw_file
|
2237
|
+
step.setArgument('geometry_horizontal_location', 'Left')
|
2238
|
+
step.setArgument('geometry_level', 'Middle')
|
2239
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-left-top.osw'].include? osw_file
|
2240
|
+
step.setArgument('geometry_horizontal_location', 'Left')
|
2241
|
+
step.setArgument('geometry_level', 'Top')
|
2242
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-middle-bottom.osw'].include? osw_file
|
2243
|
+
step.setArgument('geometry_horizontal_location', 'Middle')
|
2244
|
+
step.setArgument('geometry_level', 'Bottom')
|
2245
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-middle-middle.osw'].include? osw_file
|
2246
|
+
step.setArgument('geometry_horizontal_location', 'Middle')
|
2247
|
+
step.setArgument('geometry_level', 'Middle')
|
2248
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-middle-top.osw'].include? osw_file
|
2249
|
+
step.setArgument('geometry_horizontal_location', 'Middle')
|
2250
|
+
step.setArgument('geometry_level', 'Top')
|
2251
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-right-bottom.osw'].include? osw_file
|
2252
|
+
step.setArgument('geometry_horizontal_location', 'Right')
|
2253
|
+
step.setArgument('geometry_level', 'Bottom')
|
2254
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-right-middle.osw'].include? osw_file
|
2255
|
+
step.setArgument('geometry_horizontal_location', 'Right')
|
2256
|
+
step.setArgument('geometry_level', 'Middle')
|
2257
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-right-top.osw'].include? osw_file
|
2258
|
+
step.setArgument('geometry_horizontal_location', 'Right')
|
2259
|
+
step.setArgument('geometry_level', 'Top')
|
2260
|
+
|
2261
|
+
elsif ['extra-bldgtype-multifamily-slab-double-loaded-interior.osw'].include? osw_file
|
2262
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2263
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-double-loaded-interior.osw'].include? osw_file
|
2264
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2265
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-double-loaded-interior.osw'].include? osw_file
|
2266
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2267
|
+
elsif ['extra-bldgtype-multifamily-slab-left-bottom-double-loaded-interior.osw'].include? osw_file
|
2268
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2269
|
+
elsif ['extra-bldgtype-multifamily-slab-left-middle-double-loaded-interior.osw'].include? osw_file
|
2270
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2271
|
+
elsif ['extra-bldgtype-multifamily-slab-left-top-double-loaded-interior.osw'].include? osw_file
|
2272
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2273
|
+
elsif ['extra-bldgtype-multifamily-slab-middle-bottom-double-loaded-interior.osw'].include? osw_file
|
2274
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2275
|
+
elsif ['extra-bldgtype-multifamily-slab-middle-middle-double-loaded-interior.osw'].include? osw_file
|
2276
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2277
|
+
elsif ['extra-bldgtype-multifamily-slab-middle-top-double-loaded-interior.osw'].include? osw_file
|
2278
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2279
|
+
elsif ['extra-bldgtype-multifamily-slab-right-bottom-double-loaded-interior.osw'].include? osw_file
|
2280
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2281
|
+
elsif ['extra-bldgtype-multifamily-slab-right-middle-double-loaded-interior.osw'].include? osw_file
|
2282
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2283
|
+
elsif ['extra-bldgtype-multifamily-slab-right-top-double-loaded-interior.osw'].include? osw_file
|
2284
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2285
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-left-bottom-double-loaded-interior.osw'].include? osw_file
|
2286
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2287
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-left-middle-double-loaded-interior.osw'].include? osw_file
|
2288
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2289
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-left-top-double-loaded-interior.osw'].include? osw_file
|
2290
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2291
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-middle-bottom-double-loaded-interior.osw'].include? osw_file
|
2292
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2293
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-middle-middle-double-loaded-interior.osw'].include? osw_file
|
2294
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2295
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-middle-top-double-loaded-interior.osw'].include? osw_file
|
2296
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2297
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-right-bottom-double-loaded-interior.osw'].include? osw_file
|
2298
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2299
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-right-middle-double-loaded-interior.osw'].include? osw_file
|
2300
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2301
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-right-top-double-loaded-interior.osw'].include? osw_file
|
2302
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2303
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-left-bottom-double-loaded-interior.osw'].include? osw_file
|
2304
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2305
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-left-middle-double-loaded-interior.osw'].include? osw_file
|
2306
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2307
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-left-top-double-loaded-interior.osw'].include? osw_file
|
2308
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2309
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-middle-bottom-double-loaded-interior.osw'].include? osw_file
|
2310
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2311
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-middle-middle-double-loaded-interior.osw'].include? osw_file
|
2312
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2313
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-middle-top-double-loaded-interior.osw'].include? osw_file
|
2314
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2315
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-right-bottom-double-loaded-interior.osw'].include? osw_file
|
2316
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2317
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-right-middle-double-loaded-interior.osw'].include? osw_file
|
2318
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2319
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-right-top-double-loaded-interior.osw'].include? osw_file
|
2320
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
1861
2321
|
end
|
1862
2322
|
|
1863
2323
|
# Warnings/Errors
|
@@ -1882,6 +2342,7 @@ def get_values(osw_file, step)
|
|
1882
2342
|
step.setArgument('geometry_foundation_height', 0.0)
|
1883
2343
|
elsif ['invalid_files/single-family-attached-ambient.osw'].include? osw_file
|
1884
2344
|
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeAmbient)
|
2345
|
+
step.setArgument('geometry_rim_joist_height', 0)
|
1885
2346
|
elsif ['invalid_files/multifamily-bottom-slab-non-zero-foundation-height.osw'].include? osw_file
|
1886
2347
|
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeSlab)
|
1887
2348
|
step.setArgument('geometry_foundation_height_above_grade', 0.0)
|
@@ -1899,6 +2360,12 @@ def get_values(osw_file, step)
|
|
1899
2360
|
step.setArgument('heating_system_fraction_heat_load_served', 0.4)
|
1900
2361
|
step.setArgument('heating_system_type_2', HPXML::HVACTypeFireplace)
|
1901
2362
|
step.setArgument('heating_system_fraction_heat_load_served_2', 0.6)
|
2363
|
+
elsif ['invalid_files/second-heating-system-serves-total-heat-load.osw'].include? osw_file
|
2364
|
+
step.setArgument('heating_system_type_2', HPXML::HVACTypeFireplace)
|
2365
|
+
step.setArgument('heating_system_fraction_heat_load_served_2', 1.0)
|
2366
|
+
elsif ['invalid_files/second-heating-system-but-no-primary-heating.osw'].include? osw_file
|
2367
|
+
step.setArgument('heating_system_type', 'none')
|
2368
|
+
step.setArgument('heating_system_type_2', HPXML::HVACTypeFireplace)
|
1902
2369
|
elsif ['invalid_files/single-family-attached-no-building-orientation.osw'].include? osw_file
|
1903
2370
|
step.removeArgument('geometry_building_num_units')
|
1904
2371
|
step.removeArgument('geometry_horizontal_location')
|
@@ -1910,16 +2377,20 @@ def get_values(osw_file, step)
|
|
1910
2377
|
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeCrawlspaceVented)
|
1911
2378
|
step.setArgument('geometry_foundation_height', 3.0)
|
1912
2379
|
step.setArgument('floor_assembly_r', 10)
|
2380
|
+
step.setArgument('foundation_wall_insulation_distance_to_bottom', 0.0)
|
1913
2381
|
elsif ['invalid_files/unvented-crawlspace-with-wall-and-ceiling-insulation.osw'].include? osw_file
|
1914
2382
|
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeCrawlspaceUnvented)
|
1915
2383
|
step.setArgument('geometry_foundation_height', 3.0)
|
1916
2384
|
step.setArgument('floor_assembly_r', 10)
|
2385
|
+
step.setArgument('foundation_wall_insulation_distance_to_bottom', 0.0)
|
1917
2386
|
elsif ['invalid_files/unconditioned-basement-with-wall-and-ceiling-insulation.osw'].include? osw_file
|
1918
2387
|
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeBasementUnconditioned)
|
1919
2388
|
step.setArgument('floor_assembly_r', 10)
|
1920
2389
|
elsif ['invalid_files/vented-attic-with-floor-and-roof-insulation.osw'].include? osw_file
|
1921
2390
|
step.setArgument('geometry_attic_type', HPXML::AtticTypeVented)
|
1922
2391
|
step.setArgument('roof_assembly_r', 10)
|
2392
|
+
step.setArgument('ducts_supply_location', HPXML::LocationAtticVented)
|
2393
|
+
step.setArgument('ducts_return_location', HPXML::LocationAtticVented)
|
1923
2394
|
elsif ['invalid_files/unvented-attic-with-floor-and-roof-insulation.osw'].include? osw_file
|
1924
2395
|
step.setArgument('geometry_attic_type', HPXML::AtticTypeUnvented)
|
1925
2396
|
step.setArgument('roof_assembly_r', 10)
|
@@ -1927,20 +2398,36 @@ def get_values(osw_file, step)
|
|
1927
2398
|
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeBasementConditioned)
|
1928
2399
|
step.setArgument('floor_assembly_r', 10)
|
1929
2400
|
elsif ['invalid_files/conditioned-attic-with-floor-insulation.osw'].include? osw_file
|
2401
|
+
step.setArgument('geometry_num_floors_above_grade', 2)
|
1930
2402
|
step.setArgument('geometry_attic_type', HPXML::AtticTypeConditioned)
|
2403
|
+
step.setArgument('ducts_supply_location', HPXML::LocationLivingSpace)
|
2404
|
+
step.setArgument('ducts_return_location', HPXML::LocationLivingSpace)
|
1931
2405
|
elsif ['invalid_files/dhw-indirect-without-boiler.osw'].include? osw_file
|
1932
2406
|
step.setArgument('water_heater_type', HPXML::WaterHeaterTypeCombiStorage)
|
1933
|
-
elsif ['invalid_files/multipliers-without-plug-loads.osw'].include? osw_file
|
2407
|
+
elsif ['invalid_files/multipliers-without-tv-plug-loads.osw'].include? osw_file
|
1934
2408
|
step.setArgument('plug_loads_television_annual_kwh', '0.0')
|
2409
|
+
elsif ['invalid_files/multipliers-without-other-plug-loads.osw'].include? osw_file
|
1935
2410
|
step.setArgument('plug_loads_other_annual_kwh', '0.0')
|
2411
|
+
elsif ['invalid_files/multipliers-without-well-pump-plug-loads.osw'].include? osw_file
|
2412
|
+
step.setArgument('plug_loads_well_pump_annual_kwh', '0.0')
|
1936
2413
|
step.setArgument('plug_loads_well_pump_usage_multiplier', 1.0)
|
1937
|
-
|
2414
|
+
elsif ['invalid_files/multipliers-without-vehicle-plug-loads.osw'].include? osw_file
|
2415
|
+
step.setArgument('plug_loads_vehicle_annual_kwh', '0.0')
|
1938
2416
|
step.setArgument('plug_loads_vehicle_usage_multiplier', 1.0)
|
1939
|
-
step.setArgument('plug_loads_vehicle_usage_multiplier_2', 1.0)
|
1940
2417
|
elsif ['invalid_files/multipliers-without-fuel-loads.osw'].include? osw_file
|
1941
2418
|
step.setArgument('fuel_loads_grill_usage_multiplier', 1.0)
|
1942
2419
|
step.setArgument('fuel_loads_lighting_usage_multiplier', 1.0)
|
1943
2420
|
step.setArgument('fuel_loads_fireplace_usage_multiplier', 1.0)
|
2421
|
+
elsif ['invalid_files/foundation-wall-insulation-greater-than-height.osw'].include? osw_file
|
2422
|
+
step.setArgument('floor_assembly_r', 0)
|
2423
|
+
step.setArgument('foundation_wall_insulation_distance_to_bottom', 6.0)
|
2424
|
+
elsif ['invalid_files/conditioned-attic-with-one-floor-above-grade.osw'].include? osw_file
|
2425
|
+
step.setArgument('geometry_attic_type', HPXML::AtticTypeConditioned)
|
2426
|
+
step.setArgument('ceiling_assembly_r', 0.0)
|
2427
|
+
elsif ['invalid_files/zero-number-of-bedrooms.osw'].include? osw_file
|
2428
|
+
step.setArgument('geometry_num_bedrooms', 0)
|
2429
|
+
elsif ['invalid_files/single-family-detached-with-shared-system.osw'].include? osw_file
|
2430
|
+
step.setArgument('heating_system_type', "Shared #{HPXML::HVACTypeBoiler} w/ Baseboard")
|
1944
2431
|
end
|
1945
2432
|
return step
|
1946
2433
|
end
|
@@ -1950,6 +2437,7 @@ def create_hpxmls
|
|
1950
2437
|
require_relative 'HPXMLtoOpenStudio/resources/constants'
|
1951
2438
|
require_relative 'HPXMLtoOpenStudio/resources/hotwater_appliances'
|
1952
2439
|
require_relative 'HPXMLtoOpenStudio/resources/hpxml'
|
2440
|
+
require_relative 'HPXMLtoOpenStudio/resources/location'
|
1953
2441
|
require_relative 'HPXMLtoOpenStudio/resources/misc_loads'
|
1954
2442
|
require_relative 'HPXMLtoOpenStudio/resources/waterheater'
|
1955
2443
|
require_relative 'HPXMLtoOpenStudio/resources/xmlhelper'
|
@@ -1989,14 +2477,19 @@ def create_hpxmls
|
|
1989
2477
|
'ASHRAE_Standard_140/L304XC.xml' => 'ASHRAE_Standard_140/L302XC.xml',
|
1990
2478
|
'ASHRAE_Standard_140/L324XC.xml' => 'ASHRAE_Standard_140/L322XC.xml',
|
1991
2479
|
|
2480
|
+
'invalid_files/boiler-invalid-afue.xml' => 'base-hvac-boiler-oil-only.xml',
|
1992
2481
|
'invalid_files/cfis-with-hydronic-distribution.xml' => 'base-hvac-boiler-gas-only.xml',
|
1993
2482
|
'invalid_files/clothes-washer-location.xml' => 'base.xml',
|
1994
2483
|
'invalid_files/clothes-dryer-location.xml' => 'base.xml',
|
1995
2484
|
'invalid_files/cooking-range-location.xml' => 'base.xml',
|
2485
|
+
'invalid_files/dehumidifier-fraction-served.xml' => 'base-appliances-dehumidifier-multiple.xml',
|
2486
|
+
'invalid_files/dehumidifier-setpoints.xml' => 'base-appliances-dehumidifier-multiple.xml',
|
1996
2487
|
'invalid_files/dhw-frac-load-served.xml' => 'base-dhw-multiple.xml',
|
1997
2488
|
'invalid_files/dhw-invalid-ef-tank.xml' => 'base.xml',
|
1998
2489
|
'invalid_files/dhw-invalid-uef-tank-heat-pump.xml' => 'base-dhw-tank-heat-pump-uef.xml',
|
1999
2490
|
'invalid_files/dishwasher-location.xml' => 'base.xml',
|
2491
|
+
'invalid_files/duct-leakage-cfm25.xml' => 'base.xml',
|
2492
|
+
'invalid_files/duct-leakage-percent.xml' => 'base.xml',
|
2000
2493
|
'invalid_files/duct-location.xml' => 'base.xml',
|
2001
2494
|
'invalid_files/duct-location-unconditioned-space.xml' => 'base.xml',
|
2002
2495
|
'invalid_files/duplicate-id.xml' => 'base.xml',
|
@@ -2004,14 +2497,19 @@ def create_hpxmls
|
|
2004
2497
|
'invalid_files/enclosure-basement-missing-exterior-foundation-wall.xml' => 'base-foundation-unconditioned-basement.xml',
|
2005
2498
|
'invalid_files/enclosure-basement-missing-slab.xml' => 'base-foundation-unconditioned-basement.xml',
|
2006
2499
|
'invalid_files/enclosure-floor-area-exceeds-cfa.xml' => 'base.xml',
|
2500
|
+
'invalid_files/enclosure-floor-area-exceeds-cfa2.xml' => 'base-bldgtype-multifamily.xml',
|
2007
2501
|
'invalid_files/enclosure-garage-missing-exterior-wall.xml' => 'base-enclosure-garage.xml',
|
2008
2502
|
'invalid_files/enclosure-garage-missing-roof-ceiling.xml' => 'base-enclosure-garage.xml',
|
2009
2503
|
'invalid_files/enclosure-garage-missing-slab.xml' => 'base-enclosure-garage.xml',
|
2010
2504
|
'invalid_files/enclosure-living-missing-ceiling-roof.xml' => 'base.xml',
|
2011
2505
|
'invalid_files/enclosure-living-missing-exterior-wall.xml' => 'base.xml',
|
2012
|
-
'invalid_files/enclosure-living-missing-floor-slab.xml' => 'base.xml',
|
2506
|
+
'invalid_files/enclosure-living-missing-floor-slab.xml' => 'base-foundation-slab.xml',
|
2507
|
+
'invalid_files/frac-sensible-fuel-load.xml' => 'base-misc-loads-large-uncommon.xml',
|
2508
|
+
'invalid_files/frac-sensible-plug-load.xml' => 'base-misc-loads-large-uncommon.xml',
|
2509
|
+
'invalid_files/frac-total-fuel-load.xml' => 'base-misc-loads-large-uncommon.xml',
|
2510
|
+
'invalid_files/frac-total-plug-load.xml' => 'base-misc-loads-large-uncommon.xml',
|
2511
|
+
'invalid_files/furnace-invalid-afue.xml' => 'base.xml',
|
2013
2512
|
'invalid_files/heat-pump-mixed-fixed-and-autosize-capacities.xml' => 'base-hvac-air-to-air-heat-pump-1-speed.xml',
|
2014
|
-
'invalid_files/heat-pump-mixed-fixed-and-autosize-capacities2.xml' => 'base-hvac-air-to-air-heat-pump-1-speed.xml',
|
2015
2513
|
'invalid_files/hvac-invalid-distribution-system-type.xml' => 'base.xml',
|
2016
2514
|
'invalid_files/hvac-distribution-multiple-attached-cooling.xml' => 'base-hvac-multiple.xml',
|
2017
2515
|
'invalid_files/hvac-distribution-multiple-attached-heating.xml' => 'base-hvac-multiple.xml',
|
@@ -2020,6 +2518,10 @@ def create_hpxmls
|
|
2020
2518
|
'invalid_files/hvac-dse-multiple-attached-heating.xml' => 'base-hvac-dse.xml',
|
2021
2519
|
'invalid_files/hvac-frac-load-served.xml' => 'base-hvac-multiple.xml',
|
2022
2520
|
'invalid_files/hvac-inconsistent-fan-powers.xml' => 'base.xml',
|
2521
|
+
'invalid_files/hvac-shared-negative-seer-eq.xml' => 'base-bldgtype-multifamily-shared-chiller-only-baseboard.xml',
|
2522
|
+
'invalid_files/generator-number-of-bedrooms-served.xml' => 'base-bldgtype-multifamily-shared-generator.xml',
|
2523
|
+
'invalid_files/generator-output-greater-than-consumption.xml' => 'base-misc-generators.xml',
|
2524
|
+
'invalid_files/invalid-assembly-effective-rvalue.xml' => 'base.xml',
|
2023
2525
|
'invalid_files/invalid-datatype-boolean.xml' => 'base.xml',
|
2024
2526
|
'invalid_files/invalid-datatype-float.xml' => 'base.xml',
|
2025
2527
|
'invalid_files/invalid-datatype-integer.xml' => 'base.xml',
|
@@ -2027,12 +2529,20 @@ def create_hpxmls
|
|
2027
2529
|
'invalid_files/invalid-epw-filepath.xml' => 'base.xml',
|
2028
2530
|
'invalid_files/invalid-facility-type-equipment.xml' => 'base-bldgtype-multifamily-shared-laundry-room.xml',
|
2029
2531
|
'invalid_files/invalid-facility-type-surfaces.xml' => 'base.xml',
|
2532
|
+
'invalid_files/invalid-foundation-wall-properties.xml' => 'base-foundation-unconditioned-basement-wall-insulation.xml',
|
2533
|
+
'invalid_files/invalid-id.xml' => 'base-enclosure-skylights.xml',
|
2534
|
+
'invalid_files/invalid-id2.xml' => 'base-enclosure-skylights.xml',
|
2535
|
+
'invalid_files/invalid-infiltration-volume.xml' => 'base.xml',
|
2030
2536
|
'invalid_files/invalid-input-parameters.xml' => 'base.xml',
|
2031
2537
|
'invalid_files/invalid-neighbor-shading-azimuth.xml' => 'base-misc-neighbor-shading.xml',
|
2538
|
+
'invalid_files/invalid-number-of-bedrooms-served.xml' => 'base-bldgtype-multifamily-shared-pv.xml',
|
2539
|
+
'invalid_files/invalid-number-of-conditioned-floors.xml' => 'base.xml',
|
2540
|
+
'invalid_files/invalid-number-of-units-served.xml' => 'base-bldgtype-multifamily-shared-water-heater.xml',
|
2032
2541
|
'invalid_files/invalid-relatedhvac-dhw-indirect.xml' => 'base-dhw-indirect.xml',
|
2033
2542
|
'invalid_files/invalid-relatedhvac-desuperheater.xml' => 'base-hvac-central-ac-only-1-speed.xml',
|
2034
2543
|
'invalid_files/invalid-runperiod.xml' => 'base.xml',
|
2035
2544
|
'invalid_files/invalid-schema-version.xml' => 'base.xml',
|
2545
|
+
'invalid_files/invalid-shared-vent-in-unit-flowrate.xml' => 'base-bldgtype-multifamily-shared-mechvent.xml',
|
2036
2546
|
'invalid_files/invalid-timestep.xml' => 'base.xml',
|
2037
2547
|
'invalid_files/invalid-window-height.xml' => 'base-enclosure-overhangs.xml',
|
2038
2548
|
'invalid_files/lighting-fractions.xml' => 'base.xml',
|
@@ -2041,6 +2551,10 @@ def create_hpxmls
|
|
2041
2551
|
'invalid_files/multifamily-reference-duct.xml' => 'base.xml',
|
2042
2552
|
'invalid_files/multifamily-reference-surface.xml' => 'base.xml',
|
2043
2553
|
'invalid_files/multifamily-reference-water-heater.xml' => 'base.xml',
|
2554
|
+
'invalid_files/multiple-buildings-without-building-id.xml' => 'base.xml',
|
2555
|
+
'invalid_files/multiple-buildings-wrong-building-id.xml' => 'base.xml',
|
2556
|
+
'invalid_files/multiple-shared-cooling-systems.xml' => 'base-bldgtype-multifamily-shared-chiller-only-baseboard.xml',
|
2557
|
+
'invalid_files/multiple-shared-heating-systems.xml' => 'base-bldgtype-multifamily-shared-boiler-only-baseboard.xml',
|
2044
2558
|
'invalid_files/net-area-negative-roof.xml' => 'base-enclosure-skylights.xml',
|
2045
2559
|
'invalid_files/net-area-negative-wall.xml' => 'base.xml',
|
2046
2560
|
'invalid_files/num-bedrooms-exceeds-limit.xml' => 'base.xml',
|
@@ -2048,7 +2562,7 @@ def create_hpxmls
|
|
2048
2562
|
'invalid_files/refrigerator-location.xml' => 'base.xml',
|
2049
2563
|
'invalid_files/repeated-relatedhvac-dhw-indirect.xml' => 'base-dhw-indirect.xml',
|
2050
2564
|
'invalid_files/repeated-relatedhvac-desuperheater.xml' => 'base-hvac-central-ac-only-1-speed.xml',
|
2051
|
-
'invalid_files/
|
2565
|
+
'invalid_files/solar-fraction-one.xml' => 'base-dhw-solar-fraction.xml',
|
2052
2566
|
'invalid_files/solar-thermal-system-with-combi-tankless.xml' => 'base-dhw-combi-tankless.xml',
|
2053
2567
|
'invalid_files/solar-thermal-system-with-desuperheater.xml' => 'base-dhw-desuperheater.xml',
|
2054
2568
|
'invalid_files/solar-thermal-system-with-dhw-indirect.xml' => 'base-dhw-combi-tankless.xml',
|
@@ -2068,9 +2582,9 @@ def create_hpxmls
|
|
2068
2582
|
'invalid_files/refrigerators-no-primary.xml' => 'base.xml',
|
2069
2583
|
'base-appliances-coal.xml' => 'base.xml',
|
2070
2584
|
'base-appliances-dehumidifier.xml' => 'base-location-dallas-tx.xml',
|
2071
|
-
'base-appliances-dehumidifier-50percent.xml' => 'base-appliances-dehumidifier.xml',
|
2072
2585
|
'base-appliances-dehumidifier-ief-portable.xml' => 'base-appliances-dehumidifier.xml',
|
2073
2586
|
'base-appliances-dehumidifier-ief-whole-home.xml' => 'base-appliances-dehumidifier-ief-portable.xml',
|
2587
|
+
'base-appliances-dehumidifier-multiple.xml' => 'base-appliances-dehumidifier.xml',
|
2074
2588
|
'base-appliances-gas.xml' => 'base.xml',
|
2075
2589
|
'base-appliances-modified.xml' => 'base.xml',
|
2076
2590
|
'base-appliances-none.xml' => 'base.xml',
|
@@ -2181,10 +2695,12 @@ def create_hpxmls
|
|
2181
2695
|
'base-enclosure-overhangs.xml' => 'base.xml',
|
2182
2696
|
'base-enclosure-rooftypes.xml' => 'base.xml',
|
2183
2697
|
'base-enclosure-skylights.xml' => 'base.xml',
|
2698
|
+
'base-enclosure-skylights-shading.xml' => 'base-enclosure-skylights.xml',
|
2184
2699
|
'base-enclosure-split-level.xml' => 'base-foundation-slab.xml',
|
2185
|
-
'base-enclosure-split-surfaces.xml' => 'base-enclosure-skylights.xml',
|
2700
|
+
'base-enclosure-split-surfaces.xml' => 'base-enclosure-skylights.xml', # Surfaces should collapse via HPXML.collapse_enclosure_surfaces()
|
2701
|
+
'base-enclosure-split-surfaces2.xml' => 'base-enclosure-skylights.xml', # Surfaces should NOT collapse via HPXML.collapse_enclosure_surfaces()
|
2186
2702
|
'base-enclosure-walltypes.xml' => 'base.xml',
|
2187
|
-
'base-enclosure-windows-
|
2703
|
+
'base-enclosure-windows-shading.xml' => 'base.xml',
|
2188
2704
|
'base-enclosure-windows-none.xml' => 'base.xml',
|
2189
2705
|
'base-foundation-multiple.xml' => 'base-foundation-unconditioned-basement.xml',
|
2190
2706
|
'base-foundation-ambient.xml' => 'base.xml',
|
@@ -2199,9 +2715,50 @@ def create_hpxmls
|
|
2199
2715
|
'base-foundation-vented-crawlspace.xml' => 'base.xml',
|
2200
2716
|
'base-foundation-walkout-basement.xml' => 'base.xml',
|
2201
2717
|
'base-foundation-complex.xml' => 'base.xml',
|
2718
|
+
'base-foundation-basement-garage.xml' => 'base.xml',
|
2202
2719
|
'base-hvac-air-to-air-heat-pump-1-speed.xml' => 'base.xml',
|
2720
|
+
'base-hvac-air-to-air-heat-pump-1-speed-cooling-only.xml' => 'base-hvac-air-to-air-heat-pump-1-speed.xml',
|
2721
|
+
'base-hvac-air-to-air-heat-pump-1-speed-heating-only.xml' => 'base-hvac-air-to-air-heat-pump-1-speed.xml',
|
2203
2722
|
'base-hvac-air-to-air-heat-pump-2-speed.xml' => 'base.xml',
|
2204
2723
|
'base-hvac-air-to-air-heat-pump-var-speed.xml' => 'base.xml',
|
2724
|
+
'base-hvac-autosize.xml' => 'base.xml',
|
2725
|
+
'base-hvac-autosize-air-to-air-heat-pump-1-speed.xml' => 'base-hvac-air-to-air-heat-pump-1-speed.xml',
|
2726
|
+
'base-hvac-autosize-air-to-air-heat-pump-1-speed-cooling-only.xml' => 'base-hvac-air-to-air-heat-pump-1-speed-cooling-only.xml',
|
2727
|
+
'base-hvac-autosize-air-to-air-heat-pump-1-speed-heating-only.xml' => 'base-hvac-air-to-air-heat-pump-1-speed-heating-only.xml',
|
2728
|
+
'base-hvac-autosize-air-to-air-heat-pump-1-speed-manual-s-oversize-allowances.xml' => 'base-hvac-autosize-air-to-air-heat-pump-1-speed.xml',
|
2729
|
+
'base-hvac-autosize-air-to-air-heat-pump-2-speed.xml' => 'base-hvac-air-to-air-heat-pump-2-speed.xml',
|
2730
|
+
'base-hvac-autosize-air-to-air-heat-pump-2-speed-manual-s-oversize-allowances.xml' => 'base-hvac-autosize-air-to-air-heat-pump-2-speed.xml',
|
2731
|
+
'base-hvac-autosize-air-to-air-heat-pump-var-speed.xml' => 'base-hvac-air-to-air-heat-pump-var-speed.xml',
|
2732
|
+
'base-hvac-autosize-air-to-air-heat-pump-var-speed-manual-s-oversize-allowances.xml' => 'base-hvac-autosize-air-to-air-heat-pump-var-speed.xml',
|
2733
|
+
'base-hvac-autosize-boiler-elec-only.xml' => 'base-hvac-boiler-elec-only.xml',
|
2734
|
+
'base-hvac-autosize-boiler-gas-central-ac-1-speed.xml' => 'base-hvac-boiler-gas-central-ac-1-speed.xml',
|
2735
|
+
'base-hvac-autosize-boiler-gas-only.xml' => 'base-hvac-boiler-gas-only.xml',
|
2736
|
+
'base-hvac-autosize-central-ac-only-1-speed.xml' => 'base-hvac-central-ac-only-1-speed.xml',
|
2737
|
+
'base-hvac-autosize-central-ac-only-2-speed.xml' => 'base-hvac-central-ac-only-2-speed.xml',
|
2738
|
+
'base-hvac-autosize-central-ac-only-var-speed.xml' => 'base-hvac-central-ac-only-var-speed.xml',
|
2739
|
+
'base-hvac-autosize-central-ac-plus-air-to-air-heat-pump-heating.xml' => 'base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml',
|
2740
|
+
'base-hvac-autosize-dual-fuel-air-to-air-heat-pump-1-speed.xml' => 'base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml',
|
2741
|
+
'base-hvac-autosize-dual-fuel-mini-split-heat-pump-ducted.xml' => 'base-hvac-dual-fuel-mini-split-heat-pump-ducted.xml',
|
2742
|
+
'base-hvac-autosize-elec-resistance-only.xml' => 'base-hvac-elec-resistance-only.xml',
|
2743
|
+
'base-hvac-autosize-evap-cooler-furnace-gas.xml' => 'base-hvac-evap-cooler-furnace-gas.xml',
|
2744
|
+
'base-hvac-autosize-floor-furnace-propane-only.xml' => 'base-hvac-floor-furnace-propane-only.xml',
|
2745
|
+
'base-hvac-autosize-furnace-elec-only.xml' => 'base-hvac-furnace-elec-only.xml',
|
2746
|
+
'base-hvac-autosize-furnace-gas-central-ac-2-speed.xml' => 'base-hvac-furnace-gas-central-ac-2-speed.xml',
|
2747
|
+
'base-hvac-autosize-furnace-gas-central-ac-var-speed.xml' => 'base-hvac-furnace-gas-central-ac-var-speed.xml',
|
2748
|
+
'base-hvac-autosize-furnace-gas-only.xml' => 'base-hvac-furnace-gas-only.xml',
|
2749
|
+
'base-hvac-autosize-furnace-gas-room-ac.xml' => 'base-hvac-furnace-gas-room-ac.xml',
|
2750
|
+
'base-hvac-autosize-ground-to-air-heat-pump.xml' => 'base-hvac-ground-to-air-heat-pump.xml',
|
2751
|
+
'base-hvac-autosize-ground-to-air-heat-pump-cooling-only.xml' => 'base-hvac-ground-to-air-heat-pump-cooling-only.xml',
|
2752
|
+
'base-hvac-autosize-ground-to-air-heat-pump-heating-only.xml' => 'base-hvac-ground-to-air-heat-pump-heating-only.xml',
|
2753
|
+
'base-hvac-autosize-ground-to-air-heat-pump-manual-s-oversize-allowances.xml' => 'base-hvac-autosize-ground-to-air-heat-pump.xml',
|
2754
|
+
'base-hvac-autosize-mini-split-heat-pump-ducted.xml' => 'base-hvac-mini-split-heat-pump-ducted.xml',
|
2755
|
+
'base-hvac-autosize-mini-split-heat-pump-ducted-cooling-only.xml' => 'base-hvac-mini-split-heat-pump-ducted-cooling-only.xml',
|
2756
|
+
'base-hvac-autosize-mini-split-heat-pump-ducted-heating-only.xml' => 'base-hvac-mini-split-heat-pump-ducted-heating-only.xml',
|
2757
|
+
'base-hvac-autosize-mini-split-heat-pump-ducted-manual-s-oversize-allowances.xml' => 'base-hvac-autosize-mini-split-heat-pump-ducted.xml',
|
2758
|
+
'base-hvac-autosize-mini-split-air-conditioner-only-ducted.xml' => 'base-hvac-mini-split-air-conditioner-only-ducted.xml',
|
2759
|
+
'base-hvac-autosize-room-ac-only.xml' => 'base-hvac-room-ac-only.xml',
|
2760
|
+
'base-hvac-autosize-stove-oil-only.xml' => 'base-hvac-stove-oil-only.xml',
|
2761
|
+
'base-hvac-autosize-wall-furnace-elec-only.xml' => 'base-hvac-wall-furnace-elec-only.xml',
|
2205
2762
|
'base-hvac-boiler-coal-only.xml' => 'base.xml',
|
2206
2763
|
'base-hvac-boiler-elec-only.xml' => 'base.xml',
|
2207
2764
|
'base-hvac-boiler-gas-central-ac-1-speed.xml' => 'base.xml',
|
@@ -2239,15 +2796,29 @@ def create_hpxmls
|
|
2239
2796
|
'base-hvac-furnace-wood-only.xml' => 'base.xml',
|
2240
2797
|
'base-hvac-furnace-x3-dse.xml' => 'base.xml',
|
2241
2798
|
'base-hvac-ground-to-air-heat-pump.xml' => 'base.xml',
|
2242
|
-
'base-hvac-
|
2799
|
+
'base-hvac-ground-to-air-heat-pump-cooling-only.xml' => 'base-hvac-ground-to-air-heat-pump.xml',
|
2800
|
+
'base-hvac-ground-to-air-heat-pump-heating-only.xml' => 'base-hvac-ground-to-air-heat-pump.xml',
|
2801
|
+
'base-hvac-install-quality-none-furnace-gas-central-ac-1-speed.xml' => 'base.xml',
|
2802
|
+
'base-hvac-install-quality-airflow-defect-furnace-gas-central-ac-1-speed.xml' => 'base.xml',
|
2803
|
+
'base-hvac-install-quality-charge-defect-furnace-gas-central-ac-1-speed.xml' => 'base.xml',
|
2804
|
+
'base-hvac-install-quality-blower-efficiency-furnace-gas-central-ac-1-speed.xml' => 'base.xml',
|
2805
|
+
'base-hvac-install-quality-all-air-to-air-heat-pump-1-speed.xml' => 'base-hvac-air-to-air-heat-pump-1-speed.xml',
|
2806
|
+
'base-hvac-install-quality-all-air-to-air-heat-pump-2-speed.xml' => 'base-hvac-air-to-air-heat-pump-2-speed.xml',
|
2807
|
+
'base-hvac-install-quality-all-air-to-air-heat-pump-var-speed.xml' => 'base-hvac-air-to-air-heat-pump-var-speed.xml',
|
2808
|
+
'base-hvac-install-quality-all-furnace-gas-central-ac-1-speed.xml' => 'base.xml',
|
2809
|
+
'base-hvac-install-quality-all-furnace-gas-central-ac-2-speed.xml' => 'base-hvac-furnace-gas-central-ac-2-speed.xml',
|
2810
|
+
'base-hvac-install-quality-all-furnace-gas-central-ac-var-speed.xml' => 'base-hvac-furnace-gas-central-ac-var-speed.xml',
|
2811
|
+
'base-hvac-install-quality-all-furnace-gas-only.xml' => 'base-hvac-furnace-gas-only.xml',
|
2812
|
+
'base-hvac-install-quality-all-ground-to-air-heat-pump.xml' => 'base-hvac-ground-to-air-heat-pump.xml',
|
2813
|
+
'base-hvac-install-quality-all-mini-split-heat-pump-ducted.xml' => 'base-hvac-mini-split-heat-pump-ducted.xml',
|
2814
|
+
'base-hvac-install-quality-all-mini-split-air-conditioner-only-ducted.xml' => 'base-hvac-mini-split-air-conditioner-only-ducted.xml',
|
2243
2815
|
'base-hvac-mini-split-air-conditioner-only-ducted.xml' => 'base.xml',
|
2244
2816
|
'base-hvac-mini-split-air-conditioner-only-ductless.xml' => 'base-hvac-mini-split-air-conditioner-only-ducted.xml',
|
2245
2817
|
'base-hvac-mini-split-heat-pump-ducted.xml' => 'base.xml',
|
2246
|
-
'base-hvac-mini-split-heat-pump-ducted-heating-only.xml' => 'base-hvac-mini-split-heat-pump-ducted.xml',
|
2247
2818
|
'base-hvac-mini-split-heat-pump-ducted-cooling-only.xml' => 'base-hvac-mini-split-heat-pump-ducted.xml',
|
2819
|
+
'base-hvac-mini-split-heat-pump-ducted-heating-only.xml' => 'base-hvac-mini-split-heat-pump-ducted.xml',
|
2248
2820
|
'base-hvac-mini-split-heat-pump-ductless.xml' => 'base-hvac-mini-split-heat-pump-ducted.xml',
|
2249
2821
|
'base-hvac-multiple.xml' => 'base.xml',
|
2250
|
-
'base-hvac-multiple2.xml' => 'base.xml',
|
2251
2822
|
'base-hvac-none.xml' => 'base.xml',
|
2252
2823
|
'base-hvac-portable-heater-gas-only.xml' => 'base.xml',
|
2253
2824
|
'base-hvac-programmable-thermostat.xml' => 'base.xml',
|
@@ -2264,10 +2835,14 @@ def create_hpxmls
|
|
2264
2835
|
'base-lighting-detailed.xml' => 'base.xml',
|
2265
2836
|
'base-lighting-none.xml' => 'base.xml',
|
2266
2837
|
'base-location-AMY-2012.xml' => 'base.xml',
|
2267
|
-
'base-location-baltimore-md.xml' => 'base.xml',
|
2838
|
+
'base-location-baltimore-md.xml' => 'base-foundation-unvented-crawlspace.xml',
|
2268
2839
|
'base-location-dallas-tx.xml' => 'base-foundation-slab.xml',
|
2269
|
-
'base-location-duluth-mn.xml' => 'base.xml',
|
2840
|
+
'base-location-duluth-mn.xml' => 'base-foundation-unconditioned-basement.xml',
|
2841
|
+
'base-location-helena-mt.xml' => 'base.xml',
|
2842
|
+
'base-location-honolulu-hi.xml' => 'base-foundation-slab.xml',
|
2270
2843
|
'base-location-miami-fl.xml' => 'base-foundation-slab.xml',
|
2844
|
+
'base-location-phoenix-az.xml' => 'base-foundation-slab.xml',
|
2845
|
+
'base-location-portland-or.xml' => 'base-foundation-vented-crawlspace.xml',
|
2271
2846
|
'base-mechvent-balanced.xml' => 'base.xml',
|
2272
2847
|
'base-mechvent-bath-kitchen-fans.xml' => 'base.xml',
|
2273
2848
|
'base-mechvent-cfis.xml' => 'base.xml',
|
@@ -2288,8 +2863,9 @@ def create_hpxmls
|
|
2288
2863
|
'base-misc-loads-large-uncommon2.xml' => 'base-misc-loads-large-uncommon.xml',
|
2289
2864
|
'base-misc-loads-none.xml' => 'base.xml',
|
2290
2865
|
'base-misc-neighbor-shading.xml' => 'base.xml',
|
2291
|
-
'base-misc-
|
2866
|
+
'base-misc-shielding-of-home.xml' => 'base.xml',
|
2292
2867
|
'base-misc-usage-multiplier.xml' => 'base.xml',
|
2868
|
+
'base-multiple-buildings.xml' => 'base.xml',
|
2293
2869
|
'base-pv.xml' => 'base.xml',
|
2294
2870
|
'base-simcontrol-calendar-year-custom.xml' => 'base.xml',
|
2295
2871
|
'base-simcontrol-daylight-saving-custom.xml' => 'base.xml',
|
@@ -2297,42 +2873,8 @@ def create_hpxmls
|
|
2297
2873
|
'base-simcontrol-runperiod-1-month.xml' => 'base.xml',
|
2298
2874
|
'base-simcontrol-timestep-10-mins.xml' => 'base.xml',
|
2299
2875
|
'base-schedules-stochastic.xml' => 'base.xml',
|
2876
|
+
'base-schedules-stochastic-vacant.xml' => 'base-schedules-stochastic.xml',
|
2300
2877
|
'base-schedules-user-specified.xml' => 'base.xml',
|
2301
|
-
|
2302
|
-
'hvac_autosizing/base-autosize.xml' => 'base.xml',
|
2303
|
-
'hvac_autosizing/base-hvac-air-to-air-heat-pump-1-speed-autosize.xml' => 'base-hvac-air-to-air-heat-pump-1-speed.xml',
|
2304
|
-
'hvac_autosizing/base-hvac-air-to-air-heat-pump-1-speed-autosize-manual-s-oversize-allowances.xml' => 'hvac_autosizing/base-hvac-air-to-air-heat-pump-1-speed-autosize.xml',
|
2305
|
-
'hvac_autosizing/base-hvac-air-to-air-heat-pump-2-speed-autosize.xml' => 'base-hvac-air-to-air-heat-pump-2-speed.xml',
|
2306
|
-
'hvac_autosizing/base-hvac-air-to-air-heat-pump-2-speed-autosize-manual-s-oversize-allowances.xml' => 'hvac_autosizing/base-hvac-air-to-air-heat-pump-2-speed-autosize.xml',
|
2307
|
-
'hvac_autosizing/base-hvac-air-to-air-heat-pump-var-speed-autosize.xml' => 'base-hvac-air-to-air-heat-pump-var-speed.xml',
|
2308
|
-
'hvac_autosizing/base-hvac-air-to-air-heat-pump-var-speed-autosize-manual-s-oversize-allowances.xml' => 'hvac_autosizing/base-hvac-air-to-air-heat-pump-var-speed-autosize.xml',
|
2309
|
-
'hvac_autosizing/base-hvac-boiler-elec-only-autosize.xml' => 'base-hvac-boiler-elec-only.xml',
|
2310
|
-
'hvac_autosizing/base-hvac-boiler-gas-central-ac-1-speed-autosize.xml' => 'base-hvac-boiler-gas-central-ac-1-speed.xml',
|
2311
|
-
'hvac_autosizing/base-hvac-boiler-gas-only-autosize.xml' => 'base-hvac-boiler-gas-only.xml',
|
2312
|
-
'hvac_autosizing/base-hvac-central-ac-only-1-speed-autosize.xml' => 'base-hvac-central-ac-only-1-speed.xml',
|
2313
|
-
'hvac_autosizing/base-hvac-central-ac-only-2-speed-autosize.xml' => 'base-hvac-central-ac-only-2-speed.xml',
|
2314
|
-
'hvac_autosizing/base-hvac-central-ac-only-var-speed-autosize.xml' => 'base-hvac-central-ac-only-var-speed.xml',
|
2315
|
-
'hvac_autosizing/base-hvac-central-ac-plus-air-to-air-heat-pump-heating-autosize.xml' => 'base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml',
|
2316
|
-
'hvac_autosizing/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-autosize.xml' => 'base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml',
|
2317
|
-
'hvac_autosizing/base-hvac-dual-fuel-mini-split-heat-pump-ducted-autosize.xml' => 'base-hvac-dual-fuel-mini-split-heat-pump-ducted.xml',
|
2318
|
-
'hvac_autosizing/base-hvac-elec-resistance-only-autosize.xml' => 'base-hvac-elec-resistance-only.xml',
|
2319
|
-
'hvac_autosizing/base-hvac-evap-cooler-furnace-gas-autosize.xml' => 'base-hvac-evap-cooler-furnace-gas.xml',
|
2320
|
-
'hvac_autosizing/base-hvac-floor-furnace-propane-only-autosize.xml' => 'base-hvac-floor-furnace-propane-only.xml',
|
2321
|
-
'hvac_autosizing/base-hvac-furnace-elec-only-autosize.xml' => 'base-hvac-furnace-elec-only.xml',
|
2322
|
-
'hvac_autosizing/base-hvac-furnace-gas-central-ac-2-speed-autosize.xml' => 'base-hvac-furnace-gas-central-ac-2-speed.xml',
|
2323
|
-
'hvac_autosizing/base-hvac-furnace-gas-central-ac-var-speed-autosize.xml' => 'base-hvac-furnace-gas-central-ac-var-speed.xml',
|
2324
|
-
'hvac_autosizing/base-hvac-furnace-gas-only-autosize.xml' => 'base-hvac-furnace-gas-only.xml',
|
2325
|
-
'hvac_autosizing/base-hvac-furnace-gas-room-ac-autosize.xml' => 'base-hvac-furnace-gas-room-ac.xml',
|
2326
|
-
'hvac_autosizing/base-hvac-ground-to-air-heat-pump-autosize.xml' => 'base-hvac-ground-to-air-heat-pump.xml',
|
2327
|
-
'hvac_autosizing/base-hvac-ground-to-air-heat-pump-autosize-manual-s-oversize-allowances.xml' => 'hvac_autosizing/base-hvac-ground-to-air-heat-pump-autosize.xml',
|
2328
|
-
'hvac_autosizing/base-hvac-mini-split-heat-pump-ducted-autosize.xml' => 'base-hvac-mini-split-heat-pump-ducted.xml',
|
2329
|
-
'hvac_autosizing/base-hvac-mini-split-heat-pump-ducted-autosize-manual-s-oversize-allowances.xml' => 'hvac_autosizing/base-hvac-mini-split-heat-pump-ducted-autosize.xml',
|
2330
|
-
'hvac_autosizing/base-hvac-mini-split-heat-pump-ducted-heating-only-autosize.xml' => 'base-hvac-mini-split-heat-pump-ducted-heating-only.xml',
|
2331
|
-
'hvac_autosizing/base-hvac-mini-split-heat-pump-ducted-cooling-only-autosize.xml' => 'base-hvac-mini-split-heat-pump-ducted-cooling-only.xml',
|
2332
|
-
'hvac_autosizing/base-hvac-mini-split-air-conditioner-only-ducted-autosize.xml' => 'base-hvac-mini-split-air-conditioner-only-ducted.xml',
|
2333
|
-
'hvac_autosizing/base-hvac-room-ac-only-autosize.xml' => 'base-hvac-room-ac-only.xml',
|
2334
|
-
'hvac_autosizing/base-hvac-stove-oil-only-autosize.xml' => 'base-hvac-stove-oil-only.xml',
|
2335
|
-
'hvac_autosizing/base-hvac-wall-furnace-elec-only-autosize.xml' => 'base-hvac-wall-furnace-elec-only.xml',
|
2336
2878
|
}
|
2337
2879
|
|
2338
2880
|
puts "Generating #{hpxmls_files.size} HPXML files..."
|
@@ -2418,6 +2960,9 @@ def create_hpxmls
|
|
2418
2960
|
elsif ['invalid_files/invalid-schema-version.xml'].include? derivative
|
2419
2961
|
root = XMLHelper.get_element(hpxml_doc, '/HPXML')
|
2420
2962
|
XMLHelper.add_attribute(root, 'schemaVersion', '2.3')
|
2963
|
+
elsif ['invalid_files/invalid-id2.xml'].include? derivative
|
2964
|
+
element = XMLHelper.get_element(hpxml_doc, '/HPXML/Building/BuildingDetails/Enclosure/Skylights/Skylight/SystemIdentifier')
|
2965
|
+
XMLHelper.delete_attribute(element, 'id')
|
2421
2966
|
end
|
2422
2967
|
|
2423
2968
|
if derivative.include? 'ASHRAE_Standard_140'
|
@@ -2428,6 +2973,20 @@ def create_hpxmls
|
|
2428
2973
|
|
2429
2974
|
XMLHelper.write_file(hpxml_doc, hpxml_path)
|
2430
2975
|
|
2976
|
+
if ['base-multiple-buildings.xml',
|
2977
|
+
'invalid_files/multiple-buildings-without-building-id.xml',
|
2978
|
+
'invalid_files/multiple-buildings-wrong-building-id.xml'].include? derivative
|
2979
|
+
# HPXML class doesn't support multiple buildings, so we'll stitch together manually.
|
2980
|
+
hpxml_element = XMLHelper.get_element(hpxml_doc, '/HPXML')
|
2981
|
+
building_element = XMLHelper.get_element(hpxml_element, 'Building')
|
2982
|
+
for i in 2..3
|
2983
|
+
new_building_element = Marshal.load(Marshal.dump(building_element))
|
2984
|
+
XMLHelper.add_attribute(XMLHelper.get_element(new_building_element, 'BuildingID'), 'id', "MyBuilding#{i}")
|
2985
|
+
hpxml_element.children << new_building_element
|
2986
|
+
end
|
2987
|
+
XMLHelper.write_file(hpxml_doc, hpxml_path)
|
2988
|
+
end
|
2989
|
+
|
2431
2990
|
if not hpxml_path.include? 'invalid_files'
|
2432
2991
|
# Validate file against HPXML schema
|
2433
2992
|
schemas_dir = File.absolute_path(File.join(File.dirname(__FILE__), 'HPXMLtoOpenStudio/resources'))
|
@@ -2435,6 +2994,7 @@ def create_hpxmls
|
|
2435
2994
|
if errors.size > 0
|
2436
2995
|
fail "ERRORS: #{errors}"
|
2437
2996
|
end
|
2997
|
+
|
2438
2998
|
# Check for errors
|
2439
2999
|
errors = hpxml.check_for_errors()
|
2440
3000
|
if errors.size > 0
|
@@ -2518,6 +3078,8 @@ def set_hpxml_header(hpxml_file, hpxml)
|
|
2518
3078
|
hpxml.header.timestep = nil
|
2519
3079
|
elsif ['base-schedules-stochastic.xml'].include? hpxml_file
|
2520
3080
|
hpxml.header.schedules_path = 'BuildResidentialHPXML/tests/schedules/stochastic.csv'
|
3081
|
+
elsif ['base-schedules-stochastic-vacant.xml'].include? hpxml_file
|
3082
|
+
hpxml.header.schedules_path = 'BuildResidentialHPXML/tests/schedules/vacant.csv'
|
2521
3083
|
elsif ['base-schedules-user-specified.xml'].include? hpxml_file
|
2522
3084
|
hpxml.header.schedules_path = 'BuildResidentialHPXML/tests/schedules/user-specified.csv'
|
2523
3085
|
elsif ['invalid_files/invalid-input-parameters.xml'].include? hpxml_file
|
@@ -2529,8 +3091,8 @@ def set_hpxml_site(hpxml_file, hpxml)
|
|
2529
3091
|
if ['base.xml'].include? hpxml_file
|
2530
3092
|
hpxml.site.fuels = [HPXML::FuelTypeElectricity, HPXML::FuelTypeNaturalGas]
|
2531
3093
|
hpxml.site.site_type = HPXML::SiteTypeSuburban
|
2532
|
-
elsif ['base-misc-
|
2533
|
-
hpxml.site.
|
3094
|
+
elsif ['base-misc-shielding-of-home.xml'].include? hpxml_file
|
3095
|
+
hpxml.site.shielding_of_home = HPXML::ShieldingWellShielded
|
2534
3096
|
elsif ['base-misc-defaults.xml'].include? hpxml_file
|
2535
3097
|
hpxml.site.site_type = nil
|
2536
3098
|
elsif ['invalid_files/invalid-input-parameters.xml'].include? hpxml_file
|
@@ -2559,7 +3121,6 @@ def set_hpxml_building_construction(hpxml_file, hpxml)
|
|
2559
3121
|
hpxml.building_construction.conditioned_floor_area = 1539
|
2560
3122
|
hpxml.building_construction.conditioned_building_volume = 12312
|
2561
3123
|
hpxml.building_construction.residential_facility_type = HPXML::ResidentialTypeSFD
|
2562
|
-
hpxml.building_construction.use_only_ideal_air_system = true
|
2563
3124
|
elsif ['ASHRAE_Standard_140/L322XC.xml'].include? hpxml_file
|
2564
3125
|
hpxml.building_construction.number_of_conditioned_floors = 2
|
2565
3126
|
hpxml.building_construction.conditioned_floor_area = 3078
|
@@ -2601,8 +3162,6 @@ def set_hpxml_building_construction(hpxml_file, hpxml)
|
|
2601
3162
|
hpxml.building_construction.number_of_conditioned_floors -= 1
|
2602
3163
|
hpxml.building_construction.conditioned_floor_area -= 1350
|
2603
3164
|
hpxml.building_construction.conditioned_building_volume -= 1350 * 8
|
2604
|
-
elsif ['base-hvac-ideal-air.xml'].include? hpxml_file
|
2605
|
-
hpxml.building_construction.use_only_ideal_air_system = true
|
2606
3165
|
elsif ['base-atticroof-conditioned.xml'].include? hpxml_file
|
2607
3166
|
hpxml.building_construction.number_of_conditioned_floors += 1
|
2608
3167
|
hpxml.building_construction.number_of_conditioned_floors_above_grade += 1
|
@@ -2615,7 +3174,8 @@ def set_hpxml_building_construction(hpxml_file, hpxml)
|
|
2615
3174
|
hpxml.building_construction.number_of_conditioned_floors_above_grade += 1
|
2616
3175
|
hpxml.building_construction.conditioned_floor_area += 1350
|
2617
3176
|
hpxml.building_construction.conditioned_building_volume += 1350 * 8
|
2618
|
-
elsif ['base-enclosure-2stories-garage.xml'
|
3177
|
+
elsif ['base-enclosure-2stories-garage.xml',
|
3178
|
+
'base-foundation-basement-garage.xml'].include? hpxml_file
|
2619
3179
|
hpxml.building_construction.conditioned_floor_area -= 400 * 2
|
2620
3180
|
hpxml.building_construction.conditioned_building_volume -= 400 * 2 * 8
|
2621
3181
|
elsif ['base-misc-defaults.xml'].include? hpxml_file
|
@@ -2628,12 +3188,16 @@ def set_hpxml_building_construction(hpxml_file, hpxml)
|
|
2628
3188
|
hpxml.building_construction.number_of_conditioned_floors = 1.5
|
2629
3189
|
hpxml.building_construction.number_of_conditioned_floors_above_grade = 1.5
|
2630
3190
|
elsif ['invalid_files/enclosure-floor-area-exceeds-cfa.xml'].include? hpxml_file
|
2631
|
-
hpxml.building_construction.conditioned_floor_area
|
3191
|
+
hpxml.building_construction.conditioned_floor_area = 1348.8
|
3192
|
+
elsif ['invalid_files/enclosure-floor-area-exceeds-cfa2.xml'].include? hpxml_file
|
3193
|
+
hpxml.building_construction.conditioned_floor_area = 898.8
|
2632
3194
|
elsif ['invalid_files/num-bedrooms-exceeds-limit.xml'].include? hpxml_file
|
2633
3195
|
hpxml.building_construction.number_of_bedrooms = 40
|
2634
3196
|
elsif ['invalid_files/invalid-facility-type-equipment.xml',
|
2635
3197
|
'invalid_files/invalid-facility-type-surfaces.xml'].include? hpxml_file
|
2636
3198
|
hpxml.building_construction.residential_facility_type = HPXML::ResidentialTypeSFD
|
3199
|
+
elsif ['invalid_files/invalid-number-of-conditioned-floors.xml'].include? hpxml_file
|
3200
|
+
hpxml.building_construction.number_of_conditioned_floors_above_grade = hpxml.building_construction.number_of_conditioned_floors + 1
|
2637
3201
|
end
|
2638
3202
|
end
|
2639
3203
|
|
@@ -2657,30 +3221,50 @@ def set_hpxml_climate_and_risk_zones(hpxml_file, hpxml)
|
|
2657
3221
|
hpxml.climate_and_risk_zones.weather_station_name = 'Las Vegas, NV'
|
2658
3222
|
hpxml.climate_and_risk_zones.weather_station_epw_filepath = 'USA_NV_Las.Vegas-McCarran.Intl.AP.723860_TMY3.epw'
|
2659
3223
|
elsif ['base.xml'].include? hpxml_file
|
2660
|
-
hpxml.climate_and_risk_zones.iecc_zone =
|
3224
|
+
hpxml.climate_and_risk_zones.iecc_zone = Location.get_climate_zone_iecc(725650)
|
2661
3225
|
hpxml.climate_and_risk_zones.weather_station_name = 'Denver, CO'
|
2662
3226
|
hpxml.climate_and_risk_zones.weather_station_epw_filepath = 'USA_CO_Denver.Intl.AP.725650_TMY3.epw'
|
2663
3227
|
hpxml.header.state_code = 'CO'
|
2664
3228
|
elsif ['base-location-baltimore-md.xml'].include? hpxml_file
|
2665
|
-
hpxml.climate_and_risk_zones.iecc_zone =
|
3229
|
+
hpxml.climate_and_risk_zones.iecc_zone = Location.get_climate_zone_iecc(724060)
|
2666
3230
|
hpxml.climate_and_risk_zones.weather_station_name = 'Baltimore, MD'
|
2667
3231
|
hpxml.climate_and_risk_zones.weather_station_epw_filepath = 'USA_MD_Baltimore-Washington.Intl.AP.724060_TMY3.epw'
|
2668
3232
|
hpxml.header.state_code = 'MD'
|
2669
3233
|
elsif ['base-location-dallas-tx.xml'].include? hpxml_file
|
2670
|
-
hpxml.climate_and_risk_zones.iecc_zone =
|
3234
|
+
hpxml.climate_and_risk_zones.iecc_zone = Location.get_climate_zone_iecc(722590)
|
2671
3235
|
hpxml.climate_and_risk_zones.weather_station_name = 'Dallas, TX'
|
2672
3236
|
hpxml.climate_and_risk_zones.weather_station_epw_filepath = 'USA_TX_Dallas-Fort.Worth.Intl.AP.722590_TMY3.epw'
|
2673
3237
|
hpxml.header.state_code = 'TX'
|
2674
3238
|
elsif ['base-location-duluth-mn.xml'].include? hpxml_file
|
2675
|
-
hpxml.climate_and_risk_zones.iecc_zone =
|
3239
|
+
hpxml.climate_and_risk_zones.iecc_zone = Location.get_climate_zone_iecc(727450)
|
2676
3240
|
hpxml.climate_and_risk_zones.weather_station_name = 'Duluth, MN'
|
2677
3241
|
hpxml.climate_and_risk_zones.weather_station_epw_filepath = 'USA_MN_Duluth.Intl.AP.727450_TMY3.epw'
|
2678
3242
|
hpxml.header.state_code = 'MN'
|
3243
|
+
elsif ['base-location-helena-mt.xml'].include? hpxml_file
|
3244
|
+
hpxml.climate_and_risk_zones.iecc_zone = Location.get_climate_zone_iecc(727720)
|
3245
|
+
hpxml.climate_and_risk_zones.weather_station_name = 'Helena, MT'
|
3246
|
+
hpxml.climate_and_risk_zones.weather_station_epw_filepath = 'USA_MT_Helena.Rgnl.AP.727720_TMY3.epw'
|
3247
|
+
hpxml.header.state_code = 'MT'
|
3248
|
+
elsif ['base-location-honolulu-hi.xml'].include? hpxml_file
|
3249
|
+
hpxml.climate_and_risk_zones.iecc_zone = Location.get_climate_zone_iecc(911820)
|
3250
|
+
hpxml.climate_and_risk_zones.weather_station_name = 'Honolulu, HI'
|
3251
|
+
hpxml.climate_and_risk_zones.weather_station_epw_filepath = 'USA_HI_Honolulu.Intl.AP.911820_TMY3.epw'
|
3252
|
+
hpxml.header.state_code = 'HI'
|
2679
3253
|
elsif ['base-location-miami-fl.xml'].include? hpxml_file
|
2680
|
-
hpxml.climate_and_risk_zones.iecc_zone =
|
3254
|
+
hpxml.climate_and_risk_zones.iecc_zone = Location.get_climate_zone_iecc(722020)
|
2681
3255
|
hpxml.climate_and_risk_zones.weather_station_name = 'Miami, FL'
|
2682
3256
|
hpxml.climate_and_risk_zones.weather_station_epw_filepath = 'USA_FL_Miami.Intl.AP.722020_TMY3.epw'
|
2683
3257
|
hpxml.header.state_code = 'FL'
|
3258
|
+
elsif ['base-location-phoenix-az.xml'].include? hpxml_file
|
3259
|
+
hpxml.climate_and_risk_zones.iecc_zone = Location.get_climate_zone_iecc(722780)
|
3260
|
+
hpxml.climate_and_risk_zones.weather_station_name = 'Phoenix, AZ'
|
3261
|
+
hpxml.climate_and_risk_zones.weather_station_epw_filepath = 'USA_AZ_Phoenix-Sky.Harbor.Intl.AP.722780_TMY3.epw'
|
3262
|
+
hpxml.header.state_code = 'AZ'
|
3263
|
+
elsif ['base-location-portland-or.xml'].include? hpxml_file
|
3264
|
+
hpxml.climate_and_risk_zones.iecc_zone = Location.get_climate_zone_iecc(726980)
|
3265
|
+
hpxml.climate_and_risk_zones.weather_station_name = 'Portland, OR'
|
3266
|
+
hpxml.climate_and_risk_zones.weather_station_epw_filepath = 'USA_OR_Portland.Intl.AP.726980_TMY3.epw'
|
3267
|
+
hpxml.header.state_code = 'OR'
|
2684
3268
|
elsif ['base-location-AMY-2012.xml'].include? hpxml_file
|
2685
3269
|
hpxml.climate_and_risk_zones.weather_station_name = 'Boulder, CO'
|
2686
3270
|
hpxml.climate_and_risk_zones.weather_station_epw_filepath = 'US_CO_Boulder_AMY_2012.epw'
|
@@ -2694,12 +3278,16 @@ end
|
|
2694
3278
|
def set_hpxml_air_infiltration_measurements(hpxml_file, hpxml)
|
2695
3279
|
infil_volume = hpxml.building_construction.conditioned_building_volume
|
2696
3280
|
if ['ASHRAE_Standard_140/L100AC.xml',
|
2697
|
-
'ASHRAE_Standard_140/L100AL.xml'
|
2698
|
-
'base-enclosure-infil-natural-ach.xml'].include? hpxml_file
|
3281
|
+
'ASHRAE_Standard_140/L100AL.xml'].include? hpxml_file
|
2699
3282
|
hpxml.air_infiltration_measurements.clear
|
2700
3283
|
hpxml.air_infiltration_measurements.add(id: 'InfiltrationMeasurement',
|
2701
3284
|
unit_of_measure: HPXML::UnitsACHNatural,
|
2702
3285
|
air_leakage: 0.67)
|
3286
|
+
elsif ['base-enclosure-infil-natural-ach.xml'].include? hpxml_file
|
3287
|
+
hpxml.air_infiltration_measurements.clear
|
3288
|
+
hpxml.air_infiltration_measurements.add(id: 'InfiltrationMeasurement',
|
3289
|
+
unit_of_measure: HPXML::UnitsACHNatural,
|
3290
|
+
air_leakage: 0.2)
|
2703
3291
|
elsif ['ASHRAE_Standard_140/L322XC.xml'].include? hpxml_file
|
2704
3292
|
hpxml.air_infiltration_measurements[0].air_leakage = 0.335
|
2705
3293
|
elsif ['ASHRAE_Standard_140/L110AC.xml',
|
@@ -2729,6 +3317,8 @@ def set_hpxml_air_infiltration_measurements(hpxml_file, hpxml)
|
|
2729
3317
|
end
|
2730
3318
|
if ['base-misc-defaults.xml'].include? hpxml_file
|
2731
3319
|
hpxml.air_infiltration_measurements[0].infiltration_volume = nil
|
3320
|
+
elsif ['invalid_files/invalid-infiltration-volume.xml'].include? hpxml_file
|
3321
|
+
hpxml.air_infiltration_measurements[0].infiltration_volume = infil_volume * 0.25
|
2732
3322
|
else
|
2733
3323
|
hpxml.air_infiltration_measurements[0].infiltration_volume = infil_volume
|
2734
3324
|
end
|
@@ -2899,16 +3489,21 @@ def set_hpxml_roofs(hpxml_file, hpxml)
|
|
2899
3489
|
elsif ['base-atticroof-cathedral.xml'].include? hpxml_file
|
2900
3490
|
hpxml.roofs[0].interior_adjacent_to = HPXML::LocationLivingSpace
|
2901
3491
|
hpxml.roofs[0].insulation_assembly_r_value = 25.8
|
2902
|
-
elsif ['base-enclosure-garage.xml'
|
3492
|
+
elsif ['base-enclosure-garage.xml',
|
3493
|
+
'base-foundation-basement-garage.xml'].include? hpxml_file
|
2903
3494
|
hpxml.roofs[0].area += 670
|
2904
3495
|
elsif ['base-atticroof-unvented-insulated-roof.xml'].include? hpxml_file
|
2905
3496
|
hpxml.roofs[0].insulation_assembly_r_value = 25.8
|
2906
|
-
elsif ['base-enclosure-split-surfaces.xml'
|
3497
|
+
elsif ['base-enclosure-split-surfaces.xml',
|
3498
|
+
'base-enclosure-split-surfaces2.xml'].include? hpxml_file
|
2907
3499
|
for n in 1..hpxml.roofs.size
|
2908
3500
|
hpxml.roofs[n - 1].area /= 9.0
|
2909
3501
|
for i in 2..9
|
2910
3502
|
hpxml.roofs << hpxml.roofs[n - 1].dup
|
2911
3503
|
hpxml.roofs[-1].id += i.to_s
|
3504
|
+
if hpxml_file == 'base-enclosure-split-surfaces2.xml'
|
3505
|
+
hpxml.roofs[-1].insulation_assembly_r_value += 0.01 * i
|
3506
|
+
end
|
2912
3507
|
end
|
2913
3508
|
end
|
2914
3509
|
hpxml.roofs << hpxml.roofs[-1].dup
|
@@ -2986,6 +3581,15 @@ def set_hpxml_rim_joists(hpxml_file, hpxml)
|
|
2986
3581
|
solar_absorptance: 0.7,
|
2987
3582
|
emittance: 0.92,
|
2988
3583
|
insulation_assembly_r_value: 23.0)
|
3584
|
+
elsif ['base-bldgtype-single-family-attached.xml'].include? hpxml_file
|
3585
|
+
hpxml.rim_joists[-1].area = 66
|
3586
|
+
hpxml.rim_joists.add(id: 'RimJoistOther',
|
3587
|
+
exterior_adjacent_to: HPXML::LocationBasementConditioned,
|
3588
|
+
interior_adjacent_to: HPXML::LocationBasementConditioned,
|
3589
|
+
area: 28,
|
3590
|
+
solar_absorptance: 0.7,
|
3591
|
+
emittance: 0.92,
|
3592
|
+
insulation_assembly_r_value: 4.0)
|
2989
3593
|
elsif ['base-bldgtype-multifamily.xml'].include? hpxml_file
|
2990
3594
|
hpxml.rim_joists.clear
|
2991
3595
|
elsif ['base-enclosure-walltypes.xml'].include? hpxml_file
|
@@ -3011,7 +3615,7 @@ def set_hpxml_rim_joists(hpxml_file, hpxml)
|
|
3011
3615
|
elsif ['base-foundation-unconditioned-basement.xml'].include? hpxml_file
|
3012
3616
|
for i in 0..hpxml.rim_joists.size - 1
|
3013
3617
|
hpxml.rim_joists[i].interior_adjacent_to = HPXML::LocationBasementUnconditioned
|
3014
|
-
hpxml.rim_joists[i].insulation_assembly_r_value =
|
3618
|
+
hpxml.rim_joists[i].insulation_assembly_r_value = 4.0
|
3015
3619
|
end
|
3016
3620
|
elsif ['base-foundation-unconditioned-basement-wall-insulation.xml'].include? hpxml_file
|
3017
3621
|
for i in 0..hpxml.rim_joists.size - 1
|
@@ -3035,7 +3639,9 @@ def set_hpxml_rim_joists(hpxml_file, hpxml)
|
|
3035
3639
|
area: 81,
|
3036
3640
|
solar_absorptance: 0.7,
|
3037
3641
|
emittance: 0.92,
|
3038
|
-
insulation_assembly_r_value:
|
3642
|
+
insulation_assembly_r_value: 4.0)
|
3643
|
+
elsif ['base-enclosure-garage.xml'].include? hpxml_file
|
3644
|
+
hpxml.rim_joists[-1].area = 116
|
3039
3645
|
elsif ['base-enclosure-2stories.xml'].include? hpxml_file
|
3040
3646
|
hpxml.rim_joists.add(id: 'RimJoist2ndStory',
|
3041
3647
|
exterior_adjacent_to: HPXML::LocationOutside,
|
@@ -3045,12 +3651,16 @@ def set_hpxml_rim_joists(hpxml_file, hpxml)
|
|
3045
3651
|
solar_absorptance: 0.7,
|
3046
3652
|
emittance: 0.92,
|
3047
3653
|
insulation_assembly_r_value: 23.0)
|
3048
|
-
elsif ['base-enclosure-split-surfaces.xml'
|
3654
|
+
elsif ['base-enclosure-split-surfaces.xml',
|
3655
|
+
'base-enclosure-split-surfaces2.xml'].include? hpxml_file
|
3049
3656
|
for n in 1..hpxml.rim_joists.size
|
3050
3657
|
hpxml.rim_joists[n - 1].area /= 9.0
|
3051
3658
|
for i in 2..9
|
3052
3659
|
hpxml.rim_joists << hpxml.rim_joists[n - 1].dup
|
3053
3660
|
hpxml.rim_joists[-1].id += i.to_s
|
3661
|
+
if hpxml_file == 'base-enclosure-split-surfaces2.xml'
|
3662
|
+
hpxml.rim_joists[-1].insulation_assembly_r_value += 0.01 * i
|
3663
|
+
end
|
3054
3664
|
end
|
3055
3665
|
end
|
3056
3666
|
hpxml.rim_joists << hpxml.rim_joists[-1].dup
|
@@ -3421,12 +4031,16 @@ def set_hpxml_walls(hpxml_file, hpxml)
|
|
3421
4031
|
elsif ['base-bldgtype-multifamily-adjacent-to-non-freezing-space.xml'].include? hpxml_file
|
3422
4032
|
hpxml.walls[-1].exterior_adjacent_to = HPXML::LocationOtherNonFreezingSpace
|
3423
4033
|
hpxml.walls[-1].insulation_assembly_r_value = 23
|
3424
|
-
elsif ['base-enclosure-split-surfaces.xml'
|
4034
|
+
elsif ['base-enclosure-split-surfaces.xml',
|
4035
|
+
'base-enclosure-split-surfaces2.xml'].include? hpxml_file
|
3425
4036
|
for n in 1..hpxml.walls.size
|
3426
4037
|
hpxml.walls[n - 1].area /= 9.0
|
3427
4038
|
for i in 2..9
|
3428
4039
|
hpxml.walls << hpxml.walls[n - 1].dup
|
3429
4040
|
hpxml.walls[-1].id += i.to_s
|
4041
|
+
if hpxml_file == 'base-enclosure-split-surfaces2.xml'
|
4042
|
+
hpxml.walls[-1].insulation_assembly_r_value += 0.01 * i
|
4043
|
+
end
|
3430
4044
|
end
|
3431
4045
|
end
|
3432
4046
|
hpxml.walls << hpxml.walls[-1].dup
|
@@ -3444,14 +4058,34 @@ def set_hpxml_walls(hpxml_file, hpxml)
|
|
3444
4058
|
area: 294,
|
3445
4059
|
solar_absorptance: 0.7,
|
3446
4060
|
emittance: 0.92,
|
3447
|
-
insulation_assembly_r_value: 4.0)
|
3448
|
-
elsif ['
|
3449
|
-
hpxml.walls.
|
3450
|
-
|
3451
|
-
|
3452
|
-
wall.
|
3453
|
-
wall.
|
3454
|
-
|
4061
|
+
insulation_assembly_r_value: 4.0)
|
4062
|
+
elsif ['invalid_files/invalid-assembly-effective-rvalue.xml'].include? hpxml_file
|
4063
|
+
hpxml.walls[0].insulation_assembly_r_value = 0
|
4064
|
+
elsif ['base-misc-defaults.xml'].include? hpxml_file
|
4065
|
+
hpxml.walls.each do |wall|
|
4066
|
+
wall.siding = nil
|
4067
|
+
wall.solar_absorptance = nil
|
4068
|
+
wall.color = HPXML::ColorMedium
|
4069
|
+
wall.emittance = nil
|
4070
|
+
end
|
4071
|
+
elsif ['base-foundation-basement-garage.xml'].include? hpxml_file
|
4072
|
+
hpxml.walls.add(id: 'WallGarageBasement',
|
4073
|
+
exterior_adjacent_to: HPXML::LocationGarage,
|
4074
|
+
interior_adjacent_to: HPXML::LocationBasementConditioned,
|
4075
|
+
wall_type: HPXML::WallTypeWoodStud,
|
4076
|
+
area: 320,
|
4077
|
+
solar_absorptance: 0.7,
|
4078
|
+
emittance: 0.92,
|
4079
|
+
insulation_assembly_r_value: 23)
|
4080
|
+
hpxml.walls.add(id: 'WallGarageExterior',
|
4081
|
+
exterior_adjacent_to: HPXML::LocationOutside,
|
4082
|
+
interior_adjacent_to: HPXML::LocationGarage,
|
4083
|
+
wall_type: HPXML::WallTypeWoodStud,
|
4084
|
+
siding: HPXML::SidingTypeWood,
|
4085
|
+
area: 320,
|
4086
|
+
solar_absorptance: 0.7,
|
4087
|
+
emittance: 0.92,
|
4088
|
+
insulation_assembly_r_value: 4)
|
3455
4089
|
end
|
3456
4090
|
hpxml.walls.each do |wall|
|
3457
4091
|
next unless wall.is_interior
|
@@ -3741,19 +4375,21 @@ def set_hpxml_foundation_walls(hpxml_file, hpxml)
|
|
3741
4375
|
insulation_exterior_distance_to_top: 0,
|
3742
4376
|
insulation_exterior_distance_to_bottom: 4,
|
3743
4377
|
insulation_exterior_r_value: 8.9)
|
3744
|
-
elsif ['base-enclosure-split-surfaces.xml'
|
4378
|
+
elsif ['base-enclosure-split-surfaces.xml',
|
4379
|
+
'base-enclosure-split-surfaces2.xml'].include? hpxml_file
|
3745
4380
|
for n in 1..hpxml.foundation_walls.size
|
3746
4381
|
hpxml.foundation_walls[n - 1].area /= 9.0
|
3747
4382
|
for i in 2..9
|
3748
4383
|
hpxml.foundation_walls << hpxml.foundation_walls[n - 1].dup
|
3749
4384
|
hpxml.foundation_walls[-1].id += i.to_s
|
4385
|
+
if hpxml_file == 'base-enclosure-split-surfaces2.xml'
|
4386
|
+
hpxml.foundation_walls[-1].insulation_exterior_r_value += 0.01 * i
|
4387
|
+
end
|
3750
4388
|
end
|
3751
4389
|
end
|
3752
4390
|
hpxml.foundation_walls << hpxml.foundation_walls[-1].dup
|
3753
4391
|
hpxml.foundation_walls[-1].id = 'TinyFoundationWall'
|
3754
4392
|
hpxml.foundation_walls[-1].area = 0.05
|
3755
|
-
elsif ['base-enclosure-2stories-garage.xml'].include? hpxml_file
|
3756
|
-
hpxml.foundation_walls[-1].area = 880
|
3757
4393
|
elsif ['base-misc-defaults.xml'].include? hpxml_file
|
3758
4394
|
hpxml.foundation_walls.each do |fwall|
|
3759
4395
|
fwall.thickness = nil
|
@@ -3774,6 +4410,10 @@ def set_hpxml_foundation_walls(hpxml_file, hpxml)
|
|
3774
4410
|
insulation_exterior_r_value: 0)
|
3775
4411
|
elsif ['invalid_files/enclosure-basement-missing-exterior-foundation-wall.xml'].include? hpxml_file
|
3776
4412
|
hpxml.foundation_walls[0].delete
|
4413
|
+
elsif ['invalid_files/invalid-foundation-wall-properties.xml'].include? hpxml_file
|
4414
|
+
hpxml.foundation_walls[0].insulation_interior_distance_to_top = 12
|
4415
|
+
hpxml.foundation_walls[0].insulation_interior_distance_to_bottom = 10
|
4416
|
+
hpxml.foundation_walls[0].depth_below_grade = 9
|
3777
4417
|
end
|
3778
4418
|
end
|
3779
4419
|
|
@@ -3893,6 +4533,12 @@ def set_hpxml_frame_floors(hpxml_file, hpxml)
|
|
3893
4533
|
interior_adjacent_to: HPXML::LocationLivingSpace,
|
3894
4534
|
area: 400,
|
3895
4535
|
insulation_assembly_r_value: 39.3)
|
4536
|
+
elsif ['base-foundation-basement-garage.xml'].include? hpxml_file
|
4537
|
+
hpxml.frame_floors.add(id: 'FloorAbovegarage',
|
4538
|
+
exterior_adjacent_to: HPXML::LocationGarage,
|
4539
|
+
interior_adjacent_to: HPXML::LocationLivingSpace,
|
4540
|
+
area: 400,
|
4541
|
+
insulation_assembly_r_value: 39.3)
|
3896
4542
|
elsif ['base-atticroof-unvented-insulated-roof.xml'].include? hpxml_file
|
3897
4543
|
hpxml.frame_floors[0].insulation_assembly_r_value = 2.1
|
3898
4544
|
elsif ['base-bldgtype-multifamily-adjacent-to-multiple.xml'].include? hpxml_file
|
@@ -3915,12 +4561,16 @@ def set_hpxml_frame_floors(hpxml_file, hpxml)
|
|
3915
4561
|
area: 150,
|
3916
4562
|
insulation_assembly_r_value: 2.1,
|
3917
4563
|
other_space_above_or_below: HPXML::FrameFloorOtherSpaceBelow)
|
3918
|
-
elsif ['base-enclosure-split-surfaces.xml'
|
4564
|
+
elsif ['base-enclosure-split-surfaces.xml',
|
4565
|
+
'base-enclosure-split-surfaces2.xml'].include? hpxml_file
|
3919
4566
|
for n in 1..hpxml.frame_floors.size
|
3920
4567
|
hpxml.frame_floors[n - 1].area /= 9.0
|
3921
4568
|
for i in 2..9
|
3922
4569
|
hpxml.frame_floors << hpxml.frame_floors[n - 1].dup
|
3923
4570
|
hpxml.frame_floors[-1].id += i.to_s
|
4571
|
+
if hpxml_file == 'base-enclosure-split-surfaces2.xml'
|
4572
|
+
hpxml.frame_floors[-1].insulation_assembly_r_value += 0.01 * i
|
4573
|
+
end
|
3924
4574
|
end
|
3925
4575
|
end
|
3926
4576
|
hpxml.frame_floors << hpxml.frame_floors[-1].dup
|
@@ -3938,8 +4588,10 @@ def set_hpxml_frame_floors(hpxml_file, hpxml)
|
|
3938
4588
|
'invalid_files/enclosure-garage-missing-roof-ceiling.xml'].include? hpxml_file
|
3939
4589
|
hpxml.frame_floors[1].delete
|
3940
4590
|
elsif ['invalid_files/multifamily-reference-surface.xml'].include? hpxml_file
|
3941
|
-
hpxml.frame_floors[0].
|
3942
|
-
hpxml.frame_floors[
|
4591
|
+
hpxml.frame_floors << hpxml.frame_floors[0].dup
|
4592
|
+
hpxml.frame_floors[1].id += '2'
|
4593
|
+
hpxml.frame_floors[1].exterior_adjacent_to = HPXML::LocationOtherHeatedSpace
|
4594
|
+
hpxml.frame_floors[1].other_space_above_or_below = HPXML::FrameFloorOtherSpaceAbove
|
3943
4595
|
elsif ['invalid_files/invalid-facility-type-surfaces.xml'].include? hpxml_file
|
3944
4596
|
hpxml.frame_floors.add(id: 'FloorOther',
|
3945
4597
|
exterior_adjacent_to: HPXML::LocationOtherHousingUnit,
|
@@ -4042,7 +4694,8 @@ def set_hpxml_slabs(hpxml_file, hpxml)
|
|
4042
4694
|
carpet_r_value: 0)
|
4043
4695
|
elsif ['base-foundation-ambient.xml'].include? hpxml_file
|
4044
4696
|
hpxml.slabs.clear
|
4045
|
-
elsif ['base-enclosure-2stories-garage.xml'
|
4697
|
+
elsif ['base-enclosure-2stories-garage.xml',
|
4698
|
+
'base-foundation-basement-garage.xml'].include? hpxml_file
|
4046
4699
|
hpxml.slabs[0].area -= 400
|
4047
4700
|
hpxml.slabs[0].exposed_perimeter -= 40
|
4048
4701
|
hpxml.slabs.add(id: 'SlabUnderGarage',
|
@@ -4106,13 +4759,18 @@ def set_hpxml_slabs(hpxml_file, hpxml)
|
|
4106
4759
|
under_slab_insulation_r_value: 0,
|
4107
4760
|
carpet_fraction: 0,
|
4108
4761
|
carpet_r_value: 0)
|
4109
|
-
elsif ['base-enclosure-split-surfaces.xml'
|
4762
|
+
elsif ['base-enclosure-split-surfaces.xml',
|
4763
|
+
'base-enclosure-split-surfaces2.xml'].include? hpxml_file
|
4110
4764
|
for n in 1..hpxml.slabs.size
|
4111
4765
|
hpxml.slabs[n - 1].area /= 9.0
|
4112
4766
|
hpxml.slabs[n - 1].exposed_perimeter /= 9.0
|
4113
4767
|
for i in 2..9
|
4114
4768
|
hpxml.slabs << hpxml.slabs[n - 1].dup
|
4115
4769
|
hpxml.slabs[-1].id += i.to_s
|
4770
|
+
if hpxml_file == 'base-enclosure-split-surfaces2.xml'
|
4771
|
+
hpxml.slabs[-1].perimeter_insulation_depth += 0.01 * i
|
4772
|
+
hpxml.slabs[-1].perimeter_insulation_r_value += 0.01 * i
|
4773
|
+
end
|
4116
4774
|
end
|
4117
4775
|
end
|
4118
4776
|
hpxml.slabs << hpxml.slabs[-1].dup
|
@@ -4124,11 +4782,6 @@ def set_hpxml_slabs(hpxml_file, hpxml)
|
|
4124
4782
|
slab.carpet_fraction = nil
|
4125
4783
|
slab.carpet_fraction = nil
|
4126
4784
|
end
|
4127
|
-
elsif ['invalid_files/mismatched-slab-and-foundation-wall.xml'].include? hpxml_file
|
4128
|
-
hpxml.slabs[0].interior_adjacent_to = HPXML::LocationBasementUnconditioned
|
4129
|
-
hpxml.slabs[0].depth_below_grade = 7.0
|
4130
|
-
elsif ['invalid_files/slab-zero-exposed-perimeter.xml'].include? hpxml_file
|
4131
|
-
hpxml.slabs[0].exposed_perimeter = 0
|
4132
4785
|
elsif ['invalid_files/enclosure-living-missing-floor-slab.xml',
|
4133
4786
|
'invalid_files/enclosure-basement-missing-slab.xml'].include? hpxml_file
|
4134
4787
|
hpxml.slabs[0].delete
|
@@ -4298,17 +4951,26 @@ def set_hpxml_windows(hpxml_file, hpxml)
|
|
4298
4951
|
hpxml.windows[0].overhangs_depth = 2.5
|
4299
4952
|
hpxml.windows[0].overhangs_distance_to_top_of_window = 0
|
4300
4953
|
hpxml.windows[0].overhangs_distance_to_bottom_of_window = 4
|
4954
|
+
hpxml.windows[1].overhangs_depth = 0
|
4955
|
+
hpxml.windows[1].overhangs_distance_to_top_of_window = 1
|
4956
|
+
hpxml.windows[1].overhangs_distance_to_bottom_of_window = 5
|
4301
4957
|
hpxml.windows[2].overhangs_depth = 1.5
|
4302
4958
|
hpxml.windows[2].overhangs_distance_to_top_of_window = 2
|
4303
4959
|
hpxml.windows[2].overhangs_distance_to_bottom_of_window = 6
|
4304
4960
|
hpxml.windows[3].overhangs_depth = 1.5
|
4305
4961
|
hpxml.windows[3].overhangs_distance_to_top_of_window = 2
|
4306
4962
|
hpxml.windows[3].overhangs_distance_to_bottom_of_window = 7
|
4307
|
-
elsif ['base-enclosure-windows-
|
4963
|
+
elsif ['base-enclosure-windows-shading.xml'].include? hpxml_file
|
4964
|
+
hpxml.windows[1].exterior_shading_factor_summer = 0.1
|
4965
|
+
hpxml.windows[1].exterior_shading_factor_winter = 0.9
|
4308
4966
|
hpxml.windows[1].interior_shading_factor_summer = 0.01
|
4309
4967
|
hpxml.windows[1].interior_shading_factor_winter = 0.99
|
4968
|
+
hpxml.windows[2].exterior_shading_factor_summer = 0.5
|
4969
|
+
hpxml.windows[2].exterior_shading_factor_winter = 0.5
|
4310
4970
|
hpxml.windows[2].interior_shading_factor_summer = 0.5
|
4311
4971
|
hpxml.windows[2].interior_shading_factor_winter = 0.5
|
4972
|
+
hpxml.windows[3].exterior_shading_factor_summer = 0.0
|
4973
|
+
hpxml.windows[3].exterior_shading_factor_winter = 1.0
|
4312
4974
|
hpxml.windows[3].interior_shading_factor_summer = 0.0
|
4313
4975
|
hpxml.windows[3].interior_shading_factor_winter = 1.0
|
4314
4976
|
elsif ['base-enclosure-windows-none.xml'].include? hpxml_file
|
@@ -4403,7 +5065,8 @@ def set_hpxml_windows(hpxml_file, hpxml)
|
|
4403
5065
|
end
|
4404
5066
|
elsif ['invalid_files/unattached-window.xml'].include? hpxml_file
|
4405
5067
|
hpxml.windows[0].wall_idref = 'foobar'
|
4406
|
-
elsif ['base-enclosure-split-surfaces.xml'
|
5068
|
+
elsif ['base-enclosure-split-surfaces.xml',
|
5069
|
+
'base-enclosure-split-surfaces2.xml'].include? hpxml_file
|
4407
5070
|
area_adjustments = []
|
4408
5071
|
for n in 1..hpxml.windows.size
|
4409
5072
|
hpxml.windows[n - 1].area /= 9.0
|
@@ -4415,6 +5078,11 @@ def set_hpxml_windows(hpxml_file, hpxml)
|
|
4415
5078
|
if i >= 4
|
4416
5079
|
hpxml.windows[-1].fraction_operable = 1.0
|
4417
5080
|
end
|
5081
|
+
next unless hpxml_file == 'base-enclosure-split-surfaces2.xml'
|
5082
|
+
|
5083
|
+
hpxml.windows[-1].ufactor += 0.01 * i
|
5084
|
+
hpxml.windows[-1].interior_shading_factor_summer -= 0.02 * i
|
5085
|
+
hpxml.windows[-1].interior_shading_factor_winter -= 0.01 * i
|
4418
5086
|
end
|
4419
5087
|
end
|
4420
5088
|
hpxml.windows << hpxml.windows[-1].dup
|
@@ -4482,7 +5150,7 @@ end
|
|
4482
5150
|
def set_hpxml_skylights(hpxml_file, hpxml)
|
4483
5151
|
if ['base-enclosure-skylights.xml'].include? hpxml_file
|
4484
5152
|
hpxml.skylights.add(id: 'SkylightNorth',
|
4485
|
-
area:
|
5153
|
+
area: 15,
|
4486
5154
|
azimuth: 0,
|
4487
5155
|
ufactor: 0.33,
|
4488
5156
|
shgc: 0.45,
|
@@ -4490,24 +5158,41 @@ def set_hpxml_skylights(hpxml_file, hpxml)
|
|
4490
5158
|
interior_shading_factor_winter: 1.0,
|
4491
5159
|
roof_idref: 'Roof')
|
4492
5160
|
hpxml.skylights.add(id: 'SkylightSouth',
|
4493
|
-
area:
|
5161
|
+
area: 15,
|
4494
5162
|
azimuth: 180,
|
4495
5163
|
ufactor: 0.35,
|
4496
5164
|
shgc: 0.47,
|
4497
5165
|
interior_shading_factor_summer: 1.0,
|
4498
5166
|
interior_shading_factor_winter: 1.0,
|
4499
5167
|
roof_idref: 'Roof')
|
5168
|
+
elsif ['base-enclosure-skylights-shading.xml'].include? hpxml_file
|
5169
|
+
hpxml.skylights[0].exterior_shading_factor_summer = 0.1
|
5170
|
+
hpxml.skylights[0].exterior_shading_factor_winter = 0.9
|
5171
|
+
hpxml.skylights[0].interior_shading_factor_summer = 0.01
|
5172
|
+
hpxml.skylights[0].interior_shading_factor_winter = 0.99
|
5173
|
+
hpxml.skylights[1].exterior_shading_factor_summer = 0.5
|
5174
|
+
hpxml.skylights[1].exterior_shading_factor_winter = 0.0
|
5175
|
+
hpxml.skylights[1].interior_shading_factor_summer = 0.5
|
5176
|
+
hpxml.skylights[1].interior_shading_factor_winter = 1.0
|
4500
5177
|
elsif ['invalid_files/net-area-negative-roof.xml'].include? hpxml_file
|
4501
5178
|
hpxml.skylights[0].area = 4000
|
4502
5179
|
elsif ['invalid_files/unattached-skylight.xml'].include? hpxml_file
|
4503
5180
|
hpxml.skylights[0].roof_idref = 'foobar'
|
4504
|
-
elsif ['
|
5181
|
+
elsif ['invalid_files/invalid-id.xml'].include? hpxml_file
|
5182
|
+
hpxml.skylights[0].id = ''
|
5183
|
+
elsif ['base-enclosure-split-surfaces.xml',
|
5184
|
+
'base-enclosure-split-surfaces2.xml'].include? hpxml_file
|
4505
5185
|
for n in 1..hpxml.skylights.size
|
4506
5186
|
hpxml.skylights[n - 1].area /= 9.0
|
4507
5187
|
for i in 2..9
|
4508
5188
|
hpxml.skylights << hpxml.skylights[n - 1].dup
|
4509
5189
|
hpxml.skylights[-1].id += i.to_s
|
4510
5190
|
hpxml.skylights[-1].roof_idref += i.to_s if i % 2 == 0
|
5191
|
+
next unless hpxml_file == 'base-enclosure-split-surfaces2.xml'
|
5192
|
+
|
5193
|
+
hpxml.skylights[-1].ufactor += 0.01 * i
|
5194
|
+
hpxml.skylights[-1].interior_shading_factor_summer -= 0.02 * i
|
5195
|
+
hpxml.skylights[-1].interior_shading_factor_winter -= 0.01 * i
|
4511
5196
|
end
|
4512
5197
|
end
|
4513
5198
|
hpxml.skylights << hpxml.skylights[-1].dup
|
@@ -4554,6 +5239,17 @@ def set_hpxml_doors(hpxml_file, hpxml)
|
|
4554
5239
|
area: 70,
|
4555
5240
|
azimuth: 180,
|
4556
5241
|
r_value: 4.4)
|
5242
|
+
elsif ['base-foundation-basement-garage.xml'].include? hpxml_file
|
5243
|
+
hpxml.doors.add(id: 'GarageDoorSouth',
|
5244
|
+
wall_idref: 'WallGarageExterior',
|
5245
|
+
area: 70,
|
5246
|
+
azimuth: 180,
|
5247
|
+
r_value: 4.4)
|
5248
|
+
hpxml.doors.add(id: 'GarageDoorBasement',
|
5249
|
+
wall_idref: 'WallGarageBasement',
|
5250
|
+
area: 4,
|
5251
|
+
azimuth: 0,
|
5252
|
+
r_value: 4.4)
|
4557
5253
|
elsif ['base-bldgtype-multifamily-adjacent-to-multiple.xml'].include? hpxml_file
|
4558
5254
|
hpxml.doors.add(id: 'DoorOtherHeatedSpace',
|
4559
5255
|
wall_idref: 'WallOtherHeatedSpace',
|
@@ -4576,7 +5272,8 @@ def set_hpxml_doors(hpxml_file, hpxml)
|
|
4576
5272
|
r_value: 4.4)
|
4577
5273
|
elsif ['invalid_files/unattached-door.xml'].include? hpxml_file
|
4578
5274
|
hpxml.doors[0].wall_idref = 'foobar'
|
4579
|
-
elsif ['base-enclosure-split-surfaces.xml'
|
5275
|
+
elsif ['base-enclosure-split-surfaces.xml',
|
5276
|
+
'base-enclosure-split-surfaces2.xml'].include? hpxml_file
|
4580
5277
|
area_adjustments = []
|
4581
5278
|
for n in 1..hpxml.doors.size
|
4582
5279
|
hpxml.doors[n - 1].area /= 9.0
|
@@ -4584,6 +5281,9 @@ def set_hpxml_doors(hpxml_file, hpxml)
|
|
4584
5281
|
hpxml.doors << hpxml.doors[n - 1].dup
|
4585
5282
|
hpxml.doors[-1].id += i.to_s
|
4586
5283
|
hpxml.doors[-1].wall_idref += i.to_s
|
5284
|
+
if hpxml_file == 'base-enclosure-split-surfaces2.xml'
|
5285
|
+
hpxml.doors[-1].r_value += 0.01 * i
|
5286
|
+
end
|
4587
5287
|
end
|
4588
5288
|
end
|
4589
5289
|
hpxml.doors << hpxml.doors[-1].dup
|
@@ -4610,7 +5310,7 @@ def set_hpxml_heating_systems(hpxml_file, hpxml)
|
|
4610
5310
|
distribution_system_idref: 'HVACDistribution',
|
4611
5311
|
heating_system_type: HPXML::HVACTypeFurnace,
|
4612
5312
|
heating_system_fuel: HPXML::FuelTypeNaturalGas,
|
4613
|
-
heating_capacity:
|
5313
|
+
heating_capacity: 36000,
|
4614
5314
|
heating_efficiency_afue: 0.92,
|
4615
5315
|
fraction_heat_load_served: 1)
|
4616
5316
|
elsif ['base-hvac-air-to-air-heat-pump-1-speed.xml',
|
@@ -4624,19 +5324,16 @@ def set_hpxml_heating_systems(hpxml_file, hpxml)
|
|
4624
5324
|
'base-hvac-ground-to-air-heat-pump.xml',
|
4625
5325
|
'base-hvac-mini-split-heat-pump-ducted.xml',
|
4626
5326
|
'base-hvac-mini-split-air-conditioner-only-ducted.xml',
|
4627
|
-
'base-hvac-ideal-air.xml',
|
4628
5327
|
'base-hvac-none.xml',
|
4629
5328
|
'base-hvac-room-ac-only.xml',
|
4630
5329
|
'base-bldgtype-multifamily-shared-chiller-only-baseboard.xml',
|
4631
5330
|
'base-bldgtype-multifamily-shared-ground-loop-ground-to-air-heat-pump.xml',
|
4632
5331
|
'invalid_files/orphaned-hvac-distribution.xml'].include? hpxml_file
|
4633
5332
|
hpxml.heating_systems.clear
|
4634
|
-
elsif ['base-hvac-furnace-gas-only.xml'].include? hpxml_file
|
4635
|
-
hpxml.heating_systems[0].fan_watts_per_cfm = 0.45
|
4636
5333
|
elsif ['base-hvac-boiler-elec-only.xml'].include? hpxml_file
|
4637
5334
|
hpxml.heating_systems[0].heating_system_type = HPXML::HVACTypeBoiler
|
4638
5335
|
hpxml.heating_systems[0].heating_system_fuel = HPXML::FuelTypeElectricity
|
4639
|
-
hpxml.heating_systems[0].heating_efficiency_afue = 1
|
5336
|
+
hpxml.heating_systems[0].heating_efficiency_afue = 1.0
|
4640
5337
|
elsif ['base-hvac-boiler-gas-central-ac-1-speed.xml',
|
4641
5338
|
'base-hvac-boiler-gas-only.xml'].include? hpxml_file
|
4642
5339
|
hpxml.heating_systems[0].heating_system_type = HPXML::HVACTypeBoiler
|
@@ -4721,35 +5418,6 @@ def set_hpxml_heating_systems(hpxml_file, hpxml)
|
|
4721
5418
|
heating_efficiency_afue: 0.8,
|
4722
5419
|
fraction_heat_load_served: 0.1,
|
4723
5420
|
fan_watts: 0.0)
|
4724
|
-
elsif ['base-hvac-multiple2.xml'].include? hpxml_file
|
4725
|
-
hpxml.heating_systems.clear
|
4726
|
-
hpxml.heating_systems.add(id: 'HeatingSystem',
|
4727
|
-
distribution_system_idref: 'HVACDistribution',
|
4728
|
-
heating_system_type: HPXML::HVACTypeFurnace,
|
4729
|
-
heating_system_fuel: HPXML::FuelTypeElectricity,
|
4730
|
-
heating_capacity: 6400,
|
4731
|
-
heating_efficiency_afue: 1,
|
4732
|
-
fraction_heat_load_served: 0.2)
|
4733
|
-
hpxml.heating_systems.add(id: 'HeatingSystem2',
|
4734
|
-
distribution_system_idref: 'HVACDistribution2',
|
4735
|
-
heating_system_type: HPXML::HVACTypeFurnace,
|
4736
|
-
heating_system_fuel: HPXML::FuelTypeElectricity,
|
4737
|
-
heating_capacity: 6400,
|
4738
|
-
heating_efficiency_afue: 0.92,
|
4739
|
-
fraction_heat_load_served: 0.2)
|
4740
|
-
hpxml.heating_systems.add(id: 'HeatingSystem3',
|
4741
|
-
distribution_system_idref: 'HVACDistribution3',
|
4742
|
-
heating_system_type: HPXML::HVACTypeBoiler,
|
4743
|
-
heating_system_fuel: HPXML::FuelTypeElectricity,
|
4744
|
-
heating_capacity: 6400,
|
4745
|
-
heating_efficiency_afue: 1,
|
4746
|
-
fraction_heat_load_served: 0.2)
|
4747
|
-
hpxml.heating_systems.add(id: 'HeatingSystem4',
|
4748
|
-
heating_system_type: HPXML::HVACTypeElectricResistance,
|
4749
|
-
heating_system_fuel: HPXML::FuelTypeElectricity,
|
4750
|
-
heating_capacity: 3200,
|
4751
|
-
heating_efficiency_percent: 1,
|
4752
|
-
fraction_heat_load_served: 0.1)
|
4753
5421
|
elsif ['base-mechvent-multiple.xml',
|
4754
5422
|
'base-bldgtype-multifamily-shared-mechvent-multiple.xml'].include? hpxml_file
|
4755
5423
|
hpxml.heating_systems[0].heating_capacity /= 2.0
|
@@ -4822,7 +5490,7 @@ def set_hpxml_heating_systems(hpxml_file, hpxml)
|
|
4822
5490
|
end
|
4823
5491
|
elsif ['base-hvac-furnace-elec-central-ac-1-speed.xml'].include? hpxml_file
|
4824
5492
|
hpxml.heating_systems[0].heating_system_fuel = HPXML::FuelTypeElectricity
|
4825
|
-
hpxml.heating_systems[0].heating_efficiency_afue = 1
|
5493
|
+
hpxml.heating_systems[0].heating_efficiency_afue = 1.0
|
4826
5494
|
elsif ['invalid_files/unattached-hvac-distribution.xml'].include? hpxml_file
|
4827
5495
|
hpxml.heating_systems[0].distribution_system_idref = 'foobar'
|
4828
5496
|
elsif ['invalid_files/hvac-invalid-distribution-system-type.xml'].include? hpxml_file
|
@@ -4845,14 +5513,45 @@ def set_hpxml_heating_systems(hpxml_file, hpxml)
|
|
4845
5513
|
elsif ['base-bldgtype-multifamily-shared-boiler-only-fan-coil.xml',
|
4846
5514
|
'base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.xml'].include? hpxml_file
|
4847
5515
|
hpxml.heating_systems[0].fan_coil_watts = 150
|
4848
|
-
elsif ['base-bldgtype-multifamily-shared-boiler-only-water-loop-heat-pump.xml',
|
4849
|
-
'base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.xml'].include? hpxml_file
|
4850
|
-
hpxml.heating_systems[0].wlhp_heating_efficiency_cop = 4.4
|
4851
5516
|
elsif ['base-bldgtype-multifamily-shared-boiler-only-fan-coil-eae.xml'].include? hpxml_file
|
4852
5517
|
hpxml.heating_systems[0].fan_coil_watts = nil
|
4853
5518
|
hpxml.heating_systems[0].shared_loop_watts = nil
|
4854
5519
|
hpxml.heating_systems[0].electric_auxiliary_energy = 500.0
|
4855
|
-
elsif
|
5520
|
+
elsif ['base-hvac-install-quality-none-furnace-gas-central-ac-1-speed.xml'].include? hpxml_file
|
5521
|
+
hpxml.heating_systems[0].airflow_defect_ratio = 0.0
|
5522
|
+
elsif ['base-hvac-install-quality-airflow-defect-furnace-gas-central-ac-1-speed.xml'].include? hpxml_file
|
5523
|
+
hpxml.heating_systems[0].airflow_defect_ratio = -0.25
|
5524
|
+
elsif ['base-hvac-install-quality-blower-efficiency-furnace-gas-central-ac-1-speed.xml'].include? hpxml_file
|
5525
|
+
hpxml.heating_systems[0].fan_watts_per_cfm = 0.365
|
5526
|
+
elsif ['base-hvac-install-quality-all-furnace-gas-only.xml',
|
5527
|
+
'base-hvac-install-quality-all-furnace-gas-central-ac-1-speed.xml',
|
5528
|
+
'base-hvac-install-quality-all-furnace-gas-central-ac-2-speed.xml',
|
5529
|
+
'base-hvac-install-quality-all-furnace-gas-central-ac-var-speed.xml'].include? hpxml_file
|
5530
|
+
hpxml.heating_systems[0].fan_watts_per_cfm = 0.365
|
5531
|
+
hpxml.heating_systems[0].airflow_defect_ratio = -0.25
|
5532
|
+
elsif ['invalid_files/multiple-shared-heating-systems.xml'].include? hpxml_file
|
5533
|
+
hpxml.heating_systems[0].fraction_heat_load_served = 0.5
|
5534
|
+
hpxml.heating_systems << hpxml.heating_systems[0].dup
|
5535
|
+
hpxml.heating_systems[1].id += '2'
|
5536
|
+
hpxml.heating_systems[1].distribution_system_idref += '2'
|
5537
|
+
elsif ['invalid_files/boiler-invalid-afue.xml',
|
5538
|
+
'invalid_files/furnace-invalid-afue.xml'].include? hpxml_file
|
5539
|
+
hpxml.heating_systems[0].heating_efficiency_afue *= 100.0
|
5540
|
+
elsif ['base-location-honolulu-hi.xml',
|
5541
|
+
'base-location-miami-fl.xml',
|
5542
|
+
'base-bldgtype-multifamily.xml'].include? hpxml_file
|
5543
|
+
hpxml.heating_systems[0].heating_capacity = 12000
|
5544
|
+
elsif ['base-location-dallas-tx.xml',
|
5545
|
+
'base-location-baltimore-md.xml',
|
5546
|
+
'base-location-phoenix-az.xml',
|
5547
|
+
'base-location-portland-or.xml',
|
5548
|
+
'base-bldgtype-single-family-attached.xml'].include? hpxml_file
|
5549
|
+
hpxml.heating_systems[0].heating_capacity = 24000
|
5550
|
+
elsif ['base-location-helena-mt.xml',
|
5551
|
+
'base-enclosure-2stories.xml',
|
5552
|
+
'base-enclosure-2stories-garage.xml'].include? hpxml_file
|
5553
|
+
hpxml.heating_systems[0].heating_capacity = 48000
|
5554
|
+
elsif hpxml_file.include?('base-hvac-autosize') && (not hpxml.heating_systems.nil?) && (hpxml.heating_systems.size > 0)
|
4856
5555
|
hpxml.heating_systems[0].heating_capacity = nil
|
4857
5556
|
end
|
4858
5557
|
end
|
@@ -4863,7 +5562,7 @@ def set_hpxml_cooling_systems(hpxml_file, hpxml)
|
|
4863
5562
|
distribution_system_idref: 'HVACDistribution',
|
4864
5563
|
cooling_system_type: HPXML::HVACTypeCentralAirConditioner,
|
4865
5564
|
cooling_system_fuel: HPXML::FuelTypeElectricity,
|
4866
|
-
cooling_capacity:
|
5565
|
+
cooling_capacity: 24000,
|
4867
5566
|
fraction_cool_load_served: 1,
|
4868
5567
|
cooling_efficiency_seer: 13,
|
4869
5568
|
cooling_shr: 0.73,
|
@@ -4879,6 +5578,7 @@ def set_hpxml_cooling_systems(hpxml_file, hpxml)
|
|
4879
5578
|
'base-hvac-boiler-wood-only.xml',
|
4880
5579
|
'base-hvac-elec-resistance-only.xml',
|
4881
5580
|
'base-hvac-fireplace-wood-only.xml',
|
5581
|
+
'base-hvac-fixed-heater-gas-only.xml',
|
4882
5582
|
'base-hvac-floor-furnace-propane-only.xml',
|
4883
5583
|
'base-hvac-furnace-coal-only.xml',
|
4884
5584
|
'base-hvac-furnace-elec-only.xml',
|
@@ -4888,16 +5588,14 @@ def set_hpxml_cooling_systems(hpxml_file, hpxml)
|
|
4888
5588
|
'base-hvac-furnace-wood-only.xml',
|
4889
5589
|
'base-hvac-ground-to-air-heat-pump.xml',
|
4890
5590
|
'base-hvac-mini-split-heat-pump-ducted.xml',
|
4891
|
-
'base-hvac-ideal-air.xml',
|
4892
5591
|
'base-hvac-none.xml',
|
5592
|
+
'base-hvac-portable-heater-gas-only.xml',
|
4893
5593
|
'base-hvac-stove-oil-only.xml',
|
4894
5594
|
'base-hvac-stove-wood-pellets-only.xml',
|
4895
5595
|
'base-hvac-wall-furnace-elec-only.xml',
|
4896
5596
|
'base-bldgtype-multifamily-shared-boiler-only-baseboard.xml',
|
4897
5597
|
'base-bldgtype-multifamily-shared-ground-loop-ground-to-air-heat-pump.xml'].include? hpxml_file
|
4898
5598
|
hpxml.cooling_systems.clear
|
4899
|
-
elsif ['base-hvac-central-ac-only-1-speed.xml'].include? hpxml_file
|
4900
|
-
hpxml.cooling_systems[0].fan_watts_per_cfm = 0.45
|
4901
5599
|
elsif ['base-hvac-boiler-gas-central-ac-1-speed.xml'].include? hpxml_file
|
4902
5600
|
hpxml.cooling_systems[0].distribution_system_idref = 'HVACDistribution2'
|
4903
5601
|
elsif ['base-hvac-furnace-gas-central-ac-2-speed.xml',
|
@@ -4915,7 +5613,6 @@ def set_hpxml_cooling_systems(hpxml_file, hpxml)
|
|
4915
5613
|
hpxml.cooling_systems[0].cooling_efficiency_seer = 19
|
4916
5614
|
hpxml.cooling_systems[0].cooling_shr = 0.73
|
4917
5615
|
hpxml.cooling_systems[0].compressor_type = nil
|
4918
|
-
hpxml.cooling_systems[0].fan_watts_per_cfm = 0.2
|
4919
5616
|
elsif ['base-hvac-mini-split-air-conditioner-only-ductless.xml'].include? hpxml_file
|
4920
5617
|
hpxml.cooling_systems[0].distribution_system_idref = nil
|
4921
5618
|
elsif ['base-hvac-furnace-gas-room-ac.xml',
|
@@ -4928,24 +5625,19 @@ def set_hpxml_cooling_systems(hpxml_file, hpxml)
|
|
4928
5625
|
hpxml.cooling_systems[0].compressor_type = nil
|
4929
5626
|
elsif ['base-hvac-room-ac-only-33percent.xml'].include? hpxml_file
|
4930
5627
|
hpxml.cooling_systems[0].fraction_cool_load_served = 0.33
|
5628
|
+
hpxml.cooling_systems[0].cooling_capacity /= 3.0
|
4931
5629
|
elsif ['base-hvac-evap-cooler-only-ducted.xml',
|
4932
5630
|
'base-hvac-evap-cooler-furnace-gas.xml',
|
4933
|
-
'base-hvac-evap-cooler-only.xml'
|
4934
|
-
'hvac_autosizing/base-hvac-evap-cooler-furnace-gas-autosize.xml'].include? hpxml_file
|
5631
|
+
'base-hvac-evap-cooler-only.xml'].include? hpxml_file
|
4935
5632
|
hpxml.cooling_systems[0].cooling_system_type = HPXML::HVACTypeEvaporativeCooler
|
4936
5633
|
hpxml.cooling_systems[0].cooling_efficiency_seer = nil
|
4937
5634
|
hpxml.cooling_systems[0].cooling_efficiency_eer = nil
|
4938
|
-
hpxml.cooling_systems[0].cooling_capacity = nil
|
4939
5635
|
hpxml.cooling_systems[0].cooling_shr = nil
|
4940
5636
|
hpxml.cooling_systems[0].compressor_type = nil
|
4941
5637
|
if ['base-hvac-evap-cooler-furnace-gas.xml',
|
4942
|
-
'hvac_autosizing/base-hvac-evap-cooler-furnace-gas-autosize.xml',
|
4943
5638
|
'base-hvac-evap-cooler-only.xml'].include? hpxml_file
|
4944
5639
|
hpxml.cooling_systems[0].distribution_system_idref = nil
|
4945
5640
|
end
|
4946
|
-
if ['base-hvac-evap-cooler-only.xml'].include? hpxml_file
|
4947
|
-
hpxml.cooling_systems[0].fan_watts_per_cfm = 0.3
|
4948
|
-
end
|
4949
5641
|
elsif ['base-hvac-multiple.xml'].include? hpxml_file
|
4950
5642
|
hpxml.cooling_systems[0].distribution_system_idref = 'HVACDistribution2'
|
4951
5643
|
hpxml.cooling_systems[0].fraction_cool_load_served = 0.2
|
@@ -4957,18 +5649,6 @@ def set_hpxml_cooling_systems(hpxml_file, hpxml)
|
|
4957
5649
|
fraction_cool_load_served: 0.2,
|
4958
5650
|
cooling_efficiency_eer: 8.5,
|
4959
5651
|
cooling_shr: 0.65)
|
4960
|
-
elsif ['base-hvac-multiple2.xml'].include? hpxml_file
|
4961
|
-
hpxml.cooling_systems[0].distribution_system_idref = 'HVACDistribution'
|
4962
|
-
hpxml.cooling_systems[0].fraction_cool_load_served = 0.25
|
4963
|
-
hpxml.cooling_systems[0].cooling_capacity *= 0.25
|
4964
|
-
hpxml.cooling_systems.add(id: 'CoolingSystem2',
|
4965
|
-
distribution_system_idref: 'HVACDistribution2',
|
4966
|
-
cooling_system_type: HPXML::HVACTypeCentralAirConditioner,
|
4967
|
-
cooling_system_fuel: HPXML::FuelTypeElectricity,
|
4968
|
-
cooling_capacity: 9600,
|
4969
|
-
fraction_cool_load_served: 0.25,
|
4970
|
-
cooling_efficiency_seer: 13,
|
4971
|
-
cooling_shr: 0.65)
|
4972
5652
|
elsif ['base-mechvent-multiple.xml',
|
4973
5653
|
'base-bldgtype-multifamily-shared-mechvent-multiple.xml'].include? hpxml_file
|
4974
5654
|
hpxml.cooling_systems[0].fraction_cool_load_served /= 2.0
|
@@ -4986,8 +5666,22 @@ def set_hpxml_cooling_systems(hpxml_file, hpxml)
|
|
4986
5666
|
hpxml.cooling_systems[0].fan_watts_per_cfm = 0.55
|
4987
5667
|
elsif ['base-hvac-undersized.xml'].include? hpxml_file
|
4988
5668
|
hpxml.cooling_systems[0].cooling_capacity /= 10.0
|
4989
|
-
elsif ['base-hvac-
|
4990
|
-
hpxml.cooling_systems[0].
|
5669
|
+
elsif ['base-hvac-install-quality-none-furnace-gas-central-ac-1-speed.xml'].include? hpxml_file
|
5670
|
+
hpxml.cooling_systems[0].airflow_defect_ratio = 0.0
|
5671
|
+
hpxml.cooling_systems[0].charge_defect_ratio = 0.0
|
5672
|
+
elsif ['base-hvac-install-quality-airflow-defect-furnace-gas-central-ac-1-speed.xml'].include? hpxml_file
|
5673
|
+
hpxml.cooling_systems[0].airflow_defect_ratio = -0.25
|
5674
|
+
elsif ['base-hvac-install-quality-charge-defect-furnace-gas-central-ac-1-speed.xml'].include? hpxml_file
|
5675
|
+
hpxml.cooling_systems[0].charge_defect_ratio = -0.25
|
5676
|
+
elsif ['base-hvac-install-quality-blower-efficiency-furnace-gas-central-ac-1-speed.xml'].include? hpxml_file
|
5677
|
+
hpxml.cooling_systems[0].fan_watts_per_cfm = 0.365
|
5678
|
+
elsif ['base-hvac-install-quality-all-mini-split-air-conditioner-only-ducted.xml',
|
5679
|
+
'base-hvac-install-quality-all-furnace-gas-central-ac-1-speed.xml',
|
5680
|
+
'base-hvac-install-quality-all-furnace-gas-central-ac-2-speed.xml',
|
5681
|
+
'base-hvac-install-quality-all-furnace-gas-central-ac-var-speed.xml'].include? hpxml_file
|
5682
|
+
hpxml.cooling_systems[0].charge_defect_ratio = -0.25
|
5683
|
+
hpxml.cooling_systems[0].fan_watts_per_cfm = 0.365
|
5684
|
+
hpxml.cooling_systems[0].airflow_defect_ratio = -0.25
|
4991
5685
|
elsif ['base-misc-defaults.xml'].include? hpxml_file
|
4992
5686
|
hpxml.cooling_systems[0].cooling_shr = nil
|
4993
5687
|
hpxml.cooling_systems[0].compressor_type = nil
|
@@ -5003,10 +5697,6 @@ def set_hpxml_cooling_systems(hpxml_file, hpxml)
|
|
5003
5697
|
hpxml.cooling_systems[0].cooling_efficiency_kw_per_ton = 0.9
|
5004
5698
|
hpxml.cooling_systems[0].cooling_shr = nil
|
5005
5699
|
hpxml.cooling_systems[0].shared_loop_watts = 600
|
5006
|
-
if hpxml_file.include? 'water-loop-heat-pump'
|
5007
|
-
hpxml.cooling_systems[0].wlhp_cooling_capacity = 24000
|
5008
|
-
hpxml.cooling_systems[0].wlhp_cooling_efficiency_eer = 12.8
|
5009
|
-
end
|
5010
5700
|
elsif ['base-bldgtype-multifamily-shared-cooling-tower-only-water-loop-heat-pump.xml',
|
5011
5701
|
'base-bldgtype-multifamily-shared-boiler-cooling-tower-water-loop-heat-pump.xml'].include? hpxml_file
|
5012
5702
|
hpxml.cooling_systems[0].cooling_system_type = HPXML::HVACTypeCoolingTower
|
@@ -5015,7 +5705,19 @@ def set_hpxml_cooling_systems(hpxml_file, hpxml)
|
|
5015
5705
|
elsif ['base-bldgtype-multifamily-shared-chiller-only-fan-coil.xml',
|
5016
5706
|
'base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.xml'].include? hpxml_file
|
5017
5707
|
hpxml.cooling_systems[0].fan_coil_watts = 150
|
5018
|
-
elsif
|
5708
|
+
elsif ['invalid_files/multiple-shared-cooling-systems.xml'].include? hpxml_file
|
5709
|
+
hpxml.cooling_systems[0].fraction_cool_load_served = 0.5
|
5710
|
+
hpxml.cooling_systems << hpxml.cooling_systems[0].dup
|
5711
|
+
hpxml.cooling_systems[1].id += '2'
|
5712
|
+
hpxml.cooling_systems[1].distribution_system_idref += '2'
|
5713
|
+
elsif ['invalid_files/hvac-shared-negative-seer-eq.xml'].include? hpxml_file
|
5714
|
+
hpxml.cooling_systems[0].shared_loop_watts *= 100.0
|
5715
|
+
elsif ['base-bldgtype-multifamily.xml'].include? hpxml_file
|
5716
|
+
hpxml.cooling_systems[0].cooling_capacity = 12000
|
5717
|
+
elsif ['base-enclosure-2stories.xml',
|
5718
|
+
'base-enclosure-2stories-garage.xml'].include? hpxml_file
|
5719
|
+
hpxml.cooling_systems[0].cooling_capacity = 36000
|
5720
|
+
elsif hpxml_file.include?('base-hvac-autosize') && (not hpxml.cooling_systems.nil?) && (hpxml.cooling_systems.size > 0)
|
5019
5721
|
hpxml.cooling_systems[0].cooling_capacity = nil
|
5020
5722
|
end
|
5021
5723
|
end
|
@@ -5027,19 +5729,18 @@ def set_hpxml_heat_pumps(hpxml_file, hpxml)
|
|
5027
5729
|
distribution_system_idref: 'HVACDistribution',
|
5028
5730
|
heat_pump_type: HPXML::HVACTypeHeatPumpAirToAir,
|
5029
5731
|
heat_pump_fuel: HPXML::FuelTypeElectricity,
|
5030
|
-
heating_capacity:
|
5031
|
-
cooling_capacity:
|
5732
|
+
heating_capacity: 36000,
|
5733
|
+
cooling_capacity: 36000,
|
5032
5734
|
backup_heating_fuel: HPXML::FuelTypeElectricity,
|
5033
|
-
backup_heating_capacity:
|
5735
|
+
backup_heating_capacity: 36000,
|
5034
5736
|
backup_heating_efficiency_percent: 1.0,
|
5035
5737
|
fraction_heat_load_served: 1,
|
5036
5738
|
fraction_cool_load_served: 1,
|
5037
5739
|
heating_efficiency_hspf: 7.7,
|
5038
5740
|
cooling_efficiency_seer: 13,
|
5039
|
-
heating_capacity_17F:
|
5741
|
+
heating_capacity_17F: 36000 * 0.630, # Based on OAT slope of default curves
|
5040
5742
|
cooling_shr: 0.73,
|
5041
|
-
compressor_type: HPXML::HVACCompressorTypeSingleStage
|
5042
|
-
fan_watts_per_cfm: 0.45)
|
5743
|
+
compressor_type: HPXML::HVACCompressorTypeSingleStage)
|
5043
5744
|
if hpxml_file == 'base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml'
|
5044
5745
|
hpxml.heat_pumps[0].fraction_cool_load_served = 0
|
5045
5746
|
end
|
@@ -5048,16 +5749,16 @@ def set_hpxml_heat_pumps(hpxml_file, hpxml)
|
|
5048
5749
|
distribution_system_idref: 'HVACDistribution',
|
5049
5750
|
heat_pump_type: HPXML::HVACTypeHeatPumpAirToAir,
|
5050
5751
|
heat_pump_fuel: HPXML::FuelTypeElectricity,
|
5051
|
-
heating_capacity:
|
5052
|
-
cooling_capacity:
|
5752
|
+
heating_capacity: 36000,
|
5753
|
+
cooling_capacity: 36000,
|
5053
5754
|
backup_heating_fuel: HPXML::FuelTypeElectricity,
|
5054
|
-
backup_heating_capacity:
|
5755
|
+
backup_heating_capacity: 36000,
|
5055
5756
|
backup_heating_efficiency_percent: 1.0,
|
5056
5757
|
fraction_heat_load_served: 1,
|
5057
5758
|
fraction_cool_load_served: 1,
|
5058
5759
|
heating_efficiency_hspf: 9.3,
|
5059
5760
|
cooling_efficiency_seer: 18,
|
5060
|
-
heating_capacity_17F:
|
5761
|
+
heating_capacity_17F: 36000 * 0.590, # Based on OAT slope of default curves
|
5061
5762
|
cooling_shr: 0.73,
|
5062
5763
|
compressor_type: HPXML::HVACCompressorTypeTwoStage)
|
5063
5764
|
elsif ['base-hvac-air-to-air-heat-pump-var-speed.xml'].include? hpxml_file
|
@@ -5065,16 +5766,16 @@ def set_hpxml_heat_pumps(hpxml_file, hpxml)
|
|
5065
5766
|
distribution_system_idref: 'HVACDistribution',
|
5066
5767
|
heat_pump_type: HPXML::HVACTypeHeatPumpAirToAir,
|
5067
5768
|
heat_pump_fuel: HPXML::FuelTypeElectricity,
|
5068
|
-
heating_capacity:
|
5069
|
-
cooling_capacity:
|
5769
|
+
heating_capacity: 36000,
|
5770
|
+
cooling_capacity: 36000,
|
5070
5771
|
backup_heating_fuel: HPXML::FuelTypeElectricity,
|
5071
|
-
backup_heating_capacity:
|
5772
|
+
backup_heating_capacity: 36000,
|
5072
5773
|
backup_heating_efficiency_percent: 1.0,
|
5073
5774
|
fraction_heat_load_served: 1,
|
5074
5775
|
fraction_cool_load_served: 1,
|
5075
5776
|
heating_efficiency_hspf: 10,
|
5076
5777
|
cooling_efficiency_seer: 22,
|
5077
|
-
heating_capacity_17F:
|
5778
|
+
heating_capacity_17F: 36000 * 0.640, # Based on OAT slope of default curves
|
5078
5779
|
cooling_shr: 0.78,
|
5079
5780
|
compressor_type: HPXML::HVACCompressorTypeVariableSpeed)
|
5080
5781
|
elsif ['base-hvac-ground-to-air-heat-pump.xml',
|
@@ -5083,22 +5784,26 @@ def set_hpxml_heat_pumps(hpxml_file, hpxml)
|
|
5083
5784
|
distribution_system_idref: 'HVACDistribution',
|
5084
5785
|
heat_pump_type: HPXML::HVACTypeHeatPumpGroundToAir,
|
5085
5786
|
heat_pump_fuel: HPXML::FuelTypeElectricity,
|
5086
|
-
heating_capacity: 42000,
|
5087
|
-
cooling_capacity: 48000,
|
5088
5787
|
backup_heating_fuel: HPXML::FuelTypeElectricity,
|
5089
|
-
backup_heating_capacity: 34121,
|
5090
5788
|
backup_heating_efficiency_percent: 1.0,
|
5091
5789
|
fraction_heat_load_served: 1,
|
5092
5790
|
fraction_cool_load_served: 1,
|
5093
5791
|
heating_efficiency_cop: 3.6,
|
5094
5792
|
cooling_efficiency_eer: 16.6,
|
5095
5793
|
cooling_shr: 0.73,
|
5096
|
-
pump_watts_per_ton: 30.0
|
5097
|
-
fan_watts_per_cfm: 0.45)
|
5794
|
+
pump_watts_per_ton: 30.0)
|
5098
5795
|
if hpxml_file == 'base-bldgtype-multifamily-shared-ground-loop-ground-to-air-heat-pump.xml'
|
5099
5796
|
hpxml.heat_pumps[-1].is_shared_system = true
|
5100
5797
|
hpxml.heat_pumps[-1].number_of_units_served = 6
|
5101
5798
|
hpxml.heat_pumps[-1].shared_loop_watts = 600
|
5799
|
+
hpxml.heat_pumps[-1].pump_watts_per_ton = 0.0
|
5800
|
+
hpxml.heat_pumps[-1].heating_capacity = 12000
|
5801
|
+
hpxml.heat_pumps[-1].cooling_capacity = 12000
|
5802
|
+
hpxml.heat_pumps[-1].backup_heating_capacity = 12000
|
5803
|
+
else
|
5804
|
+
hpxml.heat_pumps[-1].heating_capacity = 36000
|
5805
|
+
hpxml.heat_pumps[-1].cooling_capacity = 36000
|
5806
|
+
hpxml.heat_pumps[-1].backup_heating_capacity = 36000
|
5102
5807
|
end
|
5103
5808
|
elsif ['base-hvac-mini-split-heat-pump-ducted.xml'].include? hpxml_file
|
5104
5809
|
f = 1.0 - (1.0 - 0.25) / (47.0 + 5.0) * (47.0 - 17.0)
|
@@ -5106,35 +5811,42 @@ def set_hpxml_heat_pumps(hpxml_file, hpxml)
|
|
5106
5811
|
distribution_system_idref: 'HVACDistribution',
|
5107
5812
|
heat_pump_type: HPXML::HVACTypeHeatPumpMiniSplit,
|
5108
5813
|
heat_pump_fuel: HPXML::FuelTypeElectricity,
|
5109
|
-
heating_capacity:
|
5110
|
-
cooling_capacity:
|
5814
|
+
heating_capacity: 36000,
|
5815
|
+
cooling_capacity: 36000,
|
5111
5816
|
backup_heating_fuel: HPXML::FuelTypeElectricity,
|
5112
|
-
backup_heating_capacity:
|
5817
|
+
backup_heating_capacity: 36000,
|
5113
5818
|
backup_heating_efficiency_percent: 1.0,
|
5114
5819
|
fraction_heat_load_served: 1,
|
5115
5820
|
fraction_cool_load_served: 1,
|
5116
5821
|
heating_efficiency_hspf: 10,
|
5117
5822
|
cooling_efficiency_seer: 19,
|
5118
|
-
heating_capacity_17F:
|
5119
|
-
cooling_shr: 0.73
|
5120
|
-
|
5121
|
-
|
5823
|
+
heating_capacity_17F: (36000 * f).round(0),
|
5824
|
+
cooling_shr: 0.73)
|
5825
|
+
elsif ['base-hvac-air-to-air-heat-pump-1-speed-heating-only.xml',
|
5826
|
+
'base-hvac-ground-to-air-heat-pump-heating-only.xml',
|
5827
|
+
'base-hvac-mini-split-heat-pump-ducted-heating-only.xml'].include? hpxml_file
|
5122
5828
|
hpxml.heat_pumps[0].cooling_capacity = 0
|
5123
5829
|
hpxml.heat_pumps[0].fraction_cool_load_served = 0
|
5124
|
-
elsif ['base-hvac-
|
5830
|
+
elsif ['base-hvac-air-to-air-heat-pump-1-speed-cooling-only.xml',
|
5831
|
+
'base-hvac-ground-to-air-heat-pump-cooling-only.xml',
|
5832
|
+
'base-hvac-mini-split-heat-pump-ducted-cooling-only.xml'].include? hpxml_file
|
5125
5833
|
hpxml.heat_pumps[0].heating_capacity = 0
|
5126
|
-
|
5834
|
+
if not ['base-hvac-ground-to-air-heat-pump-cooling-only.xml'].include? hpxml_file
|
5835
|
+
hpxml.heat_pumps[0].heating_capacity_17F = 0
|
5836
|
+
end
|
5127
5837
|
hpxml.heat_pumps[0].fraction_heat_load_served = 0
|
5128
5838
|
hpxml.heat_pumps[0].backup_heating_fuel = nil
|
5839
|
+
hpxml.heat_pumps[0].backup_heating_capacity = nil
|
5840
|
+
hpxml.heat_pumps[0].backup_heating_efficiency_percent = nil
|
5129
5841
|
elsif ['base-hvac-mini-split-heat-pump-ductless.xml'].include? hpxml_file
|
5130
5842
|
hpxml.heat_pumps[0].distribution_system_idref = nil
|
5131
5843
|
hpxml.heat_pumps[0].backup_heating_fuel = nil
|
5844
|
+
hpxml.heat_pumps[0].backup_heating_capacity = nil
|
5845
|
+
hpxml.heat_pumps[0].backup_heating_efficiency_percent = nil
|
5132
5846
|
elsif ['invalid_files/heat-pump-mixed-fixed-and-autosize-capacities.xml'].include? hpxml_file
|
5133
5847
|
hpxml.heat_pumps[0].cooling_capacity = nil
|
5134
5848
|
hpxml.heat_pumps[0].heating_capacity = nil
|
5135
5849
|
hpxml.heat_pumps[0].heating_capacity_17F = 25000
|
5136
|
-
elsif ['invalid_files/heat-pump-mixed-fixed-and-autosize-capacities2.xml'].include? hpxml_file
|
5137
|
-
hpxml.heat_pumps[0].backup_heating_capacity = nil
|
5138
5850
|
elsif ['base-hvac-multiple.xml'].include? hpxml_file
|
5139
5851
|
hpxml.heat_pumps.add(id: 'HeatPump',
|
5140
5852
|
distribution_system_idref: 'HVACDistribution5',
|
@@ -5182,38 +5894,21 @@ def set_hpxml_heat_pumps(hpxml_file, hpxml)
|
|
5182
5894
|
cooling_efficiency_seer: 19,
|
5183
5895
|
heating_capacity_17F: 4800 * f,
|
5184
5896
|
cooling_shr: 0.73)
|
5185
|
-
elsif ['base-
|
5186
|
-
|
5187
|
-
|
5188
|
-
|
5189
|
-
|
5190
|
-
|
5191
|
-
|
5192
|
-
|
5193
|
-
|
5194
|
-
|
5195
|
-
|
5196
|
-
|
5197
|
-
|
5198
|
-
|
5199
|
-
|
5200
|
-
cooling_shr: 0.73,
|
5201
|
-
compressor_type: HPXML::HVACCompressorTypeSingleStage)
|
5202
|
-
hpxml.heat_pumps.add(id: 'HeatPump2',
|
5203
|
-
distribution_system_idref: 'HVACDistribution5',
|
5204
|
-
heat_pump_type: HPXML::HVACTypeHeatPumpGroundToAir,
|
5205
|
-
heat_pump_fuel: HPXML::FuelTypeElectricity,
|
5206
|
-
heating_capacity: 4800,
|
5207
|
-
cooling_capacity: 4800,
|
5208
|
-
backup_heating_fuel: HPXML::FuelTypeElectricity,
|
5209
|
-
backup_heating_capacity: 3412,
|
5210
|
-
backup_heating_efficiency_percent: 1.0,
|
5211
|
-
fraction_heat_load_served: 0.1,
|
5212
|
-
fraction_cool_load_served: 0.2,
|
5213
|
-
heating_efficiency_cop: 3.6,
|
5214
|
-
cooling_efficiency_eer: 16.6,
|
5215
|
-
cooling_shr: 0.73,
|
5216
|
-
pump_watts_per_ton: 30.0)
|
5897
|
+
elsif ['base-bldgtype-multifamily-shared-boiler-only-water-loop-heat-pump.xml',
|
5898
|
+
'base-bldgtype-multifamily-shared-chiller-only-water-loop-heat-pump.xml',
|
5899
|
+
'base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.xml'].include? hpxml_file
|
5900
|
+
hpxml.heat_pumps.add(id: 'WLHP',
|
5901
|
+
distribution_system_idref: 'HVACDistributionWLHP',
|
5902
|
+
heat_pump_type: HPXML::HVACTypeHeatPumpWaterLoopToAir,
|
5903
|
+
heat_pump_fuel: HPXML::FuelTypeElectricity)
|
5904
|
+
if hpxml_file.include? 'boiler'
|
5905
|
+
hpxml.heat_pumps[-1].heating_capacity = 24000
|
5906
|
+
hpxml.heat_pumps[-1].heating_efficiency_cop = 4.4
|
5907
|
+
end
|
5908
|
+
if hpxml_file.include? 'chiller'
|
5909
|
+
hpxml.heat_pumps[-1].cooling_capacity = 24000
|
5910
|
+
hpxml.heat_pumps[-1].cooling_efficiency_eer = 12.8
|
5911
|
+
end
|
5217
5912
|
elsif ['invalid_files/hvac-distribution-multiple-attached-heating.xml'].include? hpxml_file
|
5218
5913
|
hpxml.heat_pumps[0].distribution_system_idref = 'HVACDistribution'
|
5219
5914
|
elsif ['invalid_files/hvac-distribution-multiple-attached-cooling.xml'].include? hpxml_file
|
@@ -5230,7 +5925,19 @@ def set_hpxml_heat_pumps(hpxml_file, hpxml)
|
|
5230
5925
|
elsif ['base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.xml'].include? hpxml_file
|
5231
5926
|
hpxml.heat_pumps[0].backup_heating_fuel = HPXML::FuelTypeElectricity
|
5232
5927
|
hpxml.heat_pumps[0].backup_heating_efficiency_afue = 1.0
|
5233
|
-
elsif
|
5928
|
+
elsif ['base-hvac-install-quality-all-air-to-air-heat-pump-1-speed.xml',
|
5929
|
+
'base-hvac-install-quality-all-air-to-air-heat-pump-2-speed.xml',
|
5930
|
+
'base-hvac-install-quality-all-air-to-air-heat-pump-var-speed.xml',
|
5931
|
+
'base-hvac-install-quality-all-mini-split-heat-pump-ducted.xml',
|
5932
|
+
'base-hvac-install-quality-all-ground-to-air-heat-pump.xml'].include? hpxml_file
|
5933
|
+
hpxml.heat_pumps[0].airflow_defect_ratio = -0.25
|
5934
|
+
hpxml.heat_pumps[0].fan_watts_per_cfm = 0.365
|
5935
|
+
if hpxml_file != 'base-hvac-install-quality-all-ground-to-air-heat-pump.xml'
|
5936
|
+
hpxml.heat_pumps[0].charge_defect_ratio = -0.25
|
5937
|
+
else
|
5938
|
+
hpxml.heat_pumps[0].charge_defect_ratio = 0.0
|
5939
|
+
end
|
5940
|
+
elsif hpxml_file.include?('base-hvac-autosize') && (not hpxml.heat_pumps.nil?) && (hpxml.heat_pumps.size > 0)
|
5234
5941
|
hpxml.heat_pumps[0].cooling_capacity = nil
|
5235
5942
|
hpxml.heat_pumps[0].heating_capacity = nil
|
5236
5943
|
hpxml.heat_pumps[0].heating_capacity_17F = nil
|
@@ -5263,9 +5970,9 @@ def set_hpxml_hvac_control(hpxml_file, hpxml)
|
|
5263
5970
|
hpxml.hvac_controls[0].control_type = HPXML::HVACControlTypeProgrammable
|
5264
5971
|
hpxml.hvac_controls[0].heating_setpoint_temp = nil
|
5265
5972
|
hpxml.hvac_controls[0].cooling_setpoint_temp = nil
|
5266
|
-
hpxml.hvac_controls[0].weekday_heating_setpoints = '64, 64, 64, 64, 64, 64, 64,
|
5267
|
-
hpxml.hvac_controls[0].weekend_heating_setpoints = '
|
5268
|
-
hpxml.hvac_controls[0].weekday_cooling_setpoints = '
|
5973
|
+
hpxml.hvac_controls[0].weekday_heating_setpoints = '64, 64, 64, 64, 64, 64, 64, 70, 70, 66, 66, 66, 66, 66, 66, 66, 66, 68, 68, 68, 68, 68, 64, 64'
|
5974
|
+
hpxml.hvac_controls[0].weekend_heating_setpoints = '68, 68, 68, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70'
|
5975
|
+
hpxml.hvac_controls[0].weekday_cooling_setpoints = '80, 80, 80, 80, 80, 80, 80, 75, 75, 80, 80, 80, 80, 80, 80, 80, 80, 78, 78, 78, 78, 78, 80, 80'
|
5269
5976
|
hpxml.hvac_controls[0].weekend_cooling_setpoints = '78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78'
|
5270
5977
|
elsif ['base-hvac-setpoints.xml'].include? hpxml_file
|
5271
5978
|
hpxml.hvac_controls[0].heating_setpoint_temp = 60
|
@@ -5278,7 +5985,8 @@ end
|
|
5278
5985
|
def set_hpxml_hvac_distributions(hpxml_file, hpxml)
|
5279
5986
|
if ['base.xml'].include? hpxml_file
|
5280
5987
|
hpxml.hvac_distributions.add(id: 'HVACDistribution',
|
5281
|
-
distribution_system_type: HPXML::HVACDistributionTypeAir
|
5988
|
+
distribution_system_type: HPXML::HVACDistributionTypeAir,
|
5989
|
+
air_type: HPXML::AirTypeRegularVelocity)
|
5282
5990
|
hpxml.hvac_distributions[0].duct_leakage_measurements.add(duct_type: HPXML::DuctTypeSupply,
|
5283
5991
|
duct_leakage_units: HPXML::UnitsCFM25,
|
5284
5992
|
duct_leakage_value: 75,
|
@@ -5321,8 +6029,8 @@ def set_hpxml_hvac_distributions(hpxml_file, hpxml)
|
|
5321
6029
|
elsif ['base-bldgtype-multifamily-shared-boiler-only-fan-coil.xml',
|
5322
6030
|
'base-bldgtype-multifamily-shared-chiller-only-fan-coil.xml',
|
5323
6031
|
'base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.xml'].include? hpxml_file
|
5324
|
-
hpxml.hvac_distributions[0].distribution_system_type = HPXML::
|
5325
|
-
hpxml.hvac_distributions[0].
|
6032
|
+
hpxml.hvac_distributions[0].distribution_system_type = HPXML::HVACDistributionTypeAir
|
6033
|
+
hpxml.hvac_distributions[0].air_type = HPXML::AirTypeFanCoil
|
5326
6034
|
elsif ['base-hvac-boiler-gas-central-ac-1-speed.xml'].include? hpxml_file
|
5327
6035
|
hpxml.hvac_distributions[0].distribution_system_type = HPXML::HVACDistributionTypeHydronic
|
5328
6036
|
hpxml.hvac_distributions[0].hydronic_type = HPXML::HydronicTypeBaseboard
|
@@ -5330,7 +6038,7 @@ def set_hpxml_hvac_distributions(hpxml_file, hpxml)
|
|
5330
6038
|
hpxml.hvac_distributions[0].ducts.clear
|
5331
6039
|
hpxml.hvac_distributions.add(id: 'HVACDistribution2',
|
5332
6040
|
distribution_system_type: HPXML::HVACDistributionTypeAir,
|
5333
|
-
|
6041
|
+
air_type: HPXML::AirTypeRegularVelocity)
|
5334
6042
|
hpxml.hvac_distributions[-1].duct_leakage_measurements.add(duct_type: HPXML::DuctTypeSupply,
|
5335
6043
|
duct_leakage_units: HPXML::UnitsCFM25,
|
5336
6044
|
duct_leakage_value: 75,
|
@@ -5352,9 +6060,10 @@ def set_hpxml_hvac_distributions(hpxml_file, hpxml)
|
|
5352
6060
|
'base-hvac-evap-cooler-only.xml',
|
5353
6061
|
'base-hvac-fireplace-wood-only.xml',
|
5354
6062
|
'base-hvac-floor-furnace-propane-only.xml',
|
5355
|
-
'base-hvac-
|
6063
|
+
'base-hvac-fixed-heater-gas-only.xml',
|
5356
6064
|
'base-hvac-mini-split-heat-pump-ductless.xml',
|
5357
6065
|
'base-hvac-mini-split-air-conditioner-only-ductless.xml',
|
6066
|
+
'base-hvac-portable-heater-gas-only.xml',
|
5358
6067
|
'base-hvac-room-ac-only.xml',
|
5359
6068
|
'base-hvac-stove-oil-only.xml',
|
5360
6069
|
'base-hvac-stove-wood-pellets-only.xml',
|
@@ -5363,7 +6072,8 @@ def set_hpxml_hvac_distributions(hpxml_file, hpxml)
|
|
5363
6072
|
elsif ['base-hvac-multiple.xml'].include? hpxml_file
|
5364
6073
|
hpxml.hvac_distributions.clear
|
5365
6074
|
hpxml.hvac_distributions.add(id: 'HVACDistribution',
|
5366
|
-
distribution_system_type: HPXML::HVACDistributionTypeAir
|
6075
|
+
distribution_system_type: HPXML::HVACDistributionTypeAir,
|
6076
|
+
air_type: HPXML::AirTypeRegularVelocity)
|
5367
6077
|
hpxml.hvac_distributions[-1].duct_leakage_measurements.add(duct_type: HPXML::DuctTypeSupply,
|
5368
6078
|
duct_leakage_units: HPXML::UnitsCFM25,
|
5369
6079
|
duct_leakage_value: 75,
|
@@ -5400,43 +6110,6 @@ def set_hpxml_hvac_distributions(hpxml_file, hpxml)
|
|
5400
6110
|
hpxml.hvac_distributions[-1].id = 'HVACDistribution5'
|
5401
6111
|
hpxml.hvac_distributions << hpxml.hvac_distributions[0].dup
|
5402
6112
|
hpxml.hvac_distributions[-1].id = 'HVACDistribution6'
|
5403
|
-
elsif ['base-hvac-multiple2.xml'].include? hpxml_file
|
5404
|
-
hpxml.hvac_distributions.clear
|
5405
|
-
hpxml.hvac_distributions.add(id: 'HVACDistribution',
|
5406
|
-
distribution_system_type: HPXML::HVACDistributionTypeAir)
|
5407
|
-
hpxml.hvac_distributions[-1].duct_leakage_measurements.add(duct_type: HPXML::DuctTypeSupply,
|
5408
|
-
duct_leakage_units: HPXML::UnitsCFM25,
|
5409
|
-
duct_leakage_value: 75,
|
5410
|
-
duct_leakage_total_or_to_outside: HPXML::DuctLeakageToOutside)
|
5411
|
-
hpxml.hvac_distributions[-1].duct_leakage_measurements.add(duct_type: HPXML::DuctTypeReturn,
|
5412
|
-
duct_leakage_units: HPXML::UnitsCFM25,
|
5413
|
-
duct_leakage_value: 25,
|
5414
|
-
duct_leakage_total_or_to_outside: HPXML::DuctLeakageToOutside)
|
5415
|
-
hpxml.hvac_distributions[0].ducts.add(duct_type: HPXML::DuctTypeSupply,
|
5416
|
-
duct_insulation_r_value: 8,
|
5417
|
-
duct_location: HPXML::LocationAtticUnvented,
|
5418
|
-
duct_surface_area: 75)
|
5419
|
-
hpxml.hvac_distributions[0].ducts.add(duct_type: HPXML::DuctTypeSupply,
|
5420
|
-
duct_insulation_r_value: 8,
|
5421
|
-
duct_location: HPXML::LocationOutside,
|
5422
|
-
duct_surface_area: 75)
|
5423
|
-
hpxml.hvac_distributions[0].ducts.add(duct_type: HPXML::DuctTypeReturn,
|
5424
|
-
duct_insulation_r_value: 4,
|
5425
|
-
duct_location: HPXML::LocationAtticUnvented,
|
5426
|
-
duct_surface_area: 25)
|
5427
|
-
hpxml.hvac_distributions[0].ducts.add(duct_type: HPXML::DuctTypeReturn,
|
5428
|
-
duct_insulation_r_value: 4,
|
5429
|
-
duct_location: HPXML::LocationOutside,
|
5430
|
-
duct_surface_area: 25)
|
5431
|
-
hpxml.hvac_distributions << hpxml.hvac_distributions[0].dup
|
5432
|
-
hpxml.hvac_distributions[-1].id = 'HVACDistribution2'
|
5433
|
-
hpxml.hvac_distributions.add(id: 'HVACDistribution3',
|
5434
|
-
distribution_system_type: HPXML::HVACDistributionTypeHydronic,
|
5435
|
-
hydronic_type: HPXML::HydronicTypeBaseboard)
|
5436
|
-
hpxml.hvac_distributions << hpxml.hvac_distributions[0].dup
|
5437
|
-
hpxml.hvac_distributions[-1].id = 'HVACDistribution4'
|
5438
|
-
hpxml.hvac_distributions << hpxml.hvac_distributions[0].dup
|
5439
|
-
hpxml.hvac_distributions[-1].id = 'HVACDistribution5'
|
5440
6113
|
elsif ['base-mechvent-multiple.xml',
|
5441
6114
|
'base-bldgtype-multifamily-shared-mechvent-multiple.xml'].include? hpxml_file
|
5442
6115
|
hpxml.hvac_distributions << hpxml.hvac_distributions[0].dup
|
@@ -5464,8 +6137,10 @@ def set_hpxml_hvac_distributions(hpxml_file, hpxml)
|
|
5464
6137
|
hpxml.hvac_distributions[0].ducts[0].duct_surface_area = 30
|
5465
6138
|
hpxml.hvac_distributions[0].ducts[1].duct_surface_area = 10
|
5466
6139
|
elsif ['base-hvac-evap-cooler-only-ducted.xml'].include? hpxml_file
|
5467
|
-
hpxml.hvac_distributions[0].duct_leakage_measurements.
|
6140
|
+
hpxml.hvac_distributions[0].duct_leakage_measurements[-1].duct_leakage_value = 0.0
|
5468
6141
|
hpxml.hvac_distributions[0].ducts.pop
|
6142
|
+
elsif ['invalid_files/hvac-distribution-return-duct-leakage-missing.xml'].include? hpxml_file
|
6143
|
+
hpxml.hvac_distributions[0].duct_leakage_measurements.pop
|
5469
6144
|
elsif ['base-hvac-ducts-leakage-percent.xml'].include? hpxml_file
|
5470
6145
|
hpxml.hvac_distributions[0].duct_leakage_measurements.clear
|
5471
6146
|
hpxml.hvac_distributions[0].duct_leakage_measurements.add(duct_type: HPXML::DuctTypeSupply,
|
@@ -5539,8 +6214,8 @@ def set_hpxml_hvac_distributions(hpxml_file, hpxml)
|
|
5539
6214
|
if hpxml_file == 'base-atticroof-conditioned.xml'
|
5540
6215
|
# Test leakage to outside when all ducts in conditioned space
|
5541
6216
|
# (e.g., ducts may be in floor cavities which have leaky rims)
|
5542
|
-
hpxml.hvac_distributions[0].duct_leakage_measurements[0].duct_leakage_value =
|
5543
|
-
hpxml.hvac_distributions[0].duct_leakage_measurements[1].duct_leakage_value =
|
6217
|
+
hpxml.hvac_distributions[0].duct_leakage_measurements[0].duct_leakage_value = 50.0
|
6218
|
+
hpxml.hvac_distributions[0].duct_leakage_measurements[1].duct_leakage_value = 100.0
|
5544
6219
|
end
|
5545
6220
|
elsif ['base-bldgtype-multifamily-adjacent-to-other-housing-unit.xml'].include? hpxml_file
|
5546
6221
|
hpxml.hvac_distributions[0].ducts[0].duct_location = HPXML::LocationOtherHousingUnit
|
@@ -5560,29 +6235,32 @@ def set_hpxml_hvac_distributions(hpxml_file, hpxml)
|
|
5560
6235
|
'base-bldgtype-multifamily-shared-boiler-chiller-fan-coil-ducted.xml',
|
5561
6236
|
'base-bldgtype-multifamily-shared-boiler-only-fan-coil-ducted.xml',
|
5562
6237
|
'base-bldgtype-multifamily-shared-chiller-only-fan-coil-ducted.xml'].include? hpxml_file
|
5563
|
-
hpxml.hvac_distributions[0].distribution_system_type = HPXML::HVACDistributionTypeHydronicAndAir
|
5564
6238
|
if hpxml_file.include? 'fan-coil'
|
5565
|
-
hpxml.hvac_distributions[0].
|
6239
|
+
hpxml.hvac_distributions[0].distribution_system_type = HPXML::HVACDistributionTypeAir
|
6240
|
+
hpxml.hvac_distributions[0].air_type = HPXML::AirTypeFanCoil
|
5566
6241
|
elsif hpxml_file.include? 'water-loop-heat-pump'
|
5567
|
-
hpxml.hvac_distributions[0].
|
5568
|
-
hpxml.hvac_distributions[0].
|
6242
|
+
hpxml.hvac_distributions[0].distribution_system_type = HPXML::HVACDistributionTypeHydronic
|
6243
|
+
hpxml.hvac_distributions[0].hydronic_type = HPXML::HydronicTypeWaterLoop
|
6244
|
+
hpxml.hvac_distributions.add(id: 'HVACDistributionWLHP',
|
6245
|
+
distribution_system_type: HPXML::HVACDistributionTypeAir,
|
6246
|
+
air_type: HPXML::AirTypeRegularVelocity)
|
5569
6247
|
end
|
5570
|
-
hpxml.hvac_distributions[
|
5571
|
-
|
5572
|
-
|
5573
|
-
|
5574
|
-
hpxml.hvac_distributions[
|
5575
|
-
|
5576
|
-
|
5577
|
-
|
5578
|
-
hpxml.hvac_distributions[
|
5579
|
-
|
5580
|
-
|
5581
|
-
|
5582
|
-
hpxml.hvac_distributions[
|
5583
|
-
|
5584
|
-
|
5585
|
-
|
6248
|
+
hpxml.hvac_distributions[-1].duct_leakage_measurements.add(duct_type: HPXML::DuctTypeSupply,
|
6249
|
+
duct_leakage_units: HPXML::UnitsCFM25,
|
6250
|
+
duct_leakage_value: 15,
|
6251
|
+
duct_leakage_total_or_to_outside: HPXML::DuctLeakageToOutside)
|
6252
|
+
hpxml.hvac_distributions[-1].duct_leakage_measurements.add(duct_type: HPXML::DuctTypeReturn,
|
6253
|
+
duct_leakage_units: HPXML::UnitsCFM25,
|
6254
|
+
duct_leakage_value: 10,
|
6255
|
+
duct_leakage_total_or_to_outside: HPXML::DuctLeakageToOutside)
|
6256
|
+
hpxml.hvac_distributions[-1].ducts.add(duct_type: HPXML::DuctTypeSupply,
|
6257
|
+
duct_insulation_r_value: 0,
|
6258
|
+
duct_location: HPXML::LocationOtherMultifamilyBufferSpace,
|
6259
|
+
duct_surface_area: 50)
|
6260
|
+
hpxml.hvac_distributions[-1].ducts.add(duct_type: HPXML::DuctTypeReturn,
|
6261
|
+
duct_insulation_r_value: 0,
|
6262
|
+
duct_location: HPXML::LocationOtherMultifamilyBufferSpace,
|
6263
|
+
duct_surface_area: 20)
|
5586
6264
|
elsif ['invalid_files/hvac-invalid-distribution-system-type.xml'].include? hpxml_file
|
5587
6265
|
hpxml.hvac_distributions.add(id: 'HVACDistribution2',
|
5588
6266
|
distribution_system_type: HPXML::HVACDistributionTypeHydronic,
|
@@ -5601,13 +6279,6 @@ def set_hpxml_hvac_distributions(hpxml_file, hpxml)
|
|
5601
6279
|
duct.duct_location = nil
|
5602
6280
|
end
|
5603
6281
|
end
|
5604
|
-
elsif ['invalid_files/missing-duct-location-and-surface-area.xml'].include? hpxml_file
|
5605
|
-
hpxml.hvac_distributions.each do |hvac_distribution|
|
5606
|
-
next unless hvac_distribution.distribution_system_type == HPXML::HVACDistributionTypeAir
|
5607
|
-
|
5608
|
-
hvac_distribution.ducts[1].duct_surface_area = nil
|
5609
|
-
hvac_distribution.ducts[1].duct_location = nil
|
5610
|
-
end
|
5611
6282
|
elsif ['invalid_files/missing-duct-location.xml'].include? hpxml_file
|
5612
6283
|
hpxml.hvac_distributions.each do |hvac_distribution|
|
5613
6284
|
next unless hvac_distribution.distribution_system_type == HPXML::HVACDistributionTypeAir
|
@@ -5616,20 +6287,47 @@ def set_hpxml_hvac_distributions(hpxml_file, hpxml)
|
|
5616
6287
|
end
|
5617
6288
|
elsif ['invalid_files/multifamily-reference-duct.xml'].include? hpxml_file
|
5618
6289
|
hpxml.hvac_distributions[0].ducts[0].duct_location = HPXML::LocationOtherMultifamilyBufferSpace
|
6290
|
+
elsif ['invalid_files/multiple-shared-cooling-systems.xml',
|
6291
|
+
'invalid_files/multiple-shared-heating-systems.xml'].include? hpxml_file
|
6292
|
+
hpxml.hvac_distributions << hpxml.hvac_distributions[0].dup
|
6293
|
+
hpxml.hvac_distributions[-1].id += '2'
|
6294
|
+
elsif ['invalid_files/duct-leakage-cfm25.xml'].include? hpxml_file
|
6295
|
+
hpxml.hvac_distributions[0].duct_leakage_measurements[0].duct_leakage_value = -2.0
|
6296
|
+
hpxml.hvac_distributions[0].duct_leakage_measurements[1].duct_leakage_value = -2.0
|
6297
|
+
elsif ['invalid_files/duct-leakage-percent.xml'].include? hpxml_file
|
6298
|
+
hpxml.hvac_distributions[0].duct_leakage_measurements[0].duct_leakage_units = HPXML::UnitsPercent
|
6299
|
+
hpxml.hvac_distributions[0].duct_leakage_measurements[1].duct_leakage_units = HPXML::UnitsPercent
|
5619
6300
|
end
|
5620
6301
|
|
5621
6302
|
# Set ConditionedFloorAreaServed
|
5622
|
-
|
5623
|
-
|
5624
|
-
|
5625
|
-
|
5626
|
-
hvac_distribution.
|
5627
|
-
|
5628
|
-
|
6303
|
+
if not hpxml_file.include?('invalid_files')
|
6304
|
+
n_htg_systems = (hpxml.heating_systems + hpxml.heat_pumps).select { |h| h.fraction_heat_load_served.to_f > 0 }.size
|
6305
|
+
n_clg_systems = (hpxml.cooling_systems + hpxml.heat_pumps).select { |h| h.fraction_cool_load_served.to_f > 0 }.size
|
6306
|
+
hpxml.hvac_distributions.each do |hvac_distribution|
|
6307
|
+
if [HPXML::HVACDistributionTypeAir].include?(hvac_distribution.distribution_system_type) && (hvac_distribution.ducts.size > 0)
|
6308
|
+
n_hvac_systems = [n_htg_systems, n_clg_systems].max
|
6309
|
+
hvac_distribution.conditioned_floor_area_served = hpxml.building_construction.conditioned_floor_area / n_hvac_systems
|
6310
|
+
else
|
6311
|
+
hvac_distribution.conditioned_floor_area_served = nil
|
6312
|
+
end
|
5629
6313
|
end
|
6314
|
+
elsif ['invalid_files/invalid-distribution-cfa-served.xml'].include? hpxml_file
|
6315
|
+
hpxml.hvac_distributions[0].conditioned_floor_area_served = hpxml.building_construction.conditioned_floor_area + 1.1
|
5630
6316
|
end
|
5631
|
-
|
5632
|
-
|
6317
|
+
|
6318
|
+
# Set number of return registers
|
6319
|
+
if not ['base-misc-defaults.xml'].include? hpxml_file
|
6320
|
+
hpxml.hvac_distributions.each do |hvac_distribution|
|
6321
|
+
hvac_distribution.number_of_return_registers = nil
|
6322
|
+
next unless hvac_distribution.distribution_system_type == HPXML::HVACDistributionTypeAir
|
6323
|
+
|
6324
|
+
if hvac_distribution.ducts.select { |d| d.duct_type == HPXML::DuctTypeReturn }.size > 0
|
6325
|
+
hvac_distribution.number_of_return_registers = hpxml.building_construction.number_of_conditioned_floors.ceil
|
6326
|
+
elsif hvac_distribution.ducts.select { |d| d.duct_type == HPXML::DuctTypeSupply }.size > 0
|
6327
|
+
# E.g., evap cooler w/ only supply ducts
|
6328
|
+
hvac_distribution.number_of_return_registers = 0
|
6329
|
+
end
|
6330
|
+
end
|
5633
6331
|
end
|
5634
6332
|
end
|
5635
6333
|
|
@@ -5757,6 +6455,9 @@ def set_hpxml_ventilation_fans(hpxml_file, hpxml)
|
|
5757
6455
|
hours_in_operation: 24,
|
5758
6456
|
fan_power: 26,
|
5759
6457
|
used_for_whole_building_ventilation: true)
|
6458
|
+
elsif ['invalid_files/invalid-shared-vent-in-unit-flowrate.xml'].include? hpxml_file
|
6459
|
+
hpxml.ventilation_fans[0].in_unit_flow_rate = 80
|
6460
|
+
hpxml.ventilation_fans[0].rated_flow_rate = 80
|
5760
6461
|
elsif ['base-bldgtype-multifamily-shared-mechvent-preconditioning.xml'].include? hpxml_file
|
5761
6462
|
hpxml.ventilation_fans[0].preheating_fuel = HPXML::FuelTypeNaturalGas
|
5762
6463
|
hpxml.ventilation_fans[0].preheating_efficiency_cop = 0.92
|
@@ -5857,36 +6558,36 @@ def set_hpxml_ventilation_fans(hpxml_file, hpxml)
|
|
5857
6558
|
used_for_seasonal_cooling_load_reduction: true)
|
5858
6559
|
hpxml.ventilation_fans.add(id: 'Supply',
|
5859
6560
|
fan_type: HPXML::MechVentTypeSupply,
|
5860
|
-
tested_flow_rate:
|
6561
|
+
tested_flow_rate: 27.5,
|
5861
6562
|
hours_in_operation: 24,
|
5862
|
-
fan_power:
|
6563
|
+
fan_power: 7.5,
|
5863
6564
|
used_for_whole_building_ventilation: true)
|
5864
6565
|
hpxml.ventilation_fans.add(id: 'Exhaust',
|
5865
6566
|
fan_type: HPXML::MechVentTypeExhaust,
|
5866
|
-
tested_flow_rate:
|
6567
|
+
tested_flow_rate: 12.5,
|
5867
6568
|
hours_in_operation: 14,
|
5868
|
-
fan_power:
|
6569
|
+
fan_power: 2.5,
|
5869
6570
|
used_for_whole_building_ventilation: true)
|
5870
6571
|
hpxml.ventilation_fans.add(id: 'Balanced',
|
5871
6572
|
fan_type: HPXML::MechVentTypeBalanced,
|
5872
|
-
tested_flow_rate:
|
6573
|
+
tested_flow_rate: 27.5,
|
5873
6574
|
hours_in_operation: 24,
|
5874
|
-
fan_power:
|
6575
|
+
fan_power: 15,
|
5875
6576
|
used_for_whole_building_ventilation: true)
|
5876
6577
|
hpxml.ventilation_fans.add(id: 'ERV',
|
5877
6578
|
fan_type: HPXML::MechVentTypeERV,
|
5878
|
-
tested_flow_rate:
|
6579
|
+
tested_flow_rate: 12.5,
|
5879
6580
|
hours_in_operation: 24,
|
5880
6581
|
total_recovery_efficiency: 0.48,
|
5881
6582
|
sensible_recovery_efficiency: 0.72,
|
5882
|
-
fan_power:
|
6583
|
+
fan_power: 6.25,
|
5883
6584
|
used_for_whole_building_ventilation: true)
|
5884
6585
|
hpxml.ventilation_fans.add(id: 'HRV',
|
5885
6586
|
fan_type: HPXML::MechVentTypeHRV,
|
5886
|
-
tested_flow_rate:
|
6587
|
+
tested_flow_rate: 15,
|
5887
6588
|
hours_in_operation: 24,
|
5888
6589
|
sensible_recovery_efficiency: 0.72,
|
5889
|
-
fan_power:
|
6590
|
+
fan_power: 7.5,
|
5890
6591
|
used_for_whole_building_ventilation: true)
|
5891
6592
|
hpxml.ventilation_fans.reverse_each do |vent_fan|
|
5892
6593
|
vent_fan.fan_power /= 2.0
|
@@ -5899,16 +6600,16 @@ def set_hpxml_ventilation_fans(hpxml_file, hpxml)
|
|
5899
6600
|
end
|
5900
6601
|
hpxml.ventilation_fans.add(id: 'CFIS',
|
5901
6602
|
fan_type: HPXML::MechVentTypeCFIS,
|
5902
|
-
tested_flow_rate:
|
6603
|
+
tested_flow_rate: 40,
|
5903
6604
|
hours_in_operation: 8,
|
5904
|
-
fan_power:
|
6605
|
+
fan_power: 37.5,
|
5905
6606
|
used_for_whole_building_ventilation: true,
|
5906
6607
|
distribution_system_idref: 'HVACDistribution')
|
5907
6608
|
hpxml.ventilation_fans.add(id: 'CFIS_2',
|
5908
6609
|
fan_type: HPXML::MechVentTypeCFIS,
|
5909
|
-
tested_flow_rate:
|
6610
|
+
tested_flow_rate: 42.5,
|
5910
6611
|
hours_in_operation: 8,
|
5911
|
-
fan_power:
|
6612
|
+
fan_power: 37.5,
|
5912
6613
|
used_for_whole_building_ventilation: true,
|
5913
6614
|
distribution_system_idref: 'HVACDistribution2')
|
5914
6615
|
end
|
@@ -6175,6 +6876,8 @@ def set_hpxml_water_heating_systems(hpxml_file, hpxml)
|
|
6175
6876
|
hpxml.water_heating_systems[0].energy_factor = 1.0
|
6176
6877
|
elsif ['invalid_files/dhw-invalid-uef-tank-heat-pump.xml'].include? hpxml_file
|
6177
6878
|
hpxml.water_heating_systems[0].uniform_energy_factor = 1.0
|
6879
|
+
elsif ['invalid_files/invalid-number-of-units-served.xml'].include? hpxml_file
|
6880
|
+
hpxml.water_heating_systems[0].number_of_units_served = 1
|
6178
6881
|
end
|
6179
6882
|
end
|
6180
6883
|
|
@@ -6325,6 +7028,8 @@ def set_hpxml_solar_thermal_system(hpxml_file, hpxml)
|
|
6325
7028
|
water_heating_system_idref: 'WaterHeater')
|
6326
7029
|
elsif ['invalid_files/unattached-solar-thermal-system.xml'].include? hpxml_file
|
6327
7030
|
hpxml.solar_thermal_systems[0].water_heating_system_idref = 'foobar'
|
7031
|
+
elsif ['invalid_files/solar-fraction-one.xml'].include? hpxml_file
|
7032
|
+
hpxml.solar_thermal_systems[0].solar_fraction = 1.0
|
6328
7033
|
end
|
6329
7034
|
end
|
6330
7035
|
|
@@ -6366,6 +7071,8 @@ def set_hpxml_pv_systems(hpxml_file, hpxml)
|
|
6366
7071
|
inverter_efficiency: 0.96,
|
6367
7072
|
system_losses_fraction: 0.14,
|
6368
7073
|
number_of_bedrooms_served: 18)
|
7074
|
+
elsif ['invalid_files/invalid-number-of-bedrooms-served.xml'].include? hpxml_file
|
7075
|
+
hpxml.pv_systems[0].number_of_bedrooms_served = hpxml.building_construction.number_of_bedrooms
|
6369
7076
|
end
|
6370
7077
|
end
|
6371
7078
|
|
@@ -6376,7 +7083,7 @@ def set_hpxml_generators(hpxml_file, hpxml)
|
|
6376
7083
|
annual_consumption_kbtu: 8500,
|
6377
7084
|
annual_output_kwh: 500)
|
6378
7085
|
hpxml.generators.add(id: 'Generator2',
|
6379
|
-
fuel_type: HPXML::
|
7086
|
+
fuel_type: HPXML::FuelTypeOil,
|
6380
7087
|
annual_consumption_kbtu: 8500,
|
6381
7088
|
annual_output_kwh: 500)
|
6382
7089
|
elsif ['base-bldgtype-multifamily-shared-generator.xml'].include? hpxml_file
|
@@ -6386,6 +7093,10 @@ def set_hpxml_generators(hpxml_file, hpxml)
|
|
6386
7093
|
annual_consumption_kbtu: 85000,
|
6387
7094
|
annual_output_kwh: 5000,
|
6388
7095
|
number_of_bedrooms_served: 18)
|
7096
|
+
elsif ['invalid_files/generator-output-greater-than-consumption.xml'].include? hpxml_file
|
7097
|
+
hpxml.generators[0].annual_consumption_kbtu = 1500
|
7098
|
+
elsif ['invalid_files/generator-number-of-bedrooms-served.xml'].include? hpxml_file
|
7099
|
+
hpxml.generators[0].number_of_bedrooms_served = hpxml.building_construction.number_of_bedrooms
|
6389
7100
|
end
|
6390
7101
|
end
|
6391
7102
|
|
@@ -6454,7 +7165,6 @@ def set_hpxml_clothes_dryer(hpxml_file, hpxml)
|
|
6454
7165
|
location: HPXML::LocationLivingSpace,
|
6455
7166
|
fuel_type: HPXML::FuelTypeElectricity,
|
6456
7167
|
combined_energy_factor: 3.73,
|
6457
|
-
control_type: HPXML::ClothesDryerControlTypeTimer,
|
6458
7168
|
is_vented: true,
|
6459
7169
|
vented_flow_rate: 150)
|
6460
7170
|
elsif ['base-appliances-none.xml',
|
@@ -6477,7 +7187,6 @@ def set_hpxml_clothes_dryer(hpxml_file, hpxml)
|
|
6477
7187
|
location: HPXML::LocationLivingSpace,
|
6478
7188
|
fuel_type: HPXML::FuelTypeElectricity,
|
6479
7189
|
energy_factor: HotWaterAndAppliances.calc_clothes_dryer_ef_from_cef(cef).round(2),
|
6480
|
-
control_type: HPXML::ClothesDryerControlTypeMoisture,
|
6481
7190
|
is_vented: false)
|
6482
7191
|
elsif ['base-appliances-coal.xml',
|
6483
7192
|
'base-appliances-gas.xml',
|
@@ -6487,8 +7196,7 @@ def set_hpxml_clothes_dryer(hpxml_file, hpxml)
|
|
6487
7196
|
hpxml.clothes_dryers.clear
|
6488
7197
|
hpxml.clothes_dryers.add(id: 'ClothesDryer',
|
6489
7198
|
location: HPXML::LocationLivingSpace,
|
6490
|
-
combined_energy_factor: 3.30
|
6491
|
-
control_type: HPXML::ClothesDryerControlTypeMoisture)
|
7199
|
+
combined_energy_factor: 3.30)
|
6492
7200
|
if hpxml_file == 'base-appliances-coal.xml'
|
6493
7201
|
hpxml.clothes_dryers[0].fuel_type = HPXML::FuelTypeCoal
|
6494
7202
|
elsif hpxml_file == 'base-appliances-gas.xml'
|
@@ -6511,7 +7219,6 @@ def set_hpxml_clothes_dryer(hpxml_file, hpxml)
|
|
6511
7219
|
hpxml.clothes_dryers[0].location = nil
|
6512
7220
|
hpxml.clothes_dryers[0].energy_factor = nil
|
6513
7221
|
hpxml.clothes_dryers[0].combined_energy_factor = nil
|
6514
|
-
hpxml.clothes_dryers[0].control_type = nil
|
6515
7222
|
hpxml.clothes_dryers[0].is_vented = nil
|
6516
7223
|
hpxml.clothes_dryers[0].vented_flow_rate = nil
|
6517
7224
|
elsif ['base-bldgtype-multifamily-shared-laundry-room.xml'].include? hpxml_file
|
@@ -6675,14 +7382,26 @@ def set_hpxml_dehumidifier(hpxml_file, hpxml)
|
|
6675
7382
|
capacity: 40,
|
6676
7383
|
energy_factor: 1.8,
|
6677
7384
|
rh_setpoint: 0.5,
|
6678
|
-
fraction_served: 1.0
|
6679
|
-
|
6680
|
-
hpxml.dehumidifiers[0].fraction_served = 0.5
|
7385
|
+
fraction_served: 1.0,
|
7386
|
+
location: HPXML::LocationLivingSpace)
|
6681
7387
|
elsif ['base-appliances-dehumidifier-ief-portable.xml'].include? hpxml_file
|
6682
7388
|
hpxml.dehumidifiers[0].energy_factor = nil
|
6683
7389
|
hpxml.dehumidifiers[0].integrated_energy_factor = 1.5
|
6684
7390
|
elsif ['base-appliances-dehumidifier-ief-whole-home.xml'].include? hpxml_file
|
6685
7391
|
hpxml.dehumidifiers[0].type = HPXML::DehumidifierTypeWholeHome
|
7392
|
+
elsif ['base-appliances-dehumidifier-multiple.xml'].include? hpxml_file
|
7393
|
+
hpxml.dehumidifiers[0].fraction_served = 0.5
|
7394
|
+
hpxml.dehumidifiers.add(id: 'Dehumidifier2',
|
7395
|
+
type: HPXML::DehumidifierTypePortable,
|
7396
|
+
capacity: 30,
|
7397
|
+
energy_factor: 1.6,
|
7398
|
+
rh_setpoint: 0.5,
|
7399
|
+
fraction_served: 0.25,
|
7400
|
+
location: HPXML::LocationLivingSpace)
|
7401
|
+
elsif ['invalid_files/dehumidifier-setpoints.xml'].include? hpxml_file
|
7402
|
+
hpxml.dehumidifiers[1].rh_setpoint = 0.55
|
7403
|
+
elsif ['invalid_files/dehumidifier-fraction-served.xml'].include? hpxml_file
|
7404
|
+
hpxml.dehumidifiers[1].fraction_served = 0.6
|
6686
7405
|
end
|
6687
7406
|
end
|
6688
7407
|
|
@@ -6812,16 +7531,18 @@ def set_hpxml_pools(hpxml_file, hpxml)
|
|
6812
7531
|
if ['base-misc-loads-large-uncommon.xml',
|
6813
7532
|
'base-misc-usage-multiplier.xml'].include? hpxml_file
|
6814
7533
|
hpxml.pools.add(id: 'Pool',
|
7534
|
+
type: HPXML::TypeUnknown,
|
7535
|
+
pump_type: HPXML::TypeUnknown,
|
7536
|
+
pump_kwh_per_year: 2700,
|
7537
|
+
pump_weekday_fractions: '0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003',
|
7538
|
+
pump_weekend_fractions: '0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003',
|
7539
|
+
pump_monthly_multipliers: '1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154',
|
6815
7540
|
heater_type: HPXML::HeaterTypeGas,
|
6816
7541
|
heater_load_units: HPXML::UnitsThermPerYear,
|
6817
7542
|
heater_load_value: 500,
|
6818
|
-
pump_kwh_per_year: 2700,
|
6819
7543
|
heater_weekday_fractions: '0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003',
|
6820
7544
|
heater_weekend_fractions: '0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003',
|
6821
|
-
heater_monthly_multipliers: '1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154'
|
6822
|
-
pump_weekday_fractions: '0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003',
|
6823
|
-
pump_weekend_fractions: '0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003',
|
6824
|
-
pump_monthly_multipliers: '1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154')
|
7545
|
+
heater_monthly_multipliers: '1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154')
|
6825
7546
|
if hpxml_file == 'base-misc-usage-multiplier.xml'
|
6826
7547
|
hpxml.pools.each do |pool|
|
6827
7548
|
pool.pump_usage_multiplier = 0.9
|
@@ -6829,11 +7550,7 @@ def set_hpxml_pools(hpxml_file, hpxml)
|
|
6829
7550
|
end
|
6830
7551
|
end
|
6831
7552
|
elsif ['base-misc-loads-large-uncommon2.xml'].include? hpxml_file
|
6832
|
-
hpxml.pools[0].heater_type =
|
6833
|
-
hpxml.pools[0].heater_load_value = nil
|
6834
|
-
hpxml.pools[0].heater_weekday_fractions = nil
|
6835
|
-
hpxml.pools[0].heater_weekend_fractions = nil
|
6836
|
-
hpxml.pools[0].heater_monthly_multipliers = nil
|
7553
|
+
hpxml.pools[0].heater_type = HPXML::TypeNone
|
6837
7554
|
end
|
6838
7555
|
end
|
6839
7556
|
|
@@ -6841,16 +7558,18 @@ def set_hpxml_hot_tubs(hpxml_file, hpxml)
|
|
6841
7558
|
if ['base-misc-loads-large-uncommon.xml',
|
6842
7559
|
'base-misc-usage-multiplier.xml'].include? hpxml_file
|
6843
7560
|
hpxml.hot_tubs.add(id: 'HotTub',
|
7561
|
+
type: HPXML::TypeUnknown,
|
7562
|
+
pump_type: HPXML::TypeUnknown,
|
7563
|
+
pump_kwh_per_year: 1000,
|
7564
|
+
pump_weekday_fractions: '0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024',
|
7565
|
+
pump_weekend_fractions: '0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024',
|
7566
|
+
pump_monthly_multipliers: '0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837',
|
6844
7567
|
heater_type: HPXML::HeaterTypeElectricResistance,
|
6845
7568
|
heater_load_units: HPXML::UnitsKwhPerYear,
|
6846
7569
|
heater_load_value: 1300,
|
6847
|
-
pump_kwh_per_year: 1000,
|
6848
7570
|
heater_weekday_fractions: '0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024',
|
6849
7571
|
heater_weekend_fractions: '0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024',
|
6850
|
-
heater_monthly_multipliers: '0.921, 0.928, 0.921, 0.915, 0.921, 1.160, 1.158, 1.158, 1.160, 0.921, 0.915, 0.921'
|
6851
|
-
pump_weekday_fractions: '0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024',
|
6852
|
-
pump_weekend_fractions: '0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024',
|
6853
|
-
pump_monthly_multipliers: '0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837')
|
7572
|
+
heater_monthly_multipliers: '0.921, 0.928, 0.921, 0.915, 0.921, 1.160, 1.158, 1.158, 1.160, 0.921, 0.915, 0.921')
|
6854
7573
|
if hpxml_file == 'base-misc-usage-multiplier.xml'
|
6855
7574
|
hpxml.hot_tubs.each do |hot_tub|
|
6856
7575
|
hot_tub.pump_usage_multiplier = 0.9
|
@@ -6937,6 +7656,10 @@ def set_hpxml_plug_loads(hpxml_file, hpxml)
|
|
6937
7656
|
weekday_fractions: '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065',
|
6938
7657
|
weekend_fractions: '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065',
|
6939
7658
|
monthly_multipliers: '1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154')
|
7659
|
+
elsif ['invalid_files/frac-sensible-plug-load.xml'].include? hpxml_file
|
7660
|
+
hpxml.plug_loads[0].frac_sensible = -0.1
|
7661
|
+
elsif ['invalid_files/frac-total-plug-load.xml'].include? hpxml_file
|
7662
|
+
hpxml.plug_loads[0].frac_latent = 1.0 - hpxml.plug_loads[0].frac_sensible + 0.1
|
6940
7663
|
else
|
6941
7664
|
cfa = hpxml.building_construction.conditioned_floor_area
|
6942
7665
|
nbeds = hpxml.building_construction.number_of_bedrooms
|
@@ -6995,6 +7718,11 @@ def set_hpxml_fuel_loads(hpxml_file, hpxml)
|
|
6995
7718
|
elsif ['base-misc-loads-large-uncommon2.xml'].include? hpxml_file
|
6996
7719
|
hpxml.fuel_loads[0].fuel_type = HPXML::FuelTypeOil
|
6997
7720
|
hpxml.fuel_loads[2].fuel_type = HPXML::FuelTypeWoodPellets
|
7721
|
+
elsif ['invalid_files/frac-sensible-fuel-load.xml'].include? hpxml_file
|
7722
|
+
hpxml.fuel_loads[0].frac_sensible = -0.1
|
7723
|
+
elsif ['invalid_files/frac-total-fuel-load.xml'].include? hpxml_file
|
7724
|
+
hpxml.fuel_loads[0].frac_sensible = 0.8
|
7725
|
+
hpxml.fuel_loads[0].frac_latent = 1.0 - hpxml.fuel_loads[0].frac_sensible + 0.1
|
6998
7726
|
end
|
6999
7727
|
end
|
7000
7728
|
|
@@ -7190,12 +7918,53 @@ def create_schematron_hpxml_validator(hpxml_docs)
|
|
7190
7918
|
end
|
7191
7919
|
end
|
7192
7920
|
|
7921
|
+
# Add ID/IDref checks
|
7922
|
+
# TODO: Dynamically obtain these lists
|
7923
|
+
id_names = ['SystemIdentifier',
|
7924
|
+
'BuildingID']
|
7925
|
+
idref_names = ['AttachedToRoof',
|
7926
|
+
'AttachedToFrameFloor',
|
7927
|
+
'AttachedToSlab',
|
7928
|
+
'AttachedToFoundationWall',
|
7929
|
+
'AttachedToWall',
|
7930
|
+
'DistributionSystem',
|
7931
|
+
'AttachedToHVACDistributionSystem',
|
7932
|
+
'RelatedHVACSystem',
|
7933
|
+
'ConnectedTo']
|
7934
|
+
elements_in_sample_files.each do |element_xpath|
|
7935
|
+
element_name = element_xpath.split('/')[-1].gsub('h:', '')
|
7936
|
+
context_xpath = "/#{element_xpath.split('/')[0..-2].join('/')}"
|
7937
|
+
if id_names.include? element_name
|
7938
|
+
rule = rules[context_xpath]
|
7939
|
+
if rule.nil?
|
7940
|
+
# Need new rule
|
7941
|
+
rule = XMLHelper.add_element(pattern, 'sch:rule')
|
7942
|
+
XMLHelper.add_attribute(rule, 'context', context_xpath)
|
7943
|
+
rules[context_xpath] = rule
|
7944
|
+
end
|
7945
|
+
assertion = XMLHelper.add_element(rule, 'sch:assert', "Expected id attribute for #{element_name}", :string)
|
7946
|
+
XMLHelper.add_attribute(assertion, 'role', 'ERROR')
|
7947
|
+
XMLHelper.add_attribute(assertion, 'test', "count(h:#{element_name}[@id]) = 1 or not (h:#{element_name})")
|
7948
|
+
elsif idref_names.include? element_name
|
7949
|
+
rule = rules[context_xpath]
|
7950
|
+
if rule.nil?
|
7951
|
+
# Need new rule
|
7952
|
+
rule = XMLHelper.add_element(pattern, 'sch:rule')
|
7953
|
+
XMLHelper.add_attribute(rule, 'context', context_xpath)
|
7954
|
+
rules[context_xpath] = rule
|
7955
|
+
end
|
7956
|
+
assertion = XMLHelper.add_element(rule, 'sch:assert', "Expected idref attribute for #{element_name}", :string)
|
7957
|
+
XMLHelper.add_attribute(assertion, 'role', 'ERROR')
|
7958
|
+
XMLHelper.add_attribute(assertion, 'test', "count(h:#{element_name}[@idref]) = 1 or not(h:#{element_name})")
|
7959
|
+
end
|
7960
|
+
end
|
7961
|
+
|
7193
7962
|
XMLHelper.write_file(hpxml_validator, File.join(File.dirname(__FILE__), 'HPXMLtoOpenStudio', 'resources', 'HPXMLvalidator.xml'))
|
7194
7963
|
end
|
7195
7964
|
|
7196
7965
|
def get_element_full_xpaths(element_xpaths, complex_type_or_group_dict, element_xpath, element_type)
|
7197
7966
|
if not complex_type_or_group_dict.keys.include? element_type
|
7198
|
-
|
7967
|
+
element_xpaths[element_xpath] = element_type
|
7199
7968
|
else
|
7200
7969
|
complex_type_or_group = deep_copy_object(complex_type_or_group_dict[element_type])
|
7201
7970
|
complex_type_or_group.each do |k, v|
|
@@ -7316,13 +8085,18 @@ if ARGV[0].to_sym == :create_release_zips
|
|
7316
8085
|
File.delete(zip_path) if File.exist? zip_path
|
7317
8086
|
end
|
7318
8087
|
|
7319
|
-
|
7320
|
-
|
7321
|
-
|
7322
|
-
|
7323
|
-
|
7324
|
-
|
7325
|
-
|
8088
|
+
if ENV['CI']
|
8089
|
+
# CI doesn't have git, so default to everything
|
8090
|
+
git_files = Dir['**/*.*']
|
8091
|
+
else
|
8092
|
+
# Only include files under git version control
|
8093
|
+
command = 'git ls-files'
|
8094
|
+
begin
|
8095
|
+
git_files = `#{command}`
|
8096
|
+
rescue
|
8097
|
+
puts "Command failed: '#{command}'. Perhaps git needs to be installed?"
|
8098
|
+
exit!
|
8099
|
+
end
|
7326
8100
|
end
|
7327
8101
|
|
7328
8102
|
files = ['HPXMLtoOpenStudio/measure.*',
|
@@ -7336,21 +8110,11 @@ if ARGV[0].to_sym == :create_release_zips
|
|
7336
8110
|
'workflow/sample_files/*.xml',
|
7337
8111
|
'workflow/tests/*.rb',
|
7338
8112
|
'workflow/tests/ASHRAE_Standard_140/*.xml',
|
8113
|
+
'workflow/tests/base_results/*.csv',
|
7339
8114
|
'documentation/index.html',
|
7340
8115
|
'documentation/_static/**/*.*']
|
7341
8116
|
|
7342
8117
|
if not ENV['CI']
|
7343
|
-
# Run ASHRAE 140 files
|
7344
|
-
puts 'Running ASHRAE 140 tests (this will take a minute)...'
|
7345
|
-
command = "#{OpenStudio.getOpenStudioCLI} workflow/tests/hpxml_translator_test.rb --name=test_ashrae_140 > log.txt"
|
7346
|
-
system(command)
|
7347
|
-
results_csv_path = 'workflow/tests/results/results_ashrae_140.csv'
|
7348
|
-
if not File.exist? results_csv_path
|
7349
|
-
puts 'ASHRAE 140 results CSV file not generated. Aborting...'
|
7350
|
-
exit!
|
7351
|
-
end
|
7352
|
-
File.delete('log.txt')
|
7353
|
-
|
7354
8118
|
# Generate documentation
|
7355
8119
|
puts 'Generating documentation...'
|
7356
8120
|
command = 'sphinx-build -b singlehtml docs/source documentation'
|
@@ -7389,9 +8153,6 @@ if ARGV[0].to_sym == :create_release_zips
|
|
7389
8153
|
release_map.each do |zip_path, include_all_epws|
|
7390
8154
|
puts "Creating #{zip_path}..."
|
7391
8155
|
zip = OpenStudio::ZipFile.new(zip_path, false)
|
7392
|
-
if not ENV['CI']
|
7393
|
-
zip.addFile(results_csv_path, File.join('OpenStudio-HPXML', results_csv_path))
|
7394
|
-
end
|
7395
8156
|
files.each do |f|
|
7396
8157
|
Dir[f].each do |file|
|
7397
8158
|
if file.start_with? 'documentation'
|