diff --git a/buildstockbatch/base.py b/buildstockbatch/base.py index b03f14a0..530e173d 100644 --- a/buildstockbatch/base.py +++ b/buildstockbatch/base.py @@ -26,6 +26,7 @@ import zipfile import csv from collections import defaultdict +import xml.etree.ElementTree as ET from buildstockbatch.__version__ import __schema_version__ from .workflow_generator import ResidentialDefaultWorkflowGenerator, CommercialDefaultWorkflowGenerator @@ -287,6 +288,7 @@ def cleanup_sim_dir(sim_dir): def validate_project(project_file): assert(BuildStockBatchBase.validate_project_schema(project_file)) assert(BuildStockBatchBase.validate_xor_schema_keys(project_file)) + assert(BuildStockBatchBase.validate_measures_and_arguments(project_file)) assert(BuildStockBatchBase.validate_options_lookup(project_file)) assert(BuildStockBatchBase.validate_measure_references(project_file)) assert(BuildStockBatchBase.validate_reference_scenario(project_file)) @@ -337,6 +339,98 @@ def validate_xor_schema_keys(project_file): raise ValueError('Both/neither n_datapoints and buildstock_csv found in yaml baseline key') return True + def validate_measures_and_arguments(project_file): + cfg = BuildStockBatchBase.get_project_configuration(project_file) + if cfg['stock_type'] != 'residential': # FIXME: add comstock logic + return True + + buildstock_dir = os.path.join(os.path.dirname(project_file), cfg["buildstock_directory"]) + measures_dir = f'{buildstock_dir}/measures' + type_map = {'Integer': int, 'Boolean': bool, 'String': str, 'Double': float} + + measure_names = { + 'ResidentialSimulationControls': 'residential_simulation_controls', + 'BuildExistingModel': 'baseline', + 'SimulationOutputReport': 'simulation_output_report', + 'ServerDirectoryCleanup': None, + 'ApplyUpgrade': 'upgrades', + 'TimeseriesCSVExport': 'timeseries_csv_export' + } + if 'reporting_measures' in cfg.keys(): + for reporting_measure in cfg['reporting_measures']: + measure_names[reporting_measure] = 'reporting_measures' + + def get_measure_xml(xml_path): + tree = ET.parse(xml_path) + root = tree.getroot() + return root + + error_msgs = '' + for measure_name in measure_names.keys(): + measure_path = os.path.join(measures_dir, measure_name) + + if measure_names[measure_name] in cfg.keys() or \ + measure_names[measure_name] == 'residential_simulation_controls': + # if they exist in the cfg, make sure they exist in the buildstock checkout + if not os.path.exists(measure_path): + error_msgs += f"* {measure_name} does not exist in {buildstock_dir}. \n" + + # check argument value types for residential simulation controls and timeseries csv export measures + if measure_name in ['ResidentialSimulationControls', 'TimeseriesCSVExport']: + root = get_measure_xml(os.path.join(measure_path, 'measure.xml')) + + expected_arguments = {} + for argument in root.findall('./arguments/argument'): + for name in argument.findall('./name'): + expected_arguments[name.text] = [] + + if argument.find('./type').text == 'Choice': + for choice in argument.findall('./choices/choice'): + for value in choice.findall('./value'): + expected_arguments[name.text].append(value.text) + else: + expected_arguments[name.text].append(argument.find('./type').text) + + # check only if that measure exists in cfg + if measure_names[measure_name] not in cfg.keys(): + continue + for actual_argument_key in cfg[measure_names[measure_name]].keys(): + if actual_argument_key not in expected_arguments.keys(): + error_msgs += f"* Found unexpected argument key {actual_argument_key} for \ + {measure_names[measure_name]} in yaml file. \n" + + actual_argument_value = cfg[measure_names[measure_name]][actual_argument_key] + + if actual_argument_key in expected_arguments.keys(): + expected_argument_type = expected_arguments[actual_argument_key] + + try: + if type(actual_argument_value) != list: + if not isinstance(actual_argument_value, type_map[expected_argument_type[0]]): + error_msgs += f"* Wrong argument value type for {actual_argument_key} for \ + {measure_names[measure_name]} in yaml file. \n" + else: + for actual_argument_val in actual_argument_value: + if not isinstance(actual_argument_val, type_map[expected_argument_type[0]]): + error_msgs += f"* Wrong argument value type for {actual_argument_key} for \ + {measure_names[measure_name]} in yaml file. \n" + + except KeyError: + if len(expected_argument_type) > 1: # Choice + if actual_argument_value not in expected_argument_type: + error_msgs += f"* Found unexpected argument value {actual_argument_value} for \ + {measure_names[measure_name]} in yaml file. \n" + else: + print(f"Found an unexpected argument value type: {expected_argument_type[0]}.") + + if not error_msgs: + return True + else: + logger.error(error_msgs) + raise ValueError(error_msgs) + + return True + @staticmethod def validate_options_lookup(project_file): """ diff --git a/buildstockbatch/test/conftest.py b/buildstockbatch/test/conftest.py index b0772ce7..7ac4839a 100644 --- a/buildstockbatch/test/conftest.py +++ b/buildstockbatch/test/conftest.py @@ -36,7 +36,7 @@ def _basic_residential_project_file(update_args={}): }, 'timeseries_csv_export': { 'reporting_frequency': 'Hourly', - 'include_enduse_subcategories': 'true' + 'include_enduse_subcategories': True }, 'eagle': { 'sampling': { diff --git a/buildstockbatch/test/test_eagle.py b/buildstockbatch/test/test_eagle.py index ab2815a7..34a8da1a 100644 --- a/buildstockbatch/test/test_eagle.py +++ b/buildstockbatch/test/test_eagle.py @@ -7,9 +7,12 @@ from buildstockbatch.eagle import user_cli, EagleBatch +@patch('buildstockbatch.base.BuildStockBatchBase.validate_measures_and_arguments') @patch('buildstockbatch.base.BuildStockBatchBase.validate_options_lookup') @patch('buildstockbatch.eagle.subprocess') -def test_user_cli(mock_subprocess, mock_validate_options, basic_residential_project_file, monkeypatch): +def test_user_cli(mock_subprocess, mock_validate_options, mock_validate_measures, basic_residential_project_file, + monkeypatch): + mock_validate_measures.return_value = True mock_validate_options.return_value = True project_filename, results_dir = basic_residential_project_file() diff --git a/buildstockbatch/test/test_inputs/enforce-validate-measures-bad-2.yml b/buildstockbatch/test/test_inputs/enforce-validate-measures-bad-2.yml new file mode 100644 index 00000000..0abf7821 --- /dev/null +++ b/buildstockbatch/test/test_inputs/enforce-validate-measures-bad-2.yml @@ -0,0 +1,34 @@ +stock_type: residential +buildstock_directory: test_openstudio_buildstock +project_directory: project_singlefamilydetached +baseline: + n_datapoints: 30 + n_buildings_represented: 81221016 +residential_simulation_controls: + timesteps_per_hr: 4 + begin_month: 1 + begin_day_of_month: 1.5 + end_month: 12 + end_day_of_month: 31 +upgrades: + - upgrade_name: good upgrade + options: + - option: Vintage|<1940 + apply_logic: + - or: + - Insulation Slab|Good Option + - Insulation Slab|None + - not: Insulation Wall|Good Option + - and: + - Vintage|1960s||Vintage|1960s + - Vintage|1980s + - option: Insulation Finished Basement|Good Option + apply_logic: + - Insulation Unfinished Basement|Extra Argument +timeseries_csv_export: + reporting_frequency: Huorly + include_enduse_subcategories: true + output_variable: + - Zone Mean Air Temperature +reporting_measures: + - ReportingMeasure2 diff --git a/buildstockbatch/test/test_inputs/enforce-validate-measures-good-2.yml b/buildstockbatch/test/test_inputs/enforce-validate-measures-good-2.yml new file mode 100644 index 00000000..47fb56f0 --- /dev/null +++ b/buildstockbatch/test/test_inputs/enforce-validate-measures-good-2.yml @@ -0,0 +1,29 @@ +stock_type: residential +buildstock_directory: test_openstudio_buildstock +project_directory: project_singlefamilydetached +baseline: + n_datapoints: 30 + n_buildings_represented: 81221016 +upgrades: + - upgrade_name: good upgrade + options: + - option: Vintage|<1940 + apply_logic: + - or: + - Insulation Slab|Good Option + - Insulation Slab|None + - not: Insulation Wall|Good Option + - and: + - Vintage|1960s||Vintage|1960s + - Vintage|1980s + - option: Insulation Finished Basement|Good Option + apply_logic: + - Insulation Unfinished Basement|Extra Argument + package_apply_logic: Vintage|1960s||Vintage|1940s +timeseries_csv_export: + reporting_frequency: Timestep + include_enduse_subcategories: true + output_variables: + - Zone Mean Air Temperature +reporting_measures: + - ReportingMeasure1 diff --git a/buildstockbatch/test/test_inputs/test_openstudio_buildstock/measures/ApplyUpgrade/measure.xml b/buildstockbatch/test/test_inputs/test_openstudio_buildstock/measures/ApplyUpgrade/measure.xml new file mode 100644 index 00000000..ae690f2c --- /dev/null +++ b/buildstockbatch/test/test_inputs/test_openstudio_buildstock/measures/ApplyUpgrade/measure.xml @@ -0,0 +1,4735 @@ + + 3.0 + apply_upgrade + 33f1654c-f734-43d1-b35d-9d2856e41b5a + 48b4badc-12ca-411c-ad2c-97e10ec5e7f3 + 20190715T223325Z + 9339BE01 + ApplyUpgrade + Apply Upgrade + Measure that applies an upgrade (one or more child measures) to a building model based on the specified logic. + Determines if the upgrade should apply to a given building model. If so, calls one or more child measures with the appropriate arguments. + + + upgrade_name + Upgrade Name + User-specificed name that describes the upgrade. + String + true + false + My Upgrade + + + option_1 + Option 1 + Specify the parameter|option as found in resources\options_lookup.tsv. + String + true + false + + + option_1_apply_logic + Option 1 Apply Logic + Logic that specifies if the Option 1 upgrade will apply based on the existing building's options. Specify one or more parameter|option as found in resources\options_lookup.tsv. When multiple are included, they must be separated by '||' for OR and '&&' for AND, and using parentheses as appropriate. Prefix an option with '!' for not. + String + false + false + + + option_1_cost_1_value + Option 1 Cost 1 Value + Total option 1 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_1_cost_1_multiplier + Option 1 Cost 1 Multiplier + Total option 1 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_1_cost_2_value + Option 1 Cost 2 Value + Total option 1 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_1_cost_2_multiplier + Option 1 Cost 2 Multiplier + Total option 1 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_1_lifetime + Option 1 Lifetime + The option lifetime. + Double + years + false + false + + + option_2 + Option 2 + Specify the parameter|option as found in resources\options_lookup.tsv. + String + false + false + + + option_2_apply_logic + Option 2 Apply Logic + Logic that specifies if the Option 2 upgrade will apply based on the existing building's options. Specify one or more parameter|option as found in resources\options_lookup.tsv. When multiple are included, they must be separated by '||' for OR and '&&' for AND, and using parentheses as appropriate. Prefix an option with '!' for not. + String + false + false + + + option_2_cost_1_value + Option 2 Cost 1 Value + Total option 2 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_2_cost_1_multiplier + Option 2 Cost 1 Multiplier + Total option 2 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_2_cost_2_value + Option 2 Cost 2 Value + Total option 2 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_2_cost_2_multiplier + Option 2 Cost 2 Multiplier + Total option 2 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_2_lifetime + Option 2 Lifetime + The option lifetime. + Double + years + false + false + + + option_3 + Option 3 + Specify the parameter|option as found in resources\options_lookup.tsv. + String + false + false + + + option_3_apply_logic + Option 3 Apply Logic + Logic that specifies if the Option 3 upgrade will apply based on the existing building's options. Specify one or more parameter|option as found in resources\options_lookup.tsv. When multiple are included, they must be separated by '||' for OR and '&&' for AND, and using parentheses as appropriate. Prefix an option with '!' for not. + String + false + false + + + option_3_cost_1_value + Option 3 Cost 1 Value + Total option 3 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_3_cost_1_multiplier + Option 3 Cost 1 Multiplier + Total option 3 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_3_cost_2_value + Option 3 Cost 2 Value + Total option 3 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_3_cost_2_multiplier + Option 3 Cost 2 Multiplier + Total option 3 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_3_lifetime + Option 3 Lifetime + The option lifetime. + Double + years + false + false + + + option_4 + Option 4 + Specify the parameter|option as found in resources\options_lookup.tsv. + String + false + false + + + option_4_apply_logic + Option 4 Apply Logic + Logic that specifies if the Option 4 upgrade will apply based on the existing building's options. Specify one or more parameter|option as found in resources\options_lookup.tsv. When multiple are included, they must be separated by '||' for OR and '&&' for AND, and using parentheses as appropriate. Prefix an option with '!' for not. + String + false + false + + + option_4_cost_1_value + Option 4 Cost 1 Value + Total option 4 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_4_cost_1_multiplier + Option 4 Cost 1 Multiplier + Total option 4 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_4_cost_2_value + Option 4 Cost 2 Value + Total option 4 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_4_cost_2_multiplier + Option 4 Cost 2 Multiplier + Total option 4 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_4_lifetime + Option 4 Lifetime + The option lifetime. + Double + years + false + false + + + option_5 + Option 5 + Specify the parameter|option as found in resources\options_lookup.tsv. + String + false + false + + + option_5_apply_logic + Option 5 Apply Logic + Logic that specifies if the Option 5 upgrade will apply based on the existing building's options. Specify one or more parameter|option as found in resources\options_lookup.tsv. When multiple are included, they must be separated by '||' for OR and '&&' for AND, and using parentheses as appropriate. Prefix an option with '!' for not. + String + false + false + + + option_5_cost_1_value + Option 5 Cost 1 Value + Total option 5 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_5_cost_1_multiplier + Option 5 Cost 1 Multiplier + Total option 5 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_5_cost_2_value + Option 5 Cost 2 Value + Total option 5 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_5_cost_2_multiplier + Option 5 Cost 2 Multiplier + Total option 5 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_5_lifetime + Option 5 Lifetime + The option lifetime. + Double + years + false + false + + + option_6 + Option 6 + Specify the parameter|option as found in resources\options_lookup.tsv. + String + false + false + + + option_6_apply_logic + Option 6 Apply Logic + Logic that specifies if the Option 6 upgrade will apply based on the existing building's options. Specify one or more parameter|option as found in resources\options_lookup.tsv. When multiple are included, they must be separated by '||' for OR and '&&' for AND, and using parentheses as appropriate. Prefix an option with '!' for not. + String + false + false + + + option_6_cost_1_value + Option 6 Cost 1 Value + Total option 6 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_6_cost_1_multiplier + Option 6 Cost 1 Multiplier + Total option 6 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_6_cost_2_value + Option 6 Cost 2 Value + Total option 6 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_6_cost_2_multiplier + Option 6 Cost 2 Multiplier + Total option 6 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_6_lifetime + Option 6 Lifetime + The option lifetime. + Double + years + false + false + + + option_7 + Option 7 + Specify the parameter|option as found in resources\options_lookup.tsv. + String + false + false + + + option_7_apply_logic + Option 7 Apply Logic + Logic that specifies if the Option 7 upgrade will apply based on the existing building's options. Specify one or more parameter|option as found in resources\options_lookup.tsv. When multiple are included, they must be separated by '||' for OR and '&&' for AND, and using parentheses as appropriate. Prefix an option with '!' for not. + String + false + false + + + option_7_cost_1_value + Option 7 Cost 1 Value + Total option 7 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_7_cost_1_multiplier + Option 7 Cost 1 Multiplier + Total option 7 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_7_cost_2_value + Option 7 Cost 2 Value + Total option 7 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_7_cost_2_multiplier + Option 7 Cost 2 Multiplier + Total option 7 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_7_lifetime + Option 7 Lifetime + The option lifetime. + Double + years + false + false + + + option_8 + Option 8 + Specify the parameter|option as found in resources\options_lookup.tsv. + String + false + false + + + option_8_apply_logic + Option 8 Apply Logic + Logic that specifies if the Option 8 upgrade will apply based on the existing building's options. Specify one or more parameter|option as found in resources\options_lookup.tsv. When multiple are included, they must be separated by '||' for OR and '&&' for AND, and using parentheses as appropriate. Prefix an option with '!' for not. + String + false + false + + + option_8_cost_1_value + Option 8 Cost 1 Value + Total option 8 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_8_cost_1_multiplier + Option 8 Cost 1 Multiplier + Total option 8 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_8_cost_2_value + Option 8 Cost 2 Value + Total option 8 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_8_cost_2_multiplier + Option 8 Cost 2 Multiplier + Total option 8 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_8_lifetime + Option 8 Lifetime + The option lifetime. + Double + years + false + false + + + option_9 + Option 9 + Specify the parameter|option as found in resources\options_lookup.tsv. + String + false + false + + + option_9_apply_logic + Option 9 Apply Logic + Logic that specifies if the Option 9 upgrade will apply based on the existing building's options. Specify one or more parameter|option as found in resources\options_lookup.tsv. When multiple are included, they must be separated by '||' for OR and '&&' for AND, and using parentheses as appropriate. Prefix an option with '!' for not. + String + false + false + + + option_9_cost_1_value + Option 9 Cost 1 Value + Total option 9 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_9_cost_1_multiplier + Option 9 Cost 1 Multiplier + Total option 9 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_9_cost_2_value + Option 9 Cost 2 Value + Total option 9 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_9_cost_2_multiplier + Option 9 Cost 2 Multiplier + Total option 9 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_9_lifetime + Option 9 Lifetime + The option lifetime. + Double + years + false + false + + + option_10 + Option 10 + Specify the parameter|option as found in resources\options_lookup.tsv. + String + false + false + + + option_10_apply_logic + Option 10 Apply Logic + Logic that specifies if the Option 10 upgrade will apply based on the existing building's options. Specify one or more parameter|option as found in resources\options_lookup.tsv. When multiple are included, they must be separated by '||' for OR and '&&' for AND, and using parentheses as appropriate. Prefix an option with '!' for not. + String + false + false + + + option_10_cost_1_value + Option 10 Cost 1 Value + Total option 10 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_10_cost_1_multiplier + Option 10 Cost 1 Multiplier + Total option 10 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_10_cost_2_value + Option 10 Cost 2 Value + Total option 10 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_10_cost_2_multiplier + Option 10 Cost 2 Multiplier + Total option 10 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_10_lifetime + Option 10 Lifetime + The option lifetime. + Double + years + false + false + + + option_11 + Option 11 + Specify the parameter|option as found in resources\options_lookup.tsv. + String + false + false + + + option_11_apply_logic + Option 11 Apply Logic + Logic that specifies if the Option 11 upgrade will apply based on the existing building's options. Specify one or more parameter|option as found in resources\options_lookup.tsv. When multiple are included, they must be separated by '||' for OR and '&&' for AND, and using parentheses as appropriate. Prefix an option with '!' for not. + String + false + false + + + option_11_cost_1_value + Option 11 Cost 1 Value + Total option 11 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_11_cost_1_multiplier + Option 11 Cost 1 Multiplier + Total option 11 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_11_cost_2_value + Option 11 Cost 2 Value + Total option 11 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_11_cost_2_multiplier + Option 11 Cost 2 Multiplier + Total option 11 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_11_lifetime + Option 11 Lifetime + The option lifetime. + Double + years + false + false + + + option_12 + Option 12 + Specify the parameter|option as found in resources\options_lookup.tsv. + String + false + false + + + option_12_apply_logic + Option 12 Apply Logic + Logic that specifies if the Option 12 upgrade will apply based on the existing building's options. Specify one or more parameter|option as found in resources\options_lookup.tsv. When multiple are included, they must be separated by '||' for OR and '&&' for AND, and using parentheses as appropriate. Prefix an option with '!' for not. + String + false + false + + + option_12_cost_1_value + Option 12 Cost 1 Value + Total option 12 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_12_cost_1_multiplier + Option 12 Cost 1 Multiplier + Total option 12 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_12_cost_2_value + Option 12 Cost 2 Value + Total option 12 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_12_cost_2_multiplier + Option 12 Cost 2 Multiplier + Total option 12 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_12_lifetime + Option 12 Lifetime + The option lifetime. + Double + years + false + false + + + option_13 + Option 13 + Specify the parameter|option as found in resources\options_lookup.tsv. + String + false + false + + + option_13_apply_logic + Option 13 Apply Logic + Logic that specifies if the Option 13 upgrade will apply based on the existing building's options. Specify one or more parameter|option as found in resources\options_lookup.tsv. When multiple are included, they must be separated by '||' for OR and '&&' for AND, and using parentheses as appropriate. Prefix an option with '!' for not. + String + false + false + + + option_13_cost_1_value + Option 13 Cost 1 Value + Total option 13 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_13_cost_1_multiplier + Option 13 Cost 1 Multiplier + Total option 13 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_13_cost_2_value + Option 13 Cost 2 Value + Total option 13 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_13_cost_2_multiplier + Option 13 Cost 2 Multiplier + Total option 13 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_13_lifetime + Option 13 Lifetime + The option lifetime. + Double + years + false + false + + + option_14 + Option 14 + Specify the parameter|option as found in resources\options_lookup.tsv. + String + false + false + + + option_14_apply_logic + Option 14 Apply Logic + Logic that specifies if the Option 14 upgrade will apply based on the existing building's options. Specify one or more parameter|option as found in resources\options_lookup.tsv. When multiple are included, they must be separated by '||' for OR and '&&' for AND, and using parentheses as appropriate. Prefix an option with '!' for not. + String + false + false + + + option_14_cost_1_value + Option 14 Cost 1 Value + Total option 14 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_14_cost_1_multiplier + Option 14 Cost 1 Multiplier + Total option 14 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_14_cost_2_value + Option 14 Cost 2 Value + Total option 14 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_14_cost_2_multiplier + Option 14 Cost 2 Multiplier + Total option 14 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_14_lifetime + Option 14 Lifetime + The option lifetime. + Double + years + false + false + + + option_15 + Option 15 + Specify the parameter|option as found in resources\options_lookup.tsv. + String + false + false + + + option_15_apply_logic + Option 15 Apply Logic + Logic that specifies if the Option 15 upgrade will apply based on the existing building's options. Specify one or more parameter|option as found in resources\options_lookup.tsv. When multiple are included, they must be separated by '||' for OR and '&&' for AND, and using parentheses as appropriate. Prefix an option with '!' for not. + String + false + false + + + option_15_cost_1_value + Option 15 Cost 1 Value + Total option 15 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_15_cost_1_multiplier + Option 15 Cost 1 Multiplier + Total option 15 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_15_cost_2_value + Option 15 Cost 2 Value + Total option 15 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_15_cost_2_multiplier + Option 15 Cost 2 Multiplier + Total option 15 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_15_lifetime + Option 15 Lifetime + The option lifetime. + Double + years + false + false + + + option_16 + Option 16 + Specify the parameter|option as found in resources\options_lookup.tsv. + String + false + false + + + option_16_apply_logic + Option 16 Apply Logic + Logic that specifies if the Option 16 upgrade will apply based on the existing building's options. Specify one or more parameter|option as found in resources\options_lookup.tsv. When multiple are included, they must be separated by '||' for OR and '&&' for AND, and using parentheses as appropriate. Prefix an option with '!' for not. + String + false + false + + + option_16_cost_1_value + Option 16 Cost 1 Value + Total option 16 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_16_cost_1_multiplier + Option 16 Cost 1 Multiplier + Total option 16 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_16_cost_2_value + Option 16 Cost 2 Value + Total option 16 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_16_cost_2_multiplier + Option 16 Cost 2 Multiplier + Total option 16 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_16_lifetime + Option 16 Lifetime + The option lifetime. + Double + years + false + false + + + option_17 + Option 17 + Specify the parameter|option as found in resources\options_lookup.tsv. + String + false + false + + + option_17_apply_logic + Option 17 Apply Logic + Logic that specifies if the Option 17 upgrade will apply based on the existing building's options. Specify one or more parameter|option as found in resources\options_lookup.tsv. When multiple are included, they must be separated by '||' for OR and '&&' for AND, and using parentheses as appropriate. Prefix an option with '!' for not. + String + false + false + + + option_17_cost_1_value + Option 17 Cost 1 Value + Total option 17 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_17_cost_1_multiplier + Option 17 Cost 1 Multiplier + Total option 17 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_17_cost_2_value + Option 17 Cost 2 Value + Total option 17 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_17_cost_2_multiplier + Option 17 Cost 2 Multiplier + Total option 17 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_17_lifetime + Option 17 Lifetime + The option lifetime. + Double + years + false + false + + + option_18 + Option 18 + Specify the parameter|option as found in resources\options_lookup.tsv. + String + false + false + + + option_18_apply_logic + Option 18 Apply Logic + Logic that specifies if the Option 18 upgrade will apply based on the existing building's options. Specify one or more parameter|option as found in resources\options_lookup.tsv. When multiple are included, they must be separated by '||' for OR and '&&' for AND, and using parentheses as appropriate. Prefix an option with '!' for not. + String + false + false + + + option_18_cost_1_value + Option 18 Cost 1 Value + Total option 18 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_18_cost_1_multiplier + Option 18 Cost 1 Multiplier + Total option 18 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_18_cost_2_value + Option 18 Cost 2 Value + Total option 18 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_18_cost_2_multiplier + Option 18 Cost 2 Multiplier + Total option 18 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_18_lifetime + Option 18 Lifetime + The option lifetime. + Double + years + false + false + + + option_19 + Option 19 + Specify the parameter|option as found in resources\options_lookup.tsv. + String + false + false + + + option_19_apply_logic + Option 19 Apply Logic + Logic that specifies if the Option 19 upgrade will apply based on the existing building's options. Specify one or more parameter|option as found in resources\options_lookup.tsv. When multiple are included, they must be separated by '||' for OR and '&&' for AND, and using parentheses as appropriate. Prefix an option with '!' for not. + String + false + false + + + option_19_cost_1_value + Option 19 Cost 1 Value + Total option 19 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_19_cost_1_multiplier + Option 19 Cost 1 Multiplier + Total option 19 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_19_cost_2_value + Option 19 Cost 2 Value + Total option 19 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_19_cost_2_multiplier + Option 19 Cost 2 Multiplier + Total option 19 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_19_lifetime + Option 19 Lifetime + The option lifetime. + Double + years + false + false + + + option_20 + Option 20 + Specify the parameter|option as found in resources\options_lookup.tsv. + String + false + false + + + option_20_apply_logic + Option 20 Apply Logic + Logic that specifies if the Option 20 upgrade will apply based on the existing building's options. Specify one or more parameter|option as found in resources\options_lookup.tsv. When multiple are included, they must be separated by '||' for OR and '&&' for AND, and using parentheses as appropriate. Prefix an option with '!' for not. + String + false + false + + + option_20_cost_1_value + Option 20 Cost 1 Value + Total option 20 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_20_cost_1_multiplier + Option 20 Cost 1 Multiplier + Total option 20 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_20_cost_2_value + Option 20 Cost 2 Value + Total option 20 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_20_cost_2_multiplier + Option 20 Cost 2 Multiplier + Total option 20 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_20_lifetime + Option 20 Lifetime + The option lifetime. + Double + years + false + false + + + option_21 + Option 21 + Specify the parameter|option as found in resources\options_lookup.tsv. + String + false + false + + + option_21_apply_logic + Option 21 Apply Logic + Logic that specifies if the Option 21 upgrade will apply based on the existing building's options. Specify one or more parameter|option as found in resources\options_lookup.tsv. When multiple are included, they must be separated by '||' for OR and '&&' for AND, and using parentheses as appropriate. Prefix an option with '!' for not. + String + false + false + + + option_21_cost_1_value + Option 21 Cost 1 Value + Total option 21 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_21_cost_1_multiplier + Option 21 Cost 1 Multiplier + Total option 21 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_21_cost_2_value + Option 21 Cost 2 Value + Total option 21 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_21_cost_2_multiplier + Option 21 Cost 2 Multiplier + Total option 21 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_21_lifetime + Option 21 Lifetime + The option lifetime. + Double + years + false + false + + + option_22 + Option 22 + Specify the parameter|option as found in resources\options_lookup.tsv. + String + false + false + + + option_22_apply_logic + Option 22 Apply Logic + Logic that specifies if the Option 22 upgrade will apply based on the existing building's options. Specify one or more parameter|option as found in resources\options_lookup.tsv. When multiple are included, they must be separated by '||' for OR and '&&' for AND, and using parentheses as appropriate. Prefix an option with '!' for not. + String + false + false + + + option_22_cost_1_value + Option 22 Cost 1 Value + Total option 22 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_22_cost_1_multiplier + Option 22 Cost 1 Multiplier + Total option 22 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_22_cost_2_value + Option 22 Cost 2 Value + Total option 22 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_22_cost_2_multiplier + Option 22 Cost 2 Multiplier + Total option 22 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_22_lifetime + Option 22 Lifetime + The option lifetime. + Double + years + false + false + + + option_23 + Option 23 + Specify the parameter|option as found in resources\options_lookup.tsv. + String + false + false + + + option_23_apply_logic + Option 23 Apply Logic + Logic that specifies if the Option 23 upgrade will apply based on the existing building's options. Specify one or more parameter|option as found in resources\options_lookup.tsv. When multiple are included, they must be separated by '||' for OR and '&&' for AND, and using parentheses as appropriate. Prefix an option with '!' for not. + String + false + false + + + option_23_cost_1_value + Option 23 Cost 1 Value + Total option 23 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_23_cost_1_multiplier + Option 23 Cost 1 Multiplier + Total option 23 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_23_cost_2_value + Option 23 Cost 2 Value + Total option 23 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_23_cost_2_multiplier + Option 23 Cost 2 Multiplier + Total option 23 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_23_lifetime + Option 23 Lifetime + The option lifetime. + Double + years + false + false + + + option_24 + Option 24 + Specify the parameter|option as found in resources\options_lookup.tsv. + String + false + false + + + option_24_apply_logic + Option 24 Apply Logic + Logic that specifies if the Option 24 upgrade will apply based on the existing building's options. Specify one or more parameter|option as found in resources\options_lookup.tsv. When multiple are included, they must be separated by '||' for OR and '&&' for AND, and using parentheses as appropriate. Prefix an option with '!' for not. + String + false + false + + + option_24_cost_1_value + Option 24 Cost 1 Value + Total option 24 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_24_cost_1_multiplier + Option 24 Cost 1 Multiplier + Total option 24 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_24_cost_2_value + Option 24 Cost 2 Value + Total option 24 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_24_cost_2_multiplier + Option 24 Cost 2 Multiplier + Total option 24 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_24_lifetime + Option 24 Lifetime + The option lifetime. + Double + years + false + false + + + option_25 + Option 25 + Specify the parameter|option as found in resources\options_lookup.tsv. + String + false + false + + + option_25_apply_logic + Option 25 Apply Logic + Logic that specifies if the Option 25 upgrade will apply based on the existing building's options. Specify one or more parameter|option as found in resources\options_lookup.tsv. When multiple are included, they must be separated by '||' for OR and '&&' for AND, and using parentheses as appropriate. Prefix an option with '!' for not. + String + false + false + + + option_25_cost_1_value + Option 25 Cost 1 Value + Total option 25 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_25_cost_1_multiplier + Option 25 Cost 1 Multiplier + Total option 25 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_25_cost_2_value + Option 25 Cost 2 Value + Total option 25 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Double + $ + false + false + + + option_25_cost_2_multiplier + Option 25 Cost 2 Multiplier + Total option 25 cost is the sum of all: (Cost N Value) x (Cost N Multiplier). + Choice + false + false + + + + + + + + Fixed (1) + Fixed (1) + + + Wall Area, Above-Grade, Conditioned (ft^2) + Wall Area, Above-Grade, Conditioned (ft^2) + + + Wall Area, Above-Grade, Exterior (ft^2) + Wall Area, Above-Grade, Exterior (ft^2) + + + Wall Area, Below-Grade (ft^2) + Wall Area, Below-Grade (ft^2) + + + Floor Area, Conditioned (ft^2) + Floor Area, Conditioned (ft^2) + + + Floor Area, Attic (ft^2) + Floor Area, Attic (ft^2) + + + Floor Area, Lighting (ft^2) + Floor Area, Lighting (ft^2) + + + Roof Area (ft^2) + Roof Area (ft^2) + + + Window Area (ft^2) + Window Area (ft^2) + + + Door Area (ft^2) + Door Area (ft^2) + + + Duct Surface Area (ft^2) + Duct Surface Area (ft^2) + + + Size, Heating System (kBtu/h) + Size, Heating System (kBtu/h) + + + Size, Cooling System (kBtu/h) + Size, Cooling System (kBtu/h) + + + Size, Water Heater (gal) + Size, Water Heater (gal) + + + + + option_25_lifetime + Option 25 Lifetime + The option lifetime. + Double + years + false + false + + + package_apply_logic + Package Apply Logic + Logic that specifies if the entire package upgrade (all options) will apply based on the existing building's options. Specify one or more parameter|option as found in resources\options_lookup.tsv. When multiple are included, they must be separated by '||' for OR and '&&' for AND, and using parentheses as appropriate. Prefix an option with '!' for not. + String + false + false + + + run_measure + Run Measure + integer argument to run measure [1 is run, 0 is no run] + Integer + true + false + 1 + + + + + + Whole Building.Space Types + + + + Intended Software Tool + Apply Measure Now + string + + + Intended Software Tool + OpenStudio Application + string + + + Intended Software Tool + Parametric Analysis Tool + string + + + Intended Software Tool + Apply Measure Now + string + + + Intended Software Tool + OpenStudio Application + string + + + Intended Software Tool + Parametric Analysis Tool + string + + + Measure Type + ModelMeasure + string + + + Intended Software Tool + Apply Measure Now + string + + + Intended Software Tool + OpenStudio Application + string + + + Intended Software Tool + Parametric Analysis Tool + string + + + + + + OpenStudio + 1.9.0 + 1.9.0 + + measure.rb + rb + script + 8E1786F4 + + + diff --git a/buildstockbatch/test/test_inputs/test_openstudio_buildstock/measures/BuildExistingModel/measure.xml b/buildstockbatch/test/test_inputs/test_openstudio_buildstock/measures/BuildExistingModel/measure.xml new file mode 100644 index 00000000..41b0ce05 --- /dev/null +++ b/buildstockbatch/test/test_inputs/test_openstudio_buildstock/measures/BuildExistingModel/measure.xml @@ -0,0 +1,79 @@ + + 3.0 + build_existing_model + dedf59bb-3b88-4f16-8755-2c1ff5519cbf + f9175b4b-d4c5-42e5-8773-ccb9ee6ff90c + 20190530T151539Z + 2C38F48B + BuildExistingModel + Build Existing Model + Builds the OpenStudio Model for an existing building. + Builds the OpenStudio Model using the sampling csv file, which contains the specified parameters for each existing building. Based on the supplied building number, those parameters are used to run the OpenStudio measures with appropriate arguments and build up the OpenStudio model. + + + building_id + Building ID + The building number (between 1 and the number of samples). + Integer + true + false + + + workflow_json + Workflow JSON + The name of the JSON file (in the resources dir) that dictates the order in which measures are to be run. If not provided, the order specified in resources/options_lookup.tsv will be used. + String + false + false + + + number_of_buildings_represented + Number of Buildings Represented + The total number of buildings represented by the existing building models. + Integer + false + false + + + sample_weight + Sample Weight of Simulation + Number of buildings this simulation represents. + Double + false + false + + + downselect_logic + Downselect Logic + Logic that specifies the subset of the building stock to be considered in the analysis. Specify one or more parameter|option as found in resources\options_lookup.tsv. When multiple are included, they must be separated by '||' for OR and '&&' for AND, and using parentheses as appropriate. Prefix an option with '!' for not. + String + false + false + + + + + + Whole Building.Space Types + + + + Measure Type + ModelMeasure + string + + + + + + OpenStudio + 2.6.1 + 2.6.1 + + measure.rb + rb + script + DDA682AD + + + diff --git a/buildstockbatch/test/test_inputs/test_openstudio_buildstock/measures/ReportingMeasure1/measure.xml b/buildstockbatch/test/test_inputs/test_openstudio_buildstock/measures/ReportingMeasure1/measure.xml new file mode 100644 index 00000000..e69de29b diff --git a/buildstockbatch/test/test_inputs/test_openstudio_buildstock/measures/ResidentialSimulationControls/measure.xml b/buildstockbatch/test/test_inputs/test_openstudio_buildstock/measures/ResidentialSimulationControls/measure.xml new file mode 100644 index 00000000..c6059e9f --- /dev/null +++ b/buildstockbatch/test/test_inputs/test_openstudio_buildstock/measures/ResidentialSimulationControls/measure.xml @@ -0,0 +1,99 @@ + + 3.0 + residential_simulation_controls + 874f921e-8f3c-458a-a82f-01b7d51a547e + b9258fa8-94ae-4f8e-b4f3-af203eae89cc + 20190709T162534Z + 2C38F48B + ResidentialSimulationControls + Set Residential Simulation Controls + Set the simulation timesteps per hour, the run period begin month/day and end month/day, and the calendar year (for start day of week). + Set the simulation timesteps per hour on the Timestep object, the run period begin month/day and end month/day on the RunPeriod object, and the calendar year on the YearDescription object. + + + timesteps_per_hr + Simulation Timesteps Per Hour + The value entered here is the number of (zone) timesteps to use within an hour. For example a value of 6 entered here directs the program to use a zone timestep of 10 minutes and a value of 60 means a 1 minute timestep. + Integer + true + false + 6 + + + begin_month + Run Period Begin Month + This numeric field should contain the starting month number (1 = January, 2 = February, etc.) for the annual run period desired. + Integer + true + false + 1 + + + begin_day_of_month + Run Period Begin Day of Month + This numeric field should contain the starting day of the starting month (must be valid for month) for the annual run period desired. + Integer + true + false + 1 + + + end_month + Run Period End Month + This numeric field should contain the ending month number (1 = January, 2 = February, etc.) for the annual run period desired. + Integer + true + false + 12 + + + end_day_of_month + Run Period End Day of Month + This numeric field should contain the ending day of the ending month (must be valid for month) for the annual run period desired. + Integer + true + false + 31 + + + calendar_year + Calendar Year + This numeric field should contain the calendar year that determines the start day of week. If you are running simulations using AMY weather files, the value entered for calendar year will not be used; it will be overridden by the actual year found in the AMY weather file. + Integer + true + false + 2007 + + + + + + Whole Building.Space Types + + + + Measure Type + ModelMeasure + string + + + + + set_simulation_controls_test.rb + rb + test + 056A2C0C + + + + OpenStudio + 2.6.0 + 2.6.0 + + measure.rb + rb + script + 0036CB06 + + + diff --git a/buildstockbatch/test/test_inputs/test_openstudio_buildstock/measures/ServerDirectoryCleanup/measure.xml b/buildstockbatch/test/test_inputs/test_openstudio_buildstock/measures/ServerDirectoryCleanup/measure.xml new file mode 100644 index 00000000..dee78103 --- /dev/null +++ b/buildstockbatch/test/test_inputs/test_openstudio_buildstock/measures/ServerDirectoryCleanup/measure.xml @@ -0,0 +1,43 @@ + + 3.0 + server_directory_cleanup + ec7d04ad-0b7b-495b-825a-e1b6d28d1d3f + c9dc043c-2ea2-4960-b281-37b9cb49c491 + 20190409T200600Z + 5F1EDF75 + ServerDirectoryCleanup + Server Directory Cleanup + Removes a significant portion of the saved results from each run, helping to alleviate memory problems. + Use during large server runs, when individual sequel files and the like will not be needed. + + + + + Calibration + + + + Measure Type + ReportingMeasure + string + + + Uses SketchUp API + false + boolean + + + + + + OpenStudio + 1.11.5 + 1.11.5 + + measure.rb + rb + script + 12635A5E + + + diff --git a/buildstockbatch/test/test_inputs/test_openstudio_buildstock/measures/SimulationOutputReport/measure.xml b/buildstockbatch/test/test_inputs/test_openstudio_buildstock/measures/SimulationOutputReport/measure.xml new file mode 100644 index 00000000..00fdf883 --- /dev/null +++ b/buildstockbatch/test/test_inputs/test_openstudio_buildstock/measures/SimulationOutputReport/measure.xml @@ -0,0 +1,694 @@ + + 3.0 + simulation_output_report + fc337100-8634-404e-8966-01243d292a79 + 31197f88-2524-4f81-9e0a-2c37bec1ac15 + 20190715T223325Z + 2C8A3EEF + SimulationOutputReport + Simulation Output Report + Reports simulation outputs of interest. + Change me + + + + total_site_energy_mbtu + total_site_energy_mbtu + total_site_energy_mbtu + Double + false + + + total_site_electricity_kwh + total_site_electricity_kwh + total_site_electricity_kwh + Double + false + + + total_site_natural_gas_therm + total_site_natural_gas_therm + total_site_natural_gas_therm + Double + false + + + total_site_fuel_oil_mbtu + total_site_fuel_oil_mbtu + total_site_fuel_oil_mbtu + Double + false + + + total_site_propane_mbtu + total_site_propane_mbtu + total_site_propane_mbtu + Double + false + + + net_site_energy_mbtu + net_site_energy_mbtu + net_site_energy_mbtu + Double + false + + + net_site_electricity_kwh + net_site_electricity_kwh + net_site_electricity_kwh + Double + false + + + electricity_heating_kwh + electricity_heating_kwh + electricity_heating_kwh + Double + false + + + electricity_central_system_heating_kwh + electricity_central_system_heating_kwh + electricity_central_system_heating_kwh + Double + false + + + electricity_cooling_kwh + electricity_cooling_kwh + electricity_cooling_kwh + Double + false + + + electricity_central_system_cooling_kwh + electricity_central_system_cooling_kwh + electricity_central_system_cooling_kwh + Double + false + + + electricity_interior_lighting_kwh + electricity_interior_lighting_kwh + electricity_interior_lighting_kwh + Double + false + + + electricity_exterior_lighting_kwh + electricity_exterior_lighting_kwh + electricity_exterior_lighting_kwh + Double + false + + + electricity_interior_equipment_kwh + electricity_interior_equipment_kwh + electricity_interior_equipment_kwh + Double + false + + + electricity_fans_heating_kwh + electricity_fans_heating_kwh + electricity_fans_heating_kwh + Double + false + + + electricity_fans_cooling_kwh + electricity_fans_cooling_kwh + electricity_fans_cooling_kwh + Double + false + + + electricity_pumps_heating_kwh + electricity_pumps_heating_kwh + electricity_pumps_heating_kwh + Double + false + + + electricity_central_system_pumps_heating_kwh + electricity_central_system_pumps_heating_kwh + electricity_central_system_pumps_heating_kwh + Double + false + + + electricity_pumps_cooling_kwh + electricity_pumps_cooling_kwh + electricity_pumps_cooling_kwh + Double + false + + + electricity_central_system_pumps_cooling_kwh + electricity_central_system_pumps_cooling_kwh + electricity_central_system_pumps_cooling_kwh + Double + false + + + electricity_water_systems_kwh + electricity_water_systems_kwh + electricity_water_systems_kwh + Double + false + + + electricity_pv_kwh + electricity_pv_kwh + electricity_pv_kwh + Double + false + + + natural_gas_heating_therm + natural_gas_heating_therm + natural_gas_heating_therm + Double + false + + + natural_gas_central_system_heating_therm + natural_gas_central_system_heating_therm + natural_gas_central_system_heating_therm + Double + false + + + natural_gas_interior_equipment_therm + natural_gas_interior_equipment_therm + natural_gas_interior_equipment_therm + Double + false + + + natural_gas_water_systems_therm + natural_gas_water_systems_therm + natural_gas_water_systems_therm + Double + false + + + fuel_oil_heating_mbtu + fuel_oil_heating_mbtu + fuel_oil_heating_mbtu + Double + false + + + fuel_oil_central_system_heating_mbtu + fuel_oil_central_system_heating_mbtu + fuel_oil_central_system_heating_mbtu + Double + false + + + fuel_oil_interior_equipment_mbtu + fuel_oil_interior_equipment_mbtu + fuel_oil_interior_equipment_mbtu + Double + false + + + fuel_oil_water_systems_mbtu + fuel_oil_water_systems_mbtu + fuel_oil_water_systems_mbtu + Double + false + + + propane_heating_mbtu + propane_heating_mbtu + propane_heating_mbtu + Double + false + + + propane_central_system_heating_mbtu + propane_central_system_heating_mbtu + propane_central_system_heating_mbtu + Double + false + + + propane_interior_equipment_mbtu + propane_interior_equipment_mbtu + propane_interior_equipment_mbtu + Double + false + + + propane_water_systems_mbtu + propane_water_systems_mbtu + propane_water_systems_mbtu + Double + false + + + hours_heating_setpoint_not_met + hours_heating_setpoint_not_met + hours_heating_setpoint_not_met + Double + false + + + hours_cooling_setpoint_not_met + hours_cooling_setpoint_not_met + hours_cooling_setpoint_not_met + Double + false + + + hvac_cooling_capacity_w + hvac_cooling_capacity_w + hvac_cooling_capacity_w + Double + false + + + hvac_heating_capacity_w + hvac_heating_capacity_w + hvac_heating_capacity_w + Double + false + + + hvac_heating_supp_capacity_w + hvac_heating_supp_capacity_w + hvac_heating_supp_capacity_w + Double + false + + + upgrade_name + upgrade_name + upgrade_name + Double + false + + + upgrade_cost_usd + upgrade_cost_usd + upgrade_cost_usd + Double + false + + + upgrade_option_01_cost_usd + upgrade_option_01_cost_usd + upgrade_option_01_cost_usd + Double + false + + + upgrade_option_01_lifetime_yrs + upgrade_option_01_lifetime_yrs + upgrade_option_01_lifetime_yrs + Double + false + + + upgrade_option_02_cost_usd + upgrade_option_02_cost_usd + upgrade_option_02_cost_usd + Double + false + + + upgrade_option_02_lifetime_yrs + upgrade_option_02_lifetime_yrs + upgrade_option_02_lifetime_yrs + Double + false + + + upgrade_option_03_cost_usd + upgrade_option_03_cost_usd + upgrade_option_03_cost_usd + Double + false + + + upgrade_option_03_lifetime_yrs + upgrade_option_03_lifetime_yrs + upgrade_option_03_lifetime_yrs + Double + false + + + upgrade_option_04_cost_usd + upgrade_option_04_cost_usd + upgrade_option_04_cost_usd + Double + false + + + upgrade_option_04_lifetime_yrs + upgrade_option_04_lifetime_yrs + upgrade_option_04_lifetime_yrs + Double + false + + + upgrade_option_05_cost_usd + upgrade_option_05_cost_usd + upgrade_option_05_cost_usd + Double + false + + + upgrade_option_05_lifetime_yrs + upgrade_option_05_lifetime_yrs + upgrade_option_05_lifetime_yrs + Double + false + + + upgrade_option_06_cost_usd + upgrade_option_06_cost_usd + upgrade_option_06_cost_usd + Double + false + + + upgrade_option_06_lifetime_yrs + upgrade_option_06_lifetime_yrs + upgrade_option_06_lifetime_yrs + Double + false + + + upgrade_option_07_cost_usd + upgrade_option_07_cost_usd + upgrade_option_07_cost_usd + Double + false + + + upgrade_option_07_lifetime_yrs + upgrade_option_07_lifetime_yrs + upgrade_option_07_lifetime_yrs + Double + false + + + upgrade_option_08_cost_usd + upgrade_option_08_cost_usd + upgrade_option_08_cost_usd + Double + false + + + upgrade_option_08_lifetime_yrs + upgrade_option_08_lifetime_yrs + upgrade_option_08_lifetime_yrs + Double + false + + + upgrade_option_09_cost_usd + upgrade_option_09_cost_usd + upgrade_option_09_cost_usd + Double + false + + + upgrade_option_09_lifetime_yrs + upgrade_option_09_lifetime_yrs + upgrade_option_09_lifetime_yrs + Double + false + + + upgrade_option_10_cost_usd + upgrade_option_10_cost_usd + upgrade_option_10_cost_usd + Double + false + + + upgrade_option_10_lifetime_yrs + upgrade_option_10_lifetime_yrs + upgrade_option_10_lifetime_yrs + Double + false + + + upgrade_option_11_cost_usd + upgrade_option_11_cost_usd + upgrade_option_11_cost_usd + Double + false + + + upgrade_option_11_lifetime_yrs + upgrade_option_11_lifetime_yrs + upgrade_option_11_lifetime_yrs + Double + false + + + upgrade_option_12_cost_usd + upgrade_option_12_cost_usd + upgrade_option_12_cost_usd + Double + false + + + upgrade_option_12_lifetime_yrs + upgrade_option_12_lifetime_yrs + upgrade_option_12_lifetime_yrs + Double + false + + + upgrade_option_13_cost_usd + upgrade_option_13_cost_usd + upgrade_option_13_cost_usd + Double + false + + + upgrade_option_13_lifetime_yrs + upgrade_option_13_lifetime_yrs + upgrade_option_13_lifetime_yrs + Double + false + + + upgrade_option_14_cost_usd + upgrade_option_14_cost_usd + upgrade_option_14_cost_usd + Double + false + + + upgrade_option_14_lifetime_yrs + upgrade_option_14_lifetime_yrs + upgrade_option_14_lifetime_yrs + Double + false + + + upgrade_option_15_cost_usd + upgrade_option_15_cost_usd + upgrade_option_15_cost_usd + Double + false + + + upgrade_option_15_lifetime_yrs + upgrade_option_15_lifetime_yrs + upgrade_option_15_lifetime_yrs + Double + false + + + upgrade_option_16_cost_usd + upgrade_option_16_cost_usd + upgrade_option_16_cost_usd + Double + false + + + upgrade_option_16_lifetime_yrs + upgrade_option_16_lifetime_yrs + upgrade_option_16_lifetime_yrs + Double + false + + + upgrade_option_17_cost_usd + upgrade_option_17_cost_usd + upgrade_option_17_cost_usd + Double + false + + + upgrade_option_17_lifetime_yrs + upgrade_option_17_lifetime_yrs + upgrade_option_17_lifetime_yrs + Double + false + + + upgrade_option_18_cost_usd + upgrade_option_18_cost_usd + upgrade_option_18_cost_usd + Double + false + + + upgrade_option_18_lifetime_yrs + upgrade_option_18_lifetime_yrs + upgrade_option_18_lifetime_yrs + Double + false + + + upgrade_option_19_cost_usd + upgrade_option_19_cost_usd + upgrade_option_19_cost_usd + Double + false + + + upgrade_option_19_lifetime_yrs + upgrade_option_19_lifetime_yrs + upgrade_option_19_lifetime_yrs + Double + false + + + upgrade_option_20_cost_usd + upgrade_option_20_cost_usd + upgrade_option_20_cost_usd + Double + false + + + upgrade_option_20_lifetime_yrs + upgrade_option_20_lifetime_yrs + upgrade_option_20_lifetime_yrs + Double + false + + + upgrade_option_21_cost_usd + upgrade_option_21_cost_usd + upgrade_option_21_cost_usd + Double + false + + + upgrade_option_21_lifetime_yrs + upgrade_option_21_lifetime_yrs + upgrade_option_21_lifetime_yrs + Double + false + + + upgrade_option_22_cost_usd + upgrade_option_22_cost_usd + upgrade_option_22_cost_usd + Double + false + + + upgrade_option_22_lifetime_yrs + upgrade_option_22_lifetime_yrs + upgrade_option_22_lifetime_yrs + Double + false + + + upgrade_option_23_cost_usd + upgrade_option_23_cost_usd + upgrade_option_23_cost_usd + Double + false + + + upgrade_option_23_lifetime_yrs + upgrade_option_23_lifetime_yrs + upgrade_option_23_lifetime_yrs + Double + false + + + upgrade_option_24_cost_usd + upgrade_option_24_cost_usd + upgrade_option_24_cost_usd + Double + false + + + upgrade_option_24_lifetime_yrs + upgrade_option_24_lifetime_yrs + upgrade_option_24_lifetime_yrs + Double + false + + + upgrade_option_25_cost_usd + upgrade_option_25_cost_usd + upgrade_option_25_cost_usd + Double + false + + + upgrade_option_25_lifetime_yrs + upgrade_option_25_lifetime_yrs + upgrade_option_25_lifetime_yrs + Double + false + + + weight + weight + weight + Double + false + + + + + Reporting.QAQC + + + + Measure Type + ReportingMeasure + string + + + Uses SketchUp API + false + boolean + + + + + simulation_output_report_test.rb + rb + test + D0ED64E4 + + + + OpenStudio + 1.1.2 + 1.1.2 + + measure.rb + rb + script + 0A9FF470 + + + diff --git a/buildstockbatch/test/test_inputs/test_openstudio_buildstock/measures/TimeseriesCSVExport/measure.xml b/buildstockbatch/test/test_inputs/test_openstudio_buildstock/measures/TimeseriesCSVExport/measure.xml new file mode 100644 index 00000000..1e66a32c --- /dev/null +++ b/buildstockbatch/test/test_inputs/test_openstudio_buildstock/measures/TimeseriesCSVExport/measure.xml @@ -0,0 +1,103 @@ + + 3.0 + timeseries_csv_export + 2a3442c1-944d-4e91-9e11-11e0cf368c64 + b75af608-82c7-466b-9a63-7d0366d216c9 + 20190708T154332Z + 15BF4E57 + TimeseriesCSVExport + Timeseries CSV Export + Exports timeseries output data to csv. + Exports all available timeseries enduses, subcategories, and output variables to csv file(s). + + + reporting_frequency + Reporting Frequency + The frequency at which to report timeseries output data. + Choice + true + false + Hourly + + + Timestep + Timestep + + + Hourly + Hourly + + + Daily + Daily + + + Monthly + Monthly + + + Runperiod + Runperiod + + + + + include_enduse_subcategories + Include End Use Subcategories + Whether to report end use subcategories: appliances, plug loads, fans, large uncommon loads. + Boolean + true + false + false + + + true + true + + + false + false + + + + + output_variables + Output Variables + Specify a comma-separated list of output variables to report. (See EnergyPlus's rdd file for available output variables.) + String + false + false + + + + + + Reporting.QAQC + + + + Measure Type + ReportingMeasure + string + + + + + timeseries_csv_export_test.rb + rb + test + D08DBB75 + + + + OpenStudio + 2.0.5 + 2.0.5 + + measure.rb + rb + script + D894BB75 + + + diff --git a/buildstockbatch/test/test_validation.py b/buildstockbatch/test/test_validation.py index 28f7797c..bf8b7c08 100644 --- a/buildstockbatch/test/test_validation.py +++ b/buildstockbatch/test/test_validation.py @@ -82,7 +82,8 @@ def test_xor_violations_fail(project_file): def test_validation_integration(project_file, expected): # patch the validate_options_lookup function to always return true for this case with patch.object(BuildStockBatchBase, 'validate_options_lookup', lambda _: True), \ - patch.object(BuildStockBatchBase, 'validate_measure_references', lambda _: True): + patch.object(BuildStockBatchBase, 'validate_measure_references', lambda _: True), \ + patch.object(BuildStockBatchBase, 'validate_measures_and_arguments', lambda _: True): if expected is not True: with pytest.raises(expected): BuildStockBatchBase.validate_project(project_file) @@ -90,6 +91,30 @@ def test_validation_integration(project_file, expected): assert(BuildStockBatchBase.validate_project(project_file)) +@pytest.mark.parametrize("project_file", [ + os.path.join(example_yml_dir, 'enforce-validate-measures-bad-2.yml') +]) +def test_bad_measures(project_file): + try: + BuildStockBatchBase.validate_measures_and_arguments(project_file) + except ValueError as er: + er = str(er) + assert "ReportingMeasure2 does not exist" in er + assert "Wrong argument value type for begin_day_of_month" in er + assert "Found unexpected argument key output_variable" in er + assert "Found unexpected argument value Huorly" in er + + else: + raise Exception("measures_and_arguments was supposed to raise ValueError for enforce-validate-measures-bad.yml") + + +@pytest.mark.parametrize("project_file", [ + os.path.join(example_yml_dir, 'enforce-validate-measures-good-2.yml'), +]) +def test_good_measures(project_file): + assert BuildStockBatchBase.validate_measures_and_arguments(project_file) + + @pytest.mark.parametrize("project_file", [ os.path.join(example_yml_dir, 'enforce-validate-options-wrong-path.yml'), ])