urbanopt-cli 0.5.1 → 0.5.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +14 -1
- data/CMakeLists.txt +8 -8
- data/LICENSE.md +11 -1
- data/Rakefile +16 -6
- data/example_files/example_project_combined.json +100 -5
- data/example_files/mappers/Baseline.rb +31 -18
- data/example_files/mappers/CreateBar.rb +16 -6
- data/example_files/mappers/EvCharging.rb +20 -10
- data/example_files/mappers/Floorspace.rb +16 -6
- data/example_files/mappers/HighEfficiencyCreateBar.rb +16 -6
- data/example_files/mappers/HighEfficiencyFloorspace.rb +16 -6
- data/example_files/mappers/ThermalStorage.rb +16 -6
- data/example_files/measures/BuildResidentialModel/measure.rb +211 -129
- 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 +1 -0
- data/example_files/resources/hpxml-measures/.github/workflows/config.yml +23 -0
- data/example_files/resources/hpxml-measures/.gitignore +1 -8
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.rb +633 -1188
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.xml +1524 -1211
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/constants.rb +0 -8
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/geometry.rb +424 -335
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules.rb +104 -62
- 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 +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier-50percent.osw +30 -54
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier-ief-portable.osw +30 -54
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier-ief-whole-home.osw +30 -54
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier.osw +30 -54
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-gas.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-modified.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-none.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-oil.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-propane.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-wood.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-flat.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-radiant-barrier.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-unvented-insulated-roof.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-vented.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-mechvent-preconditioning.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-mechvent.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-pv.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-water-heater.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-single-family-attached.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-combi-tankless-outside.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-combi-tankless.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-dwhr.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-outside.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-standbyloss.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-with-solar-fraction.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-electric.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-gas.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-hpwh.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-indirect.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-low-flow-fixtures.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-none.osw +32 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-demand.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-manual.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-nocontrol.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-temperature.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-timer.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-evacuated-tube.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-flat-plate.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-ics.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-fraction.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-indirect-flat-plate.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-thermosyphon-flat-plate.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-coal.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-elec-uef.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas-outside.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas-uef.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-outside.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-uef.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-with-solar-fraction.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-with-solar.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-oil.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-wood.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric-outside.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric-uef.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-uef.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-with-solar-fraction.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-with-solar.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-propane.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-2stories-garage.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-2stories.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-1.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-2.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-4.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-5.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-garage.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-ach-house-pressure.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-cfm-house-pressure.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-cfm50.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-flue.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-natural-ach.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-overhangs.osw +32 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-windows-none.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-ambient.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-conditioned-basement-slab-insulation.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-slab.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement-assembly-r.osw +30 -54
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement-wall-insulation.osw +30 -54
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement.osw +30 -54
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unvented-crawlspace.osw +30 -54
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-vented-crawlspace.osw +30 -54
- 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 +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-2-speed.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-var-speed.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-coal-only.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-elec-only.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-gas-central-ac-1-speed.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-gas-only.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-oil-only.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-propane-only.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-wood-only.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-1-speed.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-2-speed.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-var-speed.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.osw +31 -57
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-mini-split-heat-pump-ducted.osw +32 -57
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ducts-leakage-percent.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-elec-resistance-only.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-furnace-gas.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-only-ducted.osw +32 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-only.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-fireplace-wood-only.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-fixed-heater-gas-only.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-floor-furnace-propane-only.osw +31 -56
- 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 +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-elec-only.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-central-ac-2-speed.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-central-ac-var-speed.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-only.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-room-ac.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-oil-only.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-propane-only.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-wood-only.osw +31 -55
- 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 +31 -57
- 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} +36 -58
- 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 +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-air-conditioner-only-ductless.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted-cooling-only.osw +32 -57
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted-heating-only.osw +32 -57
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted.osw +32 -57
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ductless.osw +32 -57
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-none.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-portable-heater-gas-only.osw +31 -56
- 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 +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-room-ac-only.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-setpoints.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-stove-oil-only.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-stove-wood-pellets-only.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-undersized.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-wall-furnace-elec-only.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-lighting-ceiling-fans.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-lighting-detailed.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-AMY-2012.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-baltimore-md.osw +40 -64
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-dallas-tx.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-duluth-mn.osw +44 -68
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-helena-mt.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-honolulu-hi.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-miami-fl.osw +31 -55
- 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 +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-bath-kitchen-fans.osw +39 -65
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-cfis-evap-cooler-only-ducted.osw +32 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-cfis.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-erv-atre-asre.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-erv.osw +31 -55
- 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 +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-hrv-asre.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-hrv.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-supply.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-whole-house-fan.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-defaults.osw +29 -53
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-loads-large-uncommon.osw +29 -53
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-loads-large-uncommon2.osw +29 -53
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-neighbor-shading.osw +31 -55
- 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 +30 -54
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-pv.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{extra-vacancy-6-months.osw → base-schedules-stochastic-vacant.osw} +34 -58
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-schedules-stochastic.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-schedules-user-specified.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-calendar-year-custom.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-daylight-saving-custom.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-daylight-saving-disabled.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-runperiod-1-month.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-timestep-10-mins.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/build_residential_hpxml_test.rb +57 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-auto.osw +31 -55
- 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-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 +31 -55
- 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 +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-windows-shading.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-pv-roofpitch.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-schedules-random-seed.osw +31 -55
- 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} +34 -58
- 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} +32 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-refrigerator.osw +31 -55
- 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 +34 -58
- 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 +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/cooling-system-and-heat-pump.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/dhw-indirect-without-boiler.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/ducts-location-and-areas-not-same-type.osw +31 -55
- 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 +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-bottom-crawlspace-zero-foundation-height.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-bottom-slab-non-zero-foundation-height.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-no-building-orientation.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-fuel-loads.osw +31 -55
- 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} +35 -59
- 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 +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-integer-ceiling-fan-quantity.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-integer-geometry-num-bathrooms.osw +31 -55
- 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 +31 -55
- 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 +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-attached-no-building-orientation.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-detached-finished-basement-zero-foundation-height.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-detached-slab-non-zero-foundation-height.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/slab-non-zero-foundation-height-above-grade.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unconditioned-basement-with-wall-and-ceiling-insulation.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unvented-attic-with-floor-and-roof-insulation.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unvented-crawlspace-with-wall-and-ceiling-insulation.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/vented-attic-with-floor-and-roof-insulation.osw +33 -57
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/vented-crawlspace-with-wall-and-ceiling-insulation.osw +31 -55
- 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 +238 -0
- data/example_files/resources/hpxml-measures/Gemfile +4 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.rb +265 -838
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.xml +135 -114
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/BaseElements.xsd +5 -97
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/EPvalidator.xml +573 -193
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/HPXMLDataTypes.xsd +2 -28
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/HPXMLvalidator.xml +114 -22
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/airflow.rb +107 -176
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constants.rb +12 -180
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constructions.rb +481 -94
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/generator.rb +2 -6
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/geometry.rb +23 -11
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hotwater_appliances.rb +27 -25
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml.rb +735 -453
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +417 -105
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac.rb +1377 -1335
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac_sizing.rb +1393 -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 +64 -3
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/misc_loads.rb +2 -22
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/pv.rb +1 -3
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedules.rb +15 -6
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/simcontrols.rb +7 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/unit_conversions.rb +2 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/version.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/waterheater.rb +3 -4
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/xmlhelper.rb +31 -30
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_airflow.rb +4 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_constructions.rb +62 -16
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_defaults.rb +507 -628
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_generator.rb +3 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hotwater_appliance.rb +4 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac.rb +321 -6
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_lighting.rb +3 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_location.rb +3 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_miscloads.rb +3 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_pv.rb +3 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_simcontrols.rb +3 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_validation.rb +25 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_water_heater.rb +3 -0
- data/example_files/resources/hpxml-measures/README.md +4 -4
- data/example_files/resources/hpxml-measures/SimulationOutputReport/measure.rb +111 -37
- data/example_files/resources/hpxml-measures/SimulationOutputReport/measure.xml +318 -490
- data/example_files/resources/hpxml-measures/SimulationOutputReport/tests/output_report_test.rb +237 -183
- data/example_files/resources/hpxml-measures/docs/source/conf.py +4 -1
- data/example_files/resources/hpxml-measures/docs/source/getting_started.rst +2 -2
- data/example_files/resources/hpxml-measures/docs/source/intro.rst +3 -105
- data/example_files/resources/hpxml-measures/docs/source/workflow_inputs.rst +476 -351
- data/example_files/resources/hpxml-measures/docs/source/workflow_outputs.rst +154 -130
- data/example_files/resources/hpxml-measures/tasks.rb +1287 -511
- 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_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 +23 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-coal.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-50percent.xml +2 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-portable.xml +2 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-whole-home.xml +2 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-multiple.xml +534 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier.xml +2 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-gas.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-modified.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-none.xml +1 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-oil.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-propane.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-wood.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-cathedral.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-conditioned.xml +3 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-flat.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-radiant-barrier.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-unvented-insulated-roof.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-vented.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multifamily-buffer-space.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multiple.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-non-freezing-space.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-heated-space.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-housing-unit.xml +1 -1
- 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 +20 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.xml +27 -18
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-cooling-tower-water-loop-heat-pump.xml +27 -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 +20 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil.xml +20 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-water-loop-heat-pump.xml +22 -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 +20 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-water-loop-heat-pump.xml +22 -12
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-cooling-tower-only-water-loop-heat-pump.xml +22 -12
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-generator.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-ground-loop-ground-to-air-heat-pump.xml +2 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-laundry-room.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-multiple.xml +2 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-preconditioning.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-pv.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater-recirc.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-single-family-attached.xml +14 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless-outside.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-2-speed.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-gshp.xml +563 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-hpwh.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-tankless.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-var-speed.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-dwhr.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-dse.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-outside.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-standbyloss.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-with-solar-fraction.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-electric.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-gas.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-hpwh.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-indirect.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-low-flow-fixtures.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-multiple.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-none.xml +1 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-demand.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-manual.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-nocontrol.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-temperature.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-timer.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-evacuated-tube.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-flat-plate.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-ics.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-fraction.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-indirect-flat-plate.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-thermosyphon-flat-plate.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-coal.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-elec-uef.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-outside.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-uef.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-outside.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-uef.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar-fraction.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-oil.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-wood.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-outside.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-uef.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-uef.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar-fraction.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-propane.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories-garage.xml +2 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-1.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-2.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-4.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-5.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-garage.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-ach-house-pressure.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm-house-pressure.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm50.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-flue.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-natural-ach.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-overhangs.xml +6 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-rooftypes.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-shading.xml +600 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-level.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces2.xml +2474 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-walltypes.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-none.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-enclosure-windows-interior-shading.xml → base-enclosure-windows-shading.xml} +576 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-ambient.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-basement-garage.xml +643 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-complex.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-slab-insulation.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-wall-interior-insulation.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-multiple.xml +3 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-slab.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-above-grade.xml +2 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-assembly-r.xml +2 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-wall-insulation.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement.xml +2 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unvented-crawlspace.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-vented-crawlspace.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-walkout-basement.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-cooling-only.xml +555 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-heating-only.xml +561 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-2-speed.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-cooling-only.xml +552 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-heating-only.xml +557 -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} +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-air-to-air-heat-pump-1-speed-autosize.xml → base-hvac-autosize-air-to-air-heat-pump-1-speed.xml} +1 -4
- 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} +559 -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} +556 -556
- 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-manual-s-oversize-allowances.xml} +559 -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.xml} +556 -559
- 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} +568 -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} +1 -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} +546 -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} +546 -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} +1 -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} +1 -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} +1 -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} +552 -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} +546 -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} +559 -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} +559 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-only.xml +547 -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} +557 -557
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-cooling-only.xml +554 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-heating-only.xml +559 -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} +561 -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} +558 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-air-conditioner-only-ducted.xml +546 -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} +1 -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} +1 -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} +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted.xml +556 -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} +559 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-coal-only.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-elec-only.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-central-ac-1-speed.xml +1 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-only.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-oil-only.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-propane-only.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-wood-only.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-1-speed.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-2-speed.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-var-speed.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml +1 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dse.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-mini-split-heat-pump-ducted.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-leakage-percent.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-elec-resistance-only.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-furnace-gas.xml +2 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only-ducted.xml +10 -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 +563 -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 +547 -547
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-central-ac-1-speed.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-only.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-2-speed.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-var-speed.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only.xml +547 -550
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-room-ac.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-oil-only.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-propane-only.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-wood-only.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-x3-dse.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-cooling-only.xml +556 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-heating-only.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump.xml +561 -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} +567 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/{invalid_files/heat-pump-mixed-fixed-and-autosize-capacities2.xml → base-hvac-install-quality-all-air-to-air-heat-pump-1-speed.xml} +565 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-air-to-air-heat-pump-2-speed.xml +566 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-air-to-air-heat-pump-var-speed.xml +566 -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} +570 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-furnace-gas-central-ac-2-speed.xml +571 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-furnace-gas-central-ac-var-speed.xml +571 -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} +551 -549
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-ground-to-air-heat-pump.xml +565 -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} +551 -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} +564 -558
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-blower-efficiency-furnace-gas-central-ac-1-speed.xml +568 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-charge-defect-furnace-gas-central-ac-1-speed.xml +565 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-none-furnace-gas-central-ac-1-speed.xml +569 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ducted.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ductless.xml +0 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-cooling-only.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-heating-only.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless.xml +0 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple.xml +916 -913
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple2.xml +837 -834
- 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 +563 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-programmable-thermostat-detailed.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-programmable-thermostat.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-33percent.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints.xml +1 -1
- 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 +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized.xml +1 -1
- 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 +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-detailed.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-none.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-AMY-2012.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-baltimore-md.xml +34 -23
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-dallas-tx.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-duluth-mn.xml +34 -23
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-helena-mt.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-honolulu-hi.xml +516 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-miami-fl.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-phoenix-az.xml +516 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-portland-or.xml +576 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-balanced.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-bath-kitchen-fans.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-dse.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-evap-cooler-only-ducted.xml +10 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv-atre-asre.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust-rated-flow-rate.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv-asre.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-multiple.xml +2 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-supply.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-whole-house-fan.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-defaults.xml +1 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon.xml +5 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon2.xml +9 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-none.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-neighbor-shading.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-shielding-of-home.xml +563 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-usage-multiplier.xml +5 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-multiple-buildings.xml +1654 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-stochastic-vacant.xml +563 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-stochastic.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-user-specified.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-calendar-year-custom.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-custom.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-disabled.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-runperiod-1-month.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base.xml +1 -1
- 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 +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/clothes-dryer-location.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/clothes-washer-location.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/cooking-range-location.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dehumidifier-fraction-served.xml +534 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dehumidifier-setpoints.xml +534 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-frac-load-served.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-invalid-ef-tank.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-invalid-uef-tank-heat-pump.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dishwasher-location.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-leakage-cfm25.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-leakage-percent.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-location-unconditioned-space.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-location.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duplicate-id.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-attic-missing-roof.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-basement-missing-exterior-foundation-wall.xml +2 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-basement-missing-slab.xml +2 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-floor-area-exceeds-cfa.xml +4 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-floor-area-exceeds-cfa2.xml +447 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-exterior-wall.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-roof-ceiling.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-slab.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-ceiling-roof.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-exterior-wall.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-floor-slab.xml +11 -58
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-sensible-fuel-load.xml +759 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-sensible-plug-load.xml +758 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-total-fuel-load.xml +760 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-total-plug-load.xml +758 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/furnace-invalid-afue.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/generator-number-of-bedrooms-served.xml +459 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/generator-output-greater-than-consumption.xml +578 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/heat-pump-mixed-fixed-and-autosize-capacities.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-multiple-attached-cooling.xml +916 -913
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-multiple-attached-heating.xml +916 -913
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-return-duct-leakage-missing.xml +2 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-dse-multiple-attached-cooling.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-dse-multiple-attached-heating.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-frac-load-served.xml +916 -913
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-inconsistent-fan-powers.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-invalid-distribution-system-type.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-assembly-effective-rvalue.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-boolean.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-float.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-integer.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-daylight-saving.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-distribution-cfa-served.xml +2 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-epw-filepath.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-facility-type-equipment.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-facility-type-surfaces.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-foundation-wall-properties.xml +573 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-id.xml +590 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-id2.xml +590 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-infiltration-volume.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-input-parameters.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-neighbor-shading-azimuth.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-number-of-bedrooms-served.xml +464 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-number-of-conditioned-floors.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-number-of-units-served.xml +450 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-relatedhvac-desuperheater.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-relatedhvac-dhw-indirect.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-runperiod.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-schema-version.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-shared-vent-in-unit-flowrate.xml +472 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-timestep.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-window-height.xml +6 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/lighting-fractions.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/missing-duct-location.xml +912 -909
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/missing-elements.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-appliance.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-duct.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-surface.xml +12 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-water-heater.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multiple-buildings-without-building-id.xml +1654 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multiple-buildings-wrong-building-id.xml +1654 -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 +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/net-area-negative-wall.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/num-bedrooms-exceeds-limit.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/orphaned-hvac-distribution.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerator-location.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerators-multiple-primary.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerators-no-primary.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/repeated-relatedhvac-desuperheater.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/repeated-relatedhvac-dhw-indirect.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-combi-tankless.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-desuperheater.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-dhw-indirect.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-cfis.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-door.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-hvac-distribution.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-shared-clothes-washer-water-heater.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-shared-dishwasher-water-heater.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-skylight.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-solar-thermal-system.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-window.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/water-heater-location-other.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/water-heater-location.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/template.osw +4 -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/hpxml_translator_test.rb +232 -360
- 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/lib/uo_cli.rb +187 -44
- data/lib/uo_cli/version.rb +17 -7
- data/requirements.txt +2 -0
- data/uo_cli.gemspec +2 -2
- metadata +248 -64
- 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/tests/extra-hvac-programmable-thermostat.osw +0 -369
@@ -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)
|
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
|
@@ -193,7 +210,7 @@ Annual Component Building Loads
|
|
193
210
|
|
194
211
|
Component loads represent the estimated contribution of different building components to the annual heating/cooling building loads.
|
195
212
|
The sum of component loads for heating (or cooling) will roughly equal the annual heating (or cooling) building load reported above.
|
196
|
-
Current component loads disaggregated by Heating/Cooling are
|
213
|
+
Current component loads disaggregated by Heating/Cooling are listed below.
|
197
214
|
|
198
215
|
================================================= =========================================================================================================
|
199
216
|
Type Notes
|
@@ -220,7 +237,7 @@ Current component loads disaggregated by Heating/Cooling are:
|
|
220
237
|
Annual Hot Water Uses
|
221
238
|
~~~~~~~~~~~~~~~~~~~~~
|
222
239
|
|
223
|
-
Current annual hot water uses are
|
240
|
+
Current annual hot water uses are listed below.
|
224
241
|
|
225
242
|
=================================== ====================
|
226
243
|
Type Notes
|
@@ -231,14 +248,15 @@ Current annual hot water uses are:
|
|
231
248
|
Hot Water: Distribution Waste (gal)
|
232
249
|
=================================== ====================
|
233
250
|
|
251
|
+
.. _timeseries_outputs:
|
234
252
|
|
235
253
|
Timeseries Outputs
|
236
254
|
------------------
|
237
255
|
|
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.
|
256
|
+
OpenStudio-HPXML can optionally generate a timeseries output file.
|
257
|
+
The timeseries output file is called results_timeseries.csv (or results_timeseries.json) and co-located with the EnergyPlus output.
|
240
258
|
|
241
|
-
Depending on the outputs requested,
|
259
|
+
Depending on the outputs requested, the file may include:
|
242
260
|
|
243
261
|
=================================== ==================================================================================================================================
|
244
262
|
Type Notes
|
@@ -248,7 +266,13 @@ Depending on the outputs requested, CSV files may include:
|
|
248
266
|
Hot Water Uses Water use for each end use type (in gallons).
|
249
267
|
Total Loads Heating, cooling, and hot water loads (in kBtu) for the building.
|
250
268
|
Component Loads Heating and cooling loads (in kBtu) disaggregated by component (e.g., Walls, Windows, Infiltration, Ducts, etc.).
|
269
|
+
Unmet Loads Unmet heating and cooling loads (in kBtu) for the building.
|
251
270
|
Zone Temperatures Average temperatures (in deg-F) for each space modeled (e.g., living space, attic, garage, basement, crawlspace, etc.).
|
252
271
|
Airflows Airflow rates (in cfm) for infiltration, mechanical ventilation (including clothes dryer exhaust), natural ventilation, whole house fans.
|
253
272
|
Weather Weather file data including outdoor temperatures, relative humidity, wind speed, and solar.
|
254
273
|
=================================== ==================================================================================================================================
|
274
|
+
|
275
|
+
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).
|
276
|
+
|
277
|
+
Timestamps in the output use the end-of-hour (or end-of-day for daily frequency, etc.) convention.
|
278
|
+
Most outputs will be summed over the hour (e.g., energy) but some will be averaged over the hour (e.g., temperatures, airflows).
|
@@ -17,6 +17,7 @@ def create_osws
|
|
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
19
|
'base-appliances-dehumidifier-50percent.osw' => 'base-appliances-dehumidifier.osw',
|
20
|
+
# 'base-appliances-dehumidifier-multiple.osw' => 'base-appliances-dehumidifier-50percent.osw',
|
20
21
|
'base-appliances-gas.osw' => 'base.osw',
|
21
22
|
'base-appliances-modified.osw' => 'base.osw',
|
22
23
|
'base-appliances-none.osw' => 'base.osw',
|
@@ -29,20 +30,37 @@ def create_osws
|
|
29
30
|
'base-atticroof-radiant-barrier.osw' => 'base-location-dallas-tx.osw',
|
30
31
|
'base-atticroof-unvented-insulated-roof.osw' => 'base.osw',
|
31
32
|
'base-atticroof-vented.osw' => 'base.osw',
|
33
|
+
'base-bldgtype-single-family-attached.osw' => 'base.osw',
|
32
34
|
'base-bldgtype-multifamily.osw' => 'base.osw',
|
33
35
|
# 'base-bldgtype-multifamily-adjacent-to-multifamily-buffer-space.osw' => 'base.osw', # Not supporting units adjacent to other MF spaces for now
|
34
36
|
# 'base-bldgtype-multifamily-adjacent-to-multiple.osw' => 'base.osw', # Not supporting units adjacent to other MF spaces for now
|
35
37
|
# 'base-bldgtype-multifamily-adjacent-to-non-freezing-space.osw' => 'base.osw', # Not supporting units adjacent to other MF spaces for now
|
36
38
|
# 'base-bldgtype-multifamily-adjacent-to-other-heated-space.osw' => 'base.osw', # Not supporting units adjacent to other MF spaces for now
|
37
39
|
# '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-
|
40
|
+
# 'base-bldgtype-multifamily-shared-boiler-chiller-baseboard.osw' => 'base-bldgtype-multifamily.osw',
|
41
|
+
# 'base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.osw' => 'base-bldgtype-multifamily-shared-boiler-chiller-baseboard.osw',
|
42
|
+
# 'base-bldgtype-multifamily-shared-boiler-chiller-fan-coil-ducted.osw' => 'base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.osw',
|
43
|
+
# 'base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.osw' => 'base-bldgtype-multifamily-shared-boiler-chiller-baseboard.osw',
|
44
|
+
# 'base-bldgtype-multifamily-shared-boiler-cooling-tower-water-loop-heat-pump.osw' => 'base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.osw',
|
45
|
+
# 'base-bldgtype-multifamily-shared-boiler-only-baseboard.osw' => 'base-bldgtype-multifamily.osw',
|
46
|
+
# 'base-bldgtype-multifamily-shared-boiler-only-fan-coil.osw' => 'base-bldgtype-multifamily-shared-boiler-only-baseboard.osw',
|
47
|
+
# 'base-bldgtype-multifamily-shared-boiler-only-fan-coil-ducted.osw' => 'base-bldgtype-multifamily-shared-boiler-only-fan-coil.osw',
|
48
|
+
# 'base-bldgtype-multifamily-shared-boiler-only-fan-coil-eae.osw' => 'base-bldgtype-multifamily-shared-boiler-only-fan-coil.osw',
|
49
|
+
# 'base-bldgtype-multifamily-shared-boiler-only-water-loop-heat-pump.osw' => 'base-bldgtype-multifamily-shared-boiler-only-baseboard.osw',
|
50
|
+
# 'base-bldgtype-multifamily-shared-chiller-only-baseboard.osw' => 'base-bldgtype-multifamily.osw',
|
51
|
+
# 'base-bldgtype-multifamily-shared-chiller-only-fan-coil.osw' => 'base-bldgtype-multifamily-shared-chiller-only-baseboard.osw',
|
52
|
+
# 'base-bldgtype-multifamily-shared-chiller-only-fan-coil-ducted.osw' => 'base-bldgtype-multifamily-shared-chiller-only-fan-coil.osw',
|
53
|
+
# 'base-bldgtype-multifamily-shared-chiller-only-water-loop-heat-pump.osw' => 'base-bldgtype-multifamily-shared-chiller-only-baseboard.osw',
|
54
|
+
# 'base-bldgtype-multifamily-shared-cooling-tower-only-water-loop-heat-pump.osw' => 'base-bldgtype-multifamily-shared-chiller-only-water-loop-heat-pump.osw',
|
55
|
+
# 'base-bldgtype-multifamily-shared-generator.osw' => 'base-bldgtype-multifamily.osw',
|
56
|
+
# 'base-bldgtype-multifamily-shared-ground-loop-ground-to-air-heat-pump.osw' => 'base-bldgtype-multifamily.osw',
|
57
|
+
# 'base-bldgtype-multifamily-shared-laundry-room.osw' => 'base-bldgtype-multifamily.osw', # Not going to support shared laundry room
|
39
58
|
'base-bldgtype-multifamily-shared-mechvent.osw' => 'base-bldgtype-multifamily.osw',
|
40
59
|
# 'base-bldgtype-multifamily-shared-mechvent-multiple.osw' => 'base.osw', # Not going to support > 2 MV systems
|
41
60
|
'base-bldgtype-multifamily-shared-mechvent-preconditioning.osw' => 'base-bldgtype-multifamily-shared-mechvent.osw',
|
42
61
|
'base-bldgtype-multifamily-shared-pv.osw' => 'base-bldgtype-multifamily.osw',
|
43
62
|
'base-bldgtype-multifamily-shared-water-heater.osw' => 'base-bldgtype-multifamily.osw',
|
44
63
|
# '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
64
|
'base-dhw-combi-tankless.osw' => 'base-dhw-indirect.osw',
|
47
65
|
'base-dhw-combi-tankless-outside.osw' => 'base-dhw-combi-tankless.osw',
|
48
66
|
# 'base-dhw-desuperheater.osw' => 'base.osw', # Not supporting desuperheater for now
|
@@ -96,7 +114,7 @@ def create_osws
|
|
96
114
|
'base-dhw-tank-oil.osw' => 'base.osw',
|
97
115
|
'base-dhw-tank-wood.osw' => 'base.osw',
|
98
116
|
'base-enclosure-2stories.osw' => 'base.osw',
|
99
|
-
'base-enclosure-2stories-garage.osw' => 'base.osw',
|
117
|
+
'base-enclosure-2stories-garage.osw' => 'base-enclosure-2stories.osw',
|
100
118
|
'base-enclosure-beds-1.osw' => 'base.osw',
|
101
119
|
'base-enclosure-beds-2.osw' => 'base.osw',
|
102
120
|
'base-enclosure-beds-4.osw' => 'base.osw',
|
@@ -110,11 +128,14 @@ def create_osws
|
|
110
128
|
'base-enclosure-overhangs.osw' => 'base.osw',
|
111
129
|
# 'base-enclosure-rooftypes.osw' => 'base.osw',
|
112
130
|
# 'base-enclosure-skylights.osw' => 'base.osw', # There are no front roof surfaces, but 15.0 ft^2 of skylights were specified.
|
131
|
+
# 'base-enclosure-skylights-shading.osw' => 'base-enclosure-skylights.osw", # Not going to support interior/exterior shading by facade
|
113
132
|
# 'base-enclosure-split-surfaces.osw' => 'base.osw',
|
133
|
+
# 'base-enclosure-split-surfaces2.osw' => 'base.osw',
|
114
134
|
# 'base-enclosure-walltypes.osw' => 'base.osw',
|
115
|
-
# 'base-enclosure-windows-
|
135
|
+
# 'base-enclosure-windows-shading.osw' => 'base.osw', # Not going to support interior/exterior shading by facade
|
116
136
|
'base-enclosure-windows-none.osw' => 'base.osw',
|
117
137
|
'base-foundation-ambient.osw' => 'base.osw',
|
138
|
+
# 'base-foundation-basement-garage.osw' => 'base.osw',
|
118
139
|
# 'base-foundation-complex.osw' => 'base.osw', # Not going to support multiple foundation types
|
119
140
|
'base-foundation-conditioned-basement-slab-insulation.osw' => 'base.osw',
|
120
141
|
# 'base-foundation-conditioned-basement-wall-interior-insulation.osw' => 'base.osw',
|
@@ -128,6 +149,8 @@ def create_osws
|
|
128
149
|
'base-foundation-vented-crawlspace.osw' => 'base.osw',
|
129
150
|
# 'base-foundation-walkout-basement.osw' => 'base.osw', # 1 kiva object instead of 4
|
130
151
|
'base-hvac-air-to-air-heat-pump-1-speed.osw' => 'base.osw',
|
152
|
+
'base-hvac-air-to-air-heat-pump-1-speed-cooling-only.osw' => 'base-hvac-air-to-air-heat-pump-1-speed.osw',
|
153
|
+
'base-hvac-air-to-air-heat-pump-1-speed-heating-only.osw' => 'base-hvac-air-to-air-heat-pump-1-speed.osw',
|
131
154
|
'base-hvac-air-to-air-heat-pump-2-speed.osw' => 'base.osw',
|
132
155
|
'base-hvac-air-to-air-heat-pump-var-speed.osw' => 'base.osw',
|
133
156
|
'base-hvac-boiler-coal-only.osw' => 'base.osw',
|
@@ -155,6 +178,7 @@ def create_osws
|
|
155
178
|
'base-hvac-fireplace-wood-only.osw' => 'base.osw',
|
156
179
|
'base-hvac-fixed-heater-gas-only.osw' => 'base.osw',
|
157
180
|
'base-hvac-floor-furnace-propane-only.osw' => 'base.osw',
|
181
|
+
'base-hvac-furnace-coal-only.osw' => 'base.osw',
|
158
182
|
'base-hvac-furnace-elec-central-ac-1-speed.osw' => 'base.osw',
|
159
183
|
'base-hvac-furnace-elec-only.osw' => 'base.osw',
|
160
184
|
'base-hvac-furnace-gas-central-ac-2-speed.osw' => 'base.osw',
|
@@ -166,7 +190,23 @@ def create_osws
|
|
166
190
|
'base-hvac-furnace-wood-only.osw' => 'base.osw',
|
167
191
|
# 'base-hvac-furnace-x3-dse.osw' => 'base.osw', # Not going to support DSE
|
168
192
|
'base-hvac-ground-to-air-heat-pump.osw' => 'base.osw',
|
193
|
+
'base-hvac-ground-to-air-heat-pump-cooling-only.osw' => 'base-hvac-ground-to-air-heat-pump.osw',
|
194
|
+
'base-hvac-ground-to-air-heat-pump-heating-only.osw' => 'base-hvac-ground-to-air-heat-pump.osw',
|
169
195
|
# 'base-hvac-ideal-air.osw' => 'base.osw',
|
196
|
+
'base-hvac-install-quality-none-furnace-gas-central-ac-1-speed.osw' => 'base.osw',
|
197
|
+
'base-hvac-install-quality-airflow-defect-furnace-gas-central-ac-1-speed.osw' => 'base.osw',
|
198
|
+
'base-hvac-install-quality-charge-defect-furnace-gas-central-ac-1-speed.osw' => 'base.osw',
|
199
|
+
# 'base-hvac-install-quality-blower-efficiency-furnace-gas-central-ac-1-speed.osw' => 'base.osw',
|
200
|
+
'base-hvac-install-quality-all-air-to-air-heat-pump-1-speed.osw' => 'base-hvac-air-to-air-heat-pump-1-speed.osw',
|
201
|
+
'base-hvac-install-quality-all-air-to-air-heat-pump-2-speed.osw' => 'base-hvac-air-to-air-heat-pump-2-speed.osw',
|
202
|
+
'base-hvac-install-quality-all-air-to-air-heat-pump-var-speed.osw' => 'base-hvac-air-to-air-heat-pump-var-speed.osw',
|
203
|
+
'base-hvac-install-quality-all-furnace-gas-central-ac-1-speed.osw' => 'base.osw',
|
204
|
+
'base-hvac-install-quality-all-furnace-gas-central-ac-2-speed.osw' => 'base-hvac-furnace-gas-central-ac-2-speed.osw',
|
205
|
+
'base-hvac-install-quality-all-furnace-gas-central-ac-var-speed.osw' => 'base-hvac-furnace-gas-central-ac-var-speed.osw',
|
206
|
+
'base-hvac-install-quality-all-furnace-gas-only.osw' => 'base-hvac-furnace-gas-only.osw',
|
207
|
+
'base-hvac-install-quality-all-ground-to-air-heat-pump.osw' => 'base-hvac-ground-to-air-heat-pump.osw',
|
208
|
+
'base-hvac-install-quality-all-mini-split-heat-pump-ducted.osw' => 'base-hvac-mini-split-heat-pump-ducted.osw',
|
209
|
+
'base-hvac-install-quality-all-mini-split-air-conditioner-only-ducted.osw' => 'base-hvac-mini-split-air-conditioner-only-ducted.osw',
|
170
210
|
'base-hvac-mini-split-air-conditioner-only-ducted.osw' => 'base.osw',
|
171
211
|
'base-hvac-mini-split-air-conditioner-only-ductless.osw' => 'base-hvac-mini-split-air-conditioner-only-ducted.osw',
|
172
212
|
'base-hvac-mini-split-heat-pump-ducted.osw' => 'base.osw',
|
@@ -178,7 +218,7 @@ def create_osws
|
|
178
218
|
'base-hvac-none.osw' => 'base.osw',
|
179
219
|
'base-hvac-portable-heater-gas-only.osw' => 'base.osw',
|
180
220
|
# 'base-hvac-programmable-thermostat.osw' => 'base.osw',
|
181
|
-
|
221
|
+
'base-hvac-programmable-thermostat-detailed.osw' => 'base.osw',
|
182
222
|
'base-hvac-room-ac-only.osw' => 'base.osw',
|
183
223
|
'base-hvac-room-ac-only-33percent.osw' => 'base.osw',
|
184
224
|
'base-hvac-setpoints.osw' => 'base.osw',
|
@@ -191,10 +231,14 @@ def create_osws
|
|
191
231
|
'base-lighting-detailed.osw' => 'base.osw',
|
192
232
|
# 'base-lighting-none.osw' => 'base.osw',
|
193
233
|
'base-location-AMY-2012.osw' => 'base.osw',
|
194
|
-
'base-location-baltimore-md.osw' => 'base.osw',
|
234
|
+
'base-location-baltimore-md.osw' => 'base-foundation-unvented-crawlspace.osw',
|
195
235
|
'base-location-dallas-tx.osw' => 'base-foundation-slab.osw',
|
196
|
-
'base-location-duluth-mn.osw' => 'base.osw',
|
236
|
+
'base-location-duluth-mn.osw' => 'base-foundation-unconditioned-basement.osw',
|
237
|
+
'base-location-helena-mt.osw' => 'base.osw',
|
238
|
+
'base-location-honolulu-hi.osw' => 'base-foundation-slab.osw',
|
197
239
|
'base-location-miami-fl.osw' => 'base-foundation-slab.osw',
|
240
|
+
'base-location-phoenix-az.osw' => 'base-foundation-slab.osw',
|
241
|
+
'base-location-portland-or.osw' => 'base-foundation-vented-crawlspace.osw',
|
198
242
|
'base-mechvent-balanced.osw' => 'base.osw',
|
199
243
|
'base-mechvent-bath-kitchen-fans.osw' => 'base.osw',
|
200
244
|
'base-mechvent-cfis.osw' => 'base.osw',
|
@@ -203,17 +247,21 @@ def create_osws
|
|
203
247
|
'base-mechvent-erv.osw' => 'base.osw',
|
204
248
|
'base-mechvent-erv-atre-asre.osw' => 'base.osw',
|
205
249
|
'base-mechvent-exhaust.osw' => 'base.osw',
|
250
|
+
'base-mechvent-exhaust-rated-flow-rate.osw' => 'base.osw',
|
206
251
|
'base-mechvent-hrv.osw' => 'base.osw',
|
207
252
|
'base-mechvent-hrv-asre.osw' => 'base.osw',
|
208
253
|
# 'base-mechvent-multiple.osw' => 'base.osw', # Not going to support > 2 MV systems
|
209
254
|
'base-mechvent-supply.osw' => 'base.osw',
|
210
255
|
'base-mechvent-whole-house-fan.osw' => 'base.osw',
|
211
256
|
'base-misc-defaults.osw' => 'base.osw',
|
257
|
+
# 'base-misc-generators.osw' => 'base.osw',
|
212
258
|
'base-misc-loads-large-uncommon.osw' => 'base.osw',
|
213
259
|
'base-misc-loads-large-uncommon2.osw' => 'base-misc-loads-large-uncommon.osw',
|
214
260
|
# 'base-misc-loads-none.osw' => 'base.osw',
|
215
261
|
'base-misc-neighbor-shading.osw' => 'base.osw',
|
262
|
+
'base-misc-shielding-of-home.osw' => 'base.osw',
|
216
263
|
'base-misc-usage-multiplier.osw' => 'base.osw',
|
264
|
+
# 'base-multiple-buildings.osw' => 'base.osw',
|
217
265
|
'base-pv.osw' => 'base.osw',
|
218
266
|
'base-simcontrol-calendar-year-custom.osw' => 'base.osw',
|
219
267
|
'base-simcontrol-daylight-saving-custom.osw' => 'base.osw',
|
@@ -221,6 +269,7 @@ def create_osws
|
|
221
269
|
'base-simcontrol-runperiod-1-month.osw' => 'base.osw',
|
222
270
|
'base-simcontrol-timestep-10-mins.osw' => 'base.osw',
|
223
271
|
'base-schedules-stochastic.osw' => 'base.osw',
|
272
|
+
'base-schedules-stochastic-vacant.osw' => 'base-schedules-stochastic.osw',
|
224
273
|
'base-schedules-user-specified.osw' => 'base.osw',
|
225
274
|
|
226
275
|
# Extra test files that don't correspond with sample files
|
@@ -228,13 +277,112 @@ def create_osws
|
|
228
277
|
'extra-pv-roofpitch.osw' => 'base.osw',
|
229
278
|
'extra-dhw-solar-latitude.osw' => 'base.osw',
|
230
279
|
'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',
|
280
|
+
'extra-second-heating-system-portable-heater-to-heating-system.osw' => 'base.osw',
|
281
|
+
'extra-second-heating-system-fireplace-to-heating-system.osw' => 'base-hvac-elec-resistance-only.osw',
|
282
|
+
'extra-second-heating-system-boiler-to-heating-system.osw' => 'base-hvac-boiler-gas-central-ac-1-speed.osw',
|
283
|
+
'extra-second-heating-system-portable-heater-to-heat-pump.osw' => 'base-hvac-air-to-air-heat-pump-1-speed.osw',
|
284
|
+
'extra-second-heating-system-fireplace-to-heat-pump.osw' => 'base-hvac-mini-split-heat-pump-ducted.osw',
|
285
|
+
'extra-second-heating-system-boiler-to-heat-pump.osw' => 'base-hvac-ground-to-air-heat-pump.osw',
|
286
|
+
'extra-enclosure-windows-shading.osw' => 'base.osw',
|
233
287
|
'extra-enclosure-garage-partially-protruded.osw' => 'base.osw',
|
234
|
-
'extra-
|
288
|
+
'extra-enclosure-garage-atticroof-conditioned.osw' => 'base-enclosure-garage.osw',
|
289
|
+
'extra-enclosure-atticroof-conditioned-eaves-gable.osw' => 'base-foundation-slab.osw',
|
290
|
+
'extra-enclosure-atticroof-conditioned-eaves-hip.osw' => 'extra-enclosure-atticroof-conditioned-eaves-gable.osw',
|
235
291
|
'extra-schedules-random-seed.osw' => 'base-schedules-stochastic.osw',
|
236
|
-
'extra-
|
237
|
-
'extra-
|
292
|
+
'extra-zero-refrigerator-kwh.osw' => 'base.osw',
|
293
|
+
'extra-zero-extra-refrigerator-kwh.osw' => 'base.osw',
|
294
|
+
'extra-zero-freezer-kwh.osw' => 'base.osw',
|
295
|
+
'extra-zero-clothes-washer-kwh.osw' => 'base.osw',
|
296
|
+
'extra-zero-dishwasher-kwh.osw' => 'base.osw',
|
297
|
+
|
298
|
+
'extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-gable.osw' => 'extra-bldgtype-single-family-attached-slab.osw',
|
299
|
+
'extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-hip.osw' => 'extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-gable.osw',
|
300
|
+
'extra-bldgtype-multifamily-eaves.osw' => 'extra-bldgtype-multifamily-slab.osw',
|
301
|
+
|
302
|
+
'extra-bldgtype-single-family-attached-slab.osw' => 'base-bldgtype-single-family-attached.osw',
|
303
|
+
'extra-bldgtype-single-family-attached-vented-crawlspace.osw' => 'base-bldgtype-single-family-attached.osw',
|
304
|
+
'extra-bldgtype-single-family-attached-unvented-crawlspace.osw' => 'base-bldgtype-single-family-attached.osw',
|
305
|
+
'extra-bldgtype-single-family-attached-unconditioned-basement.osw' => 'base-bldgtype-single-family-attached.osw',
|
306
|
+
|
307
|
+
'extra-bldgtype-single-family-attached-double-loaded-interior.osw' => 'base-bldgtype-single-family-attached.osw',
|
308
|
+
'extra-bldgtype-single-family-attached-single-exterior-front.osw' => 'base-bldgtype-single-family-attached.osw',
|
309
|
+
'extra-bldgtype-single-family-attached-double-exterior.osw' => 'base-bldgtype-single-family-attached.osw',
|
310
|
+
|
311
|
+
'extra-bldgtype-single-family-attached-slab-middle.osw' => 'extra-bldgtype-single-family-attached-slab.osw',
|
312
|
+
'extra-bldgtype-single-family-attached-slab-right.osw' => 'extra-bldgtype-single-family-attached-slab.osw',
|
313
|
+
'extra-bldgtype-single-family-attached-vented-crawlspace-middle.osw' => 'extra-bldgtype-single-family-attached-vented-crawlspace.osw',
|
314
|
+
'extra-bldgtype-single-family-attached-vented-crawlspace-right.osw' => 'extra-bldgtype-single-family-attached-vented-crawlspace.osw',
|
315
|
+
'extra-bldgtype-single-family-attached-unvented-crawlspace-middle.osw' => 'extra-bldgtype-single-family-attached-unvented-crawlspace.osw',
|
316
|
+
'extra-bldgtype-single-family-attached-unvented-crawlspace-right.osw' => 'extra-bldgtype-single-family-attached-unvented-crawlspace.osw',
|
317
|
+
'extra-bldgtype-single-family-attached-unconditioned-basement-middle.osw' => 'extra-bldgtype-single-family-attached-unconditioned-basement.osw',
|
318
|
+
'extra-bldgtype-single-family-attached-unconditioned-basement-right.osw' => 'extra-bldgtype-single-family-attached-unconditioned-basement.osw',
|
319
|
+
|
320
|
+
'extra-bldgtype-multifamily-slab.osw' => 'base-bldgtype-multifamily.osw',
|
321
|
+
'extra-bldgtype-multifamily-vented-crawlspace.osw' => 'base-bldgtype-multifamily.osw',
|
322
|
+
'extra-bldgtype-multifamily-unvented-crawlspace.osw' => 'base-bldgtype-multifamily.osw',
|
323
|
+
|
324
|
+
'extra-bldgtype-multifamily-double-loaded-interior.osw' => 'base-bldgtype-multifamily.osw',
|
325
|
+
'extra-bldgtype-multifamily-single-exterior-front.osw' => 'base-bldgtype-multifamily.osw',
|
326
|
+
'extra-bldgtype-multifamily-double-exterior.osw' => 'base-bldgtype-multifamily.osw',
|
327
|
+
|
328
|
+
'extra-bldgtype-multifamily-slab-left-bottom.osw' => 'extra-bldgtype-multifamily-slab.osw',
|
329
|
+
'extra-bldgtype-multifamily-slab-left-middle.osw' => 'extra-bldgtype-multifamily-slab.osw',
|
330
|
+
'extra-bldgtype-multifamily-slab-left-top.osw' => 'extra-bldgtype-multifamily-slab.osw',
|
331
|
+
'extra-bldgtype-multifamily-slab-middle-bottom.osw' => 'extra-bldgtype-multifamily-slab.osw',
|
332
|
+
'extra-bldgtype-multifamily-slab-middle-middle.osw' => 'extra-bldgtype-multifamily-slab.osw',
|
333
|
+
'extra-bldgtype-multifamily-slab-middle-top.osw' => 'extra-bldgtype-multifamily-slab.osw',
|
334
|
+
'extra-bldgtype-multifamily-slab-right-bottom.osw' => 'extra-bldgtype-multifamily-slab.osw',
|
335
|
+
'extra-bldgtype-multifamily-slab-right-middle.osw' => 'extra-bldgtype-multifamily-slab.osw',
|
336
|
+
'extra-bldgtype-multifamily-slab-right-top.osw' => 'extra-bldgtype-multifamily-slab.osw',
|
337
|
+
'extra-bldgtype-multifamily-vented-crawlspace-left-bottom.osw' => 'extra-bldgtype-multifamily-vented-crawlspace.osw',
|
338
|
+
'extra-bldgtype-multifamily-vented-crawlspace-left-middle.osw' => 'extra-bldgtype-multifamily-vented-crawlspace.osw',
|
339
|
+
'extra-bldgtype-multifamily-vented-crawlspace-left-top.osw' => 'extra-bldgtype-multifamily-vented-crawlspace.osw',
|
340
|
+
'extra-bldgtype-multifamily-vented-crawlspace-middle-bottom.osw' => 'extra-bldgtype-multifamily-vented-crawlspace.osw',
|
341
|
+
'extra-bldgtype-multifamily-vented-crawlspace-middle-middle.osw' => 'extra-bldgtype-multifamily-vented-crawlspace.osw',
|
342
|
+
'extra-bldgtype-multifamily-vented-crawlspace-middle-top.osw' => 'extra-bldgtype-multifamily-vented-crawlspace.osw',
|
343
|
+
'extra-bldgtype-multifamily-vented-crawlspace-right-bottom.osw' => 'extra-bldgtype-multifamily-vented-crawlspace.osw',
|
344
|
+
'extra-bldgtype-multifamily-vented-crawlspace-right-middle.osw' => 'extra-bldgtype-multifamily-vented-crawlspace.osw',
|
345
|
+
'extra-bldgtype-multifamily-vented-crawlspace-right-top.osw' => 'extra-bldgtype-multifamily-vented-crawlspace.osw',
|
346
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-left-bottom.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace.osw',
|
347
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-left-middle.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace.osw',
|
348
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-left-top.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace.osw',
|
349
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-middle-bottom.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace.osw',
|
350
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-middle-middle.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace.osw',
|
351
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-middle-top.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace.osw',
|
352
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-right-bottom.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace.osw',
|
353
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-right-middle.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace.osw',
|
354
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-right-top.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace.osw',
|
355
|
+
|
356
|
+
'extra-bldgtype-multifamily-slab-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-slab.osw',
|
357
|
+
'extra-bldgtype-multifamily-vented-crawlspace-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-vented-crawlspace.osw',
|
358
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace.osw',
|
359
|
+
'extra-bldgtype-multifamily-slab-left-bottom-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-slab-left-bottom.osw',
|
360
|
+
'extra-bldgtype-multifamily-slab-left-middle-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-slab-left-middle.osw',
|
361
|
+
'extra-bldgtype-multifamily-slab-left-top-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-slab-left-top.osw',
|
362
|
+
'extra-bldgtype-multifamily-slab-middle-bottom-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-slab-middle-bottom.osw',
|
363
|
+
'extra-bldgtype-multifamily-slab-middle-middle-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-slab-middle-middle.osw',
|
364
|
+
'extra-bldgtype-multifamily-slab-middle-top-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-slab-middle-top.osw',
|
365
|
+
'extra-bldgtype-multifamily-slab-right-bottom-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-slab-right-bottom.osw',
|
366
|
+
'extra-bldgtype-multifamily-slab-right-middle-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-slab-right-middle.osw',
|
367
|
+
'extra-bldgtype-multifamily-slab-right-top-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-slab-right-top.osw',
|
368
|
+
'extra-bldgtype-multifamily-vented-crawlspace-left-bottom-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-vented-crawlspace-left-bottom.osw',
|
369
|
+
'extra-bldgtype-multifamily-vented-crawlspace-left-middle-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-vented-crawlspace-left-middle.osw',
|
370
|
+
'extra-bldgtype-multifamily-vented-crawlspace-left-top-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-vented-crawlspace-left-top.osw',
|
371
|
+
'extra-bldgtype-multifamily-vented-crawlspace-middle-bottom-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-vented-crawlspace-middle-bottom.osw',
|
372
|
+
'extra-bldgtype-multifamily-vented-crawlspace-middle-middle-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-vented-crawlspace-middle-middle.osw',
|
373
|
+
'extra-bldgtype-multifamily-vented-crawlspace-middle-top-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-vented-crawlspace-middle-top.osw',
|
374
|
+
'extra-bldgtype-multifamily-vented-crawlspace-right-bottom-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-vented-crawlspace-right-bottom.osw',
|
375
|
+
'extra-bldgtype-multifamily-vented-crawlspace-right-middle-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-vented-crawlspace-right-middle.osw',
|
376
|
+
'extra-bldgtype-multifamily-vented-crawlspace-right-top-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-vented-crawlspace-right-top.osw',
|
377
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-left-bottom-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace-left-bottom.osw',
|
378
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-left-middle-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace-left-middle.osw',
|
379
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-left-top-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace-left-top.osw',
|
380
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-middle-bottom-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace-middle-bottom.osw',
|
381
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-middle-middle-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace-middle-middle.osw',
|
382
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-middle-top-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace-middle-top.osw',
|
383
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-right-bottom-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace-right-bottom.osw',
|
384
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-right-middle-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace-right-middle.osw',
|
385
|
+
'extra-bldgtype-multifamily-unvented-crawlspace-right-top-double-loaded-interior.osw' => 'extra-bldgtype-multifamily-unvented-crawlspace-right-top.osw',
|
238
386
|
|
239
387
|
'invalid_files/non-electric-heat-pump-water-heater.osw' => 'base.osw',
|
240
388
|
'invalid_files/heating-system-and-heat-pump.osw' => 'base.osw',
|
@@ -249,6 +397,8 @@ def create_osws
|
|
249
397
|
'invalid_files/slab-non-zero-foundation-height-above-grade.osw' => 'base.osw',
|
250
398
|
'invalid_files/ducts-location-and-areas-not-same-type.osw' => 'base.osw',
|
251
399
|
'invalid_files/second-heating-system-serves-majority-heat.osw' => 'base.osw',
|
400
|
+
'invalid_files/second-heating-system-serves-total-heat-load.osw' => 'base.osw',
|
401
|
+
'invalid_files/second-heating-system-but-no-primary-heating.osw' => 'base.osw',
|
252
402
|
'invalid_files/single-family-attached-no-building-orientation.osw' => 'base-bldgtype-single-family-attached.osw',
|
253
403
|
'invalid_files/multifamily-no-building-orientation.osw' => 'base-bldgtype-multifamily.osw',
|
254
404
|
'invalid_files/vented-crawlspace-with-wall-and-ceiling-insulation.osw' => 'base.osw',
|
@@ -259,8 +409,14 @@ def create_osws
|
|
259
409
|
'invalid_files/conditioned-basement-with-ceiling-insulation.osw' => 'base.osw',
|
260
410
|
'invalid_files/conditioned-attic-with-floor-insulation.osw' => 'base.osw',
|
261
411
|
'invalid_files/dhw-indirect-without-boiler.osw' => 'base.osw',
|
262
|
-
'invalid_files/multipliers-without-plug-loads.osw' => 'base.osw',
|
263
|
-
'invalid_files/multipliers-without-
|
412
|
+
'invalid_files/multipliers-without-tv-plug-loads.osw' => 'base.osw',
|
413
|
+
'invalid_files/multipliers-without-other-plug-loads.osw' => 'base.osw',
|
414
|
+
'invalid_files/multipliers-without-well-pump-plug-loads.osw' => 'base.osw',
|
415
|
+
'invalid_files/multipliers-without-vehicle-plug-loads.osw' => 'base.osw',
|
416
|
+
'invalid_files/multipliers-without-fuel-loads.osw' => 'base.osw',
|
417
|
+
'invalid_files/foundation-wall-insulation-greater-than-height.osw' => 'base-foundation-vented-crawlspace.osw',
|
418
|
+
'invalid_files/conditioned-attic-with-one-floor-above-grade.osw' => 'base.osw',
|
419
|
+
'invalid_files/zero-number-of-bedrooms.osw' => 'base.osw'
|
264
420
|
}
|
265
421
|
|
266
422
|
puts "Generating #{osws_files.size} OSW files..."
|
@@ -359,6 +515,7 @@ def get_values(osw_file, step)
|
|
359
515
|
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeBasementConditioned)
|
360
516
|
step.setArgument('geometry_foundation_height', 8.0)
|
361
517
|
step.setArgument('geometry_foundation_height_above_grade', 1.0)
|
518
|
+
step.setArgument('geometry_rim_joist_height', 9.25)
|
362
519
|
step.setArgument('geometry_roof_type', 'gable')
|
363
520
|
step.setArgument('geometry_roof_pitch', '6:12')
|
364
521
|
step.setArgument('geometry_attic_type', HPXML::AtticTypeUnvented)
|
@@ -366,11 +523,13 @@ def get_values(osw_file, step)
|
|
366
523
|
step.setArgument('geometry_num_bedrooms', 3)
|
367
524
|
step.setArgument('geometry_num_bathrooms', '2')
|
368
525
|
step.setArgument('geometry_num_occupants', '3')
|
526
|
+
step.setArgument('geometry_has_flue_or_chimney', Constants.Auto)
|
369
527
|
step.setArgument('floor_assembly_r', 0)
|
370
528
|
step.setArgument('foundation_wall_insulation_r', 8.9)
|
371
529
|
step.setArgument('foundation_wall_insulation_distance_to_top', 0.0)
|
372
|
-
step.setArgument('foundation_wall_insulation_distance_to_bottom',
|
530
|
+
step.setArgument('foundation_wall_insulation_distance_to_bottom', Constants.Auto)
|
373
531
|
step.setArgument('foundation_wall_thickness', '8.0')
|
532
|
+
step.setArgument('rim_joist_assembly_r', 23.0)
|
374
533
|
step.setArgument('slab_perimeter_insulation_r', 0)
|
375
534
|
step.setArgument('slab_perimeter_depth', 0)
|
376
535
|
step.setArgument('slab_under_insulation_r', 0)
|
@@ -380,11 +539,9 @@ def get_values(osw_file, step)
|
|
380
539
|
step.setArgument('slab_carpet_r', '0.0')
|
381
540
|
step.setArgument('ceiling_assembly_r', 39.3)
|
382
541
|
step.setArgument('roof_material_type', HPXML::RoofTypeAsphaltShingles)
|
383
|
-
step.setArgument('roof_color',
|
542
|
+
step.setArgument('roof_color', HPXML::ColorMedium)
|
384
543
|
step.setArgument('roof_assembly_r', 2.3)
|
385
|
-
step.setArgument('
|
386
|
-
step.setArgument('roof_emittance', '0.92')
|
387
|
-
step.setArgument('roof_radiant_barrier', 'false')
|
544
|
+
step.setArgument('roof_radiant_barrier', false)
|
388
545
|
step.setArgument('roof_radiant_barrier_grade', '1')
|
389
546
|
step.setArgument('neighbor_front_distance', 0)
|
390
547
|
step.setArgument('neighbor_back_distance', 0)
|
@@ -396,10 +553,8 @@ def get_values(osw_file, step)
|
|
396
553
|
step.setArgument('neighbor_right_height', Constants.Auto)
|
397
554
|
step.setArgument('wall_type', HPXML::WallTypeWoodStud)
|
398
555
|
step.setArgument('wall_siding_type', HPXML::SidingTypeWood)
|
399
|
-
step.setArgument('wall_color',
|
556
|
+
step.setArgument('wall_color', HPXML::ColorMedium)
|
400
557
|
step.setArgument('wall_assembly_r', 23)
|
401
|
-
step.setArgument('wall_solar_absorptance', Constants.Auto)
|
402
|
-
step.setArgument('wall_emittance', '0.92')
|
403
558
|
step.setArgument('window_front_wwr', 0)
|
404
559
|
step.setArgument('window_back_wwr', 0)
|
405
560
|
step.setArgument('window_left_wwr', 0)
|
@@ -433,40 +588,39 @@ def get_values(osw_file, step)
|
|
433
588
|
step.setArgument('air_leakage_units', HPXML::UnitsACH)
|
434
589
|
step.setArgument('air_leakage_house_pressure', 50)
|
435
590
|
step.setArgument('air_leakage_value', 3)
|
436
|
-
step.setArgument('
|
591
|
+
step.setArgument('air_leakage_shielding_of_home', Constants.Auto)
|
437
592
|
step.setArgument('heating_system_type', HPXML::HVACTypeFurnace)
|
438
593
|
step.setArgument('heating_system_fuel', HPXML::FuelTypeNaturalGas)
|
439
594
|
step.setArgument('heating_system_heating_efficiency', 0.92)
|
440
595
|
step.setArgument('heating_system_heating_capacity', '64000.0')
|
441
596
|
step.setArgument('heating_system_fraction_heat_load_served', 1)
|
442
|
-
step.setArgument('heating_system_has_flue_or_chimney', false)
|
443
597
|
step.setArgument('cooling_system_type', HPXML::HVACTypeCentralAirConditioner)
|
444
|
-
step.setArgument('
|
445
|
-
step.setArgument('
|
598
|
+
step.setArgument('cooling_system_cooling_efficiency_type', HPXML::UnitsSEER)
|
599
|
+
step.setArgument('cooling_system_cooling_efficiency', 13.0)
|
446
600
|
step.setArgument('cooling_system_cooling_compressor_type', HPXML::HVACCompressorTypeSingleStage)
|
447
601
|
step.setArgument('cooling_system_cooling_sensible_heat_fraction', 0.73)
|
448
602
|
step.setArgument('cooling_system_cooling_capacity', '48000.0')
|
449
603
|
step.setArgument('cooling_system_fraction_cool_load_served', 1)
|
450
604
|
step.setArgument('cooling_system_is_ducted', false)
|
451
605
|
step.setArgument('heat_pump_type', 'none')
|
452
|
-
step.setArgument('
|
453
|
-
step.setArgument('
|
454
|
-
step.setArgument('
|
455
|
-
step.setArgument('
|
606
|
+
step.setArgument('heat_pump_heating_efficiency_type', HPXML::UnitsHSPF)
|
607
|
+
step.setArgument('heat_pump_heating_efficiency', 7.7)
|
608
|
+
step.setArgument('heat_pump_cooling_efficiency_type', HPXML::UnitsSEER)
|
609
|
+
step.setArgument('heat_pump_cooling_efficiency', 13.0)
|
456
610
|
step.setArgument('heat_pump_cooling_compressor_type', HPXML::HVACCompressorTypeSingleStage)
|
457
611
|
step.setArgument('heat_pump_cooling_sensible_heat_fraction', 0.73)
|
458
612
|
step.setArgument('heat_pump_heating_capacity', '64000.0')
|
459
|
-
step.setArgument('
|
613
|
+
step.setArgument('heat_pump_heating_capacity_17_f', Constants.Auto)
|
460
614
|
step.setArgument('heat_pump_cooling_capacity', '48000.0')
|
461
615
|
step.setArgument('heat_pump_fraction_heat_load_served', 1)
|
462
616
|
step.setArgument('heat_pump_fraction_cool_load_served', 1)
|
463
617
|
step.setArgument('heat_pump_backup_fuel', 'none')
|
464
618
|
step.setArgument('heat_pump_backup_heating_efficiency', 1)
|
465
619
|
step.setArgument('heat_pump_backup_heating_capacity', '34121.0')
|
466
|
-
step.setArgument('
|
467
|
-
step.setArgument('
|
468
|
-
step.setArgument('
|
469
|
-
step.setArgument('
|
620
|
+
step.setArgument('setpoint_heating_weekday', '68')
|
621
|
+
step.setArgument('setpoint_heating_weekend', '68')
|
622
|
+
step.setArgument('setpoint_cooling_weekday', '78')
|
623
|
+
step.setArgument('setpoint_cooling_weekend', '78')
|
470
624
|
step.setArgument('ducts_supply_leakage_units', HPXML::UnitsCFM25)
|
471
625
|
step.setArgument('ducts_return_leakage_units', HPXML::UnitsCFM25)
|
472
626
|
step.setArgument('ducts_supply_leakage_value', 75.0)
|
@@ -477,32 +631,29 @@ def get_values(osw_file, step)
|
|
477
631
|
step.setArgument('ducts_return_location', HPXML::LocationAtticUnvented)
|
478
632
|
step.setArgument('ducts_supply_surface_area', '150.0')
|
479
633
|
step.setArgument('ducts_return_surface_area', '50.0')
|
480
|
-
step.setArgument('ducts_number_of_return_registers',
|
634
|
+
step.setArgument('ducts_number_of_return_registers', '2')
|
481
635
|
step.setArgument('heating_system_type_2', 'none')
|
482
636
|
step.setArgument('heating_system_fuel_2', HPXML::FuelTypeElectricity)
|
483
637
|
step.setArgument('heating_system_heating_efficiency_2', 1.0)
|
484
638
|
step.setArgument('heating_system_heating_capacity_2', Constants.Auto)
|
485
639
|
step.setArgument('heating_system_fraction_heat_load_served_2', 0.25)
|
486
|
-
step.setArgument('heating_system_has_flue_or_chimney_2', false)
|
487
640
|
step.setArgument('mech_vent_fan_type', 'none')
|
488
641
|
step.setArgument('mech_vent_flow_rate', 110)
|
489
642
|
step.setArgument('mech_vent_hours_in_operation', 24)
|
490
|
-
step.setArgument('
|
643
|
+
step.setArgument('mech_vent_recovery_efficiency_type', 'Unadjusted')
|
491
644
|
step.setArgument('mech_vent_total_recovery_efficiency', 0.48)
|
492
|
-
step.setArgument('mech_vent_sensible_recovery_efficiency_type', 'Unadjusted')
|
493
645
|
step.setArgument('mech_vent_sensible_recovery_efficiency', 0.72)
|
494
646
|
step.setArgument('mech_vent_fan_power', 30)
|
495
647
|
step.setArgument('mech_vent_num_units_served', 1)
|
496
648
|
step.setArgument('mech_vent_fan_type_2', 'none')
|
497
649
|
step.setArgument('mech_vent_flow_rate_2', 110)
|
498
650
|
step.setArgument('mech_vent_hours_in_operation_2', 24)
|
499
|
-
step.setArgument('
|
651
|
+
step.setArgument('mech_vent_recovery_efficiency_type_2', 'Unadjusted')
|
500
652
|
step.setArgument('mech_vent_total_recovery_efficiency_2', 0.48)
|
501
|
-
step.setArgument('mech_vent_sensible_recovery_efficiency_type_2', 'Unadjusted')
|
502
653
|
step.setArgument('mech_vent_sensible_recovery_efficiency_2', 0.72)
|
503
654
|
step.setArgument('mech_vent_fan_power_2', 30)
|
504
|
-
step.setArgument('
|
505
|
-
step.setArgument('
|
655
|
+
step.setArgument('kitchen_fans_quantity', '0')
|
656
|
+
step.setArgument('bathroom_fans_quantity', '0')
|
506
657
|
step.setArgument('whole_house_fan_present', false)
|
507
658
|
step.setArgument('whole_house_fan_flow_rate', 4500)
|
508
659
|
step.setArgument('whole_house_fan_power', 300)
|
@@ -510,14 +661,12 @@ def get_values(osw_file, step)
|
|
510
661
|
step.setArgument('water_heater_fuel_type', HPXML::FuelTypeElectricity)
|
511
662
|
step.setArgument('water_heater_location', HPXML::LocationLivingSpace)
|
512
663
|
step.setArgument('water_heater_tank_volume', '40')
|
513
|
-
step.setArgument('water_heater_heating_capacity', '18767')
|
514
664
|
step.setArgument('water_heater_efficiency_type', 'EnergyFactor')
|
515
665
|
step.setArgument('water_heater_efficiency', 0.95)
|
516
666
|
step.setArgument('water_heater_recovery_efficiency', '0.76')
|
517
667
|
step.setArgument('water_heater_standby_loss', 0)
|
518
668
|
step.setArgument('water_heater_jacket_rvalue', 0)
|
519
669
|
step.setArgument('water_heater_setpoint_temperature', '125')
|
520
|
-
step.setArgument('water_heater_has_flue_or_chimney', false)
|
521
670
|
step.setArgument('water_heater_num_units_served', 1)
|
522
671
|
step.setArgument('dhw_distribution_system_type', HPXML::DHWDistTypeStandard)
|
523
672
|
step.setArgument('dhw_distribution_standard_piping_length', '50')
|
@@ -578,19 +727,15 @@ def get_values(osw_file, step)
|
|
578
727
|
step.setArgument('holiday_lighting_period_begin_day_of_month', Constants.Auto)
|
579
728
|
step.setArgument('holiday_lighting_period_end_month', Constants.Auto)
|
580
729
|
step.setArgument('holiday_lighting_period_end_day_of_month', Constants.Auto)
|
581
|
-
step.setArgument('
|
582
|
-
step.setArgument('dehumidifier_type', HPXML::DehumidifierTypePortable)
|
730
|
+
step.setArgument('dehumidifier_type', 'none')
|
583
731
|
step.setArgument('dehumidifier_efficiency_type', 'EnergyFactor')
|
584
|
-
step.setArgument('
|
585
|
-
step.setArgument('dehumidifier_efficiency_ief', 1.5)
|
732
|
+
step.setArgument('dehumidifier_efficiency', 1.8)
|
586
733
|
step.setArgument('dehumidifier_capacity', 40)
|
587
734
|
step.setArgument('dehumidifier_rh_setpoint', 0.5)
|
588
735
|
step.setArgument('dehumidifier_fraction_dehumidification_load_served', 1)
|
589
|
-
step.setArgument('clothes_washer_present', true)
|
590
736
|
step.setArgument('clothes_washer_location', HPXML::LocationLivingSpace)
|
591
737
|
step.setArgument('clothes_washer_efficiency_type', 'IntegratedModifiedEnergyFactor')
|
592
|
-
step.setArgument('
|
593
|
-
step.setArgument('clothes_washer_efficiency_imef', '1.21')
|
738
|
+
step.setArgument('clothes_washer_efficiency', '1.21')
|
594
739
|
step.setArgument('clothes_washer_rated_annual_kwh', '380.0')
|
595
740
|
step.setArgument('clothes_washer_label_electric_rate', '0.12')
|
596
741
|
step.setArgument('clothes_washer_label_gas_rate', '1.09')
|
@@ -598,39 +743,30 @@ def get_values(osw_file, step)
|
|
598
743
|
step.setArgument('clothes_washer_label_usage', '6.0')
|
599
744
|
step.setArgument('clothes_washer_capacity', '3.2')
|
600
745
|
step.setArgument('clothes_washer_usage_multiplier', 1.0)
|
601
|
-
step.setArgument('clothes_dryer_present', true)
|
602
746
|
step.setArgument('clothes_dryer_location', HPXML::LocationLivingSpace)
|
603
747
|
step.setArgument('clothes_dryer_fuel_type', HPXML::FuelTypeElectricity)
|
604
748
|
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)
|
749
|
+
step.setArgument('clothes_dryer_efficiency', '3.73')
|
608
750
|
step.setArgument('clothes_dryer_vented_flow_rate', '150.0')
|
609
751
|
step.setArgument('clothes_dryer_usage_multiplier', 1.0)
|
610
|
-
step.setArgument('dishwasher_present', true)
|
611
752
|
step.setArgument('dishwasher_location', HPXML::LocationLivingSpace)
|
612
753
|
step.setArgument('dishwasher_efficiency_type', 'RatedAnnualkWh')
|
613
|
-
step.setArgument('
|
614
|
-
step.setArgument('dishwasher_efficiency_ef', 0.46)
|
754
|
+
step.setArgument('dishwasher_efficiency', '307')
|
615
755
|
step.setArgument('dishwasher_label_electric_rate', '0.12')
|
616
756
|
step.setArgument('dishwasher_label_gas_rate', '1.09')
|
617
757
|
step.setArgument('dishwasher_label_annual_gas_cost', '22.32')
|
618
758
|
step.setArgument('dishwasher_label_usage', '4.0')
|
619
759
|
step.setArgument('dishwasher_place_setting_capacity', '12')
|
620
760
|
step.setArgument('dishwasher_usage_multiplier', 1.0)
|
621
|
-
step.setArgument('refrigerator_present', true)
|
622
761
|
step.setArgument('refrigerator_location', HPXML::LocationLivingSpace)
|
623
762
|
step.setArgument('refrigerator_rated_annual_kwh', '650.0')
|
624
763
|
step.setArgument('refrigerator_usage_multiplier', 1.0)
|
625
|
-
step.setArgument('
|
626
|
-
step.setArgument('extra_refrigerator_location', Constants.Auto)
|
764
|
+
step.setArgument('extra_refrigerator_location', 'none')
|
627
765
|
step.setArgument('extra_refrigerator_rated_annual_kwh', Constants.Auto)
|
628
766
|
step.setArgument('extra_refrigerator_usage_multiplier', 1.0)
|
629
|
-
step.setArgument('
|
630
|
-
step.setArgument('freezer_location', Constants.Auto)
|
767
|
+
step.setArgument('freezer_location', 'none')
|
631
768
|
step.setArgument('freezer_rated_annual_kwh', Constants.Auto)
|
632
769
|
step.setArgument('freezer_usage_multiplier', 1.0)
|
633
|
-
step.setArgument('cooking_range_oven_present', true)
|
634
770
|
step.setArgument('cooking_range_oven_location', HPXML::LocationLivingSpace)
|
635
771
|
step.setArgument('cooking_range_oven_fuel_type', HPXML::FuelTypeElectricity)
|
636
772
|
step.setArgument('cooking_range_oven_is_induction', false)
|
@@ -642,20 +778,16 @@ def get_values(osw_file, step)
|
|
642
778
|
step.setArgument('ceiling_fan_cooling_setpoint_temp_offset', 0)
|
643
779
|
step.setArgument('plug_loads_television_annual_kwh', '620.0')
|
644
780
|
step.setArgument('plug_loads_television_usage_multiplier', 1.0)
|
645
|
-
step.setArgument('plug_loads_television_usage_multiplier_2', 1.0)
|
646
781
|
step.setArgument('plug_loads_other_annual_kwh', '2457.0')
|
647
782
|
step.setArgument('plug_loads_other_frac_sensible', '0.855')
|
648
783
|
step.setArgument('plug_loads_other_frac_latent', '0.045')
|
649
784
|
step.setArgument('plug_loads_other_usage_multiplier', 1.0)
|
650
|
-
step.setArgument('plug_loads_other_usage_multiplier_2', 1.0)
|
651
785
|
step.setArgument('plug_loads_well_pump_present', false)
|
652
786
|
step.setArgument('plug_loads_well_pump_annual_kwh', Constants.Auto)
|
653
787
|
step.setArgument('plug_loads_well_pump_usage_multiplier', 0.0)
|
654
|
-
step.setArgument('plug_loads_well_pump_usage_multiplier_2', 0.0)
|
655
788
|
step.setArgument('plug_loads_vehicle_present', false)
|
656
789
|
step.setArgument('plug_loads_vehicle_annual_kwh', Constants.Auto)
|
657
790
|
step.setArgument('plug_loads_vehicle_usage_multiplier', 0.0)
|
658
|
-
step.setArgument('plug_loads_vehicle_usage_multiplier_2', 0.0)
|
659
791
|
step.setArgument('fuel_loads_grill_present', false)
|
660
792
|
step.setArgument('fuel_loads_grill_fuel_type', HPXML::FuelTypeNaturalGas)
|
661
793
|
step.setArgument('fuel_loads_grill_annual_therm', Constants.Auto)
|
@@ -684,121 +816,55 @@ def get_values(osw_file, step)
|
|
684
816
|
step.setArgument('hot_tub_heater_annual_kwh', Constants.Auto)
|
685
817
|
step.setArgument('hot_tub_heater_annual_therm', Constants.Auto)
|
686
818
|
step.setArgument('hot_tub_heater_usage_multiplier', 1.0)
|
687
|
-
elsif ['base-bldgtype-single-family-attached.osw'].include? osw_file
|
688
|
-
step.setArgument('geometry_unit_type', HPXML::ResidentialTypeSFA)
|
689
|
-
step.setArgument('geometry_cfa', 1800.0)
|
690
|
-
step.setArgument('geometry_corridor_position', 'None')
|
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
819
|
elsif ['base-appliances-coal.osw'].include? osw_file
|
729
820
|
step.setArgument('clothes_dryer_fuel_type', HPXML::FuelTypeCoal)
|
730
|
-
step.setArgument('
|
731
|
-
step.setArgument('clothes_dryer_control_type', HPXML::ClothesDryerControlTypeMoisture)
|
821
|
+
step.setArgument('clothes_dryer_efficiency', '3.3')
|
732
822
|
step.setArgument('clothes_dryer_vented_flow_rate', Constants.Auto)
|
733
823
|
step.setArgument('cooking_range_oven_fuel_type', HPXML::FuelTypeCoal)
|
734
824
|
elsif ['base-appliances-dehumidifier.osw'].include? osw_file
|
735
|
-
step.setArgument('
|
825
|
+
step.setArgument('dehumidifier_type', HPXML::DehumidifierTypePortable)
|
736
826
|
elsif ['base-appliances-dehumidifier-50percent.osw'].include? osw_file
|
737
827
|
step.setArgument('dehumidifier_fraction_dehumidification_load_served', 0.5)
|
738
828
|
elsif ['base-appliances-dehumidifier-ief-portable.osw'].include? osw_file
|
739
829
|
step.setArgument('dehumidifier_efficiency_type', 'IntegratedEnergyFactor')
|
830
|
+
step.setArgument('dehumidifier_efficiency', '1.5')
|
740
831
|
elsif ['base-appliances-dehumidifier-ief-whole-home.osw'].include? osw_file
|
741
832
|
step.setArgument('dehumidifier_type', HPXML::DehumidifierTypeWholeHome)
|
742
833
|
elsif ['base-appliances-gas.osw'].include? osw_file
|
743
834
|
step.setArgument('clothes_dryer_fuel_type', HPXML::FuelTypeNaturalGas)
|
744
|
-
step.setArgument('
|
745
|
-
step.setArgument('clothes_dryer_control_type', HPXML::ClothesDryerControlTypeMoisture)
|
835
|
+
step.setArgument('clothes_dryer_efficiency', '3.3')
|
746
836
|
step.setArgument('clothes_dryer_vented_flow_rate', Constants.Auto)
|
747
837
|
step.setArgument('cooking_range_oven_fuel_type', HPXML::FuelTypeNaturalGas)
|
748
838
|
elsif ['base-appliances-modified.osw'].include? osw_file
|
749
839
|
step.setArgument('clothes_washer_efficiency_type', 'ModifiedEnergyFactor')
|
750
|
-
step.setArgument('
|
840
|
+
step.setArgument('clothes_washer_efficiency', '1.65')
|
751
841
|
step.setArgument('clothes_dryer_efficiency_type', 'EnergyFactor')
|
752
|
-
step.setArgument('
|
753
|
-
step.setArgument('clothes_dryer_control_type', HPXML::ClothesDryerControlTypeMoisture)
|
842
|
+
step.setArgument('clothes_dryer_efficiency', '4.29')
|
754
843
|
step.setArgument('clothes_dryer_vented_flow_rate', '0.0')
|
755
844
|
step.setArgument('dishwasher_efficiency_type', 'EnergyFactor')
|
756
|
-
step.setArgument('
|
845
|
+
step.setArgument('dishwasher_efficiency', 0.7)
|
757
846
|
step.setArgument('dishwasher_place_setting_capacity', '6')
|
758
847
|
elsif ['base-appliances-none.osw'].include? osw_file
|
759
|
-
step.setArgument('
|
760
|
-
step.setArgument('
|
761
|
-
step.setArgument('
|
762
|
-
step.setArgument('
|
763
|
-
step.setArgument('
|
848
|
+
step.setArgument('clothes_washer_location', 'none')
|
849
|
+
step.setArgument('clothes_dryer_location', 'none')
|
850
|
+
step.setArgument('dishwasher_location', 'none')
|
851
|
+
step.setArgument('refrigerator_location', 'none')
|
852
|
+
step.setArgument('cooking_range_oven_location', 'none')
|
764
853
|
elsif ['base-appliances-oil.osw'].include? osw_file
|
765
854
|
step.setArgument('clothes_dryer_fuel_type', HPXML::FuelTypeOil)
|
766
|
-
step.setArgument('
|
767
|
-
step.setArgument('clothes_dryer_control_type', HPXML::ClothesDryerControlTypeMoisture)
|
855
|
+
step.setArgument('clothes_dryer_efficiency', '3.3')
|
768
856
|
step.setArgument('clothes_dryer_vented_flow_rate', Constants.Auto)
|
769
857
|
step.setArgument('cooking_range_oven_fuel_type', HPXML::FuelTypeOil)
|
770
858
|
elsif ['base-appliances-propane.osw'].include? osw_file
|
771
859
|
step.setArgument('clothes_dryer_fuel_type', HPXML::FuelTypePropane)
|
772
|
-
step.setArgument('
|
773
|
-
step.setArgument('clothes_dryer_control_type', HPXML::ClothesDryerControlTypeMoisture)
|
860
|
+
step.setArgument('clothes_dryer_efficiency', '3.3')
|
774
861
|
step.setArgument('clothes_dryer_vented_flow_rate', Constants.Auto)
|
775
862
|
step.setArgument('cooking_range_oven_fuel_type', HPXML::FuelTypePropane)
|
776
863
|
elsif ['base-appliances-wood.osw'].include? osw_file
|
777
864
|
step.setArgument('clothes_dryer_fuel_type', HPXML::FuelTypeWoodCord)
|
778
|
-
step.setArgument('
|
779
|
-
step.setArgument('clothes_dryer_control_type', HPXML::ClothesDryerControlTypeMoisture)
|
865
|
+
step.setArgument('clothes_dryer_efficiency', '3.3')
|
780
866
|
step.setArgument('clothes_dryer_vented_flow_rate', Constants.Auto)
|
781
867
|
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
868
|
elsif ['base-atticroof-flat.osw'].include? osw_file
|
803
869
|
step.setArgument('geometry_roof_type', 'flat')
|
804
870
|
step.setArgument('roof_assembly_r', 25.8)
|
@@ -807,7 +873,7 @@ def get_values(osw_file, step)
|
|
807
873
|
step.setArgument('ducts_supply_location', HPXML::LocationBasementConditioned)
|
808
874
|
step.setArgument('ducts_return_location', HPXML::LocationBasementConditioned)
|
809
875
|
elsif ['base-atticroof-radiant-barrier.osw'].include? osw_file
|
810
|
-
step.setArgument('roof_radiant_barrier',
|
876
|
+
step.setArgument('roof_radiant_barrier', true)
|
811
877
|
step.setArgument('roof_radiant_barrier_grade', '2')
|
812
878
|
elsif ['base-atticroof-unvented-insulated-roof.osw'].include? osw_file
|
813
879
|
step.setArgument('ceiling_assembly_r', 2.1)
|
@@ -817,6 +883,80 @@ def get_values(osw_file, step)
|
|
817
883
|
step.setArgument('water_heater_location', HPXML::LocationAtticVented)
|
818
884
|
step.setArgument('ducts_supply_location', HPXML::LocationAtticVented)
|
819
885
|
step.setArgument('ducts_return_location', HPXML::LocationAtticVented)
|
886
|
+
elsif ['base-bldgtype-single-family-attached.osw'].include? osw_file
|
887
|
+
step.setArgument('geometry_unit_type', HPXML::ResidentialTypeSFA)
|
888
|
+
step.setArgument('geometry_cfa', 1800.0)
|
889
|
+
step.setArgument('geometry_corridor_position', 'None')
|
890
|
+
step.setArgument('geometry_building_num_units', 3)
|
891
|
+
step.setArgument('geometry_horizontal_location', 'Left')
|
892
|
+
step.setArgument('window_front_wwr', 0.18)
|
893
|
+
step.setArgument('window_back_wwr', 0.18)
|
894
|
+
step.setArgument('window_left_wwr', 0.18)
|
895
|
+
step.setArgument('window_right_wwr', 0.18)
|
896
|
+
step.setArgument('window_area_front', 0)
|
897
|
+
step.setArgument('window_area_back', 0)
|
898
|
+
step.setArgument('window_area_left', 0)
|
899
|
+
step.setArgument('window_area_right', 0)
|
900
|
+
step.setArgument('plug_loads_other_annual_kwh', '1638.0')
|
901
|
+
elsif ['base-bldgtype-multifamily.osw'].include? osw_file
|
902
|
+
step.setArgument('geometry_unit_type', HPXML::ResidentialTypeApartment)
|
903
|
+
step.setArgument('geometry_cfa', 900.0)
|
904
|
+
step.setArgument('geometry_corridor_position', 'None')
|
905
|
+
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeBasementUnconditioned)
|
906
|
+
step.setArgument('geometry_level', 'Middle')
|
907
|
+
step.setArgument('geometry_horizontal_location', 'Left')
|
908
|
+
step.setArgument('geometry_building_num_units', 50)
|
909
|
+
step.setArgument('geometry_building_num_bedrooms', 50 * 3)
|
910
|
+
step.setArgument('geometry_num_floors_above_grade', 5)
|
911
|
+
step.setArgument('window_front_wwr', 0.18)
|
912
|
+
step.setArgument('window_back_wwr', 0.18)
|
913
|
+
step.setArgument('window_left_wwr', 0.18)
|
914
|
+
step.setArgument('window_right_wwr', 0.18)
|
915
|
+
step.setArgument('window_area_front', 0)
|
916
|
+
step.setArgument('window_area_back', 0)
|
917
|
+
step.setArgument('window_area_left', 0)
|
918
|
+
step.setArgument('window_area_right', 0)
|
919
|
+
step.setArgument('ducts_supply_leakage_value', 0.0)
|
920
|
+
step.setArgument('ducts_return_leakage_value', 0.0)
|
921
|
+
step.setArgument('ducts_supply_location', HPXML::LocationLivingSpace)
|
922
|
+
step.setArgument('ducts_return_location', HPXML::LocationLivingSpace)
|
923
|
+
step.setArgument('ducts_supply_insulation_r', 0.0)
|
924
|
+
step.setArgument('ducts_return_insulation_r', 0.0)
|
925
|
+
step.setArgument('ducts_number_of_return_registers', '1')
|
926
|
+
step.setArgument('door_area', 20.0)
|
927
|
+
step.setArgument('plug_loads_other_annual_kwh', '819.0')
|
928
|
+
elsif ['base-bldgtype-multifamily-shared-mechvent.osw'].include? osw_file
|
929
|
+
step.setArgument('mech_vent_fan_type', HPXML::MechVentTypeSupply)
|
930
|
+
step.setArgument('mech_vent_flow_rate', 800)
|
931
|
+
step.setArgument('mech_vent_fan_power', 240)
|
932
|
+
step.setArgument('mech_vent_num_units_served', 10)
|
933
|
+
step.setArgument('shared_mech_vent_frac_recirculation', 0.5)
|
934
|
+
step.setArgument('mech_vent_fan_type_2', HPXML::MechVentTypeExhaust)
|
935
|
+
step.setArgument('mech_vent_flow_rate_2', 72)
|
936
|
+
step.setArgument('mech_vent_fan_power_2', 26)
|
937
|
+
elsif ['base-bldgtype-multifamily-shared-mechvent-preconditioning.osw'].include? osw_file
|
938
|
+
step.setArgument('shared_mech_vent_preheating_fuel', HPXML::FuelTypeNaturalGas)
|
939
|
+
step.setArgument('shared_mech_vent_preheating_efficiency', 0.92)
|
940
|
+
step.setArgument('shared_mech_vent_preheating_fraction_heat_load_served', 0.7)
|
941
|
+
step.setArgument('shared_mech_vent_precooling_fuel', HPXML::FuelTypeElectricity)
|
942
|
+
step.setArgument('shared_mech_vent_precooling_efficiency', 4.0)
|
943
|
+
step.setArgument('shared_mech_vent_precooling_fraction_cool_load_served', 0.8)
|
944
|
+
elsif ['base-bldgtype-multifamily-shared-pv.osw'].include? osw_file
|
945
|
+
step.setArgument('pv_system_num_units_served_1', 6)
|
946
|
+
step.setArgument('pv_system_location_1', HPXML::LocationGround)
|
947
|
+
step.setArgument('pv_system_module_type_1', HPXML::PVModuleTypeStandard)
|
948
|
+
step.setArgument('pv_system_tracking_1', HPXML::PVTrackingTypeFixed)
|
949
|
+
step.setArgument('pv_system_array_azimuth_1', 225)
|
950
|
+
step.setArgument('pv_system_array_tilt_1', '30')
|
951
|
+
step.setArgument('pv_system_max_power_output_1', 30000)
|
952
|
+
step.setArgument('pv_system_inverter_efficiency_1', 0.96)
|
953
|
+
step.setArgument('pv_system_system_losses_fraction_1', 0.14)
|
954
|
+
elsif ['base-bldgtype-multifamily-shared-water-heater.osw'].include? osw_file
|
955
|
+
step.setArgument('water_heater_fuel_type', HPXML::FuelTypeNaturalGas)
|
956
|
+
step.setArgument('water_heater_num_units_served', 6)
|
957
|
+
step.setArgument('water_heater_tank_volume', '120')
|
958
|
+
step.setArgument('water_heater_efficiency', 0.59)
|
959
|
+
step.setArgument('water_heater_recovery_efficiency', '0.76')
|
820
960
|
elsif ['base-dhw-combi-tankless.osw'].include? osw_file
|
821
961
|
step.setArgument('water_heater_type', HPXML::WaterHeaterTypeCombiTankless)
|
822
962
|
step.setArgument('water_heater_tank_volume', Constants.Auto)
|
@@ -846,7 +986,7 @@ def get_values(osw_file, step)
|
|
846
986
|
step.setArgument('water_fixtures_sink_low_flow', true)
|
847
987
|
elsif ['base-dhw-none.osw'].include? osw_file
|
848
988
|
step.setArgument('water_heater_type', 'none')
|
849
|
-
step.setArgument('
|
989
|
+
step.setArgument('dishwasher_location', 'none')
|
850
990
|
elsif ['base-dhw-recirc-demand.osw'].include? osw_file
|
851
991
|
step.setArgument('dhw_distribution_system_type', HPXML::DHWDistTypeRecirc)
|
852
992
|
step.setArgument('dhw_distribution_recirc_control_type', HPXML::DHWRecirControlTypeSensor)
|
@@ -863,13 +1003,6 @@ def get_values(osw_file, step)
|
|
863
1003
|
elsif ['base-dhw-recirc-timer.osw'].include? osw_file
|
864
1004
|
step.setArgument('dhw_distribution_system_type', HPXML::DHWDistTypeRecirc)
|
865
1005
|
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
1006
|
elsif ['base-dhw-solar-direct-evacuated-tube.osw'].include? osw_file
|
874
1007
|
step.setArgument('solar_thermal_system_type', 'hot water')
|
875
1008
|
step.setArgument('solar_thermal_storage_volume', '60')
|
@@ -905,11 +1038,9 @@ def get_values(osw_file, step)
|
|
905
1038
|
elsif ['base-dhw-tank-coal.osw'].include? osw_file
|
906
1039
|
step.setArgument('water_heater_fuel_type', HPXML::FuelTypeCoal)
|
907
1040
|
step.setArgument('water_heater_tank_volume', '50')
|
908
|
-
step.setArgument('water_heater_heating_capacity', '40000')
|
909
1041
|
step.setArgument('water_heater_efficiency', 0.59)
|
910
1042
|
elsif ['base-dhw-tank-elec-uef.osw'].include? osw_file
|
911
1043
|
step.setArgument('water_heater_tank_volume', '30')
|
912
|
-
step.setArgument('water_heater_heating_capacity', '15354')
|
913
1044
|
step.setArgument('water_heater_efficiency_type', 'UniformEnergyFactor')
|
914
1045
|
step.setArgument('water_heater_efficiency', 0.93)
|
915
1046
|
step.setArgument('water_heater_first_hour_rating', 46)
|
@@ -917,11 +1048,9 @@ def get_values(osw_file, step)
|
|
917
1048
|
elsif ['base-dhw-tank-gas.osw'].include? osw_file
|
918
1049
|
step.setArgument('water_heater_fuel_type', HPXML::FuelTypeNaturalGas)
|
919
1050
|
step.setArgument('water_heater_tank_volume', '50')
|
920
|
-
step.setArgument('water_heater_heating_capacity', '40000')
|
921
1051
|
step.setArgument('water_heater_efficiency', 0.59)
|
922
1052
|
elsif ['base-dhw-tank-gas-uef.osw'].include? osw_file
|
923
1053
|
step.setArgument('water_heater_tank_volume', '30')
|
924
|
-
step.setArgument('water_heater_heating_capacity', '30000')
|
925
1054
|
step.setArgument('water_heater_efficiency_type', 'UniformEnergyFactor')
|
926
1055
|
step.setArgument('water_heater_efficiency', 0.59)
|
927
1056
|
step.setArgument('water_heater_first_hour_rating', 56)
|
@@ -930,29 +1059,24 @@ def get_values(osw_file, step)
|
|
930
1059
|
step.setArgument('water_heater_fuel_type', HPXML::FuelTypeNaturalGas)
|
931
1060
|
step.setArgument('water_heater_location', HPXML::LocationOtherExterior)
|
932
1061
|
step.setArgument('water_heater_tank_volume', '50')
|
933
|
-
step.setArgument('water_heater_heating_capacity', '40000')
|
934
1062
|
step.setArgument('water_heater_efficiency', 0.59)
|
935
1063
|
elsif ['base-dhw-tank-heat-pump.osw'].include? osw_file
|
936
1064
|
step.setArgument('water_heater_type', HPXML::WaterHeaterTypeHeatPump)
|
937
1065
|
step.setArgument('water_heater_tank_volume', '80')
|
938
|
-
step.setArgument('water_heater_heating_capacity', Constants.Auto)
|
939
1066
|
step.setArgument('water_heater_efficiency', 2.3)
|
940
1067
|
elsif ['base-dhw-tank-heat-pump-outside.osw'].include? osw_file
|
941
1068
|
step.setArgument('water_heater_type', HPXML::WaterHeaterTypeHeatPump)
|
942
1069
|
step.setArgument('water_heater_location', HPXML::LocationOtherExterior)
|
943
1070
|
step.setArgument('water_heater_tank_volume', '80')
|
944
|
-
step.setArgument('water_heater_heating_capacity', Constants.Auto)
|
945
1071
|
step.setArgument('water_heater_efficiency', 2.3)
|
946
1072
|
elsif ['base-dhw-tank-heat-pump-uef.osw'].include? osw_file
|
947
1073
|
step.setArgument('water_heater_tank_volume', '50')
|
948
|
-
step.setArgument('water_heater_heating_capacity', '18767')
|
949
1074
|
step.setArgument('water_heater_efficiency_type', 'UniformEnergyFactor')
|
950
1075
|
step.setArgument('water_heater_efficiency', 3.75)
|
951
1076
|
step.setArgument('water_heater_first_hour_rating', 60)
|
952
1077
|
elsif ['base-dhw-tank-heat-pump-with-solar.osw'].include? osw_file
|
953
1078
|
step.setArgument('water_heater_type', HPXML::WaterHeaterTypeHeatPump)
|
954
1079
|
step.setArgument('water_heater_tank_volume', '80')
|
955
|
-
step.setArgument('water_heater_heating_capacity', Constants.Auto)
|
956
1080
|
step.setArgument('water_heater_efficiency', 2.3)
|
957
1081
|
step.setArgument('solar_thermal_system_type', 'hot water')
|
958
1082
|
step.setArgument('solar_thermal_collector_loop_type', HPXML::SolarThermalLoopTypeIndirect)
|
@@ -963,7 +1087,6 @@ def get_values(osw_file, step)
|
|
963
1087
|
elsif ['base-dhw-tank-heat-pump-with-solar-fraction.osw'].include? osw_file
|
964
1088
|
step.setArgument('water_heater_type', HPXML::WaterHeaterTypeHeatPump)
|
965
1089
|
step.setArgument('water_heater_tank_volume', '80')
|
966
|
-
step.setArgument('water_heater_heating_capacity', Constants.Auto)
|
967
1090
|
step.setArgument('water_heater_efficiency', 2.3)
|
968
1091
|
step.setArgument('solar_thermal_system_type', 'hot water')
|
969
1092
|
step.setArgument('solar_thermal_solar_fraction', 0.65)
|
@@ -1013,12 +1136,10 @@ def get_values(osw_file, step)
|
|
1013
1136
|
elsif ['base-dhw-tank-oil.osw'].include? osw_file
|
1014
1137
|
step.setArgument('water_heater_fuel_type', HPXML::FuelTypeOil)
|
1015
1138
|
step.setArgument('water_heater_tank_volume', '50')
|
1016
|
-
step.setArgument('water_heater_heating_capacity', '40000')
|
1017
1139
|
step.setArgument('water_heater_efficiency', 0.59)
|
1018
1140
|
elsif ['base-dhw-tank-wood.osw'].include? osw_file
|
1019
1141
|
step.setArgument('water_heater_fuel_type', HPXML::FuelTypeWoodCord)
|
1020
1142
|
step.setArgument('water_heater_tank_volume', '50')
|
1021
|
-
step.setArgument('water_heater_heating_capacity', '40000')
|
1022
1143
|
step.setArgument('water_heater_efficiency', 0.59)
|
1023
1144
|
elsif ['base-enclosure-2stories.osw'].include? osw_file
|
1024
1145
|
step.setArgument('geometry_cfa', 4050.0)
|
@@ -1027,15 +1148,11 @@ def get_values(osw_file, step)
|
|
1027
1148
|
step.setArgument('window_area_back', 216.0)
|
1028
1149
|
step.setArgument('window_area_left', 144.0)
|
1029
1150
|
step.setArgument('window_area_right', 144.0)
|
1151
|
+
step.setArgument('ducts_number_of_return_registers', '3')
|
1030
1152
|
step.setArgument('plug_loads_other_annual_kwh', '3685.5')
|
1031
1153
|
elsif ['base-enclosure-2stories-garage.osw'].include? osw_file
|
1032
1154
|
step.setArgument('geometry_cfa', 3250.0)
|
1033
|
-
step.setArgument('geometry_num_floors_above_grade', 2)
|
1034
1155
|
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
1156
|
step.setArgument('ducts_supply_surface_area', '112.5')
|
1040
1157
|
step.setArgument('ducts_return_surface_area', '37.5')
|
1041
1158
|
step.setArgument('plug_loads_other_annual_kwh', '2957.5')
|
@@ -1043,13 +1160,11 @@ def get_values(osw_file, step)
|
|
1043
1160
|
step.setArgument('geometry_num_bedrooms', 1)
|
1044
1161
|
step.setArgument('geometry_num_bathrooms', '1')
|
1045
1162
|
step.setArgument('geometry_num_occupants', '1')
|
1046
|
-
step.setArgument('water_heater_heating_capacity', '18767')
|
1047
1163
|
step.setArgument('plug_loads_television_annual_kwh', '482.0')
|
1048
1164
|
elsif ['base-enclosure-beds-2.osw'].include? osw_file
|
1049
1165
|
step.setArgument('geometry_num_bedrooms', 2)
|
1050
1166
|
step.setArgument('geometry_num_bathrooms', '1')
|
1051
1167
|
step.setArgument('geometry_num_occupants', '2')
|
1052
|
-
step.setArgument('water_heater_heating_capacity', '18767')
|
1053
1168
|
step.setArgument('plug_loads_television_annual_kwh', '551.0')
|
1054
1169
|
elsif ['base-enclosure-beds-4.osw'].include? osw_file
|
1055
1170
|
step.setArgument('geometry_num_bedrooms', 4)
|
@@ -1082,7 +1197,7 @@ def get_values(osw_file, step)
|
|
1082
1197
|
step.setArgument('air_leakage_units', HPXML::UnitsCFM)
|
1083
1198
|
step.setArgument('air_leakage_value', 1080)
|
1084
1199
|
elsif ['base-enclosure-infil-flue.osw'].include? osw_file
|
1085
|
-
step.setArgument('
|
1200
|
+
step.setArgument('geometry_has_flue_or_chimney', 'true')
|
1086
1201
|
elsif ['base-enclosure-infil-natural-ach.osw'].include? osw_file
|
1087
1202
|
step.setArgument('air_leakage_units', HPXML::UnitsACHNatural)
|
1088
1203
|
step.setArgument('air_leakage_value', 0.67)
|
@@ -1127,14 +1242,12 @@ def get_values(osw_file, step)
|
|
1127
1242
|
step.setArgument('refrigerator_location', HPXML::LocationOtherNonFreezingSpace)
|
1128
1243
|
step.setArgument('cooking_range_oven_location', HPXML::LocationOtherNonFreezingSpace)
|
1129
1244
|
elsif ['base-enclosure-overhangs.osw'].include? osw_file
|
1245
|
+
step.setArgument('overhangs_front_distance_to_top_of_window', 1.0)
|
1130
1246
|
step.setArgument('overhangs_back_depth', 2.5)
|
1131
1247
|
step.setArgument('overhangs_left_depth', 1.5)
|
1132
1248
|
step.setArgument('overhangs_left_distance_to_top_of_window', 2.0)
|
1133
1249
|
step.setArgument('overhangs_right_depth', 1.5)
|
1134
1250
|
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
1251
|
elsif ['base-enclosure-windows-none.osw'].include? osw_file
|
1139
1252
|
step.setArgument('window_area_front', 0)
|
1140
1253
|
step.setArgument('window_area_back', 0)
|
@@ -1143,7 +1256,9 @@ def get_values(osw_file, step)
|
|
1143
1256
|
elsif ['base-foundation-ambient.osw'].include? osw_file
|
1144
1257
|
step.setArgument('geometry_cfa', 1350.0)
|
1145
1258
|
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeAmbient)
|
1259
|
+
step.setArgument('geometry_rim_joist_height', 0)
|
1146
1260
|
step.setArgument('floor_assembly_r', 18.7)
|
1261
|
+
step.setArgument('ducts_number_of_return_registers', '1')
|
1147
1262
|
step.setArgument('plug_loads_other_annual_kwh', '1228.5')
|
1148
1263
|
elsif ['base-foundation-conditioned-basement-slab-insulation.osw'].include? osw_file
|
1149
1264
|
step.setArgument('slab_under_insulation_r', 10)
|
@@ -1162,6 +1277,7 @@ def get_values(osw_file, step)
|
|
1162
1277
|
step.setArgument('slab_carpet_r', '2.5')
|
1163
1278
|
step.setArgument('ducts_supply_location', HPXML::LocationUnderSlab)
|
1164
1279
|
step.setArgument('ducts_return_location', HPXML::LocationUnderSlab)
|
1280
|
+
step.setArgument('ducts_number_of_return_registers', '1')
|
1165
1281
|
step.setArgument('plug_loads_other_annual_kwh', '1228.5')
|
1166
1282
|
elsif ['base-foundation-unconditioned-basement.osw'].include? osw_file
|
1167
1283
|
step.setArgument('geometry_cfa', 1350.0)
|
@@ -1169,8 +1285,10 @@ def get_values(osw_file, step)
|
|
1169
1285
|
step.setArgument('floor_assembly_r', 18.7)
|
1170
1286
|
step.setArgument('foundation_wall_insulation_r', 0)
|
1171
1287
|
step.setArgument('foundation_wall_insulation_distance_to_bottom', 0)
|
1288
|
+
step.setArgument('rim_joist_assembly_r', 4.0)
|
1172
1289
|
step.setArgument('ducts_supply_location', HPXML::LocationBasementUnconditioned)
|
1173
1290
|
step.setArgument('ducts_return_location', HPXML::LocationBasementUnconditioned)
|
1291
|
+
step.setArgument('ducts_number_of_return_registers', '1')
|
1174
1292
|
step.setArgument('water_heater_location', HPXML::LocationBasementUnconditioned)
|
1175
1293
|
step.setArgument('clothes_washer_location', HPXML::LocationBasementUnconditioned)
|
1176
1294
|
step.setArgument('clothes_dryer_location', HPXML::LocationBasementUnconditioned)
|
@@ -1199,28 +1317,29 @@ def get_values(osw_file, step)
|
|
1199
1317
|
step.setArgument('floor_assembly_r', 2.1)
|
1200
1318
|
step.setArgument('foundation_wall_insulation_r', 8.9)
|
1201
1319
|
step.setArgument('foundation_wall_insulation_distance_to_bottom', 4)
|
1320
|
+
step.setArgument('rim_joist_assembly_r', 23.0)
|
1202
1321
|
elsif ['base-foundation-unvented-crawlspace.osw'].include? osw_file
|
1203
1322
|
step.setArgument('geometry_cfa', 1350.0)
|
1204
1323
|
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeCrawlspaceUnvented)
|
1205
1324
|
step.setArgument('geometry_foundation_height', 4.0)
|
1206
|
-
step.setArgument('geometry_foundation_height_above_grade', 1.0)
|
1207
1325
|
step.setArgument('floor_assembly_r', 18.7)
|
1208
1326
|
step.setArgument('foundation_wall_insulation_distance_to_bottom', 4.0)
|
1209
1327
|
step.setArgument('slab_carpet_r', '2.5')
|
1210
1328
|
step.setArgument('ducts_supply_location', HPXML::LocationCrawlspaceUnvented)
|
1211
1329
|
step.setArgument('ducts_return_location', HPXML::LocationCrawlspaceUnvented)
|
1330
|
+
step.setArgument('ducts_number_of_return_registers', '1')
|
1212
1331
|
step.setArgument('water_heater_location', HPXML::LocationCrawlspaceUnvented)
|
1213
1332
|
step.setArgument('plug_loads_other_annual_kwh', '1228.5')
|
1214
1333
|
elsif ['base-foundation-vented-crawlspace.osw'].include? osw_file
|
1215
1334
|
step.setArgument('geometry_cfa', 1350.0)
|
1216
1335
|
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeCrawlspaceVented)
|
1217
1336
|
step.setArgument('geometry_foundation_height', 4.0)
|
1218
|
-
step.setArgument('geometry_foundation_height_above_grade', 1.0)
|
1219
1337
|
step.setArgument('floor_assembly_r', 18.7)
|
1220
1338
|
step.setArgument('foundation_wall_insulation_distance_to_bottom', 4.0)
|
1221
1339
|
step.setArgument('slab_carpet_r', '2.5')
|
1222
1340
|
step.setArgument('ducts_supply_location', HPXML::LocationCrawlspaceVented)
|
1223
1341
|
step.setArgument('ducts_return_location', HPXML::LocationCrawlspaceVented)
|
1342
|
+
step.setArgument('ducts_number_of_return_registers', '1')
|
1224
1343
|
step.setArgument('water_heater_location', HPXML::LocationCrawlspaceVented)
|
1225
1344
|
step.setArgument('plug_loads_other_annual_kwh', '1228.5')
|
1226
1345
|
elsif ['base-foundation-walkout-basement.osw'].include? osw_file
|
@@ -1231,29 +1350,36 @@ def get_values(osw_file, step)
|
|
1231
1350
|
step.setArgument('cooling_system_type', 'none')
|
1232
1351
|
step.setArgument('heat_pump_type', HPXML::HVACTypeHeatPumpAirToAir)
|
1233
1352
|
step.setArgument('heat_pump_heating_capacity', '42000.0')
|
1234
|
-
step.setArgument('
|
1353
|
+
step.setArgument('heat_pump_heating_capacity_17_f', '26460.0')
|
1235
1354
|
step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeElectricity)
|
1236
|
-
|
1355
|
+
elsif ['base-hvac-air-to-air-heat-pump-1-speed-cooling-only.osw'].include? osw_file
|
1356
|
+
step.setArgument('heat_pump_heating_capacity', '0.0')
|
1357
|
+
step.setArgument('heat_pump_heating_capacity_17_f', '0.0')
|
1358
|
+
step.setArgument('heat_pump_fraction_heat_load_served', 0)
|
1359
|
+
step.setArgument('heat_pump_backup_fuel', 'none')
|
1360
|
+
elsif ['base-hvac-air-to-air-heat-pump-1-speed-heating-only.osw'].include? osw_file
|
1361
|
+
step.setArgument('heat_pump_cooling_capacity', '0.0')
|
1362
|
+
step.setArgument('heat_pump_fraction_cool_load_served', 0)
|
1237
1363
|
elsif ['base-hvac-air-to-air-heat-pump-2-speed.osw'].include? osw_file
|
1238
1364
|
step.setArgument('heating_system_type', 'none')
|
1239
1365
|
step.setArgument('cooling_system_type', 'none')
|
1240
1366
|
step.setArgument('heat_pump_type', HPXML::HVACTypeHeatPumpAirToAir)
|
1241
|
-
step.setArgument('
|
1367
|
+
step.setArgument('heat_pump_heating_efficiency', 9.3)
|
1242
1368
|
step.setArgument('heat_pump_cooling_compressor_type', HPXML::HVACCompressorTypeTwoStage)
|
1243
1369
|
step.setArgument('heat_pump_heating_capacity', '42000.0')
|
1244
|
-
step.setArgument('
|
1245
|
-
step.setArgument('
|
1370
|
+
step.setArgument('heat_pump_heating_capacity_17_f', '24780.0')
|
1371
|
+
step.setArgument('heat_pump_cooling_efficiency', 18.0)
|
1246
1372
|
step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeElectricity)
|
1247
1373
|
elsif ['base-hvac-air-to-air-heat-pump-var-speed.osw'].include? osw_file
|
1248
1374
|
step.setArgument('heating_system_type', 'none')
|
1249
1375
|
step.setArgument('cooling_system_type', 'none')
|
1250
1376
|
step.setArgument('heat_pump_type', HPXML::HVACTypeHeatPumpAirToAir)
|
1251
|
-
step.setArgument('
|
1377
|
+
step.setArgument('heat_pump_heating_efficiency', 10.0)
|
1252
1378
|
step.setArgument('heat_pump_cooling_compressor_type', HPXML::HVACCompressorTypeVariableSpeed)
|
1253
1379
|
step.setArgument('heat_pump_cooling_sensible_heat_fraction', 0.78)
|
1254
1380
|
step.setArgument('heat_pump_heating_capacity', '42000.0')
|
1255
|
-
step.setArgument('
|
1256
|
-
step.setArgument('
|
1381
|
+
step.setArgument('heat_pump_heating_capacity_17_f', '26880.0')
|
1382
|
+
step.setArgument('heat_pump_cooling_efficiency', 22.0)
|
1257
1383
|
step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeElectricity)
|
1258
1384
|
elsif ['base-hvac-boiler-coal-only.osw'].include? osw_file
|
1259
1385
|
step.setArgument('heating_system_type', HPXML::HVACTypeBoiler)
|
@@ -1266,11 +1392,8 @@ def get_values(osw_file, step)
|
|
1266
1392
|
step.setArgument('cooling_system_type', 'none')
|
1267
1393
|
elsif ['base-hvac-boiler-gas-central-ac-1-speed.osw'].include? osw_file
|
1268
1394
|
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
1395
|
elsif ['base-hvac-boiler-gas-only.osw'].include? osw_file
|
1272
1396
|
step.setArgument('heating_system_type', HPXML::HVACTypeBoiler)
|
1273
|
-
step.setArgument('heating_system_electric_auxiliary_energy', 200.0)
|
1274
1397
|
step.setArgument('cooling_system_type', 'none')
|
1275
1398
|
elsif ['base-hvac-boiler-oil-only.osw'].include? osw_file
|
1276
1399
|
step.setArgument('heating_system_type', HPXML::HVACTypeBoiler)
|
@@ -1286,29 +1409,27 @@ def get_values(osw_file, step)
|
|
1286
1409
|
step.setArgument('cooling_system_type', 'none')
|
1287
1410
|
elsif ['base-hvac-central-ac-only-1-speed.osw'].include? osw_file
|
1288
1411
|
step.setArgument('heating_system_type', 'none')
|
1289
|
-
step.setArgument('cooling_system_fan_power_watts_per_cfm', 0.45)
|
1290
1412
|
elsif ['base-hvac-central-ac-only-2-speed.osw'].include? osw_file
|
1291
1413
|
step.setArgument('heating_system_type', 'none')
|
1292
|
-
step.setArgument('
|
1414
|
+
step.setArgument('cooling_system_cooling_efficiency', 18.0)
|
1293
1415
|
step.setArgument('cooling_system_cooling_compressor_type', HPXML::HVACCompressorTypeTwoStage)
|
1294
1416
|
elsif ['base-hvac-central-ac-only-var-speed.osw'].include? osw_file
|
1295
1417
|
step.setArgument('heating_system_type', 'none')
|
1296
|
-
step.setArgument('
|
1418
|
+
step.setArgument('cooling_system_cooling_efficiency', 24.0)
|
1297
1419
|
step.setArgument('cooling_system_cooling_compressor_type', HPXML::HVACCompressorTypeVariableSpeed)
|
1298
1420
|
step.setArgument('cooling_system_cooling_sensible_heat_fraction', 0.78)
|
1299
1421
|
elsif ['base-hvac-central-ac-plus-air-to-air-heat-pump-heating.osw'].include? osw_file
|
1300
1422
|
step.setArgument('heat_pump_type', HPXML::HVACTypeHeatPumpAirToAir)
|
1301
|
-
step.setArgument('
|
1423
|
+
step.setArgument('heat_pump_heating_efficiency', 7.7)
|
1302
1424
|
step.setArgument('heat_pump_heating_capacity', '42000.0')
|
1303
|
-
step.setArgument('
|
1425
|
+
step.setArgument('heat_pump_heating_capacity_17_f', '26460.0')
|
1304
1426
|
step.setArgument('heat_pump_fraction_cool_load_served', 0)
|
1305
1427
|
step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeElectricity)
|
1306
|
-
step.setArgument('heat_pump_fan_power_watts_per_cfm', 0.45)
|
1307
1428
|
elsif ['base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.osw'].include? osw_file
|
1308
1429
|
step.setArgument('cooling_system_type', 'none')
|
1309
|
-
step.setArgument('
|
1430
|
+
step.setArgument('heat_pump_heating_efficiency', 7.7)
|
1310
1431
|
step.setArgument('heat_pump_heating_capacity', '42000.0')
|
1311
|
-
step.setArgument('
|
1432
|
+
step.setArgument('heat_pump_heating_capacity_17_f', '26460.0')
|
1312
1433
|
step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeNaturalGas)
|
1313
1434
|
step.setArgument('heat_pump_backup_heating_efficiency', 0.95)
|
1314
1435
|
step.setArgument('heat_pump_backup_heating_capacity', '36000.0')
|
@@ -1331,7 +1452,6 @@ def get_values(osw_file, step)
|
|
1331
1452
|
step.setArgument('heat_pump_backup_heating_efficiency', 0.95)
|
1332
1453
|
step.setArgument('heat_pump_backup_heating_capacity', '36000.0')
|
1333
1454
|
step.setArgument('heat_pump_backup_heating_switchover_temp', 25)
|
1334
|
-
step.setArgument('heat_pump_fan_power_watts_per_cfm', 0.2)
|
1335
1455
|
elsif ['base-hvac-ducts-leakage-percent.osw'].include? osw_file
|
1336
1456
|
step.setArgument('ducts_supply_leakage_units', HPXML::UnitsPercent)
|
1337
1457
|
step.setArgument('ducts_return_leakage_units', HPXML::UnitsPercent)
|
@@ -1351,28 +1471,28 @@ def get_values(osw_file, step)
|
|
1351
1471
|
step.setArgument('cooling_system_type', HPXML::HVACTypeEvaporativeCooler)
|
1352
1472
|
step.removeArgument('cooling_system_cooling_compressor_type')
|
1353
1473
|
step.removeArgument('cooling_system_cooling_sensible_heat_fraction')
|
1354
|
-
step.setArgument('cooling_system_fan_power_watts_per_cfm', 0.3)
|
1355
1474
|
elsif ['base-hvac-evap-cooler-only-ducted.osw'].include? osw_file
|
1356
1475
|
step.setArgument('heating_system_type', 'none')
|
1357
1476
|
step.setArgument('cooling_system_type', HPXML::HVACTypeEvaporativeCooler)
|
1358
1477
|
step.removeArgument('cooling_system_cooling_compressor_type')
|
1359
1478
|
step.removeArgument('cooling_system_cooling_sensible_heat_fraction')
|
1360
1479
|
step.setArgument('cooling_system_is_ducted', true)
|
1480
|
+
step.setArgument('ducts_return_leakage_value', 0.0)
|
1361
1481
|
elsif ['base-hvac-fireplace-wood-only.osw'].include? osw_file
|
1362
1482
|
step.setArgument('heating_system_type', HPXML::HVACTypeFireplace)
|
1363
1483
|
step.setArgument('heating_system_fuel', HPXML::FuelTypeWoodCord)
|
1364
1484
|
step.setArgument('heating_system_heating_efficiency', 0.8)
|
1365
|
-
step.setArgument('heating_system_fan_power_watts', 0.0)
|
1366
1485
|
step.setArgument('cooling_system_type', 'none')
|
1367
1486
|
elsif ['base-hvac-fixed-heater-gas-only.osw'].include? osw_file
|
1368
1487
|
step.setArgument('heating_system_type', HPXML::HVACTypeFixedHeater)
|
1369
1488
|
step.setArgument('heating_system_heating_efficiency', 1.0)
|
1370
|
-
step.setArgument('heating_system_fan_power_watts', 0.0)
|
1371
1489
|
elsif ['base-hvac-floor-furnace-propane-only.osw'].include? osw_file
|
1372
1490
|
step.setArgument('heating_system_type', HPXML::HVACTypeFloorFurnace)
|
1373
1491
|
step.setArgument('heating_system_fuel', HPXML::FuelTypePropane)
|
1374
1492
|
step.setArgument('heating_system_heating_efficiency', 0.8)
|
1375
|
-
step.setArgument('
|
1493
|
+
step.setArgument('cooling_system_type', 'none')
|
1494
|
+
elsif ['base-hvac-furnace-coal-only.osw'].include? osw_file
|
1495
|
+
step.setArgument('heating_system_fuel', HPXML::FuelTypeCoal)
|
1376
1496
|
step.setArgument('cooling_system_type', 'none')
|
1377
1497
|
elsif ['base-hvac-furnace-elec-central-ac-1-speed.osw'].include? osw_file
|
1378
1498
|
step.setArgument('heating_system_fuel', HPXML::FuelTypeElectricity)
|
@@ -1382,17 +1502,18 @@ def get_values(osw_file, step)
|
|
1382
1502
|
step.setArgument('heating_system_heating_efficiency', 1.0)
|
1383
1503
|
step.setArgument('cooling_system_type', 'none')
|
1384
1504
|
elsif ['base-hvac-furnace-gas-central-ac-2-speed.osw'].include? osw_file
|
1385
|
-
step.setArgument('
|
1505
|
+
step.setArgument('cooling_system_cooling_efficiency', 18.0)
|
1386
1506
|
step.setArgument('cooling_system_cooling_compressor_type', HPXML::HVACCompressorTypeTwoStage)
|
1387
1507
|
elsif ['base-hvac-furnace-gas-central-ac-var-speed.osw'].include? osw_file
|
1388
|
-
step.setArgument('
|
1508
|
+
step.setArgument('cooling_system_cooling_efficiency', 24.0)
|
1389
1509
|
step.setArgument('cooling_system_cooling_compressor_type', HPXML::HVACCompressorTypeVariableSpeed)
|
1390
1510
|
step.setArgument('cooling_system_cooling_sensible_heat_fraction', 0.78)
|
1391
1511
|
elsif ['base-hvac-furnace-gas-only.osw'].include? osw_file
|
1392
|
-
step.setArgument('heating_system_fan_power_watts_per_cfm', 0.45)
|
1393
1512
|
step.setArgument('cooling_system_type', 'none')
|
1394
1513
|
elsif ['base-hvac-furnace-gas-room-ac.osw'].include? osw_file
|
1395
1514
|
step.setArgument('cooling_system_type', HPXML::HVACTypeRoomAirConditioner)
|
1515
|
+
step.setArgument('cooling_system_cooling_efficiency_type', HPXML::UnitsEER)
|
1516
|
+
step.setArgument('cooling_system_cooling_efficiency', 8.5)
|
1396
1517
|
step.removeArgument('cooling_system_cooling_compressor_type')
|
1397
1518
|
step.setArgument('cooling_system_cooling_sensible_heat_fraction', 0.65)
|
1398
1519
|
elsif ['base-hvac-furnace-oil-only.osw'].include? osw_file
|
@@ -1407,10 +1528,9 @@ def get_values(osw_file, step)
|
|
1407
1528
|
elsif ['base-hvac-mini-split-air-conditioner-only-ducted.osw'].include? osw_file
|
1408
1529
|
step.setArgument('heating_system_type', 'none')
|
1409
1530
|
step.setArgument('cooling_system_type', HPXML::HVACTypeMiniSplitAirConditioner)
|
1410
|
-
step.setArgument('
|
1531
|
+
step.setArgument('cooling_system_cooling_efficiency', 19.0)
|
1411
1532
|
step.removeArgument('cooling_system_cooling_compressor_type')
|
1412
1533
|
step.setArgument('cooling_system_is_ducted', true)
|
1413
|
-
step.setArgument('cooling_system_fan_power_watts_per_cfm', 0.2)
|
1414
1534
|
step.setArgument('ducts_supply_leakage_value', 15.0)
|
1415
1535
|
step.setArgument('ducts_return_leakage_value', 5.0)
|
1416
1536
|
step.setArgument('ducts_supply_insulation_r', 0.0)
|
@@ -1422,25 +1542,72 @@ def get_values(osw_file, step)
|
|
1422
1542
|
step.setArgument('heating_system_type', 'none')
|
1423
1543
|
step.setArgument('cooling_system_type', 'none')
|
1424
1544
|
step.setArgument('heat_pump_type', HPXML::HVACTypeHeatPumpGroundToAir)
|
1425
|
-
step.setArgument('
|
1426
|
-
step.setArgument('
|
1545
|
+
step.setArgument('heat_pump_heating_efficiency_type', HPXML::UnitsCOP)
|
1546
|
+
step.setArgument('heat_pump_heating_efficiency', 3.6)
|
1547
|
+
step.setArgument('heat_pump_cooling_efficiency_type', HPXML::UnitsEER)
|
1548
|
+
step.setArgument('heat_pump_cooling_efficiency', 16.6)
|
1427
1549
|
step.removeArgument('heat_pump_cooling_compressor_type')
|
1428
1550
|
step.setArgument('heat_pump_heating_capacity', '42000.0')
|
1429
1551
|
step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeElectricity)
|
1430
|
-
|
1431
|
-
step.setArgument('
|
1552
|
+
elsif ['base-hvac-ground-to-air-heat-pump-cooling-only.osw'].include? osw_file
|
1553
|
+
step.setArgument('heat_pump_heating_capacity', '0.0')
|
1554
|
+
step.setArgument('heat_pump_fraction_heat_load_served', 0)
|
1555
|
+
step.setArgument('heat_pump_backup_fuel', 'none')
|
1556
|
+
elsif ['base-hvac-ground-to-air-heat-pump-heating-only.osw'].include? osw_file
|
1557
|
+
step.setArgument('heat_pump_cooling_capacity', '0.0')
|
1558
|
+
step.setArgument('heat_pump_fraction_cool_load_served', 0)
|
1559
|
+
elsif ['base-hvac-install-quality-none-furnace-gas-central-ac-1-speed.osw'].include? osw_file
|
1560
|
+
step.setArgument('heating_system_airflow_defect_ratio', 0.0)
|
1561
|
+
step.setArgument('cooling_system_airflow_defect_ratio', 0.0)
|
1562
|
+
step.setArgument('cooling_system_charge_defect_ratio', 0.0)
|
1563
|
+
elsif ['base-hvac-install-quality-airflow-defect-furnace-gas-central-ac-1-speed.osw'].include? osw_file
|
1564
|
+
step.setArgument('heating_system_airflow_defect_ratio', -0.25)
|
1565
|
+
step.setArgument('cooling_system_airflow_defect_ratio', -0.25)
|
1566
|
+
elsif ['base-hvac-install-quality-charge-defect-furnace-gas-central-ac-1-speed.osw'].include? osw_file
|
1567
|
+
step.setArgument('cooling_system_charge_defect_ratio', -0.25)
|
1568
|
+
elsif ['base-hvac-install-quality-all-air-to-air-heat-pump-1-speed.osw'].include? osw_file
|
1569
|
+
step.setArgument('heat_pump_airflow_defect_ratio', -0.25)
|
1570
|
+
step.setArgument('heat_pump_charge_defect_ratio', -0.25)
|
1571
|
+
elsif ['base-hvac-install-quality-all-air-to-air-heat-pump-2-speed.osw'].include? osw_file
|
1572
|
+
step.setArgument('heat_pump_airflow_defect_ratio', -0.25)
|
1573
|
+
step.setArgument('heat_pump_charge_defect_ratio', -0.25)
|
1574
|
+
elsif ['base-hvac-install-quality-all-air-to-air-heat-pump-var-speed.osw'].include? osw_file
|
1575
|
+
step.setArgument('heat_pump_airflow_defect_ratio', -0.25)
|
1576
|
+
step.setArgument('heat_pump_charge_defect_ratio', -0.25)
|
1577
|
+
elsif ['base-hvac-install-quality-all-furnace-gas-central-ac-1-speed.osw'].include? osw_file
|
1578
|
+
step.setArgument('heating_system_airflow_defect_ratio', -0.25)
|
1579
|
+
step.setArgument('cooling_system_airflow_defect_ratio', -0.25)
|
1580
|
+
step.setArgument('cooling_system_charge_defect_ratio', -0.25)
|
1581
|
+
elsif ['base-hvac-install-quality-all-furnace-gas-central-ac-2-speed.osw'].include? osw_file
|
1582
|
+
step.setArgument('heating_system_airflow_defect_ratio', -0.25)
|
1583
|
+
step.setArgument('cooling_system_airflow_defect_ratio', -0.25)
|
1584
|
+
step.setArgument('cooling_system_charge_defect_ratio', -0.25)
|
1585
|
+
elsif ['base-hvac-install-quality-all-furnace-gas-central-ac-var-speed.osw'].include? osw_file
|
1586
|
+
step.setArgument('heating_system_airflow_defect_ratio', -0.25)
|
1587
|
+
step.setArgument('cooling_system_airflow_defect_ratio', -0.25)
|
1588
|
+
step.setArgument('cooling_system_charge_defect_ratio', -0.25)
|
1589
|
+
elsif ['base-hvac-install-quality-all-furnace-gas-only.osw'].include? osw_file
|
1590
|
+
step.setArgument('heating_system_airflow_defect_ratio', -0.25)
|
1591
|
+
elsif ['base-hvac-install-quality-all-ground-to-air-heat-pump.osw'].include? osw_file
|
1592
|
+
step.setArgument('heat_pump_airflow_defect_ratio', -0.25)
|
1593
|
+
step.setArgument('heat_pump_charge_defect_ratio', 0.0)
|
1594
|
+
elsif ['base-hvac-install-quality-all-mini-split-heat-pump-ducted.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-mini-split-air-conditioner-only-ducted.osw'].include? osw_file
|
1598
|
+
step.setArgument('cooling_system_airflow_defect_ratio', -0.25)
|
1599
|
+
step.setArgument('cooling_system_charge_defect_ratio', -0.25)
|
1432
1600
|
elsif ['base-hvac-mini-split-heat-pump-ducted.osw'].include? osw_file
|
1433
1601
|
step.setArgument('heating_system_type', 'none')
|
1434
1602
|
step.setArgument('cooling_system_type', 'none')
|
1435
1603
|
step.setArgument('heat_pump_type', HPXML::HVACTypeHeatPumpMiniSplit)
|
1436
1604
|
step.setArgument('heat_pump_heating_capacity', '52000.0')
|
1437
|
-
step.setArgument('
|
1438
|
-
step.setArgument('
|
1439
|
-
step.setArgument('
|
1605
|
+
step.setArgument('heat_pump_heating_capacity_17_f', '29500.0')
|
1606
|
+
step.setArgument('heat_pump_heating_efficiency', 10.0)
|
1607
|
+
step.setArgument('heat_pump_cooling_efficiency', 19.0)
|
1440
1608
|
step.removeArgument('heat_pump_cooling_compressor_type')
|
1441
1609
|
step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeElectricity)
|
1442
|
-
step.setArgument('
|
1443
|
-
step.setArgument('heat_pump_fan_power_watts_per_cfm', 0.2)
|
1610
|
+
step.setArgument('heat_pump_is_ducted', true)
|
1444
1611
|
step.setArgument('ducts_supply_leakage_value', 15.0)
|
1445
1612
|
step.setArgument('ducts_return_leakage_value', 5.0)
|
1446
1613
|
step.setArgument('ducts_supply_insulation_r', 0.0)
|
@@ -1448,52 +1615,56 @@ def get_values(osw_file, step)
|
|
1448
1615
|
step.setArgument('ducts_return_surface_area', '10.0')
|
1449
1616
|
elsif ['base-hvac-mini-split-heat-pump-ducted-cooling-only.osw'].include? osw_file
|
1450
1617
|
step.setArgument('heat_pump_heating_capacity', '0')
|
1451
|
-
step.setArgument('
|
1618
|
+
step.setArgument('heat_pump_heating_capacity_17_f', '0')
|
1452
1619
|
step.setArgument('heat_pump_fraction_heat_load_served', 0)
|
1453
1620
|
step.setArgument('heat_pump_backup_fuel', 'none')
|
1454
|
-
step.setArgument('heat_pump_fan_power_watts_per_cfm', 0.2)
|
1455
1621
|
elsif ['base-hvac-mini-split-heat-pump-ducted-heating-only.osw'].include? osw_file
|
1456
1622
|
step.setArgument('heat_pump_cooling_capacity', '0')
|
1457
1623
|
step.setArgument('heat_pump_fraction_cool_load_served', 0)
|
1458
1624
|
step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeElectricity)
|
1459
|
-
step.setArgument('heat_pump_fan_power_watts_per_cfm', 0.2)
|
1460
1625
|
elsif ['base-hvac-mini-split-heat-pump-ductless.osw'].include? osw_file
|
1461
1626
|
step.setArgument('heat_pump_backup_fuel', 'none')
|
1462
|
-
step.setArgument('
|
1627
|
+
step.setArgument('heat_pump_is_ducted', false)
|
1463
1628
|
elsif ['base-hvac-none.osw'].include? osw_file
|
1464
1629
|
step.setArgument('heating_system_type', 'none')
|
1465
1630
|
step.setArgument('cooling_system_type', 'none')
|
1466
1631
|
elsif ['base-hvac-portable-heater-gas-only.osw'].include? osw_file
|
1467
1632
|
step.setArgument('heating_system_type', HPXML::HVACTypePortableHeater)
|
1468
1633
|
step.setArgument('heating_system_heating_efficiency', 1.0)
|
1469
|
-
|
1634
|
+
elsif ['base-hvac-programmable-thermostat-detailed.osw'].include? osw_file
|
1635
|
+
step.setArgument('setpoint_heating_weekday', '64, 64, 64, 64, 64, 64, 64, 74, 74, 66, 66, 66, 66, 66, 66, 66, 66, 68, 68, 68, 68, 68, 64, 64')
|
1636
|
+
step.setArgument('setpoint_heating_weekend', '74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74')
|
1637
|
+
step.setArgument('setpoint_cooling_weekday', '82, 82, 82, 82, 82, 82, 82, 72, 72, 80, 80, 80, 80, 80, 80, 80, 80, 78, 78, 78, 78, 78, 82, 82')
|
1638
|
+
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
1639
|
elsif ['base-hvac-room-ac-only.osw'].include? osw_file
|
1471
1640
|
step.setArgument('heating_system_type', 'none')
|
1472
1641
|
step.setArgument('cooling_system_type', HPXML::HVACTypeRoomAirConditioner)
|
1642
|
+
step.setArgument('cooling_system_cooling_efficiency_type', HPXML::UnitsEER)
|
1643
|
+
step.setArgument('cooling_system_cooling_efficiency', 8.5)
|
1473
1644
|
step.removeArgument('cooling_system_cooling_compressor_type')
|
1474
1645
|
step.setArgument('cooling_system_cooling_sensible_heat_fraction', 0.65)
|
1475
1646
|
elsif ['base-hvac-room-ac-only-33percent.osw'].include? osw_file
|
1476
1647
|
step.setArgument('heating_system_type', 'none')
|
1477
1648
|
step.setArgument('cooling_system_type', HPXML::HVACTypeRoomAirConditioner)
|
1649
|
+
step.setArgument('cooling_system_cooling_efficiency_type', HPXML::UnitsEER)
|
1650
|
+
step.setArgument('cooling_system_cooling_efficiency', 8.5)
|
1478
1651
|
step.removeArgument('cooling_system_cooling_compressor_type')
|
1479
1652
|
step.setArgument('cooling_system_cooling_sensible_heat_fraction', 0.65)
|
1480
1653
|
step.setArgument('cooling_system_fraction_cool_load_served', 0.33)
|
1481
1654
|
elsif ['base-hvac-setpoints.osw'].include? osw_file
|
1482
|
-
step.setArgument('
|
1483
|
-
step.setArgument('
|
1484
|
-
step.setArgument('
|
1485
|
-
step.setArgument('
|
1655
|
+
step.setArgument('setpoint_heating_weekday', '60')
|
1656
|
+
step.setArgument('setpoint_heating_weekend', '60')
|
1657
|
+
step.setArgument('setpoint_cooling_weekday', '80')
|
1658
|
+
step.setArgument('setpoint_cooling_weekend', '80')
|
1486
1659
|
elsif ['base-hvac-stove-oil-only.osw'].include? osw_file
|
1487
1660
|
step.setArgument('heating_system_type', HPXML::HVACTypeStove)
|
1488
1661
|
step.setArgument('heating_system_fuel', HPXML::FuelTypeOil)
|
1489
1662
|
step.setArgument('heating_system_heating_efficiency', 0.8)
|
1490
|
-
step.setArgument('heating_system_fan_power_watts', 40.0)
|
1491
1663
|
step.setArgument('cooling_system_type', 'none')
|
1492
1664
|
elsif ['base-hvac-stove-wood-pellets-only.osw'].include? osw_file
|
1493
1665
|
step.setArgument('heating_system_type', HPXML::HVACTypeStove)
|
1494
1666
|
step.setArgument('heating_system_fuel', HPXML::FuelTypeWoodPellets)
|
1495
1667
|
step.setArgument('heating_system_heating_efficiency', 0.8)
|
1496
|
-
step.setArgument('heating_system_fan_power_watts', 40.0)
|
1497
1668
|
step.setArgument('cooling_system_type', 'none')
|
1498
1669
|
elsif ['base-hvac-undersized.osw'].include? osw_file
|
1499
1670
|
step.setArgument('heating_system_heating_capacity', '6400.0')
|
@@ -1504,7 +1675,6 @@ def get_values(osw_file, step)
|
|
1504
1675
|
step.setArgument('heating_system_type', HPXML::HVACTypeWallFurnace)
|
1505
1676
|
step.setArgument('heating_system_fuel', HPXML::FuelTypeElectricity)
|
1506
1677
|
step.setArgument('heating_system_heating_efficiency', 1.0)
|
1507
|
-
step.setArgument('heating_system_fan_power_watts', 0.0)
|
1508
1678
|
step.setArgument('cooling_system_type', 'none')
|
1509
1679
|
elsif ['base-lighting-ceiling-fans.osw'].include? osw_file
|
1510
1680
|
step.setArgument('ceiling_fan_present', true)
|
@@ -1526,24 +1696,30 @@ def get_values(osw_file, step)
|
|
1526
1696
|
step.setArgument('weather_station_epw_filepath', 'USA_TX_Dallas-Fort.Worth.Intl.AP.722590_TMY3.epw')
|
1527
1697
|
elsif ['base-location-duluth-mn.osw'].include? osw_file
|
1528
1698
|
step.setArgument('weather_station_epw_filepath', 'USA_MN_Duluth.Intl.AP.727450_TMY3.epw')
|
1699
|
+
elsif ['base-location-helena-mt.osw'].include? osw_file
|
1700
|
+
step.setArgument('weather_station_epw_filepath', 'USA_MT_Helena.Rgnl.AP.727720_TMY3.epw')
|
1701
|
+
elsif ['base-location-honolulu-hi.osw'].include? osw_file
|
1702
|
+
step.setArgument('weather_station_epw_filepath', 'USA_HI_Honolulu.Intl.AP.911820_TMY3.epw')
|
1529
1703
|
elsif ['base-location-miami-fl.osw'].include? osw_file
|
1530
1704
|
step.setArgument('weather_station_epw_filepath', 'USA_FL_Miami.Intl.AP.722020_TMY3.epw')
|
1705
|
+
elsif ['base-location-phoenix-az.osw'].include? osw_file
|
1706
|
+
step.setArgument('weather_station_epw_filepath', 'USA_AZ_Phoenix-Sky.Harbor.Intl.AP.722780_TMY3.epw')
|
1707
|
+
elsif ['base-location-portland-or.osw'].include? osw_file
|
1708
|
+
step.setArgument('weather_station_epw_filepath', 'USA_OR_Portland.Intl.AP.726980_TMY3.epw')
|
1531
1709
|
elsif ['base-mechvent-balanced.osw'].include? osw_file
|
1532
1710
|
step.setArgument('mech_vent_fan_type', HPXML::MechVentTypeBalanced)
|
1533
1711
|
step.setArgument('mech_vent_fan_power', 60)
|
1534
1712
|
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)
|
1713
|
+
step.setArgument('kitchen_fans_quantity', '1')
|
1714
|
+
step.setArgument('kitchen_fans_flow_rate', '100.0')
|
1715
|
+
step.setArgument('kitchen_fans_hours_in_operation', '1.5')
|
1716
|
+
step.setArgument('kitchen_fans_power', '30.0')
|
1717
|
+
step.setArgument('kitchen_fans_start_hour', '18')
|
1718
|
+
step.setArgument('bathroom_fans_quantity', '2')
|
1719
|
+
step.setArgument('bathroom_fans_flow_rate', '50.0')
|
1720
|
+
step.setArgument('bathroom_fans_hours_in_operation', '1.5')
|
1721
|
+
step.setArgument('bathroom_fans_power', '15.0')
|
1722
|
+
step.setArgument('bathroom_fans_start_hour', '7')
|
1547
1723
|
elsif ['base-mechvent-cfis.osw'].include? osw_file
|
1548
1724
|
step.setArgument('mech_vent_fan_type', HPXML::MechVentTypeCFIS)
|
1549
1725
|
step.setArgument('mech_vent_flow_rate', 330)
|
@@ -1559,37 +1735,22 @@ def get_values(osw_file, step)
|
|
1559
1735
|
step.setArgument('mech_vent_fan_power', 60)
|
1560
1736
|
elsif ['base-mechvent-erv-atre-asre.osw'].include? osw_file
|
1561
1737
|
step.setArgument('mech_vent_fan_type', HPXML::MechVentTypeERV)
|
1562
|
-
step.setArgument('
|
1738
|
+
step.setArgument('mech_vent_recovery_efficiency_type', 'Adjusted')
|
1563
1739
|
step.setArgument('mech_vent_total_recovery_efficiency', 0.526)
|
1564
|
-
step.setArgument('mech_vent_sensible_recovery_efficiency_type', 'Adjusted')
|
1565
1740
|
step.setArgument('mech_vent_sensible_recovery_efficiency', 0.79)
|
1566
1741
|
step.setArgument('mech_vent_fan_power', 60)
|
1567
1742
|
elsif ['base-mechvent-exhaust.osw'].include? osw_file
|
1568
1743
|
step.setArgument('mech_vent_fan_type', HPXML::MechVentTypeExhaust)
|
1744
|
+
elsif ['base-mechvent-exhaust-rated-flow-rate.osw'].include? osw_file
|
1745
|
+
step.setArgument('mech_vent_fan_type', HPXML::MechVentTypeExhaust)
|
1569
1746
|
elsif ['base-mechvent-hrv.osw'].include? osw_file
|
1570
1747
|
step.setArgument('mech_vent_fan_type', HPXML::MechVentTypeHRV)
|
1571
1748
|
step.setArgument('mech_vent_fan_power', 60)
|
1572
1749
|
elsif ['base-mechvent-hrv-asre.osw'].include? osw_file
|
1573
1750
|
step.setArgument('mech_vent_fan_type', HPXML::MechVentTypeHRV)
|
1574
|
-
step.setArgument('
|
1751
|
+
step.setArgument('mech_vent_recovery_efficiency_type', 'Adjusted')
|
1575
1752
|
step.setArgument('mech_vent_sensible_recovery_efficiency', 0.79)
|
1576
1753
|
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
1754
|
elsif ['base-mechvent-supply.osw'].include? osw_file
|
1594
1755
|
step.setArgument('mech_vent_fan_type', HPXML::MechVentTypeSupply)
|
1595
1756
|
elsif ['base-mechvent-whole-house-fan.osw'].include? osw_file
|
@@ -1605,11 +1766,9 @@ def get_values(osw_file, step)
|
|
1605
1766
|
step.removeArgument('roof_material_type')
|
1606
1767
|
step.setArgument('roof_color', HPXML::ColorLight)
|
1607
1768
|
step.removeArgument('roof_material_type')
|
1608
|
-
step.setArgument('
|
1609
|
-
step.setArgument('roof_radiant_barrier', Constants.Auto)
|
1769
|
+
step.setArgument('roof_radiant_barrier', false)
|
1610
1770
|
step.removeArgument('wall_siding_type')
|
1611
1771
|
step.setArgument('wall_color', HPXML::ColorMedium)
|
1612
|
-
step.setArgument('wall_emittance', Constants.Auto)
|
1613
1772
|
step.removeArgument('window_fraction_operable')
|
1614
1773
|
step.removeArgument('window_interior_shading_winter')
|
1615
1774
|
step.removeArgument('window_interior_shading_summer')
|
@@ -1619,11 +1778,10 @@ def get_values(osw_file, step)
|
|
1619
1778
|
step.setArgument('ducts_return_location', Constants.Auto)
|
1620
1779
|
step.setArgument('ducts_supply_surface_area', Constants.Auto)
|
1621
1780
|
step.setArgument('ducts_return_surface_area', Constants.Auto)
|
1622
|
-
step.setArgument('
|
1623
|
-
step.setArgument('
|
1781
|
+
step.setArgument('kitchen_fans_quantity', Constants.Auto)
|
1782
|
+
step.setArgument('bathroom_fans_quantity', Constants.Auto)
|
1624
1783
|
step.setArgument('water_heater_location', Constants.Auto)
|
1625
1784
|
step.setArgument('water_heater_tank_volume', Constants.Auto)
|
1626
|
-
step.setArgument('water_heater_heating_capacity', Constants.Auto)
|
1627
1785
|
step.setArgument('water_heater_setpoint_temperature', Constants.Auto)
|
1628
1786
|
step.setArgument('dhw_distribution_standard_piping_length', Constants.Auto)
|
1629
1787
|
step.setArgument('dhw_distribution_pipe_r', Constants.Auto)
|
@@ -1635,8 +1793,7 @@ def get_values(osw_file, step)
|
|
1635
1793
|
step.removeArgument('pv_system_inverter_efficiency_1')
|
1636
1794
|
step.removeArgument('pv_system_system_losses_fraction_1')
|
1637
1795
|
step.setArgument('clothes_washer_location', Constants.Auto)
|
1638
|
-
step.setArgument('
|
1639
|
-
step.setArgument('clothes_washer_efficiency_imef', Constants.Auto)
|
1796
|
+
step.setArgument('clothes_washer_efficiency', Constants.Auto)
|
1640
1797
|
step.setArgument('clothes_washer_rated_annual_kwh', Constants.Auto)
|
1641
1798
|
step.setArgument('clothes_washer_label_electric_rate', Constants.Auto)
|
1642
1799
|
step.setArgument('clothes_washer_label_gas_rate', Constants.Auto)
|
@@ -1644,11 +1801,10 @@ def get_values(osw_file, step)
|
|
1644
1801
|
step.setArgument('clothes_washer_label_usage', Constants.Auto)
|
1645
1802
|
step.setArgument('clothes_washer_capacity', Constants.Auto)
|
1646
1803
|
step.setArgument('clothes_dryer_location', Constants.Auto)
|
1647
|
-
step.setArgument('
|
1648
|
-
step.setArgument('clothes_dryer_control_type', Constants.Auto)
|
1804
|
+
step.setArgument('clothes_dryer_efficiency', Constants.Auto)
|
1649
1805
|
step.setArgument('clothes_dryer_vented_flow_rate', Constants.Auto)
|
1650
1806
|
step.setArgument('dishwasher_location', Constants.Auto)
|
1651
|
-
step.setArgument('
|
1807
|
+
step.setArgument('dishwasher_efficiency', Constants.Auto)
|
1652
1808
|
step.setArgument('dishwasher_label_electric_rate', Constants.Auto)
|
1653
1809
|
step.setArgument('dishwasher_label_gas_rate', Constants.Auto)
|
1654
1810
|
step.setArgument('dishwasher_label_annual_gas_cost', Constants.Auto)
|
@@ -1665,19 +1821,16 @@ def get_values(osw_file, step)
|
|
1665
1821
|
step.setArgument('plug_loads_other_frac_sensible', Constants.Auto)
|
1666
1822
|
step.setArgument('plug_loads_other_frac_latent', Constants.Auto)
|
1667
1823
|
elsif ['base-misc-loads-large-uncommon.osw'].include? osw_file
|
1668
|
-
step.setArgument('
|
1824
|
+
step.setArgument('extra_refrigerator_location', Constants.Auto)
|
1669
1825
|
step.setArgument('extra_refrigerator_rated_annual_kwh', '700.0')
|
1670
|
-
step.setArgument('freezer_present', true)
|
1671
1826
|
step.setArgument('freezer_location', HPXML::LocationLivingSpace)
|
1672
1827
|
step.setArgument('freezer_rated_annual_kwh', '300.0')
|
1673
1828
|
step.setArgument('plug_loads_well_pump_present', true)
|
1674
1829
|
step.setArgument('plug_loads_well_pump_annual_kwh', '475.0')
|
1675
1830
|
step.setArgument('plug_loads_well_pump_usage_multiplier', 1.0)
|
1676
|
-
step.setArgument('plug_loads_well_pump_usage_multiplier_2', 1.0)
|
1677
1831
|
step.setArgument('plug_loads_vehicle_present', true)
|
1678
1832
|
step.setArgument('plug_loads_vehicle_annual_kwh', '1500.0')
|
1679
1833
|
step.setArgument('plug_loads_vehicle_usage_multiplier', 1.0)
|
1680
|
-
step.setArgument('plug_loads_vehicle_usage_multiplier_2', 1.0)
|
1681
1834
|
step.setArgument('fuel_loads_grill_present', true)
|
1682
1835
|
step.setArgument('fuel_loads_grill_fuel_type', HPXML::FuelTypePropane)
|
1683
1836
|
step.setArgument('fuel_loads_grill_annual_therm', '25.0')
|
@@ -1699,11 +1852,17 @@ def get_values(osw_file, step)
|
|
1699
1852
|
step.setArgument('hot_tub_pump_annual_kwh', '1000.0')
|
1700
1853
|
step.setArgument('hot_tub_heater_annual_kwh', '1300.0')
|
1701
1854
|
elsif ['base-misc-loads-large-uncommon2.osw'].include? osw_file
|
1702
|
-
step.setArgument('pool_heater_type',
|
1855
|
+
step.setArgument('pool_heater_type', HPXML::TypeNone)
|
1703
1856
|
step.setArgument('hot_tub_heater_type', HPXML::HeaterTypeHeatPump)
|
1704
1857
|
step.setArgument('hot_tub_heater_annual_kwh', '260.0')
|
1705
1858
|
step.setArgument('fuel_loads_grill_fuel_type', HPXML::FuelTypeOil)
|
1706
1859
|
step.setArgument('fuel_loads_fireplace_fuel_type', HPXML::FuelTypeWoodPellets)
|
1860
|
+
elsif ['base-misc-neighbor-shading.osw'].include? osw_file
|
1861
|
+
step.setArgument('neighbor_back_distance', 10)
|
1862
|
+
step.setArgument('neighbor_front_distance', 15)
|
1863
|
+
step.setArgument('neighbor_front_height', '12')
|
1864
|
+
elsif ['base-misc-shielding-of-home.osw'].include? osw_file
|
1865
|
+
step.setArgument('air_leakage_shielding_of_home', HPXML::ShieldingWellShielded)
|
1707
1866
|
elsif ['base-misc-usage-multiplier.osw'].include? osw_file
|
1708
1867
|
step.setArgument('water_fixtures_usage_multiplier', 0.9)
|
1709
1868
|
step.setArgument('lighting_usage_multiplier_interior', 0.9)
|
@@ -1713,7 +1872,6 @@ def get_values(osw_file, step)
|
|
1713
1872
|
step.setArgument('clothes_dryer_usage_multiplier', 0.9)
|
1714
1873
|
step.setArgument('dishwasher_usage_multiplier', 0.9)
|
1715
1874
|
step.setArgument('refrigerator_usage_multiplier', 0.9)
|
1716
|
-
step.setArgument('freezer_present', true)
|
1717
1875
|
step.setArgument('freezer_location', HPXML::LocationLivingSpace)
|
1718
1876
|
step.setArgument('freezer_rated_annual_kwh', '300.0')
|
1719
1877
|
step.setArgument('freezer_usage_multiplier', 0.9)
|
@@ -1745,10 +1903,6 @@ def get_values(osw_file, step)
|
|
1745
1903
|
step.setArgument('fuel_loads_fireplace_frac_sensible', '0.5')
|
1746
1904
|
step.setArgument('fuel_loads_fireplace_frac_latent', '0.1')
|
1747
1905
|
step.setArgument('fuel_loads_fireplace_usage_multiplier', 0.9)
|
1748
|
-
elsif ['base-misc-neighbor-shading.osw'].include? osw_file
|
1749
|
-
step.setArgument('neighbor_back_distance', 10)
|
1750
|
-
step.setArgument('neighbor_front_distance', 15)
|
1751
|
-
step.setArgument('neighbor_front_height', '12')
|
1752
1906
|
elsif ['base-pv.osw'].include? osw_file
|
1753
1907
|
step.setArgument('pv_system_module_type_1', HPXML::PVModuleTypeStandard)
|
1754
1908
|
step.setArgument('pv_system_location_1', HPXML::LocationRoof)
|
@@ -1758,16 +1912,6 @@ def get_values(osw_file, step)
|
|
1758
1912
|
step.setArgument('pv_system_tracking_2', HPXML::PVTrackingTypeFixed)
|
1759
1913
|
step.setArgument('pv_system_array_azimuth_2', 90)
|
1760
1914
|
step.setArgument('pv_system_max_power_output_2', 1500)
|
1761
|
-
elsif ['base-bldgtype-multifamily-shared-pv.osw'].include? osw_file
|
1762
|
-
step.setArgument('pv_system_num_units_served_1', 6)
|
1763
|
-
step.setArgument('pv_system_location_1', HPXML::LocationGround)
|
1764
|
-
step.setArgument('pv_system_module_type_1', HPXML::PVModuleTypeStandard)
|
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
1915
|
elsif ['base-simcontrol-calendar-year-custom.osw'].include? osw_file
|
1772
1916
|
step.setArgument('simulation_control_run_period_calendar_year', 2008)
|
1773
1917
|
elsif ['base-simcontrol-daylight-saving-custom.osw'].include? osw_file
|
@@ -1780,6 +1924,11 @@ def get_values(osw_file, step)
|
|
1780
1924
|
step.setArgument('simulation_control_daylight_saving_enabled', false)
|
1781
1925
|
elsif ['base-schedules-stochastic.osw'].include? osw_file
|
1782
1926
|
step.setArgument('schedules_type', 'stochastic')
|
1927
|
+
elsif ['base-schedules-stochastic-vacant.osw'].include? osw_file
|
1928
|
+
step.setArgument('schedules_vacancy_begin_month', 1)
|
1929
|
+
step.setArgument('schedules_vacancy_begin_day_of_month', 1)
|
1930
|
+
step.setArgument('schedules_vacancy_end_month', 12)
|
1931
|
+
step.setArgument('schedules_vacancy_end_day_of_month', 31)
|
1783
1932
|
elsif ['base-schedules-user-specified.osw'].include? osw_file
|
1784
1933
|
step.setArgument('schedules_type', 'user-specified')
|
1785
1934
|
step.setArgument('schedules_path', 'BuildResidentialHPXML/tests/schedules/user-specified.csv')
|
@@ -1814,8 +1963,8 @@ def get_values(osw_file, step)
|
|
1814
1963
|
step.setArgument('solar_thermal_system_type', 'hot water')
|
1815
1964
|
step.setArgument('solar_thermal_collector_tilt', 'latitude-15')
|
1816
1965
|
elsif ['extra-second-refrigerator.osw'].include? osw_file
|
1817
|
-
step.setArgument('
|
1818
|
-
elsif ['extra-second-heating-system-portable-heater.osw'].include? osw_file
|
1966
|
+
step.setArgument('extra_refrigerator_location', HPXML::LocationLivingSpace)
|
1967
|
+
elsif ['extra-second-heating-system-portable-heater-to-heating-system.osw'].include? osw_file
|
1819
1968
|
step.setArgument('heating_system_fuel', HPXML::FuelTypeElectricity)
|
1820
1969
|
step.setArgument('heating_system_heating_capacity', '48000.0')
|
1821
1970
|
step.setArgument('heating_system_fraction_heat_load_served', 0.75)
|
@@ -1825,39 +1974,284 @@ def get_values(osw_file, step)
|
|
1825
1974
|
step.setArgument('ducts_return_location', HPXML::LocationLivingSpace)
|
1826
1975
|
step.setArgument('heating_system_type_2', HPXML::HVACTypePortableHeater)
|
1827
1976
|
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)
|
1977
|
+
elsif ['extra-second-heating-system-fireplace-to-heating-system.osw'].include? osw_file
|
1831
1978
|
step.setArgument('heating_system_heating_capacity', '48000.0')
|
1832
1979
|
step.setArgument('heating_system_fraction_heat_load_served', 0.75)
|
1833
1980
|
step.setArgument('heating_system_type_2', HPXML::HVACTypeFireplace)
|
1834
1981
|
step.setArgument('heating_system_heating_capacity_2', '16000.0')
|
1982
|
+
elsif ['extra-second-heating-system-boiler-to-heating-system.osw'].include? osw_file
|
1983
|
+
step.setArgument('heating_system_fraction_heat_load_served', 0.75)
|
1984
|
+
step.setArgument('heating_system_type_2', HPXML::HVACTypeBoiler)
|
1985
|
+
elsif ['extra-second-heating-system-portable-heater-to-heat-pump.osw'].include? osw_file
|
1986
|
+
step.setArgument('heat_pump_heating_capacity', '48000.0')
|
1987
|
+
step.setArgument('heat_pump_fraction_heat_load_served', 0.75)
|
1988
|
+
step.setArgument('ducts_supply_leakage_value', 0.0)
|
1989
|
+
step.setArgument('ducts_return_leakage_value', 0.0)
|
1990
|
+
step.setArgument('ducts_supply_location', HPXML::LocationLivingSpace)
|
1991
|
+
step.setArgument('ducts_return_location', HPXML::LocationLivingSpace)
|
1992
|
+
step.setArgument('heating_system_type_2', HPXML::HVACTypePortableHeater)
|
1993
|
+
step.setArgument('heating_system_heating_capacity_2', '16000.0')
|
1994
|
+
elsif ['extra-second-heating-system-fireplace-to-heat-pump.osw'].include? osw_file
|
1995
|
+
step.setArgument('heat_pump_heating_capacity', '48000.0')
|
1996
|
+
step.setArgument('heat_pump_fraction_heat_load_served', 0.75)
|
1997
|
+
step.setArgument('heating_system_type_2', HPXML::HVACTypeFireplace)
|
1998
|
+
step.setArgument('heating_system_heating_capacity_2', '16000.0')
|
1999
|
+
elsif ['extra-second-heating-system-boiler-to-heat-pump.osw'].include? osw_file
|
2000
|
+
step.setArgument('heat_pump_fraction_heat_load_served', 0.75)
|
2001
|
+
step.setArgument('heating_system_type_2', HPXML::HVACTypeBoiler)
|
2002
|
+
elsif ['extra-enclosure-windows-shading.osw'].include? osw_file
|
2003
|
+
step.setArgument('window_interior_shading_winter', 0.99)
|
2004
|
+
step.setArgument('window_interior_shading_summer', 0.01)
|
2005
|
+
step.setArgument('window_exterior_shading_winter', 0.9)
|
2006
|
+
step.setArgument('window_exterior_shading_summer', 0.1)
|
1835
2007
|
elsif ['extra-enclosure-garage-partially-protruded.osw'].include? osw_file
|
1836
2008
|
step.setArgument('geometry_garage_width', 12)
|
1837
2009
|
step.setArgument('geometry_garage_protrusion', 0.5)
|
1838
|
-
elsif ['extra-
|
1839
|
-
step.setArgument('
|
1840
|
-
step.setArgument('
|
1841
|
-
step.setArgument('
|
1842
|
-
|
2010
|
+
elsif ['extra-enclosure-garage-atticroof-conditioned.osw'].include? osw_file
|
2011
|
+
step.setArgument('geometry_cfa', 4500.0)
|
2012
|
+
step.setArgument('geometry_num_floors_above_grade', 2)
|
2013
|
+
step.setArgument('geometry_attic_type', HPXML::AtticTypeConditioned)
|
2014
|
+
elsif ['extra-enclosure-atticroof-conditioned-eaves-gable.osw'].include? osw_file
|
2015
|
+
step.setArgument('geometry_num_floors_above_grade', 2)
|
2016
|
+
step.setArgument('geometry_attic_type', HPXML::AtticTypeConditioned)
|
2017
|
+
step.setArgument('geometry_eaves_depth', 2)
|
2018
|
+
elsif ['extra-enclosure-atticroof-conditioned-eaves-hip.osw'].include? osw_file
|
2019
|
+
step.setArgument('geometry_roof_type', 'hip')
|
1843
2020
|
elsif ['extra-schedules-random-seed.osw'].include? osw_file
|
1844
2021
|
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
|
-
|
1858
|
-
step.setArgument('
|
1859
|
-
step.setArgument('
|
1860
|
-
step.setArgument('
|
2022
|
+
elsif ['extra-zero-refrigerator-kwh.osw'].include? osw_file
|
2023
|
+
step.setArgument('refrigerator_rated_annual_kwh', '0')
|
2024
|
+
elsif ['extra-zero-extra-refrigerator-kwh.osw'].include? osw_file
|
2025
|
+
step.setArgument('extra_refrigerator_rated_annual_kwh', '0')
|
2026
|
+
elsif ['extra-zero-freezer-kwh.osw'].include? osw_file
|
2027
|
+
step.setArgument('freezer_rated_annual_kwh', '0')
|
2028
|
+
elsif ['extra-zero-clothes-washer-kwh.osw'].include? osw_file
|
2029
|
+
step.setArgument('clothes_washer_rated_annual_kwh', '0')
|
2030
|
+
step.setArgument('clothes_dryer_location', 'none')
|
2031
|
+
elsif ['extra-zero-dishwasher-kwh.osw'].include? osw_file
|
2032
|
+
step.setArgument('dishwasher_efficiency', '0')
|
2033
|
+
|
2034
|
+
elsif ['extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-gable.osw'].include? osw_file
|
2035
|
+
step.setArgument('geometry_num_floors_above_grade', 2)
|
2036
|
+
step.setArgument('geometry_attic_type', HPXML::AtticTypeConditioned)
|
2037
|
+
step.setArgument('geometry_eaves_depth', 2)
|
2038
|
+
step.setArgument('ducts_supply_location', HPXML::LocationLivingSpace)
|
2039
|
+
step.setArgument('ducts_return_location', HPXML::LocationLivingSpace)
|
2040
|
+
elsif ['extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-hip.osw'].include? osw_file
|
2041
|
+
step.setArgument('geometry_roof_type', 'hip')
|
2042
|
+
elsif ['extra-bldgtype-multifamily-eaves.osw'].include? osw_file
|
2043
|
+
step.setArgument('geometry_eaves_depth', 2)
|
2044
|
+
|
2045
|
+
elsif ['extra-bldgtype-single-family-attached-slab.osw'].include? osw_file
|
2046
|
+
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeSlab)
|
2047
|
+
step.setArgument('geometry_foundation_height', 0.0)
|
2048
|
+
step.setArgument('geometry_foundation_height_above_grade', 0.0)
|
2049
|
+
elsif ['extra-bldgtype-single-family-attached-vented-crawlspace.osw'].include? osw_file
|
2050
|
+
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeCrawlspaceVented)
|
2051
|
+
step.setArgument('geometry_foundation_height', 4.0)
|
2052
|
+
step.setArgument('floor_assembly_r', 18.7)
|
2053
|
+
step.setArgument('foundation_wall_insulation_distance_to_bottom', 4.0)
|
2054
|
+
elsif ['extra-bldgtype-single-family-attached-unvented-crawlspace.osw'].include? osw_file
|
2055
|
+
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeCrawlspaceUnvented)
|
2056
|
+
step.setArgument('geometry_foundation_height', 4.0)
|
2057
|
+
step.setArgument('floor_assembly_r', 18.7)
|
2058
|
+
step.setArgument('foundation_wall_insulation_distance_to_bottom', 4.0)
|
2059
|
+
elsif ['extra-bldgtype-single-family-attached-unconditioned-basement.osw'].include? osw_file
|
2060
|
+
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeBasementUnconditioned)
|
2061
|
+
step.setArgument('floor_assembly_r', 18.7)
|
2062
|
+
step.setArgument('foundation_wall_insulation_r', 0)
|
2063
|
+
step.setArgument('foundation_wall_insulation_distance_to_bottom', 0)
|
2064
|
+
|
2065
|
+
elsif ['extra-bldgtype-single-family-attached-double-loaded-interior.osw'].include? osw_file
|
2066
|
+
step.setArgument('geometry_building_num_units', 4)
|
2067
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2068
|
+
elsif ['extra-bldgtype-single-family-attached-single-exterior-front.osw'].include? osw_file
|
2069
|
+
step.setArgument('geometry_corridor_position', 'Single Exterior (Front)')
|
2070
|
+
elsif ['extra-bldgtype-single-family-attached-double-exterior.osw'].include? osw_file
|
2071
|
+
step.setArgument('geometry_building_num_units', 4)
|
2072
|
+
step.setArgument('geometry_corridor_position', 'Double Exterior')
|
2073
|
+
|
2074
|
+
elsif ['extra-bldgtype-single-family-attached-slab-middle.osw'].include? osw_file
|
2075
|
+
step.setArgument('geometry_horizontal_location', 'Middle')
|
2076
|
+
elsif ['extra-bldgtype-single-family-attached-slab-right.osw'].include? osw_file
|
2077
|
+
step.setArgument('geometry_horizontal_location', 'Right')
|
2078
|
+
elsif ['extra-bldgtype-single-family-attached-vented-crawlspace-middle.osw'].include? osw_file
|
2079
|
+
step.setArgument('geometry_horizontal_location', 'Middle')
|
2080
|
+
elsif ['extra-bldgtype-single-family-attached-vented-crawlspace-right.osw'].include? osw_file
|
2081
|
+
step.setArgument('geometry_horizontal_location', 'Right')
|
2082
|
+
elsif ['extra-bldgtype-single-family-attached-unvented-crawlspace-middle.osw'].include? osw_file
|
2083
|
+
step.setArgument('geometry_horizontal_location', 'Middle')
|
2084
|
+
elsif ['extra-bldgtype-single-family-attached-unvented-crawlspace-right.osw'].include? osw_file
|
2085
|
+
step.setArgument('geometry_horizontal_location', 'Right')
|
2086
|
+
elsif ['extra-bldgtype-single-family-attached-unconditioned-basement-middle.osw'].include? osw_file
|
2087
|
+
step.setArgument('geometry_horizontal_location', 'Middle')
|
2088
|
+
elsif ['extra-bldgtype-single-family-attached-unconditioned-basement-right.osw'].include? osw_file
|
2089
|
+
step.setArgument('geometry_horizontal_location', 'Right')
|
2090
|
+
|
2091
|
+
elsif ['extra-bldgtype-multifamily-slab.osw'].include? osw_file
|
2092
|
+
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeSlab)
|
2093
|
+
step.setArgument('geometry_foundation_height', 0.0)
|
2094
|
+
step.setArgument('geometry_foundation_height_above_grade', 0.0)
|
2095
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace.osw'].include? osw_file
|
2096
|
+
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeCrawlspaceVented)
|
2097
|
+
step.setArgument('geometry_foundation_height', 4.0)
|
2098
|
+
step.setArgument('floor_assembly_r', 18.7)
|
2099
|
+
step.setArgument('foundation_wall_insulation_distance_to_bottom', 4.0)
|
2100
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace.osw'].include? osw_file
|
2101
|
+
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeCrawlspaceUnvented)
|
2102
|
+
step.setArgument('geometry_foundation_height', 4.0)
|
2103
|
+
step.setArgument('floor_assembly_r', 18.7)
|
2104
|
+
step.setArgument('foundation_wall_insulation_distance_to_bottom', 4.0)
|
2105
|
+
|
2106
|
+
elsif ['extra-bldgtype-multifamily-double-loaded-interior.osw'].include? osw_file
|
2107
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2108
|
+
elsif ['extra-bldgtype-multifamily-single-exterior-front.osw'].include? osw_file
|
2109
|
+
step.setArgument('geometry_corridor_position', 'Single Exterior (Front)')
|
2110
|
+
elsif ['extra-bldgtype-multifamily-double-exterior.osw'].include? osw_file
|
2111
|
+
step.setArgument('geometry_corridor_position', 'Double Exterior')
|
2112
|
+
|
2113
|
+
elsif ['extra-bldgtype-multifamily-slab-left-bottom.osw'].include? osw_file
|
2114
|
+
step.setArgument('geometry_horizontal_location', 'Left')
|
2115
|
+
step.setArgument('geometry_level', 'Bottom')
|
2116
|
+
elsif ['extra-bldgtype-multifamily-slab-left-middle.osw'].include? osw_file
|
2117
|
+
step.setArgument('geometry_horizontal_location', 'Left')
|
2118
|
+
step.setArgument('geometry_level', 'Middle')
|
2119
|
+
elsif ['extra-bldgtype-multifamily-slab-left-top.osw'].include? osw_file
|
2120
|
+
step.setArgument('geometry_horizontal_location', 'Left')
|
2121
|
+
step.setArgument('geometry_level', 'Top')
|
2122
|
+
elsif ['extra-bldgtype-multifamily-slab-middle-bottom.osw'].include? osw_file
|
2123
|
+
step.setArgument('geometry_horizontal_location', 'Middle')
|
2124
|
+
step.setArgument('geometry_level', 'Bottom')
|
2125
|
+
elsif ['extra-bldgtype-multifamily-slab-middle-middle.osw'].include? osw_file
|
2126
|
+
step.setArgument('geometry_horizontal_location', 'Middle')
|
2127
|
+
step.setArgument('geometry_level', 'Middle')
|
2128
|
+
elsif ['extra-bldgtype-multifamily-slab-middle-top.osw'].include? osw_file
|
2129
|
+
step.setArgument('geometry_horizontal_location', 'Middle')
|
2130
|
+
step.setArgument('geometry_level', 'Top')
|
2131
|
+
elsif ['extra-bldgtype-multifamily-slab-right-bottom.osw'].include? osw_file
|
2132
|
+
step.setArgument('geometry_horizontal_location', 'Right')
|
2133
|
+
step.setArgument('geometry_level', 'Bottom')
|
2134
|
+
elsif ['extra-bldgtype-multifamily-slab-right-middle.osw'].include? osw_file
|
2135
|
+
step.setArgument('geometry_horizontal_location', 'Right')
|
2136
|
+
step.setArgument('geometry_level', 'Middle')
|
2137
|
+
elsif ['extra-bldgtype-multifamily-slab-right-top.osw'].include? osw_file
|
2138
|
+
step.setArgument('geometry_horizontal_location', 'Right')
|
2139
|
+
step.setArgument('geometry_level', 'Top')
|
2140
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-left-bottom.osw'].include? osw_file
|
2141
|
+
step.setArgument('geometry_horizontal_location', 'Left')
|
2142
|
+
step.setArgument('geometry_level', 'Bottom')
|
2143
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-left-middle.osw'].include? osw_file
|
2144
|
+
step.setArgument('geometry_horizontal_location', 'Left')
|
2145
|
+
step.setArgument('geometry_level', 'Middle')
|
2146
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-left-top.osw'].include? osw_file
|
2147
|
+
step.setArgument('geometry_horizontal_location', 'Left')
|
2148
|
+
step.setArgument('geometry_level', 'Top')
|
2149
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-middle-bottom.osw'].include? osw_file
|
2150
|
+
step.setArgument('geometry_horizontal_location', 'Middle')
|
2151
|
+
step.setArgument('geometry_level', 'Bottom')
|
2152
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-middle-middle.osw'].include? osw_file
|
2153
|
+
step.setArgument('geometry_horizontal_location', 'Middle')
|
2154
|
+
step.setArgument('geometry_level', 'Middle')
|
2155
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-middle-top.osw'].include? osw_file
|
2156
|
+
step.setArgument('geometry_horizontal_location', 'Middle')
|
2157
|
+
step.setArgument('geometry_level', 'Top')
|
2158
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-right-bottom.osw'].include? osw_file
|
2159
|
+
step.setArgument('geometry_horizontal_location', 'Right')
|
2160
|
+
step.setArgument('geometry_level', 'Bottom')
|
2161
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-right-middle.osw'].include? osw_file
|
2162
|
+
step.setArgument('geometry_horizontal_location', 'Right')
|
2163
|
+
step.setArgument('geometry_level', 'Middle')
|
2164
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-right-top.osw'].include? osw_file
|
2165
|
+
step.setArgument('geometry_horizontal_location', 'Right')
|
2166
|
+
step.setArgument('geometry_level', 'Top')
|
2167
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-left-bottom.osw'].include? osw_file
|
2168
|
+
step.setArgument('geometry_horizontal_location', 'Left')
|
2169
|
+
step.setArgument('geometry_level', 'Bottom')
|
2170
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-left-middle.osw'].include? osw_file
|
2171
|
+
step.setArgument('geometry_horizontal_location', 'Left')
|
2172
|
+
step.setArgument('geometry_level', 'Middle')
|
2173
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-left-top.osw'].include? osw_file
|
2174
|
+
step.setArgument('geometry_horizontal_location', 'Left')
|
2175
|
+
step.setArgument('geometry_level', 'Top')
|
2176
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-middle-bottom.osw'].include? osw_file
|
2177
|
+
step.setArgument('geometry_horizontal_location', 'Middle')
|
2178
|
+
step.setArgument('geometry_level', 'Bottom')
|
2179
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-middle-middle.osw'].include? osw_file
|
2180
|
+
step.setArgument('geometry_horizontal_location', 'Middle')
|
2181
|
+
step.setArgument('geometry_level', 'Middle')
|
2182
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-middle-top.osw'].include? osw_file
|
2183
|
+
step.setArgument('geometry_horizontal_location', 'Middle')
|
2184
|
+
step.setArgument('geometry_level', 'Top')
|
2185
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-right-bottom.osw'].include? osw_file
|
2186
|
+
step.setArgument('geometry_horizontal_location', 'Right')
|
2187
|
+
step.setArgument('geometry_level', 'Bottom')
|
2188
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-right-middle.osw'].include? osw_file
|
2189
|
+
step.setArgument('geometry_horizontal_location', 'Right')
|
2190
|
+
step.setArgument('geometry_level', 'Middle')
|
2191
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-right-top.osw'].include? osw_file
|
2192
|
+
step.setArgument('geometry_horizontal_location', 'Right')
|
2193
|
+
step.setArgument('geometry_level', 'Top')
|
2194
|
+
|
2195
|
+
elsif ['extra-bldgtype-multifamily-slab-double-loaded-interior.osw'].include? osw_file
|
2196
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2197
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-double-loaded-interior.osw'].include? osw_file
|
2198
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2199
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-double-loaded-interior.osw'].include? osw_file
|
2200
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2201
|
+
elsif ['extra-bldgtype-multifamily-slab-left-bottom-double-loaded-interior.osw'].include? osw_file
|
2202
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2203
|
+
elsif ['extra-bldgtype-multifamily-slab-left-middle-double-loaded-interior.osw'].include? osw_file
|
2204
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2205
|
+
elsif ['extra-bldgtype-multifamily-slab-left-top-double-loaded-interior.osw'].include? osw_file
|
2206
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2207
|
+
elsif ['extra-bldgtype-multifamily-slab-middle-bottom-double-loaded-interior.osw'].include? osw_file
|
2208
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2209
|
+
elsif ['extra-bldgtype-multifamily-slab-middle-middle-double-loaded-interior.osw'].include? osw_file
|
2210
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2211
|
+
elsif ['extra-bldgtype-multifamily-slab-middle-top-double-loaded-interior.osw'].include? osw_file
|
2212
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2213
|
+
elsif ['extra-bldgtype-multifamily-slab-right-bottom-double-loaded-interior.osw'].include? osw_file
|
2214
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2215
|
+
elsif ['extra-bldgtype-multifamily-slab-right-middle-double-loaded-interior.osw'].include? osw_file
|
2216
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2217
|
+
elsif ['extra-bldgtype-multifamily-slab-right-top-double-loaded-interior.osw'].include? osw_file
|
2218
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2219
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-left-bottom-double-loaded-interior.osw'].include? osw_file
|
2220
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2221
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-left-middle-double-loaded-interior.osw'].include? osw_file
|
2222
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2223
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-left-top-double-loaded-interior.osw'].include? osw_file
|
2224
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2225
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-middle-bottom-double-loaded-interior.osw'].include? osw_file
|
2226
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2227
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-middle-middle-double-loaded-interior.osw'].include? osw_file
|
2228
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2229
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-middle-top-double-loaded-interior.osw'].include? osw_file
|
2230
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2231
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-right-bottom-double-loaded-interior.osw'].include? osw_file
|
2232
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2233
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-right-middle-double-loaded-interior.osw'].include? osw_file
|
2234
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2235
|
+
elsif ['extra-bldgtype-multifamily-vented-crawlspace-right-top-double-loaded-interior.osw'].include? osw_file
|
2236
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2237
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-left-bottom-double-loaded-interior.osw'].include? osw_file
|
2238
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2239
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-left-middle-double-loaded-interior.osw'].include? osw_file
|
2240
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2241
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-left-top-double-loaded-interior.osw'].include? osw_file
|
2242
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2243
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-middle-bottom-double-loaded-interior.osw'].include? osw_file
|
2244
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2245
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-middle-middle-double-loaded-interior.osw'].include? osw_file
|
2246
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2247
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-middle-top-double-loaded-interior.osw'].include? osw_file
|
2248
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2249
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-right-bottom-double-loaded-interior.osw'].include? osw_file
|
2250
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2251
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-right-middle-double-loaded-interior.osw'].include? osw_file
|
2252
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
2253
|
+
elsif ['extra-bldgtype-multifamily-unvented-crawlspace-right-top-double-loaded-interior.osw'].include? osw_file
|
2254
|
+
step.setArgument('geometry_corridor_position', 'Double-Loaded Interior')
|
1861
2255
|
end
|
1862
2256
|
|
1863
2257
|
# Warnings/Errors
|
@@ -1882,6 +2276,7 @@ def get_values(osw_file, step)
|
|
1882
2276
|
step.setArgument('geometry_foundation_height', 0.0)
|
1883
2277
|
elsif ['invalid_files/single-family-attached-ambient.osw'].include? osw_file
|
1884
2278
|
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeAmbient)
|
2279
|
+
step.setArgument('geometry_rim_joist_height', 0)
|
1885
2280
|
elsif ['invalid_files/multifamily-bottom-slab-non-zero-foundation-height.osw'].include? osw_file
|
1886
2281
|
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeSlab)
|
1887
2282
|
step.setArgument('geometry_foundation_height_above_grade', 0.0)
|
@@ -1899,6 +2294,12 @@ def get_values(osw_file, step)
|
|
1899
2294
|
step.setArgument('heating_system_fraction_heat_load_served', 0.4)
|
1900
2295
|
step.setArgument('heating_system_type_2', HPXML::HVACTypeFireplace)
|
1901
2296
|
step.setArgument('heating_system_fraction_heat_load_served_2', 0.6)
|
2297
|
+
elsif ['invalid_files/second-heating-system-serves-total-heat-load.osw'].include? osw_file
|
2298
|
+
step.setArgument('heating_system_type_2', HPXML::HVACTypeFireplace)
|
2299
|
+
step.setArgument('heating_system_fraction_heat_load_served_2', 1.0)
|
2300
|
+
elsif ['invalid_files/second-heating-system-but-no-primary-heating.osw'].include? osw_file
|
2301
|
+
step.setArgument('heating_system_type', 'none')
|
2302
|
+
step.setArgument('heating_system_type_2', HPXML::HVACTypeFireplace)
|
1902
2303
|
elsif ['invalid_files/single-family-attached-no-building-orientation.osw'].include? osw_file
|
1903
2304
|
step.removeArgument('geometry_building_num_units')
|
1904
2305
|
step.removeArgument('geometry_horizontal_location')
|
@@ -1910,16 +2311,20 @@ def get_values(osw_file, step)
|
|
1910
2311
|
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeCrawlspaceVented)
|
1911
2312
|
step.setArgument('geometry_foundation_height', 3.0)
|
1912
2313
|
step.setArgument('floor_assembly_r', 10)
|
2314
|
+
step.setArgument('foundation_wall_insulation_distance_to_bottom', 0.0)
|
1913
2315
|
elsif ['invalid_files/unvented-crawlspace-with-wall-and-ceiling-insulation.osw'].include? osw_file
|
1914
2316
|
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeCrawlspaceUnvented)
|
1915
2317
|
step.setArgument('geometry_foundation_height', 3.0)
|
1916
2318
|
step.setArgument('floor_assembly_r', 10)
|
2319
|
+
step.setArgument('foundation_wall_insulation_distance_to_bottom', 0.0)
|
1917
2320
|
elsif ['invalid_files/unconditioned-basement-with-wall-and-ceiling-insulation.osw'].include? osw_file
|
1918
2321
|
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeBasementUnconditioned)
|
1919
2322
|
step.setArgument('floor_assembly_r', 10)
|
1920
2323
|
elsif ['invalid_files/vented-attic-with-floor-and-roof-insulation.osw'].include? osw_file
|
1921
2324
|
step.setArgument('geometry_attic_type', HPXML::AtticTypeVented)
|
1922
2325
|
step.setArgument('roof_assembly_r', 10)
|
2326
|
+
step.setArgument('ducts_supply_location', HPXML::LocationAtticVented)
|
2327
|
+
step.setArgument('ducts_return_location', HPXML::LocationAtticVented)
|
1923
2328
|
elsif ['invalid_files/unvented-attic-with-floor-and-roof-insulation.osw'].include? osw_file
|
1924
2329
|
step.setArgument('geometry_attic_type', HPXML::AtticTypeUnvented)
|
1925
2330
|
step.setArgument('roof_assembly_r', 10)
|
@@ -1927,20 +2332,34 @@ def get_values(osw_file, step)
|
|
1927
2332
|
step.setArgument('geometry_foundation_type', HPXML::FoundationTypeBasementConditioned)
|
1928
2333
|
step.setArgument('floor_assembly_r', 10)
|
1929
2334
|
elsif ['invalid_files/conditioned-attic-with-floor-insulation.osw'].include? osw_file
|
2335
|
+
step.setArgument('geometry_num_floors_above_grade', 2)
|
1930
2336
|
step.setArgument('geometry_attic_type', HPXML::AtticTypeConditioned)
|
2337
|
+
step.setArgument('ducts_supply_location', HPXML::LocationLivingSpace)
|
2338
|
+
step.setArgument('ducts_return_location', HPXML::LocationLivingSpace)
|
1931
2339
|
elsif ['invalid_files/dhw-indirect-without-boiler.osw'].include? osw_file
|
1932
2340
|
step.setArgument('water_heater_type', HPXML::WaterHeaterTypeCombiStorage)
|
1933
|
-
elsif ['invalid_files/multipliers-without-plug-loads.osw'].include? osw_file
|
2341
|
+
elsif ['invalid_files/multipliers-without-tv-plug-loads.osw'].include? osw_file
|
1934
2342
|
step.setArgument('plug_loads_television_annual_kwh', '0.0')
|
2343
|
+
elsif ['invalid_files/multipliers-without-other-plug-loads.osw'].include? osw_file
|
1935
2344
|
step.setArgument('plug_loads_other_annual_kwh', '0.0')
|
2345
|
+
elsif ['invalid_files/multipliers-without-well-pump-plug-loads.osw'].include? osw_file
|
2346
|
+
step.setArgument('plug_loads_well_pump_annual_kwh', '0.0')
|
1936
2347
|
step.setArgument('plug_loads_well_pump_usage_multiplier', 1.0)
|
1937
|
-
|
2348
|
+
elsif ['invalid_files/multipliers-without-vehicle-plug-loads.osw'].include? osw_file
|
2349
|
+
step.setArgument('plug_loads_vehicle_annual_kwh', '0.0')
|
1938
2350
|
step.setArgument('plug_loads_vehicle_usage_multiplier', 1.0)
|
1939
|
-
step.setArgument('plug_loads_vehicle_usage_multiplier_2', 1.0)
|
1940
2351
|
elsif ['invalid_files/multipliers-without-fuel-loads.osw'].include? osw_file
|
1941
2352
|
step.setArgument('fuel_loads_grill_usage_multiplier', 1.0)
|
1942
2353
|
step.setArgument('fuel_loads_lighting_usage_multiplier', 1.0)
|
1943
2354
|
step.setArgument('fuel_loads_fireplace_usage_multiplier', 1.0)
|
2355
|
+
elsif ['invalid_files/foundation-wall-insulation-greater-than-height.osw'].include? osw_file
|
2356
|
+
step.setArgument('floor_assembly_r', 0)
|
2357
|
+
step.setArgument('foundation_wall_insulation_distance_to_bottom', 6.0)
|
2358
|
+
elsif ['invalid_files/conditioned-attic-with-one-floor-above-grade.osw'].include? osw_file
|
2359
|
+
step.setArgument('geometry_attic_type', HPXML::AtticTypeConditioned)
|
2360
|
+
step.setArgument('ceiling_assembly_r', 0.0)
|
2361
|
+
elsif ['invalid_files/zero-number-of-bedrooms.osw'].include? osw_file
|
2362
|
+
step.setArgument('geometry_num_bedrooms', 0)
|
1944
2363
|
end
|
1945
2364
|
return step
|
1946
2365
|
end
|
@@ -1950,6 +2369,7 @@ def create_hpxmls
|
|
1950
2369
|
require_relative 'HPXMLtoOpenStudio/resources/constants'
|
1951
2370
|
require_relative 'HPXMLtoOpenStudio/resources/hotwater_appliances'
|
1952
2371
|
require_relative 'HPXMLtoOpenStudio/resources/hpxml'
|
2372
|
+
require_relative 'HPXMLtoOpenStudio/resources/location'
|
1953
2373
|
require_relative 'HPXMLtoOpenStudio/resources/misc_loads'
|
1954
2374
|
require_relative 'HPXMLtoOpenStudio/resources/waterheater'
|
1955
2375
|
require_relative 'HPXMLtoOpenStudio/resources/xmlhelper'
|
@@ -1989,14 +2409,19 @@ def create_hpxmls
|
|
1989
2409
|
'ASHRAE_Standard_140/L304XC.xml' => 'ASHRAE_Standard_140/L302XC.xml',
|
1990
2410
|
'ASHRAE_Standard_140/L324XC.xml' => 'ASHRAE_Standard_140/L322XC.xml',
|
1991
2411
|
|
2412
|
+
'invalid_files/boiler-invalid-afue.xml' => 'base-hvac-boiler-oil-only.xml',
|
1992
2413
|
'invalid_files/cfis-with-hydronic-distribution.xml' => 'base-hvac-boiler-gas-only.xml',
|
1993
2414
|
'invalid_files/clothes-washer-location.xml' => 'base.xml',
|
1994
2415
|
'invalid_files/clothes-dryer-location.xml' => 'base.xml',
|
1995
2416
|
'invalid_files/cooking-range-location.xml' => 'base.xml',
|
2417
|
+
'invalid_files/dehumidifier-fraction-served.xml' => 'base-appliances-dehumidifier-multiple.xml',
|
2418
|
+
'invalid_files/dehumidifier-setpoints.xml' => 'base-appliances-dehumidifier-multiple.xml',
|
1996
2419
|
'invalid_files/dhw-frac-load-served.xml' => 'base-dhw-multiple.xml',
|
1997
2420
|
'invalid_files/dhw-invalid-ef-tank.xml' => 'base.xml',
|
1998
2421
|
'invalid_files/dhw-invalid-uef-tank-heat-pump.xml' => 'base-dhw-tank-heat-pump-uef.xml',
|
1999
2422
|
'invalid_files/dishwasher-location.xml' => 'base.xml',
|
2423
|
+
'invalid_files/duct-leakage-cfm25.xml' => 'base.xml',
|
2424
|
+
'invalid_files/duct-leakage-percent.xml' => 'base.xml',
|
2000
2425
|
'invalid_files/duct-location.xml' => 'base.xml',
|
2001
2426
|
'invalid_files/duct-location-unconditioned-space.xml' => 'base.xml',
|
2002
2427
|
'invalid_files/duplicate-id.xml' => 'base.xml',
|
@@ -2004,14 +2429,19 @@ def create_hpxmls
|
|
2004
2429
|
'invalid_files/enclosure-basement-missing-exterior-foundation-wall.xml' => 'base-foundation-unconditioned-basement.xml',
|
2005
2430
|
'invalid_files/enclosure-basement-missing-slab.xml' => 'base-foundation-unconditioned-basement.xml',
|
2006
2431
|
'invalid_files/enclosure-floor-area-exceeds-cfa.xml' => 'base.xml',
|
2432
|
+
'invalid_files/enclosure-floor-area-exceeds-cfa2.xml' => 'base-bldgtype-multifamily.xml',
|
2007
2433
|
'invalid_files/enclosure-garage-missing-exterior-wall.xml' => 'base-enclosure-garage.xml',
|
2008
2434
|
'invalid_files/enclosure-garage-missing-roof-ceiling.xml' => 'base-enclosure-garage.xml',
|
2009
2435
|
'invalid_files/enclosure-garage-missing-slab.xml' => 'base-enclosure-garage.xml',
|
2010
2436
|
'invalid_files/enclosure-living-missing-ceiling-roof.xml' => 'base.xml',
|
2011
2437
|
'invalid_files/enclosure-living-missing-exterior-wall.xml' => 'base.xml',
|
2012
|
-
'invalid_files/enclosure-living-missing-floor-slab.xml' => 'base.xml',
|
2438
|
+
'invalid_files/enclosure-living-missing-floor-slab.xml' => 'base-foundation-slab.xml',
|
2439
|
+
'invalid_files/frac-sensible-fuel-load.xml' => 'base-misc-loads-large-uncommon.xml',
|
2440
|
+
'invalid_files/frac-sensible-plug-load.xml' => 'base-misc-loads-large-uncommon.xml',
|
2441
|
+
'invalid_files/frac-total-fuel-load.xml' => 'base-misc-loads-large-uncommon.xml',
|
2442
|
+
'invalid_files/frac-total-plug-load.xml' => 'base-misc-loads-large-uncommon.xml',
|
2443
|
+
'invalid_files/furnace-invalid-afue.xml' => 'base.xml',
|
2013
2444
|
'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
2445
|
'invalid_files/hvac-invalid-distribution-system-type.xml' => 'base.xml',
|
2016
2446
|
'invalid_files/hvac-distribution-multiple-attached-cooling.xml' => 'base-hvac-multiple.xml',
|
2017
2447
|
'invalid_files/hvac-distribution-multiple-attached-heating.xml' => 'base-hvac-multiple.xml',
|
@@ -2020,6 +2450,9 @@ def create_hpxmls
|
|
2020
2450
|
'invalid_files/hvac-dse-multiple-attached-heating.xml' => 'base-hvac-dse.xml',
|
2021
2451
|
'invalid_files/hvac-frac-load-served.xml' => 'base-hvac-multiple.xml',
|
2022
2452
|
'invalid_files/hvac-inconsistent-fan-powers.xml' => 'base.xml',
|
2453
|
+
'invalid_files/generator-number-of-bedrooms-served.xml' => 'base-bldgtype-multifamily-shared-generator.xml',
|
2454
|
+
'invalid_files/generator-output-greater-than-consumption.xml' => 'base-misc-generators.xml',
|
2455
|
+
'invalid_files/invalid-assembly-effective-rvalue.xml' => 'base.xml',
|
2023
2456
|
'invalid_files/invalid-datatype-boolean.xml' => 'base.xml',
|
2024
2457
|
'invalid_files/invalid-datatype-float.xml' => 'base.xml',
|
2025
2458
|
'invalid_files/invalid-datatype-integer.xml' => 'base.xml',
|
@@ -2027,12 +2460,20 @@ def create_hpxmls
|
|
2027
2460
|
'invalid_files/invalid-epw-filepath.xml' => 'base.xml',
|
2028
2461
|
'invalid_files/invalid-facility-type-equipment.xml' => 'base-bldgtype-multifamily-shared-laundry-room.xml',
|
2029
2462
|
'invalid_files/invalid-facility-type-surfaces.xml' => 'base.xml',
|
2463
|
+
'invalid_files/invalid-foundation-wall-properties.xml' => 'base-foundation-unconditioned-basement-wall-insulation.xml',
|
2464
|
+
'invalid_files/invalid-id.xml' => 'base-enclosure-skylights.xml',
|
2465
|
+
'invalid_files/invalid-id2.xml' => 'base-enclosure-skylights.xml',
|
2466
|
+
'invalid_files/invalid-infiltration-volume.xml' => 'base.xml',
|
2030
2467
|
'invalid_files/invalid-input-parameters.xml' => 'base.xml',
|
2031
2468
|
'invalid_files/invalid-neighbor-shading-azimuth.xml' => 'base-misc-neighbor-shading.xml',
|
2469
|
+
'invalid_files/invalid-number-of-bedrooms-served.xml' => 'base-bldgtype-multifamily-shared-pv.xml',
|
2470
|
+
'invalid_files/invalid-number-of-conditioned-floors.xml' => 'base.xml',
|
2471
|
+
'invalid_files/invalid-number-of-units-served.xml' => 'base-bldgtype-multifamily-shared-water-heater.xml',
|
2032
2472
|
'invalid_files/invalid-relatedhvac-dhw-indirect.xml' => 'base-dhw-indirect.xml',
|
2033
2473
|
'invalid_files/invalid-relatedhvac-desuperheater.xml' => 'base-hvac-central-ac-only-1-speed.xml',
|
2034
2474
|
'invalid_files/invalid-runperiod.xml' => 'base.xml',
|
2035
2475
|
'invalid_files/invalid-schema-version.xml' => 'base.xml',
|
2476
|
+
'invalid_files/invalid-shared-vent-in-unit-flowrate.xml' => 'base-bldgtype-multifamily-shared-mechvent.xml',
|
2036
2477
|
'invalid_files/invalid-timestep.xml' => 'base.xml',
|
2037
2478
|
'invalid_files/invalid-window-height.xml' => 'base-enclosure-overhangs.xml',
|
2038
2479
|
'invalid_files/lighting-fractions.xml' => 'base.xml',
|
@@ -2041,6 +2482,10 @@ def create_hpxmls
|
|
2041
2482
|
'invalid_files/multifamily-reference-duct.xml' => 'base.xml',
|
2042
2483
|
'invalid_files/multifamily-reference-surface.xml' => 'base.xml',
|
2043
2484
|
'invalid_files/multifamily-reference-water-heater.xml' => 'base.xml',
|
2485
|
+
'invalid_files/multiple-buildings-without-building-id.xml' => 'base.xml',
|
2486
|
+
'invalid_files/multiple-buildings-wrong-building-id.xml' => 'base.xml',
|
2487
|
+
'invalid_files/multiple-shared-cooling-systems.xml' => 'base-bldgtype-multifamily-shared-chiller-only-baseboard.xml',
|
2488
|
+
'invalid_files/multiple-shared-heating-systems.xml' => 'base-bldgtype-multifamily-shared-boiler-only-baseboard.xml',
|
2044
2489
|
'invalid_files/net-area-negative-roof.xml' => 'base-enclosure-skylights.xml',
|
2045
2490
|
'invalid_files/net-area-negative-wall.xml' => 'base.xml',
|
2046
2491
|
'invalid_files/num-bedrooms-exceeds-limit.xml' => 'base.xml',
|
@@ -2048,7 +2493,6 @@ def create_hpxmls
|
|
2048
2493
|
'invalid_files/refrigerator-location.xml' => 'base.xml',
|
2049
2494
|
'invalid_files/repeated-relatedhvac-dhw-indirect.xml' => 'base-dhw-indirect.xml',
|
2050
2495
|
'invalid_files/repeated-relatedhvac-desuperheater.xml' => 'base-hvac-central-ac-only-1-speed.xml',
|
2051
|
-
'invalid_files/slab-zero-exposed-perimeter.xml' => 'base.xml',
|
2052
2496
|
'invalid_files/solar-thermal-system-with-combi-tankless.xml' => 'base-dhw-combi-tankless.xml',
|
2053
2497
|
'invalid_files/solar-thermal-system-with-desuperheater.xml' => 'base-dhw-desuperheater.xml',
|
2054
2498
|
'invalid_files/solar-thermal-system-with-dhw-indirect.xml' => 'base-dhw-combi-tankless.xml',
|
@@ -2071,6 +2515,7 @@ def create_hpxmls
|
|
2071
2515
|
'base-appliances-dehumidifier-50percent.xml' => 'base-appliances-dehumidifier.xml',
|
2072
2516
|
'base-appliances-dehumidifier-ief-portable.xml' => 'base-appliances-dehumidifier.xml',
|
2073
2517
|
'base-appliances-dehumidifier-ief-whole-home.xml' => 'base-appliances-dehumidifier-ief-portable.xml',
|
2518
|
+
'base-appliances-dehumidifier-multiple.xml' => 'base-appliances-dehumidifier-50percent.xml',
|
2074
2519
|
'base-appliances-gas.xml' => 'base.xml',
|
2075
2520
|
'base-appliances-modified.xml' => 'base.xml',
|
2076
2521
|
'base-appliances-none.xml' => 'base.xml',
|
@@ -2181,10 +2626,12 @@ def create_hpxmls
|
|
2181
2626
|
'base-enclosure-overhangs.xml' => 'base.xml',
|
2182
2627
|
'base-enclosure-rooftypes.xml' => 'base.xml',
|
2183
2628
|
'base-enclosure-skylights.xml' => 'base.xml',
|
2629
|
+
'base-enclosure-skylights-shading.xml' => 'base-enclosure-skylights.xml',
|
2184
2630
|
'base-enclosure-split-level.xml' => 'base-foundation-slab.xml',
|
2185
|
-
'base-enclosure-split-surfaces.xml' => 'base-enclosure-skylights.xml',
|
2631
|
+
'base-enclosure-split-surfaces.xml' => 'base-enclosure-skylights.xml', # Surfaces should collapse via HPXML.collapse_enclosure_surfaces()
|
2632
|
+
'base-enclosure-split-surfaces2.xml' => 'base-enclosure-skylights.xml', # Surfaces should NOT collapse via HPXML.collapse_enclosure_surfaces()
|
2186
2633
|
'base-enclosure-walltypes.xml' => 'base.xml',
|
2187
|
-
'base-enclosure-windows-
|
2634
|
+
'base-enclosure-windows-shading.xml' => 'base.xml',
|
2188
2635
|
'base-enclosure-windows-none.xml' => 'base.xml',
|
2189
2636
|
'base-foundation-multiple.xml' => 'base-foundation-unconditioned-basement.xml',
|
2190
2637
|
'base-foundation-ambient.xml' => 'base.xml',
|
@@ -2199,9 +2646,50 @@ def create_hpxmls
|
|
2199
2646
|
'base-foundation-vented-crawlspace.xml' => 'base.xml',
|
2200
2647
|
'base-foundation-walkout-basement.xml' => 'base.xml',
|
2201
2648
|
'base-foundation-complex.xml' => 'base.xml',
|
2649
|
+
'base-foundation-basement-garage.xml' => 'base.xml',
|
2202
2650
|
'base-hvac-air-to-air-heat-pump-1-speed.xml' => 'base.xml',
|
2651
|
+
'base-hvac-air-to-air-heat-pump-1-speed-cooling-only.xml' => 'base-hvac-air-to-air-heat-pump-1-speed.xml',
|
2652
|
+
'base-hvac-air-to-air-heat-pump-1-speed-heating-only.xml' => 'base-hvac-air-to-air-heat-pump-1-speed.xml',
|
2203
2653
|
'base-hvac-air-to-air-heat-pump-2-speed.xml' => 'base.xml',
|
2204
2654
|
'base-hvac-air-to-air-heat-pump-var-speed.xml' => 'base.xml',
|
2655
|
+
'base-hvac-autosize.xml' => 'base.xml',
|
2656
|
+
'base-hvac-autosize-air-to-air-heat-pump-1-speed.xml' => 'base-hvac-air-to-air-heat-pump-1-speed.xml',
|
2657
|
+
'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',
|
2658
|
+
'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',
|
2659
|
+
'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',
|
2660
|
+
'base-hvac-autosize-air-to-air-heat-pump-2-speed.xml' => 'base-hvac-air-to-air-heat-pump-2-speed.xml',
|
2661
|
+
'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',
|
2662
|
+
'base-hvac-autosize-air-to-air-heat-pump-var-speed.xml' => 'base-hvac-air-to-air-heat-pump-var-speed.xml',
|
2663
|
+
'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',
|
2664
|
+
'base-hvac-autosize-boiler-elec-only.xml' => 'base-hvac-boiler-elec-only.xml',
|
2665
|
+
'base-hvac-autosize-boiler-gas-central-ac-1-speed.xml' => 'base-hvac-boiler-gas-central-ac-1-speed.xml',
|
2666
|
+
'base-hvac-autosize-boiler-gas-only.xml' => 'base-hvac-boiler-gas-only.xml',
|
2667
|
+
'base-hvac-autosize-central-ac-only-1-speed.xml' => 'base-hvac-central-ac-only-1-speed.xml',
|
2668
|
+
'base-hvac-autosize-central-ac-only-2-speed.xml' => 'base-hvac-central-ac-only-2-speed.xml',
|
2669
|
+
'base-hvac-autosize-central-ac-only-var-speed.xml' => 'base-hvac-central-ac-only-var-speed.xml',
|
2670
|
+
'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',
|
2671
|
+
'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',
|
2672
|
+
'base-hvac-autosize-dual-fuel-mini-split-heat-pump-ducted.xml' => 'base-hvac-dual-fuel-mini-split-heat-pump-ducted.xml',
|
2673
|
+
'base-hvac-autosize-elec-resistance-only.xml' => 'base-hvac-elec-resistance-only.xml',
|
2674
|
+
'base-hvac-autosize-evap-cooler-furnace-gas.xml' => 'base-hvac-evap-cooler-furnace-gas.xml',
|
2675
|
+
'base-hvac-autosize-floor-furnace-propane-only.xml' => 'base-hvac-floor-furnace-propane-only.xml',
|
2676
|
+
'base-hvac-autosize-furnace-elec-only.xml' => 'base-hvac-furnace-elec-only.xml',
|
2677
|
+
'base-hvac-autosize-furnace-gas-central-ac-2-speed.xml' => 'base-hvac-furnace-gas-central-ac-2-speed.xml',
|
2678
|
+
'base-hvac-autosize-furnace-gas-central-ac-var-speed.xml' => 'base-hvac-furnace-gas-central-ac-var-speed.xml',
|
2679
|
+
'base-hvac-autosize-furnace-gas-only.xml' => 'base-hvac-furnace-gas-only.xml',
|
2680
|
+
'base-hvac-autosize-furnace-gas-room-ac.xml' => 'base-hvac-furnace-gas-room-ac.xml',
|
2681
|
+
'base-hvac-autosize-ground-to-air-heat-pump.xml' => 'base-hvac-ground-to-air-heat-pump.xml',
|
2682
|
+
'base-hvac-autosize-ground-to-air-heat-pump-cooling-only.xml' => 'base-hvac-ground-to-air-heat-pump-cooling-only.xml',
|
2683
|
+
'base-hvac-autosize-ground-to-air-heat-pump-heating-only.xml' => 'base-hvac-ground-to-air-heat-pump-heating-only.xml',
|
2684
|
+
'base-hvac-autosize-ground-to-air-heat-pump-manual-s-oversize-allowances.xml' => 'base-hvac-autosize-ground-to-air-heat-pump.xml',
|
2685
|
+
'base-hvac-autosize-mini-split-heat-pump-ducted.xml' => 'base-hvac-mini-split-heat-pump-ducted.xml',
|
2686
|
+
'base-hvac-autosize-mini-split-heat-pump-ducted-cooling-only.xml' => 'base-hvac-mini-split-heat-pump-ducted-cooling-only.xml',
|
2687
|
+
'base-hvac-autosize-mini-split-heat-pump-ducted-heating-only.xml' => 'base-hvac-mini-split-heat-pump-ducted-heating-only.xml',
|
2688
|
+
'base-hvac-autosize-mini-split-heat-pump-ducted-manual-s-oversize-allowances.xml' => 'base-hvac-autosize-mini-split-heat-pump-ducted.xml',
|
2689
|
+
'base-hvac-autosize-mini-split-air-conditioner-only-ducted.xml' => 'base-hvac-mini-split-air-conditioner-only-ducted.xml',
|
2690
|
+
'base-hvac-autosize-room-ac-only.xml' => 'base-hvac-room-ac-only.xml',
|
2691
|
+
'base-hvac-autosize-stove-oil-only.xml' => 'base-hvac-stove-oil-only.xml',
|
2692
|
+
'base-hvac-autosize-wall-furnace-elec-only.xml' => 'base-hvac-wall-furnace-elec-only.xml',
|
2205
2693
|
'base-hvac-boiler-coal-only.xml' => 'base.xml',
|
2206
2694
|
'base-hvac-boiler-elec-only.xml' => 'base.xml',
|
2207
2695
|
'base-hvac-boiler-gas-central-ac-1-speed.xml' => 'base.xml',
|
@@ -2239,12 +2727,27 @@ def create_hpxmls
|
|
2239
2727
|
'base-hvac-furnace-wood-only.xml' => 'base.xml',
|
2240
2728
|
'base-hvac-furnace-x3-dse.xml' => 'base.xml',
|
2241
2729
|
'base-hvac-ground-to-air-heat-pump.xml' => 'base.xml',
|
2242
|
-
'base-hvac-
|
2730
|
+
'base-hvac-ground-to-air-heat-pump-cooling-only.xml' => 'base-hvac-ground-to-air-heat-pump.xml',
|
2731
|
+
'base-hvac-ground-to-air-heat-pump-heating-only.xml' => 'base-hvac-ground-to-air-heat-pump.xml',
|
2732
|
+
'base-hvac-install-quality-none-furnace-gas-central-ac-1-speed.xml' => 'base.xml',
|
2733
|
+
'base-hvac-install-quality-airflow-defect-furnace-gas-central-ac-1-speed.xml' => 'base.xml',
|
2734
|
+
'base-hvac-install-quality-charge-defect-furnace-gas-central-ac-1-speed.xml' => 'base.xml',
|
2735
|
+
'base-hvac-install-quality-blower-efficiency-furnace-gas-central-ac-1-speed.xml' => 'base.xml',
|
2736
|
+
'base-hvac-install-quality-all-air-to-air-heat-pump-1-speed.xml' => 'base-hvac-air-to-air-heat-pump-1-speed.xml',
|
2737
|
+
'base-hvac-install-quality-all-air-to-air-heat-pump-2-speed.xml' => 'base-hvac-air-to-air-heat-pump-2-speed.xml',
|
2738
|
+
'base-hvac-install-quality-all-air-to-air-heat-pump-var-speed.xml' => 'base-hvac-air-to-air-heat-pump-var-speed.xml',
|
2739
|
+
'base-hvac-install-quality-all-furnace-gas-central-ac-1-speed.xml' => 'base.xml',
|
2740
|
+
'base-hvac-install-quality-all-furnace-gas-central-ac-2-speed.xml' => 'base-hvac-furnace-gas-central-ac-2-speed.xml',
|
2741
|
+
'base-hvac-install-quality-all-furnace-gas-central-ac-var-speed.xml' => 'base-hvac-furnace-gas-central-ac-var-speed.xml',
|
2742
|
+
'base-hvac-install-quality-all-furnace-gas-only.xml' => 'base-hvac-furnace-gas-only.xml',
|
2743
|
+
'base-hvac-install-quality-all-ground-to-air-heat-pump.xml' => 'base-hvac-ground-to-air-heat-pump.xml',
|
2744
|
+
'base-hvac-install-quality-all-mini-split-heat-pump-ducted.xml' => 'base-hvac-mini-split-heat-pump-ducted.xml',
|
2745
|
+
'base-hvac-install-quality-all-mini-split-air-conditioner-only-ducted.xml' => 'base-hvac-mini-split-air-conditioner-only-ducted.xml',
|
2243
2746
|
'base-hvac-mini-split-air-conditioner-only-ducted.xml' => 'base.xml',
|
2244
2747
|
'base-hvac-mini-split-air-conditioner-only-ductless.xml' => 'base-hvac-mini-split-air-conditioner-only-ducted.xml',
|
2245
2748
|
'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
2749
|
'base-hvac-mini-split-heat-pump-ducted-cooling-only.xml' => 'base-hvac-mini-split-heat-pump-ducted.xml',
|
2750
|
+
'base-hvac-mini-split-heat-pump-ducted-heating-only.xml' => 'base-hvac-mini-split-heat-pump-ducted.xml',
|
2248
2751
|
'base-hvac-mini-split-heat-pump-ductless.xml' => 'base-hvac-mini-split-heat-pump-ducted.xml',
|
2249
2752
|
'base-hvac-multiple.xml' => 'base.xml',
|
2250
2753
|
'base-hvac-multiple2.xml' => 'base.xml',
|
@@ -2264,10 +2767,14 @@ def create_hpxmls
|
|
2264
2767
|
'base-lighting-detailed.xml' => 'base.xml',
|
2265
2768
|
'base-lighting-none.xml' => 'base.xml',
|
2266
2769
|
'base-location-AMY-2012.xml' => 'base.xml',
|
2267
|
-
'base-location-baltimore-md.xml' => 'base.xml',
|
2770
|
+
'base-location-baltimore-md.xml' => 'base-foundation-unvented-crawlspace.xml',
|
2268
2771
|
'base-location-dallas-tx.xml' => 'base-foundation-slab.xml',
|
2269
|
-
'base-location-duluth-mn.xml' => 'base.xml',
|
2772
|
+
'base-location-duluth-mn.xml' => 'base-foundation-unconditioned-basement.xml',
|
2773
|
+
'base-location-helena-mt.xml' => 'base.xml',
|
2774
|
+
'base-location-honolulu-hi.xml' => 'base-foundation-slab.xml',
|
2270
2775
|
'base-location-miami-fl.xml' => 'base-foundation-slab.xml',
|
2776
|
+
'base-location-phoenix-az.xml' => 'base-foundation-slab.xml',
|
2777
|
+
'base-location-portland-or.xml' => 'base-foundation-vented-crawlspace.xml',
|
2271
2778
|
'base-mechvent-balanced.xml' => 'base.xml',
|
2272
2779
|
'base-mechvent-bath-kitchen-fans.xml' => 'base.xml',
|
2273
2780
|
'base-mechvent-cfis.xml' => 'base.xml',
|
@@ -2288,8 +2795,9 @@ def create_hpxmls
|
|
2288
2795
|
'base-misc-loads-large-uncommon2.xml' => 'base-misc-loads-large-uncommon.xml',
|
2289
2796
|
'base-misc-loads-none.xml' => 'base.xml',
|
2290
2797
|
'base-misc-neighbor-shading.xml' => 'base.xml',
|
2291
|
-
'base-misc-
|
2798
|
+
'base-misc-shielding-of-home.xml' => 'base.xml',
|
2292
2799
|
'base-misc-usage-multiplier.xml' => 'base.xml',
|
2800
|
+
'base-multiple-buildings.xml' => 'base.xml',
|
2293
2801
|
'base-pv.xml' => 'base.xml',
|
2294
2802
|
'base-simcontrol-calendar-year-custom.xml' => 'base.xml',
|
2295
2803
|
'base-simcontrol-daylight-saving-custom.xml' => 'base.xml',
|
@@ -2297,42 +2805,8 @@ def create_hpxmls
|
|
2297
2805
|
'base-simcontrol-runperiod-1-month.xml' => 'base.xml',
|
2298
2806
|
'base-simcontrol-timestep-10-mins.xml' => 'base.xml',
|
2299
2807
|
'base-schedules-stochastic.xml' => 'base.xml',
|
2808
|
+
'base-schedules-stochastic-vacant.xml' => 'base-schedules-stochastic.xml',
|
2300
2809
|
'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
2810
|
}
|
2337
2811
|
|
2338
2812
|
puts "Generating #{hpxmls_files.size} HPXML files..."
|
@@ -2418,6 +2892,9 @@ def create_hpxmls
|
|
2418
2892
|
elsif ['invalid_files/invalid-schema-version.xml'].include? derivative
|
2419
2893
|
root = XMLHelper.get_element(hpxml_doc, '/HPXML')
|
2420
2894
|
XMLHelper.add_attribute(root, 'schemaVersion', '2.3')
|
2895
|
+
elsif ['invalid_files/invalid-id2.xml'].include? derivative
|
2896
|
+
element = XMLHelper.get_element(hpxml_doc, '/HPXML/Building/BuildingDetails/Enclosure/Skylights/Skylight/SystemIdentifier')
|
2897
|
+
XMLHelper.delete_attribute(element, 'id')
|
2421
2898
|
end
|
2422
2899
|
|
2423
2900
|
if derivative.include? 'ASHRAE_Standard_140'
|
@@ -2428,6 +2905,20 @@ def create_hpxmls
|
|
2428
2905
|
|
2429
2906
|
XMLHelper.write_file(hpxml_doc, hpxml_path)
|
2430
2907
|
|
2908
|
+
if ['base-multiple-buildings.xml',
|
2909
|
+
'invalid_files/multiple-buildings-without-building-id.xml',
|
2910
|
+
'invalid_files/multiple-buildings-wrong-building-id.xml'].include? derivative
|
2911
|
+
# HPXML class doesn't support multiple buildings, so we'll stitch together manually.
|
2912
|
+
hpxml_element = XMLHelper.get_element(hpxml_doc, '/HPXML')
|
2913
|
+
building_element = XMLHelper.get_element(hpxml_element, 'Building')
|
2914
|
+
for i in 2..3
|
2915
|
+
new_building_element = Marshal.load(Marshal.dump(building_element))
|
2916
|
+
XMLHelper.add_attribute(XMLHelper.get_element(new_building_element, 'BuildingID'), 'id', "MyBuilding#{i}")
|
2917
|
+
hpxml_element.children << new_building_element
|
2918
|
+
end
|
2919
|
+
XMLHelper.write_file(hpxml_doc, hpxml_path)
|
2920
|
+
end
|
2921
|
+
|
2431
2922
|
if not hpxml_path.include? 'invalid_files'
|
2432
2923
|
# Validate file against HPXML schema
|
2433
2924
|
schemas_dir = File.absolute_path(File.join(File.dirname(__FILE__), 'HPXMLtoOpenStudio/resources'))
|
@@ -2518,6 +3009,8 @@ def set_hpxml_header(hpxml_file, hpxml)
|
|
2518
3009
|
hpxml.header.timestep = nil
|
2519
3010
|
elsif ['base-schedules-stochastic.xml'].include? hpxml_file
|
2520
3011
|
hpxml.header.schedules_path = 'BuildResidentialHPXML/tests/schedules/stochastic.csv'
|
3012
|
+
elsif ['base-schedules-stochastic-vacant.xml'].include? hpxml_file
|
3013
|
+
hpxml.header.schedules_path = 'BuildResidentialHPXML/tests/schedules/vacant.csv'
|
2521
3014
|
elsif ['base-schedules-user-specified.xml'].include? hpxml_file
|
2522
3015
|
hpxml.header.schedules_path = 'BuildResidentialHPXML/tests/schedules/user-specified.csv'
|
2523
3016
|
elsif ['invalid_files/invalid-input-parameters.xml'].include? hpxml_file
|
@@ -2529,8 +3022,8 @@ def set_hpxml_site(hpxml_file, hpxml)
|
|
2529
3022
|
if ['base.xml'].include? hpxml_file
|
2530
3023
|
hpxml.site.fuels = [HPXML::FuelTypeElectricity, HPXML::FuelTypeNaturalGas]
|
2531
3024
|
hpxml.site.site_type = HPXML::SiteTypeSuburban
|
2532
|
-
elsif ['base-misc-
|
2533
|
-
hpxml.site.
|
3025
|
+
elsif ['base-misc-shielding-of-home.xml'].include? hpxml_file
|
3026
|
+
hpxml.site.shielding_of_home = HPXML::ShieldingWellShielded
|
2534
3027
|
elsif ['base-misc-defaults.xml'].include? hpxml_file
|
2535
3028
|
hpxml.site.site_type = nil
|
2536
3029
|
elsif ['invalid_files/invalid-input-parameters.xml'].include? hpxml_file
|
@@ -2559,7 +3052,6 @@ def set_hpxml_building_construction(hpxml_file, hpxml)
|
|
2559
3052
|
hpxml.building_construction.conditioned_floor_area = 1539
|
2560
3053
|
hpxml.building_construction.conditioned_building_volume = 12312
|
2561
3054
|
hpxml.building_construction.residential_facility_type = HPXML::ResidentialTypeSFD
|
2562
|
-
hpxml.building_construction.use_only_ideal_air_system = true
|
2563
3055
|
elsif ['ASHRAE_Standard_140/L322XC.xml'].include? hpxml_file
|
2564
3056
|
hpxml.building_construction.number_of_conditioned_floors = 2
|
2565
3057
|
hpxml.building_construction.conditioned_floor_area = 3078
|
@@ -2601,8 +3093,6 @@ def set_hpxml_building_construction(hpxml_file, hpxml)
|
|
2601
3093
|
hpxml.building_construction.number_of_conditioned_floors -= 1
|
2602
3094
|
hpxml.building_construction.conditioned_floor_area -= 1350
|
2603
3095
|
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
3096
|
elsif ['base-atticroof-conditioned.xml'].include? hpxml_file
|
2607
3097
|
hpxml.building_construction.number_of_conditioned_floors += 1
|
2608
3098
|
hpxml.building_construction.number_of_conditioned_floors_above_grade += 1
|
@@ -2615,7 +3105,8 @@ def set_hpxml_building_construction(hpxml_file, hpxml)
|
|
2615
3105
|
hpxml.building_construction.number_of_conditioned_floors_above_grade += 1
|
2616
3106
|
hpxml.building_construction.conditioned_floor_area += 1350
|
2617
3107
|
hpxml.building_construction.conditioned_building_volume += 1350 * 8
|
2618
|
-
elsif ['base-enclosure-2stories-garage.xml'
|
3108
|
+
elsif ['base-enclosure-2stories-garage.xml',
|
3109
|
+
'base-foundation-basement-garage.xml'].include? hpxml_file
|
2619
3110
|
hpxml.building_construction.conditioned_floor_area -= 400 * 2
|
2620
3111
|
hpxml.building_construction.conditioned_building_volume -= 400 * 2 * 8
|
2621
3112
|
elsif ['base-misc-defaults.xml'].include? hpxml_file
|
@@ -2628,12 +3119,16 @@ def set_hpxml_building_construction(hpxml_file, hpxml)
|
|
2628
3119
|
hpxml.building_construction.number_of_conditioned_floors = 1.5
|
2629
3120
|
hpxml.building_construction.number_of_conditioned_floors_above_grade = 1.5
|
2630
3121
|
elsif ['invalid_files/enclosure-floor-area-exceeds-cfa.xml'].include? hpxml_file
|
2631
|
-
hpxml.building_construction.conditioned_floor_area
|
3122
|
+
hpxml.building_construction.conditioned_floor_area = 1348.8
|
3123
|
+
elsif ['invalid_files/enclosure-floor-area-exceeds-cfa2.xml'].include? hpxml_file
|
3124
|
+
hpxml.building_construction.conditioned_floor_area = 898.8
|
2632
3125
|
elsif ['invalid_files/num-bedrooms-exceeds-limit.xml'].include? hpxml_file
|
2633
3126
|
hpxml.building_construction.number_of_bedrooms = 40
|
2634
3127
|
elsif ['invalid_files/invalid-facility-type-equipment.xml',
|
2635
3128
|
'invalid_files/invalid-facility-type-surfaces.xml'].include? hpxml_file
|
2636
3129
|
hpxml.building_construction.residential_facility_type = HPXML::ResidentialTypeSFD
|
3130
|
+
elsif ['invalid_files/invalid-number-of-conditioned-floors.xml'].include? hpxml_file
|
3131
|
+
hpxml.building_construction.number_of_conditioned_floors_above_grade = hpxml.building_construction.number_of_conditioned_floors + 1
|
2637
3132
|
end
|
2638
3133
|
end
|
2639
3134
|
|
@@ -2657,30 +3152,50 @@ def set_hpxml_climate_and_risk_zones(hpxml_file, hpxml)
|
|
2657
3152
|
hpxml.climate_and_risk_zones.weather_station_name = 'Las Vegas, NV'
|
2658
3153
|
hpxml.climate_and_risk_zones.weather_station_epw_filepath = 'USA_NV_Las.Vegas-McCarran.Intl.AP.723860_TMY3.epw'
|
2659
3154
|
elsif ['base.xml'].include? hpxml_file
|
2660
|
-
hpxml.climate_and_risk_zones.iecc_zone =
|
3155
|
+
hpxml.climate_and_risk_zones.iecc_zone = Location.get_climate_zone_iecc(725650)
|
2661
3156
|
hpxml.climate_and_risk_zones.weather_station_name = 'Denver, CO'
|
2662
3157
|
hpxml.climate_and_risk_zones.weather_station_epw_filepath = 'USA_CO_Denver.Intl.AP.725650_TMY3.epw'
|
2663
3158
|
hpxml.header.state_code = 'CO'
|
2664
3159
|
elsif ['base-location-baltimore-md.xml'].include? hpxml_file
|
2665
|
-
hpxml.climate_and_risk_zones.iecc_zone =
|
3160
|
+
hpxml.climate_and_risk_zones.iecc_zone = Location.get_climate_zone_iecc(724060)
|
2666
3161
|
hpxml.climate_and_risk_zones.weather_station_name = 'Baltimore, MD'
|
2667
3162
|
hpxml.climate_and_risk_zones.weather_station_epw_filepath = 'USA_MD_Baltimore-Washington.Intl.AP.724060_TMY3.epw'
|
2668
3163
|
hpxml.header.state_code = 'MD'
|
2669
3164
|
elsif ['base-location-dallas-tx.xml'].include? hpxml_file
|
2670
|
-
hpxml.climate_and_risk_zones.iecc_zone =
|
3165
|
+
hpxml.climate_and_risk_zones.iecc_zone = Location.get_climate_zone_iecc(722590)
|
2671
3166
|
hpxml.climate_and_risk_zones.weather_station_name = 'Dallas, TX'
|
2672
3167
|
hpxml.climate_and_risk_zones.weather_station_epw_filepath = 'USA_TX_Dallas-Fort.Worth.Intl.AP.722590_TMY3.epw'
|
2673
3168
|
hpxml.header.state_code = 'TX'
|
2674
3169
|
elsif ['base-location-duluth-mn.xml'].include? hpxml_file
|
2675
|
-
hpxml.climate_and_risk_zones.iecc_zone =
|
3170
|
+
hpxml.climate_and_risk_zones.iecc_zone = Location.get_climate_zone_iecc(727450)
|
2676
3171
|
hpxml.climate_and_risk_zones.weather_station_name = 'Duluth, MN'
|
2677
3172
|
hpxml.climate_and_risk_zones.weather_station_epw_filepath = 'USA_MN_Duluth.Intl.AP.727450_TMY3.epw'
|
2678
3173
|
hpxml.header.state_code = 'MN'
|
3174
|
+
elsif ['base-location-helena-mt.xml'].include? hpxml_file
|
3175
|
+
hpxml.climate_and_risk_zones.iecc_zone = Location.get_climate_zone_iecc(727720)
|
3176
|
+
hpxml.climate_and_risk_zones.weather_station_name = 'Helena, MT'
|
3177
|
+
hpxml.climate_and_risk_zones.weather_station_epw_filepath = 'USA_MT_Helena.Rgnl.AP.727720_TMY3.epw'
|
3178
|
+
hpxml.header.state_code = 'MT'
|
3179
|
+
elsif ['base-location-honolulu-hi.xml'].include? hpxml_file
|
3180
|
+
hpxml.climate_and_risk_zones.iecc_zone = Location.get_climate_zone_iecc(911820)
|
3181
|
+
hpxml.climate_and_risk_zones.weather_station_name = 'Honolulu, HI'
|
3182
|
+
hpxml.climate_and_risk_zones.weather_station_epw_filepath = 'USA_HI_Honolulu.Intl.AP.911820_TMY3.epw'
|
3183
|
+
hpxml.header.state_code = 'HI'
|
2679
3184
|
elsif ['base-location-miami-fl.xml'].include? hpxml_file
|
2680
|
-
hpxml.climate_and_risk_zones.iecc_zone =
|
3185
|
+
hpxml.climate_and_risk_zones.iecc_zone = Location.get_climate_zone_iecc(722020)
|
2681
3186
|
hpxml.climate_and_risk_zones.weather_station_name = 'Miami, FL'
|
2682
3187
|
hpxml.climate_and_risk_zones.weather_station_epw_filepath = 'USA_FL_Miami.Intl.AP.722020_TMY3.epw'
|
2683
3188
|
hpxml.header.state_code = 'FL'
|
3189
|
+
elsif ['base-location-phoenix-az.xml'].include? hpxml_file
|
3190
|
+
hpxml.climate_and_risk_zones.iecc_zone = Location.get_climate_zone_iecc(722780)
|
3191
|
+
hpxml.climate_and_risk_zones.weather_station_name = 'Phoenix, AZ'
|
3192
|
+
hpxml.climate_and_risk_zones.weather_station_epw_filepath = 'USA_AZ_Phoenix-Sky.Harbor.Intl.AP.722780_TMY3.epw'
|
3193
|
+
hpxml.header.state_code = 'AZ'
|
3194
|
+
elsif ['base-location-portland-or.xml'].include? hpxml_file
|
3195
|
+
hpxml.climate_and_risk_zones.iecc_zone = Location.get_climate_zone_iecc(726980)
|
3196
|
+
hpxml.climate_and_risk_zones.weather_station_name = 'Portland, OR'
|
3197
|
+
hpxml.climate_and_risk_zones.weather_station_epw_filepath = 'USA_OR_Portland.Intl.AP.726980_TMY3.epw'
|
3198
|
+
hpxml.header.state_code = 'OR'
|
2684
3199
|
elsif ['base-location-AMY-2012.xml'].include? hpxml_file
|
2685
3200
|
hpxml.climate_and_risk_zones.weather_station_name = 'Boulder, CO'
|
2686
3201
|
hpxml.climate_and_risk_zones.weather_station_epw_filepath = 'US_CO_Boulder_AMY_2012.epw'
|
@@ -2729,6 +3244,8 @@ def set_hpxml_air_infiltration_measurements(hpxml_file, hpxml)
|
|
2729
3244
|
end
|
2730
3245
|
if ['base-misc-defaults.xml'].include? hpxml_file
|
2731
3246
|
hpxml.air_infiltration_measurements[0].infiltration_volume = nil
|
3247
|
+
elsif ['invalid_files/invalid-infiltration-volume.xml'].include? hpxml_file
|
3248
|
+
hpxml.air_infiltration_measurements[0].infiltration_volume = infil_volume * 0.25
|
2732
3249
|
else
|
2733
3250
|
hpxml.air_infiltration_measurements[0].infiltration_volume = infil_volume
|
2734
3251
|
end
|
@@ -2899,16 +3416,21 @@ def set_hpxml_roofs(hpxml_file, hpxml)
|
|
2899
3416
|
elsif ['base-atticroof-cathedral.xml'].include? hpxml_file
|
2900
3417
|
hpxml.roofs[0].interior_adjacent_to = HPXML::LocationLivingSpace
|
2901
3418
|
hpxml.roofs[0].insulation_assembly_r_value = 25.8
|
2902
|
-
elsif ['base-enclosure-garage.xml'
|
3419
|
+
elsif ['base-enclosure-garage.xml',
|
3420
|
+
'base-foundation-basement-garage.xml'].include? hpxml_file
|
2903
3421
|
hpxml.roofs[0].area += 670
|
2904
3422
|
elsif ['base-atticroof-unvented-insulated-roof.xml'].include? hpxml_file
|
2905
3423
|
hpxml.roofs[0].insulation_assembly_r_value = 25.8
|
2906
|
-
elsif ['base-enclosure-split-surfaces.xml'
|
3424
|
+
elsif ['base-enclosure-split-surfaces.xml',
|
3425
|
+
'base-enclosure-split-surfaces2.xml'].include? hpxml_file
|
2907
3426
|
for n in 1..hpxml.roofs.size
|
2908
3427
|
hpxml.roofs[n - 1].area /= 9.0
|
2909
3428
|
for i in 2..9
|
2910
3429
|
hpxml.roofs << hpxml.roofs[n - 1].dup
|
2911
3430
|
hpxml.roofs[-1].id += i.to_s
|
3431
|
+
if hpxml_file == 'base-enclosure-split-surfaces2.xml'
|
3432
|
+
hpxml.roofs[-1].insulation_assembly_r_value += 0.01 * i
|
3433
|
+
end
|
2912
3434
|
end
|
2913
3435
|
end
|
2914
3436
|
hpxml.roofs << hpxml.roofs[-1].dup
|
@@ -2986,6 +3508,15 @@ def set_hpxml_rim_joists(hpxml_file, hpxml)
|
|
2986
3508
|
solar_absorptance: 0.7,
|
2987
3509
|
emittance: 0.92,
|
2988
3510
|
insulation_assembly_r_value: 23.0)
|
3511
|
+
elsif ['base-bldgtype-single-family-attached.xml'].include? hpxml_file
|
3512
|
+
hpxml.rim_joists[-1].area = 66
|
3513
|
+
hpxml.rim_joists.add(id: 'RimJoistOther',
|
3514
|
+
exterior_adjacent_to: HPXML::LocationBasementConditioned,
|
3515
|
+
interior_adjacent_to: HPXML::LocationBasementConditioned,
|
3516
|
+
area: 28,
|
3517
|
+
solar_absorptance: 0.7,
|
3518
|
+
emittance: 0.92,
|
3519
|
+
insulation_assembly_r_value: 4.0)
|
2989
3520
|
elsif ['base-bldgtype-multifamily.xml'].include? hpxml_file
|
2990
3521
|
hpxml.rim_joists.clear
|
2991
3522
|
elsif ['base-enclosure-walltypes.xml'].include? hpxml_file
|
@@ -3011,7 +3542,7 @@ def set_hpxml_rim_joists(hpxml_file, hpxml)
|
|
3011
3542
|
elsif ['base-foundation-unconditioned-basement.xml'].include? hpxml_file
|
3012
3543
|
for i in 0..hpxml.rim_joists.size - 1
|
3013
3544
|
hpxml.rim_joists[i].interior_adjacent_to = HPXML::LocationBasementUnconditioned
|
3014
|
-
hpxml.rim_joists[i].insulation_assembly_r_value =
|
3545
|
+
hpxml.rim_joists[i].insulation_assembly_r_value = 4.0
|
3015
3546
|
end
|
3016
3547
|
elsif ['base-foundation-unconditioned-basement-wall-insulation.xml'].include? hpxml_file
|
3017
3548
|
for i in 0..hpxml.rim_joists.size - 1
|
@@ -3035,7 +3566,9 @@ def set_hpxml_rim_joists(hpxml_file, hpxml)
|
|
3035
3566
|
area: 81,
|
3036
3567
|
solar_absorptance: 0.7,
|
3037
3568
|
emittance: 0.92,
|
3038
|
-
insulation_assembly_r_value:
|
3569
|
+
insulation_assembly_r_value: 4.0)
|
3570
|
+
elsif ['base-enclosure-garage.xml'].include? hpxml_file
|
3571
|
+
hpxml.rim_joists[-1].area = 116
|
3039
3572
|
elsif ['base-enclosure-2stories.xml'].include? hpxml_file
|
3040
3573
|
hpxml.rim_joists.add(id: 'RimJoist2ndStory',
|
3041
3574
|
exterior_adjacent_to: HPXML::LocationOutside,
|
@@ -3045,12 +3578,16 @@ def set_hpxml_rim_joists(hpxml_file, hpxml)
|
|
3045
3578
|
solar_absorptance: 0.7,
|
3046
3579
|
emittance: 0.92,
|
3047
3580
|
insulation_assembly_r_value: 23.0)
|
3048
|
-
elsif ['base-enclosure-split-surfaces.xml'
|
3581
|
+
elsif ['base-enclosure-split-surfaces.xml',
|
3582
|
+
'base-enclosure-split-surfaces2.xml'].include? hpxml_file
|
3049
3583
|
for n in 1..hpxml.rim_joists.size
|
3050
3584
|
hpxml.rim_joists[n - 1].area /= 9.0
|
3051
3585
|
for i in 2..9
|
3052
3586
|
hpxml.rim_joists << hpxml.rim_joists[n - 1].dup
|
3053
3587
|
hpxml.rim_joists[-1].id += i.to_s
|
3588
|
+
if hpxml_file == 'base-enclosure-split-surfaces2.xml'
|
3589
|
+
hpxml.rim_joists[-1].insulation_assembly_r_value += 0.01 * i
|
3590
|
+
end
|
3054
3591
|
end
|
3055
3592
|
end
|
3056
3593
|
hpxml.rim_joists << hpxml.rim_joists[-1].dup
|
@@ -3421,12 +3958,16 @@ def set_hpxml_walls(hpxml_file, hpxml)
|
|
3421
3958
|
elsif ['base-bldgtype-multifamily-adjacent-to-non-freezing-space.xml'].include? hpxml_file
|
3422
3959
|
hpxml.walls[-1].exterior_adjacent_to = HPXML::LocationOtherNonFreezingSpace
|
3423
3960
|
hpxml.walls[-1].insulation_assembly_r_value = 23
|
3424
|
-
elsif ['base-enclosure-split-surfaces.xml'
|
3961
|
+
elsif ['base-enclosure-split-surfaces.xml',
|
3962
|
+
'base-enclosure-split-surfaces2.xml'].include? hpxml_file
|
3425
3963
|
for n in 1..hpxml.walls.size
|
3426
3964
|
hpxml.walls[n - 1].area /= 9.0
|
3427
3965
|
for i in 2..9
|
3428
3966
|
hpxml.walls << hpxml.walls[n - 1].dup
|
3429
3967
|
hpxml.walls[-1].id += i.to_s
|
3968
|
+
if hpxml_file == 'base-enclosure-split-surfaces2.xml'
|
3969
|
+
hpxml.walls[-1].insulation_assembly_r_value += 0.01 * i
|
3970
|
+
end
|
3430
3971
|
end
|
3431
3972
|
end
|
3432
3973
|
hpxml.walls << hpxml.walls[-1].dup
|
@@ -3445,6 +3986,8 @@ def set_hpxml_walls(hpxml_file, hpxml)
|
|
3445
3986
|
solar_absorptance: 0.7,
|
3446
3987
|
emittance: 0.92,
|
3447
3988
|
insulation_assembly_r_value: 4.0)
|
3989
|
+
elsif ['invalid_files/invalid-assembly-effective-rvalue.xml'].include? hpxml_file
|
3990
|
+
hpxml.walls[0].insulation_assembly_r_value = 0
|
3448
3991
|
elsif ['base-misc-defaults.xml'].include? hpxml_file
|
3449
3992
|
hpxml.walls.each do |wall|
|
3450
3993
|
wall.siding = nil
|
@@ -3452,6 +3995,24 @@ def set_hpxml_walls(hpxml_file, hpxml)
|
|
3452
3995
|
wall.color = HPXML::ColorMedium
|
3453
3996
|
wall.emittance = nil
|
3454
3997
|
end
|
3998
|
+
elsif ['base-foundation-basement-garage.xml'].include? hpxml_file
|
3999
|
+
hpxml.walls.add(id: 'WallGarageBasement',
|
4000
|
+
exterior_adjacent_to: HPXML::LocationGarage,
|
4001
|
+
interior_adjacent_to: HPXML::LocationBasementConditioned,
|
4002
|
+
wall_type: HPXML::WallTypeWoodStud,
|
4003
|
+
area: 320,
|
4004
|
+
solar_absorptance: 0.7,
|
4005
|
+
emittance: 0.92,
|
4006
|
+
insulation_assembly_r_value: 23)
|
4007
|
+
hpxml.walls.add(id: 'WallGarageExterior',
|
4008
|
+
exterior_adjacent_to: HPXML::LocationOutside,
|
4009
|
+
interior_adjacent_to: HPXML::LocationGarage,
|
4010
|
+
wall_type: HPXML::WallTypeWoodStud,
|
4011
|
+
siding: HPXML::SidingTypeWood,
|
4012
|
+
area: 320,
|
4013
|
+
solar_absorptance: 0.7,
|
4014
|
+
emittance: 0.92,
|
4015
|
+
insulation_assembly_r_value: 4)
|
3455
4016
|
end
|
3456
4017
|
hpxml.walls.each do |wall|
|
3457
4018
|
next unless wall.is_interior
|
@@ -3741,19 +4302,21 @@ def set_hpxml_foundation_walls(hpxml_file, hpxml)
|
|
3741
4302
|
insulation_exterior_distance_to_top: 0,
|
3742
4303
|
insulation_exterior_distance_to_bottom: 4,
|
3743
4304
|
insulation_exterior_r_value: 8.9)
|
3744
|
-
elsif ['base-enclosure-split-surfaces.xml'
|
4305
|
+
elsif ['base-enclosure-split-surfaces.xml',
|
4306
|
+
'base-enclosure-split-surfaces2.xml'].include? hpxml_file
|
3745
4307
|
for n in 1..hpxml.foundation_walls.size
|
3746
4308
|
hpxml.foundation_walls[n - 1].area /= 9.0
|
3747
4309
|
for i in 2..9
|
3748
4310
|
hpxml.foundation_walls << hpxml.foundation_walls[n - 1].dup
|
3749
4311
|
hpxml.foundation_walls[-1].id += i.to_s
|
4312
|
+
if hpxml_file == 'base-enclosure-split-surfaces2.xml'
|
4313
|
+
hpxml.foundation_walls[-1].insulation_exterior_r_value += 0.01 * i
|
4314
|
+
end
|
3750
4315
|
end
|
3751
4316
|
end
|
3752
4317
|
hpxml.foundation_walls << hpxml.foundation_walls[-1].dup
|
3753
4318
|
hpxml.foundation_walls[-1].id = 'TinyFoundationWall'
|
3754
4319
|
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
4320
|
elsif ['base-misc-defaults.xml'].include? hpxml_file
|
3758
4321
|
hpxml.foundation_walls.each do |fwall|
|
3759
4322
|
fwall.thickness = nil
|
@@ -3774,6 +4337,10 @@ def set_hpxml_foundation_walls(hpxml_file, hpxml)
|
|
3774
4337
|
insulation_exterior_r_value: 0)
|
3775
4338
|
elsif ['invalid_files/enclosure-basement-missing-exterior-foundation-wall.xml'].include? hpxml_file
|
3776
4339
|
hpxml.foundation_walls[0].delete
|
4340
|
+
elsif ['invalid_files/invalid-foundation-wall-properties.xml'].include? hpxml_file
|
4341
|
+
hpxml.foundation_walls[0].insulation_interior_distance_to_top = 12
|
4342
|
+
hpxml.foundation_walls[0].insulation_interior_distance_to_bottom = 10
|
4343
|
+
hpxml.foundation_walls[0].depth_below_grade = 9
|
3777
4344
|
end
|
3778
4345
|
end
|
3779
4346
|
|
@@ -3893,6 +4460,12 @@ def set_hpxml_frame_floors(hpxml_file, hpxml)
|
|
3893
4460
|
interior_adjacent_to: HPXML::LocationLivingSpace,
|
3894
4461
|
area: 400,
|
3895
4462
|
insulation_assembly_r_value: 39.3)
|
4463
|
+
elsif ['base-foundation-basement-garage.xml'].include? hpxml_file
|
4464
|
+
hpxml.frame_floors.add(id: 'FloorAbovegarage',
|
4465
|
+
exterior_adjacent_to: HPXML::LocationGarage,
|
4466
|
+
interior_adjacent_to: HPXML::LocationLivingSpace,
|
4467
|
+
area: 400,
|
4468
|
+
insulation_assembly_r_value: 39.3)
|
3896
4469
|
elsif ['base-atticroof-unvented-insulated-roof.xml'].include? hpxml_file
|
3897
4470
|
hpxml.frame_floors[0].insulation_assembly_r_value = 2.1
|
3898
4471
|
elsif ['base-bldgtype-multifamily-adjacent-to-multiple.xml'].include? hpxml_file
|
@@ -3915,12 +4488,16 @@ def set_hpxml_frame_floors(hpxml_file, hpxml)
|
|
3915
4488
|
area: 150,
|
3916
4489
|
insulation_assembly_r_value: 2.1,
|
3917
4490
|
other_space_above_or_below: HPXML::FrameFloorOtherSpaceBelow)
|
3918
|
-
elsif ['base-enclosure-split-surfaces.xml'
|
4491
|
+
elsif ['base-enclosure-split-surfaces.xml',
|
4492
|
+
'base-enclosure-split-surfaces2.xml'].include? hpxml_file
|
3919
4493
|
for n in 1..hpxml.frame_floors.size
|
3920
4494
|
hpxml.frame_floors[n - 1].area /= 9.0
|
3921
4495
|
for i in 2..9
|
3922
4496
|
hpxml.frame_floors << hpxml.frame_floors[n - 1].dup
|
3923
4497
|
hpxml.frame_floors[-1].id += i.to_s
|
4498
|
+
if hpxml_file == 'base-enclosure-split-surfaces2.xml'
|
4499
|
+
hpxml.frame_floors[-1].insulation_assembly_r_value += 0.01 * i
|
4500
|
+
end
|
3924
4501
|
end
|
3925
4502
|
end
|
3926
4503
|
hpxml.frame_floors << hpxml.frame_floors[-1].dup
|
@@ -3938,8 +4515,10 @@ def set_hpxml_frame_floors(hpxml_file, hpxml)
|
|
3938
4515
|
'invalid_files/enclosure-garage-missing-roof-ceiling.xml'].include? hpxml_file
|
3939
4516
|
hpxml.frame_floors[1].delete
|
3940
4517
|
elsif ['invalid_files/multifamily-reference-surface.xml'].include? hpxml_file
|
3941
|
-
hpxml.frame_floors[0].
|
3942
|
-
hpxml.frame_floors[
|
4518
|
+
hpxml.frame_floors << hpxml.frame_floors[0].dup
|
4519
|
+
hpxml.frame_floors[1].id += '2'
|
4520
|
+
hpxml.frame_floors[1].exterior_adjacent_to = HPXML::LocationOtherHeatedSpace
|
4521
|
+
hpxml.frame_floors[1].other_space_above_or_below = HPXML::FrameFloorOtherSpaceAbove
|
3943
4522
|
elsif ['invalid_files/invalid-facility-type-surfaces.xml'].include? hpxml_file
|
3944
4523
|
hpxml.frame_floors.add(id: 'FloorOther',
|
3945
4524
|
exterior_adjacent_to: HPXML::LocationOtherHousingUnit,
|
@@ -4042,7 +4621,8 @@ def set_hpxml_slabs(hpxml_file, hpxml)
|
|
4042
4621
|
carpet_r_value: 0)
|
4043
4622
|
elsif ['base-foundation-ambient.xml'].include? hpxml_file
|
4044
4623
|
hpxml.slabs.clear
|
4045
|
-
elsif ['base-enclosure-2stories-garage.xml'
|
4624
|
+
elsif ['base-enclosure-2stories-garage.xml',
|
4625
|
+
'base-foundation-basement-garage.xml'].include? hpxml_file
|
4046
4626
|
hpxml.slabs[0].area -= 400
|
4047
4627
|
hpxml.slabs[0].exposed_perimeter -= 40
|
4048
4628
|
hpxml.slabs.add(id: 'SlabUnderGarage',
|
@@ -4106,13 +4686,18 @@ def set_hpxml_slabs(hpxml_file, hpxml)
|
|
4106
4686
|
under_slab_insulation_r_value: 0,
|
4107
4687
|
carpet_fraction: 0,
|
4108
4688
|
carpet_r_value: 0)
|
4109
|
-
elsif ['base-enclosure-split-surfaces.xml'
|
4689
|
+
elsif ['base-enclosure-split-surfaces.xml',
|
4690
|
+
'base-enclosure-split-surfaces2.xml'].include? hpxml_file
|
4110
4691
|
for n in 1..hpxml.slabs.size
|
4111
4692
|
hpxml.slabs[n - 1].area /= 9.0
|
4112
4693
|
hpxml.slabs[n - 1].exposed_perimeter /= 9.0
|
4113
4694
|
for i in 2..9
|
4114
4695
|
hpxml.slabs << hpxml.slabs[n - 1].dup
|
4115
4696
|
hpxml.slabs[-1].id += i.to_s
|
4697
|
+
if hpxml_file == 'base-enclosure-split-surfaces2.xml'
|
4698
|
+
hpxml.slabs[-1].perimeter_insulation_depth += 0.01 * i
|
4699
|
+
hpxml.slabs[-1].perimeter_insulation_r_value += 0.01 * i
|
4700
|
+
end
|
4116
4701
|
end
|
4117
4702
|
end
|
4118
4703
|
hpxml.slabs << hpxml.slabs[-1].dup
|
@@ -4124,11 +4709,6 @@ def set_hpxml_slabs(hpxml_file, hpxml)
|
|
4124
4709
|
slab.carpet_fraction = nil
|
4125
4710
|
slab.carpet_fraction = nil
|
4126
4711
|
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
4712
|
elsif ['invalid_files/enclosure-living-missing-floor-slab.xml',
|
4133
4713
|
'invalid_files/enclosure-basement-missing-slab.xml'].include? hpxml_file
|
4134
4714
|
hpxml.slabs[0].delete
|
@@ -4298,17 +4878,26 @@ def set_hpxml_windows(hpxml_file, hpxml)
|
|
4298
4878
|
hpxml.windows[0].overhangs_depth = 2.5
|
4299
4879
|
hpxml.windows[0].overhangs_distance_to_top_of_window = 0
|
4300
4880
|
hpxml.windows[0].overhangs_distance_to_bottom_of_window = 4
|
4881
|
+
hpxml.windows[1].overhangs_depth = 0
|
4882
|
+
hpxml.windows[1].overhangs_distance_to_top_of_window = 1
|
4883
|
+
hpxml.windows[1].overhangs_distance_to_bottom_of_window = 5
|
4301
4884
|
hpxml.windows[2].overhangs_depth = 1.5
|
4302
4885
|
hpxml.windows[2].overhangs_distance_to_top_of_window = 2
|
4303
4886
|
hpxml.windows[2].overhangs_distance_to_bottom_of_window = 6
|
4304
4887
|
hpxml.windows[3].overhangs_depth = 1.5
|
4305
4888
|
hpxml.windows[3].overhangs_distance_to_top_of_window = 2
|
4306
4889
|
hpxml.windows[3].overhangs_distance_to_bottom_of_window = 7
|
4307
|
-
elsif ['base-enclosure-windows-
|
4890
|
+
elsif ['base-enclosure-windows-shading.xml'].include? hpxml_file
|
4891
|
+
hpxml.windows[1].exterior_shading_factor_summer = 0.1
|
4892
|
+
hpxml.windows[1].exterior_shading_factor_winter = 0.9
|
4308
4893
|
hpxml.windows[1].interior_shading_factor_summer = 0.01
|
4309
4894
|
hpxml.windows[1].interior_shading_factor_winter = 0.99
|
4895
|
+
hpxml.windows[2].exterior_shading_factor_summer = 0.5
|
4896
|
+
hpxml.windows[2].exterior_shading_factor_winter = 0.5
|
4310
4897
|
hpxml.windows[2].interior_shading_factor_summer = 0.5
|
4311
4898
|
hpxml.windows[2].interior_shading_factor_winter = 0.5
|
4899
|
+
hpxml.windows[3].exterior_shading_factor_summer = 0.0
|
4900
|
+
hpxml.windows[3].exterior_shading_factor_winter = 1.0
|
4312
4901
|
hpxml.windows[3].interior_shading_factor_summer = 0.0
|
4313
4902
|
hpxml.windows[3].interior_shading_factor_winter = 1.0
|
4314
4903
|
elsif ['base-enclosure-windows-none.xml'].include? hpxml_file
|
@@ -4403,7 +4992,8 @@ def set_hpxml_windows(hpxml_file, hpxml)
|
|
4403
4992
|
end
|
4404
4993
|
elsif ['invalid_files/unattached-window.xml'].include? hpxml_file
|
4405
4994
|
hpxml.windows[0].wall_idref = 'foobar'
|
4406
|
-
elsif ['base-enclosure-split-surfaces.xml'
|
4995
|
+
elsif ['base-enclosure-split-surfaces.xml',
|
4996
|
+
'base-enclosure-split-surfaces2.xml'].include? hpxml_file
|
4407
4997
|
area_adjustments = []
|
4408
4998
|
for n in 1..hpxml.windows.size
|
4409
4999
|
hpxml.windows[n - 1].area /= 9.0
|
@@ -4415,6 +5005,10 @@ def set_hpxml_windows(hpxml_file, hpxml)
|
|
4415
5005
|
if i >= 4
|
4416
5006
|
hpxml.windows[-1].fraction_operable = 1.0
|
4417
5007
|
end
|
5008
|
+
next unless hpxml_file == 'base-enclosure-split-surfaces2.xml'
|
5009
|
+
hpxml.windows[-1].ufactor += 0.01 * i
|
5010
|
+
hpxml.windows[-1].interior_shading_factor_summer -= 0.02 * i
|
5011
|
+
hpxml.windows[-1].interior_shading_factor_winter -= 0.01 * i
|
4418
5012
|
end
|
4419
5013
|
end
|
4420
5014
|
hpxml.windows << hpxml.windows[-1].dup
|
@@ -4497,17 +5091,33 @@ def set_hpxml_skylights(hpxml_file, hpxml)
|
|
4497
5091
|
interior_shading_factor_summer: 1.0,
|
4498
5092
|
interior_shading_factor_winter: 1.0,
|
4499
5093
|
roof_idref: 'Roof')
|
5094
|
+
elsif ['base-enclosure-skylights-shading.xml'].include? hpxml_file
|
5095
|
+
hpxml.skylights[0].exterior_shading_factor_summer = 0.1
|
5096
|
+
hpxml.skylights[0].exterior_shading_factor_winter = 0.9
|
5097
|
+
hpxml.skylights[0].interior_shading_factor_summer = 0.01
|
5098
|
+
hpxml.skylights[0].interior_shading_factor_winter = 0.99
|
5099
|
+
hpxml.skylights[1].exterior_shading_factor_summer = 0.5
|
5100
|
+
hpxml.skylights[1].exterior_shading_factor_winter = 0.0
|
5101
|
+
hpxml.skylights[1].interior_shading_factor_summer = 0.5
|
5102
|
+
hpxml.skylights[1].interior_shading_factor_winter = 1.0
|
4500
5103
|
elsif ['invalid_files/net-area-negative-roof.xml'].include? hpxml_file
|
4501
5104
|
hpxml.skylights[0].area = 4000
|
4502
5105
|
elsif ['invalid_files/unattached-skylight.xml'].include? hpxml_file
|
4503
5106
|
hpxml.skylights[0].roof_idref = 'foobar'
|
4504
|
-
elsif ['
|
5107
|
+
elsif ['invalid_files/invalid-id.xml'].include? hpxml_file
|
5108
|
+
hpxml.skylights[0].id = ''
|
5109
|
+
elsif ['base-enclosure-split-surfaces.xml',
|
5110
|
+
'base-enclosure-split-surfaces2.xml'].include? hpxml_file
|
4505
5111
|
for n in 1..hpxml.skylights.size
|
4506
5112
|
hpxml.skylights[n - 1].area /= 9.0
|
4507
5113
|
for i in 2..9
|
4508
5114
|
hpxml.skylights << hpxml.skylights[n - 1].dup
|
4509
5115
|
hpxml.skylights[-1].id += i.to_s
|
4510
5116
|
hpxml.skylights[-1].roof_idref += i.to_s if i % 2 == 0
|
5117
|
+
next unless hpxml_file == 'base-enclosure-split-surfaces2.xml'
|
5118
|
+
hpxml.skylights[-1].ufactor += 0.01 * i
|
5119
|
+
hpxml.skylights[-1].interior_shading_factor_summer -= 0.02 * i
|
5120
|
+
hpxml.skylights[-1].interior_shading_factor_winter -= 0.01 * i
|
4511
5121
|
end
|
4512
5122
|
end
|
4513
5123
|
hpxml.skylights << hpxml.skylights[-1].dup
|
@@ -4554,6 +5164,17 @@ def set_hpxml_doors(hpxml_file, hpxml)
|
|
4554
5164
|
area: 70,
|
4555
5165
|
azimuth: 180,
|
4556
5166
|
r_value: 4.4)
|
5167
|
+
elsif ['base-foundation-basement-garage.xml'].include? hpxml_file
|
5168
|
+
hpxml.doors.add(id: 'GarageDoorSouth',
|
5169
|
+
wall_idref: 'WallGarageExterior',
|
5170
|
+
area: 70,
|
5171
|
+
azimuth: 180,
|
5172
|
+
r_value: 4.4)
|
5173
|
+
hpxml.doors.add(id: 'GarageDoorBasement',
|
5174
|
+
wall_idref: 'WallGarageBasement',
|
5175
|
+
area: 4,
|
5176
|
+
azimuth: 0,
|
5177
|
+
r_value: 4.4)
|
4557
5178
|
elsif ['base-bldgtype-multifamily-adjacent-to-multiple.xml'].include? hpxml_file
|
4558
5179
|
hpxml.doors.add(id: 'DoorOtherHeatedSpace',
|
4559
5180
|
wall_idref: 'WallOtherHeatedSpace',
|
@@ -4576,7 +5197,8 @@ def set_hpxml_doors(hpxml_file, hpxml)
|
|
4576
5197
|
r_value: 4.4)
|
4577
5198
|
elsif ['invalid_files/unattached-door.xml'].include? hpxml_file
|
4578
5199
|
hpxml.doors[0].wall_idref = 'foobar'
|
4579
|
-
elsif ['base-enclosure-split-surfaces.xml'
|
5200
|
+
elsif ['base-enclosure-split-surfaces.xml',
|
5201
|
+
'base-enclosure-split-surfaces2.xml'].include? hpxml_file
|
4580
5202
|
area_adjustments = []
|
4581
5203
|
for n in 1..hpxml.doors.size
|
4582
5204
|
hpxml.doors[n - 1].area /= 9.0
|
@@ -4584,6 +5206,9 @@ def set_hpxml_doors(hpxml_file, hpxml)
|
|
4584
5206
|
hpxml.doors << hpxml.doors[n - 1].dup
|
4585
5207
|
hpxml.doors[-1].id += i.to_s
|
4586
5208
|
hpxml.doors[-1].wall_idref += i.to_s
|
5209
|
+
if hpxml_file == 'base-enclosure-split-surfaces2.xml'
|
5210
|
+
hpxml.doors[-1].r_value += 0.01 * i
|
5211
|
+
end
|
4587
5212
|
end
|
4588
5213
|
end
|
4589
5214
|
hpxml.doors << hpxml.doors[-1].dup
|
@@ -4624,19 +5249,16 @@ def set_hpxml_heating_systems(hpxml_file, hpxml)
|
|
4624
5249
|
'base-hvac-ground-to-air-heat-pump.xml',
|
4625
5250
|
'base-hvac-mini-split-heat-pump-ducted.xml',
|
4626
5251
|
'base-hvac-mini-split-air-conditioner-only-ducted.xml',
|
4627
|
-
'base-hvac-ideal-air.xml',
|
4628
5252
|
'base-hvac-none.xml',
|
4629
5253
|
'base-hvac-room-ac-only.xml',
|
4630
5254
|
'base-bldgtype-multifamily-shared-chiller-only-baseboard.xml',
|
4631
5255
|
'base-bldgtype-multifamily-shared-ground-loop-ground-to-air-heat-pump.xml',
|
4632
5256
|
'invalid_files/orphaned-hvac-distribution.xml'].include? hpxml_file
|
4633
5257
|
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
5258
|
elsif ['base-hvac-boiler-elec-only.xml'].include? hpxml_file
|
4637
5259
|
hpxml.heating_systems[0].heating_system_type = HPXML::HVACTypeBoiler
|
4638
5260
|
hpxml.heating_systems[0].heating_system_fuel = HPXML::FuelTypeElectricity
|
4639
|
-
hpxml.heating_systems[0].heating_efficiency_afue = 1
|
5261
|
+
hpxml.heating_systems[0].heating_efficiency_afue = 1.0
|
4640
5262
|
elsif ['base-hvac-boiler-gas-central-ac-1-speed.xml',
|
4641
5263
|
'base-hvac-boiler-gas-only.xml'].include? hpxml_file
|
4642
5264
|
hpxml.heating_systems[0].heating_system_type = HPXML::HVACTypeBoiler
|
@@ -4845,14 +5467,31 @@ def set_hpxml_heating_systems(hpxml_file, hpxml)
|
|
4845
5467
|
elsif ['base-bldgtype-multifamily-shared-boiler-only-fan-coil.xml',
|
4846
5468
|
'base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.xml'].include? hpxml_file
|
4847
5469
|
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
5470
|
elsif ['base-bldgtype-multifamily-shared-boiler-only-fan-coil-eae.xml'].include? hpxml_file
|
4852
5471
|
hpxml.heating_systems[0].fan_coil_watts = nil
|
4853
5472
|
hpxml.heating_systems[0].shared_loop_watts = nil
|
4854
5473
|
hpxml.heating_systems[0].electric_auxiliary_energy = 500.0
|
4855
|
-
elsif
|
5474
|
+
elsif ['base-hvac-install-quality-none-furnace-gas-central-ac-1-speed.xml'].include? hpxml_file
|
5475
|
+
hpxml.heating_systems[0].airflow_defect_ratio = 0.0
|
5476
|
+
elsif ['base-hvac-install-quality-airflow-defect-furnace-gas-central-ac-1-speed.xml'].include? hpxml_file
|
5477
|
+
hpxml.heating_systems[0].airflow_defect_ratio = -0.25
|
5478
|
+
elsif ['base-hvac-install-quality-blower-efficiency-furnace-gas-central-ac-1-speed.xml'].include? hpxml_file
|
5479
|
+
hpxml.heating_systems[0].fan_watts_per_cfm = 0.365
|
5480
|
+
elsif ['base-hvac-install-quality-all-furnace-gas-only.xml',
|
5481
|
+
'base-hvac-install-quality-all-furnace-gas-central-ac-1-speed.xml',
|
5482
|
+
'base-hvac-install-quality-all-furnace-gas-central-ac-2-speed.xml',
|
5483
|
+
'base-hvac-install-quality-all-furnace-gas-central-ac-var-speed.xml'].include? hpxml_file
|
5484
|
+
hpxml.heating_systems[0].fan_watts_per_cfm = 0.365
|
5485
|
+
hpxml.heating_systems[0].airflow_defect_ratio = -0.25
|
5486
|
+
elsif ['invalid_files/multiple-shared-heating-systems.xml'].include? hpxml_file
|
5487
|
+
hpxml.heating_systems[0].fraction_heat_load_served = 0.5
|
5488
|
+
hpxml.heating_systems << hpxml.heating_systems[0].dup
|
5489
|
+
hpxml.heating_systems[1].id += '2'
|
5490
|
+
hpxml.heating_systems[1].distribution_system_idref += '2'
|
5491
|
+
elsif ['invalid_files/boiler-invalid-afue.xml',
|
5492
|
+
'invalid_files/furnace-invalid-afue.xml'].include? hpxml_file
|
5493
|
+
hpxml.heating_systems[0].heating_efficiency_afue *= 100.0
|
5494
|
+
elsif hpxml_file.include?('base-hvac-autosize') && (not hpxml.heating_systems.nil?) && (hpxml.heating_systems.size > 0)
|
4856
5495
|
hpxml.heating_systems[0].heating_capacity = nil
|
4857
5496
|
end
|
4858
5497
|
end
|
@@ -4888,7 +5527,6 @@ def set_hpxml_cooling_systems(hpxml_file, hpxml)
|
|
4888
5527
|
'base-hvac-furnace-wood-only.xml',
|
4889
5528
|
'base-hvac-ground-to-air-heat-pump.xml',
|
4890
5529
|
'base-hvac-mini-split-heat-pump-ducted.xml',
|
4891
|
-
'base-hvac-ideal-air.xml',
|
4892
5530
|
'base-hvac-none.xml',
|
4893
5531
|
'base-hvac-stove-oil-only.xml',
|
4894
5532
|
'base-hvac-stove-wood-pellets-only.xml',
|
@@ -4896,8 +5534,6 @@ def set_hpxml_cooling_systems(hpxml_file, hpxml)
|
|
4896
5534
|
'base-bldgtype-multifamily-shared-boiler-only-baseboard.xml',
|
4897
5535
|
'base-bldgtype-multifamily-shared-ground-loop-ground-to-air-heat-pump.xml'].include? hpxml_file
|
4898
5536
|
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
5537
|
elsif ['base-hvac-boiler-gas-central-ac-1-speed.xml'].include? hpxml_file
|
4902
5538
|
hpxml.cooling_systems[0].distribution_system_idref = 'HVACDistribution2'
|
4903
5539
|
elsif ['base-hvac-furnace-gas-central-ac-2-speed.xml',
|
@@ -4915,7 +5551,6 @@ def set_hpxml_cooling_systems(hpxml_file, hpxml)
|
|
4915
5551
|
hpxml.cooling_systems[0].cooling_efficiency_seer = 19
|
4916
5552
|
hpxml.cooling_systems[0].cooling_shr = 0.73
|
4917
5553
|
hpxml.cooling_systems[0].compressor_type = nil
|
4918
|
-
hpxml.cooling_systems[0].fan_watts_per_cfm = 0.2
|
4919
5554
|
elsif ['base-hvac-mini-split-air-conditioner-only-ductless.xml'].include? hpxml_file
|
4920
5555
|
hpxml.cooling_systems[0].distribution_system_idref = nil
|
4921
5556
|
elsif ['base-hvac-furnace-gas-room-ac.xml',
|
@@ -4930,22 +5565,16 @@ def set_hpxml_cooling_systems(hpxml_file, hpxml)
|
|
4930
5565
|
hpxml.cooling_systems[0].fraction_cool_load_served = 0.33
|
4931
5566
|
elsif ['base-hvac-evap-cooler-only-ducted.xml',
|
4932
5567
|
'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
|
5568
|
+
'base-hvac-evap-cooler-only.xml'].include? hpxml_file
|
4935
5569
|
hpxml.cooling_systems[0].cooling_system_type = HPXML::HVACTypeEvaporativeCooler
|
4936
5570
|
hpxml.cooling_systems[0].cooling_efficiency_seer = nil
|
4937
5571
|
hpxml.cooling_systems[0].cooling_efficiency_eer = nil
|
4938
|
-
hpxml.cooling_systems[0].cooling_capacity = nil
|
4939
5572
|
hpxml.cooling_systems[0].cooling_shr = nil
|
4940
5573
|
hpxml.cooling_systems[0].compressor_type = nil
|
4941
5574
|
if ['base-hvac-evap-cooler-furnace-gas.xml',
|
4942
|
-
'hvac_autosizing/base-hvac-evap-cooler-furnace-gas-autosize.xml',
|
4943
5575
|
'base-hvac-evap-cooler-only.xml'].include? hpxml_file
|
4944
5576
|
hpxml.cooling_systems[0].distribution_system_idref = nil
|
4945
5577
|
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
5578
|
elsif ['base-hvac-multiple.xml'].include? hpxml_file
|
4950
5579
|
hpxml.cooling_systems[0].distribution_system_idref = 'HVACDistribution2'
|
4951
5580
|
hpxml.cooling_systems[0].fraction_cool_load_served = 0.2
|
@@ -4986,8 +5615,22 @@ def set_hpxml_cooling_systems(hpxml_file, hpxml)
|
|
4986
5615
|
hpxml.cooling_systems[0].fan_watts_per_cfm = 0.55
|
4987
5616
|
elsif ['base-hvac-undersized.xml'].include? hpxml_file
|
4988
5617
|
hpxml.cooling_systems[0].cooling_capacity /= 10.0
|
4989
|
-
elsif ['base-hvac-
|
4990
|
-
hpxml.cooling_systems[0].
|
5618
|
+
elsif ['base-hvac-install-quality-none-furnace-gas-central-ac-1-speed.xml'].include? hpxml_file
|
5619
|
+
hpxml.cooling_systems[0].airflow_defect_ratio = 0.0
|
5620
|
+
hpxml.cooling_systems[0].charge_defect_ratio = 0.0
|
5621
|
+
elsif ['base-hvac-install-quality-airflow-defect-furnace-gas-central-ac-1-speed.xml'].include? hpxml_file
|
5622
|
+
hpxml.cooling_systems[0].airflow_defect_ratio = -0.25
|
5623
|
+
elsif ['base-hvac-install-quality-charge-defect-furnace-gas-central-ac-1-speed.xml'].include? hpxml_file
|
5624
|
+
hpxml.cooling_systems[0].charge_defect_ratio = -0.25
|
5625
|
+
elsif ['base-hvac-install-quality-blower-efficiency-furnace-gas-central-ac-1-speed.xml'].include? hpxml_file
|
5626
|
+
hpxml.cooling_systems[0].fan_watts_per_cfm = 0.365
|
5627
|
+
elsif ['base-hvac-install-quality-all-mini-split-air-conditioner-only-ducted.xml',
|
5628
|
+
'base-hvac-install-quality-all-furnace-gas-central-ac-1-speed.xml',
|
5629
|
+
'base-hvac-install-quality-all-furnace-gas-central-ac-2-speed.xml',
|
5630
|
+
'base-hvac-install-quality-all-furnace-gas-central-ac-var-speed.xml'].include? hpxml_file
|
5631
|
+
hpxml.cooling_systems[0].charge_defect_ratio = -0.25
|
5632
|
+
hpxml.cooling_systems[0].fan_watts_per_cfm = 0.365
|
5633
|
+
hpxml.cooling_systems[0].airflow_defect_ratio = -0.25
|
4991
5634
|
elsif ['base-misc-defaults.xml'].include? hpxml_file
|
4992
5635
|
hpxml.cooling_systems[0].cooling_shr = nil
|
4993
5636
|
hpxml.cooling_systems[0].compressor_type = nil
|
@@ -5003,10 +5646,6 @@ def set_hpxml_cooling_systems(hpxml_file, hpxml)
|
|
5003
5646
|
hpxml.cooling_systems[0].cooling_efficiency_kw_per_ton = 0.9
|
5004
5647
|
hpxml.cooling_systems[0].cooling_shr = nil
|
5005
5648
|
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
5649
|
elsif ['base-bldgtype-multifamily-shared-cooling-tower-only-water-loop-heat-pump.xml',
|
5011
5650
|
'base-bldgtype-multifamily-shared-boiler-cooling-tower-water-loop-heat-pump.xml'].include? hpxml_file
|
5012
5651
|
hpxml.cooling_systems[0].cooling_system_type = HPXML::HVACTypeCoolingTower
|
@@ -5015,7 +5654,12 @@ def set_hpxml_cooling_systems(hpxml_file, hpxml)
|
|
5015
5654
|
elsif ['base-bldgtype-multifamily-shared-chiller-only-fan-coil.xml',
|
5016
5655
|
'base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.xml'].include? hpxml_file
|
5017
5656
|
hpxml.cooling_systems[0].fan_coil_watts = 150
|
5018
|
-
elsif
|
5657
|
+
elsif ['invalid_files/multiple-shared-cooling-systems.xml'].include? hpxml_file
|
5658
|
+
hpxml.cooling_systems[0].fraction_cool_load_served = 0.5
|
5659
|
+
hpxml.cooling_systems << hpxml.cooling_systems[0].dup
|
5660
|
+
hpxml.cooling_systems[1].id += '2'
|
5661
|
+
hpxml.cooling_systems[1].distribution_system_idref += '2'
|
5662
|
+
elsif hpxml_file.include?('base-hvac-autosize') && (not hpxml.cooling_systems.nil?) && (hpxml.cooling_systems.size > 0)
|
5019
5663
|
hpxml.cooling_systems[0].cooling_capacity = nil
|
5020
5664
|
end
|
5021
5665
|
end
|
@@ -5038,8 +5682,7 @@ def set_hpxml_heat_pumps(hpxml_file, hpxml)
|
|
5038
5682
|
cooling_efficiency_seer: 13,
|
5039
5683
|
heating_capacity_17F: 42000 * 0.630, # Based on OAT slope of default curves
|
5040
5684
|
cooling_shr: 0.73,
|
5041
|
-
compressor_type: HPXML::HVACCompressorTypeSingleStage
|
5042
|
-
fan_watts_per_cfm: 0.45)
|
5685
|
+
compressor_type: HPXML::HVACCompressorTypeSingleStage)
|
5043
5686
|
if hpxml_file == 'base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml'
|
5044
5687
|
hpxml.heat_pumps[0].fraction_cool_load_served = 0
|
5045
5688
|
end
|
@@ -5093,12 +5736,12 @@ def set_hpxml_heat_pumps(hpxml_file, hpxml)
|
|
5093
5736
|
heating_efficiency_cop: 3.6,
|
5094
5737
|
cooling_efficiency_eer: 16.6,
|
5095
5738
|
cooling_shr: 0.73,
|
5096
|
-
pump_watts_per_ton: 30.0
|
5097
|
-
fan_watts_per_cfm: 0.45)
|
5739
|
+
pump_watts_per_ton: 30.0)
|
5098
5740
|
if hpxml_file == 'base-bldgtype-multifamily-shared-ground-loop-ground-to-air-heat-pump.xml'
|
5099
5741
|
hpxml.heat_pumps[-1].is_shared_system = true
|
5100
5742
|
hpxml.heat_pumps[-1].number_of_units_served = 6
|
5101
5743
|
hpxml.heat_pumps[-1].shared_loop_watts = 600
|
5744
|
+
hpxml.heat_pumps[-1].pump_watts_per_ton = 0.0
|
5102
5745
|
end
|
5103
5746
|
elsif ['base-hvac-mini-split-heat-pump-ducted.xml'].include? hpxml_file
|
5104
5747
|
f = 1.0 - (1.0 - 0.25) / (47.0 + 5.0) * (47.0 - 17.0)
|
@@ -5116,25 +5759,32 @@ def set_hpxml_heat_pumps(hpxml_file, hpxml)
|
|
5116
5759
|
heating_efficiency_hspf: 10,
|
5117
5760
|
cooling_efficiency_seer: 19,
|
5118
5761
|
heating_capacity_17F: 52000 * f,
|
5119
|
-
cooling_shr: 0.73
|
5120
|
-
|
5121
|
-
|
5762
|
+
cooling_shr: 0.73)
|
5763
|
+
elsif ['base-hvac-air-to-air-heat-pump-1-speed-heating-only.xml',
|
5764
|
+
'base-hvac-ground-to-air-heat-pump-heating-only.xml',
|
5765
|
+
'base-hvac-mini-split-heat-pump-ducted-heating-only.xml'].include? hpxml_file
|
5122
5766
|
hpxml.heat_pumps[0].cooling_capacity = 0
|
5123
5767
|
hpxml.heat_pumps[0].fraction_cool_load_served = 0
|
5124
|
-
elsif ['base-hvac-
|
5768
|
+
elsif ['base-hvac-air-to-air-heat-pump-1-speed-cooling-only.xml',
|
5769
|
+
'base-hvac-ground-to-air-heat-pump-cooling-only.xml',
|
5770
|
+
'base-hvac-mini-split-heat-pump-ducted-cooling-only.xml'].include? hpxml_file
|
5125
5771
|
hpxml.heat_pumps[0].heating_capacity = 0
|
5126
|
-
|
5772
|
+
if not ['base-hvac-ground-to-air-heat-pump-cooling-only.xml'].include? hpxml_file
|
5773
|
+
hpxml.heat_pumps[0].heating_capacity_17F = 0
|
5774
|
+
end
|
5127
5775
|
hpxml.heat_pumps[0].fraction_heat_load_served = 0
|
5128
5776
|
hpxml.heat_pumps[0].backup_heating_fuel = nil
|
5777
|
+
hpxml.heat_pumps[0].backup_heating_capacity = nil
|
5778
|
+
hpxml.heat_pumps[0].backup_heating_efficiency_percent = nil
|
5129
5779
|
elsif ['base-hvac-mini-split-heat-pump-ductless.xml'].include? hpxml_file
|
5130
5780
|
hpxml.heat_pumps[0].distribution_system_idref = nil
|
5131
5781
|
hpxml.heat_pumps[0].backup_heating_fuel = nil
|
5782
|
+
hpxml.heat_pumps[0].backup_heating_capacity = nil
|
5783
|
+
hpxml.heat_pumps[0].backup_heating_efficiency_percent = nil
|
5132
5784
|
elsif ['invalid_files/heat-pump-mixed-fixed-and-autosize-capacities.xml'].include? hpxml_file
|
5133
5785
|
hpxml.heat_pumps[0].cooling_capacity = nil
|
5134
5786
|
hpxml.heat_pumps[0].heating_capacity = nil
|
5135
5787
|
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
5788
|
elsif ['base-hvac-multiple.xml'].include? hpxml_file
|
5139
5789
|
hpxml.heat_pumps.add(id: 'HeatPump',
|
5140
5790
|
distribution_system_idref: 'HVACDistribution5',
|
@@ -5214,6 +5864,21 @@ def set_hpxml_heat_pumps(hpxml_file, hpxml)
|
|
5214
5864
|
cooling_efficiency_eer: 16.6,
|
5215
5865
|
cooling_shr: 0.73,
|
5216
5866
|
pump_watts_per_ton: 30.0)
|
5867
|
+
elsif ['base-bldgtype-multifamily-shared-boiler-only-water-loop-heat-pump.xml',
|
5868
|
+
'base-bldgtype-multifamily-shared-chiller-only-water-loop-heat-pump.xml',
|
5869
|
+
'base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.xml'].include? hpxml_file
|
5870
|
+
hpxml.heat_pumps.add(id: 'WLHP',
|
5871
|
+
distribution_system_idref: 'HVACDistributionWLHP',
|
5872
|
+
heat_pump_type: HPXML::HVACTypeHeatPumpWaterLoopToAir,
|
5873
|
+
heat_pump_fuel: HPXML::FuelTypeElectricity)
|
5874
|
+
if hpxml_file.include? 'boiler'
|
5875
|
+
hpxml.heat_pumps[-1].heating_capacity = 24000
|
5876
|
+
hpxml.heat_pumps[-1].heating_efficiency_cop = 4.4
|
5877
|
+
end
|
5878
|
+
if hpxml_file.include? 'chiller'
|
5879
|
+
hpxml.heat_pumps[-1].cooling_capacity = 24000
|
5880
|
+
hpxml.heat_pumps[-1].cooling_efficiency_eer = 12.8
|
5881
|
+
end
|
5217
5882
|
elsif ['invalid_files/hvac-distribution-multiple-attached-heating.xml'].include? hpxml_file
|
5218
5883
|
hpxml.heat_pumps[0].distribution_system_idref = 'HVACDistribution'
|
5219
5884
|
elsif ['invalid_files/hvac-distribution-multiple-attached-cooling.xml'].include? hpxml_file
|
@@ -5230,7 +5895,19 @@ def set_hpxml_heat_pumps(hpxml_file, hpxml)
|
|
5230
5895
|
elsif ['base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.xml'].include? hpxml_file
|
5231
5896
|
hpxml.heat_pumps[0].backup_heating_fuel = HPXML::FuelTypeElectricity
|
5232
5897
|
hpxml.heat_pumps[0].backup_heating_efficiency_afue = 1.0
|
5233
|
-
elsif
|
5898
|
+
elsif ['base-hvac-install-quality-all-air-to-air-heat-pump-1-speed.xml',
|
5899
|
+
'base-hvac-install-quality-all-air-to-air-heat-pump-2-speed.xml',
|
5900
|
+
'base-hvac-install-quality-all-air-to-air-heat-pump-var-speed.xml',
|
5901
|
+
'base-hvac-install-quality-all-mini-split-heat-pump-ducted.xml',
|
5902
|
+
'base-hvac-install-quality-all-ground-to-air-heat-pump.xml'].include? hpxml_file
|
5903
|
+
hpxml.heat_pumps[0].airflow_defect_ratio = -0.25
|
5904
|
+
hpxml.heat_pumps[0].fan_watts_per_cfm = 0.365
|
5905
|
+
if hpxml_file != 'base-hvac-install-quality-all-ground-to-air-heat-pump.xml'
|
5906
|
+
hpxml.heat_pumps[0].charge_defect_ratio = -0.25
|
5907
|
+
else
|
5908
|
+
hpxml.heat_pumps[0].charge_defect_ratio = 0.0
|
5909
|
+
end
|
5910
|
+
elsif hpxml_file.include?('base-hvac-autosize') && (not hpxml.heat_pumps.nil?) && (hpxml.heat_pumps.size > 0)
|
5234
5911
|
hpxml.heat_pumps[0].cooling_capacity = nil
|
5235
5912
|
hpxml.heat_pumps[0].heating_capacity = nil
|
5236
5913
|
hpxml.heat_pumps[0].heating_capacity_17F = nil
|
@@ -5321,16 +5998,23 @@ def set_hpxml_hvac_distributions(hpxml_file, hpxml)
|
|
5321
5998
|
elsif ['base-bldgtype-multifamily-shared-boiler-only-fan-coil.xml',
|
5322
5999
|
'base-bldgtype-multifamily-shared-chiller-only-fan-coil.xml',
|
5323
6000
|
'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].
|
6001
|
+
hpxml.hvac_distributions[0].distribution_system_type = HPXML::HVACDistributionTypeAir
|
6002
|
+
hpxml.hvac_distributions[0].air_type = HPXML::AirTypeFanCoil
|
6003
|
+
hpxml.hvac_distributions[0].duct_leakage_measurements.add(duct_type: HPXML::DuctTypeSupply,
|
6004
|
+
duct_leakage_units: HPXML::UnitsCFM25,
|
6005
|
+
duct_leakage_value: 0,
|
6006
|
+
duct_leakage_total_or_to_outside: HPXML::DuctLeakageToOutside)
|
6007
|
+
hpxml.hvac_distributions[0].duct_leakage_measurements.add(duct_type: HPXML::DuctTypeReturn,
|
6008
|
+
duct_leakage_units: HPXML::UnitsCFM25,
|
6009
|
+
duct_leakage_value: 0,
|
6010
|
+
duct_leakage_total_or_to_outside: HPXML::DuctLeakageToOutside)
|
5326
6011
|
elsif ['base-hvac-boiler-gas-central-ac-1-speed.xml'].include? hpxml_file
|
5327
6012
|
hpxml.hvac_distributions[0].distribution_system_type = HPXML::HVACDistributionTypeHydronic
|
5328
6013
|
hpxml.hvac_distributions[0].hydronic_type = HPXML::HydronicTypeBaseboard
|
5329
6014
|
hpxml.hvac_distributions[0].duct_leakage_measurements.clear
|
5330
6015
|
hpxml.hvac_distributions[0].ducts.clear
|
5331
6016
|
hpxml.hvac_distributions.add(id: 'HVACDistribution2',
|
5332
|
-
distribution_system_type: HPXML::HVACDistributionTypeAir
|
5333
|
-
number_of_return_registers: 3)
|
6017
|
+
distribution_system_type: HPXML::HVACDistributionTypeAir)
|
5334
6018
|
hpxml.hvac_distributions[-1].duct_leakage_measurements.add(duct_type: HPXML::DuctTypeSupply,
|
5335
6019
|
duct_leakage_units: HPXML::UnitsCFM25,
|
5336
6020
|
duct_leakage_value: 75,
|
@@ -5352,7 +6036,6 @@ def set_hpxml_hvac_distributions(hpxml_file, hpxml)
|
|
5352
6036
|
'base-hvac-evap-cooler-only.xml',
|
5353
6037
|
'base-hvac-fireplace-wood-only.xml',
|
5354
6038
|
'base-hvac-floor-furnace-propane-only.xml',
|
5355
|
-
'base-hvac-ideal-air.xml',
|
5356
6039
|
'base-hvac-mini-split-heat-pump-ductless.xml',
|
5357
6040
|
'base-hvac-mini-split-air-conditioner-only-ductless.xml',
|
5358
6041
|
'base-hvac-room-ac-only.xml',
|
@@ -5464,8 +6147,10 @@ def set_hpxml_hvac_distributions(hpxml_file, hpxml)
|
|
5464
6147
|
hpxml.hvac_distributions[0].ducts[0].duct_surface_area = 30
|
5465
6148
|
hpxml.hvac_distributions[0].ducts[1].duct_surface_area = 10
|
5466
6149
|
elsif ['base-hvac-evap-cooler-only-ducted.xml'].include? hpxml_file
|
5467
|
-
hpxml.hvac_distributions[0].duct_leakage_measurements.
|
6150
|
+
hpxml.hvac_distributions[0].duct_leakage_measurements[-1].duct_leakage_value = 0.0
|
5468
6151
|
hpxml.hvac_distributions[0].ducts.pop
|
6152
|
+
elsif ['invalid_files/hvac-distribution-return-duct-leakage-missing.xml'].include? hpxml_file
|
6153
|
+
hpxml.hvac_distributions[0].duct_leakage_measurements.pop
|
5469
6154
|
elsif ['base-hvac-ducts-leakage-percent.xml'].include? hpxml_file
|
5470
6155
|
hpxml.hvac_distributions[0].duct_leakage_measurements.clear
|
5471
6156
|
hpxml.hvac_distributions[0].duct_leakage_measurements.add(duct_type: HPXML::DuctTypeSupply,
|
@@ -5539,8 +6224,8 @@ def set_hpxml_hvac_distributions(hpxml_file, hpxml)
|
|
5539
6224
|
if hpxml_file == 'base-atticroof-conditioned.xml'
|
5540
6225
|
# Test leakage to outside when all ducts in conditioned space
|
5541
6226
|
# (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 =
|
6227
|
+
hpxml.hvac_distributions[0].duct_leakage_measurements[0].duct_leakage_value = 50.0
|
6228
|
+
hpxml.hvac_distributions[0].duct_leakage_measurements[1].duct_leakage_value = 100.0
|
5544
6229
|
end
|
5545
6230
|
elsif ['base-bldgtype-multifamily-adjacent-to-other-housing-unit.xml'].include? hpxml_file
|
5546
6231
|
hpxml.hvac_distributions[0].ducts[0].duct_location = HPXML::LocationOtherHousingUnit
|
@@ -5560,29 +6245,33 @@ def set_hpxml_hvac_distributions(hpxml_file, hpxml)
|
|
5560
6245
|
'base-bldgtype-multifamily-shared-boiler-chiller-fan-coil-ducted.xml',
|
5561
6246
|
'base-bldgtype-multifamily-shared-boiler-only-fan-coil-ducted.xml',
|
5562
6247
|
'base-bldgtype-multifamily-shared-chiller-only-fan-coil-ducted.xml'].include? hpxml_file
|
5563
|
-
hpxml.hvac_distributions[0].distribution_system_type = HPXML::HVACDistributionTypeHydronicAndAir
|
5564
6248
|
if hpxml_file.include? 'fan-coil'
|
5565
|
-
hpxml.hvac_distributions[0].
|
6249
|
+
hpxml.hvac_distributions[0].distribution_system_type = HPXML::HVACDistributionTypeAir
|
6250
|
+
hpxml.hvac_distributions[0].air_type = HPXML::AirTypeFanCoil
|
6251
|
+
hpxml.hvac_distributions[0].duct_leakage_measurements[0].duct_leakage_value = 15
|
6252
|
+
hpxml.hvac_distributions[0].duct_leakage_measurements[1].duct_leakage_value = 10
|
5566
6253
|
elsif hpxml_file.include? 'water-loop-heat-pump'
|
5567
|
-
hpxml.hvac_distributions[0].
|
5568
|
-
hpxml.hvac_distributions[0].
|
6254
|
+
hpxml.hvac_distributions[0].distribution_system_type = HPXML::HVACDistributionTypeHydronic
|
6255
|
+
hpxml.hvac_distributions[0].hydronic_type = HPXML::HydronicTypeWaterLoop
|
6256
|
+
hpxml.hvac_distributions.add(id: 'HVACDistributionWLHP',
|
6257
|
+
distribution_system_type: HPXML::HVACDistributionTypeAir)
|
6258
|
+
hpxml.hvac_distributions[-1].duct_leakage_measurements.add(duct_type: HPXML::DuctTypeSupply,
|
6259
|
+
duct_leakage_units: HPXML::UnitsCFM25,
|
6260
|
+
duct_leakage_value: 15,
|
6261
|
+
duct_leakage_total_or_to_outside: HPXML::DuctLeakageToOutside)
|
6262
|
+
hpxml.hvac_distributions[-1].duct_leakage_measurements.add(duct_type: HPXML::DuctTypeReturn,
|
6263
|
+
duct_leakage_units: HPXML::UnitsCFM25,
|
6264
|
+
duct_leakage_value: 10,
|
6265
|
+
duct_leakage_total_or_to_outside: HPXML::DuctLeakageToOutside)
|
5569
6266
|
end
|
5570
|
-
hpxml.hvac_distributions[
|
5571
|
-
|
5572
|
-
|
5573
|
-
|
5574
|
-
hpxml.hvac_distributions[
|
5575
|
-
|
5576
|
-
|
5577
|
-
|
5578
|
-
hpxml.hvac_distributions[0].ducts.add(duct_type: HPXML::DuctTypeSupply,
|
5579
|
-
duct_insulation_r_value: 0,
|
5580
|
-
duct_location: HPXML::LocationOtherMultifamilyBufferSpace,
|
5581
|
-
duct_surface_area: 50)
|
5582
|
-
hpxml.hvac_distributions[0].ducts.add(duct_type: HPXML::DuctTypeReturn,
|
5583
|
-
duct_insulation_r_value: 0,
|
5584
|
-
duct_location: HPXML::LocationOtherMultifamilyBufferSpace,
|
5585
|
-
duct_surface_area: 20)
|
6267
|
+
hpxml.hvac_distributions[-1].ducts.add(duct_type: HPXML::DuctTypeSupply,
|
6268
|
+
duct_insulation_r_value: 0,
|
6269
|
+
duct_location: HPXML::LocationOtherMultifamilyBufferSpace,
|
6270
|
+
duct_surface_area: 50)
|
6271
|
+
hpxml.hvac_distributions[-1].ducts.add(duct_type: HPXML::DuctTypeReturn,
|
6272
|
+
duct_insulation_r_value: 0,
|
6273
|
+
duct_location: HPXML::LocationOtherMultifamilyBufferSpace,
|
6274
|
+
duct_surface_area: 20)
|
5586
6275
|
elsif ['invalid_files/hvac-invalid-distribution-system-type.xml'].include? hpxml_file
|
5587
6276
|
hpxml.hvac_distributions.add(id: 'HVACDistribution2',
|
5588
6277
|
distribution_system_type: HPXML::HVACDistributionTypeHydronic,
|
@@ -5601,13 +6290,6 @@ def set_hpxml_hvac_distributions(hpxml_file, hpxml)
|
|
5601
6290
|
duct.duct_location = nil
|
5602
6291
|
end
|
5603
6292
|
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
6293
|
elsif ['invalid_files/missing-duct-location.xml'].include? hpxml_file
|
5612
6294
|
hpxml.hvac_distributions.each do |hvac_distribution|
|
5613
6295
|
next unless hvac_distribution.distribution_system_type == HPXML::HVACDistributionTypeAir
|
@@ -5616,20 +6298,39 @@ def set_hpxml_hvac_distributions(hpxml_file, hpxml)
|
|
5616
6298
|
end
|
5617
6299
|
elsif ['invalid_files/multifamily-reference-duct.xml'].include? hpxml_file
|
5618
6300
|
hpxml.hvac_distributions[0].ducts[0].duct_location = HPXML::LocationOtherMultifamilyBufferSpace
|
6301
|
+
elsif ['invalid_files/multiple-shared-cooling-systems.xml',
|
6302
|
+
'invalid_files/multiple-shared-heating-systems.xml'].include? hpxml_file
|
6303
|
+
hpxml.hvac_distributions << hpxml.hvac_distributions[0].dup
|
6304
|
+
hpxml.hvac_distributions[-1].id += '2'
|
6305
|
+
elsif ['invalid_files/duct-leakage-cfm25.xml'].include? hpxml_file
|
6306
|
+
hpxml.hvac_distributions[0].duct_leakage_measurements[0].duct_leakage_value = -2.0
|
6307
|
+
hpxml.hvac_distributions[0].duct_leakage_measurements[1].duct_leakage_value = -2.0
|
6308
|
+
elsif ['invalid_files/duct-leakage-percent.xml'].include? hpxml_file
|
6309
|
+
hpxml.hvac_distributions[0].duct_leakage_measurements[0].duct_leakage_units = HPXML::UnitsPercent
|
6310
|
+
hpxml.hvac_distributions[0].duct_leakage_measurements[1].duct_leakage_units = HPXML::UnitsPercent
|
5619
6311
|
end
|
5620
6312
|
|
5621
6313
|
# Set ConditionedFloorAreaServed
|
5622
|
-
n_air_dists = hpxml.hvac_distributions.select { |d| [HPXML::HVACDistributionTypeAir
|
6314
|
+
n_air_dists = hpxml.hvac_distributions.select { |d| [HPXML::HVACDistributionTypeAir].include? d.distribution_system_type }.size
|
5623
6315
|
hpxml.hvac_distributions.each do |hvac_distribution|
|
5624
|
-
if [HPXML::HVACDistributionTypeAir
|
5625
|
-
|
6316
|
+
if [HPXML::HVACDistributionTypeAir].include? hvac_distribution.distribution_system_type
|
5626
6317
|
hvac_distribution.conditioned_floor_area_served = hpxml.building_construction.conditioned_floor_area / n_air_dists
|
5627
6318
|
else
|
5628
6319
|
hvac_distribution.conditioned_floor_area_served = nil
|
5629
6320
|
end
|
5630
6321
|
end
|
5631
6322
|
if ['invalid_files/invalid-distribution-cfa-served.xml'].include? hpxml_file
|
5632
|
-
hpxml.hvac_distributions[0].conditioned_floor_area_served = hpxml.building_construction.conditioned_floor_area +
|
6323
|
+
hpxml.hvac_distributions[0].conditioned_floor_area_served = hpxml.building_construction.conditioned_floor_area + 1.1
|
6324
|
+
end
|
6325
|
+
|
6326
|
+
# Set number of return registers
|
6327
|
+
if not ['base-misc-defaults.xml'].include? hpxml_file
|
6328
|
+
hpxml.hvac_distributions.each do |hvac_distribution|
|
6329
|
+
next unless hvac_distribution.distribution_system_type == HPXML::HVACDistributionTypeAir
|
6330
|
+
next unless hvac_distribution.ducts.select { |d| d.duct_type == HPXML::DuctTypeReturn }.size > 0
|
6331
|
+
|
6332
|
+
hvac_distribution.number_of_return_registers = hpxml.building_construction.number_of_conditioned_floors.ceil
|
6333
|
+
end
|
5633
6334
|
end
|
5634
6335
|
end
|
5635
6336
|
|
@@ -5757,6 +6458,9 @@ def set_hpxml_ventilation_fans(hpxml_file, hpxml)
|
|
5757
6458
|
hours_in_operation: 24,
|
5758
6459
|
fan_power: 26,
|
5759
6460
|
used_for_whole_building_ventilation: true)
|
6461
|
+
elsif ['invalid_files/invalid-shared-vent-in-unit-flowrate.xml'].include? hpxml_file
|
6462
|
+
hpxml.ventilation_fans[0].in_unit_flow_rate = 80
|
6463
|
+
hpxml.ventilation_fans[0].rated_flow_rate = 80
|
5760
6464
|
elsif ['base-bldgtype-multifamily-shared-mechvent-preconditioning.xml'].include? hpxml_file
|
5761
6465
|
hpxml.ventilation_fans[0].preheating_fuel = HPXML::FuelTypeNaturalGas
|
5762
6466
|
hpxml.ventilation_fans[0].preheating_efficiency_cop = 0.92
|
@@ -6175,6 +6879,8 @@ def set_hpxml_water_heating_systems(hpxml_file, hpxml)
|
|
6175
6879
|
hpxml.water_heating_systems[0].energy_factor = 1.0
|
6176
6880
|
elsif ['invalid_files/dhw-invalid-uef-tank-heat-pump.xml'].include? hpxml_file
|
6177
6881
|
hpxml.water_heating_systems[0].uniform_energy_factor = 1.0
|
6882
|
+
elsif ['invalid_files/invalid-number-of-units-served.xml'].include? hpxml_file
|
6883
|
+
hpxml.water_heating_systems[0].number_of_units_served = 1
|
6178
6884
|
end
|
6179
6885
|
end
|
6180
6886
|
|
@@ -6366,6 +7072,8 @@ def set_hpxml_pv_systems(hpxml_file, hpxml)
|
|
6366
7072
|
inverter_efficiency: 0.96,
|
6367
7073
|
system_losses_fraction: 0.14,
|
6368
7074
|
number_of_bedrooms_served: 18)
|
7075
|
+
elsif ['invalid_files/invalid-number-of-bedrooms-served.xml'].include? hpxml_file
|
7076
|
+
hpxml.pv_systems[0].number_of_bedrooms_served = hpxml.building_construction.number_of_bedrooms
|
6369
7077
|
end
|
6370
7078
|
end
|
6371
7079
|
|
@@ -6386,6 +7094,10 @@ def set_hpxml_generators(hpxml_file, hpxml)
|
|
6386
7094
|
annual_consumption_kbtu: 85000,
|
6387
7095
|
annual_output_kwh: 5000,
|
6388
7096
|
number_of_bedrooms_served: 18)
|
7097
|
+
elsif ['invalid_files/generator-output-greater-than-consumption.xml'].include? hpxml_file
|
7098
|
+
hpxml.generators[0].annual_consumption_kbtu = 1500
|
7099
|
+
elsif ['invalid_files/generator-number-of-bedrooms-served.xml'].include? hpxml_file
|
7100
|
+
hpxml.generators[0].number_of_bedrooms_served = hpxml.building_construction.number_of_bedrooms
|
6389
7101
|
end
|
6390
7102
|
end
|
6391
7103
|
|
@@ -6454,7 +7166,6 @@ def set_hpxml_clothes_dryer(hpxml_file, hpxml)
|
|
6454
7166
|
location: HPXML::LocationLivingSpace,
|
6455
7167
|
fuel_type: HPXML::FuelTypeElectricity,
|
6456
7168
|
combined_energy_factor: 3.73,
|
6457
|
-
control_type: HPXML::ClothesDryerControlTypeTimer,
|
6458
7169
|
is_vented: true,
|
6459
7170
|
vented_flow_rate: 150)
|
6460
7171
|
elsif ['base-appliances-none.xml',
|
@@ -6477,7 +7188,6 @@ def set_hpxml_clothes_dryer(hpxml_file, hpxml)
|
|
6477
7188
|
location: HPXML::LocationLivingSpace,
|
6478
7189
|
fuel_type: HPXML::FuelTypeElectricity,
|
6479
7190
|
energy_factor: HotWaterAndAppliances.calc_clothes_dryer_ef_from_cef(cef).round(2),
|
6480
|
-
control_type: HPXML::ClothesDryerControlTypeMoisture,
|
6481
7191
|
is_vented: false)
|
6482
7192
|
elsif ['base-appliances-coal.xml',
|
6483
7193
|
'base-appliances-gas.xml',
|
@@ -6487,8 +7197,7 @@ def set_hpxml_clothes_dryer(hpxml_file, hpxml)
|
|
6487
7197
|
hpxml.clothes_dryers.clear
|
6488
7198
|
hpxml.clothes_dryers.add(id: 'ClothesDryer',
|
6489
7199
|
location: HPXML::LocationLivingSpace,
|
6490
|
-
combined_energy_factor: 3.30
|
6491
|
-
control_type: HPXML::ClothesDryerControlTypeMoisture)
|
7200
|
+
combined_energy_factor: 3.30)
|
6492
7201
|
if hpxml_file == 'base-appliances-coal.xml'
|
6493
7202
|
hpxml.clothes_dryers[0].fuel_type = HPXML::FuelTypeCoal
|
6494
7203
|
elsif hpxml_file == 'base-appliances-gas.xml'
|
@@ -6511,7 +7220,6 @@ def set_hpxml_clothes_dryer(hpxml_file, hpxml)
|
|
6511
7220
|
hpxml.clothes_dryers[0].location = nil
|
6512
7221
|
hpxml.clothes_dryers[0].energy_factor = nil
|
6513
7222
|
hpxml.clothes_dryers[0].combined_energy_factor = nil
|
6514
|
-
hpxml.clothes_dryers[0].control_type = nil
|
6515
7223
|
hpxml.clothes_dryers[0].is_vented = nil
|
6516
7224
|
hpxml.clothes_dryers[0].vented_flow_rate = nil
|
6517
7225
|
elsif ['base-bldgtype-multifamily-shared-laundry-room.xml'].include? hpxml_file
|
@@ -6675,7 +7383,8 @@ def set_hpxml_dehumidifier(hpxml_file, hpxml)
|
|
6675
7383
|
capacity: 40,
|
6676
7384
|
energy_factor: 1.8,
|
6677
7385
|
rh_setpoint: 0.5,
|
6678
|
-
fraction_served: 1.0
|
7386
|
+
fraction_served: 1.0,
|
7387
|
+
location: HPXML::LocationLivingSpace)
|
6679
7388
|
elsif ['base-appliances-dehumidifier-50percent.xml'].include? hpxml_file
|
6680
7389
|
hpxml.dehumidifiers[0].fraction_served = 0.5
|
6681
7390
|
elsif ['base-appliances-dehumidifier-ief-portable.xml'].include? hpxml_file
|
@@ -6683,6 +7392,18 @@ def set_hpxml_dehumidifier(hpxml_file, hpxml)
|
|
6683
7392
|
hpxml.dehumidifiers[0].integrated_energy_factor = 1.5
|
6684
7393
|
elsif ['base-appliances-dehumidifier-ief-whole-home.xml'].include? hpxml_file
|
6685
7394
|
hpxml.dehumidifiers[0].type = HPXML::DehumidifierTypeWholeHome
|
7395
|
+
elsif ['base-appliances-dehumidifier-multiple.xml'].include? hpxml_file
|
7396
|
+
hpxml.dehumidifiers.add(id: 'Dehumidifier2',
|
7397
|
+
type: HPXML::DehumidifierTypePortable,
|
7398
|
+
capacity: 30,
|
7399
|
+
energy_factor: 1.6,
|
7400
|
+
rh_setpoint: 0.5,
|
7401
|
+
fraction_served: 0.25,
|
7402
|
+
location: HPXML::LocationLivingSpace)
|
7403
|
+
elsif ['invalid_files/dehumidifier-setpoints.xml'].include? hpxml_file
|
7404
|
+
hpxml.dehumidifiers[1].rh_setpoint = 0.55
|
7405
|
+
elsif ['invalid_files/dehumidifier-fraction-served.xml'].include? hpxml_file
|
7406
|
+
hpxml.dehumidifiers[1].fraction_served = 0.6
|
6686
7407
|
end
|
6687
7408
|
end
|
6688
7409
|
|
@@ -6812,16 +7533,18 @@ def set_hpxml_pools(hpxml_file, hpxml)
|
|
6812
7533
|
if ['base-misc-loads-large-uncommon.xml',
|
6813
7534
|
'base-misc-usage-multiplier.xml'].include? hpxml_file
|
6814
7535
|
hpxml.pools.add(id: 'Pool',
|
7536
|
+
type: HPXML::TypeUnknown,
|
7537
|
+
pump_type: HPXML::TypeUnknown,
|
7538
|
+
pump_kwh_per_year: 2700,
|
7539
|
+
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',
|
7540
|
+
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',
|
7541
|
+
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
7542
|
heater_type: HPXML::HeaterTypeGas,
|
6816
7543
|
heater_load_units: HPXML::UnitsThermPerYear,
|
6817
7544
|
heater_load_value: 500,
|
6818
|
-
pump_kwh_per_year: 2700,
|
6819
7545
|
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
7546
|
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')
|
7547
|
+
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
7548
|
if hpxml_file == 'base-misc-usage-multiplier.xml'
|
6826
7549
|
hpxml.pools.each do |pool|
|
6827
7550
|
pool.pump_usage_multiplier = 0.9
|
@@ -6829,11 +7552,7 @@ def set_hpxml_pools(hpxml_file, hpxml)
|
|
6829
7552
|
end
|
6830
7553
|
end
|
6831
7554
|
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
|
7555
|
+
hpxml.pools[0].heater_type = HPXML::TypeNone
|
6837
7556
|
end
|
6838
7557
|
end
|
6839
7558
|
|
@@ -6841,16 +7560,18 @@ def set_hpxml_hot_tubs(hpxml_file, hpxml)
|
|
6841
7560
|
if ['base-misc-loads-large-uncommon.xml',
|
6842
7561
|
'base-misc-usage-multiplier.xml'].include? hpxml_file
|
6843
7562
|
hpxml.hot_tubs.add(id: 'HotTub',
|
7563
|
+
type: HPXML::TypeUnknown,
|
7564
|
+
pump_type: HPXML::TypeUnknown,
|
7565
|
+
pump_kwh_per_year: 1000,
|
7566
|
+
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',
|
7567
|
+
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',
|
7568
|
+
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
7569
|
heater_type: HPXML::HeaterTypeElectricResistance,
|
6845
7570
|
heater_load_units: HPXML::UnitsKwhPerYear,
|
6846
7571
|
heater_load_value: 1300,
|
6847
|
-
pump_kwh_per_year: 1000,
|
6848
7572
|
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
7573
|
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')
|
7574
|
+
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
7575
|
if hpxml_file == 'base-misc-usage-multiplier.xml'
|
6855
7576
|
hpxml.hot_tubs.each do |hot_tub|
|
6856
7577
|
hot_tub.pump_usage_multiplier = 0.9
|
@@ -6937,6 +7658,10 @@ def set_hpxml_plug_loads(hpxml_file, hpxml)
|
|
6937
7658
|
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
7659
|
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
7660
|
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')
|
7661
|
+
elsif ['invalid_files/frac-sensible-plug-load.xml'].include? hpxml_file
|
7662
|
+
hpxml.plug_loads[0].frac_sensible = -0.1
|
7663
|
+
elsif ['invalid_files/frac-total-plug-load.xml'].include? hpxml_file
|
7664
|
+
hpxml.plug_loads[0].frac_latent = 1.0 - hpxml.plug_loads[0].frac_sensible + 0.1
|
6940
7665
|
else
|
6941
7666
|
cfa = hpxml.building_construction.conditioned_floor_area
|
6942
7667
|
nbeds = hpxml.building_construction.number_of_bedrooms
|
@@ -6995,6 +7720,11 @@ def set_hpxml_fuel_loads(hpxml_file, hpxml)
|
|
6995
7720
|
elsif ['base-misc-loads-large-uncommon2.xml'].include? hpxml_file
|
6996
7721
|
hpxml.fuel_loads[0].fuel_type = HPXML::FuelTypeOil
|
6997
7722
|
hpxml.fuel_loads[2].fuel_type = HPXML::FuelTypeWoodPellets
|
7723
|
+
elsif ['invalid_files/frac-sensible-fuel-load.xml'].include? hpxml_file
|
7724
|
+
hpxml.fuel_loads[0].frac_sensible = -0.1
|
7725
|
+
elsif ['invalid_files/frac-total-fuel-load.xml'].include? hpxml_file
|
7726
|
+
hpxml.fuel_loads[0].frac_sensible = 0.8
|
7727
|
+
hpxml.fuel_loads[0].frac_latent = 1.0 - hpxml.fuel_loads[0].frac_sensible + 0.1
|
6998
7728
|
end
|
6999
7729
|
end
|
7000
7730
|
|
@@ -7190,12 +7920,53 @@ def create_schematron_hpxml_validator(hpxml_docs)
|
|
7190
7920
|
end
|
7191
7921
|
end
|
7192
7922
|
|
7923
|
+
# Add ID/IDref checks
|
7924
|
+
# TODO: Dynamically obtain these lists
|
7925
|
+
id_names = ['SystemIdentifier',
|
7926
|
+
'BuildingID']
|
7927
|
+
idref_names = ['AttachedToRoof',
|
7928
|
+
'AttachedToFrameFloor',
|
7929
|
+
'AttachedToSlab',
|
7930
|
+
'AttachedToFoundationWall',
|
7931
|
+
'AttachedToWall',
|
7932
|
+
'DistributionSystem',
|
7933
|
+
'AttachedToHVACDistributionSystem',
|
7934
|
+
'RelatedHVACSystem',
|
7935
|
+
'ConnectedTo']
|
7936
|
+
elements_in_sample_files.each do |element_xpath|
|
7937
|
+
element_name = element_xpath.split('/')[-1].gsub('h:', '')
|
7938
|
+
context_xpath = "/#{element_xpath.split('/')[0..-2].join('/')}"
|
7939
|
+
if id_names.include? element_name
|
7940
|
+
rule = rules[context_xpath]
|
7941
|
+
if rule.nil?
|
7942
|
+
# Need new rule
|
7943
|
+
rule = XMLHelper.add_element(pattern, 'sch:rule')
|
7944
|
+
XMLHelper.add_attribute(rule, 'context', context_xpath)
|
7945
|
+
rules[context_xpath] = rule
|
7946
|
+
end
|
7947
|
+
assertion = XMLHelper.add_element(rule, 'sch:assert', "Expected id attribute for #{element_name}", :string)
|
7948
|
+
XMLHelper.add_attribute(assertion, 'role', 'ERROR')
|
7949
|
+
XMLHelper.add_attribute(assertion, 'test', "count(h:#{element_name}[@id]) = 1 or not (h:#{element_name})")
|
7950
|
+
elsif idref_names.include? element_name
|
7951
|
+
rule = rules[context_xpath]
|
7952
|
+
if rule.nil?
|
7953
|
+
# Need new rule
|
7954
|
+
rule = XMLHelper.add_element(pattern, 'sch:rule')
|
7955
|
+
XMLHelper.add_attribute(rule, 'context', context_xpath)
|
7956
|
+
rules[context_xpath] = rule
|
7957
|
+
end
|
7958
|
+
assertion = XMLHelper.add_element(rule, 'sch:assert', "Expected idref attribute for #{element_name}", :string)
|
7959
|
+
XMLHelper.add_attribute(assertion, 'role', 'ERROR')
|
7960
|
+
XMLHelper.add_attribute(assertion, 'test', "count(h:#{element_name}[@idref]) = 1 or not(h:#{element_name})")
|
7961
|
+
end
|
7962
|
+
end
|
7963
|
+
|
7193
7964
|
XMLHelper.write_file(hpxml_validator, File.join(File.dirname(__FILE__), 'HPXMLtoOpenStudio', 'resources', 'HPXMLvalidator.xml'))
|
7194
7965
|
end
|
7195
7966
|
|
7196
7967
|
def get_element_full_xpaths(element_xpaths, complex_type_or_group_dict, element_xpath, element_type)
|
7197
7968
|
if not complex_type_or_group_dict.keys.include? element_type
|
7198
|
-
|
7969
|
+
element_xpaths[element_xpath] = element_type
|
7199
7970
|
else
|
7200
7971
|
complex_type_or_group = deep_copy_object(complex_type_or_group_dict[element_type])
|
7201
7972
|
complex_type_or_group.each do |k, v|
|
@@ -7316,13 +8087,18 @@ if ARGV[0].to_sym == :create_release_zips
|
|
7316
8087
|
File.delete(zip_path) if File.exist? zip_path
|
7317
8088
|
end
|
7318
8089
|
|
7319
|
-
|
7320
|
-
|
7321
|
-
|
7322
|
-
|
7323
|
-
|
7324
|
-
|
7325
|
-
|
8090
|
+
if ENV['CI']
|
8091
|
+
# CI doesn't have git, so default to everything
|
8092
|
+
git_files = Dir['**/*.*']
|
8093
|
+
else
|
8094
|
+
# Only include files under git version control
|
8095
|
+
command = 'git ls-files'
|
8096
|
+
begin
|
8097
|
+
git_files = `#{command}`
|
8098
|
+
rescue
|
8099
|
+
puts "Command failed: '#{command}'. Perhaps git needs to be installed?"
|
8100
|
+
exit!
|
8101
|
+
end
|
7326
8102
|
end
|
7327
8103
|
|
7328
8104
|
files = ['HPXMLtoOpenStudio/measure.*',
|