urbanopt-cli 0.9.2 → 0.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/{nightly_build.yml → nightly_ci_build.yml} +6 -5
- data/CHANGELOG.md +16 -2
- data/CMakeLists.txt +7 -7
- data/Gemfile +8 -7
- data/LICENSE.md +18 -15
- data/README.md +2 -1
- data/Rakefile +2 -37
- data/example_files/Gemfile +10 -8
- data/example_files/mappers/Baseline.rb +170 -191
- data/example_files/mappers/ChilledWaterStorage.rb +8 -30
- data/example_files/mappers/ClassProject.rb +2 -27
- data/example_files/mappers/CreateBar.rb +2 -28
- data/example_files/mappers/EvCharging.rb +2 -27
- data/example_files/mappers/FlexibleHotWater.rb +2 -27
- data/example_files/mappers/Floorspace.rb +2 -27
- data/example_files/mappers/HighEfficiency.rb +2 -27
- data/example_files/mappers/HighEfficiencyCreateBar.rb +2 -27
- data/example_files/mappers/HighEfficiencyFloorspace.rb +2 -27
- data/example_files/mappers/PeakHoursMelsShedding.rb +4 -27
- data/example_files/mappers/PeakHoursThermostatAdjust.rb +4 -27
- data/example_files/mappers/ThermalStorage.rb +2 -28
- data/example_files/measures/BuildResidentialModel/measure.rb +30 -60
- data/example_files/measures/BuildResidentialModel/measure.xml +253 -84
- data/example_files/measures/BuildResidentialModel/resources/util.rb +45 -45
- data/example_files/python_deps/dependencies.json +3 -3
- data/example_files/resources/hpxml-measures/.github/pull_request_template.md +1 -1
- data/example_files/resources/hpxml-measures/.github/workflows/config.yml +28 -19
- data/example_files/resources/hpxml-measures/.gitignore +0 -997
- data/example_files/resources/hpxml-measures/.readthedocs.yml +9 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.rb +476 -230
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.xml +244 -75
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/geometry.rb +42 -15
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/build_residential_hpxml_test.rb +24 -9
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/measure.rb +11 -33
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/measure.xml +23 -50
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/resources/README.md +2 -2
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/resources/constants.rb +119 -0
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/resources/schedules.rb +67 -290
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/resources/schedules_config.md +6 -5
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/tests/build_residential_schedule_file_test.rb +78 -349
- data/example_files/resources/hpxml-measures/Changelog.md +80 -10
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.rb +212 -144
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.xml +164 -170
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/airflow.rb +238 -167
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/battery.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constants.rb +12 -4
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constructions.rb +36 -6
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data/unavailable_periods.csv +33 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/energyplus.rb +1 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/geometry.rb +9 -7
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hotwater_appliances.rb +79 -61
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml.rb +387 -124
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +427 -196
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schema/HPXML.xsd +11515 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schema/README.md +1 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schematron/EPvalidator.xml +224 -85
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac.rb +334 -319
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac_sizing.rb +572 -838
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/lighting.rb +162 -68
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/location.rb +4 -20
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/meta_measure.rb +12 -10
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/misc_loads.rb +34 -37
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/output.rb +8 -101
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/psychrometrics.rb +31 -40
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/pv.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedule_files/occupancy-non-stochastic.csv +8761 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedule_files/occupancy-stochastic-10-mins.csv +52561 -52561
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedule_files/occupancy-stochastic.csv +8761 -8761
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedules.rb +384 -155
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/unit_conversions.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/util.rb +2 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/version.rb +2 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/waterheater.rb +68 -90
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/weather.rb +34 -223
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/xmlhelper.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/xmlvalidator.rb +16 -4
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_airflow.rb +94 -40
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_defaults.rb +765 -302
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_enclosure.rb +119 -69
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_generator.rb +8 -8
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hotwater_appliance.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac.rb +51 -11
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac_sizing.rb +196 -9
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_lighting.rb +36 -13
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_miscloads.rb +3 -3
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_pv.rb +2 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_schedules.rb +571 -61
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_validation.rb +190 -81
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_water_heater.rb +11 -11
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_weather.rb +188 -50
- data/example_files/resources/hpxml-measures/README.md +3 -3
- data/example_files/resources/hpxml-measures/ReportSimulationOutput/measure.rb +659 -815
- data/example_files/resources/hpxml-measures/ReportSimulationOutput/measure.xml +301 -1112
- data/example_files/resources/hpxml-measures/ReportSimulationOutput/tests/output_report_test.rb +605 -350
- data/example_files/resources/hpxml-measures/ReportUtilityBills/measure.rb +18 -14
- data/example_files/resources/hpxml-measures/ReportUtilityBills/measure.xml +15 -15
- data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/utility_bills_test.rb +13 -3
- data/example_files/resources/hpxml-measures/docs/source/usage_instructions.rst +3 -3
- data/example_files/resources/hpxml-measures/docs/source/workflow_inputs.rst +894 -596
- data/example_files/resources/hpxml-measures/docs/source/workflow_outputs.rst +127 -76
- data/example_files/resources/hpxml-measures/tasks.rb +185 -2802
- data/example_files/resources/hpxml-measures/workflow/hpxml_inputs.json +3401 -0
- data/example_files/resources/hpxml-measures/workflow/real_homes/house001.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house002.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house003.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house004.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house005.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house006.xml +1 -3
- data/example_files/resources/hpxml-measures/workflow/real_homes/house007.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house008.xml +1 -3
- data/example_files/resources/hpxml-measures/workflow/real_homes/house009.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house010.xml +1 -3
- data/example_files/resources/hpxml-measures/workflow/real_homes/house011.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house012.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house013.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house014.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house015.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house016.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house017.xml +17 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house018.xml +2 -3
- data/example_files/resources/hpxml-measures/workflow/real_homes/house019.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house020.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house021.xml +4 -5
- data/example_files/resources/hpxml-measures/workflow/real_homes/house022.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house023.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house024.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house025.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house026.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house027.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house028.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house029.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house030.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house031.xml +4 -5
- data/example_files/resources/hpxml-measures/workflow/real_homes/house032.xml +3 -3
- data/example_files/resources/hpxml-measures/workflow/real_homes/house033.xml +3 -3
- data/example_files/resources/hpxml-measures/workflow/real_homes/house034.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house035.xml +3 -3
- data/example_files/resources/hpxml-measures/workflow/real_homes/house036.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house037.xml +3 -3
- data/example_files/resources/hpxml-measures/workflow/real_homes/house038.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house039.xml +3 -3
- data/example_files/resources/hpxml-measures/workflow/real_homes/house040.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house041.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house042.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house043.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house044.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house045.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house046.xml +1 -0
- data/example_files/resources/hpxml-measures/workflow/real_homes/house047.xml +1 -0
- data/example_files/resources/hpxml-measures/workflow/run_simulation.rb +12 -8
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-coal.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-portable.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-whole-home.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-multiple.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-gas.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-modified.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-none.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-oil-location-miami-fl.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-oil.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-propane-location-portland-or.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-propane.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-wood.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-cathedral.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-conditioned.xml +9 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-flat.xml +9 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-radiant-barrier.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-unvented-insulated-roof.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-vented.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-battery-scheduled.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-battery.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-bldgtype-single-family-attached-2stories.xml → base-bldgtype-attached-2stories.xml} +610 -639
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-bldgtype-single-family-attached-atticroof-cathedral.xml → base-bldgtype-attached-atticroof-cathedral.xml} +558 -587
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-attached-infil-compartmentalization-test.xml +611 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-bldgtype-single-family-attached.xml → base-bldgtype-attached.xml} +610 -639
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multifamily-buffer-space.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multiple.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-non-freezing-space.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-heated-space.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-housing-unit.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-infil-compartmentalization-test.xml +462 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-bldgtype-multifamily-calctype-operational.xml → base-bldgtype-multifamily-residents-1.xml} +453 -480
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-baseboard.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil-ducted.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-cooling-tower-water-loop-heat-pump.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-baseboard.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-ducted.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-eae.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-water-loop-heat-pump.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-baseboard.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil-ducted.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-water-loop-heat-pump.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-cooling-tower-only-water-loop-heat-pump.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-generator.xml +11 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-ground-loop-ground-to-air-heat-pump.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-laundry-room-multiple-water-heaters.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-laundry-room.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-multiple.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-preconditioning.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-pv.xml +15 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater-recirc.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless-outside.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-2-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-gshp.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-hpwh.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-tankless.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-var-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-dwhr.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-detailed-setpoints.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-dse.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-outside.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-standbyloss.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-with-solar-fraction.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-electric.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-gas.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-hpwh.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-indirect.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-low-flow-fixtures.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-multiple.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-none.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-demand.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-manual.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-nocontrol.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-temperature.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-timer.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-evacuated-tube.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-flat-plate.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-ics.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-fraction.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-indirect-flat-plate.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-thermosyphon-flat-plate.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-coal.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-detailed-setpoints.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-elec-uef.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-outside.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-uef-fhr.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-uef.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-detailed-schedules.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-operating-mode-heat-pump-only.xml +11 -43
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-outside.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-uef.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar-fraction.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-model-type-stratified-detailed-occupancy-stochastic.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-model-type-stratified.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-oil.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-wood.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-detailed-setpoints.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-outside.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-uef.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-uef.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar-fraction.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-propane.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories-garage.xml +19 -25
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-1.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-2.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-4.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-5.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-ceilingtypes.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-floortypes.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-garage.xml +18 -24
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-ach-house-pressure.xml +11 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm-house-pressure.xml +11 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm50.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-ela.xml +549 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-flue.xml +13 -43
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-natural-ach.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-natural-cfm.xml +552 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-orientations.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-overhangs.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-rooftypes.xml +17 -47
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-physical-properties.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-shading.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-storms.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-level.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-thermal-mass.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-walltypes.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-natural-ventilation-availability.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-none.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-physical-properties.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-shading-seasons.xml +559 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-shading.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-storms.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-ambient.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-basement-garage.xml +19 -25
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-complex.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-slab-insulation.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-wall-insulation.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-crawlspace.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-multiple.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-slab.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-above-grade.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-assembly-r.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-wall-insulation.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unvented-crawlspace.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-vented-crawlspace.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-walkout-basement.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-autosized-backup.xml +557 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-cooling-only.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.xml → base-hvac-air-to-air-heat-pump-1-speed-heating-capacity-17f.xml} +552 -583
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-heating-only.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-air-to-air-heat-pump-1-speed-backup-lockout-temperature.xml → base-hvac-air-to-air-heat-pump-1-speed-lockout-temperatures.xml} +562 -586
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-seer2-hspf2.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-2-speed.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed-backup-boiler-hvac-seasons.xml +587 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed-backup-boiler-switchover-temperature.xml +17 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed-backup-boiler.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed-backup-furnace.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-cooling-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-heating-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-acca.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-hers.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-maxload-miami-fl.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-maxload.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed-sizing-methodology-acca.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed-sizing-methodology-hers.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed-sizing-methodology-maxload.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-backup-boiler.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-backup-furnace.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-sizing-methodology-acca.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-sizing-methodology-hers.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-sizing-methodology-maxload.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-boiler-elec-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-boiler-gas-central-ac-1-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-boiler-gas-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-1-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-2-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-var-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-plus-air-to-air-heat-pump-heating.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-air-to-air-heat-pump-1-speed-sizing-methodology-acca.xml +11 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-air-to-air-heat-pump-1-speed-sizing-methodology-hers.xml +11 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-air-to-air-heat-pump-1-speed-sizing-methodology-maxload.xml +11 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-mini-split-heat-pump-ducted-backup-hardsized.xml +553 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-mini-split-heat-pump-ducted.xml +11 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-elec-resistance-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-evap-cooler-furnace-gas.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-floor-furnace-propane-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-elec-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-central-ac-2-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-central-ac-var-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-room-ac.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-cooling-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-heating-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-sizing-methodology-acca.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-sizing-methodology-hers.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-sizing-methodology-maxload.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-air-conditioner-only-ducted.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-cooling-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-heating-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-sizing-methodology-acca.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-sizing-methodology-hers.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-sizing-methodology-maxload.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ductless-backup-baseboard.xml +519 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ductless-backup-stove.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ptac-with-heating.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ptac.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-pthp-sizing-methodology-acca.xml +16 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-pthp-sizing-methodology-hers.xml +16 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-pthp-sizing-methodology-maxload.xml +16 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-heating.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-reverse-cycle-sizing-methodology-acca.xml +16 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-reverse-cycle-sizing-methodology-hers.xml +16 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-reverse-cycle-sizing-methodology-maxload.xml +16 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-sizing-controls.xml +566 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-stove-oil-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-wall-furnace-elec-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-coal-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-elec-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-central-ac-1-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-only-pilot.xml +513 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-oil-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-propane-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-wood-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-1-speed-seer2.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-1-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-2-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-var-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-crankcase-heater-40w.xml +556 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dse.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-lockout-temperatures.xml +560 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml +17 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.xml +17 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.xml +17 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-mini-split-heat-pump-ducted.xml +17 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-area-fractions.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-area-multipliers.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-buried.xml +555 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-effective-rvalue.xml +553 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-leakage-cfm50.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-leakage-percent.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-elec-resistance-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-furnace-gas.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only-ducted.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fireplace-wood-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fixed-heater-gas-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-floor-furnace-propane-only-pilot-light.xml +506 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-floor-furnace-propane-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-coal-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-central-ac-1-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-2-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-var-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only-detailed-setpoints.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only-pilot.xml +542 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-room-ac.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-oil-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-propane-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-wood-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-x3-dse.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-cooling-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-heating-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-air-to-air-heat-pump-1-speed.xml +14 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-air-to-air-heat-pump-2-speed.xml +14 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-air-to-air-heat-pump-var-speed.xml +14 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-central-ac-1-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-central-ac-2-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-central-ac-var-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-ground-to-air-heat-pump.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-mini-split-air-conditioner-only-ducted.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-mini-split-heat-pump-ducted.xml +14 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ducted.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ductless.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-cooling-only.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-heating-only.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless-backup-baseboard.xml +525 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless-backup-furnace.xml +564 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless-backup-stove.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless-heating-capacity-17f.xml +506 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-none.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-portable-heater-gas-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ptac-with-heating-electricity.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ptac-with-heating-natural-gas.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ptac.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-pthp-heating-capacity-17f.xml +513 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-pthp.xml +16 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-33percent.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-ceer.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-detailed-setpoints.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-with-heating.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-with-reverse-cycle.xml +16 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-seasons.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints-daily-schedules.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints-daily-setbacks.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-oil-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-wood-pellets-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized-allow-increased-fixed-capacities.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-wall-furnace-elec-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-ceiling-fans.xml +11 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-holiday.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-kwh-per-year.xml +529 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-mixed.xml +537 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-none-ceiling-fans.xml +516 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-none.xml +1 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-AMY-2012.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-baltimore-md.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-capetown-zaf.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-dallas-tx.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-duluth-mn.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-helena-mt.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-honolulu-hi.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-miami-fl.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-phoenix-az.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-portland-or.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-balanced.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-bath-kitchen-fans.xml +12 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-airflow-fraction-zero.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-dse.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-evap-cooler-only-ducted.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-supplemental-fan-exhaust.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-supplemental-fan-supply.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv-atre-asre.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust-rated-flow-rate.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv-asre.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-multiple.xml +14 -44
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-supply.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-whole-house-fan.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-additional-properties.xml +10 -38
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-none.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-pv-detailed-only.xml +16 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-pv-mixed.xml +16 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-pv.xml +16 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-defaults.xml +14 -37
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-emissions.xml +16 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators-battery-scheduled.xml +12 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators-battery.xml +12 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators.xml +12 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-ground-conductivity.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon.xml +10 -38
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon2.xml +10 -38
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-none.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-neighbor-shading-bldgtype-multifamily.xml +509 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-neighbor-shading.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-shielding-of-home.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-usage-multiplier.xml +10 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-multiple-buildings.xml +30 -138
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery-ah.xml +16 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery-garage.xml +24 -26
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery-round-trip-efficiency.xml +16 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery-scheduled.xml +16 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery.xml +16 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-generators-battery-scheduled.xml +18 -44
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-generators-battery.xml +18 -44
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-generators.xml +18 -44
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv.xml +16 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-residents-0-runperiod-1-month.xml +560 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-residents-0.xml +556 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-calctype-operational-misc-loads-large-uncommon.xml → base-residents-1-misc-loads-large-uncommon.xml} +616 -644
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-calctype-operational-misc-loads-large-uncommon2.xml → base-residents-1-misc-loads-large-uncommon2.xml} +616 -644
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-calctype-operational.xml → base-residents-1.xml} +547 -575
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-calctype-operational-misc-defaults.xml → base-residents-5.xml} +515 -539
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-all-10-mins.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-stochastic-10-mins.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-stochastic-power-outage.xml +565 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-schedules-detailed-occupancy-smooth.xml → base-schedules-detailed-occupancy-stochastic-vacancy-year-round.xml} +563 -583
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-stochastic-vacancy.xml +21 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-stochastic.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-setpoints-daily-schedules.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-setpoints-daily-setbacks.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-setpoints.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-simple-power-outage-natvent-available.xml +565 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-simple-power-outage-natvent-unavailable.xml +565 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-simple-power-outage.xml +620 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-simple-vacancy-year-round.xml +619 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-simple-vacancy.xml +619 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-simple.xml +10 -38
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-calendar-year-custom.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-custom.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-disabled.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-runperiod-1-month.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-temperature-capacitance-multiplier.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins-occupancy-stochastic-10-mins.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins-occupancy-stochastic-60-mins.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-30-mins.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base.xml +10 -37
- data/example_files/resources/hpxml-measures/workflow/template-build-and-run-hpxml-with-stochastic-occupancy.osw +16 -4
- data/example_files/resources/hpxml-measures/workflow/template-run-hpxml-with-stochastic-occupancy-subset.osw +16 -3
- data/example_files/resources/hpxml-measures/workflow/template-run-hpxml-with-stochastic-occupancy.osw +16 -3
- data/example_files/resources/hpxml-measures/workflow/template-run-hpxml.osw +16 -2
- data/example_files/resources/hpxml-measures/workflow/tests/ACCA_Examples/Long_Residence.xml +386 -0
- data/example_files/resources/hpxml-measures/workflow/tests/ACCA_Examples/Vatilo_Residence.xml +381 -0
- data/example_files/resources/hpxml-measures/workflow/tests/ACCA_Examples/Victor_Residence.xml +370 -0
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AC.xml +2 -2
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AC.xml +2 -12
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AL.xml +2 -12
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L302XC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L304XC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L322XC.xml +6 -9
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L324XC.xml +6 -9
- data/example_files/resources/hpxml-measures/workflow/tests/base_results/results.csv +475 -444
- data/example_files/resources/hpxml-measures/workflow/tests/base_results/results_bills.csv +475 -444
- data/example_files/resources/hpxml-measures/workflow/tests/hpxml_translator_test.rb +177 -112
- data/example_files/resources/meta_measure.rb +2 -27
- data/example_files/xml_building/17/README.md +3 -3
- data/lib/uo_cli/version.rb +3 -38
- data/lib/uo_cli.rb +3 -38
- data/uo_cli.gemspec +6 -7
- metadata +70 -51
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/resources/schedules_config.json +0 -388
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schema/HPXMLBaseElements.xsd +0 -6136
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schema/HPXMLDataTypes.xsd +0 -4846
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedule_files/occupancy-smooth.csv +0 -8761
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedule_files/occupancy-stochastic-vacancy.csv +0 -8761
- data/example_files/resources/hpxml-measures/weather/USA_AZ_Phoenix-Sky.Harbor.Intl.AP.722780_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_CO_Colorado.Springs-Peterson.Field.724660_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_CO_Denver.Intl.AP.725650_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_DE_Wilmington-New.Castle.County.AP.724089_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_FL_Miami.Intl.AP.722020_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_HI_Honolulu.Intl.AP.911820_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_MD_Baltimore-Washington.Intl.AP.724060_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_MN_Duluth.Intl.AP.727450_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_MT_Helena.Rgnl.AP.727720_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_NC_Charlotte-Douglas.Intl.AP.723140_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_NJ_Cape.May.County.AP.745966_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_NV_Las.Vegas-McCarran.Intl.AP.723860_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_OR_Portland.Intl.AP.726980_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_TX_Dallas-Fort.Worth.Intl.AP.722590_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/US_CO_Boulder_AMY_2012-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/ZAF_Cape.Town.688160_IWEC-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces.xml +0 -2508
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces2.xml +0 -2508
@@ -11,10 +11,14 @@ require_relative '../resources/xmlvalidator.rb'
|
|
11
11
|
|
12
12
|
class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
13
13
|
def setup
|
14
|
+
OpenStudio::Logger.instance.standardOutLogger.setLogLevel(OpenStudio::Fatal)
|
15
|
+
|
14
16
|
@root_path = File.absolute_path(File.join(File.dirname(__FILE__), '..', '..'))
|
15
17
|
@sample_files_path = File.join(@root_path, 'workflow', 'sample_files')
|
16
|
-
|
17
|
-
@
|
18
|
+
schema_path = File.absolute_path(File.join(@root_path, 'HPXMLtoOpenStudio', 'resources', 'hpxml_schema', 'HPXML.xsd'))
|
19
|
+
@schema_validator = XMLValidator.get_schema_validator(schema_path)
|
20
|
+
@schematron_path = File.join(@root_path, 'HPXMLtoOpenStudio', 'resources', 'hpxml_schematron', 'EPvalidator.xml')
|
21
|
+
@schematron_validator = XMLValidator.get_schematron_validator(@schematron_path)
|
18
22
|
|
19
23
|
@tmp_hpxml_path = File.join(@sample_files_path, 'tmp.xml')
|
20
24
|
@tmp_csv_path = File.join(@sample_files_path, 'tmp.csv')
|
@@ -28,29 +32,11 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
28
32
|
FileUtils.rm_rf(@tmp_output_path)
|
29
33
|
end
|
30
34
|
|
31
|
-
def test_validation_of_sample_files
|
32
|
-
xmls = []
|
33
|
-
Dir["#{@root_path}/workflow/**/*.xml"].sort.each do |xml|
|
34
|
-
next if xml.split('/').include? 'run'
|
35
|
-
|
36
|
-
xmls << xml
|
37
|
-
end
|
38
|
-
|
39
|
-
xmls.each_with_index do |xml, i|
|
40
|
-
puts "[#{i + 1}/#{xmls.size}] Testing #{File.basename(xml)}..."
|
41
|
-
|
42
|
-
# Test validation
|
43
|
-
_test_schema_validation(xml, @hpxml_schema_path)
|
44
|
-
hpxml_doc = HPXML.new(hpxml_path: xml, building_id: 'MyBuilding').to_oga()
|
45
|
-
_test_schematron_validation(xml, hpxml_doc, expected_errors: []) # Ensure no errors
|
46
|
-
end
|
47
|
-
puts
|
48
|
-
end
|
49
|
-
|
50
35
|
def test_validation_of_schematron_doc
|
51
36
|
# Check that the schematron file is valid
|
52
37
|
schematron_schema_path = File.absolute_path(File.join(@root_path, 'HPXMLtoOpenStudio', 'resources', 'hpxml_schematron', 'iso-schematron.xsd'))
|
53
|
-
|
38
|
+
schematron_schema_validator = XMLValidator.get_schema_validator(schematron_schema_path)
|
39
|
+
_test_schema_validation(@schematron_path, schematron_schema_validator)
|
54
40
|
end
|
55
41
|
|
56
42
|
def test_role_attributes_in_schematron_doc
|
@@ -58,10 +44,10 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
58
44
|
puts
|
59
45
|
puts 'Checking for correct role attributes...'
|
60
46
|
|
61
|
-
|
47
|
+
schematron_doc = XMLHelper.parse_file(@schematron_path)
|
62
48
|
|
63
49
|
# check that every assert element has a role attribute
|
64
|
-
XMLHelper.get_elements(
|
50
|
+
XMLHelper.get_elements(schematron_doc, '/sch:schema/sch:pattern/sch:rule/sch:assert').each do |assert_element|
|
65
51
|
assert_test = XMLHelper.get_attribute_value(assert_element, 'test').gsub('h:', '')
|
66
52
|
role_attribute = XMLHelper.get_attribute_value(assert_element, 'role')
|
67
53
|
if role_attribute.nil?
|
@@ -72,7 +58,7 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
72
58
|
end
|
73
59
|
|
74
60
|
# check that every report element has a role attribute
|
75
|
-
XMLHelper.get_elements(
|
61
|
+
XMLHelper.get_elements(schematron_doc, '/sch:schema/sch:pattern/sch:rule/sch:report').each do |report_element|
|
76
62
|
report_test = XMLHelper.get_attribute_value(report_element, 'test').gsub('h:', '')
|
77
63
|
role_attribute = XMLHelper.get_attribute_value(report_element, 'role')
|
78
64
|
if role_attribute.nil?
|
@@ -123,12 +109,18 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
123
109
|
'generator-number-of-bedrooms-served' => ['Expected NumberofBedroomsServed to be greater than ../../../../BuildingSummary/BuildingConstruction/NumberofBedrooms [context: /HPXML/Building/BuildingDetails/Systems/extension/Generators/Generator[IsSharedSystem="true"], id: "Generator1"]'],
|
124
110
|
'generator-output-greater-than-consumption' => ['Expected AnnualConsumptionkBtu to be greater than AnnualOutputkWh*3412 [context: /HPXML/Building/BuildingDetails/Systems/extension/Generators/Generator, id: "Generator1"]'],
|
125
111
|
'heat-pump-capacity-17f' => ['Expected HeatingCapacity17F to be less than or equal to HeatingCapacity'],
|
126
|
-
'heat-pump-
|
112
|
+
'heat-pump-lockout-temperatures' => ['Expected CompressorLockoutTemperature to be less than BackupHeatingLockoutTemperature'],
|
127
113
|
'heat-pump-multiple-backup-systems' => ['Expected 0 or 1 element(s) for xpath: HeatPump/BackupSystem [context: /HPXML/Building/BuildingDetails]'],
|
128
114
|
'hvac-distribution-return-duct-leakage-missing' => ['Expected 1 element(s) for xpath: DuctLeakageMeasurement[DuctType="return"]/DuctLeakage[(Units="CFM25" or Units="CFM50" or Units="Percent") and TotalOrToOutside="to outside"] [context: /HPXML/Building/BuildingDetails/Systems/HVAC/HVACDistribution/DistributionSystemType/AirDistribution[AirDistributionType[text()="regular velocity" or text()="gravity"]], id: "HVACDistribution1"]'],
|
129
115
|
'hvac-frac-load-served' => ['Expected sum(FractionHeatLoadServed) to be less than or equal to 1 [context: /HPXML/Building/BuildingDetails]',
|
130
116
|
'Expected sum(FractionCoolLoadServed) to be less than or equal to 1 [context: /HPXML/Building/BuildingDetails]'],
|
117
|
+
'hvac-location-heating-system' => ['A location is specified as "basement - unconditioned" but no surfaces were found adjacent to this space type.'],
|
118
|
+
'hvac-location-cooling-system' => ['A location is specified as "basement - unconditioned" but no surfaces were found adjacent to this space type.'],
|
119
|
+
'hvac-location-heat-pump' => ['A location is specified as "basement - unconditioned" but no surfaces were found adjacent to this space type.'],
|
120
|
+
'hvac-sizing-humidity-setpoint' => ['Expected ManualJInputs/HumiditySetpoint to be less than 1'],
|
121
|
+
'hvac-negative-crankcase-heater-watts' => ['Expected extension/CrankcaseHeaterPowerWatts to be greater than or equal to 0.0.'],
|
131
122
|
'incomplete-integrated-heating' => ['Expected 1 element(s) for xpath: IntegratedHeatingSystemFractionHeatLoadServed'],
|
123
|
+
'invalid-airflow-defect-ratio' => ['Expected extension/AirflowDefectRatio to be 0'],
|
132
124
|
'invalid-assembly-effective-rvalue' => ["Element 'AssemblyEffectiveRValue': [facet 'minExclusive'] The value '0.0' must be greater than '0'."],
|
133
125
|
'invalid-battery-capacities-ah' => ['Expected UsableCapacity to be less than NominalCapacity'],
|
134
126
|
'invalid-battery-capacities-kwh' => ['Expected UsableCapacity to be less than NominalCapacity'],
|
@@ -146,6 +138,9 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
146
138
|
'Expected DistanceToBottomOfInsulation to be greater than or equal to DistanceToTopOfInsulation [context: /HPXML/Building/BuildingDetails/Enclosure/FoundationWalls/FoundationWall/Insulation/Layer[InstallationType="continuous - exterior" or InstallationType="continuous - interior"], id: "FoundationWall1Insulation"]',
|
147
139
|
'Expected DistanceToBottomOfInsulation to be less than or equal to ../../Height [context: /HPXML/Building/BuildingDetails/Enclosure/FoundationWalls/FoundationWall/Insulation/Layer[InstallationType="continuous - exterior" or InstallationType="continuous - interior"], id: "FoundationWall1Insulation"]'],
|
148
140
|
'invalid-ground-conductivity' => ['Expected extension/GroundConductivity to be greater than 0'],
|
141
|
+
'invalid-heat-pump-capacity-retention' => ['Expected Fraction to be less than 1',
|
142
|
+
'Expected Temperature to be less than or equal to 17'],
|
143
|
+
'invalid-heat-pump-capacity-retention2' => ['Expected Fraction to be greater than or equal to 0'],
|
149
144
|
'invalid-hvac-installation-quality' => ['Expected extension/AirflowDefectRatio to be greater than or equal to -0.9 [context: /HPXML/Building/BuildingDetails/Systems/HVAC/HVACPlant/HeatPump[HeatPumpType="air-to-air"], id: "HeatPump1"]',
|
150
145
|
'Expected extension/ChargeDefectRatio to be greater than or equal to -0.9 [context: /HPXML/Building/BuildingDetails/Systems/HVAC/HVACPlant/HeatPump[HeatPumpType="air-to-air"], id: "HeatPump1"]'],
|
151
146
|
'invalid-hvac-installation-quality2' => ['Expected extension/AirflowDefectRatio to be less than or equal to 9 [context: /HPXML/Building/BuildingDetails/Systems/HVAC/HVACPlant/HeatPump[HeatPumpType="air-to-air"], id: "HeatPump1"]',
|
@@ -159,11 +154,30 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
159
154
|
"Element 'EnergyFactor': [facet 'maxInclusive'] The value '5.1' is greater than the maximum value allowed ('5')."],
|
160
155
|
'invalid-insulation-top' => ["Element 'DistanceToTopOfInsulation': [facet 'minInclusive'] The value '-0.5' is less than the minimum value allowed ('0')."],
|
161
156
|
'invalid-integrated-heating' => ['Expected 0 element(s) for xpath: IntegratedHeatingSystemFuel'],
|
157
|
+
'invalid-lighting-groups' => ['Expected 1 element(s) for xpath: ../LightingGroup[LightingType[CompactFluorescent] and Location="interior"]/FractionofUnitsInLocation | Load[Units="kWh/year"]/Value',
|
158
|
+
'Expected 1 element(s) for xpath: ../LightingGroup[LightingType[CompactFluorescent] and Location="interior"]/FractionofUnitsInLocation | Load[Units="kWh/year"]/Value',
|
159
|
+
'Expected 1 element(s) for xpath: ../LightingGroup[LightingType[CompactFluorescent] and Location="exterior"]/FractionofUnitsInLocation | Load[Units="kWh/year"]/Value',
|
160
|
+
'Expected 1 element(s) for xpath: ../LightingGroup[LightingType[CompactFluorescent] and Location="exterior"]/FractionofUnitsInLocation | Load[Units="kWh/year"]/Value',
|
161
|
+
'Expected 1 element(s) for xpath: ../LightingGroup[LightingType[CompactFluorescent] and Location="garage"]/FractionofUnitsInLocation | Load[Units="kWh/year"]/Value',
|
162
|
+
'Expected 1 element(s) for xpath: ../LightingGroup[LightingType[CompactFluorescent] and Location="garage"]/FractionofUnitsInLocation | Load[Units="kWh/year"]/Value'],
|
163
|
+
'invalid-lighting-groups2' => ['Expected 1 element(s) for xpath: ../LightingGroup[LightingType[CompactFluorescent] and Location="interior"]/FractionofUnitsInLocation | Load[Units="kWh/year"]/Value',
|
164
|
+
'Expected 1 element(s) for xpath: ../LightingGroup[LightingType[CompactFluorescent] and Location="interior"]/FractionofUnitsInLocation | Load[Units="kWh/year"]/Value',
|
165
|
+
'Expected 1 element(s) for xpath: ../LightingGroup[LightingType[CompactFluorescent] and Location="interior"]/FractionofUnitsInLocation | Load[Units="kWh/year"]/Value',
|
166
|
+
'Expected 1 element(s) for xpath: ../LightingGroup[LightingType[CompactFluorescent] and Location="interior"]/FractionofUnitsInLocation | Load[Units="kWh/year"]/Value',
|
167
|
+
'Expected 1 element(s) for xpath: ../LightingGroup[LightingType[CompactFluorescent] and Location="exterior"]/FractionofUnitsInLocation | Load[Units="kWh/year"]/Value',
|
168
|
+
'Expected 1 element(s) for xpath: ../LightingGroup[LightingType[CompactFluorescent] and Location="exterior"]/FractionofUnitsInLocation | Load[Units="kWh/year"]/Value',
|
169
|
+
'Expected 1 element(s) for xpath: ../LightingGroup[LightingType[CompactFluorescent] and Location="exterior"]/FractionofUnitsInLocation | Load[Units="kWh/year"]/Value',
|
170
|
+
'Expected 1 element(s) for xpath: ../LightingGroup[LightingType[CompactFluorescent] and Location="exterior"]/FractionofUnitsInLocation | Load[Units="kWh/year"]/Value',
|
171
|
+
'Expected 1 element(s) for xpath: ../LightingGroup[LightingType[CompactFluorescent] and Location="garage"]/FractionofUnitsInLocation | Load[Units="kWh/year"]/Value',
|
172
|
+
'Expected 1 element(s) for xpath: ../LightingGroup[LightingType[CompactFluorescent] and Location="garage"]/FractionofUnitsInLocation | Load[Units="kWh/year"]/Value',
|
173
|
+
'Expected 1 element(s) for xpath: ../LightingGroup[LightingType[CompactFluorescent] and Location="garage"]/FractionofUnitsInLocation | Load[Units="kWh/year"]/Value',
|
174
|
+
'Expected 1 element(s) for xpath: ../LightingGroup[LightingType[CompactFluorescent] and Location="garage"]/FractionofUnitsInLocation | Load[Units="kWh/year"]/Value'],
|
162
175
|
'invalid-natvent-availability' => ['Expected extension/NaturalVentilationAvailabilityDaysperWeek to be less than or equal to 7'],
|
163
176
|
'invalid-natvent-availability2' => ['Expected extension/NaturalVentilationAvailabilityDaysperWeek to be greater than or equal to 0'],
|
164
177
|
'invalid-number-of-bedrooms-served' => ['Expected extension/NumberofBedroomsServed to be greater than ../../../BuildingSummary/BuildingConstruction/NumberofBedrooms [context: /HPXML/Building/BuildingDetails/Systems/Photovoltaics/PVSystem[IsSharedSystem="true"], id: "PVSystem1"]'],
|
165
178
|
'invalid-number-of-conditioned-floors' => ['Expected NumberofConditionedFloors to be greater than or equal to NumberofConditionedFloorsAboveGrade [context: /HPXML/Building/BuildingDetails/BuildingSummary/BuildingConstruction]'],
|
166
179
|
'invalid-number-of-units-served' => ['Expected NumberofUnitsServed to be greater than 1 [context: /HPXML/Building/BuildingDetails/Systems/WaterHeating/WaterHeatingSystem[IsSharedSystem="true"], id: "WaterHeatingSystem1"]'],
|
180
|
+
'invalid-pilot-light-heating-system' => ['Expected 1 element(s) for xpath: ../../HeatingSystemFuel[text()!="electricity"]'],
|
167
181
|
'invalid-shared-vent-in-unit-flowrate' => ['Expected RatedFlowRate to be greater than extension/InUnitFlowRate [context: /HPXML/Building/BuildingDetails/Systems/MechanicalVentilation/VentilationFans/VentilationFan[UsedForWholeBuildingVentilation="true" and IsSharedSystem="true"], id: "VentilationFan1"]'],
|
168
182
|
'invalid-timestep' => ['Expected Timestep to be 60, 30, 20, 15, 12, 10, 6, 5, 4, 3, 2, or 1'],
|
169
183
|
'invalid-timezone-utcoffset-low' => ["Element 'UTCOffset': [facet 'minInclusive'] The value '-13.0' is less than the minimum value allowed ('-12')."],
|
@@ -179,7 +193,6 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
179
193
|
'missing-duct-location' => ['Expected 0 element(s) for xpath: FractionDuctArea | DuctSurfaceArea [context: /HPXML/Building/BuildingDetails/Systems/HVAC/HVACDistribution/DistributionSystemType/AirDistribution/Ducts[not(DuctLocation)], id: "Ducts2"]'],
|
180
194
|
'missing-elements' => ['Expected 1 element(s) for xpath: NumberofConditionedFloors [context: /HPXML/Building/BuildingDetails/BuildingSummary/BuildingConstruction]',
|
181
195
|
'Expected 1 element(s) for xpath: ConditionedFloorArea [context: /HPXML/Building/BuildingDetails/BuildingSummary/BuildingConstruction]'],
|
182
|
-
'missing-num-residents' => ['Expected 1 element(s) for xpath: NumberofResidents'],
|
183
196
|
'multifamily-reference-appliance' => ['There are references to "other housing unit" but ResidentialFacilityType is not "single-family attached" or "apartment unit".'],
|
184
197
|
'multifamily-reference-duct' => ['There are references to "other multifamily buffer space" but ResidentialFacilityType is not "single-family attached" or "apartment unit".'],
|
185
198
|
'multifamily-reference-surface' => ['There are references to "other heated space" but ResidentialFacilityType is not "single-family attached" or "apartment unit".'],
|
@@ -326,11 +339,11 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
326
339
|
elsif ['heat-pump-capacity-17f'].include? error_case
|
327
340
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-hvac-air-to-air-heat-pump-1-speed.xml'))
|
328
341
|
hpxml.heat_pumps[0].heating_capacity_17F = hpxml.heat_pumps[0].heating_capacity + 1000.0
|
329
|
-
|
330
|
-
hpxml =
|
331
|
-
|
332
|
-
hpxml.
|
333
|
-
hpxml.heat_pumps[0].
|
342
|
+
hpxml.heat_pumps[0].heating_capacity_retention_fraction = nil
|
343
|
+
hpxml.heat_pumps[0].heating_capacity_retention_temp = nil
|
344
|
+
elsif ['heat-pump-lockout-temperatures'].include? error_case
|
345
|
+
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-hvac-air-to-air-heat-pump-1-speed-lockout-temperatures.xml'))
|
346
|
+
hpxml.heat_pumps[0].compressor_lockout_temp = hpxml.heat_pumps[0].backup_heating_lockout_temp + 1
|
334
347
|
elsif ['heat-pump-multiple-backup-systems'].include? error_case
|
335
348
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-hvac-air-to-air-heat-pump-var-speed-backup-boiler.xml'))
|
336
349
|
hpxml.heating_systems << hpxml.heating_systems[0].dup
|
@@ -352,9 +365,27 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
352
365
|
hpxml.cooling_systems[0].primary_system = true
|
353
366
|
hpxml.heat_pumps[-1].primary_heating_system = false
|
354
367
|
hpxml.heat_pumps[-1].primary_cooling_system = false
|
368
|
+
elsif ['hvac-location-heating-system'].include? error_case
|
369
|
+
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-hvac-boiler-oil-only.xml'))
|
370
|
+
hpxml.heating_systems[0].location = HPXML::LocationBasementUnconditioned
|
371
|
+
elsif ['hvac-location-cooling-system'].include? error_case
|
372
|
+
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-hvac-central-ac-only-1-speed.xml'))
|
373
|
+
hpxml.cooling_systems[0].location = HPXML::LocationBasementUnconditioned
|
374
|
+
elsif ['hvac-location-heat-pump'].include? error_case
|
375
|
+
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-hvac-air-to-air-heat-pump-1-speed.xml'))
|
376
|
+
hpxml.heat_pumps[0].location = HPXML::LocationBasementUnconditioned
|
377
|
+
elsif ['hvac-sizing-humidity-setpoint'].include? error_case
|
378
|
+
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base.xml'))
|
379
|
+
hpxml.header.manualj_humidity_setpoint = 50
|
380
|
+
elsif ['hvac-negative-crankcase-heater-watts'].include? error_case
|
381
|
+
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base.xml'))
|
382
|
+
hpxml.cooling_systems[0].crankcase_heater_watts = -10
|
355
383
|
elsif ['incomplete-integrated-heating'].include? error_case
|
356
384
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-hvac-ptac-with-heating-electricity.xml'))
|
357
385
|
hpxml.cooling_systems[0].integrated_heating_system_fraction_heat_load_served = nil
|
386
|
+
elsif ['invalid-airflow-defect-ratio'].include? error_case
|
387
|
+
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-hvac-mini-split-heat-pump-ductless.xml'))
|
388
|
+
hpxml.heat_pumps[0].airflow_defect_ratio = -0.25
|
358
389
|
elsif ['invalid-assembly-effective-rvalue'].include? error_case
|
359
390
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base.xml'))
|
360
391
|
hpxml.walls[0].insulation_assembly_r_value = 0.0
|
@@ -391,6 +422,16 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
391
422
|
elsif ['invalid-ground-conductivity'].include? error_case
|
392
423
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base.xml'))
|
393
424
|
hpxml.site.ground_conductivity = 0.0
|
425
|
+
elsif ['invalid-heat-pump-capacity-retention'].include? error_case
|
426
|
+
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-hvac-air-to-air-heat-pump-1-speed.xml'))
|
427
|
+
hpxml.heat_pumps[0].heating_capacity_17F = nil
|
428
|
+
hpxml.heat_pumps[0].heating_capacity_retention_fraction = 1.5
|
429
|
+
hpxml.heat_pumps[0].heating_capacity_retention_temp = 30
|
430
|
+
elsif ['invalid-heat-pump-capacity-retention2'].include? error_case
|
431
|
+
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-hvac-air-to-air-heat-pump-1-speed.xml'))
|
432
|
+
hpxml.heat_pumps[0].heating_capacity_17F = nil
|
433
|
+
hpxml.heat_pumps[0].heating_capacity_retention_fraction = -1
|
434
|
+
hpxml.heat_pumps[0].heating_capacity_retention_temp = 5
|
394
435
|
elsif ['invalid-hvac-installation-quality'].include? error_case
|
395
436
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-hvac-air-to-air-heat-pump-1-speed.xml'))
|
396
437
|
hpxml.heat_pumps[0].airflow_defect_ratio = -99
|
@@ -420,6 +461,28 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
420
461
|
hpxml.cooling_systems[0].integrated_heating_system_fuel = HPXML::FuelTypeElectricity
|
421
462
|
hpxml.cooling_systems[0].integrated_heating_system_efficiency_percent = 0.98
|
422
463
|
hpxml.cooling_systems[0].integrated_heating_system_fraction_heat_load_served = 1.0
|
464
|
+
elsif ['invalid-lighting-groups'].include? error_case
|
465
|
+
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-enclosure-garage.xml'))
|
466
|
+
[HPXML::LocationInterior, HPXML::LocationExterior, HPXML::LocationGarage].each do |ltg_loc|
|
467
|
+
hpxml.lighting_groups.each do |lg|
|
468
|
+
next unless lg.location == ltg_loc
|
469
|
+
|
470
|
+
lg.delete
|
471
|
+
break
|
472
|
+
end
|
473
|
+
end
|
474
|
+
elsif ['invalid-lighting-groups2'].include? error_case
|
475
|
+
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-enclosure-garage.xml'))
|
476
|
+
[HPXML::LocationInterior, HPXML::LocationExterior, HPXML::LocationGarage].each do |ltg_loc|
|
477
|
+
hpxml.lighting_groups.each do |lg|
|
478
|
+
next unless lg.location == ltg_loc
|
479
|
+
|
480
|
+
hpxml.lighting_groups << lg.dup
|
481
|
+
hpxml.lighting_groups[-1].id = "LightingGroup#{hpxml.lighting_groups.size}"
|
482
|
+
hpxml.lighting_groups[-1].fraction_of_units_in_location = 0.0
|
483
|
+
break
|
484
|
+
end
|
485
|
+
end
|
423
486
|
elsif ['invalid-natvent-availability'].include? error_case
|
424
487
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base.xml'))
|
425
488
|
hpxml.header.natvent_days_per_week = 8
|
@@ -435,6 +498,9 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
435
498
|
elsif ['invalid-number-of-units-served'].include? error_case
|
436
499
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-bldgtype-multifamily-shared-water-heater.xml'))
|
437
500
|
hpxml.water_heating_systems[0].number_of_units_served = 1
|
501
|
+
elsif ['invalid-pilot-light-heating-system'].include? error_case
|
502
|
+
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-hvac-floor-furnace-propane-only-pilot-light.xml'))
|
503
|
+
hpxml.heating_systems[0].heating_system_fuel = HPXML::FuelTypeElectricity
|
438
504
|
elsif ['invalid-shared-vent-in-unit-flowrate'].include? error_case
|
439
505
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-bldgtype-multifamily-shared-mechvent.xml'))
|
440
506
|
hpxml.ventilation_fans[0].rated_flow_rate = 80
|
@@ -459,7 +525,7 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
459
525
|
hpxml.windows[1].overhangs_distance_to_bottom_of_window = 1.0
|
460
526
|
elsif ['lighting-fractions'].include? error_case
|
461
527
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base.xml'))
|
462
|
-
int_cfl = hpxml.lighting_groups.
|
528
|
+
int_cfl = hpxml.lighting_groups.find { |lg| lg.location == HPXML::LocationInterior && lg.lighting_type == HPXML::LightingTypeCFL }
|
463
529
|
int_cfl.fraction_of_units_in_location = 0.8
|
464
530
|
elsif ['missing-cfis-supplemental-fan'].include? error_case
|
465
531
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-mechvent-cfis.xml'))
|
@@ -479,9 +545,6 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
479
545
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base.xml'))
|
480
546
|
hpxml.building_construction.number_of_conditioned_floors = nil
|
481
547
|
hpxml.building_construction.conditioned_floor_area = nil
|
482
|
-
elsif ['missing-num-residents'].include? error_case
|
483
|
-
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-calctype-operational.xml'))
|
484
|
-
hpxml.building_occupancy.number_of_residents = nil
|
485
548
|
elsif ['multifamily-reference-appliance'].include? error_case
|
486
549
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base.xml'))
|
487
550
|
hpxml.clothes_washers[0].location = HPXML::LocationOtherHousingUnit
|
@@ -546,8 +609,11 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
546
609
|
'EnergyFactor should typically be greater than or equal to 0.45.',
|
547
610
|
'No space cooling specified, the model will not include space cooling energy use.'],
|
548
611
|
'dhw-setpoint-low' => ['Hot water setpoint should typically be greater than or equal to 110 deg-F.'],
|
612
|
+
'erv-atre-low' => ['Adjusted total recovery efficiency should typically be at least half of the adjusted sensible recovery efficiency.'],
|
613
|
+
'erv-tre-low' => ['Total recovery efficiency should typically be at least half of the sensible recovery efficiency.'],
|
549
614
|
'garage-ventilation' => ['Ventilation fans for the garage are not currently modeled.'],
|
550
|
-
'
|
615
|
+
'heat-pump-low-backup-switchover-temp' => ['BackupHeatingSwitchoverTemperature is below 30 deg-F; this may result in significant unmet hours if the heat pump does not have sufficient capacity.'],
|
616
|
+
'heat-pump-low-backup-lockout-temp' => ['BackupHeatingLockoutTemperature is below 30 deg-F; this may result in significant unmet hours if the heat pump does not have sufficient capacity.'],
|
551
617
|
'hvac-dse-low' => ['Heating DSE should typically be greater than or equal to 0.5.',
|
552
618
|
'Cooling DSE should typically be greater than or equal to 0.5.'],
|
553
619
|
'hvac-capacities-low' => ['Heating capacity should typically be greater than or equal to 1000 Btu/hr.',
|
@@ -570,12 +636,12 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
570
636
|
'Backup heating capacity should typically be greater than or equal to 1000 Btu/hr.',
|
571
637
|
'Backup heating capacity should typically be greater than or equal to 1000 Btu/hr.'],
|
572
638
|
'hvac-efficiencies-low' => ['Percent efficiency should typically be greater than or equal to 0.95.',
|
573
|
-
'AFUE should typically be greater than or equal to 0.
|
574
|
-
'AFUE should typically be greater than or equal to 0.
|
575
|
-
'AFUE should typically be greater than or equal to 0.
|
576
|
-
'AFUE should typically be greater than or equal to 0.
|
577
|
-
'AFUE should typically be greater than or equal to 0.
|
578
|
-
'Percent efficiency should typically be greater than or equal to 0.
|
639
|
+
'AFUE should typically be greater than or equal to 0.5.',
|
640
|
+
'AFUE should typically be greater than or equal to 0.5.',
|
641
|
+
'AFUE should typically be greater than or equal to 0.5.',
|
642
|
+
'AFUE should typically be greater than or equal to 0.5.',
|
643
|
+
'AFUE should typically be greater than or equal to 0.5.',
|
644
|
+
'Percent efficiency should typically be greater than or equal to 0.5.',
|
579
645
|
'SEER should typically be greater than or equal to 8.',
|
580
646
|
'EER should typically be greater than or equal to 8.',
|
581
647
|
'SEER should typically be greater than or equal to 8.',
|
@@ -588,6 +654,11 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
588
654
|
'Cooling setpoint should typically be less than or equal to 86 deg-F.'],
|
589
655
|
'hvac-setpoints-low' => ['Heating setpoint should typically be greater than or equal to 58 deg-F.',
|
590
656
|
'Cooling setpoint should typically be greater than or equal to 68 deg-F.'],
|
657
|
+
'integrated-heating-efficiency-low' => ['Percent efficiency should typically be greater than or equal to 0.5.'],
|
658
|
+
'lighting-groups-missing' => ['No interior lighting specified, the model will not include interior lighting energy use.',
|
659
|
+
'No exterior lighting specified, the model will not include exterior lighting energy use.',
|
660
|
+
'No garage lighting specified, the model will not include garage lighting energy use.'],
|
661
|
+
'missing-attached-surfaces' => ['ResidentialFacilityType is single-family attached or apartment unit, but no attached surfaces were found. This may result in erroneous results (e.g., for infiltration).'],
|
591
662
|
'slab-zero-exposed-perimeter' => ['Slab has zero exposed perimeter, this may indicate an input error.'],
|
592
663
|
'wrong-units' => ['Thickness is greater than 12 inches; this may indicate incorrect units.',
|
593
664
|
'Thickness is less than 1 inch; this may indicate incorrect units.',
|
@@ -620,13 +691,22 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
620
691
|
elsif ['dhw-setpoint-low'].include? warning_case
|
621
692
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base.xml'))
|
622
693
|
hpxml.water_heating_systems[0].temperature = 100
|
694
|
+
elsif ['erv-atre-low'].include? warning_case
|
695
|
+
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-mechvent-erv-atre-asre.xml'))
|
696
|
+
hpxml.ventilation_fans[0].total_recovery_efficiency_adjusted = 0.1
|
697
|
+
elsif ['erv-tre-low'].include? warning_case
|
698
|
+
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-mechvent-erv.xml'))
|
699
|
+
hpxml.ventilation_fans[0].total_recovery_efficiency = 0.1
|
623
700
|
elsif ['garage-ventilation'].include? warning_case
|
624
701
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base.xml'))
|
625
702
|
hpxml.ventilation_fans.add(id: 'VentilationFan1',
|
626
703
|
used_for_garage_ventilation: true)
|
627
|
-
elsif ['
|
628
|
-
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-hvac-
|
629
|
-
hpxml.
|
704
|
+
elsif ['heat-pump-low-backup-switchover-temp'].include? warning_case
|
705
|
+
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml'))
|
706
|
+
hpxml.heat_pumps[0].backup_heating_switchover_temp = 25.0
|
707
|
+
elsif ['heat-pump-low-backup-lockout-temp'].include? warning_case
|
708
|
+
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-hvac-air-to-air-heat-pump-1-speed-lockout-temperatures.xml'))
|
709
|
+
hpxml.heat_pumps[0].backup_heating_lockout_temp = 25.0
|
630
710
|
elsif ['hvac-dse-low'].include? warning_case
|
631
711
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-hvac-dse.xml'))
|
632
712
|
hpxml.hvac_distributions[0].annual_heating_dse = 0.1
|
@@ -681,6 +761,18 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
681
761
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base.xml'))
|
682
762
|
hpxml.hvac_controls[0].heating_setpoint_temp = 0
|
683
763
|
hpxml.hvac_controls[0].cooling_setpoint_temp = 0
|
764
|
+
elsif ['integrated-heating-efficiency-low'].include? warning_case
|
765
|
+
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-hvac-ptac-with-heating-electricity.xml'))
|
766
|
+
hpxml.cooling_systems[0].integrated_heating_system_efficiency_percent = 0.4
|
767
|
+
elsif ['lighting-groups-missing'].include? warning_case
|
768
|
+
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-enclosure-garage.xml'))
|
769
|
+
hpxml.lighting_groups.reverse_each do |lg|
|
770
|
+
lg.delete
|
771
|
+
end
|
772
|
+
elsif ['missing-attached-surfaces'].include? warning_case
|
773
|
+
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base.xml'))
|
774
|
+
hpxml.building_construction.residential_facility_type = HPXML::ResidentialTypeSFA
|
775
|
+
hpxml.air_infiltration_measurements[0].infiltration_type = HPXML::InfiltrationTypeUnitExterior
|
684
776
|
elsif ['slab-zero-exposed-perimeter'].include? warning_case
|
685
777
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base.xml'))
|
686
778
|
hpxml.slabs[0].exposed_perimeter = 0
|
@@ -720,6 +812,7 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
720
812
|
'emissions-wrong-filename' => ["Emissions File file path 'invalid-wrong-filename.csv' does not exist."],
|
721
813
|
'emissions-wrong-rows' => ['Emissions File has invalid number of rows'],
|
722
814
|
'heat-pump-backup-system-load-fraction' => ['Heat pump backup system cannot have a fraction heat load served specified.'],
|
815
|
+
'heat-pump-switchover-temp-elec-backup' => ['Switchover temperature should not be used for a heat pump with electric backup; use compressor lockout temperature instead.'],
|
723
816
|
'hvac-distribution-multiple-attached-cooling' => ["Multiple cooling systems found attached to distribution system 'HVACDistribution2'."],
|
724
817
|
'hvac-distribution-multiple-attached-heating' => ["Multiple heating systems found attached to distribution system 'HVACDistribution1'."],
|
725
818
|
'hvac-dse-multiple-attached-cooling' => ["Multiple cooling systems found attached to distribution system 'HVACDistribution1'."],
|
@@ -745,12 +838,14 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
745
838
|
'invalid-schema-version' => ["Element 'HPXML', attribute 'schemaVersion'"],
|
746
839
|
'invalid-skylights-physical-properties' => ["Could not lookup UFactor and SHGC for skylight 'Skylight2'."],
|
747
840
|
'invalid-runperiod' => ['Run Period End Day of Month (31) must be one of: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30.'],
|
841
|
+
'invalid-shading-season' => ['Shading Summer Season End Day of Month (31) must be one of: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30.'],
|
842
|
+
'invalid-unavailable-period' => ['Unavailable Period End Day of Month (31) must be one of: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30.'],
|
748
843
|
'invalid-windows-physical-properties' => ["Could not lookup UFactor and SHGC for window 'Window3'."],
|
844
|
+
'inverter-unequal-efficiencies' => ['Expected all InverterEfficiency values to be equal.'],
|
749
845
|
'leap-year-TMY' => ['Specified a leap year (2008) but weather data has 8760 hours.'],
|
750
846
|
'net-area-negative-wall' => ["Calculated a negative net surface area for surface 'Wall1'."],
|
751
847
|
'net-area-negative-roof' => ["Calculated a negative net surface area for surface 'Roof1'."],
|
752
848
|
'orphaned-hvac-distribution' => ["Distribution system 'HVACDistribution1' found but no HVAC system attached to it."],
|
753
|
-
'pv-unequal-inverter-efficiencies' => ['Expected all InverterEfficiency values to be equal.'],
|
754
849
|
'refrigerators-multiple-primary' => ['More than one refrigerator designated as the primary.'],
|
755
850
|
'refrigerators-no-primary' => ['Could not find a primary refrigerator.'],
|
756
851
|
'repeated-relatedhvac-dhw-indirect' => ["RelatedHVACSystem 'HeatingSystem1' is attached to multiple water heating systems."],
|
@@ -759,7 +854,6 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
759
854
|
'schedule-detailed-bad-values-negative' => ["Schedule min value for column 'lighting_interior' must be non-negative."],
|
760
855
|
'schedule-detailed-bad-values-non-numeric' => ["Schedule value must be numeric for column 'lighting_interior'."],
|
761
856
|
'schedule-detailed-bad-values-mode-negative' => ["Schedule value for column 'water_heater_operating_mode' must be either 0 or 1."],
|
762
|
-
'schedule-detailed-bad-values-mode-fraction' => ["Schedule value for column 'vacancy' must be either 0 or 1."],
|
763
857
|
'schedule-detailed-duplicate-columns' => ["Schedule column name 'occupants' is duplicated."],
|
764
858
|
'schedule-detailed-wrong-filename' => ["Schedules file path 'invalid-wrong-filename.csv' does not exist."],
|
765
859
|
'schedule-detailed-wrong-rows' => ["Schedule has invalid number of rows (8759) for column 'occupants'. Must be one of: 8760, 17520, 26280, 35040, 43800, 52560, 87600, 105120, 131400, 175200, 262800, 525600."],
|
@@ -770,13 +864,15 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
770
864
|
'unattached-cfis' => ["Attached HVAC distribution system 'foobar' not found for ventilation fan 'VentilationFan1'."],
|
771
865
|
'unattached-door' => ["Attached wall 'foobar' not found for door 'Door1'."],
|
772
866
|
'unattached-hvac-distribution' => ["Attached HVAC distribution system 'foobar' not found for HVAC system 'HeatingSystem1'."],
|
867
|
+
'unattached-pv-system' => ["Attached inverter 'foobar' not found for pv system 'PVSystem1'."],
|
773
868
|
'unattached-skylight' => ["Attached roof 'foobar' not found for skylight 'Skylight1'."],
|
774
869
|
'unattached-solar-thermal-system' => ["Attached water heating system 'foobar' not found for solar thermal system 'SolarThermalSystem1'."],
|
775
870
|
'unattached-shared-clothes-washer-dhw-distribution' => ["Attached hot water distribution 'foobar' not found for clothes washer"],
|
776
871
|
'unattached-shared-clothes-washer-water-heater' => ["Attached water heating system 'foobar' not found for clothes washer"],
|
777
872
|
'unattached-shared-dishwasher-dhw-distribution' => ["Attached hot water distribution 'foobar' not found for dishwasher"],
|
778
873
|
'unattached-shared-dishwasher-water-heater' => ["Attached water heating system 'foobar' not found for dishwasher"],
|
779
|
-
'unattached-window' => ["Attached wall 'foobar' not found for window 'Window1'."]
|
874
|
+
'unattached-window' => ["Attached wall 'foobar' not found for window 'Window1'."],
|
875
|
+
'unavailable-period-missing-column' => ["Could not find column='foobar' in unavailable_periods.csv."] }
|
780
876
|
|
781
877
|
all_expected_errors.each_with_index do |(error_case, expected_errors), i|
|
782
878
|
puts "[#{i + 1}/#{all_expected_errors.size}] Testing #{error_case}..."
|
@@ -801,22 +897,22 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
801
897
|
distribution_system_idref: hpxml.hvac_distributions[0].id)
|
802
898
|
elsif ['cfis-invalid-supplemental-fan'].include? error_case
|
803
899
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-mechvent-cfis-supplemental-fan-exhaust.xml'))
|
804
|
-
suppl_fan = hpxml.ventilation_fans.
|
900
|
+
suppl_fan = hpxml.ventilation_fans.find { |f| f.is_cfis_supplemental_fan? }
|
805
901
|
suppl_fan.fan_type = HPXML::MechVentTypeBalanced
|
806
902
|
elsif ['cfis-invalid-supplemental-fan2'].include? error_case
|
807
903
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-mechvent-cfis-supplemental-fan-exhaust.xml'))
|
808
|
-
suppl_fan = hpxml.ventilation_fans.
|
904
|
+
suppl_fan = hpxml.ventilation_fans.find { |f| f.is_cfis_supplemental_fan? }
|
809
905
|
suppl_fan.used_for_whole_building_ventilation = false
|
810
906
|
suppl_fan.used_for_garage_ventilation = true
|
811
907
|
elsif ['cfis-invalid-supplemental-fan3'].include? error_case
|
812
908
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-mechvent-cfis-supplemental-fan-exhaust.xml'))
|
813
|
-
suppl_fan = hpxml.ventilation_fans.
|
909
|
+
suppl_fan = hpxml.ventilation_fans.find { |f| f.is_cfis_supplemental_fan? }
|
814
910
|
suppl_fan.is_shared_system = true
|
815
911
|
suppl_fan.fraction_recirculation = 0.0
|
816
912
|
suppl_fan.in_unit_flow_rate = suppl_fan.tested_flow_rate / 2.0
|
817
913
|
elsif ['cfis-invalid-supplemental-fan4'].include? error_case
|
818
914
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-mechvent-cfis-supplemental-fan-exhaust.xml'))
|
819
|
-
suppl_fan = hpxml.ventilation_fans.
|
915
|
+
suppl_fan = hpxml.ventilation_fans.find { |f| f.is_cfis_supplemental_fan? }
|
820
916
|
suppl_fan.hours_in_operation = 12.0
|
821
917
|
elsif ['dehumidifier-setpoints'].include? error_case
|
822
918
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-appliances-dehumidifier-multiple.xml'))
|
@@ -851,6 +947,9 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
851
947
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-hvac-air-to-air-heat-pump-var-speed-backup-boiler.xml'))
|
852
948
|
hpxml.heating_systems[0].fraction_heat_load_served = 0.5
|
853
949
|
hpxml.heat_pumps[0].fraction_heat_load_served = 0.5
|
950
|
+
elsif ['heat-pump-switchover-temp-elec-backup'].include? error_case
|
951
|
+
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-hvac-air-to-air-heat-pump-1-speed.xml'))
|
952
|
+
hpxml.heat_pumps[0].backup_heating_switchover_temp = 35.0
|
854
953
|
elsif ['hvac-invalid-distribution-system-type'].include? error_case
|
855
954
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base.xml'))
|
856
955
|
hpxml.hvac_distributions.add(id: "HVACDistribution#{hpxml.hvac_distributions.size + 1}",
|
@@ -947,6 +1046,19 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
947
1046
|
hpxml.header.sim_begin_day = 10
|
948
1047
|
hpxml.header.sim_end_month = 4
|
949
1048
|
hpxml.header.sim_end_day = 31
|
1049
|
+
elsif ['invalid-shading-season'].include? error_case
|
1050
|
+
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base.xml'))
|
1051
|
+
hpxml.header.shading_summer_begin_month = 3
|
1052
|
+
hpxml.header.shading_summer_begin_day = 10
|
1053
|
+
hpxml.header.shading_summer_end_month = 4
|
1054
|
+
hpxml.header.shading_summer_end_day = 31
|
1055
|
+
elsif ['invalid-unavailable-period'].include? error_case
|
1056
|
+
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base.xml'))
|
1057
|
+
hpxml.header.unavailable_periods.add(column_name: 'Power Outage',
|
1058
|
+
begin_month: 3,
|
1059
|
+
begin_day: 10,
|
1060
|
+
end_month: 4,
|
1061
|
+
end_day: 31)
|
950
1062
|
elsif ['invalid-schema-version'].include? error_case
|
951
1063
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base.xml'))
|
952
1064
|
elsif ['invalid-skylights-physical-properties'].include? error_case
|
@@ -955,6 +1067,11 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
955
1067
|
elsif ['invalid-windows-physical-properties'].include? error_case
|
956
1068
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-enclosure-windows-physical-properties.xml'))
|
957
1069
|
hpxml.windows[2].thermal_break = false
|
1070
|
+
elsif ['inverter-unequal-efficiencies'].include? error_case
|
1071
|
+
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-pv.xml'))
|
1072
|
+
hpxml.inverters.add(id: 'Inverter2',
|
1073
|
+
inverter_efficiency: 0.5)
|
1074
|
+
hpxml.pv_systems[1].inverter_idref = hpxml.inverters[-1].id
|
958
1075
|
elsif ['leap-year-TMY'].include? error_case
|
959
1076
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-simcontrol-calendar-year-custom.xml'))
|
960
1077
|
hpxml.header.sim_calendar_year = 2008
|
@@ -968,9 +1085,6 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
968
1085
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-hvac-furnace-gas-room-ac.xml'))
|
969
1086
|
hpxml.heating_systems[0].delete
|
970
1087
|
hpxml.hvac_controls[0].heating_setpoint_temp = nil
|
971
|
-
elsif ['pv-unequal-inverter-efficiencies'].include? error_case
|
972
|
-
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-pv.xml'))
|
973
|
-
hpxml.pv_systems[1].inverter_efficiency = 0.5
|
974
1088
|
elsif ['refrigerators-multiple-primary'].include? error_case
|
975
1089
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-misc-loads-large-uncommon.xml'))
|
976
1090
|
hpxml.refrigerators[1].primary_indicator = true
|
@@ -1013,12 +1127,6 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
1013
1127
|
csv_data[1][0] = -0.5
|
1014
1128
|
File.write(@tmp_csv_path, csv_data.map(&:to_csv).join)
|
1015
1129
|
hpxml.header.schedules_filepaths = [@tmp_csv_path]
|
1016
|
-
elsif ['schedule-detailed-bad-values-mode-fraction'].include? error_case
|
1017
|
-
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-schedules-detailed-occupancy-stochastic-vacancy.xml'))
|
1018
|
-
csv_data = CSV.read(File.join(File.dirname(hpxml.hpxml_path), hpxml.header.schedules_filepaths[0]))
|
1019
|
-
csv_data[1][csv_data[0].index(SchedulesFile::ColumnVacancy)] = 0.5
|
1020
|
-
File.write(@tmp_csv_path, csv_data.map(&:to_csv).join)
|
1021
|
-
hpxml.header.schedules_filepaths = [@tmp_csv_path]
|
1022
1130
|
elsif ['schedule-detailed-duplicate-columns'].include? error_case
|
1023
1131
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-schedules-detailed-occupancy-stochastic.xml'))
|
1024
1132
|
csv_data = CSV.read(File.join(File.dirname(hpxml.hpxml_path), hpxml.header.schedules_filepaths[0]))
|
@@ -1086,6 +1194,9 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
1086
1194
|
elsif ['unattached-hvac-distribution'].include? error_case
|
1087
1195
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base.xml'))
|
1088
1196
|
hpxml.heating_systems[0].distribution_system_idref = 'foobar'
|
1197
|
+
elsif ['unattached-pv-system'].include? error_case
|
1198
|
+
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-pv.xml'))
|
1199
|
+
hpxml.pv_systems[0].inverter_idref = 'foobar'
|
1089
1200
|
elsif ['unattached-skylight'].include? error_case
|
1090
1201
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-enclosure-skylights.xml'))
|
1091
1202
|
hpxml.skylights[0].roof_idref = 'foobar'
|
@@ -1109,6 +1220,9 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
1109
1220
|
elsif ['unattached-window'].include? error_case
|
1110
1221
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base.xml'))
|
1111
1222
|
hpxml.windows[0].wall_idref = 'foobar'
|
1223
|
+
elsif ['unavailable-period-missing-column'].include? error_case
|
1224
|
+
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-schedules-simple-vacancy.xml'))
|
1225
|
+
hpxml.header.unavailable_periods[0].column_name = 'foobar'
|
1112
1226
|
else
|
1113
1227
|
fail "Unhandled case: #{error_case}."
|
1114
1228
|
end
|
@@ -1138,6 +1252,8 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
1138
1252
|
'hvac-setpoint-adjustments' => ['HVAC setpoints have been automatically adjusted to prevent periods where the heating setpoint is greater than the cooling setpoint.'],
|
1139
1253
|
'hvac-setpoint-adjustments-daily-setbacks' => ['HVAC setpoints have been automatically adjusted to prevent periods where the heating setpoint is greater than the cooling setpoint.'],
|
1140
1254
|
'hvac-setpoint-adjustments-daily-schedules' => ['HVAC setpoints have been automatically adjusted to prevent periods where the heating setpoint is greater than the cooling setpoint.'],
|
1255
|
+
'power-outage' => ['It is not possible to eliminate all HVAC energy use (e.g. crankcase/defrost energy) in EnergyPlus during an unavailable period.',
|
1256
|
+
'It is not possible to eliminate all water heater energy use (e.g. parasitics) in EnergyPlus during an unavailable period.'],
|
1141
1257
|
'schedule-file-and-weekday-weekend-multipliers' => ["Both 'occupants' schedule file and weekday fractions provided; the latter will be ignored.",
|
1142
1258
|
"Both 'occupants' schedule file and weekend fractions provided; the latter will be ignored.",
|
1143
1259
|
"Both 'occupants' schedule file and monthly multipliers provided; the latter will be ignored.",
|
@@ -1214,7 +1330,7 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
1214
1330
|
# Create HPXML object
|
1215
1331
|
if ['cfis-undersized-supplemental-fan'].include? warning_case
|
1216
1332
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-mechvent-cfis-supplemental-fan-exhaust.xml'))
|
1217
|
-
suppl_fan = hpxml.ventilation_fans.
|
1333
|
+
suppl_fan = hpxml.ventilation_fans.find { |f| f.is_cfis_supplemental_fan? }
|
1218
1334
|
suppl_fan.tested_flow_rate = 90.0
|
1219
1335
|
elsif ['hvac-setpoint-adjustments'].include? warning_case
|
1220
1336
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base.xml'))
|
@@ -1227,17 +1343,20 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
1227
1343
|
elsif ['hvac-setpoint-adjustments-daily-schedules'].include? warning_case
|
1228
1344
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-hvac-setpoints-daily-schedules.xml'))
|
1229
1345
|
hpxml.hvac_controls[0].weekday_heating_setpoints = '64, 64, 64, 64, 64, 64, 64, 76, 70, 66, 66, 66, 66, 66, 66, 66, 66, 68, 68, 68, 68, 68, 64, 64'
|
1346
|
+
elsif ['power-outage'].include? warning_case
|
1347
|
+
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-schedules-simple-power-outage.xml'))
|
1230
1348
|
elsif ['schedule-file-and-weekday-weekend-multipliers'].include? warning_case
|
1231
1349
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-misc-loads-large-uncommon.xml'))
|
1232
1350
|
hpxml.header.utility_bill_scenarios.clear # we don't want the propane warning
|
1233
|
-
hpxml.header.schedules_filepaths << '
|
1351
|
+
hpxml.header.schedules_filepaths << File.join(File.dirname(__FILE__), '../resources/schedule_files/occupancy-stochastic.csv')
|
1352
|
+
hpxml.header.schedules_filepaths << File.join(File.dirname(__FILE__), '../resources/schedule_files/occupancy-non-stochastic.csv')
|
1234
1353
|
elsif ['schedule-file-and-setpoints'].include? warning_case
|
1235
1354
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base.xml'))
|
1236
|
-
hpxml.header.schedules_filepaths << '
|
1237
|
-
hpxml.header.schedules_filepaths << '
|
1355
|
+
hpxml.header.schedules_filepaths << File.join(File.dirname(__FILE__), '../resources/schedule_files/setpoints.csv')
|
1356
|
+
hpxml.header.schedules_filepaths << File.join(File.dirname(__FILE__), '../resources/schedule_files/water-heater-setpoints.csv')
|
1238
1357
|
elsif ['schedule-file-and-operating-mode'].include? warning_case
|
1239
1358
|
hpxml = HPXML.new(hpxml_path: File.join(@sample_files_path, 'base-dhw-tank-heat-pump-operating-mode-heat-pump-only.xml'))
|
1240
|
-
hpxml.header.schedules_filepaths << '
|
1359
|
+
hpxml.header.schedules_filepaths << File.join(File.dirname(__FILE__), '../resources/schedule_files/water-heater-operating-modes.csv')
|
1241
1360
|
else
|
1242
1361
|
fail "Unhandled case: #{warning_case}."
|
1243
1362
|
end
|
@@ -1251,26 +1370,16 @@ class HPXMLtoOpenStudioValidationTest < MiniTest::Test
|
|
1251
1370
|
|
1252
1371
|
private
|
1253
1372
|
|
1254
|
-
def
|
1255
|
-
errors,
|
1256
|
-
if not expected_errors.nil?
|
1257
|
-
_compare_errors_or_warnings('error', errors, expected_errors)
|
1258
|
-
end
|
1259
|
-
if not expected_warnings.nil?
|
1260
|
-
_compare_errors_or_warnings('warning', warnings, expected_warnings)
|
1261
|
-
end
|
1262
|
-
end
|
1263
|
-
|
1264
|
-
def _test_schema_validation(hpxml_path, schema_path)
|
1265
|
-
errors, _warnings = XMLValidator.validate_against_schema(hpxml_path, schema_path)
|
1373
|
+
def _test_schema_validation(hpxml_path, schematron_schema_validator)
|
1374
|
+
errors, _warnings = XMLValidator.validate_against_schema(hpxml_path, schematron_schema_validator)
|
1266
1375
|
if errors.size > 0
|
1267
1376
|
flunk "#{hpxml_path}: #{errors}"
|
1268
1377
|
end
|
1269
1378
|
end
|
1270
1379
|
|
1271
1380
|
def _test_schema_and_schematron_validation(hpxml_path, hpxml_doc, expected_errors: nil, expected_warnings: nil)
|
1272
|
-
sct_errors, sct_warnings = XMLValidator.validate_against_schematron(hpxml_path, @
|
1273
|
-
xsd_errors, xsd_warnings = XMLValidator.validate_against_schema(hpxml_path, @
|
1381
|
+
sct_errors, sct_warnings = XMLValidator.validate_against_schematron(hpxml_path, @schematron_validator, hpxml_doc)
|
1382
|
+
xsd_errors, xsd_warnings = XMLValidator.validate_against_schema(hpxml_path, @schema_validator)
|
1274
1383
|
if not expected_errors.nil?
|
1275
1384
|
_compare_errors_or_warnings('error', sct_errors + xsd_errors, expected_errors)
|
1276
1385
|
end
|