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
@@ -1148,7 +1148,6 @@
|
|
1148
1148
|
<xs:documentation>NOTE: "other housing unit above" and "other housing unit below" will be deprecated in v4.0. Use "other housing unit" instead.</xs:documentation>
|
1149
1149
|
</xs:annotation>
|
1150
1150
|
<xs:restriction base="xs:string">
|
1151
|
-
<xs:enumeration value="adiabatic"/>
|
1152
1151
|
<xs:enumeration value="attic"/>
|
1153
1152
|
<xs:enumeration value="attic - conditioned"/>
|
1154
1153
|
<xs:enumeration value="attic - unconditioned"/>
|
@@ -4667,7 +4666,6 @@
|
|
4667
4666
|
<xs:simpleContent>
|
4668
4667
|
<xs:extension base="PVSystemMaxPowerOutput_simple">
|
4669
4668
|
<xs:attribute name="dataSource" type="DataSource"/>
|
4670
|
-
<xs:attribute name="scope" type="DataScope"/>
|
4671
4669
|
</xs:extension>
|
4672
4670
|
</xs:simpleContent>
|
4673
4671
|
</xs:complexType>
|
@@ -4678,7 +4676,6 @@
|
|
4678
4676
|
<xs:simpleContent>
|
4679
4677
|
<xs:extension base="PVSystemCollectorArea_simple">
|
4680
4678
|
<xs:attribute name="dataSource" type="DataSource"/>
|
4681
|
-
<xs:attribute name="scope" type="DataScope"/>
|
4682
4679
|
</xs:extension>
|
4683
4680
|
</xs:simpleContent>
|
4684
4681
|
</xs:complexType>
|
@@ -4689,14 +4686,7 @@
|
|
4689
4686
|
<xs:simpleContent>
|
4690
4687
|
<xs:extension base="PVSystemNumberOfPanels_simple">
|
4691
4688
|
<xs:attribute name="dataSource" type="DataSource"/>
|
4692
|
-
<xs:attribute name="scope" type="DataScope"/>
|
4693
4689
|
</xs:extension>
|
4694
4690
|
</xs:simpleContent>
|
4695
4691
|
</xs:complexType>
|
4696
|
-
<xs:simpleType name="DataScope">
|
4697
|
-
<xs:restriction base="xs:string">
|
4698
|
-
<xs:enumeration value="single unit"/>
|
4699
|
-
<xs:enumeration value="multiple units"/>
|
4700
|
-
</xs:restriction>
|
4701
|
-
</xs:simpleType>
|
4702
4692
|
</xs:schema>
|
@@ -0,0 +1,434 @@
|
|
1
|
+
<?xml version='1.0' encoding='UTF-8'?>
|
2
|
+
<sch:schema xmlns:sch='http://purl.oclc.org/dsdl/schematron'>
|
3
|
+
<sch:title>HPXML Schematron Validator: HPXML.xsd</sch:title>
|
4
|
+
<sch:ns uri='http://hpxmlonline.com/2019/10' prefix='h'/>
|
5
|
+
<sch:pattern>
|
6
|
+
<sch:rule context='/h:HPXML/h:XMLTransactionHeaderInformation'>
|
7
|
+
<sch:assert role='ERROR' test='h:Transaction[text()="create" or text()="update"] or not(h:Transaction)'>Expected Transaction to be 'create' or 'update'</sch:assert>
|
8
|
+
</sch:rule>
|
9
|
+
<sch:rule context='/h:HPXML/h:Building/h:ProjectStatus'>
|
10
|
+
<sch:assert role='ERROR' test='h:EventType[text()="audit" or text()="proposed workscope" or text()="approved workscope" or text()="construction-period testing/daily test out" or text()="job completion testing/final inspection" or text()="quality assurance/monitoring" or text()="preconstruction"] or not(h:EventType)'>Expected EventType to be 'audit' or 'proposed workscope' or 'approved workscope' or 'construction-period testing/daily test out' or 'job completion testing/final inspection' or 'quality assurance/monitoring' or 'preconstruction'</sch:assert>
|
11
|
+
</sch:rule>
|
12
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:BuildingSummary/h:Site'>
|
13
|
+
<sch:assert role='ERROR' test='h:SiteType[text()="rural" or text()="suburban" or text()="urban"] or not(h:SiteType)'>Expected SiteType to be 'rural' or 'suburban' or 'urban'</sch:assert>
|
14
|
+
</sch:rule>
|
15
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:BuildingSummary/h:Site/h:FuelTypesAvailable'>
|
16
|
+
<sch:assert role='ERROR' test='h:Fuel[text()="electricity" or text()="renewable electricity" or text()="natural gas" or text()="renewable natural gas" or text()="fuel oil" or text()="fuel oil 1" or text()="fuel oil 2" or text()="fuel oil 4" or text()="fuel oil 5/6" or text()="district steam" or text()="district hot water" or text()="district chilled water" or text()="solar hot water" or text()="propane" or text()="kerosene" or text()="diesel" or text()="coal" or text()="anthracite coal" or text()="bituminous coal" or text()="coke" or text()="wood" or text()="wood pellets" or text()="combination" or text()="other"] or not(h:Fuel)'>Expected Fuel to be 'electricity' or 'renewable electricity' or 'natural gas' or 'renewable natural gas' or 'fuel oil' or 'fuel oil 1' or 'fuel oil 2' or 'fuel oil 4' or 'fuel oil 5/6' or 'district steam' or 'district hot water' or 'district chilled water' or 'solar hot water' or 'propane' or 'kerosene' or 'diesel' or 'coal' or 'anthracite coal' or 'bituminous coal' or 'coke' or 'wood' or 'wood pellets' or 'combination' or 'other'</sch:assert>
|
17
|
+
</sch:rule>
|
18
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:BuildingSummary/h:BuildingOccupancy'>
|
19
|
+
<sch:assert role='ERROR' test='number(h:NumberofResidents) >= 0 or not(h:NumberofResidents)'>Expected NumberofResidents to be greater than or equal to 0</sch:assert>
|
20
|
+
</sch:rule>
|
21
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:BuildingSummary/h:BuildingConstruction'>
|
22
|
+
<sch:assert role='ERROR' test='h:ResidentialFacilityType[text()="single-family detached" or text()="single-family attached" or text()="manufactured home" or text()="2-4 unit building" or text()="5+ unit building" or text()="multi-family - uncategorized" or text()="multi-family - town homes" or text()="multi-family - condos" or text()="apartment unit" or text()="studio unit" or text()="other" or text()="unknown"] or not(h:ResidentialFacilityType)'>Expected ResidentialFacilityType to be 'single-family detached' or 'single-family attached' or 'manufactured home' or '2-4 unit building' or '5+ unit building' or 'multi-family - uncategorized' or 'multi-family - town homes' or 'multi-family - condos' or 'apartment unit' or 'studio unit' or 'other' or 'unknown'</sch:assert>
|
23
|
+
<sch:assert role='ERROR' test='number(h:NumberofConditionedFloors) >= 0 or not(h:NumberofConditionedFloors)'>Expected NumberofConditionedFloors to be greater than or equal to 0</sch:assert>
|
24
|
+
<sch:assert role='ERROR' test='number(h:NumberofConditionedFloorsAboveGrade) >= 0 or not(h:NumberofConditionedFloorsAboveGrade)'>Expected NumberofConditionedFloorsAboveGrade to be greater than or equal to 0</sch:assert>
|
25
|
+
<sch:assert role='ERROR' test='number(h:NumberofBedrooms) >= 0 or not(h:NumberofBedrooms)'>Expected NumberofBedrooms to be greater than or equal to 0</sch:assert>
|
26
|
+
<sch:assert role='ERROR' test='number(h:NumberofBathrooms) > 0 or not(h:NumberofBathrooms)'>Expected NumberofBathrooms to be greater than 0</sch:assert>
|
27
|
+
<sch:assert role='ERROR' test='number(h:ConditionedFloorArea) > 0 or not(h:ConditionedFloorArea)'>Expected ConditionedFloorArea to be greater than 0</sch:assert>
|
28
|
+
<sch:assert role='ERROR' test='number(h:ConditionedBuildingVolume) > 0 or not(h:ConditionedBuildingVolume)'>Expected ConditionedBuildingVolume to be greater than 0</sch:assert>
|
29
|
+
</sch:rule>
|
30
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:ClimateandRiskZones/h:ClimateZoneIECC'>
|
31
|
+
<sch:assert role='ERROR' test='h:Year[text()="2012" or text()="2009" or text()="2006" or text()="2003"] or not(h:Year)'>Expected Year to be '2012' or '2009' or '2006' or '2003'</sch:assert>
|
32
|
+
<sch:assert role='ERROR' test='h:ClimateZone[text()="1A" or text()="1B" or text()="1C" or text()="2A" or text()="2B" or text()="2C" or text()="3A" or text()="3B" or text()="3C" or text()="4A" or text()="4B" or text()="4C" or text()="5A" or text()="5B" or text()="5C" or text()="6A" or text()="6B" or text()="6C" or text()="7" or text()="8"] or not(h:ClimateZone)'>Expected ClimateZone to be '1A' or '1B' or '1C' or '2A' or '2B' or '2C' or '3A' or '3B' or '3C' or '4A' or '4B' or '4C' or '5A' or '5B' or '5C' or '6A' or '6B' or '6C' or '7' or '8'</sch:assert>
|
33
|
+
</sch:rule>
|
34
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:AirInfiltration/h:AirInfiltrationMeasurement'>
|
35
|
+
<sch:assert role='ERROR' test='number(h:HousePressure) > 0 or not(h:HousePressure)'>Expected HousePressure to be greater than 0</sch:assert>
|
36
|
+
</sch:rule>
|
37
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:AirInfiltration/h:AirInfiltrationMeasurement/h:BuildingAirLeakage'>
|
38
|
+
<sch:assert role='ERROR' test='h:UnitofMeasure[text()="CFM" or text()="CFMnatural" or text()="ACH" or text()="ACHnatural"] or not(h:UnitofMeasure)'>Expected UnitofMeasure to be 'CFM' or 'CFMnatural' or 'ACH' or 'ACHnatural'</sch:assert>
|
39
|
+
<sch:assert role='ERROR' test='number(h:AirLeakage) > 0 or not(h:AirLeakage)'>Expected AirLeakage to be greater than 0</sch:assert>
|
40
|
+
</sch:rule>
|
41
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Attics/h:Attic/h:VentilationRate'>
|
42
|
+
<sch:assert role='ERROR' test='h:UnitofMeasure[text()="SLA" or text()="ACHnatural" or text()="CFM per sq.ft."] or not(h:UnitofMeasure)'>Expected UnitofMeasure to be 'SLA' or 'ACHnatural' or 'CFM per sq.ft.'</sch:assert>
|
43
|
+
<sch:assert role='ERROR' test='number(h:Value) > 0 or not(h:Value)'>Expected Value to be greater than 0</sch:assert>
|
44
|
+
</sch:rule>
|
45
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Foundations/h:Foundation/h:VentilationRate'>
|
46
|
+
<sch:assert role='ERROR' test='h:UnitofMeasure[text()="SLA" or text()="ACHnatural" or text()="CFM per sq.ft."] or not(h:UnitofMeasure)'>Expected UnitofMeasure to be 'SLA' or 'ACHnatural' or 'CFM per sq.ft.'</sch:assert>
|
47
|
+
<sch:assert role='ERROR' test='number(h:Value) > 0 or not(h:Value)'>Expected Value to be greater than 0</sch:assert>
|
48
|
+
</sch:rule>
|
49
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Roofs/h:Roof'>
|
50
|
+
<sch:assert role='ERROR' test='h:InteriorAdjacentTo[text()="attic" or text()="attic - conditioned" or text()="attic - unconditioned" or text()="attic - unvented" or text()="attic - vented" or text()="basement" or text()="basement - conditioned" or text()="basement - unconditioned" or text()="crawlspace" or text()="crawlspace - conditioned" or text()="crawlspace - unconditioned" or text()="crawlspace - unvented" or text()="crawlspace - vented" or text()="garage" or text()="garage - conditioned" or text()="garage - unconditioned" or text()="ground" or text()="living space" or text()="other" or text()="other heated space" or text()="other housing unit" or text()="other housing unit above" or text()="other housing unit below" or text()="other multifamily buffer space" or text()="other non-freezing space" or text()="outside" or text()="unconditioned space"] or not(h:InteriorAdjacentTo)'>Expected InteriorAdjacentTo to be 'attic' or 'attic - conditioned' or 'attic - unconditioned' or 'attic - unvented' or 'attic - vented' or 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'crawlspace' or 'crawlspace - conditioned' or 'crawlspace - unconditioned' or 'crawlspace - unvented' or 'crawlspace - vented' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'ground' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other housing unit above' or 'other housing unit below' or 'other multifamily buffer space' or 'other non-freezing space' or 'outside' or 'unconditioned space'</sch:assert>
|
51
|
+
<sch:assert role='ERROR' test='number(h:Area) > 0 or not(h:Area)'>Expected Area to be greater than 0</sch:assert>
|
52
|
+
<sch:assert role='ERROR' test='number(h:Azimuth) >= 0 or not(h:Azimuth)'>Expected Azimuth to be greater than or equal to 0</sch:assert>
|
53
|
+
<sch:assert role='ERROR' test='number(h:Azimuth) < 360 or not(h:Azimuth)'>Expected Azimuth to be less than 360</sch:assert>
|
54
|
+
<sch:assert role='ERROR' test='h:RoofType[text()="shingles" or text()="slate or tile shingles" or text()="wood shingles or shakes" or text()="asphalt or fiberglass shingles" or text()="metal surfacing" or text()="expanded polystyrene sheathing" or text()="plastic/rubber/synthetic sheeting" or text()="concrete" or text()="cool roof" or text()="green roof" or text()="no one major type" or text()="other"] or not(h:RoofType)'>Expected RoofType to be 'shingles' or 'slate or tile shingles' or 'wood shingles or shakes' or 'asphalt or fiberglass shingles' or 'metal surfacing' or 'expanded polystyrene sheathing' or 'plastic/rubber/synthetic sheeting' or 'concrete' or 'cool roof' or 'green roof' or 'no one major type' or 'other'</sch:assert>
|
55
|
+
<sch:assert role='ERROR' test='h:RoofColor[text()="light" or text()="medium" or text()="medium dark" or text()="dark" or text()="reflective"] or not(h:RoofColor)'>Expected RoofColor to be 'light' or 'medium' or 'medium dark' or 'dark' or 'reflective'</sch:assert>
|
56
|
+
<sch:assert role='ERROR' test='number(h:SolarAbsorptance) >= 0 or not(h:SolarAbsorptance)'>Expected SolarAbsorptance to be greater than or equal to 0</sch:assert>
|
57
|
+
<sch:assert role='ERROR' test='number(h:SolarAbsorptance) <= 1 or not(h:SolarAbsorptance)'>Expected SolarAbsorptance to be less than or equal to 1</sch:assert>
|
58
|
+
<sch:assert role='ERROR' test='number(h:Emittance) >= 0 or not(h:Emittance)'>Expected Emittance to be greater than or equal to 0</sch:assert>
|
59
|
+
<sch:assert role='ERROR' test='number(h:Emittance) <= 1 or not(h:Emittance)'>Expected Emittance to be less than or equal to 1</sch:assert>
|
60
|
+
<sch:assert role='ERROR' test='number(h:Pitch) >= 0 or not(h:Pitch)'>Expected Pitch to be greater than or equal to 0</sch:assert>
|
61
|
+
<sch:assert role='ERROR' test='number(h:RadiantBarrierGrade) >= 1 or not(h:RadiantBarrierGrade)'>Expected RadiantBarrierGrade to be greater than or equal to 1</sch:assert>
|
62
|
+
<sch:assert role='ERROR' test='number(h:RadiantBarrierGrade) <= 3 or not(h:RadiantBarrierGrade)'>Expected RadiantBarrierGrade to be less than or equal to 3</sch:assert>
|
63
|
+
</sch:rule>
|
64
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Roofs/h:Roof/h:Insulation'>
|
65
|
+
<sch:assert role='ERROR' test='number(h:AssemblyEffectiveRValue) >= 0 or not(h:AssemblyEffectiveRValue)'>Expected AssemblyEffectiveRValue to be greater than or equal to 0</sch:assert>
|
66
|
+
</sch:rule>
|
67
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:RimJoists/h:RimJoist'>
|
68
|
+
<sch:assert role='ERROR' test='h:ExteriorAdjacentTo[text()="attic" or text()="attic - conditioned" or text()="attic - unconditioned" or text()="attic - unvented" or text()="attic - vented" or text()="basement" or text()="basement - conditioned" or text()="basement - unconditioned" or text()="crawlspace" or text()="crawlspace - conditioned" or text()="crawlspace - unconditioned" or text()="crawlspace - unvented" or text()="crawlspace - vented" or text()="garage" or text()="garage - conditioned" or text()="garage - unconditioned" or text()="ground" or text()="living space" or text()="other" or text()="other heated space" or text()="other housing unit" or text()="other housing unit above" or text()="other housing unit below" or text()="other multifamily buffer space" or text()="other non-freezing space" or text()="outside" or text()="unconditioned space"] or not(h:ExteriorAdjacentTo)'>Expected ExteriorAdjacentTo to be 'attic' or 'attic - conditioned' or 'attic - unconditioned' or 'attic - unvented' or 'attic - vented' or 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'crawlspace' or 'crawlspace - conditioned' or 'crawlspace - unconditioned' or 'crawlspace - unvented' or 'crawlspace - vented' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'ground' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other housing unit above' or 'other housing unit below' or 'other multifamily buffer space' or 'other non-freezing space' or 'outside' or 'unconditioned space'</sch:assert>
|
69
|
+
<sch:assert role='ERROR' test='h:InteriorAdjacentTo[text()="attic" or text()="attic - conditioned" or text()="attic - unconditioned" or text()="attic - unvented" or text()="attic - vented" or text()="basement" or text()="basement - conditioned" or text()="basement - unconditioned" or text()="crawlspace" or text()="crawlspace - conditioned" or text()="crawlspace - unconditioned" or text()="crawlspace - unvented" or text()="crawlspace - vented" or text()="garage" or text()="garage - conditioned" or text()="garage - unconditioned" or text()="ground" or text()="living space" or text()="other" or text()="other heated space" or text()="other housing unit" or text()="other housing unit above" or text()="other housing unit below" or text()="other multifamily buffer space" or text()="other non-freezing space" or text()="outside" or text()="unconditioned space"] or not(h:InteriorAdjacentTo)'>Expected InteriorAdjacentTo to be 'attic' or 'attic - conditioned' or 'attic - unconditioned' or 'attic - unvented' or 'attic - vented' or 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'crawlspace' or 'crawlspace - conditioned' or 'crawlspace - unconditioned' or 'crawlspace - unvented' or 'crawlspace - vented' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'ground' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other housing unit above' or 'other housing unit below' or 'other multifamily buffer space' or 'other non-freezing space' or 'outside' or 'unconditioned space'</sch:assert>
|
70
|
+
<sch:assert role='ERROR' test='number(h:Area) > 0 or not(h:Area)'>Expected Area to be greater than 0</sch:assert>
|
71
|
+
<sch:assert role='ERROR' test='number(h:Azimuth) >= 0 or not(h:Azimuth)'>Expected Azimuth to be greater than or equal to 0</sch:assert>
|
72
|
+
<sch:assert role='ERROR' test='number(h:Azimuth) < 360 or not(h:Azimuth)'>Expected Azimuth to be less than 360</sch:assert>
|
73
|
+
<sch:assert role='ERROR' test='h:Siding[text()="wood siding" or text()="stucco" or text()="synthetic stucco" or text()="vinyl siding" or text()="aluminum siding" or text()="brick veneer" or text()="asbestos siding" or text()="fiber cement siding" or text()="composite shingle siding" or text()="masonite siding" or text()="other"] or not(h:Siding)'>Expected Siding to be 'wood siding' or 'stucco' or 'synthetic stucco' or 'vinyl siding' or 'aluminum siding' or 'brick veneer' or 'asbestos siding' or 'fiber cement siding' or 'composite shingle siding' or 'masonite siding' or 'other'</sch:assert>
|
74
|
+
<sch:assert role='ERROR' test='h:Color[text()="light" or text()="medium" or text()="medium dark" or text()="dark" or text()="reflective"] or not(h:Color)'>Expected Color to be 'light' or 'medium' or 'medium dark' or 'dark' or 'reflective'</sch:assert>
|
75
|
+
<sch:assert role='ERROR' test='number(h:SolarAbsorptance) >= 0 or not(h:SolarAbsorptance)'>Expected SolarAbsorptance to be greater than or equal to 0</sch:assert>
|
76
|
+
<sch:assert role='ERROR' test='number(h:SolarAbsorptance) <= 1 or not(h:SolarAbsorptance)'>Expected SolarAbsorptance to be less than or equal to 1</sch:assert>
|
77
|
+
<sch:assert role='ERROR' test='number(h:Emittance) >= 0 or not(h:Emittance)'>Expected Emittance to be greater than or equal to 0</sch:assert>
|
78
|
+
<sch:assert role='ERROR' test='number(h:Emittance) <= 1 or not(h:Emittance)'>Expected Emittance to be less than or equal to 1</sch:assert>
|
79
|
+
</sch:rule>
|
80
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:RimJoists/h:RimJoist/h:Insulation'>
|
81
|
+
<sch:assert role='ERROR' test='number(h:AssemblyEffectiveRValue) >= 0 or not(h:AssemblyEffectiveRValue)'>Expected AssemblyEffectiveRValue to be greater than or equal to 0</sch:assert>
|
82
|
+
</sch:rule>
|
83
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Walls/h:Wall'>
|
84
|
+
<sch:assert role='ERROR' test='h:ExteriorAdjacentTo[text()="attic" or text()="attic - conditioned" or text()="attic - unconditioned" or text()="attic - unvented" or text()="attic - vented" or text()="basement" or text()="basement - conditioned" or text()="basement - unconditioned" or text()="crawlspace" or text()="crawlspace - conditioned" or text()="crawlspace - unconditioned" or text()="crawlspace - unvented" or text()="crawlspace - vented" or text()="garage" or text()="garage - conditioned" or text()="garage - unconditioned" or text()="ground" or text()="living space" or text()="other" or text()="other heated space" or text()="other housing unit" or text()="other housing unit above" or text()="other housing unit below" or text()="other multifamily buffer space" or text()="other non-freezing space" or text()="outside" or text()="unconditioned space"] or not(h:ExteriorAdjacentTo)'>Expected ExteriorAdjacentTo to be 'attic' or 'attic - conditioned' or 'attic - unconditioned' or 'attic - unvented' or 'attic - vented' or 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'crawlspace' or 'crawlspace - conditioned' or 'crawlspace - unconditioned' or 'crawlspace - unvented' or 'crawlspace - vented' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'ground' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other housing unit above' or 'other housing unit below' or 'other multifamily buffer space' or 'other non-freezing space' or 'outside' or 'unconditioned space'</sch:assert>
|
85
|
+
<sch:assert role='ERROR' test='h:InteriorAdjacentTo[text()="attic" or text()="attic - conditioned" or text()="attic - unconditioned" or text()="attic - unvented" or text()="attic - vented" or text()="basement" or text()="basement - conditioned" or text()="basement - unconditioned" or text()="crawlspace" or text()="crawlspace - conditioned" or text()="crawlspace - unconditioned" or text()="crawlspace - unvented" or text()="crawlspace - vented" or text()="garage" or text()="garage - conditioned" or text()="garage - unconditioned" or text()="ground" or text()="living space" or text()="other" or text()="other heated space" or text()="other housing unit" or text()="other housing unit above" or text()="other housing unit below" or text()="other multifamily buffer space" or text()="other non-freezing space" or text()="outside" or text()="unconditioned space"] or not(h:InteriorAdjacentTo)'>Expected InteriorAdjacentTo to be 'attic' or 'attic - conditioned' or 'attic - unconditioned' or 'attic - unvented' or 'attic - vented' or 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'crawlspace' or 'crawlspace - conditioned' or 'crawlspace - unconditioned' or 'crawlspace - unvented' or 'crawlspace - vented' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'ground' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other housing unit above' or 'other housing unit below' or 'other multifamily buffer space' or 'other non-freezing space' or 'outside' or 'unconditioned space'</sch:assert>
|
86
|
+
<sch:assert role='ERROR' test='number(h:Area) > 0 or not(h:Area)'>Expected Area to be greater than 0</sch:assert>
|
87
|
+
<sch:assert role='ERROR' test='number(h:Azimuth) >= 0 or not(h:Azimuth)'>Expected Azimuth to be greater than or equal to 0</sch:assert>
|
88
|
+
<sch:assert role='ERROR' test='number(h:Azimuth) < 360 or not(h:Azimuth)'>Expected Azimuth to be less than 360</sch:assert>
|
89
|
+
<sch:assert role='ERROR' test='h:Siding[text()="wood siding" or text()="stucco" or text()="synthetic stucco" or text()="vinyl siding" or text()="aluminum siding" or text()="brick veneer" or text()="asbestos siding" or text()="fiber cement siding" or text()="composite shingle siding" or text()="masonite siding" or text()="other"] or not(h:Siding)'>Expected Siding to be 'wood siding' or 'stucco' or 'synthetic stucco' or 'vinyl siding' or 'aluminum siding' or 'brick veneer' or 'asbestos siding' or 'fiber cement siding' or 'composite shingle siding' or 'masonite siding' or 'other'</sch:assert>
|
90
|
+
<sch:assert role='ERROR' test='h:Color[text()="light" or text()="medium" or text()="medium dark" or text()="dark" or text()="reflective"] or not(h:Color)'>Expected Color to be 'light' or 'medium' or 'medium dark' or 'dark' or 'reflective'</sch:assert>
|
91
|
+
<sch:assert role='ERROR' test='number(h:SolarAbsorptance) >= 0 or not(h:SolarAbsorptance)'>Expected SolarAbsorptance to be greater than or equal to 0</sch:assert>
|
92
|
+
<sch:assert role='ERROR' test='number(h:SolarAbsorptance) <= 1 or not(h:SolarAbsorptance)'>Expected SolarAbsorptance to be less than or equal to 1</sch:assert>
|
93
|
+
<sch:assert role='ERROR' test='number(h:Emittance) >= 0 or not(h:Emittance)'>Expected Emittance to be greater than or equal to 0</sch:assert>
|
94
|
+
<sch:assert role='ERROR' test='number(h:Emittance) <= 1 or not(h:Emittance)'>Expected Emittance to be less than or equal to 1</sch:assert>
|
95
|
+
</sch:rule>
|
96
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Walls/h:Wall/h:Insulation'>
|
97
|
+
<sch:assert role='ERROR' test='number(h:AssemblyEffectiveRValue) >= 0 or not(h:AssemblyEffectiveRValue)'>Expected AssemblyEffectiveRValue to be greater than or equal to 0</sch:assert>
|
98
|
+
</sch:rule>
|
99
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:FoundationWalls/h:FoundationWall'>
|
100
|
+
<sch:assert role='ERROR' test='h:ExteriorAdjacentTo[text()="attic" or text()="attic - conditioned" or text()="attic - unconditioned" or text()="attic - unvented" or text()="attic - vented" or text()="basement" or text()="basement - conditioned" or text()="basement - unconditioned" or text()="crawlspace" or text()="crawlspace - conditioned" or text()="crawlspace - unconditioned" or text()="crawlspace - unvented" or text()="crawlspace - vented" or text()="garage" or text()="garage - conditioned" or text()="garage - unconditioned" or text()="ground" or text()="living space" or text()="other" or text()="other heated space" or text()="other housing unit" or text()="other housing unit above" or text()="other housing unit below" or text()="other multifamily buffer space" or text()="other non-freezing space" or text()="outside" or text()="unconditioned space"] or not(h:ExteriorAdjacentTo)'>Expected ExteriorAdjacentTo to be 'attic' or 'attic - conditioned' or 'attic - unconditioned' or 'attic - unvented' or 'attic - vented' or 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'crawlspace' or 'crawlspace - conditioned' or 'crawlspace - unconditioned' or 'crawlspace - unvented' or 'crawlspace - vented' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'ground' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other housing unit above' or 'other housing unit below' or 'other multifamily buffer space' or 'other non-freezing space' or 'outside' or 'unconditioned space'</sch:assert>
|
101
|
+
<sch:assert role='ERROR' test='h:InteriorAdjacentTo[text()="attic" or text()="attic - conditioned" or text()="attic - unconditioned" or text()="attic - unvented" or text()="attic - vented" or text()="basement" or text()="basement - conditioned" or text()="basement - unconditioned" or text()="crawlspace" or text()="crawlspace - conditioned" or text()="crawlspace - unconditioned" or text()="crawlspace - unvented" or text()="crawlspace - vented" or text()="garage" or text()="garage - conditioned" or text()="garage - unconditioned" or text()="ground" or text()="living space" or text()="other" or text()="other heated space" or text()="other housing unit" or text()="other housing unit above" or text()="other housing unit below" or text()="other multifamily buffer space" or text()="other non-freezing space" or text()="outside" or text()="unconditioned space"] or not(h:InteriorAdjacentTo)'>Expected InteriorAdjacentTo to be 'attic' or 'attic - conditioned' or 'attic - unconditioned' or 'attic - unvented' or 'attic - vented' or 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'crawlspace' or 'crawlspace - conditioned' or 'crawlspace - unconditioned' or 'crawlspace - unvented' or 'crawlspace - vented' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'ground' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other housing unit above' or 'other housing unit below' or 'other multifamily buffer space' or 'other non-freezing space' or 'outside' or 'unconditioned space'</sch:assert>
|
102
|
+
<sch:assert role='ERROR' test='number(h:Height) >= 0 or not(h:Height)'>Expected Height to be greater than or equal to 0</sch:assert>
|
103
|
+
<sch:assert role='ERROR' test='number(h:Area) > 0 or not(h:Area)'>Expected Area to be greater than 0</sch:assert>
|
104
|
+
<sch:assert role='ERROR' test='number(h:Azimuth) >= 0 or not(h:Azimuth)'>Expected Azimuth to be greater than or equal to 0</sch:assert>
|
105
|
+
<sch:assert role='ERROR' test='number(h:Azimuth) < 360 or not(h:Azimuth)'>Expected Azimuth to be less than 360</sch:assert>
|
106
|
+
<sch:assert role='ERROR' test='number(h:Thickness) >= 0 or not(h:Thickness)'>Expected Thickness to be greater than or equal to 0</sch:assert>
|
107
|
+
<sch:assert role='ERROR' test='number(h:DepthBelowGrade) >= 0 or not(h:DepthBelowGrade)'>Expected DepthBelowGrade to be greater than or equal to 0</sch:assert>
|
108
|
+
</sch:rule>
|
109
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:FoundationWalls/h:FoundationWall/h:Insulation'>
|
110
|
+
<sch:assert role='ERROR' test='number(h:AssemblyEffectiveRValue) >= 0 or not(h:AssemblyEffectiveRValue)'>Expected AssemblyEffectiveRValue to be greater than or equal to 0</sch:assert>
|
111
|
+
</sch:rule>
|
112
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:FoundationWalls/h:FoundationWall/h:Insulation/h:Layer'>
|
113
|
+
<sch:assert role='ERROR' test='h:InstallationType[text()="cavity" or text()="continuous" or text()="continuous - interior" or text()="continuous - exterior"] or not(h:InstallationType)'>Expected InstallationType to be 'cavity' or 'continuous' or 'continuous - interior' or 'continuous - exterior'</sch:assert>
|
114
|
+
<sch:assert role='ERROR' test='number(h:NominalRValue) >= 0 or not(h:NominalRValue)'>Expected NominalRValue to be greater than or equal to 0</sch:assert>
|
115
|
+
</sch:rule>
|
116
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:FrameFloors/h:FrameFloor'>
|
117
|
+
<sch:assert role='ERROR' test='h:ExteriorAdjacentTo[text()="attic" or text()="attic - conditioned" or text()="attic - unconditioned" or text()="attic - unvented" or text()="attic - vented" or text()="basement" or text()="basement - conditioned" or text()="basement - unconditioned" or text()="crawlspace" or text()="crawlspace - conditioned" or text()="crawlspace - unconditioned" or text()="crawlspace - unvented" or text()="crawlspace - vented" or text()="garage" or text()="garage - conditioned" or text()="garage - unconditioned" or text()="ground" or text()="living space" or text()="other" or text()="other heated space" or text()="other housing unit" or text()="other housing unit above" or text()="other housing unit below" or text()="other multifamily buffer space" or text()="other non-freezing space" or text()="outside" or text()="unconditioned space"] or not(h:ExteriorAdjacentTo)'>Expected ExteriorAdjacentTo to be 'attic' or 'attic - conditioned' or 'attic - unconditioned' or 'attic - unvented' or 'attic - vented' or 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'crawlspace' or 'crawlspace - conditioned' or 'crawlspace - unconditioned' or 'crawlspace - unvented' or 'crawlspace - vented' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'ground' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other housing unit above' or 'other housing unit below' or 'other multifamily buffer space' or 'other non-freezing space' or 'outside' or 'unconditioned space'</sch:assert>
|
118
|
+
<sch:assert role='ERROR' test='h:InteriorAdjacentTo[text()="attic" or text()="attic - conditioned" or text()="attic - unconditioned" or text()="attic - unvented" or text()="attic - vented" or text()="basement" or text()="basement - conditioned" or text()="basement - unconditioned" or text()="crawlspace" or text()="crawlspace - conditioned" or text()="crawlspace - unconditioned" or text()="crawlspace - unvented" or text()="crawlspace - vented" or text()="garage" or text()="garage - conditioned" or text()="garage - unconditioned" or text()="ground" or text()="living space" or text()="other" or text()="other heated space" or text()="other housing unit" or text()="other housing unit above" or text()="other housing unit below" or text()="other multifamily buffer space" or text()="other non-freezing space" or text()="outside" or text()="unconditioned space"] or not(h:InteriorAdjacentTo)'>Expected InteriorAdjacentTo to be 'attic' or 'attic - conditioned' or 'attic - unconditioned' or 'attic - unvented' or 'attic - vented' or 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'crawlspace' or 'crawlspace - conditioned' or 'crawlspace - unconditioned' or 'crawlspace - unvented' or 'crawlspace - vented' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'ground' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other housing unit above' or 'other housing unit below' or 'other multifamily buffer space' or 'other non-freezing space' or 'outside' or 'unconditioned space'</sch:assert>
|
119
|
+
<sch:assert role='ERROR' test='number(h:Area) > 0 or not(h:Area)'>Expected Area to be greater than 0</sch:assert>
|
120
|
+
</sch:rule>
|
121
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:FrameFloors/h:FrameFloor/h:Insulation'>
|
122
|
+
<sch:assert role='ERROR' test='number(h:AssemblyEffectiveRValue) >= 0 or not(h:AssemblyEffectiveRValue)'>Expected AssemblyEffectiveRValue to be greater than or equal to 0</sch:assert>
|
123
|
+
</sch:rule>
|
124
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Slabs/h:Slab'>
|
125
|
+
<sch:assert role='ERROR' test='h:InteriorAdjacentTo[text()="attic" or text()="attic - conditioned" or text()="attic - unconditioned" or text()="attic - unvented" or text()="attic - vented" or text()="basement" or text()="basement - conditioned" or text()="basement - unconditioned" or text()="crawlspace" or text()="crawlspace - conditioned" or text()="crawlspace - unconditioned" or text()="crawlspace - unvented" or text()="crawlspace - vented" or text()="garage" or text()="garage - conditioned" or text()="garage - unconditioned" or text()="ground" or text()="living space" or text()="other" or text()="other heated space" or text()="other housing unit" or text()="other housing unit above" or text()="other housing unit below" or text()="other multifamily buffer space" or text()="other non-freezing space" or text()="outside" or text()="unconditioned space"] or not(h:InteriorAdjacentTo)'>Expected InteriorAdjacentTo to be 'attic' or 'attic - conditioned' or 'attic - unconditioned' or 'attic - unvented' or 'attic - vented' or 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'crawlspace' or 'crawlspace - conditioned' or 'crawlspace - unconditioned' or 'crawlspace - unvented' or 'crawlspace - vented' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'ground' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other housing unit above' or 'other housing unit below' or 'other multifamily buffer space' or 'other non-freezing space' or 'outside' or 'unconditioned space'</sch:assert>
|
126
|
+
<sch:assert role='ERROR' test='number(h:Area) > 0 or not(h:Area)'>Expected Area to be greater than 0</sch:assert>
|
127
|
+
<sch:assert role='ERROR' test='number(h:Thickness) >= 0 or not(h:Thickness)'>Expected Thickness to be greater than or equal to 0</sch:assert>
|
128
|
+
<sch:assert role='ERROR' test='number(h:Perimeter) >= 0 or not(h:Perimeter)'>Expected Perimeter to be greater than or equal to 0</sch:assert>
|
129
|
+
<sch:assert role='ERROR' test='number(h:ExposedPerimeter) >= 0 or not(h:ExposedPerimeter)'>Expected ExposedPerimeter to be greater than or equal to 0</sch:assert>
|
130
|
+
<sch:assert role='ERROR' test='number(h:PerimeterInsulationDepth) >= 0 or not(h:PerimeterInsulationDepth)'>Expected PerimeterInsulationDepth to be greater than or equal to 0</sch:assert>
|
131
|
+
<sch:assert role='ERROR' test='number(h:UnderSlabInsulationWidth) >= 0 or not(h:UnderSlabInsulationWidth)'>Expected UnderSlabInsulationWidth to be greater than or equal to 0</sch:assert>
|
132
|
+
<sch:assert role='ERROR' test='number(h:DepthBelowGrade) >= 0 or not(h:DepthBelowGrade)'>Expected DepthBelowGrade to be greater than or equal to 0</sch:assert>
|
133
|
+
</sch:rule>
|
134
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Slabs/h:Slab/h:PerimeterInsulation/h:Layer'>
|
135
|
+
<sch:assert role='ERROR' test='number(h:NominalRValue) >= 0 or not(h:NominalRValue)'>Expected NominalRValue to be greater than or equal to 0</sch:assert>
|
136
|
+
</sch:rule>
|
137
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Slabs/h:Slab/h:UnderSlabInsulation/h:Layer'>
|
138
|
+
<sch:assert role='ERROR' test='number(h:NominalRValue) >= 0 or not(h:NominalRValue)'>Expected NominalRValue to be greater than or equal to 0</sch:assert>
|
139
|
+
</sch:rule>
|
140
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Windows/h:Window'>
|
141
|
+
<sch:assert role='ERROR' test='number(h:Area) > 0 or not(h:Area)'>Expected Area to be greater than 0</sch:assert>
|
142
|
+
<sch:assert role='ERROR' test='number(h:Azimuth) >= 0 or not(h:Azimuth)'>Expected Azimuth to be greater than or equal to 0</sch:assert>
|
143
|
+
<sch:assert role='ERROR' test='number(h:Azimuth) < 360 or not(h:Azimuth)'>Expected Azimuth to be less than 360</sch:assert>
|
144
|
+
<sch:assert role='ERROR' test='number(h:UFactor) > 0 or not(h:UFactor)'>Expected UFactor to be greater than 0</sch:assert>
|
145
|
+
<sch:assert role='ERROR' test='number(h:SHGC) > 0 or not(h:SHGC)'>Expected SHGC to be greater than 0</sch:assert>
|
146
|
+
<sch:assert role='ERROR' test='number(h:SHGC) < 1 or not(h:SHGC)'>Expected SHGC to be less than 1</sch:assert>
|
147
|
+
<sch:assert role='ERROR' test='number(h:FractionOperable) >= 0 or not(h:FractionOperable)'>Expected FractionOperable to be greater than or equal to 0</sch:assert>
|
148
|
+
<sch:assert role='ERROR' test='number(h:FractionOperable) <= 1 or not(h:FractionOperable)'>Expected FractionOperable to be less than or equal to 1</sch:assert>
|
149
|
+
</sch:rule>
|
150
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Windows/h:Window/h:InteriorShading'>
|
151
|
+
<sch:assert role='ERROR' test='number(h:SummerShadingCoefficient) >= 0 or not(h:SummerShadingCoefficient)'>Expected SummerShadingCoefficient to be greater than or equal to 0</sch:assert>
|
152
|
+
<sch:assert role='ERROR' test='number(h:SummerShadingCoefficient) <= 1 or not(h:SummerShadingCoefficient)'>Expected SummerShadingCoefficient to be less than or equal to 1</sch:assert>
|
153
|
+
<sch:assert role='ERROR' test='number(h:WinterShadingCoefficient) >= 0 or not(h:WinterShadingCoefficient)'>Expected WinterShadingCoefficient to be greater than or equal to 0</sch:assert>
|
154
|
+
<sch:assert role='ERROR' test='number(h:WinterShadingCoefficient) <= 1 or not(h:WinterShadingCoefficient)'>Expected WinterShadingCoefficient to be less than or equal to 1</sch:assert>
|
155
|
+
</sch:rule>
|
156
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Windows/h:Window/h:Overhangs'>
|
157
|
+
<sch:assert role='ERROR' test='number(h:Depth) >= 0 or not(h:Depth)'>Expected Depth to be greater than or equal to 0</sch:assert>
|
158
|
+
<sch:assert role='ERROR' test='number(h:DistanceToTopOfWindow) >= 0 or not(h:DistanceToTopOfWindow)'>Expected DistanceToTopOfWindow to be greater than or equal to 0</sch:assert>
|
159
|
+
<sch:assert role='ERROR' test='number(h:DistanceToBottomOfWindow) >= 0 or not(h:DistanceToBottomOfWindow)'>Expected DistanceToBottomOfWindow to be greater than or equal to 0</sch:assert>
|
160
|
+
</sch:rule>
|
161
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Skylights/h:Skylight'>
|
162
|
+
<sch:assert role='ERROR' test='number(h:Area) > 0 or not(h:Area)'>Expected Area to be greater than 0</sch:assert>
|
163
|
+
<sch:assert role='ERROR' test='number(h:Azimuth) >= 0 or not(h:Azimuth)'>Expected Azimuth to be greater than or equal to 0</sch:assert>
|
164
|
+
<sch:assert role='ERROR' test='number(h:Azimuth) < 360 or not(h:Azimuth)'>Expected Azimuth to be less than 360</sch:assert>
|
165
|
+
<sch:assert role='ERROR' test='number(h:UFactor) > 0 or not(h:UFactor)'>Expected UFactor to be greater than 0</sch:assert>
|
166
|
+
<sch:assert role='ERROR' test='number(h:SHGC) > 0 or not(h:SHGC)'>Expected SHGC to be greater than 0</sch:assert>
|
167
|
+
<sch:assert role='ERROR' test='number(h:SHGC) < 1 or not(h:SHGC)'>Expected SHGC to be less than 1</sch:assert>
|
168
|
+
</sch:rule>
|
169
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Skylights/h:Skylight/h:InteriorShading'>
|
170
|
+
<sch:assert role='ERROR' test='number(h:SummerShadingCoefficient) >= 0 or not(h:SummerShadingCoefficient)'>Expected SummerShadingCoefficient to be greater than or equal to 0</sch:assert>
|
171
|
+
<sch:assert role='ERROR' test='number(h:SummerShadingCoefficient) <= 1 or not(h:SummerShadingCoefficient)'>Expected SummerShadingCoefficient to be less than or equal to 1</sch:assert>
|
172
|
+
<sch:assert role='ERROR' test='number(h:WinterShadingCoefficient) >= 0 or not(h:WinterShadingCoefficient)'>Expected WinterShadingCoefficient to be greater than or equal to 0</sch:assert>
|
173
|
+
<sch:assert role='ERROR' test='number(h:WinterShadingCoefficient) <= 1 or not(h:WinterShadingCoefficient)'>Expected WinterShadingCoefficient to be less than or equal to 1</sch:assert>
|
174
|
+
</sch:rule>
|
175
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Enclosure/h:Doors/h:Door'>
|
176
|
+
<sch:assert role='ERROR' test='number(h:Area) > 0 or not(h:Area)'>Expected Area to be greater than 0</sch:assert>
|
177
|
+
<sch:assert role='ERROR' test='number(h:Azimuth) >= 0 or not(h:Azimuth)'>Expected Azimuth to be greater than or equal to 0</sch:assert>
|
178
|
+
<sch:assert role='ERROR' test='number(h:Azimuth) < 360 or not(h:Azimuth)'>Expected Azimuth to be less than 360</sch:assert>
|
179
|
+
<sch:assert role='ERROR' test='number(h:RValue) >= 0 or not(h:RValue)'>Expected RValue to be greater than or equal to 0</sch:assert>
|
180
|
+
</sch:rule>
|
181
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACPlant/h:HeatingSystem'>
|
182
|
+
<sch:assert role='ERROR' test='h:HeatingSystemFuel[text()="electricity" or text()="renewable electricity" or text()="natural gas" or text()="renewable natural gas" or text()="fuel oil" or text()="fuel oil 1" or text()="fuel oil 2" or text()="fuel oil 4" or text()="fuel oil 5/6" or text()="district steam" or text()="district hot water" or text()="district chilled water" or text()="solar hot water" or text()="propane" or text()="kerosene" or text()="diesel" or text()="coal" or text()="anthracite coal" or text()="bituminous coal" or text()="coke" or text()="wood" or text()="wood pellets" or text()="combination" or text()="other"] or not(h:HeatingSystemFuel)'>Expected HeatingSystemFuel to be 'electricity' or 'renewable electricity' or 'natural gas' or 'renewable natural gas' or 'fuel oil' or 'fuel oil 1' or 'fuel oil 2' or 'fuel oil 4' or 'fuel oil 5/6' or 'district steam' or 'district hot water' or 'district chilled water' or 'solar hot water' or 'propane' or 'kerosene' or 'diesel' or 'coal' or 'anthracite coal' or 'bituminous coal' or 'coke' or 'wood' or 'wood pellets' or 'combination' or 'other'</sch:assert>
|
183
|
+
<sch:assert role='ERROR' test='number(h:FractionHeatLoadServed) >= 0 or not(h:FractionHeatLoadServed)'>Expected FractionHeatLoadServed to be greater than or equal to 0</sch:assert>
|
184
|
+
<sch:assert role='ERROR' test='number(h:FractionHeatLoadServed) <= 1 or not(h:FractionHeatLoadServed)'>Expected FractionHeatLoadServed to be less than or equal to 1</sch:assert>
|
185
|
+
</sch:rule>
|
186
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACPlant/h:HeatingSystem/h:AnnualHeatingEfficiency'>
|
187
|
+
<sch:assert role='ERROR' test='h:Units[text()="HSPF" or text()="COP" or text()="AFUE" or text()="Percent"] or not(h:Units)'>Expected Units to be 'HSPF' or 'COP' or 'AFUE' or 'Percent'</sch:assert>
|
188
|
+
<sch:assert role='ERROR' test='number(h:Value) >= 0 or not(h:Value)'>Expected Value to be greater than or equal to 0</sch:assert>
|
189
|
+
</sch:rule>
|
190
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACPlant/h:CoolingSystem'>
|
191
|
+
<sch:assert role='ERROR' test='h:CoolingSystemType[text()="central air conditioner" or text()="mini-split" or text()="room air conditioner" or text()="evaporative cooler" or text()="chiller" or text()="cooling tower" or text()="other"] or not(h:CoolingSystemType)'>Expected CoolingSystemType to be 'central air conditioner' or 'mini-split' or 'room air conditioner' or 'evaporative cooler' or 'chiller' or 'cooling tower' or 'other'</sch:assert>
|
192
|
+
<sch:assert role='ERROR' test='h:CoolingSystemFuel[text()="electricity" or text()="renewable electricity" or text()="natural gas" or text()="renewable natural gas" or text()="fuel oil" or text()="fuel oil 1" or text()="fuel oil 2" or text()="fuel oil 4" or text()="fuel oil 5/6" or text()="district steam" or text()="district hot water" or text()="district chilled water" or text()="solar hot water" or text()="propane" or text()="kerosene" or text()="diesel" or text()="coal" or text()="anthracite coal" or text()="bituminous coal" or text()="coke" or text()="wood" or text()="wood pellets" or text()="combination" or text()="other"] or not(h:CoolingSystemFuel)'>Expected CoolingSystemFuel to be 'electricity' or 'renewable electricity' or 'natural gas' or 'renewable natural gas' or 'fuel oil' or 'fuel oil 1' or 'fuel oil 2' or 'fuel oil 4' or 'fuel oil 5/6' or 'district steam' or 'district hot water' or 'district chilled water' or 'solar hot water' or 'propane' or 'kerosene' or 'diesel' or 'coal' or 'anthracite coal' or 'bituminous coal' or 'coke' or 'wood' or 'wood pellets' or 'combination' or 'other'</sch:assert>
|
193
|
+
<sch:assert role='ERROR' test='h:CompressorType[text()="single stage" or text()="two stage" or text()="variable speed"] or not(h:CompressorType)'>Expected CompressorType to be 'single stage' or 'two stage' or 'variable speed'</sch:assert>
|
194
|
+
<sch:assert role='ERROR' test='number(h:FractionCoolLoadServed) >= 0 or not(h:FractionCoolLoadServed)'>Expected FractionCoolLoadServed to be greater than or equal to 0</sch:assert>
|
195
|
+
<sch:assert role='ERROR' test='number(h:FractionCoolLoadServed) <= 1 or not(h:FractionCoolLoadServed)'>Expected FractionCoolLoadServed to be less than or equal to 1</sch:assert>
|
196
|
+
<sch:assert role='ERROR' test='number(h:SensibleHeatFraction) >= 0 or not(h:SensibleHeatFraction)'>Expected SensibleHeatFraction to be greater than or equal to 0</sch:assert>
|
197
|
+
<sch:assert role='ERROR' test='number(h:SensibleHeatFraction) <= 1 or not(h:SensibleHeatFraction)'>Expected SensibleHeatFraction to be less than or equal to 1</sch:assert>
|
198
|
+
</sch:rule>
|
199
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACPlant/h:CoolingSystem/h:AnnualCoolingEfficiency'>
|
200
|
+
<sch:assert role='ERROR' test='h:Units[text()="SEER" or text()="EER" or text()="COP" or text()="kW/ton"] or not(h:Units)'>Expected Units to be 'SEER' or 'EER' or 'COP' or 'kW/ton'</sch:assert>
|
201
|
+
<sch:assert role='ERROR' test='number(h:Value) >= 0 or not(h:Value)'>Expected Value to be greater than or equal to 0</sch:assert>
|
202
|
+
</sch:rule>
|
203
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACPlant/h:HeatPump'>
|
204
|
+
<sch:assert role='ERROR' test='h:HeatPumpType[text()="water-to-air" or text()="water-to-water" or text()="air-to-air" or text()="air-to-water" or text()="mini-split" or text()="ground-to-air" or text()="ground-to-water" or text()="water-loop-to-air" or text()="variable refrigerant flow"] or not(h:HeatPumpType)'>Expected HeatPumpType to be 'water-to-air' or 'water-to-water' or 'air-to-air' or 'air-to-water' or 'mini-split' or 'ground-to-air' or 'ground-to-water' or 'water-loop-to-air' or 'variable refrigerant flow'</sch:assert>
|
205
|
+
<sch:assert role='ERROR' test='h:HeatPumpFuel[text()="electricity" or text()="renewable electricity" or text()="natural gas" or text()="renewable natural gas" or text()="fuel oil" or text()="fuel oil 1" or text()="fuel oil 2" or text()="fuel oil 4" or text()="fuel oil 5/6" or text()="district steam" or text()="district hot water" or text()="district chilled water" or text()="solar hot water" or text()="propane" or text()="kerosene" or text()="diesel" or text()="coal" or text()="anthracite coal" or text()="bituminous coal" or text()="coke" or text()="wood" or text()="wood pellets" or text()="combination" or text()="other"] or not(h:HeatPumpFuel)'>Expected HeatPumpFuel to be 'electricity' or 'renewable electricity' or 'natural gas' or 'renewable natural gas' or 'fuel oil' or 'fuel oil 1' or 'fuel oil 2' or 'fuel oil 4' or 'fuel oil 5/6' or 'district steam' or 'district hot water' or 'district chilled water' or 'solar hot water' or 'propane' or 'kerosene' or 'diesel' or 'coal' or 'anthracite coal' or 'bituminous coal' or 'coke' or 'wood' or 'wood pellets' or 'combination' or 'other'</sch:assert>
|
206
|
+
<sch:assert role='ERROR' test='h:CompressorType[text()="single stage" or text()="two stage" or text()="variable speed"] or not(h:CompressorType)'>Expected CompressorType to be 'single stage' or 'two stage' or 'variable speed'</sch:assert>
|
207
|
+
<sch:assert role='ERROR' test='number(h:CoolingSensibleHeatFraction) >= 0 or not(h:CoolingSensibleHeatFraction)'>Expected CoolingSensibleHeatFraction to be greater than or equal to 0</sch:assert>
|
208
|
+
<sch:assert role='ERROR' test='number(h:CoolingSensibleHeatFraction) <= 1 or not(h:CoolingSensibleHeatFraction)'>Expected CoolingSensibleHeatFraction to be less than or equal to 1</sch:assert>
|
209
|
+
<sch:assert role='ERROR' test='h:BackupSystemFuel[text()="electricity" or text()="renewable electricity" or text()="natural gas" or text()="renewable natural gas" or text()="fuel oil" or text()="fuel oil 1" or text()="fuel oil 2" or text()="fuel oil 4" or text()="fuel oil 5/6" or text()="district steam" or text()="district hot water" or text()="district chilled water" or text()="solar hot water" or text()="propane" or text()="kerosene" or text()="diesel" or text()="coal" or text()="anthracite coal" or text()="bituminous coal" or text()="coke" or text()="wood" or text()="wood pellets" or text()="combination" or text()="other"] or not(h:BackupSystemFuel)'>Expected BackupSystemFuel to be 'electricity' or 'renewable electricity' or 'natural gas' or 'renewable natural gas' or 'fuel oil' or 'fuel oil 1' or 'fuel oil 2' or 'fuel oil 4' or 'fuel oil 5/6' or 'district steam' or 'district hot water' or 'district chilled water' or 'solar hot water' or 'propane' or 'kerosene' or 'diesel' or 'coal' or 'anthracite coal' or 'bituminous coal' or 'coke' or 'wood' or 'wood pellets' or 'combination' or 'other'</sch:assert>
|
210
|
+
<sch:assert role='ERROR' test='number(h:FractionHeatLoadServed) >= 0 or not(h:FractionHeatLoadServed)'>Expected FractionHeatLoadServed to be greater than or equal to 0</sch:assert>
|
211
|
+
<sch:assert role='ERROR' test='number(h:FractionHeatLoadServed) <= 1 or not(h:FractionHeatLoadServed)'>Expected FractionHeatLoadServed to be less than or equal to 1</sch:assert>
|
212
|
+
<sch:assert role='ERROR' test='number(h:FractionCoolLoadServed) >= 0 or not(h:FractionCoolLoadServed)'>Expected FractionCoolLoadServed to be greater than or equal to 0</sch:assert>
|
213
|
+
<sch:assert role='ERROR' test='number(h:FractionCoolLoadServed) <= 1 or not(h:FractionCoolLoadServed)'>Expected FractionCoolLoadServed to be less than or equal to 1</sch:assert>
|
214
|
+
</sch:rule>
|
215
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACPlant/h:HeatPump/h:BackupAnnualHeatingEfficiency'>
|
216
|
+
<sch:assert role='ERROR' test='h:Units[text()="HSPF" or text()="COP" or text()="AFUE" or text()="Percent"] or not(h:Units)'>Expected Units to be 'HSPF' or 'COP' or 'AFUE' or 'Percent'</sch:assert>
|
217
|
+
<sch:assert role='ERROR' test='number(h:Value) >= 0 or not(h:Value)'>Expected Value to be greater than or equal to 0</sch:assert>
|
218
|
+
</sch:rule>
|
219
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACPlant/h:HeatPump/h:AnnualCoolingEfficiency'>
|
220
|
+
<sch:assert role='ERROR' test='h:Units[text()="SEER" or text()="EER" or text()="COP" or text()="kW/ton"] or not(h:Units)'>Expected Units to be 'SEER' or 'EER' or 'COP' or 'kW/ton'</sch:assert>
|
221
|
+
<sch:assert role='ERROR' test='number(h:Value) >= 0 or not(h:Value)'>Expected Value to be greater than or equal to 0</sch:assert>
|
222
|
+
</sch:rule>
|
223
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACPlant/h:HeatPump/h:AnnualHeatingEfficiency'>
|
224
|
+
<sch:assert role='ERROR' test='h:Units[text()="HSPF" or text()="COP" or text()="AFUE" or text()="Percent"] or not(h:Units)'>Expected Units to be 'HSPF' or 'COP' or 'AFUE' or 'Percent'</sch:assert>
|
225
|
+
<sch:assert role='ERROR' test='number(h:Value) >= 0 or not(h:Value)'>Expected Value to be greater than or equal to 0</sch:assert>
|
226
|
+
</sch:rule>
|
227
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACControl'>
|
228
|
+
<sch:assert role='ERROR' test='h:ControlType[text()="programmable thermostat" or text()="manual thermostat" or text()="digital thermostat" or text()="timer" or text()="EMCS" or text()="other"] or not(h:ControlType)'>Expected ControlType to be 'programmable thermostat' or 'manual thermostat' or 'digital thermostat' or 'timer' or 'EMCS' or 'other'</sch:assert>
|
229
|
+
</sch:rule>
|
230
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACDistribution/h:DistributionSystemType/h:AirDistribution/h:DuctLeakageMeasurement'>
|
231
|
+
<sch:assert role='ERROR' test='h:DuctType[text()="supply" or text()="return"] or not(h:DuctType)'>Expected DuctType to be 'supply' or 'return'</sch:assert>
|
232
|
+
</sch:rule>
|
233
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACDistribution/h:DistributionSystemType/h:AirDistribution/h:DuctLeakageMeasurement/h:DuctLeakage'>
|
234
|
+
<sch:assert role='ERROR' test='h:Units[text()="CFM50" or text()="CFM25" or text()="CFM per Std 152" or text()="Percent"] or not(h:Units)'>Expected Units to be 'CFM50' or 'CFM25' or 'CFM per Std 152' or 'Percent'</sch:assert>
|
235
|
+
<sch:assert role='ERROR' test='h:TotalOrToOutside[text()="to outside" or text()="total"] or not(h:TotalOrToOutside)'>Expected TotalOrToOutside to be 'to outside' or 'total'</sch:assert>
|
236
|
+
</sch:rule>
|
237
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACDistribution/h:DistributionSystemType/h:AirDistribution/h:Ducts'>
|
238
|
+
<sch:assert role='ERROR' test='h:DuctType[text()="supply" or text()="return"] or not(h:DuctType)'>Expected DuctType to be 'supply' or 'return'</sch:assert>
|
239
|
+
<sch:assert role='ERROR' test='number(h:DuctInsulationRValue) >= 0 or not(h:DuctInsulationRValue)'>Expected DuctInsulationRValue to be greater than or equal to 0</sch:assert>
|
240
|
+
<sch:assert role='ERROR' test='h:DuctLocation[text()="attic" or text()="attic - conditioned" or text()="attic - unconditioned" or text()="attic - unvented" or text()="attic - vented" or text()="basement" or text()="basement - conditioned" or text()="basement - unconditioned" or text()="crawlspace" or text()="crawlspace - conditioned" or text()="crawlspace - unconditioned" or text()="crawlspace - unvented" or text()="crawlspace - vented" or text()="exterior wall" or text()="garage" or text()="garage - conditioned" or text()="garage - unconditioned" or text()="interstitial space" or text()="living space" or text()="other heated space" or text()="other housing unit" or text()="other multifamily buffer space" or text()="other non-freezing space" or text()="outside" or text()="roof deck" or text()="unconditioned space" or text()="under slab"] or not(h:DuctLocation)'>Expected DuctLocation to be 'attic' or 'attic - conditioned' or 'attic - unconditioned' or 'attic - unvented' or 'attic - vented' or 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'crawlspace' or 'crawlspace - conditioned' or 'crawlspace - unconditioned' or 'crawlspace - unvented' or 'crawlspace - vented' or 'exterior wall' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'interstitial space' or 'living space' or 'other heated space' or 'other housing unit' or 'other multifamily buffer space' or 'other non-freezing space' or 'outside' or 'roof deck' or 'unconditioned space' or 'under slab'</sch:assert>
|
241
|
+
<sch:assert role='ERROR' test='number(h:DuctSurfaceArea) > 0 or not(h:DuctSurfaceArea)'>Expected DuctSurfaceArea to be greater than 0</sch:assert>
|
242
|
+
</sch:rule>
|
243
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACDistribution/h:DistributionSystemType/h:AirDistribution'>
|
244
|
+
<sch:assert role='ERROR' test='number(h:NumberofReturnRegisters) >= 0 or not(h:NumberofReturnRegisters)'>Expected NumberofReturnRegisters to be greater than or equal to 0</sch:assert>
|
245
|
+
</sch:rule>
|
246
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACDistribution/h:DistributionSystemType/h:HydronicDistribution'>
|
247
|
+
<sch:assert role='ERROR' test='h:HydronicDistributionType[text()="radiator" or text()="baseboard" or text()="radiant floor" or text()="radiant ceiling" or text()="other"] or not(h:HydronicDistributionType)'>Expected HydronicDistributionType to be 'radiator' or 'baseboard' or 'radiant floor' or 'radiant ceiling' or 'other'</sch:assert>
|
248
|
+
</sch:rule>
|
249
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACDistribution/h:DistributionSystemType/h:HydronicAndAirDistribution'>
|
250
|
+
<sch:assert role='ERROR' test='h:HydronicAndAirDistributionType[text()="fan coil" or text()="water loop heat pump" or text()="other"] or not(h:HydronicAndAirDistributionType)'>Expected HydronicAndAirDistributionType to be 'fan coil' or 'water loop heat pump' or 'other'</sch:assert>
|
251
|
+
<sch:assert role='ERROR' test='number(h:NumberofReturnRegisters) >= 0 or not(h:NumberofReturnRegisters)'>Expected NumberofReturnRegisters to be greater than or equal to 0</sch:assert>
|
252
|
+
</sch:rule>
|
253
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACDistribution/h:DistributionSystemType/h:HydronicAndAirDistribution/h:DuctLeakageMeasurement'>
|
254
|
+
<sch:assert role='ERROR' test='h:DuctType[text()="supply" or text()="return"] or not(h:DuctType)'>Expected DuctType to be 'supply' or 'return'</sch:assert>
|
255
|
+
</sch:rule>
|
256
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACDistribution/h:DistributionSystemType/h:HydronicAndAirDistribution/h:DuctLeakageMeasurement/h:DuctLeakage'>
|
257
|
+
<sch:assert role='ERROR' test='h:Units[text()="CFM50" or text()="CFM25" or text()="CFM per Std 152" or text()="Percent"] or not(h:Units)'>Expected Units to be 'CFM50' or 'CFM25' or 'CFM per Std 152' or 'Percent'</sch:assert>
|
258
|
+
<sch:assert role='ERROR' test='h:TotalOrToOutside[text()="to outside" or text()="total"] or not(h:TotalOrToOutside)'>Expected TotalOrToOutside to be 'to outside' or 'total'</sch:assert>
|
259
|
+
</sch:rule>
|
260
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACDistribution/h:DistributionSystemType/h:HydronicAndAirDistribution/h:Ducts'>
|
261
|
+
<sch:assert role='ERROR' test='h:DuctType[text()="supply" or text()="return"] or not(h:DuctType)'>Expected DuctType to be 'supply' or 'return'</sch:assert>
|
262
|
+
<sch:assert role='ERROR' test='number(h:DuctInsulationRValue) >= 0 or not(h:DuctInsulationRValue)'>Expected DuctInsulationRValue to be greater than or equal to 0</sch:assert>
|
263
|
+
<sch:assert role='ERROR' test='h:DuctLocation[text()="attic" or text()="attic - conditioned" or text()="attic - unconditioned" or text()="attic - unvented" or text()="attic - vented" or text()="basement" or text()="basement - conditioned" or text()="basement - unconditioned" or text()="crawlspace" or text()="crawlspace - conditioned" or text()="crawlspace - unconditioned" or text()="crawlspace - unvented" or text()="crawlspace - vented" or text()="exterior wall" or text()="garage" or text()="garage - conditioned" or text()="garage - unconditioned" or text()="interstitial space" or text()="living space" or text()="other heated space" or text()="other housing unit" or text()="other multifamily buffer space" or text()="other non-freezing space" or text()="outside" or text()="roof deck" or text()="unconditioned space" or text()="under slab"] or not(h:DuctLocation)'>Expected DuctLocation to be 'attic' or 'attic - conditioned' or 'attic - unconditioned' or 'attic - unvented' or 'attic - vented' or 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'crawlspace' or 'crawlspace - conditioned' or 'crawlspace - unconditioned' or 'crawlspace - unvented' or 'crawlspace - vented' or 'exterior wall' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'interstitial space' or 'living space' or 'other heated space' or 'other housing unit' or 'other multifamily buffer space' or 'other non-freezing space' or 'outside' or 'roof deck' or 'unconditioned space' or 'under slab'</sch:assert>
|
264
|
+
<sch:assert role='ERROR' test='number(h:DuctSurfaceArea) > 0 or not(h:DuctSurfaceArea)'>Expected DuctSurfaceArea to be greater than 0</sch:assert>
|
265
|
+
</sch:rule>
|
266
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:HVAC/h:HVACDistribution'>
|
267
|
+
<sch:assert role='ERROR' test='number(h:ConditionedFloorAreaServed) > 0 or not(h:ConditionedFloorAreaServed)'>Expected ConditionedFloorAreaServed to be greater than 0</sch:assert>
|
268
|
+
</sch:rule>
|
269
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:MechanicalVentilation/h:VentilationFans/h:VentilationFan'>
|
270
|
+
<sch:assert role='ERROR' test='number(h:Quantity) > 0 or not(h:Quantity)'>Expected Quantity to be greater than 0</sch:assert>
|
271
|
+
<sch:assert role='ERROR' test='h:FanType[text()="exhaust only" or text()="supply only" or text()="heat recovery ventilator" or text()="energy recovery ventilator" or text()="balanced" or text()="central fan integrated supply"] or not(h:FanType)'>Expected FanType to be 'exhaust only' or 'supply only' or 'heat recovery ventilator' or 'energy recovery ventilator' or 'balanced' or 'central fan integrated supply'</sch:assert>
|
272
|
+
<sch:assert role='ERROR' test='number(h:HoursInOperation) >= 0 or not(h:HoursInOperation)'>Expected HoursInOperation to be greater than or equal to 0</sch:assert>
|
273
|
+
<sch:assert role='ERROR' test='number(h:HoursInOperation) <= 24 or not(h:HoursInOperation)'>Expected HoursInOperation to be less than or equal to 24</sch:assert>
|
274
|
+
<sch:assert role='ERROR' test='h:FanLocation[text()="bath" or text()="garage" or text()="garage - conditioned" or text()="garage - unconditioned" or text()="hallway" or text()="kitchen" or text()="other"] or not(h:FanLocation)'>Expected FanLocation to be 'bath' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'hallway' or 'kitchen' or 'other'</sch:assert>
|
275
|
+
<sch:assert role='ERROR' test='number(h:FractionRecirculation) >= 0 or not(h:FractionRecirculation)'>Expected FractionRecirculation to be greater than or equal to 0</sch:assert>
|
276
|
+
<sch:assert role='ERROR' test='number(h:FractionRecirculation) <= 1 or not(h:FractionRecirculation)'>Expected FractionRecirculation to be less than or equal to 1</sch:assert>
|
277
|
+
<sch:assert role='ERROR' test='number(h:TotalRecoveryEfficiency) >= 0 or not(h:TotalRecoveryEfficiency)'>Expected TotalRecoveryEfficiency to be greater than or equal to 0</sch:assert>
|
278
|
+
<sch:assert role='ERROR' test='number(h:TotalRecoveryEfficiency) <= 1 or not(h:TotalRecoveryEfficiency)'>Expected TotalRecoveryEfficiency to be less than or equal to 1</sch:assert>
|
279
|
+
<sch:assert role='ERROR' test='number(h:SensibleRecoveryEfficiency) >= 0 or not(h:SensibleRecoveryEfficiency)'>Expected SensibleRecoveryEfficiency to be greater than or equal to 0</sch:assert>
|
280
|
+
<sch:assert role='ERROR' test='number(h:SensibleRecoveryEfficiency) <= 1 or not(h:SensibleRecoveryEfficiency)'>Expected SensibleRecoveryEfficiency to be less than or equal to 1</sch:assert>
|
281
|
+
<sch:assert role='ERROR' test='number(h:AdjustedTotalRecoveryEfficiency) >= 0 or not(h:AdjustedTotalRecoveryEfficiency)'>Expected AdjustedTotalRecoveryEfficiency to be greater than or equal to 0</sch:assert>
|
282
|
+
<sch:assert role='ERROR' test='number(h:AdjustedTotalRecoveryEfficiency) <= 1 or not(h:AdjustedTotalRecoveryEfficiency)'>Expected AdjustedTotalRecoveryEfficiency to be less than or equal to 1</sch:assert>
|
283
|
+
<sch:assert role='ERROR' test='number(h:AdjustedSensibleRecoveryEfficiency) >= 0 or not(h:AdjustedSensibleRecoveryEfficiency)'>Expected AdjustedSensibleRecoveryEfficiency to be greater than or equal to 0</sch:assert>
|
284
|
+
<sch:assert role='ERROR' test='number(h:AdjustedSensibleRecoveryEfficiency) <= 1 or not(h:AdjustedSensibleRecoveryEfficiency)'>Expected AdjustedSensibleRecoveryEfficiency to be less than or equal to 1</sch:assert>
|
285
|
+
</sch:rule>
|
286
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:WaterHeating/h:WaterHeatingSystem'>
|
287
|
+
<sch:assert role='ERROR' test='h:FuelType[text()="electricity" or text()="renewable electricity" or text()="natural gas" or text()="renewable natural gas" or text()="fuel oil" or text()="fuel oil 1" or text()="fuel oil 2" or text()="fuel oil 4" or text()="fuel oil 5/6" or text()="district steam" or text()="district hot water" or text()="district chilled water" or text()="solar hot water" or text()="propane" or text()="kerosene" or text()="diesel" or text()="coal" or text()="anthracite coal" or text()="bituminous coal" or text()="coke" or text()="wood" or text()="wood pellets" or text()="combination" or text()="other"] or not(h:FuelType)'>Expected FuelType to be 'electricity' or 'renewable electricity' or 'natural gas' or 'renewable natural gas' or 'fuel oil' or 'fuel oil 1' or 'fuel oil 2' or 'fuel oil 4' or 'fuel oil 5/6' or 'district steam' or 'district hot water' or 'district chilled water' or 'solar hot water' or 'propane' or 'kerosene' or 'diesel' or 'coal' or 'anthracite coal' or 'bituminous coal' or 'coke' or 'wood' or 'wood pellets' or 'combination' or 'other'</sch:assert>
|
288
|
+
<sch:assert role='ERROR' test='h:WaterHeaterType[text()="storage water heater" or text()="dedicated boiler with storage tank" or text()="instantaneous water heater" or text()="heat pump water heater" or text()="space-heating boiler with storage tank" or text()="space-heating boiler with tankless coil"] or not(h:WaterHeaterType)'>Expected WaterHeaterType to be 'storage water heater' or 'dedicated boiler with storage tank' or 'instantaneous water heater' or 'heat pump water heater' or 'space-heating boiler with storage tank' or 'space-heating boiler with tankless coil'</sch:assert>
|
289
|
+
<sch:assert role='ERROR' test='h:Location[text()="attic" or text()="attic - conditioned" or text()="attic - unconditioned" or text()="attic - unvented" or text()="attic - vented" or text()="basement" or text()="basement - conditioned" or text()="basement - unconditioned" or text()="crawlspace" or text()="crawlspace - conditioned" or text()="crawlspace - unconditioned" or text()="crawlspace - unvented" or text()="crawlspace - vented" or text()="garage" or text()="garage - conditioned" or text()="garage - unconditioned" or text()="living space" or text()="mechanical closet" or text()="other exterior" or text()="other heated space" or text()="other housing unit" or text()="other interior" or text()="other multifamily buffer space" or text()="other non-freezing space" or text()="roof deck" or text()="unconditioned space"] or not(h:Location)'>Expected Location to be 'attic' or 'attic - conditioned' or 'attic - unconditioned' or 'attic - unvented' or 'attic - vented' or 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'crawlspace' or 'crawlspace - conditioned' or 'crawlspace - unconditioned' or 'crawlspace - unvented' or 'crawlspace - vented' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'living space' or 'mechanical closet' or 'other exterior' or 'other heated space' or 'other housing unit' or 'other interior' or 'other multifamily buffer space' or 'other non-freezing space' or 'roof deck' or 'unconditioned space'</sch:assert>
|
290
|
+
<sch:assert role='ERROR' test='number(h:PerformanceAdjustment) >= 0 or not(h:PerformanceAdjustment)'>Expected PerformanceAdjustment to be greater than or equal to 0</sch:assert>
|
291
|
+
<sch:assert role='ERROR' test='number(h:PerformanceAdjustment) <= 1 or not(h:PerformanceAdjustment)'>Expected PerformanceAdjustment to be less than or equal to 1</sch:assert>
|
292
|
+
<sch:assert role='ERROR' test='number(h:TankVolume) > 0 or not(h:TankVolume)'>Expected TankVolume to be greater than 0</sch:assert>
|
293
|
+
<sch:assert role='ERROR' test='number(h:FractionDHWLoadServed) >= 0 or not(h:FractionDHWLoadServed)'>Expected FractionDHWLoadServed to be greater than or equal to 0</sch:assert>
|
294
|
+
<sch:assert role='ERROR' test='number(h:FractionDHWLoadServed) <= 1 or not(h:FractionDHWLoadServed)'>Expected FractionDHWLoadServed to be less than or equal to 1</sch:assert>
|
295
|
+
<sch:assert role='ERROR' test='number(h:EnergyFactor) <= 5 or not(h:EnergyFactor)'>Expected EnergyFactor to be less than or equal to 5</sch:assert>
|
296
|
+
<sch:assert role='ERROR' test='number(h:EnergyFactor) > 0 or not(h:EnergyFactor)'>Expected EnergyFactor to be greater than 0</sch:assert>
|
297
|
+
<sch:assert role='ERROR' test='number(h:UniformEnergyFactor) <= 5 or not(h:UniformEnergyFactor)'>Expected UniformEnergyFactor to be less than or equal to 5</sch:assert>
|
298
|
+
<sch:assert role='ERROR' test='number(h:UniformEnergyFactor) > 0 or not(h:UniformEnergyFactor)'>Expected UniformEnergyFactor to be greater than 0</sch:assert>
|
299
|
+
<sch:assert role='ERROR' test='number(h:FirstHourRating) > 0 or not(h:FirstHourRating)'>Expected FirstHourRating to be greater than 0</sch:assert>
|
300
|
+
<sch:assert role='ERROR' test='number(h:RecoveryEfficiency) <= 5 or not(h:RecoveryEfficiency)'>Expected RecoveryEfficiency to be less than or equal to 5</sch:assert>
|
301
|
+
<sch:assert role='ERROR' test='number(h:RecoveryEfficiency) > 0 or not(h:RecoveryEfficiency)'>Expected RecoveryEfficiency to be greater than 0</sch:assert>
|
302
|
+
</sch:rule>
|
303
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:WaterHeating/h:WaterHeatingSystem/h:WaterHeaterInsulation/h:Jacket'>
|
304
|
+
<sch:assert role='ERROR' test='number(h:JacketRValue) >= 0 or not(h:JacketRValue)'>Expected JacketRValue to be greater than or equal to 0</sch:assert>
|
305
|
+
</sch:rule>
|
306
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:WaterHeating/h:HotWaterDistribution/h:SystemType/h:Standard'>
|
307
|
+
<sch:assert role='ERROR' test='number(h:PipingLength) >= 0 or not(h:PipingLength)'>Expected PipingLength to be greater than or equal to 0</sch:assert>
|
308
|
+
</sch:rule>
|
309
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:WaterHeating/h:HotWaterDistribution/h:SystemType/h:Recirculation'>
|
310
|
+
<sch:assert role='ERROR' test='h:ControlType[text()="no control" or text()="timer" or text()="temperature" or text()="presence sensor demand control" or text()="manual demand control"] or not(h:ControlType)'>Expected ControlType to be 'no control' or 'timer' or 'temperature' or 'presence sensor demand control' or 'manual demand control'</sch:assert>
|
311
|
+
<sch:assert role='ERROR' test='number(h:RecirculationPipingLoopLength) >= 0 or not(h:RecirculationPipingLoopLength)'>Expected RecirculationPipingLoopLength to be greater than or equal to 0</sch:assert>
|
312
|
+
<sch:assert role='ERROR' test='number(h:BranchPipingLoopLength) >= 0 or not(h:BranchPipingLoopLength)'>Expected BranchPipingLoopLength to be greater than or equal to 0</sch:assert>
|
313
|
+
<sch:assert role='ERROR' test='number(h:PumpPower) >= 0 or not(h:PumpPower)'>Expected PumpPower to be greater than or equal to 0</sch:assert>
|
314
|
+
</sch:rule>
|
315
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:WaterHeating/h:HotWaterDistribution/h:PipeInsulation'>
|
316
|
+
<sch:assert role='ERROR' test='number(h:PipeRValue) >= 0 or not(h:PipeRValue)'>Expected PipeRValue to be greater than or equal to 0</sch:assert>
|
317
|
+
</sch:rule>
|
318
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:WaterHeating/h:HotWaterDistribution/h:DrainWaterHeatRecovery'>
|
319
|
+
<sch:assert role='ERROR' test='h:FacilitiesConnected[text()="one" or text()="all"] or not(h:FacilitiesConnected)'>Expected FacilitiesConnected to be 'one' or 'all'</sch:assert>
|
320
|
+
<sch:assert role='ERROR' test='number(h:Efficiency) >= 0 or not(h:Efficiency)'>Expected Efficiency to be greater than or equal to 0</sch:assert>
|
321
|
+
<sch:assert role='ERROR' test='number(h:Efficiency) <= 1 or not(h:Efficiency)'>Expected Efficiency to be less than or equal to 1</sch:assert>
|
322
|
+
</sch:rule>
|
323
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:WaterHeating/h:WaterFixture'>
|
324
|
+
<sch:assert role='ERROR' test='h:WaterFixtureType[text()="faucet" or text()="shower head" or text()="other"] or not(h:WaterFixtureType)'>Expected WaterFixtureType to be 'faucet' or 'shower head' or 'other'</sch:assert>
|
325
|
+
</sch:rule>
|
326
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:SolarThermal/h:SolarThermalSystem'>
|
327
|
+
<sch:assert role='ERROR' test='h:SystemType[text()="hot water" or text()="hot water and space heating" or text()="space heating" or text()="hybrid system"] or not(h:SystemType)'>Expected SystemType to be 'hot water' or 'hot water and space heating' or 'space heating' or 'hybrid system'</sch:assert>
|
328
|
+
<sch:assert role='ERROR' test='number(h:CollectorArea) > 0 or not(h:CollectorArea)'>Expected CollectorArea to be greater than 0</sch:assert>
|
329
|
+
<sch:assert role='ERROR' test='h:CollectorLoopType[text()="air direct" or text()="air indirect" or text()="liquid direct" or text()="liquid indirect" or text()="passive thermosyphon"] or not(h:CollectorLoopType)'>Expected CollectorLoopType to be 'air direct' or 'air indirect' or 'liquid direct' or 'liquid indirect' or 'passive thermosyphon'</sch:assert>
|
330
|
+
<sch:assert role='ERROR' test='h:CollectorType[text()="single glazing black" or text()="single glazing selective" or text()="double glazing black" or text()="double glazing selective" or text()="evacuated tube" or text()="integrated collector storage"] or not(h:CollectorType)'>Expected CollectorType to be 'single glazing black' or 'single glazing selective' or 'double glazing black' or 'double glazing selective' or 'evacuated tube' or 'integrated collector storage'</sch:assert>
|
331
|
+
<sch:assert role='ERROR' test='number(h:CollectorAzimuth) >= 0 or not(h:CollectorAzimuth)'>Expected CollectorAzimuth to be greater than or equal to 0</sch:assert>
|
332
|
+
<sch:assert role='ERROR' test='number(h:CollectorAzimuth) < 360 or not(h:CollectorAzimuth)'>Expected CollectorAzimuth to be less than 360</sch:assert>
|
333
|
+
<sch:assert role='ERROR' test='number(h:CollectorTilt) >= 0 or not(h:CollectorTilt)'>Expected CollectorTilt to be greater than or equal to 0</sch:assert>
|
334
|
+
<sch:assert role='ERROR' test='number(h:CollectorTilt) <= 90 or not(h:CollectorTilt)'>Expected CollectorTilt to be less than or equal to 90</sch:assert>
|
335
|
+
<sch:assert role='ERROR' test='number(h:CollectorRatedOpticalEfficiency) > 0 or not(h:CollectorRatedOpticalEfficiency)'>Expected CollectorRatedOpticalEfficiency to be greater than 0</sch:assert>
|
336
|
+
<sch:assert role='ERROR' test='number(h:CollectorRatedOpticalEfficiency) < 1 or not(h:CollectorRatedOpticalEfficiency)'>Expected CollectorRatedOpticalEfficiency to be less than 1</sch:assert>
|
337
|
+
<sch:assert role='ERROR' test='number(h:CollectorRatedThermalLosses) > 0 or not(h:CollectorRatedThermalLosses)'>Expected CollectorRatedThermalLosses to be greater than 0</sch:assert>
|
338
|
+
<sch:assert role='ERROR' test='number(h:StorageVolume) > 0 or not(h:StorageVolume)'>Expected StorageVolume to be greater than 0</sch:assert>
|
339
|
+
<sch:assert role='ERROR' test='number(h:SolarFraction) <= 1 or not(h:SolarFraction)'>Expected SolarFraction to be less than or equal to 1</sch:assert>
|
340
|
+
<sch:assert role='ERROR' test='number(h:SolarFraction) > 0 or not(h:SolarFraction)'>Expected SolarFraction to be greater than 0</sch:assert>
|
341
|
+
</sch:rule>
|
342
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Systems/h:Photovoltaics/h:PVSystem'>
|
343
|
+
<sch:assert role='ERROR' test='h:Location[text()="roof" or text()="ground" or text()="other"] or not(h:Location)'>Expected Location to be 'roof' or 'ground' or 'other'</sch:assert>
|
344
|
+
<sch:assert role='ERROR' test='h:ModuleType[text()="standard" or text()="premium" or text()="thin film"] or not(h:ModuleType)'>Expected ModuleType to be 'standard' or 'premium' or 'thin film'</sch:assert>
|
345
|
+
<sch:assert role='ERROR' test='h:Tracking[text()="fixed" or text()="1-axis" or text()="1-axis backtracked" or text()="2-axis"] or not(h:Tracking)'>Expected Tracking to be 'fixed' or '1-axis' or '1-axis backtracked' or '2-axis'</sch:assert>
|
346
|
+
<sch:assert role='ERROR' test='number(h:ArrayAzimuth) >= 0 or not(h:ArrayAzimuth)'>Expected ArrayAzimuth to be greater than or equal to 0</sch:assert>
|
347
|
+
<sch:assert role='ERROR' test='number(h:ArrayAzimuth) < 360 or not(h:ArrayAzimuth)'>Expected ArrayAzimuth to be less than 360</sch:assert>
|
348
|
+
<sch:assert role='ERROR' test='number(h:ArrayTilt) >= 0 or not(h:ArrayTilt)'>Expected ArrayTilt to be greater than or equal to 0</sch:assert>
|
349
|
+
<sch:assert role='ERROR' test='number(h:ArrayTilt) <= 90 or not(h:ArrayTilt)'>Expected ArrayTilt to be less than or equal to 90</sch:assert>
|
350
|
+
<sch:assert role='ERROR' test='number(h:MaxPowerOutput) >= 0 or not(h:MaxPowerOutput)'>Expected MaxPowerOutput to be greater than or equal to 0</sch:assert>
|
351
|
+
<sch:assert role='ERROR' test='number(h:InverterEfficiency) >= 0 or not(h:InverterEfficiency)'>Expected InverterEfficiency to be greater than or equal to 0</sch:assert>
|
352
|
+
<sch:assert role='ERROR' test='number(h:InverterEfficiency) <= 1 or not(h:InverterEfficiency)'>Expected InverterEfficiency to be less than or equal to 1</sch:assert>
|
353
|
+
<sch:assert role='ERROR' test='number(h:SystemLossesFraction) >= 0 or not(h:SystemLossesFraction)'>Expected SystemLossesFraction to be greater than or equal to 0</sch:assert>
|
354
|
+
<sch:assert role='ERROR' test='number(h:SystemLossesFraction) <= 1 or not(h:SystemLossesFraction)'>Expected SystemLossesFraction to be less than or equal to 1</sch:assert>
|
355
|
+
</sch:rule>
|
356
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Appliances/h:ClothesWasher'>
|
357
|
+
<sch:assert role='ERROR' test='h:Location[text()="basement" or text()="basement - conditioned" or text()="basement - unconditioned" or text()="garage" or text()="garage - conditioned" or text()="garage - unconditioned" or text()="laundry room" or text()="living space" or text()="other" or text()="other heated space" or text()="other housing unit" or text()="other multifamily buffer space" or text()="other non-freezing space" or text()="unconditioned space"] or not(h:Location)'>Expected Location to be 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'laundry room' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other multifamily buffer space' or 'other non-freezing space' or 'unconditioned space'</sch:assert>
|
358
|
+
<sch:assert role='ERROR' test='number(h:RatedAnnualkWh) > 0 or not(h:RatedAnnualkWh)'>Expected RatedAnnualkWh to be greater than 0</sch:assert>
|
359
|
+
</sch:rule>
|
360
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Appliances/h:ClothesDryer'>
|
361
|
+
<sch:assert role='ERROR' test='h:Location[text()="basement" or text()="basement - conditioned" or text()="basement - unconditioned" or text()="garage" or text()="garage - conditioned" or text()="garage - unconditioned" or text()="laundry room" or text()="living space" or text()="other" or text()="other heated space" or text()="other housing unit" or text()="other multifamily buffer space" or text()="other non-freezing space" or text()="unconditioned space"] or not(h:Location)'>Expected Location to be 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'laundry room' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other multifamily buffer space' or 'other non-freezing space' or 'unconditioned space'</sch:assert>
|
362
|
+
<sch:assert role='ERROR' test='h:FuelType[text()="electricity" or text()="renewable electricity" or text()="natural gas" or text()="renewable natural gas" or text()="fuel oil" or text()="fuel oil 1" or text()="fuel oil 2" or text()="fuel oil 4" or text()="fuel oil 5/6" or text()="district steam" or text()="district hot water" or text()="district chilled water" or text()="solar hot water" or text()="propane" or text()="kerosene" or text()="diesel" or text()="coal" or text()="anthracite coal" or text()="bituminous coal" or text()="coke" or text()="wood" or text()="wood pellets" or text()="combination" or text()="other"] or not(h:FuelType)'>Expected FuelType to be 'electricity' or 'renewable electricity' or 'natural gas' or 'renewable natural gas' or 'fuel oil' or 'fuel oil 1' or 'fuel oil 2' or 'fuel oil 4' or 'fuel oil 5/6' or 'district steam' or 'district hot water' or 'district chilled water' or 'solar hot water' or 'propane' or 'kerosene' or 'diesel' or 'coal' or 'anthracite coal' or 'bituminous coal' or 'coke' or 'wood' or 'wood pellets' or 'combination' or 'other'</sch:assert>
|
363
|
+
<sch:assert role='ERROR' test='h:ControlType[text()="timer" or text()="moisture" or text()="temperature"] or not(h:ControlType)'>Expected ControlType to be 'timer' or 'moisture' or 'temperature'</sch:assert>
|
364
|
+
</sch:rule>
|
365
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Appliances/h:Dishwasher'>
|
366
|
+
<sch:assert role='ERROR' test='h:Location[text()="basement" or text()="basement - conditioned" or text()="basement - unconditioned" or text()="garage" or text()="garage - conditioned" or text()="garage - unconditioned" or text()="kitchen" or text()="living space" or text()="other" or text()="other heated space" or text()="other housing unit" or text()="other multifamily buffer space" or text()="other non-freezing space" or text()="unconditioned space"] or not(h:Location)'>Expected Location to be 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'kitchen' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other multifamily buffer space' or 'other non-freezing space' or 'unconditioned space'</sch:assert>
|
367
|
+
<sch:assert role='ERROR' test='number(h:RatedAnnualkWh) > 0 or not(h:RatedAnnualkWh)'>Expected RatedAnnualkWh to be greater than 0</sch:assert>
|
368
|
+
<sch:assert role='ERROR' test='number(h:EnergyFactor) <= 5 or not(h:EnergyFactor)'>Expected EnergyFactor to be less than or equal to 5</sch:assert>
|
369
|
+
<sch:assert role='ERROR' test='number(h:EnergyFactor) > 0 or not(h:EnergyFactor)'>Expected EnergyFactor to be greater than 0</sch:assert>
|
370
|
+
<sch:assert role='ERROR' test='number(h:PlaceSettingCapacity) > 0 or not(h:PlaceSettingCapacity)'>Expected PlaceSettingCapacity to be greater than 0</sch:assert>
|
371
|
+
</sch:rule>
|
372
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Appliances/h:Refrigerator'>
|
373
|
+
<sch:assert role='ERROR' test='h:Location[text()="basement" or text()="basement - conditioned" or text()="basement - unconditioned" or text()="garage" or text()="garage - conditioned" or text()="garage - unconditioned" or text()="kitchen" or text()="living space" or text()="other" or text()="other heated space" or text()="other housing unit" or text()="other multifamily buffer space" or text()="other non-freezing space" or text()="unconditioned space"] or not(h:Location)'>Expected Location to be 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'kitchen' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other multifamily buffer space' or 'other non-freezing space' or 'unconditioned space'</sch:assert>
|
374
|
+
<sch:assert role='ERROR' test='number(h:RatedAnnualkWh) > 0 or not(h:RatedAnnualkWh)'>Expected RatedAnnualkWh to be greater than 0</sch:assert>
|
375
|
+
</sch:rule>
|
376
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Appliances/h:Freezer'>
|
377
|
+
<sch:assert role='ERROR' test='h:Location[text()="basement" or text()="basement - conditioned" or text()="basement - unconditioned" or text()="garage" or text()="garage - conditioned" or text()="garage - unconditioned" or text()="kitchen" or text()="living space" or text()="other" or text()="other heated space" or text()="other housing unit" or text()="other multifamily buffer space" or text()="other non-freezing space" or text()="unconditioned space"] or not(h:Location)'>Expected Location to be 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'kitchen' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other multifamily buffer space' or 'other non-freezing space' or 'unconditioned space'</sch:assert>
|
378
|
+
<sch:assert role='ERROR' test='number(h:RatedAnnualkWh) > 0 or not(h:RatedAnnualkWh)'>Expected RatedAnnualkWh to be greater than 0</sch:assert>
|
379
|
+
</sch:rule>
|
380
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Appliances/h:Dehumidifier'>
|
381
|
+
<sch:assert role='ERROR' test='h:Type[text()="portable" or text()="whole-home"] or not(h:Type)'>Expected Type to be 'portable' or 'whole-home'</sch:assert>
|
382
|
+
<sch:assert role='ERROR' test='number(h:DehumidistatSetpoint) >= 0 or not(h:DehumidistatSetpoint)'>Expected DehumidistatSetpoint to be greater than or equal to 0</sch:assert>
|
383
|
+
<sch:assert role='ERROR' test='number(h:DehumidistatSetpoint) <= 1 or not(h:DehumidistatSetpoint)'>Expected DehumidistatSetpoint to be less than or equal to 1</sch:assert>
|
384
|
+
<sch:assert role='ERROR' test='number(h:FractionDehumidificationLoadServed) >= 0 or not(h:FractionDehumidificationLoadServed)'>Expected FractionDehumidificationLoadServed to be greater than or equal to 0</sch:assert>
|
385
|
+
<sch:assert role='ERROR' test='number(h:FractionDehumidificationLoadServed) <= 1 or not(h:FractionDehumidificationLoadServed)'>Expected FractionDehumidificationLoadServed to be less than or equal to 1</sch:assert>
|
386
|
+
</sch:rule>
|
387
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Appliances/h:CookingRange'>
|
388
|
+
<sch:assert role='ERROR' test='h:Location[text()="basement" or text()="basement - conditioned" or text()="basement - unconditioned" or text()="garage" or text()="garage - conditioned" or text()="garage - unconditioned" or text()="kitchen" or text()="living space" or text()="other" or text()="other heated space" or text()="other housing unit" or text()="other multifamily buffer space" or text()="other non-freezing space" or text()="unconditioned space"] or not(h:Location)'>Expected Location to be 'basement' or 'basement - conditioned' or 'basement - unconditioned' or 'garage' or 'garage - conditioned' or 'garage - unconditioned' or 'kitchen' or 'living space' or 'other' or 'other heated space' or 'other housing unit' or 'other multifamily buffer space' or 'other non-freezing space' or 'unconditioned space'</sch:assert>
|
389
|
+
<sch:assert role='ERROR' test='h:FuelType[text()="electricity" or text()="renewable electricity" or text()="natural gas" or text()="renewable natural gas" or text()="fuel oil" or text()="fuel oil 1" or text()="fuel oil 2" or text()="fuel oil 4" or text()="fuel oil 5/6" or text()="district steam" or text()="district hot water" or text()="district chilled water" or text()="solar hot water" or text()="propane" or text()="kerosene" or text()="diesel" or text()="coal" or text()="anthracite coal" or text()="bituminous coal" or text()="coke" or text()="wood" or text()="wood pellets" or text()="combination" or text()="other"] or not(h:FuelType)'>Expected FuelType to be 'electricity' or 'renewable electricity' or 'natural gas' or 'renewable natural gas' or 'fuel oil' or 'fuel oil 1' or 'fuel oil 2' or 'fuel oil 4' or 'fuel oil 5/6' or 'district steam' or 'district hot water' or 'district chilled water' or 'solar hot water' or 'propane' or 'kerosene' or 'diesel' or 'coal' or 'anthracite coal' or 'bituminous coal' or 'coke' or 'wood' or 'wood pellets' or 'combination' or 'other'</sch:assert>
|
390
|
+
</sch:rule>
|
391
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Lighting/h:LightingGroup'>
|
392
|
+
<sch:assert role='ERROR' test='h:Location[text()="interior" or text()="exterior" or text()="garage" or text()="common area"] or not(h:Location)'>Expected Location to be 'interior' or 'exterior' or 'garage' or 'common area'</sch:assert>
|
393
|
+
<sch:assert role='ERROR' test='number(h:FractionofUnitsInLocation) >= 0 or not(h:FractionofUnitsInLocation)'>Expected FractionofUnitsInLocation to be greater than or equal to 0</sch:assert>
|
394
|
+
<sch:assert role='ERROR' test='number(h:FractionofUnitsInLocation) <= 1 or not(h:FractionofUnitsInLocation)'>Expected FractionofUnitsInLocation to be less than or equal to 1</sch:assert>
|
395
|
+
</sch:rule>
|
396
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Lighting/h:CeilingFan/h:Airflow'>
|
397
|
+
<sch:assert role='ERROR' test='h:FanSpeed[text()="low" or text()="medium" or text()="high"] or not(h:FanSpeed)'>Expected FanSpeed to be 'low' or 'medium' or 'high'</sch:assert>
|
398
|
+
</sch:rule>
|
399
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Lighting/h:CeilingFan'>
|
400
|
+
<sch:assert role='ERROR' test='number(h:Quantity) > 0 or not(h:Quantity)'>Expected Quantity to be greater than 0</sch:assert>
|
401
|
+
</sch:rule>
|
402
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Pools/h:Pool/h:PoolPumps/h:PoolPump/h:Load'>
|
403
|
+
<sch:assert role='ERROR' test='h:Units[text()="kWh/year" or text()="W"] or not(h:Units)'>Expected Units to be 'kWh/year' or 'W'</sch:assert>
|
404
|
+
</sch:rule>
|
405
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Pools/h:Pool/h:Heater'>
|
406
|
+
<sch:assert role='ERROR' test='h:Type[text()="gas fired" or text()="electric resistance" or text()="heat pump" or text()="solar" or text()="other" or text()="unknown" or text()="none"] or not(h:Type)'>Expected Type to be 'gas fired' or 'electric resistance' or 'heat pump' or 'solar' or 'other' or 'unknown' or 'none'</sch:assert>
|
407
|
+
</sch:rule>
|
408
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:Pools/h:Pool/h:Heater/h:Load'>
|
409
|
+
<sch:assert role='ERROR' test='h:Units[text()="kWh/year" or text()="therm/year" or text()="W" or text()="Btuh"] or not(h:Units)'>Expected Units to be 'kWh/year' or 'therm/year' or 'W' or 'Btuh'</sch:assert>
|
410
|
+
</sch:rule>
|
411
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:HotTubs/h:HotTub/h:HotTubPumps/h:HotTubPump/h:Load'>
|
412
|
+
<sch:assert role='ERROR' test='h:Units[text()="kWh/year" or text()="W"] or not(h:Units)'>Expected Units to be 'kWh/year' or 'W'</sch:assert>
|
413
|
+
</sch:rule>
|
414
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:HotTubs/h:HotTub/h:Heater'>
|
415
|
+
<sch:assert role='ERROR' test='h:Type[text()="gas fired" or text()="electric resistance" or text()="heat pump" or text()="solar" or text()="other" or text()="unknown" or text()="none"] or not(h:Type)'>Expected Type to be 'gas fired' or 'electric resistance' or 'heat pump' or 'solar' or 'other' or 'unknown' or 'none'</sch:assert>
|
416
|
+
</sch:rule>
|
417
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:HotTubs/h:HotTub/h:Heater/h:Load'>
|
418
|
+
<sch:assert role='ERROR' test='h:Units[text()="kWh/year" or text()="therm/year" or text()="W" or text()="Btuh"] or not(h:Units)'>Expected Units to be 'kWh/year' or 'therm/year' or 'W' or 'Btuh'</sch:assert>
|
419
|
+
</sch:rule>
|
420
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:MiscLoads/h:PlugLoad'>
|
421
|
+
<sch:assert role='ERROR' test='h:PlugLoadType[text()="TV plasma" or text()="TV CRT" or text()="TV other" or text()="computer" or text()="space heater" or text()="water bed" or text()="aquarium" or text()="electric vehicle charging" or text()="well pump" or text()="sauna" or text()="other"] or not(h:PlugLoadType)'>Expected PlugLoadType to be 'TV plasma' or 'TV CRT' or 'TV other' or 'computer' or 'space heater' or 'water bed' or 'aquarium' or 'electric vehicle charging' or 'well pump' or 'sauna' or 'other'</sch:assert>
|
422
|
+
</sch:rule>
|
423
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:MiscLoads/h:PlugLoad/h:Load'>
|
424
|
+
<sch:assert role='ERROR' test='h:Units[text()="kWh/year" or text()="W"] or not(h:Units)'>Expected Units to be 'kWh/year' or 'W'</sch:assert>
|
425
|
+
</sch:rule>
|
426
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:MiscLoads/h:FuelLoad'>
|
427
|
+
<sch:assert role='ERROR' test='h:FuelLoadType[text()="grill" or text()="lighting" or text()="fireplace" or text()="other"] or not(h:FuelLoadType)'>Expected FuelLoadType to be 'grill' or 'lighting' or 'fireplace' or 'other'</sch:assert>
|
428
|
+
<sch:assert role='ERROR' test='h:FuelType[text()="electricity" or text()="renewable electricity" or text()="natural gas" or text()="renewable natural gas" or text()="fuel oil" or text()="fuel oil 1" or text()="fuel oil 2" or text()="fuel oil 4" or text()="fuel oil 5/6" or text()="district steam" or text()="district hot water" or text()="district chilled water" or text()="solar hot water" or text()="propane" or text()="kerosene" or text()="diesel" or text()="coal" or text()="anthracite coal" or text()="bituminous coal" or text()="coke" or text()="wood" or text()="wood pellets" or text()="combination" or text()="other"] or not(h:FuelType)'>Expected FuelType to be 'electricity' or 'renewable electricity' or 'natural gas' or 'renewable natural gas' or 'fuel oil' or 'fuel oil 1' or 'fuel oil 2' or 'fuel oil 4' or 'fuel oil 5/6' or 'district steam' or 'district hot water' or 'district chilled water' or 'solar hot water' or 'propane' or 'kerosene' or 'diesel' or 'coal' or 'anthracite coal' or 'bituminous coal' or 'coke' or 'wood' or 'wood pellets' or 'combination' or 'other'</sch:assert>
|
429
|
+
</sch:rule>
|
430
|
+
<sch:rule context='/h:HPXML/h:Building/h:BuildingDetails/h:MiscLoads/h:FuelLoad/h:Load'>
|
431
|
+
<sch:assert role='ERROR' test='h:Units[text()="therm/year" or text()="Btuh"] or not(h:Units)'>Expected Units to be 'therm/year' or 'Btuh'</sch:assert>
|
432
|
+
</sch:rule>
|
433
|
+
</sch:pattern>
|
434
|
+
</sch:schema>
|