urbanopt-cli 0.4.1 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/CMakeLists.txt +9 -9
- data/Gemfile +10 -12
- data/README.md +1 -0
- data/example_files/Gemfile +26 -10
- data/example_files/mappers/Baseline.rb +9 -0
- data/example_files/mappers/CreateBar.rb +2 -0
- data/example_files/mappers/Floorspace.rb +12 -10
- data/example_files/mappers/floorspace_workflow.osw +9 -0
- data/example_files/residential/clothes_washer.tsv +1 -1
- data/example_files/residential/water_heater.tsv +1 -1
- data/example_files/resources/hpxml-measures/.circleci/config.yml +20 -0
- data/example_files/resources/hpxml-measures/.github/pull_request_template.md +13 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.rb +583 -334
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.xml +687 -586
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/geometry.rb +21 -22
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules.rb +34 -24
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_config.yml +14 -1
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-coal.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier-50percent.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{base-appliances-dehumidifier-ief.osw → base-appliances-dehumidifier-ief-portable.osw} +34 -36
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier-ief-whole-home.osw +361 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-gas.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-modified.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-none.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-oil.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-propane.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-wood.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-flat.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-radiant-barrier.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-unvented-insulated-roof.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-vented.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{extra-mechvent-shared-preconditioning.osw → base-bldgtype-multifamily-shared-mechvent-preconditioning.osw} +47 -48
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{extra-mechvent-shared.osw → base-bldgtype-multifamily-shared-mechvent.osw} +47 -48
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{extra-pv-shared.osw → base-bldgtype-multifamily-shared-pv.osw} +49 -50
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-water-heater.osw +365 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{base-multifamily.osw → base-bldgtype-multifamily.osw} +43 -44
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{base-single-family-attached.osw → base-bldgtype-single-family-attached.osw} +36 -38
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-combi-tankless-outside.osw +33 -34
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-combi-tankless.osw +33 -34
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-dwhr.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-outside.osw +33 -34
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-standbyloss.osw +33 -34
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-with-solar-fraction.osw +33 -34
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect.osw +33 -34
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-electric.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-gas.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-hpwh.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-indirect.osw +33 -34
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-low-flow-fixtures.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-none.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-demand.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-manual.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-nocontrol.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-temperature.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-timer.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-evacuated-tube.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-flat-plate.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-ics.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-fraction.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-indirect-flat-plate.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-thermosyphon-flat-plate.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-coal.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-elec-uef.osw +362 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas-outside.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas-uef.osw +362 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-outside.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-uef.osw +362 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-with-solar-fraction.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-with-solar.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-oil.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-wood.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric-outside.osw +33 -36
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric-uef.osw +361 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-uef.osw +361 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-with-solar-fraction.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-with-solar.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-propane.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-2stories-garage.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-2stories.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-1.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-2.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-4.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-5.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-garage.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-ach-house-pressure.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-cfm-house-pressure.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-cfm50.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-flue.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-natural-ach.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-overhangs.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-windows-none.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-ambient.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-conditioned-basement-slab-insulation.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-slab.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement-assembly-r.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement-wall-insulation.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unvented-crawlspace.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-vented-crawlspace.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-1-speed.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-2-speed.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-var-speed.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-coal-only.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-elec-only.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-gas-central-ac-1-speed.osw +33 -34
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-gas-only.osw +33 -34
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-oil-only.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-propane-only.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-wood-only.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-1-speed.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-2-speed.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-var-speed.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.osw +35 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-mini-split-heat-pump-ducted.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ducts-leakage-percent.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-elec-resistance-only.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-furnace-gas.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-only-ducted.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-only.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-fireplace-wood-only.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-fixed-heater-gas-only.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-floor-furnace-propane-only.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-elec-central-ac-1-speed.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-elec-only.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-central-ac-2-speed.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-central-ac-var-speed.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-only.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-room-ac.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-oil-only.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-propane-only.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-wood-only.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ground-to-air-heat-pump.osw +35 -37
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-air-conditioner-only-ducted.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-air-conditioner-only-ductless.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted-cooling-only.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted-heating-only.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ductless.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-none.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-portable-heater-gas-only.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-room-ac-only-33percent.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-room-ac-only.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-setpoints.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-stove-oil-only.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-stove-wood-pellets-only.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-undersized.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-wall-furnace-elec-only.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-lighting-ceiling-fans.osw +34 -36
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-lighting-detailed.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-AMY-2012.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-baltimore-md.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-dallas-tx.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-duluth-mn.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-miami-fl.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-balanced.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-bath-kitchen-fans.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-cfis-evap-cooler-only-ducted.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-cfis.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-erv-atre-asre.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-erv.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-exhaust.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-hrv-asre.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-hrv.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-supply.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-whole-house-fan.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-defaults.osw +36 -38
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-loads-large-uncommon.osw +39 -41
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-loads-large-uncommon2.osw +39 -41
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-neighbor-shading.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-usage-multiplier.osw +30 -32
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-pv.osw +29 -31
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-schedules-stochastic.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-schedules-user-specified.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-calendar-year-custom.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-daylight-saving-custom.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-daylight-saving-disabled.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-runperiod-1-month.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-timestep-10-mins.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/build_residential_hpxml_test.rb +19 -8
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-auto.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-dhw-solar-latitude.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-garage-partially-protruded.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-hvac-programmable-thermostat.osw +369 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-plug-loads-additional-multipliers.osw +361 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-pv-roofpitch.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{extra-dhw-shared-water-heater.osw → extra-schedules-random-seed.osw} +47 -50
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-fireplace.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-portable-heater.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-refrigerator.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-vacancy-6-months.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/conditioned-attic-with-floor-insulation.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/conditioned-basement-with-ceiling-insulation.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/cooling-system-and-heat-pump.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/dhw-indirect-without-boiler.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/ducts-location-and-areas-not-same-type.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/heating-system-and-heat-pump.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-bottom-crawlspace-zero-foundation-height.osw +41 -42
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-bottom-slab-non-zero-foundation-height.osw +41 -42
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-no-building-orientation.osw +40 -41
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{base-hvac-programmable-thermostat.osw → invalid_files/multipliers-without-fuel-loads.osw} +31 -33
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{base-dhw-uef.osw → invalid_files/multipliers-without-plug-loads.osw} +35 -37
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-electric-heat-pump-water-heater.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-integer-ceiling-fan-quantity.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-integer-geometry-num-bathrooms.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/second-heating-system-serves-majority-heat.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-attached-ambient.osw +35 -37
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-attached-no-building-orientation.osw +35 -37
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-detached-finished-basement-zero-foundation-height.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-detached-slab-non-zero-foundation-height.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/slab-non-zero-foundation-height-above-grade.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unconditioned-basement-with-wall-and-ceiling-insulation.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unvented-attic-with-floor-and-roof-insulation.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unvented-crawlspace-with-wall-and-ceiling-insulation.osw +36 -38
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/vented-attic-with-floor-and-roof-insulation.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/vented-crawlspace-with-wall-and-ceiling-insulation.osw +33 -35
- data/example_files/resources/hpxml-measures/Gemfile +0 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.rb +141 -129
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.xml +183 -153
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/BaseElements.xsd +4 -4
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/EPvalidator.xml +247 -121
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/HPXMLDataTypes.xsd +0 -10
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/HPXMLvalidator.xml +434 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/airflow.rb +28 -35
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constants.rb +4 -12
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constructions.rb +60 -53
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/energyplus.rb +11 -15
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/generator.rb +81 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/geometry.rb +3 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hotwater_appliances.rb +21 -12
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml.rb +1150 -1072
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +799 -389
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac.rb +227 -351
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac_sizing.rb +122 -89
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/lighting.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/location.rb +2 -3
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/meta_measure.rb +0 -6
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/misc_loads.rb +8 -13
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/pv.rb +23 -21
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedules.rb +8 -7
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/simcontrols.rb +2 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/validator.rb +80 -19
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/version.rb +9 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/waterheater.rb +103 -72
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/xmlhelper.rb +110 -37
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_airflow.rb +16 -7
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_constructions.rb +109 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_defaults.rb +1747 -838
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_generator.rb +99 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hotwater_appliance.rb +5 -16
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac.rb +23 -25
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac_sizing.rb +54 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_lighting.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_location.rb +10 -10
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_miscloads.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_pv.rb +2 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_simcontrols.rb +10 -10
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_validation.rb +77 -60
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_water_heater.rb +186 -34
- data/example_files/resources/hpxml-measures/README.md +1 -0
- data/example_files/resources/hpxml-measures/Rakefile +2 -9
- data/example_files/resources/hpxml-measures/SimulationOutputReport/measure.rb +278 -254
- data/example_files/resources/hpxml-measures/SimulationOutputReport/measure.xml +32 -5
- data/example_files/resources/hpxml-measures/SimulationOutputReport/resources/constants.rb +1 -2
- data/example_files/resources/hpxml-measures/SimulationOutputReport/tests/output_report_test.rb +73 -137
- data/example_files/resources/hpxml-measures/docs/source/build_residential_hpxml.rst +3 -3
- data/example_files/resources/hpxml-measures/docs/source/conf.py +7 -4
- data/example_files/resources/hpxml-measures/docs/source/getting_started.rst +4 -4
- data/example_files/resources/hpxml-measures/docs/source/index.rst +2 -2
- data/example_files/resources/hpxml-measures/docs/source/intro.rst +4 -5
- data/example_files/resources/hpxml-measures/docs/source/nstatic/stylesheet.css +13 -1
- data/example_files/resources/hpxml-measures/docs/source/workflow_inputs.rst +2340 -0
- data/example_files/resources/hpxml-measures/docs/source/{simulation_output_report.rst → workflow_outputs.rst} +18 -16
- data/example_files/resources/hpxml-measures/tasks.rb +1154 -669
- data/example_files/resources/hpxml-measures/workflow/run_simulation.rb +64 -20
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-coal.xml +557 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-50percent.xml +523 -524
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-appliances-dehumidifier-ief.xml → base-appliances-dehumidifier-ief-portable.xml} +3 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-whole-home.xml +524 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier.xml +523 -524
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-gas.xml +557 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-modified.xml +563 -565
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-none.xml +511 -513
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-oil.xml +557 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-propane.xml +557 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-wood.xml +557 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-cathedral.xml +564 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-conditioned.xml +632 -634
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-flat.xml +530 -532
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-radiant-barrier.xml +516 -518
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-unvented-insulated-roof.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-vented.xml +564 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-enclosure-other-multifamily-buffer-space.xml → base-bldgtype-multifamily-adjacent-to-multifamily-buffer-space.xml} +30 -59
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multiple.xml +553 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-enclosure-other-non-freezing-space.xml → base-bldgtype-multifamily-adjacent-to-non-freezing-space.xml} +30 -59
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-enclosure-other-heated-space.xml → base-bldgtype-multifamily-adjacent-to-other-heated-space.xml} +30 -59
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-enclosure-other-housing-unit.xml → base-bldgtype-multifamily-adjacent-to-other-housing-unit.xml} +30 -59
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-baseboard.xml +426 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil-ducted.xml +457 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.xml +429 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.xml +469 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-cooling-tower-water-loop-heat-pump.xml +464 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-baseboard.xml +409 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-ducted.xml +439 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-eae.xml +408 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil.xml +411 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-water-loop-heat-pump.xml +445 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-baseboard.xml +408 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil-ducted.xml +438 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil.xml +410 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-water-loop-heat-pump.xml +445 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-cooling-tower-only-water-loop-heat-pump.xml +440 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-generator.xml +459 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-ground-loop-ground-to-air-heat-pump.xml +451 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-laundry-room.xml +465 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-mechvent-shared-multiple.xml → base-bldgtype-multifamily-shared-mechvent-multiple.xml} +35 -410
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-preconditioning.xml +488 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent.xml +472 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-pv.xml +464 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater-recirc.xml +457 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater.xml +450 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily.xml +447 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-single-family-attached.xml +606 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless-outside.xml +517 -519
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless.xml +517 -519
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-2-speed.xml +549 -551
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-gshp.xml +564 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-hpwh.xml +562 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-tankless.xml +550 -549
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-var-speed.xml +549 -551
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater.xml +552 -551
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-dwhr.xml +566 -568
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-dse.xml +518 -520
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-outside.xml +518 -520
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-standbyloss.xml +519 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-with-solar-fraction.xml +526 -528
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect.xml +518 -520
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-electric.xml +566 -568
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-gas.xml +567 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-hpwh.xml +565 -567
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-indirect.xml +523 -525
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-low-flow-fixtures.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-multiple.xml +576 -578
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-none.xml +495 -497
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-demand.xml +564 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-manual.xml +564 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-nocontrol.xml +564 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-temperature.xml +564 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-timer.xml +564 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-evacuated-tube.xml +576 -578
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-flat-plate.xml +576 -578
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-ics.xml +576 -578
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-fraction.xml +569 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-indirect-flat-plate.xml +576 -578
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-thermosyphon-flat-plate.xml +576 -578
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-coal.xml +562 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/{invalid_files/invalid-window-interior-shading.xml → base-dhw-tank-elec-uef.xml} +8 -9
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-outside.xml +562 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-uef.xml +564 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas.xml +562 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-outside.xml +560 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-flowrate.xml → base-dhw-tank-heat-pump-uef.xml} +6 -13
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar-fraction.xml +568 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar.xml +575 -577
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump.xml +560 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-oil.xml +562 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-wood.xml +562 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-outside.xml +560 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-uef.xml +560 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric.xml +559 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-uef.xml +560 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar-fraction.xml +567 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar.xml +574 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas.xml +559 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-propane.xml +559 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories-garage.xml +660 -664
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories.xml +574 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-1.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-2.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-4.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-5.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-garage.xml +635 -639
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-ach-house-pressure.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm-house-pressure.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm50.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-flue.xml +564 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-natural-ach.xml +560 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-overhangs.xml +576 -578
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-rooftypes.xml +589 -591
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights.xml +589 -591
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-level.xml +516 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces.xml +2473 -2493
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-walltypes.xml +753 -755
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-interior-shading.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-none.xml +503 -505
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-ambient.xml +497 -497
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-complex.xml +723 -729
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-slab-insulation.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-wall-interior-insulation.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-multiple.xml +684 -688
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-slab.xml +515 -517
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-above-grade.xml +608 -610
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-assembly-r.xml +557 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-wall-insulation.xml +572 -574
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement.xml +572 -574
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unvented-crawlspace.xml +572 -574
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-vented-crawlspace.xml +575 -577
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-walkout-basement.xml +626 -628
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed.xml +563 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-2-speed.xml +560 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed.xml +560 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-coal-only.xml +519 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-elec-only.xml +519 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-central-ac-1-speed.xml +571 -573
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-only.xml +520 -522
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-oil-only.xml +519 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-propane-only.xml +519 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-wood-only.xml +519 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-1-speed.xml +550 -549
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-2-speed.xml +547 -549
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-var-speed.xml +547 -549
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml +580 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dse.xml +533 -535
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.xml +564 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml +564 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-mini-split-heat-pump-ducted.xml +563 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-leakage-percent.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-elec-resistance-only.xml +510 -512
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-furnace-gas.xml +553 -555
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only-ducted.xml +526 -528
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only.xml +506 -505
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fireplace-wood-only.xml +513 -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 +513 -513
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-coal-only.xml +548 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-central-ac-1-speed.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-only.xml +547 -549
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-2-speed.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-var-speed.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only.xml +550 -550
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-room-ac.xml +559 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-oil-only.xml +547 -549
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-propane-only.xml +547 -549
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-wood-only.xml +547 -549
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-x3-dse.xml +577 -579
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump.xml +562 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ideal-air.xml +498 -500
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ducted.xml +549 -548
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ductless.xml +512 -511
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-cooling-only.xml +556 -555
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-heating-only.xml +562 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted.xml +562 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless.xml +519 -518
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple.xml +913 -912
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple2.xml +834 -837
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-none.xml +487 -489
- 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 +566 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-programmable-thermostat.xml +569 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-33percent.xml +509 -511
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only.xml +509 -511
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-oil-only.xml +513 -513
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-wood-pellets-only.xml +513 -513
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized-allow-increased-fixed-capacities.xml +564 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-wall-furnace-elec-only.xml +513 -513
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-ceiling-fans.xml +572 -574
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-detailed.xml +584 -586
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-none.xml +487 -489
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-AMY-2012.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-baltimore-md.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-dallas-tx.xml +515 -517
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-duluth-mn.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-miami-fl.xml +515 -517
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-balanced.xml +573 -575
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-bath-kitchen-fans.xml +589 -591
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-dse.xml +546 -548
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-evap-cooler-only-ducted.xml +539 -541
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis.xml +574 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv-atre-asre.xml +575 -577
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv.xml +575 -577
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust-rated-flow-rate.xml +573 -575
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust.xml +573 -575
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv-asre.xml +574 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv.xml +574 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-multiple.xml +793 -795
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-supply.xml +573 -575
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-whole-house-fan.xml +571 -573
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-defaults.xml +476 -495
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators.xml +578 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon.xml +753 -833
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon2.xml +740 -820
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-none.xml +549 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-neighbor-shading.xml +574 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-shelter-coefficient.xml +564 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-usage-multiplier.xml +723 -725
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv.xml +2 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-stochastic.xml +2 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-user-specified.xml +2 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-calendar-year-custom.xml +562 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-custom.xml +568 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-disabled.xml +564 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-runperiod-1-month.xml +565 -567
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-autosize.xml +559 -561
- 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 +562 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-air-to-air-heat-pump-1-speed-autosize.xml +559 -558
- 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 +559 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-air-to-air-heat-pump-2-speed-autosize.xml +556 -558
- 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 +559 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-air-to-air-heat-pump-var-speed-autosize.xml +556 -558
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-boiler-elec-only-autosize.xml +518 -520
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-boiler-gas-central-ac-1-speed-autosize.xml +569 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-boiler-gas-only-autosize.xml +519 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-central-ac-only-1-speed-autosize.xml +549 -548
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-central-ac-only-2-speed-autosize.xml +546 -548
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-central-ac-only-var-speed-autosize.xml +546 -548
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-central-ac-plus-air-to-air-heat-pump-heating-autosize.xml +575 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-autosize.xml +560 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-dual-fuel-mini-split-heat-pump-ducted-autosize.xml +559 -558
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-elec-resistance-only-autosize.xml +509 -511
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-evap-cooler-furnace-gas-autosize.xml +552 -554
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-floor-furnace-propane-only-autosize.xml +512 -512
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-furnace-elec-only-autosize.xml +546 -548
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-furnace-gas-central-ac-2-speed-autosize.xml +559 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-furnace-gas-central-ac-var-speed-autosize.xml +559 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-furnace-gas-only-autosize.xml +549 -549
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-furnace-gas-room-ac-autosize.xml +557 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-ground-to-air-heat-pump-autosize-manual-s-oversize-allowances.xml +562 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-ground-to-air-heat-pump-autosize.xml +559 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-mini-split-air-conditioner-only-ducted-autosize.xml +548 -547
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-mini-split-heat-pump-ducted-autosize-manual-s-oversize-allowances.xml +561 -560
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-mini-split-heat-pump-ducted-autosize.xml +558 -557
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-mini-split-heat-pump-ducted-cooling-only-autosize.xml +553 -552
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-mini-split-heat-pump-ducted-heating-only-autosize.xml +558 -557
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-room-ac-only-autosize.xml +508 -510
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-stove-oil-only-autosize.xml +512 -512
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-wall-furnace-elec-only-autosize.xml +512 -512
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/cfis-with-hydronic-distribution.xml +533 -535
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/clothes-dryer-location.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/clothes-washer-location.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/cooking-range-location.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-frac-load-served.xml +576 -578
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-dhw-uef.xml → invalid_files/dhw-invalid-ef-tank.xml} +3 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-invalid-uef-tank-heat-pump.xml +563 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dishwasher-location.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-location-unconditioned-space.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-location.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duplicate-id.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-attic-missing-roof.xml +545 -547
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-basement-missing-exterior-foundation-wall.xml +542 -544
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-basement-missing-slab.xml +545 -545
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-floor-area-exceeds-cfa.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-exterior-wall.xml +612 -616
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-roof-ceiling.xml +625 -629
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-slab.xml +609 -611
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-ceiling-roof.xml +549 -551
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-exterior-wall.xml +471 -473
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-floor-slab.xml +534 -534
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/heat-pump-mixed-fixed-and-autosize-capacities.xml +561 -560
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/heat-pump-mixed-fixed-and-autosize-capacities2.xml +562 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-multiple-attached-cooling.xml +913 -912
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-multiple-attached-heating.xml +913 -912
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-return-duct-leakage-missing.xml +532 -534
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-dse-multiple-attached-cooling.xml +547 -549
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-dse-multiple-attached-heating.xml +547 -549
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-frac-load-served.xml +913 -912
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/{invalid-calendar-year.xml → hvac-inconsistent-fan-powers.xml} +8 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-invalid-distribution-system-type.xml +569 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-boolean.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-float.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-integer.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-daylight-saving.xml +568 -567
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-distribution-cfa-served.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-epw-filepath.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-facility-type-equipment.xml +465 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-facility-type-surfaces.xml +643 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-input-parameters.xml +564 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-neighbor-shading-azimuth.xml +574 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-relatedhvac-desuperheater.xml +552 -551
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-relatedhvac-dhw-indirect.xml +518 -520
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-runperiod.xml +563 -565
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-schema-version.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-timestep.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-window-height.xml +576 -578
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/lighting-fractions.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/missing-duct-location.xml +909 -908
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/missing-elements.xml +559 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-appliance.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-duct.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-surface.xml +564 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-water-heater.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/net-area-negative-roof.xml +589 -591
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/net-area-negative-wall.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/num-bedrooms-exceeds-limit.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/orphaned-hvac-distribution.xml +545 -547
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerator-location.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerators-multiple-primary.xml +567 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerators-no-primary.xml +567 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/repeated-relatedhvac-desuperheater.xml +565 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/repeated-relatedhvac-dhw-indirect.xml +527 -529
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/slab-zero-exposed-perimeter.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-combi-tankless.xml +532 -534
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-desuperheater.xml +567 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-dhw-indirect.xml +532 -534
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-cfis.xml +574 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-door.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-hvac-distribution.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-shared-clothes-washer-water-heater.xml +464 -827
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-shared-dishwasher-water-heater.xml +464 -827
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-skylight.xml +589 -591
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-solar-thermal-system.xml +576 -578
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-window.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/water-heater-location-other.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/water-heater-location.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AC.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AL.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AC.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AL.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AC.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AL.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AC.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AL.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AC.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AL.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AC.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AL.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AC.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AL.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AC.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AL.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AC.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AL.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AC.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AL.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AC.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AL.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L302XC.xml +6 -16
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L304XC.xml +6 -16
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L322XC.xml +6 -16
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L324XC.xml +6 -16
- data/example_files/resources/hpxml-measures/workflow/tests/hpxml_translator_test.rb +277 -224
- data/lib/uo_cli/version.rb +1 -1
- data/scripts/setup-env-gitbash.sh +4 -4
- data/scripts/setup-env.bat +14 -11
- data/scripts/setup-env.ps1 +13 -10
- data/uo_cli.gemspec +6 -4
- metadata +106 -57
- data/example_files/resources/hpxml-measures/docs/source/hpxml_to_openstudio.rst +0 -1386
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-shared-laundry-room.xml +0 -828
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-shared-water-heater-recirc.xml +0 -820
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-shared-water-heater.xml +0 -813
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-attached-multifamily.xml +0 -810
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-common-surfaces.xml +0 -928
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-chiller-baseboard.xml +0 -777
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-chiller-fan-coil-ducted.xml +0 -808
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-chiller-fan-coil.xml +0 -780
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-chiller-water-loop-heat-pump.xml +0 -820
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-cooling-tower-water-loop-heat-pump.xml +0 -815
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-only-baseboard.xml +0 -760
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-only-fan-coil-ducted.xml +0 -790
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-only-fan-coil-eae.xml +0 -759
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-only-fan-coil.xml +0 -762
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-only-water-loop-heat-pump.xml +0 -796
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-chiller-only-baseboard.xml +0 -759
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-chiller-only-fan-coil-ducted.xml +0 -789
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-chiller-only-fan-coil.xml +0 -761
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-chiller-only-water-loop-heat-pump.xml +0 -796
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-cooling-tower-only-water-loop-heat-pump.xml +0 -791
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-ground-loop-ground-to-air-heat-pump.xml +0 -814
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-shared-preconditioning.xml +0 -851
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-shared.xml +0 -835
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-shared.xml +0 -827
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/appliances-location-unconditioned-space.xml +0 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/coal-for-non-boiler-heating.xml +0 -514
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-facility-type.xml +0 -828
@@ -6,89 +6,157 @@ class HPXMLDefaults
|
|
6
6
|
apply_site(hpxml)
|
7
7
|
apply_building_occupancy(hpxml, nbeds)
|
8
8
|
apply_building_construction(hpxml, cfa, nbeds)
|
9
|
+
apply_infiltration(hpxml)
|
9
10
|
apply_attics(hpxml)
|
10
11
|
apply_foundations(hpxml)
|
11
|
-
apply_infiltration(hpxml)
|
12
12
|
apply_roofs(hpxml)
|
13
|
-
apply_walls(hpxml)
|
14
13
|
apply_rim_joists(hpxml)
|
14
|
+
apply_walls(hpxml)
|
15
|
+
apply_foundation_walls(hpxml)
|
16
|
+
apply_slabs(hpxml)
|
15
17
|
apply_windows(hpxml)
|
16
18
|
apply_skylights(hpxml)
|
17
19
|
apply_hvac(hpxml)
|
20
|
+
apply_hvac_control(hpxml)
|
18
21
|
apply_hvac_distribution(hpxml, ncfl, ncfl_ag)
|
22
|
+
apply_ventilation_fans(hpxml)
|
19
23
|
apply_water_heaters(hpxml, nbeds, eri_version)
|
20
24
|
apply_hot_water_distribution(hpxml, cfa, ncfl, has_uncond_bsmnt)
|
21
25
|
apply_water_fixtures(hpxml)
|
22
26
|
apply_solar_thermal_systems(hpxml)
|
23
|
-
|
27
|
+
apply_appliances(hpxml, nbeds, eri_version)
|
28
|
+
apply_lighting(hpxml)
|
24
29
|
apply_ceiling_fans(hpxml, nbeds)
|
30
|
+
apply_pools_and_hot_tubs(hpxml, cfa, nbeds)
|
25
31
|
apply_plug_loads(hpxml, cfa, nbeds)
|
26
32
|
apply_fuel_loads(hpxml, cfa, nbeds)
|
27
|
-
apply_pools_and_hot_tubs(hpxml, cfa, nbeds)
|
28
|
-
apply_appliances(hpxml, nbeds, eri_version)
|
29
|
-
apply_lighting(hpxml)
|
30
33
|
apply_pv_systems(hpxml)
|
34
|
+
apply_generators(hpxml)
|
31
35
|
end
|
32
36
|
|
33
37
|
private
|
34
38
|
|
35
39
|
def self.apply_header(hpxml, epw_file, runner)
|
36
|
-
|
40
|
+
if hpxml.header.timestep.nil?
|
41
|
+
hpxml.header.timestep = 60
|
42
|
+
hpxml.header.timestep_isdefaulted = true
|
43
|
+
end
|
44
|
+
|
45
|
+
if hpxml.header.sim_begin_month.nil?
|
46
|
+
hpxml.header.sim_begin_month = 1
|
47
|
+
hpxml.header.sim_begin_month_isdefaulted = true
|
48
|
+
end
|
49
|
+
if hpxml.header.sim_begin_day.nil?
|
50
|
+
hpxml.header.sim_begin_day = 1
|
51
|
+
hpxml.header.sim_begin_day_isdefaulted = true
|
52
|
+
end
|
53
|
+
if hpxml.header.sim_end_month.nil?
|
54
|
+
hpxml.header.sim_end_month = 12
|
55
|
+
hpxml.header.sim_end_month_isdefaulted = true
|
56
|
+
end
|
57
|
+
if hpxml.header.sim_end_day.nil?
|
58
|
+
hpxml.header.sim_end_day = 31
|
59
|
+
hpxml.header.sim_end_day_isdefaulted = true
|
60
|
+
end
|
37
61
|
|
38
|
-
hpxml.header.sim_begin_month = 1 if hpxml.header.sim_begin_month.nil?
|
39
|
-
hpxml.header.sim_begin_day_of_month = 1 if hpxml.header.sim_begin_day_of_month.nil?
|
40
|
-
hpxml.header.sim_end_month = 12 if hpxml.header.sim_end_month.nil?
|
41
|
-
hpxml.header.sim_end_day_of_month = 31 if hpxml.header.sim_end_day_of_month.nil?
|
42
62
|
if epw_file.startDateActualYear.is_initialized # AMY
|
43
63
|
if not hpxml.header.sim_calendar_year.nil?
|
44
|
-
|
64
|
+
if hpxml.header.sim_calendar_year != epw_file.startDateActualYear.get
|
65
|
+
runner.registerWarning("Overriding Calendar Year (#{hpxml.header.sim_calendar_year}) with AMY year (#{epw_file.startDateActualYear.get}).")
|
66
|
+
hpxml.header.sim_calendar_year = epw_file.startDateActualYear.get
|
67
|
+
hpxml.header.sim_calendar_year_isdefaulted = true
|
68
|
+
end
|
69
|
+
else
|
70
|
+
hpxml.header.sim_calendar_year = epw_file.startDateActualYear.get
|
71
|
+
hpxml.header.sim_calendar_year_isdefaulted = true
|
45
72
|
end
|
46
|
-
hpxml.header.sim_calendar_year = epw_file.startDateActualYear.get
|
47
73
|
else
|
48
|
-
|
74
|
+
if hpxml.header.sim_calendar_year.nil?
|
75
|
+
hpxml.header.sim_calendar_year = 2007 # For consistency with SAM utility bill calculations
|
76
|
+
hpxml.header.sim_calendar_year_isdefaulted = true
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
if hpxml.header.dst_enabled.nil?
|
81
|
+
hpxml.header.dst_enabled = true # Assume DST since it occurs in most US locations
|
82
|
+
hpxml.header.dst_enabled_isdefaulted = true
|
49
83
|
end
|
50
84
|
|
51
|
-
hpxml.header.dst_enabled = true if hpxml.header.dst_enabled.nil? # Assume DST since it occurs in most US locations
|
52
85
|
if hpxml.header.dst_enabled
|
53
|
-
if hpxml.header.dst_begin_month.nil? || hpxml.header.
|
86
|
+
if hpxml.header.dst_begin_month.nil? || hpxml.header.dst_begin_day.nil? || hpxml.header.dst_end_month.nil? || hpxml.header.dst_end_day.nil?
|
54
87
|
if epw_file.daylightSavingStartDate.is_initialized && epw_file.daylightSavingEndDate.is_initialized
|
55
88
|
# Use weather file DST dates if available
|
56
89
|
dst_start_date = epw_file.daylightSavingStartDate.get
|
57
90
|
dst_end_date = epw_file.daylightSavingEndDate.get
|
58
91
|
hpxml.header.dst_begin_month = dst_start_date.monthOfYear.value
|
59
|
-
hpxml.header.
|
92
|
+
hpxml.header.dst_begin_day = dst_start_date.dayOfMonth
|
60
93
|
hpxml.header.dst_end_month = dst_end_date.monthOfYear.value
|
61
|
-
hpxml.header.
|
94
|
+
hpxml.header.dst_end_day = dst_end_date.dayOfMonth
|
62
95
|
else
|
63
96
|
# Roughly average US dates according to https://en.wikipedia.org/wiki/Daylight_saving_time_in_the_United_States
|
64
97
|
hpxml.header.dst_begin_month = 3
|
65
|
-
hpxml.header.
|
98
|
+
hpxml.header.dst_begin_day = 12
|
66
99
|
hpxml.header.dst_end_month = 11
|
67
|
-
hpxml.header.
|
100
|
+
hpxml.header.dst_end_day = 5
|
68
101
|
end
|
102
|
+
hpxml.header.dst_begin_month_isdefaulted = true
|
103
|
+
hpxml.header.dst_begin_day_isdefaulted = true
|
104
|
+
hpxml.header.dst_end_month_isdefaulted = true
|
105
|
+
hpxml.header.dst_end_day_isdefaulted = true
|
69
106
|
end
|
70
107
|
end
|
71
108
|
|
72
|
-
|
73
|
-
|
109
|
+
if hpxml.header.allow_increased_fixed_capacities.nil?
|
110
|
+
hpxml.header.allow_increased_fixed_capacities = false
|
111
|
+
hpxml.header.allow_increased_fixed_capacities_isdefaulted = true
|
112
|
+
end
|
113
|
+
if hpxml.header.use_max_load_for_heat_pumps.nil?
|
114
|
+
hpxml.header.use_max_load_for_heat_pumps = true
|
115
|
+
hpxml.header.use_max_load_for_heat_pumps_isdefaulted = true
|
116
|
+
end
|
74
117
|
end
|
75
118
|
|
76
119
|
def self.apply_site(hpxml)
|
77
|
-
|
78
|
-
|
120
|
+
if hpxml.site.site_type.nil?
|
121
|
+
hpxml.site.site_type = HPXML::SiteTypeSuburban
|
122
|
+
hpxml.site.site_type_isdefaulted = true
|
123
|
+
end
|
124
|
+
|
125
|
+
if hpxml.site.shelter_coefficient.nil?
|
126
|
+
hpxml.site.shelter_coefficient = Airflow.get_default_shelter_coefficient()
|
127
|
+
hpxml.site.shelter_coefficient_isdefaulted = true
|
128
|
+
end
|
79
129
|
end
|
80
130
|
|
81
131
|
def self.apply_building_occupancy(hpxml, nbeds)
|
82
|
-
|
132
|
+
if hpxml.building_occupancy.number_of_residents.nil?
|
133
|
+
hpxml.building_occupancy.number_of_residents = Geometry.get_occupancy_default_num(nbeds)
|
134
|
+
hpxml.building_occupancy.number_of_residents_isdefaulted = true
|
135
|
+
end
|
83
136
|
end
|
84
137
|
|
85
138
|
def self.apply_building_construction(hpxml, cfa, nbeds)
|
86
|
-
if hpxml.building_construction.conditioned_building_volume.nil?
|
139
|
+
if hpxml.building_construction.conditioned_building_volume.nil? && hpxml.building_construction.average_ceiling_height.nil?
|
140
|
+
hpxml.building_construction.average_ceiling_height = 8.0
|
141
|
+
hpxml.building_construction.average_ceiling_height_isdefaulted = true
|
87
142
|
hpxml.building_construction.conditioned_building_volume = cfa * hpxml.building_construction.average_ceiling_height
|
143
|
+
hpxml.building_construction.conditioned_building_volume_isdefaulted = true
|
144
|
+
elsif hpxml.building_construction.conditioned_building_volume.nil?
|
145
|
+
hpxml.building_construction.conditioned_building_volume = cfa * hpxml.building_construction.average_ceiling_height
|
146
|
+
hpxml.building_construction.conditioned_building_volume_isdefaulted = true
|
147
|
+
elsif hpxml.building_construction.average_ceiling_height.nil?
|
148
|
+
hpxml.building_construction.average_ceiling_height = hpxml.building_construction.conditioned_building_volume / cfa
|
149
|
+
hpxml.building_construction.average_ceiling_height_isdefaulted = true
|
150
|
+
end
|
151
|
+
|
152
|
+
if hpxml.building_construction.number_of_bathrooms.nil?
|
153
|
+
hpxml.building_construction.number_of_bathrooms = Float(Waterheater.get_default_num_bathrooms(nbeds)).to_i
|
154
|
+
hpxml.building_construction.number_of_bathrooms_isdefaulted = true
|
88
155
|
end
|
89
|
-
|
156
|
+
|
90
157
|
if hpxml.building_construction.has_flue_or_chimney.nil?
|
91
158
|
hpxml.building_construction.has_flue_or_chimney = false
|
159
|
+
hpxml.building_construction.has_flue_or_chimney_isdefaulted = true
|
92
160
|
hpxml.heating_systems.each do |heating_system|
|
93
161
|
if [HPXML::HVACTypeFurnace, HPXML::HVACTypeBoiler, HPXML::HVACTypeWallFurnace, HPXML::HVACTypeFloorFurnace, HPXML::HVACTypeStove, HPXML::HVACTypeFixedHeater].include? heating_system.heating_system_type
|
94
162
|
if not heating_system.heating_efficiency_afue.nil?
|
@@ -116,6 +184,29 @@ class HPXMLDefaults
|
|
116
184
|
end
|
117
185
|
end
|
118
186
|
|
187
|
+
def self.apply_infiltration(hpxml)
|
188
|
+
measurements = []
|
189
|
+
infil_volume = nil
|
190
|
+
hpxml.air_infiltration_measurements.each do |measurement|
|
191
|
+
is_ach = ((measurement.unit_of_measure == HPXML::UnitsACH) && !measurement.house_pressure.nil?)
|
192
|
+
is_cfm = ((measurement.unit_of_measure == HPXML::UnitsCFM) && !measurement.house_pressure.nil?)
|
193
|
+
is_nach = (measurement.unit_of_measure == HPXML::UnitsACHNatural)
|
194
|
+
next unless (is_ach || is_cfm || is_nach)
|
195
|
+
|
196
|
+
measurements << measurement
|
197
|
+
next if measurement.infiltration_volume.nil?
|
198
|
+
|
199
|
+
infil_volume = measurement.infiltration_volume
|
200
|
+
end
|
201
|
+
if infil_volume.nil?
|
202
|
+
infil_volume = hpxml.building_construction.conditioned_building_volume
|
203
|
+
measurements.each do |measurement|
|
204
|
+
measurement.infiltration_volume = infil_volume
|
205
|
+
measurement.infiltration_volume_isdefaulted = true
|
206
|
+
end
|
207
|
+
end
|
208
|
+
end
|
209
|
+
|
119
210
|
def self.apply_attics(hpxml)
|
120
211
|
return unless hpxml.has_space_type(HPXML::LocationAtticVented)
|
121
212
|
|
@@ -132,6 +223,7 @@ class HPXMLDefaults
|
|
132
223
|
end
|
133
224
|
if vented_attic.vented_attic_sla.nil? && vented_attic.vented_attic_ach.nil?
|
134
225
|
vented_attic.vented_attic_sla = Airflow.get_default_vented_attic_sla()
|
226
|
+
vented_attic.vented_attic_sla_isdefaulted = true
|
135
227
|
end
|
136
228
|
end
|
137
229
|
|
@@ -151,28 +243,7 @@ class HPXMLDefaults
|
|
151
243
|
end
|
152
244
|
if vented_crawl.vented_crawlspace_sla.nil?
|
153
245
|
vented_crawl.vented_crawlspace_sla = Airflow.get_default_vented_crawl_sla()
|
154
|
-
|
155
|
-
end
|
156
|
-
|
157
|
-
def self.apply_infiltration(hpxml)
|
158
|
-
measurements = []
|
159
|
-
infil_volume = nil
|
160
|
-
hpxml.air_infiltration_measurements.each do |measurement|
|
161
|
-
is_ach = ((measurement.unit_of_measure == HPXML::UnitsACH) && !measurement.house_pressure.nil?)
|
162
|
-
is_cfm = ((measurement.unit_of_measure == HPXML::UnitsCFM) && !measurement.house_pressure.nil?)
|
163
|
-
is_nach = (measurement.unit_of_measure == HPXML::UnitsACHNatural)
|
164
|
-
next unless (is_ach || is_cfm || is_nach)
|
165
|
-
|
166
|
-
measurements << measurement
|
167
|
-
next if measurement.infiltration_volume.nil?
|
168
|
-
|
169
|
-
infil_volume = measurement.infiltration_volume
|
170
|
-
end
|
171
|
-
if infil_volume.nil?
|
172
|
-
infil_volume = hpxml.building_construction.conditioned_building_volume
|
173
|
-
measurements.each do |measurement|
|
174
|
-
measurement.infiltration_volume = infil_volume
|
175
|
-
end
|
246
|
+
vented_crawl.vented_crawlspace_sla_isdefaulted = true
|
176
247
|
end
|
177
248
|
end
|
178
249
|
|
@@ -180,11 +251,44 @@ class HPXMLDefaults
|
|
180
251
|
hpxml.roofs.each do |roof|
|
181
252
|
if roof.roof_type.nil?
|
182
253
|
roof.roof_type = HPXML::RoofTypeAsphaltShingles
|
254
|
+
roof.roof_type_isdefaulted = true
|
255
|
+
end
|
256
|
+
if roof.emittance.nil?
|
257
|
+
roof.emittance = 0.90
|
258
|
+
roof.emittance_isdefaulted = true
|
259
|
+
end
|
260
|
+
if roof.radiant_barrier.nil?
|
261
|
+
roof.radiant_barrier = false
|
262
|
+
roof.radiant_barrier_isdefaulted = true
|
183
263
|
end
|
184
264
|
if roof.roof_color.nil?
|
185
265
|
roof.roof_color = Constructions.get_default_roof_color(roof.roof_type, roof.solar_absorptance)
|
266
|
+
roof.roof_color_isdefaulted = true
|
186
267
|
elsif roof.solar_absorptance.nil?
|
187
268
|
roof.solar_absorptance = Constructions.get_default_roof_solar_absorptance(roof.roof_type, roof.roof_color)
|
269
|
+
roof.solar_absorptance_isdefaulted = true
|
270
|
+
end
|
271
|
+
end
|
272
|
+
end
|
273
|
+
|
274
|
+
def self.apply_rim_joists(hpxml)
|
275
|
+
hpxml.rim_joists.each do |rim_joist|
|
276
|
+
next unless rim_joist.is_exterior
|
277
|
+
|
278
|
+
if rim_joist.emittance.nil?
|
279
|
+
rim_joist.emittance = 0.90
|
280
|
+
rim_joist.emittance_isdefaulted = true
|
281
|
+
end
|
282
|
+
if rim_joist.siding.nil?
|
283
|
+
rim_joist.siding = HPXML::SidingTypeWood
|
284
|
+
rim_joist.siding_isdefaulted = true
|
285
|
+
end
|
286
|
+
if rim_joist.color.nil?
|
287
|
+
rim_joist.color = Constructions.get_default_wall_color(rim_joist.solar_absorptance)
|
288
|
+
rim_joist.color_isdefaulted = true
|
289
|
+
elsif rim_joist.solar_absorptance.nil?
|
290
|
+
rim_joist.solar_absorptance = Constructions.get_default_wall_solar_absorptance(rim_joist.color)
|
291
|
+
rim_joist.solar_absorptance_isdefaulted = true
|
188
292
|
end
|
189
293
|
end
|
190
294
|
end
|
@@ -193,28 +297,49 @@ class HPXMLDefaults
|
|
193
297
|
hpxml.walls.each do |wall|
|
194
298
|
next unless wall.is_exterior
|
195
299
|
|
300
|
+
if wall.emittance.nil?
|
301
|
+
wall.emittance = 0.90
|
302
|
+
wall.emittance_isdefaulted = true
|
303
|
+
end
|
196
304
|
if wall.siding.nil?
|
197
305
|
wall.siding = HPXML::SidingTypeWood
|
306
|
+
wall.siding_isdefaulted = true
|
198
307
|
end
|
199
308
|
if wall.color.nil?
|
200
309
|
wall.color = Constructions.get_default_wall_color(wall.solar_absorptance)
|
310
|
+
wall.color_isdefaulted = true
|
201
311
|
elsif wall.solar_absorptance.nil?
|
202
312
|
wall.solar_absorptance = Constructions.get_default_wall_solar_absorptance(wall.color)
|
313
|
+
wall.solar_absorptance_isdefaulted = true
|
203
314
|
end
|
204
315
|
end
|
205
316
|
end
|
206
317
|
|
207
|
-
def self.
|
208
|
-
hpxml.
|
209
|
-
|
318
|
+
def self.apply_foundation_walls(hpxml)
|
319
|
+
hpxml.foundation_walls.each do |foundation_wall|
|
320
|
+
if foundation_wall.thickness.nil?
|
321
|
+
foundation_wall.thickness = 8.0
|
322
|
+
foundation_wall.thickness_isdefaulted = true
|
323
|
+
end
|
324
|
+
end
|
325
|
+
end
|
210
326
|
|
211
|
-
|
212
|
-
|
327
|
+
def self.apply_slabs(hpxml)
|
328
|
+
hpxml.slabs.each do |slab|
|
329
|
+
if slab.thickness.nil?
|
330
|
+
crawl_slab = [HPXML::LocationCrawlspaceVented, HPXML::LocationCrawlspaceUnvented].include?(slab.interior_adjacent_to)
|
331
|
+
slab.thickness = crawl_slab ? 0.0 : 4.0
|
332
|
+
slab.thickness_isdefaulted = true
|
213
333
|
end
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
334
|
+
conditioned_slab = [HPXML::LocationLivingSpace,
|
335
|
+
HPXML::LocationBasementConditioned].include?(slab.interior_adjacent_to)
|
336
|
+
if slab.carpet_r_value.nil?
|
337
|
+
slab.carpet_r_value = conditioned_slab ? 2.0 : 0.0
|
338
|
+
slab.carpet_r_value_isdefaulted = true
|
339
|
+
end
|
340
|
+
if slab.carpet_fraction.nil?
|
341
|
+
slab.carpet_fraction = conditioned_slab ? 0.8 : 0.0
|
342
|
+
slab.carpet_fraction_isdefaulted = true
|
218
343
|
end
|
219
344
|
end
|
220
345
|
end
|
@@ -224,12 +349,15 @@ class HPXMLDefaults
|
|
224
349
|
hpxml.windows.each do |window|
|
225
350
|
if window.interior_shading_factor_summer.nil?
|
226
351
|
window.interior_shading_factor_summer = default_shade_summer
|
352
|
+
window.interior_shading_factor_summer_isdefaulted = true
|
227
353
|
end
|
228
354
|
if window.interior_shading_factor_winter.nil?
|
229
355
|
window.interior_shading_factor_winter = default_shade_winter
|
356
|
+
window.interior_shading_factor_winter_isdefaulted = true
|
230
357
|
end
|
231
358
|
if window.fraction_operable.nil?
|
232
359
|
window.fraction_operable = Airflow.get_default_fraction_of_windows_operable()
|
360
|
+
window.fraction_operable_isdefaulted = true
|
233
361
|
end
|
234
362
|
end
|
235
363
|
end
|
@@ -238,9 +366,11 @@ class HPXMLDefaults
|
|
238
366
|
hpxml.skylights.each do |skylight|
|
239
367
|
if skylight.interior_shading_factor_summer.nil?
|
240
368
|
skylight.interior_shading_factor_summer = 1.0
|
369
|
+
skylight.interior_shading_factor_summer_isdefaulted = true
|
241
370
|
end
|
242
371
|
if skylight.interior_shading_factor_winter.nil?
|
243
372
|
skylight.interior_shading_factor_winter = 1.0
|
373
|
+
skylight.interior_shading_factor_winter_isdefaulted = true
|
244
374
|
end
|
245
375
|
end
|
246
376
|
end
|
@@ -248,24 +378,24 @@ class HPXMLDefaults
|
|
248
378
|
def self.apply_hvac(hpxml)
|
249
379
|
# Default AC/HP compressor type
|
250
380
|
hpxml.cooling_systems.each do |cooling_system|
|
251
|
-
next unless cooling_system.cooling_system_type == HPXML::HVACTypeCentralAirConditioner
|
252
381
|
next unless cooling_system.compressor_type.nil?
|
253
382
|
|
254
|
-
cooling_system.compressor_type = HVAC.get_default_compressor_type(cooling_system.cooling_efficiency_seer)
|
383
|
+
cooling_system.compressor_type = HVAC.get_default_compressor_type(cooling_system.cooling_system_type, cooling_system.cooling_efficiency_seer)
|
384
|
+
cooling_system.compressor_type_isdefaulted = true
|
255
385
|
end
|
256
386
|
hpxml.heat_pumps.each do |heat_pump|
|
257
|
-
next unless heat_pump.heat_pump_type == HPXML::HVACTypeHeatPumpAirToAir
|
258
387
|
next unless heat_pump.compressor_type.nil?
|
259
388
|
|
260
|
-
heat_pump.compressor_type = HVAC.get_default_compressor_type(heat_pump.cooling_efficiency_seer)
|
389
|
+
heat_pump.compressor_type = HVAC.get_default_compressor_type(heat_pump.heat_pump_type, heat_pump.cooling_efficiency_seer)
|
390
|
+
heat_pump.compressor_type_isdefaulted = true
|
261
391
|
end
|
262
392
|
|
263
393
|
# Default boiler EAE
|
264
394
|
hpxml.heating_systems.each do |heating_system|
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
395
|
+
if heating_system.electric_auxiliary_energy.nil?
|
396
|
+
heating_system.electric_auxiliary_energy_isdefaulted = true
|
397
|
+
heating_system.electric_auxiliary_energy = HVAC.get_default_boiler_eae(heating_system)
|
398
|
+
end
|
269
399
|
end
|
270
400
|
|
271
401
|
# Default AC/HP sensible heat ratio
|
@@ -280,10 +410,13 @@ class HPXMLDefaults
|
|
280
410
|
elsif cooling_system.compressor_type == HPXML::HVACCompressorTypeVariableSpeed
|
281
411
|
cooling_system.cooling_shr = 0.78
|
282
412
|
end
|
413
|
+
cooling_system.cooling_shr_isdefaulted = true
|
283
414
|
elsif cooling_system.cooling_system_type == HPXML::HVACTypeRoomAirConditioner
|
284
415
|
cooling_system.cooling_shr = 0.65
|
416
|
+
cooling_system.cooling_shr_isdefaulted = true
|
285
417
|
elsif cooling_system.cooling_system_type == HPXML::HVACTypeMiniSplitAirConditioner
|
286
418
|
cooling_system.cooling_shr = 0.73
|
419
|
+
cooling_system.cooling_shr_isdefaulted = true
|
287
420
|
end
|
288
421
|
end
|
289
422
|
hpxml.heat_pumps.each do |heat_pump|
|
@@ -297,22 +430,104 @@ class HPXMLDefaults
|
|
297
430
|
elsif heat_pump.compressor_type == HPXML::HVACCompressorTypeVariableSpeed
|
298
431
|
heat_pump.cooling_shr = 0.78
|
299
432
|
end
|
433
|
+
heat_pump.cooling_shr_isdefaulted = true
|
300
434
|
elsif heat_pump.heat_pump_type == HPXML::HVACTypeHeatPumpMiniSplit
|
301
435
|
heat_pump.cooling_shr = 0.73
|
436
|
+
heat_pump.cooling_shr_isdefaulted = true
|
302
437
|
elsif heat_pump.heat_pump_type == HPXML::HVACTypeHeatPumpGroundToAir
|
303
438
|
heat_pump.cooling_shr = 0.732
|
439
|
+
heat_pump.cooling_shr_isdefaulted = true
|
304
440
|
end
|
305
441
|
end
|
306
442
|
|
307
|
-
#
|
443
|
+
# GSHP pump power
|
308
444
|
hpxml.heat_pumps.each do |heat_pump|
|
309
445
|
next unless heat_pump.heat_pump_type == HPXML::HVACTypeHeatPumpGroundToAir
|
446
|
+
next unless heat_pump.pump_watts_per_ton.nil?
|
447
|
+
|
448
|
+
heat_pump.pump_watts_per_ton = HVAC.get_default_gshp_pump_power()
|
449
|
+
heat_pump.pump_watts_per_ton_isdefaulted = true
|
450
|
+
end
|
310
451
|
|
311
|
-
|
312
|
-
|
452
|
+
# Fan power
|
453
|
+
psc_watts_per_cfm = 0.5 # W/cfm, PSC fan
|
454
|
+
ecm_watts_per_cfm = 0.375 # W/cfm, ECM fan
|
455
|
+
mini_split_ducted_watts_per_cfm = 0.18 # W/cfm, ducted mini split
|
456
|
+
mini_split_ductless_watts_per_cfm = 0.07 # W/cfm, ductless mini split
|
457
|
+
hpxml.heating_systems.each do |heating_system|
|
458
|
+
if [HPXML::HVACTypeFurnace].include? heating_system.heating_system_type
|
459
|
+
if heating_system.fan_watts_per_cfm.nil?
|
460
|
+
if heating_system.heating_efficiency_afue > 0.9 # HEScore assumption
|
461
|
+
heating_system.fan_watts_per_cfm = ecm_watts_per_cfm
|
462
|
+
else
|
463
|
+
heating_system.fan_watts_per_cfm = psc_watts_per_cfm
|
464
|
+
end
|
465
|
+
heating_system.fan_watts_per_cfm_isdefaulted = true
|
466
|
+
end
|
467
|
+
elsif [HPXML::HVACTypeStove].include? heating_system.heating_system_type
|
468
|
+
if heating_system.fan_watts.nil?
|
469
|
+
heating_system.fan_watts = 40.0 # W
|
470
|
+
heating_system.fan_watts_isdefaulted = true
|
471
|
+
end
|
472
|
+
elsif [HPXML::HVACTypeWallFurnace,
|
473
|
+
HPXML::HVACTypeFloorFurnace,
|
474
|
+
HPXML::HVACTypePortableHeater,
|
475
|
+
HPXML::HVACTypeFixedHeater,
|
476
|
+
HPXML::HVACTypeFireplace].include? heating_system.heating_system_type
|
477
|
+
if heating_system.fan_watts.nil?
|
478
|
+
heating_system.fan_watts = 0.0 # W/cfm, assume no fan power
|
479
|
+
heating_system.fan_watts_isdefaulted = true
|
480
|
+
end
|
481
|
+
end
|
482
|
+
end
|
483
|
+
hpxml.cooling_systems.each do |cooling_system|
|
484
|
+
next unless cooling_system.fan_watts_per_cfm.nil?
|
485
|
+
|
486
|
+
if (not cooling_system.attached_heating_system.nil?) && (not cooling_system.attached_heating_system.fan_watts_per_cfm.nil?)
|
487
|
+
cooling_system.fan_watts_per_cfm = cooling_system.attached_heating_system.fan_watts_per_cfm
|
488
|
+
cooling_system.fan_watts_per_cfm_isdefaulted = true
|
489
|
+
elsif [HPXML::HVACTypeCentralAirConditioner].include? cooling_system.cooling_system_type
|
490
|
+
if cooling_system.cooling_efficiency_seer > 13.5 # HEScore assumption
|
491
|
+
cooling_system.fan_watts_per_cfm = ecm_watts_per_cfm
|
492
|
+
else
|
493
|
+
cooling_system.fan_watts_per_cfm = psc_watts_per_cfm
|
494
|
+
end
|
495
|
+
cooling_system.fan_watts_per_cfm_isdefaulted = true
|
496
|
+
elsif [HPXML::HVACTypeMiniSplitAirConditioner].include? cooling_system.cooling_system_type
|
497
|
+
if not cooling_system.distribution_system.nil?
|
498
|
+
cooling_system.fan_watts_per_cfm = mini_split_ducted_watts_per_cfm
|
499
|
+
else
|
500
|
+
cooling_system.fan_watts_per_cfm = mini_split_ductless_watts_per_cfm
|
501
|
+
end
|
502
|
+
cooling_system.fan_watts_per_cfm_isdefaulted = true
|
503
|
+
elsif [HPXML::HVACTypeEvaporativeCooler].include? cooling_system.cooling_system_type
|
504
|
+
# Depends on airflow rate, so defaulted in hvac_sizing.rb
|
313
505
|
end
|
314
|
-
|
315
|
-
|
506
|
+
end
|
507
|
+
hpxml.heat_pumps.each do |heat_pump|
|
508
|
+
next unless heat_pump.fan_watts_per_cfm.nil?
|
509
|
+
|
510
|
+
if [HPXML::HVACTypeHeatPumpAirToAir].include? heat_pump.heat_pump_type
|
511
|
+
if heat_pump.heating_efficiency_hspf > 8.75 # HEScore assumption
|
512
|
+
heat_pump.fan_watts_per_cfm = ecm_watts_per_cfm
|
513
|
+
else
|
514
|
+
heat_pump.fan_watts_per_cfm = psc_watts_per_cfm
|
515
|
+
end
|
516
|
+
heat_pump.fan_watts_per_cfm_isdefaulted = true
|
517
|
+
elsif [HPXML::HVACTypeHeatPumpGroundToAir].include? heat_pump.heat_pump_type
|
518
|
+
if heat_pump.heating_efficiency_cop > 8.75 / 3.2 # HEScore assumption
|
519
|
+
heat_pump.fan_watts_per_cfm = ecm_watts_per_cfm
|
520
|
+
else
|
521
|
+
heat_pump.fan_watts_per_cfm = psc_watts_per_cfm
|
522
|
+
end
|
523
|
+
heat_pump.fan_watts_per_cfm_isdefaulted = true
|
524
|
+
elsif [HPXML::HVACTypeHeatPumpMiniSplit].include? heat_pump.heat_pump_type
|
525
|
+
if not heat_pump.distribution_system.nil?
|
526
|
+
heat_pump.fan_watts_per_cfm = mini_split_ducted_watts_per_cfm
|
527
|
+
else
|
528
|
+
heat_pump.fan_watts_per_cfm = mini_split_ductless_watts_per_cfm
|
529
|
+
end
|
530
|
+
heat_pump.fan_watts_per_cfm_isdefaulted = true
|
316
531
|
end
|
317
532
|
end
|
318
533
|
|
@@ -348,8 +563,24 @@ class HPXMLDefaults
|
|
348
563
|
end
|
349
564
|
end
|
350
565
|
|
351
|
-
# TODO: Default HeatingCapacity17F
|
352
|
-
|
566
|
+
# TODO: Default HeatingCapacity17F?
|
567
|
+
end
|
568
|
+
|
569
|
+
def self.apply_hvac_control(hpxml)
|
570
|
+
hpxml.hvac_controls.each do |hvac_control|
|
571
|
+
if not hvac_control.heating_setback_temp.nil?
|
572
|
+
if hvac_control.heating_setback_start_hour.nil?
|
573
|
+
hvac_control.heating_setback_start_hour = 23 # 11 pm
|
574
|
+
hvac_control.heating_setback_start_hour_isdefaulted = true
|
575
|
+
end
|
576
|
+
end
|
577
|
+
|
578
|
+
next unless not hvac_control.cooling_setup_temp.nil?
|
579
|
+
if hvac_control.cooling_setup_start_hour.nil?
|
580
|
+
hvac_control.cooling_setup_start_hour = 9 # 9 am
|
581
|
+
hvac_control.cooling_setup_start_hour_isdefaulted = true
|
582
|
+
end
|
583
|
+
end
|
353
584
|
end
|
354
585
|
|
355
586
|
def self.apply_hvac_distribution(hpxml, ncfl, ncfl_ag)
|
@@ -369,7 +600,8 @@ class HPXMLDefaults
|
|
369
600
|
|
370
601
|
# Default return registers
|
371
602
|
if hvac_distribution.number_of_return_registers.nil?
|
372
|
-
hvac_distribution.number_of_return_registers = ncfl # Add 1 return register per conditioned floor if not provided
|
603
|
+
hvac_distribution.number_of_return_registers = ncfl.ceil # Add 1 return register per conditioned floor if not provided
|
604
|
+
hvac_distribution.number_of_return_registers_isdefaulted = true
|
373
605
|
end
|
374
606
|
|
375
607
|
# Default ducts
|
@@ -394,24 +626,99 @@ class HPXMLDefaults
|
|
394
626
|
hvac_distribution.ducts.add(duct_type: duct.duct_type,
|
395
627
|
duct_insulation_r_value: duct.duct_insulation_r_value,
|
396
628
|
duct_location: secondary_duct_location,
|
397
|
-
|
629
|
+
duct_location_isdefaulted: true,
|
630
|
+
duct_surface_area: secondary_duct_area,
|
631
|
+
duct_surface_area_isdefaulted: true)
|
398
632
|
end
|
399
633
|
end
|
634
|
+
duct.duct_surface_area_isdefaulted = true
|
635
|
+
duct.duct_location_isdefaulted = true
|
400
636
|
end
|
401
637
|
end
|
402
638
|
end
|
403
639
|
end
|
404
640
|
|
641
|
+
def self.apply_ventilation_fans(hpxml)
|
642
|
+
# Default mech vent systems
|
643
|
+
hpxml.ventilation_fans.each do |vent_fan|
|
644
|
+
next unless vent_fan.used_for_whole_building_ventilation
|
645
|
+
|
646
|
+
if vent_fan.is_shared_system.nil?
|
647
|
+
vent_fan.is_shared_system = false
|
648
|
+
vent_fan.is_shared_system_isdefaulted = true
|
649
|
+
end
|
650
|
+
if vent_fan.hours_in_operation.nil?
|
651
|
+
vent_fan.hours_in_operation = (vent_fan.fan_type == HPXML::MechVentTypeCFIS) ? 8.0 : 24.0
|
652
|
+
vent_fan.hours_in_operation_isdefaulted = true
|
653
|
+
end
|
654
|
+
end
|
655
|
+
|
656
|
+
# Default kitchen fan
|
657
|
+
hpxml.ventilation_fans.each do |vent_fan|
|
658
|
+
next unless (vent_fan.used_for_local_ventilation && (vent_fan.fan_location == HPXML::LocationKitchen))
|
659
|
+
|
660
|
+
if vent_fan.quantity.nil?
|
661
|
+
vent_fan.quantity = 1
|
662
|
+
vent_fan.quantity_isdefaulted = true
|
663
|
+
end
|
664
|
+
if vent_fan.rated_flow_rate.nil?
|
665
|
+
vent_fan.rated_flow_rate = 100.0 # cfm, per BA HSP
|
666
|
+
vent_fan.rated_flow_rate_isdefaulted = true
|
667
|
+
end
|
668
|
+
if vent_fan.hours_in_operation.nil?
|
669
|
+
vent_fan.hours_in_operation = 1.0 # hrs/day, per BA HSP
|
670
|
+
vent_fan.hours_in_operation_isdefaulted = true
|
671
|
+
end
|
672
|
+
if vent_fan.fan_power.nil?
|
673
|
+
vent_fan.fan_power = 0.3 * vent_fan.rated_flow_rate # W, per BA HSP
|
674
|
+
vent_fan.fan_power_isdefaulted = true
|
675
|
+
end
|
676
|
+
if vent_fan.start_hour.nil?
|
677
|
+
vent_fan.start_hour = 18 # 6 pm, per BA HSP
|
678
|
+
vent_fan.start_hour_isdefaulted = true
|
679
|
+
end
|
680
|
+
end
|
681
|
+
|
682
|
+
# Default bath fans
|
683
|
+
hpxml.ventilation_fans.each do |vent_fan|
|
684
|
+
next unless (vent_fan.used_for_local_ventilation && (vent_fan.fan_location == HPXML::LocationBath))
|
685
|
+
|
686
|
+
if vent_fan.quantity.nil?
|
687
|
+
vent_fan.quantity = hpxml.building_construction.number_of_bathrooms
|
688
|
+
vent_fan.quantity_isdefaulted = true
|
689
|
+
end
|
690
|
+
if vent_fan.rated_flow_rate.nil?
|
691
|
+
vent_fan.rated_flow_rate = 50.0 # cfm, per BA HSP
|
692
|
+
vent_fan.rated_flow_rate_isdefaulted = true
|
693
|
+
end
|
694
|
+
if vent_fan.hours_in_operation.nil?
|
695
|
+
vent_fan.hours_in_operation = 1.0 # hrs/day, per BA HSP
|
696
|
+
vent_fan.hours_in_operation_isdefaulted = true
|
697
|
+
end
|
698
|
+
if vent_fan.fan_power.nil?
|
699
|
+
vent_fan.fan_power = 0.3 * vent_fan.rated_flow_rate # W, per BA HSP
|
700
|
+
vent_fan.fan_power_isdefaulted = true
|
701
|
+
end
|
702
|
+
if vent_fan.start_hour.nil?
|
703
|
+
vent_fan.start_hour = 7 # 7 am, per BA HSP
|
704
|
+
vent_fan.start_hour_isdefaulted = true
|
705
|
+
end
|
706
|
+
end
|
707
|
+
end
|
708
|
+
|
405
709
|
def self.apply_water_heaters(hpxml, nbeds, eri_version)
|
406
710
|
hpxml.water_heating_systems.each do |water_heating_system|
|
407
711
|
if water_heating_system.is_shared_system.nil?
|
408
712
|
water_heating_system.is_shared_system = false
|
713
|
+
water_heating_system.is_shared_system_isdefaulted = true
|
409
714
|
end
|
410
715
|
if water_heating_system.temperature.nil?
|
411
716
|
water_heating_system.temperature = Waterheater.get_default_hot_water_temperature(eri_version)
|
717
|
+
water_heating_system.temperature_isdefaulted = true
|
412
718
|
end
|
413
719
|
if water_heating_system.performance_adjustment.nil?
|
414
720
|
water_heating_system.performance_adjustment = Waterheater.get_default_performance_adjustment(water_heating_system)
|
721
|
+
water_heating_system.performance_adjustment_isdefaulted = true
|
415
722
|
end
|
416
723
|
if (water_heating_system.water_heater_type == HPXML::WaterHeaterTypeCombiStorage) && water_heating_system.standby_loss.nil?
|
417
724
|
# Use equation fit from AHRI database
|
@@ -420,20 +727,25 @@ class HPXMLDefaults
|
|
420
727
|
surface_area = Waterheater.calc_tank_areas(act_vol)[0]
|
421
728
|
sqft_by_gal = surface_area / act_vol # sqft/gal
|
422
729
|
water_heating_system.standby_loss = (2.9721 * sqft_by_gal - 0.4732).round(3) # linear equation assuming a constant u, F/hr
|
730
|
+
water_heating_system.standby_loss_isdefaulted = true
|
423
731
|
end
|
424
732
|
if (water_heating_system.water_heater_type == HPXML::WaterHeaterTypeStorage)
|
425
733
|
if water_heating_system.heating_capacity.nil?
|
426
734
|
water_heating_system.heating_capacity = Waterheater.get_default_heating_capacity(water_heating_system.fuel_type, nbeds, hpxml.water_heating_systems.size, hpxml.building_construction.number_of_bathrooms) * 1000.0
|
735
|
+
water_heating_system.heating_capacity_isdefaulted = true
|
427
736
|
end
|
428
737
|
if water_heating_system.tank_volume.nil?
|
429
738
|
water_heating_system.tank_volume = Waterheater.get_default_tank_volume(water_heating_system.fuel_type, nbeds, hpxml.building_construction.number_of_bathrooms)
|
739
|
+
water_heating_system.tank_volume_isdefaulted = true
|
430
740
|
end
|
431
741
|
if water_heating_system.recovery_efficiency.nil?
|
432
742
|
water_heating_system.recovery_efficiency = Waterheater.get_default_recovery_efficiency(water_heating_system)
|
743
|
+
water_heating_system.recovery_efficiency_isdefaulted = true
|
433
744
|
end
|
434
745
|
end
|
435
746
|
if water_heating_system.location.nil?
|
436
747
|
water_heating_system.location = Waterheater.get_default_location(hpxml, hpxml.climate_and_risk_zones.iecc_zone)
|
748
|
+
water_heating_system.location_isdefaulted = true
|
437
749
|
end
|
438
750
|
end
|
439
751
|
end
|
@@ -442,25 +754,36 @@ class HPXMLDefaults
|
|
442
754
|
return if hpxml.hot_water_distributions.size == 0
|
443
755
|
|
444
756
|
hot_water_distribution = hpxml.hot_water_distributions[0]
|
757
|
+
|
758
|
+
if hot_water_distribution.pipe_r_value.nil?
|
759
|
+
hot_water_distribution.pipe_r_value = 0.0
|
760
|
+
hot_water_distribution.pipe_r_value_isdefaulted = true
|
761
|
+
end
|
762
|
+
|
445
763
|
if hot_water_distribution.system_type == HPXML::DHWDistTypeStandard
|
446
764
|
if hot_water_distribution.standard_piping_length.nil?
|
447
765
|
hot_water_distribution.standard_piping_length = HotWaterAndAppliances.get_default_std_pipe_length(has_uncond_bsmnt, cfa, ncfl)
|
766
|
+
hot_water_distribution.standard_piping_length_isdefaulted = true
|
448
767
|
end
|
449
768
|
elsif hot_water_distribution.system_type == HPXML::DHWDistTypeRecirc
|
450
769
|
if hot_water_distribution.recirculation_piping_length.nil?
|
451
770
|
hot_water_distribution.recirculation_piping_length = HotWaterAndAppliances.get_default_recirc_loop_length(HotWaterAndAppliances.get_default_std_pipe_length(has_uncond_bsmnt, cfa, ncfl))
|
771
|
+
hot_water_distribution.recirculation_piping_length_isdefaulted = true
|
452
772
|
end
|
453
773
|
if hot_water_distribution.recirculation_branch_piping_length.nil?
|
454
774
|
hot_water_distribution.recirculation_branch_piping_length = HotWaterAndAppliances.get_default_recirc_branch_loop_length()
|
775
|
+
hot_water_distribution.recirculation_branch_piping_length_isdefaulted = true
|
455
776
|
end
|
456
777
|
if hot_water_distribution.recirculation_pump_power.nil?
|
457
778
|
hot_water_distribution.recirculation_pump_power = HotWaterAndAppliances.get_default_recirc_pump_power()
|
779
|
+
hot_water_distribution.recirculation_pump_power_isdefaulted = true
|
458
780
|
end
|
459
781
|
end
|
460
782
|
|
461
783
|
if hot_water_distribution.has_shared_recirculation
|
462
784
|
if hot_water_distribution.shared_recirculation_pump_power.nil?
|
463
785
|
hot_water_distribution.shared_recirculation_pump_power = HotWaterAndAppliances.get_default_shared_recirc_pump_power()
|
786
|
+
hot_water_distribution.shared_recirculation_pump_power_isdefaulted = true
|
464
787
|
end
|
465
788
|
end
|
466
789
|
end
|
@@ -468,6 +791,7 @@ class HPXMLDefaults
|
|
468
791
|
def self.apply_water_fixtures(hpxml)
|
469
792
|
if hpxml.water_heating.water_fixtures_usage_multiplier.nil?
|
470
793
|
hpxml.water_heating.water_fixtures_usage_multiplier = 1.0
|
794
|
+
hpxml.water_heating.water_fixtures_usage_multiplier_isdefaulted = true
|
471
795
|
end
|
472
796
|
end
|
473
797
|
|
@@ -480,319 +804,45 @@ class HPXMLDefaults
|
|
480
804
|
if not collector_area.nil? # Detailed solar water heater
|
481
805
|
if solar_thermal_system.storage_volume.nil?
|
482
806
|
solar_thermal_system.storage_volume = Waterheater.calc_default_solar_thermal_system_storage_volume(collector_area)
|
807
|
+
solar_thermal_system.storage_volume_isdefaulted = true
|
483
808
|
end
|
484
809
|
end
|
485
810
|
end
|
486
811
|
|
487
|
-
def self.
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
vent_fan.is_shared_system = false
|
494
|
-
end
|
495
|
-
|
496
|
-
# Default kitchen fan
|
497
|
-
hpxml.ventilation_fans.each do |vent_fan|
|
498
|
-
next unless (vent_fan.used_for_local_ventilation && (vent_fan.fan_location == HPXML::LocationKitchen))
|
499
|
-
|
500
|
-
if vent_fan.quantity.nil?
|
501
|
-
vent_fan.quantity = 1
|
812
|
+
def self.apply_pv_systems(hpxml)
|
813
|
+
hpxml.pv_systems.each do |pv_system|
|
814
|
+
if pv_system.is_shared_system.nil?
|
815
|
+
pv_system.is_shared_system = false
|
816
|
+
pv_system.is_shared_system_isdefaulted = true
|
502
817
|
end
|
503
|
-
if
|
504
|
-
|
818
|
+
if pv_system.location.nil?
|
819
|
+
pv_system.location = HPXML::LocationRoof
|
820
|
+
pv_system.location_isdefaulted = true
|
505
821
|
end
|
506
|
-
if
|
507
|
-
|
822
|
+
if pv_system.tracking.nil?
|
823
|
+
pv_system.tracking = HPXML::PVTrackingTypeFixed
|
824
|
+
pv_system.tracking_isdefaulted = true
|
508
825
|
end
|
509
|
-
if
|
510
|
-
|
826
|
+
if pv_system.module_type.nil?
|
827
|
+
pv_system.module_type = HPXML::PVModuleTypeStandard
|
828
|
+
pv_system.module_type_isdefaulted = true
|
511
829
|
end
|
512
|
-
if
|
513
|
-
|
830
|
+
if pv_system.inverter_efficiency.nil?
|
831
|
+
pv_system.inverter_efficiency = PV.get_default_inv_eff()
|
832
|
+
pv_system.inverter_efficiency_isdefaulted = true
|
833
|
+
end
|
834
|
+
if pv_system.system_losses_fraction.nil?
|
835
|
+
pv_system.system_losses_fraction = PV.get_default_system_losses(pv_system.year_modules_manufactured)
|
836
|
+
pv_system.system_losses_fraction_isdefaulted = true
|
514
837
|
end
|
515
838
|
end
|
839
|
+
end
|
516
840
|
|
517
|
-
|
518
|
-
hpxml.
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
vent_fan.quantity = hpxml.building_construction.number_of_bathrooms
|
523
|
-
end
|
524
|
-
if vent_fan.rated_flow_rate.nil?
|
525
|
-
vent_fan.rated_flow_rate = 50.0 # cfm, per BA HSP
|
526
|
-
end
|
527
|
-
if vent_fan.hours_in_operation.nil?
|
528
|
-
vent_fan.hours_in_operation = 1.0 # hrs/day, per BA HSP
|
529
|
-
end
|
530
|
-
if vent_fan.fan_power.nil?
|
531
|
-
vent_fan.fan_power = 0.3 * vent_fan.rated_flow_rate # W, per BA HSP
|
532
|
-
end
|
533
|
-
if vent_fan.start_hour.nil?
|
534
|
-
vent_fan.start_hour = 7 # 7 am, per BA HSP
|
535
|
-
end
|
536
|
-
end
|
537
|
-
end
|
538
|
-
|
539
|
-
def self.apply_ceiling_fans(hpxml, nbeds)
|
540
|
-
return if hpxml.ceiling_fans.size == 0
|
541
|
-
|
542
|
-
ceiling_fan = hpxml.ceiling_fans[0]
|
543
|
-
if ceiling_fan.efficiency.nil?
|
544
|
-
medium_cfm = 3000.0
|
545
|
-
ceiling_fan.efficiency = medium_cfm / HVAC.get_default_ceiling_fan_power()
|
546
|
-
end
|
547
|
-
if ceiling_fan.quantity.nil?
|
548
|
-
ceiling_fan.quantity = HVAC.get_default_ceiling_fan_quantity(nbeds)
|
549
|
-
end
|
550
|
-
end
|
551
|
-
|
552
|
-
def self.apply_plug_loads(hpxml, cfa, nbeds)
|
553
|
-
hpxml.plug_loads.each do |plug_load|
|
554
|
-
if plug_load.plug_load_type == HPXML::PlugLoadTypeOther
|
555
|
-
default_annual_kwh, default_sens_frac, default_lat_frac = MiscLoads.get_residual_mels_default_values(cfa)
|
556
|
-
if plug_load.kWh_per_year.nil?
|
557
|
-
plug_load.kWh_per_year = default_annual_kwh
|
558
|
-
end
|
559
|
-
if plug_load.frac_sensible.nil?
|
560
|
-
plug_load.frac_sensible = default_sens_frac
|
561
|
-
end
|
562
|
-
if plug_load.frac_latent.nil?
|
563
|
-
plug_load.frac_latent = default_lat_frac
|
564
|
-
end
|
565
|
-
if plug_load.location.nil?
|
566
|
-
plug_load.location = HPXML::LocationInterior
|
567
|
-
end
|
568
|
-
if plug_load.weekday_fractions.nil?
|
569
|
-
plug_load.weekday_fractions = Schedule.PlugLoadsOtherWeekdayFractions
|
570
|
-
end
|
571
|
-
if plug_load.weekend_fractions.nil?
|
572
|
-
plug_load.weekend_fractions = Schedule.PlugLoadsOtherWeekendFractions
|
573
|
-
end
|
574
|
-
if plug_load.monthly_multipliers.nil?
|
575
|
-
plug_load.monthly_multipliers = Schedule.PlugLoadsOtherMonthlyMultipliers
|
576
|
-
end
|
577
|
-
elsif plug_load.plug_load_type == HPXML::PlugLoadTypeTelevision
|
578
|
-
default_annual_kwh, default_sens_frac, default_lat_frac = MiscLoads.get_televisions_default_values(cfa, nbeds)
|
579
|
-
if plug_load.kWh_per_year.nil?
|
580
|
-
plug_load.kWh_per_year = default_annual_kwh
|
581
|
-
end
|
582
|
-
if plug_load.frac_sensible.nil?
|
583
|
-
plug_load.frac_sensible = default_sens_frac
|
584
|
-
end
|
585
|
-
if plug_load.frac_latent.nil?
|
586
|
-
plug_load.frac_latent = default_lat_frac
|
587
|
-
end
|
588
|
-
if plug_load.location.nil?
|
589
|
-
plug_load.location = HPXML::LocationInterior
|
590
|
-
end
|
591
|
-
if plug_load.weekday_fractions.nil?
|
592
|
-
plug_load.weekday_fractions = Schedule.PlugLoadsTVWeekdayFractions
|
593
|
-
end
|
594
|
-
if plug_load.weekend_fractions.nil?
|
595
|
-
plug_load.weekend_fractions = Schedule.PlugLoadsTVWeekendFractions
|
596
|
-
end
|
597
|
-
if plug_load.monthly_multipliers.nil?
|
598
|
-
plug_load.monthly_multipliers = Schedule.PlugLoadsTVMonthlyMultipliers
|
599
|
-
end
|
600
|
-
elsif plug_load.plug_load_type == HPXML::PlugLoadTypeElectricVehicleCharging
|
601
|
-
default_annual_kwh = MiscLoads.get_electric_vehicle_charging_default_values
|
602
|
-
if plug_load.kWh_per_year.nil?
|
603
|
-
plug_load.kWh_per_year = default_annual_kwh
|
604
|
-
end
|
605
|
-
if plug_load.frac_sensible.nil?
|
606
|
-
plug_load.frac_sensible = 0.0
|
607
|
-
end
|
608
|
-
if plug_load.frac_latent.nil?
|
609
|
-
plug_load.frac_latent = 0.0
|
610
|
-
end
|
611
|
-
if plug_load.location.nil?
|
612
|
-
plug_load.location = HPXML::LocationExterior
|
613
|
-
end
|
614
|
-
if plug_load.weekday_fractions.nil?
|
615
|
-
plug_load.weekday_fractions = Schedule.PlugLoadsVehicleWeekdayFractions
|
616
|
-
end
|
617
|
-
if plug_load.weekend_fractions.nil?
|
618
|
-
plug_load.weekend_fractions = Schedule.PlugLoadsVehicleWeekendFractions
|
619
|
-
end
|
620
|
-
if plug_load.monthly_multipliers.nil?
|
621
|
-
plug_load.monthly_multipliers = Schedule.PlugLoadsVehicleMonthlyMultipliers
|
622
|
-
end
|
623
|
-
elsif plug_load.plug_load_type == HPXML::PlugLoadTypeWellPump
|
624
|
-
default_annual_kwh = MiscLoads.get_well_pump_default_values(cfa, nbeds)
|
625
|
-
if plug_load.kWh_per_year.nil?
|
626
|
-
plug_load.kWh_per_year = default_annual_kwh
|
627
|
-
end
|
628
|
-
if plug_load.frac_sensible.nil?
|
629
|
-
plug_load.frac_sensible = 0.0
|
630
|
-
end
|
631
|
-
if plug_load.frac_latent.nil?
|
632
|
-
plug_load.frac_latent = 0.0
|
633
|
-
end
|
634
|
-
if plug_load.location.nil?
|
635
|
-
plug_load.location = HPXML::LocationExterior
|
636
|
-
end
|
637
|
-
if plug_load.weekday_fractions.nil?
|
638
|
-
plug_load.weekday_fractions = Schedule.PlugLoadsWellPumpWeekdayFractions
|
639
|
-
end
|
640
|
-
if plug_load.weekend_fractions.nil?
|
641
|
-
plug_load.weekend_fractions = Schedule.PlugLoadsWellPumpWeekendFractions
|
642
|
-
end
|
643
|
-
if plug_load.monthly_multipliers.nil?
|
644
|
-
plug_load.monthly_multipliers = Schedule.PlugLoadsWellPumpMonthlyMultipliers
|
645
|
-
end
|
646
|
-
end
|
647
|
-
if plug_load.usage_multiplier.nil?
|
648
|
-
plug_load.usage_multiplier = 1.0
|
649
|
-
end
|
650
|
-
end
|
651
|
-
end
|
652
|
-
|
653
|
-
def self.apply_fuel_loads(hpxml, cfa, nbeds)
|
654
|
-
hpxml.fuel_loads.each do |fuel_load|
|
655
|
-
if fuel_load.fuel_load_type == HPXML::FuelLoadTypeGrill
|
656
|
-
if fuel_load.therm_per_year.nil?
|
657
|
-
fuel_load.therm_per_year = MiscLoads.get_gas_grill_default_values(cfa, nbeds)
|
658
|
-
end
|
659
|
-
if fuel_load.frac_sensible.nil?
|
660
|
-
fuel_load.frac_sensible = 0.0
|
661
|
-
end
|
662
|
-
if fuel_load.frac_latent.nil?
|
663
|
-
fuel_load.frac_latent = 0.0
|
664
|
-
end
|
665
|
-
if fuel_load.location.nil?
|
666
|
-
fuel_load.location = HPXML::LocationExterior
|
667
|
-
end
|
668
|
-
if fuel_load.weekday_fractions.nil?
|
669
|
-
fuel_load.weekday_fractions = Schedule.FuelLoadsGrillWeekdayFractions
|
670
|
-
end
|
671
|
-
if fuel_load.weekend_fractions.nil?
|
672
|
-
fuel_load.weekend_fractions = Schedule.FuelLoadsGrillWeekendFractions
|
673
|
-
end
|
674
|
-
if fuel_load.monthly_multipliers.nil?
|
675
|
-
fuel_load.monthly_multipliers = Schedule.FuelLoadsGrillMonthlyMultipliers
|
676
|
-
end
|
677
|
-
elsif fuel_load.fuel_load_type == HPXML::FuelLoadTypeLighting
|
678
|
-
if fuel_load.therm_per_year.nil?
|
679
|
-
fuel_load.therm_per_year = MiscLoads.get_gas_lighting_default_values(cfa, nbeds)
|
680
|
-
end
|
681
|
-
if fuel_load.frac_sensible.nil?
|
682
|
-
fuel_load.frac_sensible = 0.0
|
683
|
-
end
|
684
|
-
if fuel_load.frac_latent.nil?
|
685
|
-
fuel_load.frac_latent = 0.0
|
686
|
-
end
|
687
|
-
if fuel_load.location.nil?
|
688
|
-
fuel_load.location = HPXML::LocationExterior
|
689
|
-
end
|
690
|
-
if fuel_load.weekday_fractions.nil?
|
691
|
-
fuel_load.weekday_fractions = Schedule.FuelLoadsLightingWeekdayFractions
|
692
|
-
end
|
693
|
-
if fuel_load.weekend_fractions.nil?
|
694
|
-
fuel_load.weekend_fractions = Schedule.FuelLoadsLightingWeekendFractions
|
695
|
-
end
|
696
|
-
if fuel_load.monthly_multipliers.nil?
|
697
|
-
fuel_load.monthly_multipliers = Schedule.FuelLoadsLightingMonthlyMultipliers
|
698
|
-
end
|
699
|
-
elsif fuel_load.fuel_load_type == HPXML::FuelLoadTypeFireplace
|
700
|
-
if fuel_load.therm_per_year.nil?
|
701
|
-
fuel_load.therm_per_year = MiscLoads.get_gas_fireplace_default_values(cfa, nbeds)
|
702
|
-
end
|
703
|
-
if fuel_load.frac_sensible.nil?
|
704
|
-
fuel_load.frac_sensible = 0.5
|
705
|
-
end
|
706
|
-
if fuel_load.frac_latent.nil?
|
707
|
-
fuel_load.frac_latent = 0.1
|
708
|
-
end
|
709
|
-
if fuel_load.location.nil?
|
710
|
-
fuel_load.location = HPXML::LocationInterior
|
711
|
-
end
|
712
|
-
if fuel_load.weekday_fractions.nil?
|
713
|
-
fuel_load.weekday_fractions = Schedule.FuelLoadsFireplaceWeekdayFractions
|
714
|
-
end
|
715
|
-
if fuel_load.weekend_fractions.nil?
|
716
|
-
fuel_load.weekend_fractions = Schedule.FuelLoadsFireplaceWeekendFractions
|
717
|
-
end
|
718
|
-
if fuel_load.monthly_multipliers.nil?
|
719
|
-
fuel_load.monthly_multipliers = Schedule.FuelLoadsFireplaceMonthlyMultipliers
|
720
|
-
end
|
721
|
-
end
|
722
|
-
if fuel_load.usage_multiplier.nil?
|
723
|
-
fuel_load.usage_multiplier = 1.0
|
724
|
-
end
|
725
|
-
end
|
726
|
-
end
|
727
|
-
|
728
|
-
def self.apply_pools_and_hot_tubs(hpxml, cfa, nbeds)
|
729
|
-
hpxml.pools.each do |pool|
|
730
|
-
if pool.pump_kwh_per_year.nil?
|
731
|
-
pool.pump_kwh_per_year = MiscLoads.get_pool_pump_default_values(cfa, nbeds)
|
732
|
-
end
|
733
|
-
if pool.heater_load_value.nil?
|
734
|
-
default_heater_load_units, default_heater_load_value = MiscLoads.get_pool_heater_default_values(cfa, nbeds, pool.heater_type)
|
735
|
-
pool.heater_load_units = default_heater_load_units
|
736
|
-
pool.heater_load_value = default_heater_load_value
|
737
|
-
end
|
738
|
-
if pool.heater_usage_multiplier.nil?
|
739
|
-
pool.heater_usage_multiplier = 1.0
|
740
|
-
end
|
741
|
-
if pool.pump_usage_multiplier.nil?
|
742
|
-
pool.pump_usage_multiplier = 1.0
|
743
|
-
end
|
744
|
-
if pool.pump_weekday_fractions.nil?
|
745
|
-
pool.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'
|
746
|
-
end
|
747
|
-
if pool.pump_weekend_fractions.nil?
|
748
|
-
pool.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'
|
749
|
-
end
|
750
|
-
if pool.pump_monthly_multipliers.nil?
|
751
|
-
pool.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'
|
752
|
-
end
|
753
|
-
if pool.heater_weekday_fractions.nil?
|
754
|
-
pool.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'
|
755
|
-
end
|
756
|
-
if pool.heater_weekend_fractions.nil?
|
757
|
-
pool.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'
|
758
|
-
end
|
759
|
-
if pool.heater_monthly_multipliers.nil?
|
760
|
-
pool.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'
|
761
|
-
end
|
762
|
-
end
|
763
|
-
|
764
|
-
hpxml.hot_tubs.each do |hot_tub|
|
765
|
-
if hot_tub.pump_kwh_per_year.nil?
|
766
|
-
hot_tub.pump_kwh_per_year = MiscLoads.get_hot_tub_pump_default_values(cfa, nbeds)
|
767
|
-
end
|
768
|
-
if hot_tub.heater_load_value.nil?
|
769
|
-
default_heater_load_units, default_heater_load_value = MiscLoads.get_hot_tub_heater_default_values(cfa, nbeds, hot_tub.heater_type)
|
770
|
-
hot_tub.heater_load_units = default_heater_load_units
|
771
|
-
hot_tub.heater_load_value = default_heater_load_value
|
772
|
-
end
|
773
|
-
if hot_tub.heater_usage_multiplier.nil?
|
774
|
-
hot_tub.heater_usage_multiplier = 1.0
|
775
|
-
end
|
776
|
-
if hot_tub.pump_usage_multiplier.nil?
|
777
|
-
hot_tub.pump_usage_multiplier = 1.0
|
778
|
-
end
|
779
|
-
if hot_tub.pump_weekday_fractions.nil?
|
780
|
-
hot_tub.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'
|
781
|
-
end
|
782
|
-
if hot_tub.pump_weekend_fractions.nil?
|
783
|
-
hot_tub.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'
|
784
|
-
end
|
785
|
-
if hot_tub.pump_monthly_multipliers.nil?
|
786
|
-
hot_tub.pump_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'
|
787
|
-
end
|
788
|
-
if hot_tub.heater_weekday_fractions.nil?
|
789
|
-
hot_tub.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'
|
790
|
-
end
|
791
|
-
if hot_tub.heater_weekend_fractions.nil?
|
792
|
-
hot_tub.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'
|
793
|
-
end
|
794
|
-
if hot_tub.heater_monthly_multipliers.nil?
|
795
|
-
hot_tub.heater_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'
|
841
|
+
def self.apply_generators(hpxml)
|
842
|
+
hpxml.generators.each do |generator|
|
843
|
+
if generator.is_shared_system.nil?
|
844
|
+
generator.is_shared_system = false
|
845
|
+
generator.is_shared_system_isdefaulted = true
|
796
846
|
end
|
797
847
|
end
|
798
848
|
end
|
@@ -803,22 +853,32 @@ class HPXMLDefaults
|
|
803
853
|
clothes_washer = hpxml.clothes_washers[0]
|
804
854
|
if clothes_washer.is_shared_appliance.nil?
|
805
855
|
clothes_washer.is_shared_appliance = false
|
856
|
+
clothes_washer.is_shared_appliance_isdefaulted = true
|
806
857
|
end
|
807
858
|
if clothes_washer.location.nil?
|
808
859
|
clothes_washer.location = HPXML::LocationLivingSpace
|
860
|
+
clothes_washer.location_isdefaulted = true
|
809
861
|
end
|
810
862
|
if clothes_washer.rated_annual_kwh.nil?
|
811
863
|
default_values = HotWaterAndAppliances.get_clothes_washer_default_values(eri_version)
|
812
864
|
clothes_washer.integrated_modified_energy_factor = default_values[:integrated_modified_energy_factor]
|
865
|
+
clothes_washer.integrated_modified_energy_factor_isdefaulted = true
|
813
866
|
clothes_washer.rated_annual_kwh = default_values[:rated_annual_kwh]
|
867
|
+
clothes_washer.rated_annual_kwh_isdefaulted = true
|
814
868
|
clothes_washer.label_electric_rate = default_values[:label_electric_rate]
|
869
|
+
clothes_washer.label_electric_rate_isdefaulted = true
|
815
870
|
clothes_washer.label_gas_rate = default_values[:label_gas_rate]
|
871
|
+
clothes_washer.label_gas_rate_isdefaulted = true
|
816
872
|
clothes_washer.label_annual_gas_cost = default_values[:label_annual_gas_cost]
|
873
|
+
clothes_washer.label_annual_gas_cost_isdefaulted = true
|
817
874
|
clothes_washer.capacity = default_values[:capacity]
|
875
|
+
clothes_washer.capacity_isdefaulted = true
|
818
876
|
clothes_washer.label_usage = default_values[:label_usage]
|
877
|
+
clothes_washer.label_usage_isdefaulted = true
|
819
878
|
end
|
820
879
|
if clothes_washer.usage_multiplier.nil?
|
821
880
|
clothes_washer.usage_multiplier = 1.0
|
881
|
+
clothes_washer.usage_multiplier_isdefaulted = true
|
822
882
|
end
|
823
883
|
end
|
824
884
|
|
@@ -827,23 +887,30 @@ class HPXMLDefaults
|
|
827
887
|
clothes_dryer = hpxml.clothes_dryers[0]
|
828
888
|
if clothes_dryer.is_shared_appliance.nil?
|
829
889
|
clothes_dryer.is_shared_appliance = false
|
890
|
+
clothes_dryer.is_shared_appliance_isdefaulted = true
|
830
891
|
end
|
831
892
|
if clothes_dryer.location.nil?
|
832
893
|
clothes_dryer.location = HPXML::LocationLivingSpace
|
894
|
+
clothes_dryer.location_isdefaulted = true
|
833
895
|
end
|
834
896
|
if clothes_dryer.control_type.nil?
|
835
897
|
default_values = HotWaterAndAppliances.get_clothes_dryer_default_values(eri_version, clothes_dryer.fuel_type)
|
836
898
|
clothes_dryer.control_type = default_values[:control_type]
|
899
|
+
clothes_dryer.control_type_isdefaulted = true
|
837
900
|
clothes_dryer.combined_energy_factor = default_values[:combined_energy_factor]
|
901
|
+
clothes_dryer.combined_energy_factor_isdefaulted = true
|
838
902
|
end
|
839
903
|
if clothes_dryer.usage_multiplier.nil?
|
840
904
|
clothes_dryer.usage_multiplier = 1.0
|
905
|
+
clothes_dryer.usage_multiplier_isdefaulted = true
|
841
906
|
end
|
842
907
|
if clothes_dryer.is_vented.nil?
|
843
908
|
clothes_dryer.is_vented = true
|
909
|
+
clothes_dryer.is_vented_isdefaulted = true
|
844
910
|
end
|
845
911
|
if clothes_dryer.is_vented && clothes_dryer.vented_flow_rate.nil?
|
846
912
|
clothes_dryer.vented_flow_rate = 100.0
|
913
|
+
clothes_dryer.vented_flow_rate_isdefaulted = true
|
847
914
|
end
|
848
915
|
end
|
849
916
|
|
@@ -852,66 +919,87 @@ class HPXMLDefaults
|
|
852
919
|
dishwasher = hpxml.dishwashers[0]
|
853
920
|
if dishwasher.is_shared_appliance.nil?
|
854
921
|
dishwasher.is_shared_appliance = false
|
922
|
+
dishwasher.is_shared_appliance_isdefaulted = true
|
855
923
|
end
|
856
924
|
if dishwasher.location.nil?
|
857
925
|
dishwasher.location = HPXML::LocationLivingSpace
|
926
|
+
dishwasher.location_isdefaulted = true
|
858
927
|
end
|
859
928
|
if dishwasher.place_setting_capacity.nil?
|
860
|
-
default_values = HotWaterAndAppliances.get_dishwasher_default_values()
|
929
|
+
default_values = HotWaterAndAppliances.get_dishwasher_default_values(eri_version)
|
861
930
|
dishwasher.rated_annual_kwh = default_values[:rated_annual_kwh]
|
931
|
+
dishwasher.rated_annual_kwh_isdefaulted = true
|
862
932
|
dishwasher.label_electric_rate = default_values[:label_electric_rate]
|
933
|
+
dishwasher.label_electric_rate_isdefaulted = true
|
863
934
|
dishwasher.label_gas_rate = default_values[:label_gas_rate]
|
935
|
+
dishwasher.label_gas_rate_isdefaulted = true
|
864
936
|
dishwasher.label_annual_gas_cost = default_values[:label_annual_gas_cost]
|
937
|
+
dishwasher.label_annual_gas_cost_isdefaulted = true
|
865
938
|
dishwasher.label_usage = default_values[:label_usage]
|
939
|
+
dishwasher.label_usage_isdefaulted = true
|
866
940
|
dishwasher.place_setting_capacity = default_values[:place_setting_capacity]
|
941
|
+
dishwasher.place_setting_capacity_isdefaulted = true
|
867
942
|
end
|
868
943
|
if dishwasher.usage_multiplier.nil?
|
869
944
|
dishwasher.usage_multiplier = 1.0
|
945
|
+
dishwasher.usage_multiplier_isdefaulted = true
|
870
946
|
end
|
871
947
|
end
|
872
948
|
|
873
949
|
# Default refrigerators
|
874
950
|
if hpxml.refrigerators.size == 1
|
875
951
|
hpxml.refrigerators[0].primary_indicator = true
|
952
|
+
hpxml.refrigerators[0].primary_indicator_isdefaulted = true
|
876
953
|
end
|
877
954
|
hpxml.refrigerators.each do |refrigerator|
|
878
955
|
if not refrigerator.primary_indicator # extra refrigerator
|
879
956
|
if refrigerator.location.nil?
|
880
957
|
refrigerator.location = HotWaterAndAppliances.get_default_extra_refrigerator_and_freezer_locations(hpxml)
|
958
|
+
refrigerator.location_isdefaulted = true
|
881
959
|
end
|
882
960
|
if refrigerator.adjusted_annual_kwh.nil? && refrigerator.rated_annual_kwh.nil?
|
883
961
|
default_values = HotWaterAndAppliances.get_extra_refrigerator_default_values
|
884
962
|
refrigerator.rated_annual_kwh = default_values[:rated_annual_kwh]
|
963
|
+
refrigerator.rated_annual_kwh_isdefaulted = true
|
885
964
|
end
|
886
965
|
if refrigerator.weekday_fractions.nil?
|
887
966
|
refrigerator.weekday_fractions = Schedule.ExtraRefrigeratorWeekdayFractions
|
967
|
+
refrigerator.weekday_fractions_isdefaulted = true
|
888
968
|
end
|
889
969
|
if refrigerator.weekend_fractions.nil?
|
890
970
|
refrigerator.weekend_fractions = Schedule.ExtraRefrigeratorWeekendFractions
|
971
|
+
refrigerator.weekend_fractions_isdefaulted = true
|
891
972
|
end
|
892
973
|
if refrigerator.monthly_multipliers.nil?
|
893
974
|
refrigerator.monthly_multipliers = Schedule.ExtraRefrigeratorMonthlyMultipliers
|
975
|
+
refrigerator.monthly_multipliers_isdefaulted = true
|
894
976
|
end
|
895
977
|
else # primary refrigerator
|
896
978
|
if refrigerator.location.nil?
|
897
979
|
refrigerator.location = HPXML::LocationLivingSpace
|
980
|
+
refrigerator.location_isdefaulted = true
|
898
981
|
end
|
899
982
|
if refrigerator.adjusted_annual_kwh.nil? && refrigerator.rated_annual_kwh.nil?
|
900
983
|
default_values = HotWaterAndAppliances.get_refrigerator_default_values(nbeds)
|
901
984
|
refrigerator.rated_annual_kwh = default_values[:rated_annual_kwh]
|
985
|
+
refrigerator.rated_annual_kwh_isdefaulted = true
|
902
986
|
end
|
903
987
|
if refrigerator.weekday_fractions.nil?
|
904
988
|
refrigerator.weekday_fractions = Schedule.RefrigeratorWeekdayFractions
|
989
|
+
refrigerator.weekday_fractions_isdefaulted = true
|
905
990
|
end
|
906
991
|
if refrigerator.weekend_fractions.nil?
|
907
992
|
refrigerator.weekend_fractions = Schedule.RefrigeratorWeekendFractions
|
993
|
+
refrigerator.weekend_fractions_isdefaulted = true
|
908
994
|
end
|
909
995
|
if refrigerator.monthly_multipliers.nil?
|
910
996
|
refrigerator.monthly_multipliers = Schedule.RefrigeratorMonthlyMultipliers
|
997
|
+
refrigerator.monthly_multipliers_isdefaulted = true
|
911
998
|
end
|
912
999
|
end
|
913
1000
|
if refrigerator.usage_multiplier.nil?
|
914
1001
|
refrigerator.usage_multiplier = 1.0
|
1002
|
+
refrigerator.usage_multiplier_isdefaulted = true
|
915
1003
|
end
|
916
1004
|
end
|
917
1005
|
|
@@ -919,22 +1007,28 @@ class HPXMLDefaults
|
|
919
1007
|
hpxml.freezers.each do |freezer|
|
920
1008
|
if freezer.location.nil?
|
921
1009
|
freezer.location = HotWaterAndAppliances.get_default_extra_refrigerator_and_freezer_locations(hpxml)
|
1010
|
+
freezer.location_isdefaulted = true
|
922
1011
|
end
|
923
1012
|
if freezer.adjusted_annual_kwh.nil? && freezer.rated_annual_kwh.nil?
|
924
1013
|
default_values = HotWaterAndAppliances.get_freezer_default_values
|
925
1014
|
freezer.rated_annual_kwh = default_values[:rated_annual_kwh]
|
1015
|
+
freezer.rated_annual_kwh_isdefaulted = true
|
926
1016
|
end
|
927
1017
|
if freezer.usage_multiplier.nil?
|
928
1018
|
freezer.usage_multiplier = 1.0
|
1019
|
+
freezer.usage_multiplier_isdefaulted = true
|
929
1020
|
end
|
930
1021
|
if freezer.weekday_fractions.nil?
|
931
1022
|
freezer.weekday_fractions = Schedule.FreezerWeekdayFractions
|
1023
|
+
freezer.weekday_fractions_isdefaulted = true
|
932
1024
|
end
|
933
1025
|
if freezer.weekend_fractions.nil?
|
934
1026
|
freezer.weekend_fractions = Schedule.FreezerWeekendFractions
|
1027
|
+
freezer.weekend_fractions_isdefaulted = true
|
935
1028
|
end
|
936
1029
|
if freezer.monthly_multipliers.nil?
|
937
1030
|
freezer.monthly_multipliers = Schedule.FreezerMonthlyMultipliers
|
1031
|
+
freezer.monthly_multipliers_isdefaulted = true
|
938
1032
|
end
|
939
1033
|
end
|
940
1034
|
|
@@ -943,22 +1037,28 @@ class HPXMLDefaults
|
|
943
1037
|
cooking_range = hpxml.cooking_ranges[0]
|
944
1038
|
if cooking_range.location.nil?
|
945
1039
|
cooking_range.location = HPXML::LocationLivingSpace
|
1040
|
+
cooking_range.location_isdefaulted = true
|
946
1041
|
end
|
947
1042
|
if cooking_range.is_induction.nil?
|
948
1043
|
default_values = HotWaterAndAppliances.get_range_oven_default_values()
|
949
1044
|
cooking_range.is_induction = default_values[:is_induction]
|
1045
|
+
cooking_range.is_induction_isdefaulted = true
|
950
1046
|
end
|
951
1047
|
if cooking_range.usage_multiplier.nil?
|
952
1048
|
cooking_range.usage_multiplier = 1.0
|
1049
|
+
cooking_range.usage_multiplier_isdefaulted = true
|
953
1050
|
end
|
954
1051
|
if cooking_range.weekday_fractions.nil?
|
955
1052
|
cooking_range.weekday_fractions = Schedule.CookingRangeWeekdayFractions
|
1053
|
+
cooking_range.weekday_fractions_isdefaulted = true
|
956
1054
|
end
|
957
1055
|
if cooking_range.weekend_fractions.nil?
|
958
1056
|
cooking_range.weekend_fractions = Schedule.CookingRangeWeekendFractions
|
1057
|
+
cooking_range.weekend_fractions_isdefaulted = true
|
959
1058
|
end
|
960
1059
|
if cooking_range.monthly_multipliers.nil?
|
961
1060
|
cooking_range.monthly_multipliers = Schedule.CookingRangeMonthlyMultipliers
|
1061
|
+
cooking_range.monthly_multipliers_isdefaulted = true
|
962
1062
|
end
|
963
1063
|
end
|
964
1064
|
|
@@ -968,6 +1068,7 @@ class HPXMLDefaults
|
|
968
1068
|
if oven.is_convection.nil?
|
969
1069
|
default_values = HotWaterAndAppliances.get_range_oven_default_values()
|
970
1070
|
oven.is_convection = default_values[:is_convection]
|
1071
|
+
oven.is_convection_isdefaulted = true
|
971
1072
|
end
|
972
1073
|
end
|
973
1074
|
end
|
@@ -975,35 +1076,45 @@ class HPXMLDefaults
|
|
975
1076
|
def self.apply_lighting(hpxml)
|
976
1077
|
if hpxml.lighting.interior_usage_multiplier.nil?
|
977
1078
|
hpxml.lighting.interior_usage_multiplier = 1.0
|
1079
|
+
hpxml.lighting.interior_usage_multiplier_isdefaulted = true
|
978
1080
|
end
|
979
1081
|
if hpxml.lighting.garage_usage_multiplier.nil?
|
980
1082
|
hpxml.lighting.garage_usage_multiplier = 1.0
|
1083
|
+
hpxml.lighting.garage_usage_multiplier_isdefaulted = true
|
981
1084
|
end
|
982
1085
|
if hpxml.lighting.exterior_usage_multiplier.nil?
|
983
1086
|
hpxml.lighting.exterior_usage_multiplier = 1.0
|
1087
|
+
hpxml.lighting.exterior_usage_multiplier_isdefaulted = true
|
984
1088
|
end
|
1089
|
+
# Schedules from T24 2016 Residential ACM Appendix C Table 8 Exterior Lighting Hourly Multiplier (Weekdays and weekends)
|
985
1090
|
default_exterior_lighting_weekday_fractions = Schedule.LightingExteriorWeekdayFractions
|
986
1091
|
default_exterior_lighting_weekend_fractions = Schedule.LightingExteriorWeekendFractions
|
987
1092
|
default_exterior_lighting_monthly_multipliers = Schedule.LightingExteriorMonthlyMultipliers
|
988
1093
|
if hpxml.has_space_type(HPXML::LocationGarage)
|
989
1094
|
if hpxml.lighting.garage_weekday_fractions.nil?
|
990
1095
|
hpxml.lighting.garage_weekday_fractions = default_exterior_lighting_weekday_fractions
|
1096
|
+
hpxml.lighting.garage_weekday_fractions_isdefaulted = true
|
991
1097
|
end
|
992
1098
|
if hpxml.lighting.garage_weekend_fractions.nil?
|
993
1099
|
hpxml.lighting.garage_weekend_fractions = default_exterior_lighting_weekend_fractions
|
1100
|
+
hpxml.lighting.garage_weekend_fractions_isdefaulted = true
|
994
1101
|
end
|
995
1102
|
if hpxml.lighting.garage_monthly_multipliers.nil?
|
996
1103
|
hpxml.lighting.garage_monthly_multipliers = default_exterior_lighting_monthly_multipliers
|
1104
|
+
hpxml.lighting.garage_monthly_multipliers_isdefaulted = true
|
997
1105
|
end
|
998
1106
|
end
|
999
1107
|
if hpxml.lighting.exterior_weekday_fractions.nil?
|
1000
1108
|
hpxml.lighting.exterior_weekday_fractions = default_exterior_lighting_weekday_fractions
|
1109
|
+
hpxml.lighting.exterior_weekday_fractions_isdefaulted = true
|
1001
1110
|
end
|
1002
1111
|
if hpxml.lighting.exterior_weekend_fractions.nil?
|
1003
1112
|
hpxml.lighting.exterior_weekend_fractions = default_exterior_lighting_weekend_fractions
|
1113
|
+
hpxml.lighting.exterior_weekend_fractions_isdefaulted = true
|
1004
1114
|
end
|
1005
1115
|
if hpxml.lighting.exterior_monthly_multipliers.nil?
|
1006
1116
|
hpxml.lighting.exterior_monthly_multipliers = default_exterior_lighting_monthly_multipliers
|
1117
|
+
hpxml.lighting.exterior_monthly_multipliers_isdefaulted = true
|
1007
1118
|
end
|
1008
1119
|
if hpxml.lighting.holiday_exists
|
1009
1120
|
if hpxml.lighting.holiday_kwh_per_day.nil?
|
@@ -1013,34 +1124,333 @@ class HPXMLDefaults
|
|
1013
1124
|
else # Multifamily and others
|
1014
1125
|
hpxml.lighting.holiday_kwh_per_day = 0.55
|
1015
1126
|
end
|
1127
|
+
hpxml.lighting.holiday_kwh_per_day_isdefaulted = true
|
1016
1128
|
end
|
1017
1129
|
if hpxml.lighting.holiday_period_begin_month.nil?
|
1018
1130
|
hpxml.lighting.holiday_period_begin_month = 11
|
1019
|
-
hpxml.lighting.
|
1131
|
+
hpxml.lighting.holiday_period_begin_month_isdefaulted = true
|
1132
|
+
hpxml.lighting.holiday_period_begin_day = 24
|
1133
|
+
hpxml.lighting.holiday_period_begin_day_isdefaulted = true
|
1020
1134
|
end
|
1021
|
-
if hpxml.lighting.
|
1135
|
+
if hpxml.lighting.holiday_period_end_day.nil?
|
1022
1136
|
hpxml.lighting.holiday_period_end_month = 1
|
1023
|
-
hpxml.lighting.
|
1137
|
+
hpxml.lighting.holiday_period_end_month_isdefaulted = true
|
1138
|
+
hpxml.lighting.holiday_period_end_day = 6
|
1139
|
+
hpxml.lighting.holiday_period_end_day_isdefaulted = true
|
1024
1140
|
end
|
1025
1141
|
if hpxml.lighting.holiday_weekday_fractions.nil?
|
1026
1142
|
hpxml.lighting.holiday_weekday_fractions = Schedule.LightingExteriorHolidayWeekdayFractions
|
1143
|
+
hpxml.lighting.holiday_weekday_fractions_isdefaulted = true
|
1027
1144
|
end
|
1028
1145
|
if hpxml.lighting.holiday_weekend_fractions.nil?
|
1029
1146
|
hpxml.lighting.holiday_weekend_fractions = Schedule.LightingExteriorHolidayWeekendFractions
|
1147
|
+
hpxml.lighting.holiday_weekend_fractions_isdefaulted = true
|
1030
1148
|
end
|
1031
1149
|
end
|
1032
1150
|
end
|
1033
1151
|
|
1034
|
-
def self.
|
1035
|
-
hpxml.
|
1036
|
-
|
1037
|
-
|
1152
|
+
def self.apply_ceiling_fans(hpxml, nbeds)
|
1153
|
+
return if hpxml.ceiling_fans.size == 0
|
1154
|
+
|
1155
|
+
ceiling_fan = hpxml.ceiling_fans[0]
|
1156
|
+
if ceiling_fan.efficiency.nil?
|
1157
|
+
medium_cfm = 3000.0
|
1158
|
+
ceiling_fan.efficiency = medium_cfm / HVAC.get_default_ceiling_fan_power()
|
1159
|
+
ceiling_fan.efficiency_isdefaulted = true
|
1160
|
+
end
|
1161
|
+
if ceiling_fan.quantity.nil?
|
1162
|
+
ceiling_fan.quantity = HVAC.get_default_ceiling_fan_quantity(nbeds)
|
1163
|
+
ceiling_fan.quantity_isdefaulted = true
|
1164
|
+
end
|
1165
|
+
end
|
1166
|
+
|
1167
|
+
def self.apply_pools_and_hot_tubs(hpxml, cfa, nbeds)
|
1168
|
+
hpxml.pools.each do |pool|
|
1169
|
+
if pool.pump_kwh_per_year.nil?
|
1170
|
+
pool.pump_kwh_per_year = MiscLoads.get_pool_pump_default_values(cfa, nbeds)
|
1171
|
+
pool.pump_kwh_per_year_isdefaulted = true
|
1038
1172
|
end
|
1039
|
-
if
|
1040
|
-
|
1173
|
+
if pool.heater_load_value.nil?
|
1174
|
+
default_heater_load_units, default_heater_load_value = MiscLoads.get_pool_heater_default_values(cfa, nbeds, pool.heater_type)
|
1175
|
+
pool.heater_load_units = default_heater_load_units
|
1176
|
+
pool.heater_load_value = default_heater_load_value
|
1177
|
+
pool.heater_load_value_isdefaulted = true
|
1041
1178
|
end
|
1042
|
-
if
|
1043
|
-
|
1179
|
+
if pool.heater_usage_multiplier.nil?
|
1180
|
+
pool.heater_usage_multiplier = 1.0
|
1181
|
+
pool.heater_usage_multiplier_isdefaulted = true
|
1182
|
+
end
|
1183
|
+
if pool.pump_usage_multiplier.nil?
|
1184
|
+
pool.pump_usage_multiplier = 1.0
|
1185
|
+
pool.pump_usage_multiplier_isdefaulted = true
|
1186
|
+
end
|
1187
|
+
if pool.pump_weekday_fractions.nil?
|
1188
|
+
pool.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'
|
1189
|
+
pool.pump_weekday_fractions_isdefaulted = true
|
1190
|
+
end
|
1191
|
+
if pool.pump_weekend_fractions.nil?
|
1192
|
+
pool.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'
|
1193
|
+
pool.pump_weekend_fractions_isdefaulted = true
|
1194
|
+
end
|
1195
|
+
if pool.pump_monthly_multipliers.nil?
|
1196
|
+
pool.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'
|
1197
|
+
pool.pump_monthly_multipliers_isdefaulted = true
|
1198
|
+
end
|
1199
|
+
if pool.heater_weekday_fractions.nil?
|
1200
|
+
pool.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'
|
1201
|
+
pool.heater_weekday_fractions_isdefaulted = true
|
1202
|
+
end
|
1203
|
+
if pool.heater_weekend_fractions.nil?
|
1204
|
+
pool.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'
|
1205
|
+
pool.heater_weekend_fractions_isdefaulted = true
|
1206
|
+
end
|
1207
|
+
if pool.heater_monthly_multipliers.nil?
|
1208
|
+
pool.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'
|
1209
|
+
pool.heater_monthly_multipliers_isdefaulted = true
|
1210
|
+
end
|
1211
|
+
end
|
1212
|
+
|
1213
|
+
hpxml.hot_tubs.each do |hot_tub|
|
1214
|
+
if hot_tub.pump_kwh_per_year.nil?
|
1215
|
+
hot_tub.pump_kwh_per_year = MiscLoads.get_hot_tub_pump_default_values(cfa, nbeds)
|
1216
|
+
hot_tub.pump_kwh_per_year_isdefaulted = true
|
1217
|
+
end
|
1218
|
+
if hot_tub.heater_load_value.nil?
|
1219
|
+
default_heater_load_units, default_heater_load_value = MiscLoads.get_hot_tub_heater_default_values(cfa, nbeds, hot_tub.heater_type)
|
1220
|
+
hot_tub.heater_load_units = default_heater_load_units
|
1221
|
+
hot_tub.heater_load_value = default_heater_load_value
|
1222
|
+
hot_tub.heater_load_value_isdefaulted = true
|
1223
|
+
end
|
1224
|
+
if hot_tub.heater_usage_multiplier.nil?
|
1225
|
+
hot_tub.heater_usage_multiplier = 1.0
|
1226
|
+
hot_tub.heater_usage_multiplier_isdefaulted = true
|
1227
|
+
end
|
1228
|
+
if hot_tub.pump_usage_multiplier.nil?
|
1229
|
+
hot_tub.pump_usage_multiplier = 1.0
|
1230
|
+
hot_tub.pump_usage_multiplier_isdefaulted = true
|
1231
|
+
end
|
1232
|
+
if hot_tub.pump_weekday_fractions.nil?
|
1233
|
+
hot_tub.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'
|
1234
|
+
hot_tub.pump_weekday_fractions_isdefaulted = true
|
1235
|
+
end
|
1236
|
+
if hot_tub.pump_weekend_fractions.nil?
|
1237
|
+
hot_tub.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'
|
1238
|
+
hot_tub.pump_weekend_fractions_isdefaulted = true
|
1239
|
+
end
|
1240
|
+
if hot_tub.pump_monthly_multipliers.nil?
|
1241
|
+
hot_tub.pump_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'
|
1242
|
+
hot_tub.pump_monthly_multipliers_isdefaulted = true
|
1243
|
+
end
|
1244
|
+
if hot_tub.heater_weekday_fractions.nil?
|
1245
|
+
hot_tub.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'
|
1246
|
+
hot_tub.heater_weekday_fractions_isdefaulted = true
|
1247
|
+
end
|
1248
|
+
if hot_tub.heater_weekend_fractions.nil?
|
1249
|
+
hot_tub.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'
|
1250
|
+
hot_tub.heater_weekend_fractions_isdefaulted = true
|
1251
|
+
end
|
1252
|
+
if hot_tub.heater_monthly_multipliers.nil?
|
1253
|
+
hot_tub.heater_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'
|
1254
|
+
hot_tub.heater_monthly_multipliers_isdefaulted = true
|
1255
|
+
end
|
1256
|
+
end
|
1257
|
+
end
|
1258
|
+
|
1259
|
+
def self.apply_plug_loads(hpxml, cfa, nbeds)
|
1260
|
+
hpxml.plug_loads.each do |plug_load|
|
1261
|
+
if plug_load.plug_load_type == HPXML::PlugLoadTypeOther
|
1262
|
+
default_annual_kwh, default_sens_frac, default_lat_frac = MiscLoads.get_residual_mels_default_values(cfa)
|
1263
|
+
if plug_load.kWh_per_year.nil?
|
1264
|
+
plug_load.kWh_per_year = default_annual_kwh
|
1265
|
+
plug_load.kWh_per_year_isdefaulted = true
|
1266
|
+
end
|
1267
|
+
if plug_load.frac_sensible.nil?
|
1268
|
+
plug_load.frac_sensible = default_sens_frac
|
1269
|
+
plug_load.frac_sensible_isdefaulted = true
|
1270
|
+
end
|
1271
|
+
if plug_load.frac_latent.nil?
|
1272
|
+
plug_load.frac_latent = default_lat_frac
|
1273
|
+
plug_load.frac_latent_isdefaulted = true
|
1274
|
+
end
|
1275
|
+
if plug_load.weekday_fractions.nil?
|
1276
|
+
plug_load.weekday_fractions = Schedule.PlugLoadsOtherWeekdayFractions
|
1277
|
+
plug_load.weekday_fractions_isdefaulted = true
|
1278
|
+
end
|
1279
|
+
if plug_load.weekend_fractions.nil?
|
1280
|
+
plug_load.weekend_fractions = Schedule.PlugLoadsOtherWeekendFractions
|
1281
|
+
plug_load.weekend_fractions_isdefaulted = true
|
1282
|
+
end
|
1283
|
+
if plug_load.monthly_multipliers.nil?
|
1284
|
+
plug_load.monthly_multipliers = Schedule.PlugLoadsOtherMonthlyMultipliers
|
1285
|
+
plug_load.monthly_multipliers_isdefaulted = true
|
1286
|
+
end
|
1287
|
+
elsif plug_load.plug_load_type == HPXML::PlugLoadTypeTelevision
|
1288
|
+
default_annual_kwh, default_sens_frac, default_lat_frac = MiscLoads.get_televisions_default_values(cfa, nbeds)
|
1289
|
+
if plug_load.kWh_per_year.nil?
|
1290
|
+
plug_load.kWh_per_year = default_annual_kwh
|
1291
|
+
plug_load.kWh_per_year_isdefaulted = true
|
1292
|
+
end
|
1293
|
+
if plug_load.frac_sensible.nil?
|
1294
|
+
plug_load.frac_sensible = default_sens_frac
|
1295
|
+
plug_load.frac_sensible_isdefaulted = true
|
1296
|
+
end
|
1297
|
+
if plug_load.frac_latent.nil?
|
1298
|
+
plug_load.frac_latent = default_lat_frac
|
1299
|
+
plug_load.frac_latent_isdefaulted = true
|
1300
|
+
end
|
1301
|
+
if plug_load.weekday_fractions.nil?
|
1302
|
+
plug_load.weekday_fractions = Schedule.PlugLoadsTVWeekdayFractions
|
1303
|
+
plug_load.weekday_fractions_isdefaulted = true
|
1304
|
+
end
|
1305
|
+
if plug_load.weekend_fractions.nil?
|
1306
|
+
plug_load.weekend_fractions = Schedule.PlugLoadsTVWeekendFractions
|
1307
|
+
plug_load.weekend_fractions_isdefaulted = true
|
1308
|
+
end
|
1309
|
+
if plug_load.monthly_multipliers.nil?
|
1310
|
+
plug_load.monthly_multipliers = Schedule.PlugLoadsTVMonthlyMultipliers
|
1311
|
+
plug_load.monthly_multipliers_isdefaulted = true
|
1312
|
+
end
|
1313
|
+
elsif plug_load.plug_load_type == HPXML::PlugLoadTypeElectricVehicleCharging
|
1314
|
+
default_annual_kwh = MiscLoads.get_electric_vehicle_charging_default_values
|
1315
|
+
if plug_load.kWh_per_year.nil?
|
1316
|
+
plug_load.kWh_per_year = default_annual_kwh
|
1317
|
+
plug_load.kWh_per_year_isdefaulted = true
|
1318
|
+
end
|
1319
|
+
if plug_load.frac_sensible.nil?
|
1320
|
+
plug_load.frac_sensible = 0.0
|
1321
|
+
plug_load.frac_sensible_isdefaulted = true
|
1322
|
+
end
|
1323
|
+
if plug_load.frac_latent.nil?
|
1324
|
+
plug_load.frac_latent = 0.0
|
1325
|
+
plug_load.frac_latent_isdefaulted = true
|
1326
|
+
end
|
1327
|
+
if plug_load.weekday_fractions.nil?
|
1328
|
+
plug_load.weekday_fractions = Schedule.PlugLoadsVehicleWeekdayFractions
|
1329
|
+
plug_load.weekday_fractions_isdefaulted = true
|
1330
|
+
end
|
1331
|
+
if plug_load.weekend_fractions.nil?
|
1332
|
+
plug_load.weekend_fractions = Schedule.PlugLoadsVehicleWeekendFractions
|
1333
|
+
plug_load.weekend_fractions_isdefaulted = true
|
1334
|
+
end
|
1335
|
+
if plug_load.monthly_multipliers.nil?
|
1336
|
+
plug_load.monthly_multipliers = Schedule.PlugLoadsVehicleMonthlyMultipliers
|
1337
|
+
plug_load.monthly_multipliers_isdefaulted = true
|
1338
|
+
end
|
1339
|
+
elsif plug_load.plug_load_type == HPXML::PlugLoadTypeWellPump
|
1340
|
+
default_annual_kwh = MiscLoads.get_well_pump_default_values(cfa, nbeds)
|
1341
|
+
if plug_load.kWh_per_year.nil?
|
1342
|
+
plug_load.kWh_per_year = default_annual_kwh
|
1343
|
+
plug_load.kWh_per_year_isdefaulted = true
|
1344
|
+
end
|
1345
|
+
if plug_load.frac_sensible.nil?
|
1346
|
+
plug_load.frac_sensible = 0.0
|
1347
|
+
plug_load.frac_sensible_isdefaulted = true
|
1348
|
+
end
|
1349
|
+
if plug_load.frac_latent.nil?
|
1350
|
+
plug_load.frac_latent = 0.0
|
1351
|
+
plug_load.frac_latent_isdefaulted = true
|
1352
|
+
end
|
1353
|
+
if plug_load.weekday_fractions.nil?
|
1354
|
+
plug_load.weekday_fractions = Schedule.PlugLoadsWellPumpWeekdayFractions
|
1355
|
+
plug_load.weekday_fractions_isdefaulted = true
|
1356
|
+
end
|
1357
|
+
if plug_load.weekend_fractions.nil?
|
1358
|
+
plug_load.weekend_fractions = Schedule.PlugLoadsWellPumpWeekendFractions
|
1359
|
+
plug_load.weekend_fractions_isdefaulted = true
|
1360
|
+
end
|
1361
|
+
if plug_load.monthly_multipliers.nil?
|
1362
|
+
plug_load.monthly_multipliers = Schedule.PlugLoadsWellPumpMonthlyMultipliers
|
1363
|
+
plug_load.monthly_multipliers_isdefaulted = true
|
1364
|
+
end
|
1365
|
+
end
|
1366
|
+
if plug_load.usage_multiplier.nil?
|
1367
|
+
plug_load.usage_multiplier = 1.0
|
1368
|
+
plug_load.usage_multiplier_isdefaulted = true
|
1369
|
+
end
|
1370
|
+
end
|
1371
|
+
end
|
1372
|
+
|
1373
|
+
def self.apply_fuel_loads(hpxml, cfa, nbeds)
|
1374
|
+
hpxml.fuel_loads.each do |fuel_load|
|
1375
|
+
if fuel_load.fuel_load_type == HPXML::FuelLoadTypeGrill
|
1376
|
+
if fuel_load.therm_per_year.nil?
|
1377
|
+
fuel_load.therm_per_year = MiscLoads.get_gas_grill_default_values(cfa, nbeds)
|
1378
|
+
fuel_load.therm_per_year_isdefaulted = true
|
1379
|
+
end
|
1380
|
+
if fuel_load.frac_sensible.nil?
|
1381
|
+
fuel_load.frac_sensible = 0.0
|
1382
|
+
fuel_load.frac_sensible_isdefaulted = true
|
1383
|
+
end
|
1384
|
+
if fuel_load.frac_latent.nil?
|
1385
|
+
fuel_load.frac_latent = 0.0
|
1386
|
+
fuel_load.frac_latent_isdefaulted = true
|
1387
|
+
end
|
1388
|
+
if fuel_load.weekday_fractions.nil?
|
1389
|
+
fuel_load.weekday_fractions = Schedule.FuelLoadsGrillWeekdayFractions
|
1390
|
+
fuel_load.weekday_fractions_isdefaulted = true
|
1391
|
+
end
|
1392
|
+
if fuel_load.weekend_fractions.nil?
|
1393
|
+
fuel_load.weekend_fractions = Schedule.FuelLoadsGrillWeekendFractions
|
1394
|
+
fuel_load.weekend_fractions_isdefaulted = true
|
1395
|
+
end
|
1396
|
+
if fuel_load.monthly_multipliers.nil?
|
1397
|
+
fuel_load.monthly_multipliers = Schedule.FuelLoadsGrillMonthlyMultipliers
|
1398
|
+
fuel_load.monthly_multipliers_isdefaulted = true
|
1399
|
+
end
|
1400
|
+
elsif fuel_load.fuel_load_type == HPXML::FuelLoadTypeLighting
|
1401
|
+
if fuel_load.therm_per_year.nil?
|
1402
|
+
fuel_load.therm_per_year = MiscLoads.get_gas_lighting_default_values(cfa, nbeds)
|
1403
|
+
fuel_load.therm_per_year_isdefaulted = true
|
1404
|
+
end
|
1405
|
+
if fuel_load.frac_sensible.nil?
|
1406
|
+
fuel_load.frac_sensible = 0.0
|
1407
|
+
fuel_load.frac_sensible_isdefaulted = true
|
1408
|
+
end
|
1409
|
+
if fuel_load.frac_latent.nil?
|
1410
|
+
fuel_load.frac_latent = 0.0
|
1411
|
+
fuel_load.frac_latent_isdefaulted = true
|
1412
|
+
end
|
1413
|
+
if fuel_load.weekday_fractions.nil?
|
1414
|
+
fuel_load.weekday_fractions = Schedule.FuelLoadsLightingWeekdayFractions
|
1415
|
+
fuel_load.weekday_fractions_isdefaulted = true
|
1416
|
+
end
|
1417
|
+
if fuel_load.weekend_fractions.nil?
|
1418
|
+
fuel_load.weekend_fractions = Schedule.FuelLoadsLightingWeekendFractions
|
1419
|
+
fuel_load.weekend_fractions_isdefaulted = true
|
1420
|
+
end
|
1421
|
+
if fuel_load.monthly_multipliers.nil?
|
1422
|
+
fuel_load.monthly_multipliers = Schedule.FuelLoadsLightingMonthlyMultipliers
|
1423
|
+
fuel_load.monthly_multipliers_isdefaulted = true
|
1424
|
+
end
|
1425
|
+
elsif fuel_load.fuel_load_type == HPXML::FuelLoadTypeFireplace
|
1426
|
+
if fuel_load.therm_per_year.nil?
|
1427
|
+
fuel_load.therm_per_year = MiscLoads.get_gas_fireplace_default_values(cfa, nbeds)
|
1428
|
+
fuel_load.therm_per_year_isdefaulted = true
|
1429
|
+
end
|
1430
|
+
if fuel_load.frac_sensible.nil?
|
1431
|
+
fuel_load.frac_sensible = 0.5
|
1432
|
+
fuel_load.frac_sensible_isdefaulted = true
|
1433
|
+
end
|
1434
|
+
if fuel_load.frac_latent.nil?
|
1435
|
+
fuel_load.frac_latent = 0.1
|
1436
|
+
fuel_load.frac_latent_isdefaulted = true
|
1437
|
+
end
|
1438
|
+
if fuel_load.weekday_fractions.nil?
|
1439
|
+
fuel_load.weekday_fractions = Schedule.FuelLoadsFireplaceWeekdayFractions
|
1440
|
+
fuel_load.weekday_fractions_isdefaulted = true
|
1441
|
+
end
|
1442
|
+
if fuel_load.weekend_fractions.nil?
|
1443
|
+
fuel_load.weekend_fractions = Schedule.FuelLoadsFireplaceWeekendFractions
|
1444
|
+
fuel_load.weekend_fractions_isdefaulted = true
|
1445
|
+
end
|
1446
|
+
if fuel_load.monthly_multipliers.nil?
|
1447
|
+
fuel_load.monthly_multipliers = Schedule.FuelLoadsFireplaceMonthlyMultipliers
|
1448
|
+
fuel_load.monthly_multipliers_isdefaulted = true
|
1449
|
+
end
|
1450
|
+
end
|
1451
|
+
if fuel_load.usage_multiplier.nil?
|
1452
|
+
fuel_load.usage_multiplier = 1.0
|
1453
|
+
fuel_load.usage_multiplier_isdefaulted = true
|
1044
1454
|
end
|
1045
1455
|
end
|
1046
1456
|
end
|