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
@@ -12,24 +12,7 @@ class HPXMLDefaults
|
|
12
12
|
ncfl = hpxml.building_construction.number_of_conditioned_floors
|
13
13
|
ncfl_ag = hpxml.building_construction.number_of_conditioned_floors_above_grade
|
14
14
|
has_uncond_bsmnt = hpxml.has_location(HPXML::LocationBasementUnconditioned)
|
15
|
-
|
16
|
-
infil_volume = nil
|
17
|
-
infil_height = nil
|
18
|
-
infil_measurements = []
|
19
|
-
hpxml.air_infiltration_measurements.each do |measurement|
|
20
|
-
is_ach = ((measurement.unit_of_measure == HPXML::UnitsACH) && !measurement.house_pressure.nil?)
|
21
|
-
is_cfm = ((measurement.unit_of_measure == HPXML::UnitsCFM) && !measurement.house_pressure.nil?)
|
22
|
-
is_nach = (measurement.unit_of_measure == HPXML::UnitsACHNatural)
|
23
|
-
next unless (is_ach || is_cfm || is_nach)
|
24
|
-
|
25
|
-
infil_measurements << measurement
|
26
|
-
if not measurement.infiltration_volume.nil?
|
27
|
-
infil_volume = measurement.infiltration_volume
|
28
|
-
end
|
29
|
-
if not measurement.infiltration_height.nil?
|
30
|
-
infil_height = measurement.infiltration_height
|
31
|
-
end
|
32
|
-
end
|
15
|
+
infil_measurement = Airflow.get_infiltration_measurement_of_interest(hpxml.air_infiltration_measurements)
|
33
16
|
|
34
17
|
# Check for presence of fuels once
|
35
18
|
has_fuel = {}
|
@@ -38,15 +21,16 @@ class HPXMLDefaults
|
|
38
21
|
has_fuel[fuel] = hpxml.has_fuel(fuel, hpxml_doc)
|
39
22
|
end
|
40
23
|
|
41
|
-
apply_header(hpxml, epw_file)
|
24
|
+
apply_header(hpxml, epw_file, weather)
|
25
|
+
apply_header_sizing(hpxml, weather, nbeds)
|
42
26
|
apply_emissions_scenarios(hpxml, has_fuel)
|
43
27
|
apply_utility_bill_scenarios(runner, hpxml, has_fuel)
|
44
28
|
apply_site(hpxml)
|
45
29
|
apply_neighbor_buildings(hpxml)
|
46
|
-
apply_building_occupancy(hpxml,
|
47
|
-
apply_building_construction(hpxml, cfa, nbeds,
|
30
|
+
apply_building_occupancy(hpxml, schedules_file)
|
31
|
+
apply_building_construction(hpxml, cfa, nbeds, infil_measurement)
|
48
32
|
apply_climate_and_risk_zones(hpxml, epw_file)
|
49
|
-
apply_infiltration(hpxml,
|
33
|
+
apply_infiltration(hpxml, infil_measurement)
|
50
34
|
apply_attics(hpxml)
|
51
35
|
apply_foundations(hpxml)
|
52
36
|
apply_roofs(hpxml)
|
@@ -60,27 +44,28 @@ class HPXMLDefaults
|
|
60
44
|
apply_doors(hpxml)
|
61
45
|
apply_partition_wall_mass(hpxml)
|
62
46
|
apply_furniture_mass(hpxml)
|
63
|
-
apply_hvac(hpxml, weather, convert_shared_systems)
|
47
|
+
apply_hvac(runner, hpxml, weather, convert_shared_systems)
|
64
48
|
apply_hvac_control(hpxml, schedules_file)
|
65
49
|
apply_hvac_distribution(hpxml, ncfl, ncfl_ag)
|
66
|
-
|
50
|
+
apply_hvac_location(hpxml)
|
51
|
+
apply_ventilation_fans(hpxml, weather, cfa, nbeds)
|
67
52
|
apply_water_heaters(hpxml, nbeds, eri_version, schedules_file)
|
53
|
+
apply_flue_or_chimney(hpxml)
|
68
54
|
apply_hot_water_distribution(hpxml, cfa, ncfl, has_uncond_bsmnt)
|
69
55
|
apply_water_fixtures(hpxml, schedules_file)
|
70
56
|
apply_solar_thermal_systems(hpxml)
|
71
57
|
apply_appliances(hpxml, nbeds, eri_version, schedules_file)
|
72
58
|
apply_lighting(hpxml, schedules_file)
|
73
59
|
apply_ceiling_fans(hpxml, nbeds, weather, schedules_file)
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
apply_fuel_loads(hpxml, cfa, nbeds_adjusted, schedules_file)
|
60
|
+
apply_pools_and_hot_tubs(hpxml, cfa, schedules_file)
|
61
|
+
apply_plug_loads(hpxml, cfa, schedules_file)
|
62
|
+
apply_fuel_loads(hpxml, cfa, schedules_file)
|
78
63
|
apply_pv_systems(hpxml)
|
79
64
|
apply_generators(hpxml)
|
80
65
|
apply_batteries(hpxml)
|
81
66
|
|
82
67
|
# Do HVAC sizing after all other defaults have been applied
|
83
|
-
apply_hvac_sizing(hpxml, weather, cfa
|
68
|
+
apply_hvac_sizing(hpxml, weather, cfa)
|
84
69
|
end
|
85
70
|
|
86
71
|
def self.get_default_azimuths(hpxml)
|
@@ -121,12 +106,7 @@ class HPXMLDefaults
|
|
121
106
|
|
122
107
|
private
|
123
108
|
|
124
|
-
def self.apply_header(hpxml, epw_file)
|
125
|
-
if hpxml.header.occupancy_calculation_type.nil?
|
126
|
-
hpxml.header.occupancy_calculation_type = HPXML::OccupancyCalculationTypeAsset
|
127
|
-
hpxml.header.occupancy_calculation_type_isdefaulted = true
|
128
|
-
end
|
129
|
-
|
109
|
+
def self.apply_header(hpxml, epw_file, weather)
|
130
110
|
if hpxml.header.timestep.nil?
|
131
111
|
hpxml.header.timestep = 60
|
132
112
|
hpxml.header.timestep_isdefaulted = true
|
@@ -189,15 +169,6 @@ class HPXMLDefaults
|
|
189
169
|
end
|
190
170
|
end
|
191
171
|
|
192
|
-
if hpxml.header.allow_increased_fixed_capacities.nil?
|
193
|
-
hpxml.header.allow_increased_fixed_capacities = false
|
194
|
-
hpxml.header.allow_increased_fixed_capacities_isdefaulted = true
|
195
|
-
end
|
196
|
-
if hpxml.header.heat_pump_sizing_methodology.nil? && (hpxml.heat_pumps.size > 0)
|
197
|
-
hpxml.header.heat_pump_sizing_methodology = HPXML::HeatPumpSizingHERS
|
198
|
-
hpxml.header.heat_pump_sizing_methodology_isdefaulted = true
|
199
|
-
end
|
200
|
-
|
201
172
|
if (not epw_file.nil?) && hpxml.header.state_code.nil?
|
202
173
|
state_province_region = epw_file.stateProvinceRegion.upcase
|
203
174
|
if /^[A-Z]{2}$/.match(state_province_region)
|
@@ -220,6 +191,98 @@ class HPXMLDefaults
|
|
220
191
|
hpxml.header.natvent_days_per_week = 3
|
221
192
|
hpxml.header.natvent_days_per_week_isdefaulted = true
|
222
193
|
end
|
194
|
+
|
195
|
+
hpxml.header.unavailable_periods.each do |unavailable_period|
|
196
|
+
if unavailable_period.begin_hour.nil?
|
197
|
+
unavailable_period.begin_hour = 0
|
198
|
+
unavailable_period.begin_hour_isdefaulted = true
|
199
|
+
end
|
200
|
+
if unavailable_period.end_hour.nil?
|
201
|
+
unavailable_period.end_hour = 24
|
202
|
+
unavailable_period.end_hour_isdefaulted = true
|
203
|
+
end
|
204
|
+
if unavailable_period.natvent_availability.nil?
|
205
|
+
unavailable_period.natvent_availability = HPXML::ScheduleRegular
|
206
|
+
unavailable_period.natvent_availability_isdefaulted = true
|
207
|
+
end
|
208
|
+
end
|
209
|
+
|
210
|
+
if hpxml.header.shading_summer_begin_month.nil? || hpxml.header.shading_summer_begin_day.nil? || hpxml.header.shading_summer_end_month.nil? || hpxml.header.shading_summer_end_day.nil?
|
211
|
+
if not weather.nil?
|
212
|
+
# Default based on Building America seasons
|
213
|
+
_, default_cooling_months = HVAC.get_default_heating_and_cooling_seasons(weather)
|
214
|
+
begin_month, begin_day, end_month, end_day = Schedule.get_begin_and_end_dates_from_monthly_array(default_cooling_months, sim_calendar_year)
|
215
|
+
if not begin_month.nil? # Check if no summer
|
216
|
+
hpxml.header.shading_summer_begin_month = begin_month
|
217
|
+
hpxml.header.shading_summer_begin_day = begin_day
|
218
|
+
hpxml.header.shading_summer_end_month = end_month
|
219
|
+
hpxml.header.shading_summer_end_day = end_day
|
220
|
+
hpxml.header.shading_summer_begin_month_isdefaulted = true
|
221
|
+
hpxml.header.shading_summer_begin_day_isdefaulted = true
|
222
|
+
hpxml.header.shading_summer_end_month_isdefaulted = true
|
223
|
+
hpxml.header.shading_summer_end_day_isdefaulted = true
|
224
|
+
end
|
225
|
+
end
|
226
|
+
end
|
227
|
+
end
|
228
|
+
|
229
|
+
def self.apply_header_sizing(hpxml, weather, nbeds)
|
230
|
+
if hpxml.header.allow_increased_fixed_capacities.nil?
|
231
|
+
hpxml.header.allow_increased_fixed_capacities = false
|
232
|
+
hpxml.header.allow_increased_fixed_capacities_isdefaulted = true
|
233
|
+
end
|
234
|
+
|
235
|
+
if hpxml.header.heat_pump_sizing_methodology.nil? && (hpxml.heat_pumps.size > 0)
|
236
|
+
hpxml.header.heat_pump_sizing_methodology = HPXML::HeatPumpSizingHERS
|
237
|
+
hpxml.header.heat_pump_sizing_methodology_isdefaulted = true
|
238
|
+
end
|
239
|
+
|
240
|
+
if hpxml.header.manualj_heating_design_temp.nil?
|
241
|
+
hpxml.header.manualj_heating_design_temp = weather.design.HeatingDrybulb.round(2)
|
242
|
+
hpxml.header.manualj_heating_design_temp_isdefaulted = true
|
243
|
+
end
|
244
|
+
|
245
|
+
if hpxml.header.manualj_cooling_design_temp.nil?
|
246
|
+
hpxml.header.manualj_cooling_design_temp = weather.design.CoolingDrybulb.round(2)
|
247
|
+
hpxml.header.manualj_cooling_design_temp_isdefaulted = true
|
248
|
+
end
|
249
|
+
|
250
|
+
if hpxml.header.manualj_heating_setpoint.nil?
|
251
|
+
hpxml.header.manualj_heating_setpoint = 70.0 # deg-F, per Manual J
|
252
|
+
hpxml.header.manualj_heating_setpoint_isdefaulted = true
|
253
|
+
end
|
254
|
+
|
255
|
+
if hpxml.header.manualj_cooling_setpoint.nil?
|
256
|
+
hpxml.header.manualj_cooling_setpoint = 75.0 # deg-F, per Manual J
|
257
|
+
hpxml.header.manualj_cooling_setpoint_isdefaulted = true
|
258
|
+
end
|
259
|
+
|
260
|
+
if hpxml.header.manualj_humidity_setpoint.nil?
|
261
|
+
hpxml.header.manualj_humidity_setpoint = 0.5 # 50%
|
262
|
+
if hpxml.dehumidifiers.size > 0
|
263
|
+
hpxml.header.manualj_humidity_setpoint = [hpxml.header.manualj_humidity_setpoint, hpxml.dehumidifiers[0].rh_setpoint].min
|
264
|
+
end
|
265
|
+
hpxml.header.manualj_humidity_setpoint_isdefaulted = true
|
266
|
+
end
|
267
|
+
|
268
|
+
if hpxml.header.manualj_internal_loads_sensible.nil?
|
269
|
+
if hpxml.refrigerators.size + hpxml.freezers.size <= 1
|
270
|
+
hpxml.header.manualj_internal_loads_sensible = 2400.0 # Btuh, per Manual J
|
271
|
+
else
|
272
|
+
hpxml.header.manualj_internal_loads_sensible = 3600.0 # Btuh, per Manual J
|
273
|
+
end
|
274
|
+
hpxml.header.manualj_internal_loads_sensible_isdefaulted = true
|
275
|
+
end
|
276
|
+
|
277
|
+
if hpxml.header.manualj_internal_loads_latent.nil?
|
278
|
+
hpxml.header.manualj_internal_loads_latent = 0.0 # Btuh
|
279
|
+
hpxml.header.manualj_internal_loads_latent_isdefaulted = true
|
280
|
+
end
|
281
|
+
|
282
|
+
if hpxml.header.manualj_num_occupants.nil?
|
283
|
+
hpxml.header.manualj_num_occupants = nbeds + 1 # Per Manual J
|
284
|
+
hpxml.header.manualj_num_occupants_isdefaulted = true
|
285
|
+
end
|
223
286
|
end
|
224
287
|
|
225
288
|
def self.apply_emissions_scenarios(hpxml, has_fuel)
|
@@ -441,12 +504,15 @@ class HPXMLDefaults
|
|
441
504
|
end
|
442
505
|
end
|
443
506
|
|
444
|
-
def self.apply_building_occupancy(hpxml,
|
507
|
+
def self.apply_building_occupancy(hpxml, schedules_file)
|
445
508
|
if hpxml.building_occupancy.number_of_residents.nil?
|
446
|
-
hpxml.
|
447
|
-
|
509
|
+
hpxml.building_construction.additional_properties.adjusted_number_of_bedrooms = hpxml.building_construction.number_of_bedrooms
|
510
|
+
else
|
511
|
+
# Set adjusted number of bedrooms for operational calculation; this is an adjustment on
|
512
|
+
# ANSI 301 or Building America equations, which are based on number of bedrooms.
|
513
|
+
hpxml.building_construction.additional_properties.adjusted_number_of_bedrooms = get_nbeds_adjusted_for_operational_calculation(hpxml)
|
448
514
|
end
|
449
|
-
schedules_file_includes_occupants =
|
515
|
+
schedules_file_includes_occupants = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnOccupants))
|
450
516
|
if hpxml.building_occupancy.weekday_fractions.nil? && !schedules_file_includes_occupants
|
451
517
|
hpxml.building_occupancy.weekday_fractions = Schedule.OccupantsWeekdayFractions
|
452
518
|
hpxml.building_occupancy.weekday_fractions_isdefaulted = true
|
@@ -461,11 +527,11 @@ class HPXMLDefaults
|
|
461
527
|
end
|
462
528
|
end
|
463
529
|
|
464
|
-
def self.apply_building_construction(hpxml, cfa, nbeds,
|
530
|
+
def self.apply_building_construction(hpxml, cfa, nbeds, infil_measurement)
|
465
531
|
cond_crawl_volume = hpxml.inferred_conditioned_crawlspace_volume()
|
466
532
|
if hpxml.building_construction.conditioned_building_volume.nil? && hpxml.building_construction.average_ceiling_height.nil?
|
467
|
-
if not
|
468
|
-
hpxml.building_construction.average_ceiling_height = [
|
533
|
+
if not infil_measurement.infiltration_volume.nil?
|
534
|
+
hpxml.building_construction.average_ceiling_height = [infil_measurement.infiltration_volume / cfa, 8.0].min
|
469
535
|
else
|
470
536
|
hpxml.building_construction.average_ceiling_height = 8.0
|
471
537
|
end
|
@@ -484,35 +550,6 @@ class HPXMLDefaults
|
|
484
550
|
hpxml.building_construction.number_of_bathrooms = Float(Waterheater.get_default_num_bathrooms(nbeds)).to_i
|
485
551
|
hpxml.building_construction.number_of_bathrooms_isdefaulted = true
|
486
552
|
end
|
487
|
-
|
488
|
-
if hpxml.building_construction.has_flue_or_chimney.nil?
|
489
|
-
hpxml.building_construction.has_flue_or_chimney = false
|
490
|
-
hpxml.building_construction.has_flue_or_chimney_isdefaulted = true
|
491
|
-
hpxml.heating_systems.each do |heating_system|
|
492
|
-
if [HPXML::HVACTypeFurnace, HPXML::HVACTypeBoiler, HPXML::HVACTypeWallFurnace, HPXML::HVACTypeFloorFurnace, HPXML::HVACTypeStove, HPXML::HVACTypeFixedHeater].include? heating_system.heating_system_type
|
493
|
-
if not heating_system.heating_efficiency_afue.nil?
|
494
|
-
next if heating_system.heating_efficiency_afue >= 0.89
|
495
|
-
elsif not heating_system.heating_efficiency_percent.nil?
|
496
|
-
next if heating_system.heating_efficiency_percent >= 0.89
|
497
|
-
end
|
498
|
-
|
499
|
-
hpxml.building_construction.has_flue_or_chimney = true
|
500
|
-
elsif [HPXML::HVACTypeFireplace].include? heating_system.heating_system_type
|
501
|
-
next if heating_system.heating_system_fuel == HPXML::FuelTypeElectricity
|
502
|
-
|
503
|
-
hpxml.building_construction.has_flue_or_chimney = true
|
504
|
-
end
|
505
|
-
end
|
506
|
-
hpxml.water_heating_systems.each do |water_heating_system|
|
507
|
-
if not water_heating_system.energy_factor.nil?
|
508
|
-
next if water_heating_system.energy_factor >= 0.63
|
509
|
-
elsif not water_heating_system.uniform_energy_factor.nil?
|
510
|
-
next if Waterheater.calc_ef_from_uef(water_heating_system) >= 0.63
|
511
|
-
end
|
512
|
-
|
513
|
-
hpxml.building_construction.has_flue_or_chimney = true
|
514
|
-
end
|
515
|
-
end
|
516
553
|
end
|
517
554
|
|
518
555
|
def self.apply_climate_and_risk_zones(hpxml, epw_file)
|
@@ -527,19 +564,21 @@ class HPXMLDefaults
|
|
527
564
|
end
|
528
565
|
end
|
529
566
|
|
530
|
-
def self.apply_infiltration(hpxml,
|
531
|
-
if
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
567
|
+
def self.apply_infiltration(hpxml, infil_measurement)
|
568
|
+
if infil_measurement.infiltration_volume.nil?
|
569
|
+
infil_measurement.infiltration_volume = hpxml.building_construction.conditioned_building_volume
|
570
|
+
infil_measurement.infiltration_volume_isdefaulted = true
|
571
|
+
end
|
572
|
+
if infil_measurement.infiltration_height.nil?
|
573
|
+
infil_measurement.infiltration_height = hpxml.inferred_infiltration_height(infil_measurement.infiltration_volume)
|
574
|
+
infil_measurement.infiltration_height_isdefaulted = true
|
537
575
|
end
|
538
|
-
if
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
576
|
+
if infil_measurement.a_ext.nil?
|
577
|
+
if (infil_measurement.infiltration_type == HPXML::InfiltrationTypeUnitTotal) &&
|
578
|
+
[HPXML::ResidentialTypeApartment, HPXML::ResidentialTypeSFA].include?(hpxml.building_construction.residential_facility_type)
|
579
|
+
tot_cb_area, ext_cb_area = hpxml.compartmentalization_boundary_areas()
|
580
|
+
infil_measurement.a_ext = (ext_cb_area / tot_cb_area).round(5)
|
581
|
+
infil_measurement.a_ext_isdefaulted = true
|
543
582
|
end
|
544
583
|
end
|
545
584
|
end
|
@@ -1005,7 +1044,7 @@ class HPXMLDefaults
|
|
1005
1044
|
end
|
1006
1045
|
end
|
1007
1046
|
|
1008
|
-
def self.apply_hvac(hpxml, weather, convert_shared_systems)
|
1047
|
+
def self.apply_hvac(runner, hpxml, weather, convert_shared_systems)
|
1009
1048
|
if convert_shared_systems
|
1010
1049
|
HVAC.apply_shared_systems(hpxml)
|
1011
1050
|
end
|
@@ -1038,7 +1077,6 @@ class HPXMLDefaults
|
|
1038
1077
|
cooling_system.cooling_efficiency_seer_isdefaulted = true
|
1039
1078
|
cooling_system.cooling_efficiency_seer2 = nil
|
1040
1079
|
end
|
1041
|
-
|
1042
1080
|
hpxml.heat_pumps.each do |heat_pump|
|
1043
1081
|
next unless [HPXML::HVACTypeHeatPumpAirToAir,
|
1044
1082
|
HPXML::HVACTypeHeatPumpMiniSplit].include? heat_pump.heat_pump_type
|
@@ -1074,13 +1112,63 @@ class HPXMLDefaults
|
|
1074
1112
|
heat_pump.compressor_type_isdefaulted = true
|
1075
1113
|
end
|
1076
1114
|
|
1077
|
-
# Default
|
1115
|
+
# Default HP heating capacity retention
|
1078
1116
|
hpxml.heat_pumps.each do |heat_pump|
|
1079
|
-
next
|
1117
|
+
next unless heat_pump.heating_capacity_retention_fraction.nil?
|
1118
|
+
next unless heat_pump.heating_capacity_17F.nil?
|
1119
|
+
next if [HPXML::HVACTypeHeatPumpGroundToAir, HPXML::HVACTypeHeatPumpWaterLoopToAir].include? heat_pump.heat_pump_type
|
1120
|
+
|
1121
|
+
heat_pump.heating_capacity_retention_temp = 5.0
|
1122
|
+
if [HPXML::HVACCompressorTypeSingleStage, HPXML::HVACCompressorTypeTwoStage].include? heat_pump.compressor_type
|
1123
|
+
heat_pump.heating_capacity_retention_fraction = 0.425
|
1124
|
+
elsif [HPXML::HVACCompressorTypeVariableSpeed].include? heat_pump.compressor_type
|
1125
|
+
heat_pump.heating_capacity_retention_fraction = 0.5
|
1126
|
+
end
|
1127
|
+
heat_pump.heating_capacity_retention_fraction_isdefaulted = true
|
1128
|
+
heat_pump.heating_capacity_retention_temp_isdefaulted = true
|
1129
|
+
end
|
1130
|
+
|
1131
|
+
# Default HP compressor lockout temp
|
1132
|
+
hpxml.heat_pumps.each do |heat_pump|
|
1133
|
+
next unless heat_pump.compressor_lockout_temp.nil?
|
1080
1134
|
next unless heat_pump.backup_heating_switchover_temp.nil?
|
1135
|
+
next if heat_pump.heat_pump_type == HPXML::HVACTypeHeatPumpGroundToAir
|
1136
|
+
|
1137
|
+
if heat_pump.backup_type == HPXML::HeatPumpBackupTypeIntegrated
|
1138
|
+
hp_backup_fuel = heat_pump.backup_heating_fuel
|
1139
|
+
elsif not heat_pump.backup_system.nil?
|
1140
|
+
hp_backup_fuel = heat_pump.backup_system.heating_system_fuel
|
1141
|
+
end
|
1142
|
+
|
1143
|
+
if (not hp_backup_fuel.nil?) && (hp_backup_fuel != HPXML::FuelTypeElectricity)
|
1144
|
+
heat_pump.compressor_lockout_temp = 25.0 # deg-F
|
1145
|
+
else
|
1146
|
+
if heat_pump.heat_pump_type == HPXML::HVACTypeHeatPumpMiniSplit
|
1147
|
+
heat_pump.compressor_lockout_temp = -20.0 # deg-F
|
1148
|
+
else
|
1149
|
+
heat_pump.compressor_lockout_temp = 0.0 # deg-F
|
1150
|
+
end
|
1151
|
+
end
|
1152
|
+
heat_pump.compressor_lockout_temp_isdefaulted = true
|
1153
|
+
end
|
1154
|
+
|
1155
|
+
# Default HP backup lockout temp
|
1156
|
+
hpxml.heat_pumps.each do |heat_pump|
|
1157
|
+
next if heat_pump.backup_type.nil?
|
1081
1158
|
next unless heat_pump.backup_heating_lockout_temp.nil?
|
1159
|
+
next unless heat_pump.backup_heating_switchover_temp.nil?
|
1082
1160
|
|
1083
|
-
heat_pump.
|
1161
|
+
if heat_pump.backup_type == HPXML::HeatPumpBackupTypeIntegrated
|
1162
|
+
hp_backup_fuel = heat_pump.backup_heating_fuel
|
1163
|
+
else
|
1164
|
+
hp_backup_fuel = heat_pump.backup_system.heating_system_fuel
|
1165
|
+
end
|
1166
|
+
|
1167
|
+
if hp_backup_fuel == HPXML::FuelTypeElectricity
|
1168
|
+
heat_pump.backup_heating_lockout_temp = 40.0 # deg-F
|
1169
|
+
else
|
1170
|
+
heat_pump.backup_heating_lockout_temp = 50.0 # deg-F
|
1171
|
+
end
|
1084
1172
|
heat_pump.backup_heating_lockout_temp_isdefaulted = true
|
1085
1173
|
end
|
1086
1174
|
|
@@ -1280,6 +1368,49 @@ class HPXMLDefaults
|
|
1280
1368
|
end
|
1281
1369
|
end
|
1282
1370
|
|
1371
|
+
# Crankcase heater power [Watts]
|
1372
|
+
hpxml.cooling_systems.each do |cooling_system|
|
1373
|
+
next unless [HPXML::HVACTypeCentralAirConditioner, HPXML::HVACTypeMiniSplitAirConditioner, HPXML::HVACTypeRoomAirConditioner, HPXML::HVACTypePTAC].include? cooling_system.cooling_system_type
|
1374
|
+
next unless cooling_system.crankcase_heater_watts.nil?
|
1375
|
+
|
1376
|
+
if [HPXML::HVACTypeRoomAirConditioner, HPXML::HVACTypePTAC].include? cooling_system.cooling_system_type
|
1377
|
+
cooling_system.crankcase_heater_watts = 0.0
|
1378
|
+
else
|
1379
|
+
cooling_system.crankcase_heater_watts = 50 # From RESNET Publication No. 002-2017
|
1380
|
+
end
|
1381
|
+
cooling_system.crankcase_heater_watts_isdefaulted = true
|
1382
|
+
end
|
1383
|
+
hpxml.heat_pumps.each do |heat_pump|
|
1384
|
+
next unless [HPXML::HVACTypeHeatPumpAirToAir, HPXML::HVACTypeHeatPumpMiniSplit, HPXML::HVACTypeHeatPumpPTHP, HPXML::HVACTypeHeatPumpRoom].include? heat_pump.heat_pump_type
|
1385
|
+
next unless heat_pump.crankcase_heater_watts.nil?
|
1386
|
+
|
1387
|
+
if [HPXML::HVACTypeHeatPumpPTHP, HPXML::HVACTypeHeatPumpRoom].include? heat_pump.heat_pump_type
|
1388
|
+
heat_pump.crankcase_heater_watts = 0.0
|
1389
|
+
else
|
1390
|
+
heat_pump.crankcase_heater_watts = heat_pump.fraction_heat_load_served <= 0 ? 0.0 : 50 # From RESNET Publication No. 002-2017
|
1391
|
+
end
|
1392
|
+
heat_pump.crankcase_heater_watts_isdefaulted = true
|
1393
|
+
end
|
1394
|
+
|
1395
|
+
# Pilot Light
|
1396
|
+
hpxml.heating_systems.each do |heating_system|
|
1397
|
+
next unless [HPXML::HVACTypeFurnace,
|
1398
|
+
HPXML::HVACTypeWallFurnace,
|
1399
|
+
HPXML::HVACTypeFloorFurnace,
|
1400
|
+
HPXML::HVACTypeFireplace,
|
1401
|
+
HPXML::HVACTypeStove,
|
1402
|
+
HPXML::HVACTypeBoiler].include? heating_system.heating_system_type
|
1403
|
+
|
1404
|
+
if heating_system.pilot_light.nil?
|
1405
|
+
heating_system.pilot_light = false
|
1406
|
+
heating_system.pilot_light_isdefaulted = true
|
1407
|
+
end
|
1408
|
+
if heating_system.pilot_light && heating_system.pilot_light_btuh.nil?
|
1409
|
+
heating_system.pilot_light_btuh = 500.0
|
1410
|
+
heating_system.pilot_light_btuh_isdefaulted = true
|
1411
|
+
end
|
1412
|
+
end
|
1413
|
+
|
1283
1414
|
# Detailed HVAC performance
|
1284
1415
|
hpxml.cooling_systems.each do |cooling_system|
|
1285
1416
|
clg_ap = cooling_system.additional_properties
|
@@ -1295,22 +1426,19 @@ class HPXMLDefaults
|
|
1295
1426
|
# Note: We use HP cooling curve so that a central AC behaves the same.
|
1296
1427
|
HVAC.set_num_speeds(cooling_system)
|
1297
1428
|
HVAC.set_fan_power_rated(cooling_system) unless use_eer
|
1298
|
-
HVAC.set_crankcase_assumptions(cooling_system)
|
1299
1429
|
HVAC.set_cool_c_d(cooling_system, clg_ap.num_speeds)
|
1300
1430
|
HVAC.set_cool_curves_central_air_source(cooling_system, use_eer)
|
1301
|
-
HVAC.
|
1302
|
-
HVAC.set_cool_rated_shrs_gross(cooling_system)
|
1431
|
+
HVAC.set_cool_rated_shrs_gross(runner, cooling_system)
|
1303
1432
|
HVAC.set_cool_rated_eirs(cooling_system) unless use_eer
|
1304
1433
|
|
1305
1434
|
elsif [HPXML::HVACTypeMiniSplitAirConditioner].include? cooling_system.cooling_system_type
|
1306
1435
|
num_speeds = 10
|
1307
1436
|
HVAC.set_num_speeds(cooling_system)
|
1308
|
-
HVAC.set_crankcase_assumptions(cooling_system)
|
1309
1437
|
HVAC.set_fan_power_rated(cooling_system)
|
1310
1438
|
|
1311
1439
|
HVAC.set_cool_c_d(cooling_system, num_speeds)
|
1312
1440
|
HVAC.set_cool_curves_mshp(cooling_system, num_speeds)
|
1313
|
-
HVAC.
|
1441
|
+
HVAC.set_cool_rated_shrs_gross(runner, cooling_system)
|
1314
1442
|
HVAC.set_cool_rated_eirs_mshp(cooling_system, num_speeds)
|
1315
1443
|
|
1316
1444
|
HVAC.set_mshp_downselected_speed_indices(cooling_system)
|
@@ -1328,7 +1456,7 @@ class HPXMLDefaults
|
|
1328
1456
|
HPXML::HVACTypeFloorFurnace,
|
1329
1457
|
HPXML::HVACTypeFireplace].include? heating_system.heating_system_type
|
1330
1458
|
|
1331
|
-
HVAC.
|
1459
|
+
heating_system.additional_properties.heat_rated_cfm_per_ton = HVAC.get_default_heat_cfm_per_ton(1, true)
|
1332
1460
|
end
|
1333
1461
|
hpxml.heat_pumps.each do |heat_pump|
|
1334
1462
|
hp_ap = heat_pump.additional_properties
|
@@ -1342,35 +1470,30 @@ class HPXMLDefaults
|
|
1342
1470
|
end
|
1343
1471
|
HVAC.set_num_speeds(heat_pump)
|
1344
1472
|
HVAC.set_fan_power_rated(heat_pump) unless use_eer_cop
|
1345
|
-
HVAC.
|
1346
|
-
HVAC.set_heat_pump_temperatures(heat_pump)
|
1473
|
+
HVAC.set_heat_pump_temperatures(heat_pump, runner)
|
1347
1474
|
|
1348
1475
|
HVAC.set_cool_c_d(heat_pump, hp_ap.num_speeds)
|
1349
1476
|
HVAC.set_cool_curves_central_air_source(heat_pump, use_eer_cop)
|
1350
|
-
HVAC.
|
1351
|
-
HVAC.set_cool_rated_shrs_gross(heat_pump)
|
1477
|
+
HVAC.set_cool_rated_shrs_gross(runner, heat_pump)
|
1352
1478
|
HVAC.set_cool_rated_eirs(heat_pump) unless use_eer_cop
|
1353
1479
|
|
1354
1480
|
HVAC.set_heat_c_d(heat_pump, hp_ap.num_speeds)
|
1355
1481
|
HVAC.set_heat_curves_central_air_source(heat_pump, use_eer_cop)
|
1356
|
-
HVAC.set_heat_rated_cfm_per_ton(heat_pump)
|
1357
1482
|
HVAC.set_heat_rated_eirs(heat_pump) unless use_eer_cop
|
1358
1483
|
|
1359
1484
|
elsif [HPXML::HVACTypeHeatPumpMiniSplit].include? heat_pump.heat_pump_type
|
1360
1485
|
num_speeds = 10
|
1361
1486
|
HVAC.set_num_speeds(heat_pump)
|
1362
|
-
HVAC.set_crankcase_assumptions(heat_pump)
|
1363
1487
|
HVAC.set_fan_power_rated(heat_pump)
|
1364
|
-
HVAC.set_heat_pump_temperatures(heat_pump)
|
1488
|
+
HVAC.set_heat_pump_temperatures(heat_pump, runner)
|
1365
1489
|
|
1366
1490
|
HVAC.set_cool_c_d(heat_pump, num_speeds)
|
1367
1491
|
HVAC.set_cool_curves_mshp(heat_pump, num_speeds)
|
1368
|
-
HVAC.
|
1492
|
+
HVAC.set_cool_rated_shrs_gross(runner, heat_pump)
|
1369
1493
|
HVAC.set_cool_rated_eirs_mshp(heat_pump, num_speeds)
|
1370
1494
|
|
1371
1495
|
HVAC.set_heat_c_d(heat_pump, num_speeds)
|
1372
1496
|
HVAC.set_heat_curves_mshp(heat_pump, num_speeds)
|
1373
|
-
HVAC.set_heat_rated_cfm_per_ton_mshp(heat_pump, num_speeds)
|
1374
1497
|
HVAC.set_heat_rated_eirs_mshp(heat_pump, num_speeds)
|
1375
1498
|
|
1376
1499
|
HVAC.set_mshp_downselected_speed_indices(heat_pump)
|
@@ -1380,7 +1503,7 @@ class HPXMLDefaults
|
|
1380
1503
|
HVAC.set_curves_gshp(heat_pump)
|
1381
1504
|
|
1382
1505
|
elsif [HPXML::HVACTypeHeatPumpWaterLoopToAir].include? heat_pump.heat_pump_type
|
1383
|
-
HVAC.set_heat_pump_temperatures(heat_pump)
|
1506
|
+
HVAC.set_heat_pump_temperatures(heat_pump, runner)
|
1384
1507
|
|
1385
1508
|
end
|
1386
1509
|
end
|
@@ -1388,7 +1511,7 @@ class HPXMLDefaults
|
|
1388
1511
|
|
1389
1512
|
def self.apply_hvac_control(hpxml, schedules_file)
|
1390
1513
|
hpxml.hvac_controls.each do |hvac_control|
|
1391
|
-
schedules_file_includes_heating_setpoint_temp =
|
1514
|
+
schedules_file_includes_heating_setpoint_temp = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnHeatingSetpoint))
|
1392
1515
|
if hvac_control.heating_setpoint_temp.nil? && hvac_control.weekday_heating_setpoints.nil? && !schedules_file_includes_heating_setpoint_temp
|
1393
1516
|
# No heating setpoints; set a default heating setpoint for, e.g., natural ventilation
|
1394
1517
|
htg_sp, _htg_setback_sp, _htg_setback_hrs_per_week, _htg_setback_start_hr = HVAC.get_default_heating_setpoint(HPXML::HVACControlTypeManual)
|
@@ -1396,7 +1519,7 @@ class HPXMLDefaults
|
|
1396
1519
|
hvac_control.heating_setpoint_temp_isdefaulted = true
|
1397
1520
|
end
|
1398
1521
|
|
1399
|
-
schedules_file_includes_cooling_setpoint_temp =
|
1522
|
+
schedules_file_includes_cooling_setpoint_temp = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnCoolingSetpoint))
|
1400
1523
|
if hvac_control.cooling_setpoint_temp.nil? && hvac_control.weekday_cooling_setpoints.nil? && !schedules_file_includes_cooling_setpoint_temp
|
1401
1524
|
# No cooling setpoints; set a default cooling setpoint for, e.g., natural ventilation
|
1402
1525
|
clg_sp, _clg_setup_sp, _clg_setup_hrs_per_week, _clg_setup_start_hr = HVAC.get_default_cooling_setpoint(HPXML::HVACControlTypeManual)
|
@@ -1445,8 +1568,6 @@ class HPXMLDefaults
|
|
1445
1568
|
next unless hvac_distribution.distribution_system_type == HPXML::HVACDistributionTypeAir
|
1446
1569
|
next if hvac_distribution.ducts.empty?
|
1447
1570
|
|
1448
|
-
# Default ducts
|
1449
|
-
|
1450
1571
|
supply_ducts = hvac_distribution.ducts.select { |duct| duct.duct_type == HPXML::DuctTypeSupply }
|
1451
1572
|
return_ducts = hvac_distribution.ducts.select { |duct| duct.duct_type == HPXML::DuctTypeReturn }
|
1452
1573
|
|
@@ -1523,10 +1644,80 @@ class HPXMLDefaults
|
|
1523
1644
|
ducts.duct_surface_area_multiplier = 1.0
|
1524
1645
|
ducts.duct_surface_area_multiplier_isdefaulted = true
|
1525
1646
|
end
|
1647
|
+
|
1648
|
+
# Default buried insulation level
|
1649
|
+
hvac_distribution.ducts.each do |ducts|
|
1650
|
+
next unless ducts.duct_buried_insulation_level.nil?
|
1651
|
+
|
1652
|
+
ducts.duct_buried_insulation_level = HPXML::DuctBuriedInsulationNone
|
1653
|
+
ducts.duct_buried_insulation_level_isdefaulted = true
|
1654
|
+
end
|
1655
|
+
|
1656
|
+
# Default effective R-value
|
1657
|
+
hvac_distribution.ducts.each do |ducts|
|
1658
|
+
next unless ducts.duct_effective_r_value.nil?
|
1659
|
+
|
1660
|
+
ducts.duct_effective_r_value = Airflow.get_duct_effective_r_value(ducts.duct_insulation_r_value, ducts.duct_type, ducts.duct_buried_insulation_level)
|
1661
|
+
ducts.duct_effective_r_value_isdefaulted = true
|
1662
|
+
end
|
1663
|
+
end
|
1664
|
+
end
|
1665
|
+
|
1666
|
+
def self.apply_hvac_location(hpxml)
|
1667
|
+
# This needs to come after we have applied defaults for ducts
|
1668
|
+
hpxml.hvac_systems.each do |hvac_system|
|
1669
|
+
next unless hvac_system.location.nil?
|
1670
|
+
|
1671
|
+
hvac_system.location_isdefaulted = true
|
1672
|
+
|
1673
|
+
# Set default location based on distribution system
|
1674
|
+
dist_system = hvac_system.distribution_system
|
1675
|
+
if dist_system.nil?
|
1676
|
+
hvac_system.location = HPXML::LocationLivingSpace
|
1677
|
+
else
|
1678
|
+
dist_type = dist_system.distribution_system_type
|
1679
|
+
if dist_type == HPXML::HVACDistributionTypeAir
|
1680
|
+
# Find largest unconditioned supply duct location
|
1681
|
+
uncond_duct_locations = {}
|
1682
|
+
dist_system.ducts.select { |d| d.duct_type == HPXML::DuctTypeSupply }.each do |d|
|
1683
|
+
next if HPXML::conditioned_locations_this_unit.include? d.duct_location
|
1684
|
+
next if [HPXML::LocationExteriorWall, HPXML::LocationUnderSlab].include? d.duct_location # air handler won't be here
|
1685
|
+
|
1686
|
+
uncond_duct_locations[d.duct_location] = 0.0 if uncond_duct_locations[d.duct_location].nil?
|
1687
|
+
uncond_duct_locations[d.duct_location] += d.duct_surface_area
|
1688
|
+
end
|
1689
|
+
if uncond_duct_locations.empty?
|
1690
|
+
hvac_system.location = HPXML::LocationLivingSpace
|
1691
|
+
else
|
1692
|
+
hvac_system.location = uncond_duct_locations.key(uncond_duct_locations.values.max)
|
1693
|
+
if hvac_system.location == HPXML::LocationOutside
|
1694
|
+
# DuctLocation "outside" needs to be converted to a valid UnitLocation enumeration
|
1695
|
+
hvac_system.location = HPXML::LocationOtherExterior
|
1696
|
+
end
|
1697
|
+
end
|
1698
|
+
elsif dist_type == HPXML::HVACDistributionTypeHydronic
|
1699
|
+
# Assume same default logic as a water heater
|
1700
|
+
hvac_system.location = Waterheater.get_default_location(hpxml, hpxml.climate_and_risk_zones.climate_zone_ieccs[0])
|
1701
|
+
elsif dist_type == HPXML::HVACDistributionTypeDSE
|
1702
|
+
# DSE=1 implies distribution system in conditioned space
|
1703
|
+
has_dse_of_one = true
|
1704
|
+
if (hvac_system.respond_to? :fraction_heat_load_served) && (dist_system.annual_heating_dse != 1)
|
1705
|
+
has_dse_of_one = false
|
1706
|
+
end
|
1707
|
+
if (hvac_system.respond_to? :fraction_cool_load_served) && (dist_system.annual_cooling_dse != 1)
|
1708
|
+
has_dse_of_one = false
|
1709
|
+
end
|
1710
|
+
if has_dse_of_one
|
1711
|
+
hvac_system.location = HPXML::LocationLivingSpace
|
1712
|
+
else
|
1713
|
+
hvac_system.location = HPXML::LocationUnconditionedSpace
|
1714
|
+
end
|
1715
|
+
end
|
1716
|
+
end
|
1526
1717
|
end
|
1527
1718
|
end
|
1528
1719
|
|
1529
|
-
def self.apply_ventilation_fans(hpxml,
|
1720
|
+
def self.apply_ventilation_fans(hpxml, weather, cfa, nbeds)
|
1530
1721
|
# Default mech vent systems
|
1531
1722
|
hpxml.ventilation_fans.each do |vent_fan|
|
1532
1723
|
next unless vent_fan.used_for_whole_building_ventilation
|
@@ -1544,7 +1735,7 @@ class HPXMLDefaults
|
|
1544
1735
|
fail 'Defaulting flow rates for multiple mechanical ventilation systems is currently not supported.'
|
1545
1736
|
end
|
1546
1737
|
|
1547
|
-
vent_fan.rated_flow_rate = Airflow.get_default_mech_vent_flow_rate(hpxml, vent_fan,
|
1738
|
+
vent_fan.rated_flow_rate = Airflow.get_default_mech_vent_flow_rate(hpxml, vent_fan, weather, cfa, nbeds).round(1)
|
1548
1739
|
vent_fan.rated_flow_rate_isdefaulted = true
|
1549
1740
|
end
|
1550
1741
|
if vent_fan.fan_power.nil?
|
@@ -1567,9 +1758,9 @@ class HPXMLDefaults
|
|
1567
1758
|
hpxml.ventilation_fans.each do |vent_fan|
|
1568
1759
|
next unless (vent_fan.used_for_local_ventilation && (vent_fan.fan_location == HPXML::LocationKitchen))
|
1569
1760
|
|
1570
|
-
if vent_fan.
|
1571
|
-
vent_fan.
|
1572
|
-
vent_fan.
|
1761
|
+
if vent_fan.count.nil?
|
1762
|
+
vent_fan.count = 1
|
1763
|
+
vent_fan.count_isdefaulted = true
|
1573
1764
|
end
|
1574
1765
|
if vent_fan.rated_flow_rate.nil? && vent_fan.tested_flow_rate.nil? && vent_fan.calculated_flow_rate.nil? && vent_fan.delivered_ventilation.nil?
|
1575
1766
|
vent_fan.rated_flow_rate = 100.0 # cfm, per BA HSP
|
@@ -1593,9 +1784,9 @@ class HPXMLDefaults
|
|
1593
1784
|
hpxml.ventilation_fans.each do |vent_fan|
|
1594
1785
|
next unless (vent_fan.used_for_local_ventilation && (vent_fan.fan_location == HPXML::LocationBath))
|
1595
1786
|
|
1596
|
-
if vent_fan.
|
1597
|
-
vent_fan.
|
1598
|
-
vent_fan.
|
1787
|
+
if vent_fan.count.nil?
|
1788
|
+
vent_fan.count = hpxml.building_construction.number_of_bathrooms
|
1789
|
+
vent_fan.count_isdefaulted = true
|
1599
1790
|
end
|
1600
1791
|
if vent_fan.rated_flow_rate.nil? && vent_fan.tested_flow_rate.nil? && vent_fan.calculated_flow_rate.nil? && vent_fan.delivered_ventilation.nil?
|
1601
1792
|
vent_fan.rated_flow_rate = 50.0 # cfm, per BA HSP
|
@@ -1636,7 +1827,7 @@ class HPXMLDefaults
|
|
1636
1827
|
water_heating_system.is_shared_system = false
|
1637
1828
|
water_heating_system.is_shared_system_isdefaulted = true
|
1638
1829
|
end
|
1639
|
-
schedules_file_includes_water_heater_setpoint_temp =
|
1830
|
+
schedules_file_includes_water_heater_setpoint_temp = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnWaterHeaterSetpoint))
|
1640
1831
|
if water_heating_system.temperature.nil? && !schedules_file_includes_water_heater_setpoint_temp
|
1641
1832
|
water_heating_system.temperature = Waterheater.get_default_hot_water_temperature(eri_version)
|
1642
1833
|
water_heating_system.temperature_isdefaulted = true
|
@@ -1675,9 +1866,9 @@ class HPXMLDefaults
|
|
1675
1866
|
end
|
1676
1867
|
end
|
1677
1868
|
if (water_heating_system.water_heater_type == HPXML::WaterHeaterTypeHeatPump)
|
1678
|
-
schedules_file_includes_water_heater_operating_mode =
|
1869
|
+
schedules_file_includes_water_heater_operating_mode = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnWaterHeaterOperatingMode))
|
1679
1870
|
if water_heating_system.operating_mode.nil? && !schedules_file_includes_water_heater_operating_mode
|
1680
|
-
water_heating_system.operating_mode = HPXML::
|
1871
|
+
water_heating_system.operating_mode = HPXML::WaterHeaterOperatingModeHybridAuto
|
1681
1872
|
water_heating_system.operating_mode_isdefaulted = true
|
1682
1873
|
end
|
1683
1874
|
end
|
@@ -1696,6 +1887,14 @@ class HPXMLDefaults
|
|
1696
1887
|
end
|
1697
1888
|
end
|
1698
1889
|
|
1890
|
+
def self.apply_flue_or_chimney(hpxml)
|
1891
|
+
# This needs to come after we have applied defaults for HVAC/DHW systems
|
1892
|
+
if hpxml.air_infiltration.has_flue_or_chimney_in_conditioned_space.nil?
|
1893
|
+
hpxml.air_infiltration.has_flue_or_chimney_in_conditioned_space = get_default_flue_or_chimney_in_conditioned_space(hpxml)
|
1894
|
+
hpxml.air_infiltration.has_flue_or_chimney_in_conditioned_space_isdefaulted = true
|
1895
|
+
end
|
1896
|
+
end
|
1897
|
+
|
1699
1898
|
def self.apply_hot_water_distribution(hpxml, cfa, ncfl, has_uncond_bsmnt)
|
1700
1899
|
return if hpxml.hot_water_distributions.size == 0
|
1701
1900
|
|
@@ -1741,7 +1940,7 @@ class HPXMLDefaults
|
|
1741
1940
|
hpxml.water_heating.water_fixtures_usage_multiplier = 1.0
|
1742
1941
|
hpxml.water_heating.water_fixtures_usage_multiplier_isdefaulted = true
|
1743
1942
|
end
|
1744
|
-
schedules_file_includes_fixtures =
|
1943
|
+
schedules_file_includes_fixtures = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnHotWaterFixtures))
|
1745
1944
|
if hpxml.water_heating.water_fixtures_weekday_fractions.nil? && !schedules_file_includes_fixtures
|
1746
1945
|
hpxml.water_heating.water_fixtures_weekday_fractions = Schedule.FixturesWeekdayFractions
|
1747
1946
|
hpxml.water_heating.water_fixtures_weekday_fractions_isdefaulted = true
|
@@ -1799,15 +1998,17 @@ class HPXMLDefaults
|
|
1799
1998
|
pv_system.module_type = HPXML::PVModuleTypeStandard
|
1800
1999
|
pv_system.module_type_isdefaulted = true
|
1801
2000
|
end
|
1802
|
-
if pv_system.inverter_efficiency.nil?
|
1803
|
-
pv_system.inverter_efficiency = PV.get_default_inv_eff()
|
1804
|
-
pv_system.inverter_efficiency_isdefaulted = true
|
1805
|
-
end
|
1806
2001
|
if pv_system.system_losses_fraction.nil?
|
1807
2002
|
pv_system.system_losses_fraction = PV.get_default_system_losses(pv_system.year_modules_manufactured)
|
1808
2003
|
pv_system.system_losses_fraction_isdefaulted = true
|
1809
2004
|
end
|
1810
2005
|
end
|
2006
|
+
hpxml.inverters.each do |inverter|
|
2007
|
+
if inverter.inverter_efficiency.nil?
|
2008
|
+
inverter.inverter_efficiency = PV.get_default_inv_eff()
|
2009
|
+
inverter.inverter_efficiency_isdefaulted = true
|
2010
|
+
end
|
2011
|
+
end
|
1811
2012
|
end
|
1812
2013
|
|
1813
2014
|
def self.apply_generators(hpxml)
|
@@ -1909,7 +2110,7 @@ class HPXMLDefaults
|
|
1909
2110
|
clothes_washer.usage_multiplier = 1.0
|
1910
2111
|
clothes_washer.usage_multiplier_isdefaulted = true
|
1911
2112
|
end
|
1912
|
-
schedules_file_includes_cw =
|
2113
|
+
schedules_file_includes_cw = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnClothesWasher))
|
1913
2114
|
if clothes_washer.weekday_fractions.nil? && !schedules_file_includes_cw
|
1914
2115
|
clothes_washer.weekday_fractions = Schedule.ClothesWasherWeekdayFractions
|
1915
2116
|
clothes_washer.weekday_fractions_isdefaulted = true
|
@@ -1957,7 +2158,7 @@ class HPXMLDefaults
|
|
1957
2158
|
clothes_dryer.vented_flow_rate = 100.0
|
1958
2159
|
clothes_dryer.vented_flow_rate_isdefaulted = true
|
1959
2160
|
end
|
1960
|
-
schedules_file_includes_cd =
|
2161
|
+
schedules_file_includes_cd = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnClothesDryer))
|
1961
2162
|
if clothes_dryer.weekday_fractions.nil? && !schedules_file_includes_cd
|
1962
2163
|
clothes_dryer.weekday_fractions = Schedule.ClothesDryerWeekdayFractions
|
1963
2164
|
clothes_dryer.weekday_fractions_isdefaulted = true
|
@@ -2002,7 +2203,7 @@ class HPXMLDefaults
|
|
2002
2203
|
dishwasher.usage_multiplier = 1.0
|
2003
2204
|
dishwasher.usage_multiplier_isdefaulted = true
|
2004
2205
|
end
|
2005
|
-
schedules_file_includes_dw =
|
2206
|
+
schedules_file_includes_dw = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnDishwasher))
|
2006
2207
|
if dishwasher.weekday_fractions.nil? && !schedules_file_includes_dw
|
2007
2208
|
dishwasher.weekday_fractions = Schedule.DishwasherWeekdayFractions
|
2008
2209
|
dishwasher.weekday_fractions_isdefaulted = true
|
@@ -2033,7 +2234,7 @@ class HPXMLDefaults
|
|
2033
2234
|
refrigerator.rated_annual_kwh = default_values[:rated_annual_kwh]
|
2034
2235
|
refrigerator.rated_annual_kwh_isdefaulted = true
|
2035
2236
|
end
|
2036
|
-
schedules_file_includes_extrafridge =
|
2237
|
+
schedules_file_includes_extrafridge = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnExtraRefrigerator))
|
2037
2238
|
if refrigerator.weekday_fractions.nil? && !schedules_file_includes_extrafridge
|
2038
2239
|
refrigerator.weekday_fractions = Schedule.ExtraRefrigeratorWeekdayFractions
|
2039
2240
|
refrigerator.weekday_fractions_isdefaulted = true
|
@@ -2056,7 +2257,7 @@ class HPXMLDefaults
|
|
2056
2257
|
refrigerator.rated_annual_kwh = default_values[:rated_annual_kwh]
|
2057
2258
|
refrigerator.rated_annual_kwh_isdefaulted = true
|
2058
2259
|
end
|
2059
|
-
schedules_file_includes_fridge =
|
2260
|
+
schedules_file_includes_fridge = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnRefrigerator))
|
2060
2261
|
if refrigerator.weekday_fractions.nil? && !schedules_file_includes_fridge
|
2061
2262
|
refrigerator.weekday_fractions = Schedule.RefrigeratorWeekdayFractions
|
2062
2263
|
refrigerator.weekday_fractions_isdefaulted = true
|
@@ -2091,7 +2292,7 @@ class HPXMLDefaults
|
|
2091
2292
|
freezer.usage_multiplier = 1.0
|
2092
2293
|
freezer.usage_multiplier_isdefaulted = true
|
2093
2294
|
end
|
2094
|
-
schedules_file_includes_freezer =
|
2295
|
+
schedules_file_includes_freezer = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnFreezer))
|
2095
2296
|
if freezer.weekday_fractions.nil? && !schedules_file_includes_freezer
|
2096
2297
|
freezer.weekday_fractions = Schedule.FreezerWeekdayFractions
|
2097
2298
|
freezer.weekday_fractions_isdefaulted = true
|
@@ -2122,7 +2323,7 @@ class HPXMLDefaults
|
|
2122
2323
|
cooking_range.usage_multiplier = 1.0
|
2123
2324
|
cooking_range.usage_multiplier_isdefaulted = true
|
2124
2325
|
end
|
2125
|
-
schedules_file_includes_range =
|
2326
|
+
schedules_file_includes_range = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnCookingRange))
|
2126
2327
|
if cooking_range.weekday_fractions.nil? && !schedules_file_includes_range
|
2127
2328
|
cooking_range.weekday_fractions = Schedule.CookingRangeWeekdayFractions
|
2128
2329
|
cooking_range.weekday_fractions_isdefaulted = true
|
@@ -2168,7 +2369,7 @@ class HPXMLDefaults
|
|
2168
2369
|
default_exterior_lighting_weekend_fractions = Schedule.LightingExteriorWeekendFractions
|
2169
2370
|
default_exterior_lighting_monthly_multipliers = Schedule.LightingExteriorMonthlyMultipliers
|
2170
2371
|
if hpxml.has_location(HPXML::LocationGarage)
|
2171
|
-
schedules_file_includes_lighting_garage =
|
2372
|
+
schedules_file_includes_lighting_garage = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnLightingGarage))
|
2172
2373
|
if hpxml.lighting.garage_weekday_fractions.nil? && !schedules_file_includes_lighting_garage
|
2173
2374
|
hpxml.lighting.garage_weekday_fractions = default_exterior_lighting_weekday_fractions
|
2174
2375
|
hpxml.lighting.garage_weekday_fractions_isdefaulted = true
|
@@ -2182,7 +2383,7 @@ class HPXMLDefaults
|
|
2182
2383
|
hpxml.lighting.garage_monthly_multipliers_isdefaulted = true
|
2183
2384
|
end
|
2184
2385
|
end
|
2185
|
-
schedules_file_includes_lighting_exterior =
|
2386
|
+
schedules_file_includes_lighting_exterior = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnLightingExterior))
|
2186
2387
|
if hpxml.lighting.exterior_weekday_fractions.nil? && !schedules_file_includes_lighting_exterior
|
2187
2388
|
hpxml.lighting.exterior_weekday_fractions = default_exterior_lighting_weekday_fractions
|
2188
2389
|
hpxml.lighting.exterior_weekday_fractions_isdefaulted = true
|
@@ -2217,7 +2418,7 @@ class HPXMLDefaults
|
|
2217
2418
|
hpxml.lighting.holiday_period_end_day = 6
|
2218
2419
|
hpxml.lighting.holiday_period_end_day_isdefaulted = true
|
2219
2420
|
end
|
2220
|
-
schedules_file_includes_lighting_holiday_exterior =
|
2421
|
+
schedules_file_includes_lighting_holiday_exterior = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnLightingExteriorHoliday))
|
2221
2422
|
if hpxml.lighting.holiday_weekday_fractions.nil? && !schedules_file_includes_lighting_holiday_exterior
|
2222
2423
|
hpxml.lighting.holiday_weekday_fractions = Schedule.LightingExteriorHolidayWeekdayFractions
|
2223
2424
|
hpxml.lighting.holiday_weekday_fractions_isdefaulted = true
|
@@ -2238,11 +2439,11 @@ class HPXMLDefaults
|
|
2238
2439
|
ceiling_fan.efficiency = medium_cfm / HVAC.get_default_ceiling_fan_power()
|
2239
2440
|
ceiling_fan.efficiency_isdefaulted = true
|
2240
2441
|
end
|
2241
|
-
if ceiling_fan.
|
2242
|
-
ceiling_fan.
|
2243
|
-
ceiling_fan.
|
2442
|
+
if ceiling_fan.count.nil?
|
2443
|
+
ceiling_fan.count = HVAC.get_default_ceiling_fan_quantity(nbeds)
|
2444
|
+
ceiling_fan.count_isdefaulted = true
|
2244
2445
|
end
|
2245
|
-
schedules_file_includes_ceiling_fan =
|
2446
|
+
schedules_file_includes_ceiling_fan = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnCeilingFan))
|
2246
2447
|
if ceiling_fan.weekday_fractions.nil? && !schedules_file_includes_ceiling_fan
|
2247
2448
|
ceiling_fan.weekday_fractions = Schedule.CeilingFanWeekdayFractions
|
2248
2449
|
ceiling_fan.weekday_fractions_isdefaulted = true
|
@@ -2257,7 +2458,8 @@ class HPXMLDefaults
|
|
2257
2458
|
end
|
2258
2459
|
end
|
2259
2460
|
|
2260
|
-
def self.apply_pools_and_hot_tubs(hpxml, cfa,
|
2461
|
+
def self.apply_pools_and_hot_tubs(hpxml, cfa, schedules_file)
|
2462
|
+
nbeds = hpxml.building_construction.additional_properties.adjusted_number_of_bedrooms
|
2261
2463
|
hpxml.pools.each do |pool|
|
2262
2464
|
next if pool.type == HPXML::TypeNone
|
2263
2465
|
|
@@ -2271,7 +2473,7 @@ class HPXMLDefaults
|
|
2271
2473
|
pool.pump_usage_multiplier = 1.0
|
2272
2474
|
pool.pump_usage_multiplier_isdefaulted = true
|
2273
2475
|
end
|
2274
|
-
schedules_file_includes_pool_pump =
|
2476
|
+
schedules_file_includes_pool_pump = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnPoolPump))
|
2275
2477
|
if pool.pump_weekday_fractions.nil? && !schedules_file_includes_pool_pump
|
2276
2478
|
pool.pump_weekday_fractions = Schedule.PoolPumpWeekdayFractions
|
2277
2479
|
pool.pump_weekday_fractions_isdefaulted = true
|
@@ -2299,7 +2501,7 @@ class HPXMLDefaults
|
|
2299
2501
|
pool.heater_usage_multiplier = 1.0
|
2300
2502
|
pool.heater_usage_multiplier_isdefaulted = true
|
2301
2503
|
end
|
2302
|
-
schedules_file_includes_pool_heater =
|
2504
|
+
schedules_file_includes_pool_heater = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnPoolHeater))
|
2303
2505
|
if pool.heater_weekday_fractions.nil? && !schedules_file_includes_pool_heater
|
2304
2506
|
pool.heater_weekday_fractions = Schedule.PoolHeaterWeekdayFractions
|
2305
2507
|
pool.heater_weekday_fractions_isdefaulted = true
|
@@ -2327,7 +2529,7 @@ class HPXMLDefaults
|
|
2327
2529
|
hot_tub.pump_usage_multiplier = 1.0
|
2328
2530
|
hot_tub.pump_usage_multiplier_isdefaulted = true
|
2329
2531
|
end
|
2330
|
-
schedules_file_includes_hot_tub_pump =
|
2532
|
+
schedules_file_includes_hot_tub_pump = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnHotTubPump))
|
2331
2533
|
if hot_tub.pump_weekday_fractions.nil? && !schedules_file_includes_hot_tub_pump
|
2332
2534
|
hot_tub.pump_weekday_fractions = Schedule.HotTubPumpWeekdayFractions
|
2333
2535
|
hot_tub.pump_weekday_fractions_isdefaulted = true
|
@@ -2355,7 +2557,7 @@ class HPXMLDefaults
|
|
2355
2557
|
hot_tub.heater_usage_multiplier = 1.0
|
2356
2558
|
hot_tub.heater_usage_multiplier_isdefaulted = true
|
2357
2559
|
end
|
2358
|
-
schedules_file_includes_hot_tub_heater =
|
2560
|
+
schedules_file_includes_hot_tub_heater = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnHotTubHeater))
|
2359
2561
|
if hot_tub.heater_weekday_fractions.nil? && !schedules_file_includes_hot_tub_heater
|
2360
2562
|
hot_tub.heater_weekday_fractions = Schedule.HotTubHeaterWeekdayFractions
|
2361
2563
|
hot_tub.heater_weekday_fractions_isdefaulted = true
|
@@ -2371,13 +2573,14 @@ class HPXMLDefaults
|
|
2371
2573
|
end
|
2372
2574
|
end
|
2373
2575
|
|
2374
|
-
def self.apply_plug_loads(hpxml, cfa,
|
2576
|
+
def self.apply_plug_loads(hpxml, cfa, schedules_file)
|
2577
|
+
nbeds = hpxml.building_construction.additional_properties.adjusted_number_of_bedrooms
|
2375
2578
|
hpxml.plug_loads.each do |plug_load|
|
2376
2579
|
if plug_load.plug_load_type == HPXML::PlugLoadTypeOther
|
2377
2580
|
default_annual_kwh, default_sens_frac, default_lat_frac = MiscLoads.get_residual_mels_default_values(cfa)
|
2378
|
-
if plug_load.
|
2379
|
-
plug_load.
|
2380
|
-
plug_load.
|
2581
|
+
if plug_load.kwh_per_year.nil?
|
2582
|
+
plug_load.kwh_per_year = default_annual_kwh
|
2583
|
+
plug_load.kwh_per_year_isdefaulted = true
|
2381
2584
|
end
|
2382
2585
|
if plug_load.frac_sensible.nil?
|
2383
2586
|
plug_load.frac_sensible = default_sens_frac
|
@@ -2387,7 +2590,7 @@ class HPXMLDefaults
|
|
2387
2590
|
plug_load.frac_latent = default_lat_frac
|
2388
2591
|
plug_load.frac_latent_isdefaulted = true
|
2389
2592
|
end
|
2390
|
-
schedules_file_includes_plug_loads_other =
|
2593
|
+
schedules_file_includes_plug_loads_other = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnPlugLoadsOther))
|
2391
2594
|
if plug_load.weekday_fractions.nil? && !schedules_file_includes_plug_loads_other
|
2392
2595
|
plug_load.weekday_fractions = Schedule.PlugLoadsOtherWeekdayFractions
|
2393
2596
|
plug_load.weekday_fractions_isdefaulted = true
|
@@ -2402,9 +2605,9 @@ class HPXMLDefaults
|
|
2402
2605
|
end
|
2403
2606
|
elsif plug_load.plug_load_type == HPXML::PlugLoadTypeTelevision
|
2404
2607
|
default_annual_kwh, default_sens_frac, default_lat_frac = MiscLoads.get_televisions_default_values(cfa, nbeds)
|
2405
|
-
if plug_load.
|
2406
|
-
plug_load.
|
2407
|
-
plug_load.
|
2608
|
+
if plug_load.kwh_per_year.nil?
|
2609
|
+
plug_load.kwh_per_year = default_annual_kwh
|
2610
|
+
plug_load.kwh_per_year_isdefaulted = true
|
2408
2611
|
end
|
2409
2612
|
if plug_load.frac_sensible.nil?
|
2410
2613
|
plug_load.frac_sensible = default_sens_frac
|
@@ -2414,7 +2617,7 @@ class HPXMLDefaults
|
|
2414
2617
|
plug_load.frac_latent = default_lat_frac
|
2415
2618
|
plug_load.frac_latent_isdefaulted = true
|
2416
2619
|
end
|
2417
|
-
schedules_file_includes_plug_loads_tv =
|
2620
|
+
schedules_file_includes_plug_loads_tv = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnPlugLoadsTV))
|
2418
2621
|
if plug_load.weekday_fractions.nil? && !schedules_file_includes_plug_loads_tv
|
2419
2622
|
plug_load.weekday_fractions = Schedule.PlugLoadsTVWeekdayFractions
|
2420
2623
|
plug_load.weekday_fractions_isdefaulted = true
|
@@ -2429,9 +2632,9 @@ class HPXMLDefaults
|
|
2429
2632
|
end
|
2430
2633
|
elsif plug_load.plug_load_type == HPXML::PlugLoadTypeElectricVehicleCharging
|
2431
2634
|
default_annual_kwh = MiscLoads.get_electric_vehicle_charging_default_values
|
2432
|
-
if plug_load.
|
2433
|
-
plug_load.
|
2434
|
-
plug_load.
|
2635
|
+
if plug_load.kwh_per_year.nil?
|
2636
|
+
plug_load.kwh_per_year = default_annual_kwh
|
2637
|
+
plug_load.kwh_per_year_isdefaulted = true
|
2435
2638
|
end
|
2436
2639
|
if plug_load.frac_sensible.nil?
|
2437
2640
|
plug_load.frac_sensible = 0.0
|
@@ -2441,7 +2644,7 @@ class HPXMLDefaults
|
|
2441
2644
|
plug_load.frac_latent = 0.0
|
2442
2645
|
plug_load.frac_latent_isdefaulted = true
|
2443
2646
|
end
|
2444
|
-
schedules_file_includes_plug_loads_vehicle =
|
2647
|
+
schedules_file_includes_plug_loads_vehicle = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnPlugLoadsVehicle))
|
2445
2648
|
if plug_load.weekday_fractions.nil? && !schedules_file_includes_plug_loads_vehicle
|
2446
2649
|
plug_load.weekday_fractions = Schedule.PlugLoadsVehicleWeekdayFractions
|
2447
2650
|
plug_load.weekday_fractions_isdefaulted = true
|
@@ -2456,9 +2659,9 @@ class HPXMLDefaults
|
|
2456
2659
|
end
|
2457
2660
|
elsif plug_load.plug_load_type == HPXML::PlugLoadTypeWellPump
|
2458
2661
|
default_annual_kwh = MiscLoads.get_well_pump_default_values(cfa, nbeds)
|
2459
|
-
if plug_load.
|
2460
|
-
plug_load.
|
2461
|
-
plug_load.
|
2662
|
+
if plug_load.kwh_per_year.nil?
|
2663
|
+
plug_load.kwh_per_year = default_annual_kwh
|
2664
|
+
plug_load.kwh_per_year_isdefaulted = true
|
2462
2665
|
end
|
2463
2666
|
if plug_load.frac_sensible.nil?
|
2464
2667
|
plug_load.frac_sensible = 0.0
|
@@ -2468,7 +2671,7 @@ class HPXMLDefaults
|
|
2468
2671
|
plug_load.frac_latent = 0.0
|
2469
2672
|
plug_load.frac_latent_isdefaulted = true
|
2470
2673
|
end
|
2471
|
-
schedules_file_includes_plug_loads_well_pump =
|
2674
|
+
schedules_file_includes_plug_loads_well_pump = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnPlugLoadsWellPump))
|
2472
2675
|
if plug_load.weekday_fractions.nil? && !schedules_file_includes_plug_loads_well_pump
|
2473
2676
|
plug_load.weekday_fractions = Schedule.PlugLoadsWellPumpWeekdayFractions
|
2474
2677
|
plug_load.weekday_fractions_isdefaulted = true
|
@@ -2489,7 +2692,8 @@ class HPXMLDefaults
|
|
2489
2692
|
end
|
2490
2693
|
end
|
2491
2694
|
|
2492
|
-
def self.apply_fuel_loads(hpxml, cfa,
|
2695
|
+
def self.apply_fuel_loads(hpxml, cfa, schedules_file)
|
2696
|
+
nbeds = hpxml.building_construction.additional_properties.adjusted_number_of_bedrooms
|
2493
2697
|
hpxml.fuel_loads.each do |fuel_load|
|
2494
2698
|
if fuel_load.fuel_load_type == HPXML::FuelLoadTypeGrill
|
2495
2699
|
if fuel_load.therm_per_year.nil?
|
@@ -2504,7 +2708,7 @@ class HPXMLDefaults
|
|
2504
2708
|
fuel_load.frac_latent = 0.0
|
2505
2709
|
fuel_load.frac_latent_isdefaulted = true
|
2506
2710
|
end
|
2507
|
-
schedules_file_includes_fuel_loads_grill =
|
2711
|
+
schedules_file_includes_fuel_loads_grill = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnFuelLoadsGrill))
|
2508
2712
|
if fuel_load.weekday_fractions.nil? && !schedules_file_includes_fuel_loads_grill
|
2509
2713
|
fuel_load.weekday_fractions = Schedule.FuelLoadsGrillWeekdayFractions
|
2510
2714
|
fuel_load.weekday_fractions_isdefaulted = true
|
@@ -2530,7 +2734,7 @@ class HPXMLDefaults
|
|
2530
2734
|
fuel_load.frac_latent = 0.0
|
2531
2735
|
fuel_load.frac_latent_isdefaulted = true
|
2532
2736
|
end
|
2533
|
-
schedules_file_includes_fuel_loads_lighting =
|
2737
|
+
schedules_file_includes_fuel_loads_lighting = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnFuelLoadsLighting))
|
2534
2738
|
if fuel_load.weekday_fractions.nil? && !schedules_file_includes_fuel_loads_lighting
|
2535
2739
|
fuel_load.weekday_fractions = Schedule.FuelLoadsLightingWeekdayFractions
|
2536
2740
|
fuel_load.weekday_fractions_isdefaulted = true
|
@@ -2556,7 +2760,7 @@ class HPXMLDefaults
|
|
2556
2760
|
fuel_load.frac_latent = 0.1
|
2557
2761
|
fuel_load.frac_latent_isdefaulted = true
|
2558
2762
|
end
|
2559
|
-
schedules_file_includes_fuel_loads_fireplace =
|
2763
|
+
schedules_file_includes_fuel_loads_fireplace = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::ColumnFuelLoadsFireplace))
|
2560
2764
|
if fuel_load.weekday_fractions.nil? && !schedules_file_includes_fuel_loads_fireplace
|
2561
2765
|
fuel_load.weekday_fractions = Schedule.FuelLoadsFireplaceWeekdayFractions
|
2562
2766
|
fuel_load.weekday_fractions_isdefaulted = true
|
@@ -2577,11 +2781,11 @@ class HPXMLDefaults
|
|
2577
2781
|
end
|
2578
2782
|
end
|
2579
2783
|
|
2580
|
-
def self.apply_hvac_sizing(hpxml, weather, cfa
|
2784
|
+
def self.apply_hvac_sizing(hpxml, weather, cfa)
|
2581
2785
|
hvac_systems = HVAC.get_hpxml_hvac_systems(hpxml)
|
2582
2786
|
|
2583
2787
|
# Calculate building design loads and equipment capacities/airflows
|
2584
|
-
bldg_design_loads, all_hvac_sizing_values = HVACSizing.calculate(weather, hpxml, cfa,
|
2788
|
+
bldg_design_loads, all_hvac_sizing_values = HVACSizing.calculate(weather, hpxml, cfa, hvac_systems)
|
2585
2789
|
|
2586
2790
|
hvacpl = hpxml.hvac_plant
|
2587
2791
|
tol = 10 # Btuh
|
@@ -2616,7 +2820,7 @@ class HPXMLDefaults
|
|
2616
2820
|
hvacpl.cdl_sens_windows = bldg_design_loads.Cool_Windows.round
|
2617
2821
|
hvacpl.cdl_sens_skylights = bldg_design_loads.Cool_Skylights.round
|
2618
2822
|
hvacpl.cdl_sens_doors = bldg_design_loads.Cool_Doors.round
|
2619
|
-
hvacpl.cdl_sens_infilvent = bldg_design_loads.
|
2823
|
+
hvacpl.cdl_sens_infilvent = bldg_design_loads.Cool_InfilVent_Sens.round
|
2620
2824
|
hvacpl.cdl_sens_ducts = bldg_design_loads.Cool_Ducts_Sens.round
|
2621
2825
|
hvacpl.cdl_sens_intgains = bldg_design_loads.Cool_IntGains_Sens.round
|
2622
2826
|
cdl_sens_sum = (hvacpl.cdl_sens_walls + hvacpl.cdl_sens_ceilings +
|
@@ -2632,7 +2836,7 @@ class HPXMLDefaults
|
|
2632
2836
|
# Assign cooling latent design loads to HPXML object
|
2633
2837
|
hvacpl.cdl_lat_total = bldg_design_loads.Cool_Lat.round
|
2634
2838
|
hvacpl.cdl_lat_ducts = bldg_design_loads.Cool_Ducts_Lat.round
|
2635
|
-
hvacpl.cdl_lat_infilvent = bldg_design_loads.
|
2839
|
+
hvacpl.cdl_lat_infilvent = bldg_design_loads.Cool_InfilVent_Lat.round
|
2636
2840
|
hvacpl.cdl_lat_intgains = bldg_design_loads.Cool_IntGains_Lat.round
|
2637
2841
|
cdl_lat_sum = (hvacpl.cdl_lat_ducts + hvacpl.cdl_lat_infilvent +
|
2638
2842
|
hvacpl.cdl_lat_intgains)
|
@@ -2640,10 +2844,6 @@ class HPXMLDefaults
|
|
2640
2844
|
fail 'Cooling latent design loads do not sum to total.'
|
2641
2845
|
end
|
2642
2846
|
|
2643
|
-
# Assign design temperatures to HPXML object
|
2644
|
-
hvacpl.temp_heating = weather.design.HeatingDrybulb.round(2)
|
2645
|
-
hvacpl.temp_cooling = weather.design.CoolingDrybulb.round(2)
|
2646
|
-
|
2647
2847
|
# Assign sizing values to HPXML objects
|
2648
2848
|
all_hvac_sizing_values.each do |hvac_system, hvac_sizing_values|
|
2649
2849
|
htg_sys = hvac_system[:heating]
|
@@ -2663,11 +2863,6 @@ class HPXMLDefaults
|
|
2663
2863
|
htg_sys.heating_capacity_17F = htg_cap_17f.round
|
2664
2864
|
htg_sys.heating_capacity_17F_isdefaulted = true
|
2665
2865
|
end
|
2666
|
-
else
|
2667
|
-
# Autosized
|
2668
|
-
# FUTURE: Calculate HeatingCapacity17F from heat_cap_ft_spec? Might be confusing
|
2669
|
-
# since user would not be able to replicate the results using this value, as the
|
2670
|
-
# default curves are non-linear.
|
2671
2866
|
end
|
2672
2867
|
end
|
2673
2868
|
htg_sys.heating_capacity = hvac_sizing_values.Heat_Capacity.round
|
@@ -2773,18 +2968,54 @@ class HPXMLDefaults
|
|
2773
2968
|
end
|
2774
2969
|
|
2775
2970
|
def self.get_nbeds_adjusted_for_operational_calculation(hpxml)
|
2776
|
-
|
2971
|
+
n_occs = hpxml.building_occupancy.number_of_residents
|
2777
2972
|
unit_type = hpxml.building_construction.residential_facility_type
|
2778
|
-
|
2779
|
-
|
2780
|
-
|
2781
|
-
|
2782
|
-
|
2783
|
-
|
2784
|
-
|
2785
|
-
|
2786
|
-
|
2973
|
+
if [HPXML::ResidentialTypeApartment, HPXML::ResidentialTypeSFA].include? unit_type
|
2974
|
+
return -0.68 + 1.09 * n_occs
|
2975
|
+
elsif [HPXML::ResidentialTypeSFD, HPXML::ResidentialTypeManufactured].include? unit_type
|
2976
|
+
return -1.47 + 1.69 * n_occs
|
2977
|
+
else
|
2978
|
+
fail "Unexpected residential facility type: #{unit_type}."
|
2979
|
+
end
|
2980
|
+
end
|
2981
|
+
|
2982
|
+
def self.get_default_flue_or_chimney_in_conditioned_space(hpxml)
|
2983
|
+
# Check for atmospheric heating system in conditioned space
|
2984
|
+
hpxml.heating_systems.each do |heating_system|
|
2985
|
+
next unless HPXML::conditioned_locations_this_unit.include? heating_system.location
|
2986
|
+
|
2987
|
+
if [HPXML::HVACTypeFurnace,
|
2988
|
+
HPXML::HVACTypeBoiler,
|
2989
|
+
HPXML::HVACTypeWallFurnace,
|
2990
|
+
HPXML::HVACTypeFloorFurnace,
|
2991
|
+
HPXML::HVACTypeStove,
|
2992
|
+
HPXML::HVACTypeFixedHeater].include? heating_system.heating_system_type
|
2993
|
+
if not heating_system.heating_efficiency_afue.nil?
|
2994
|
+
next if heating_system.heating_efficiency_afue >= 0.89
|
2995
|
+
elsif not heating_system.heating_efficiency_percent.nil?
|
2996
|
+
next if heating_system.heating_efficiency_percent >= 0.89
|
2997
|
+
end
|
2998
|
+
|
2999
|
+
return true
|
3000
|
+
elsif [HPXML::HVACTypeFireplace].include? heating_system.heating_system_type
|
3001
|
+
next if heating_system.heating_system_fuel == HPXML::FuelTypeElectricity
|
3002
|
+
|
3003
|
+
return true
|
3004
|
+
end
|
3005
|
+
end
|
3006
|
+
|
3007
|
+
# Check for atmospheric water heater in conditioned space
|
3008
|
+
hpxml.water_heating_systems.each do |water_heating_system|
|
3009
|
+
next unless HPXML::conditioned_locations_this_unit.include? water_heating_system.location
|
3010
|
+
|
3011
|
+
if not water_heating_system.energy_factor.nil?
|
3012
|
+
next if water_heating_system.energy_factor >= 0.63
|
3013
|
+
elsif not water_heating_system.uniform_energy_factor.nil?
|
3014
|
+
next if Waterheater.calc_ef_from_uef(water_heating_system) >= 0.63
|
2787
3015
|
end
|
3016
|
+
|
3017
|
+
return true
|
2788
3018
|
end
|
3019
|
+
return false
|
2789
3020
|
end
|
2790
3021
|
end
|