diff --git a/BuildResidentialHPXML/README.md b/BuildResidentialHPXML/README.md
index e502a47cfc..a1cacbca12 100644
--- a/BuildResidentialHPXML/README.md
+++ b/BuildResidentialHPXML/README.md
@@ -24,7 +24,7 @@ Absolute/relative path of the HPXML file.
**Existing HPXML File Path**
-Absolute/relative path of the existing HPXML file. If not provided, a new HPXML file with one Building element is created. If provided, a new Building element will be appended to this HPXML file (e.g., to create a multifamily HPXML file describing multiple dwelling units).
+Absolute/relative path of the existing HPXML file. If not provided, a new HPXML file with one Building element is created. If provided, a new Building element will be appended to this HPXML file (e.g., to create a multifamily HPXML file describing multiple dwelling units}.
- **Name:** ``existing_hpxml_path``
- **Type:** ``String``
@@ -90,7 +90,7 @@ Specifies the unavailable period types. Possible types are column names defined
**Schedules: Unavailable Period Dates**
-Specifies the unavailable period date ranges. Enter a date range like "Dec 15 - Jan 15". Optionally, can enter hour of the day like "Dec 15 2 - Jan 15 20" (start hour can be 0 through 23 and end hour can be 1 through 24). If multiple periods, use a comma-separated list.
+Specifies the unavailable period date ranges. Enter a date range like "Dec 15 - Jan 15". Optionally, can enter hour of the day like "Dec 15 2 - Jan 15 20" (start hour can be 0 through 23 and end hour can be 1 through 24}. If multiple periods, use a comma-separated list.
- **Name:** ``schedules_unavailable_period_dates``
- **Type:** ``String``
@@ -101,7 +101,7 @@ Specifies the unavailable period date ranges. Enter a date range like "Dec 15 -
**Schedules: Unavailable Period Window Natural Ventilation Availabilities**
-The availability of the natural ventilation schedule during unavailable periods. Valid choices are: regular schedule, always available, always unavailable. If multiple periods, use a comma-separated list. If not provided, the OS-HPXML default (see HPXML Unavailable Periods) is used.
+The availability of the natural ventilation schedule during unavailable periods. Valid choices are: regular schedule, always available, always unavailable. If multiple periods, use a comma-separated list. If 'auto' or not provided, the OS-HPXML default (see HPXML Unavailable Periods) is used.
- **Name:** ``schedules_unavailable_period_window_natvent_availabilities``
- **Type:** ``String``
@@ -112,12 +112,10 @@ The availability of the natural ventilation schedule during unavailable periods.
**Simulation Control: Timestep**
-Value must be a divisor of 60. If not provided, the OS-HPXML default (see HPXML Simulation Control) is used.
+Value must be a divisor of 60. If 'auto' or not provided, the OS-HPXML default (see HPXML Simulation Control) is used.
- **Name:** ``simulation_control_timestep``
-- **Type:** ``Integer``
-
-- **Units:** ``min``
+- **Type:** ``String``
- **Required:** ``false``
@@ -136,12 +134,10 @@ Enter a date range like 'Jan 1 - Dec 31'. If not provided, the OS-HPXML default
**Simulation Control: Run Period 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. If not provided, the OS-HPXML default (see HPXML Simulation Control) is used.
+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. If 'auto' or not provided, the OS-HPXML default (see HPXML Simulation Control) is used.
- **Name:** ``simulation_control_run_period_calendar_year``
-- **Type:** ``Integer``
-
-- **Units:** ``year``
+- **Type:** ``String``
- **Required:** ``false``
@@ -149,18 +145,20 @@ This numeric field should contain the calendar year that determines the start da
**Simulation Control: Daylight Saving Enabled**
-Whether to use daylight saving. If not provided, the OS-HPXML default (see HPXML Building Site) is used.
+Whether to use daylight saving. If 'auto' or not provided, the OS-HPXML default (see HPXML Building Site) is used.
- **Name:** ``simulation_control_daylight_saving_enabled``
-- **Type:** ``Boolean``
+- **Type:** ``Choice``
- **Required:** ``false``
+- **Choices:** `auto`, `true`, `false`
+
**Simulation Control: Daylight Saving Period**
-Enter a date range like 'Mar 15 - Dec 15'. If not provided, the OS-HPXML default (see HPXML Building Site) is used.
+Enter a date range like 'Mar 15 - Dec 15'. If 'auto' or not provided, the OS-HPXML default (see HPXML Building Site) is used.
- **Name:** ``simulation_control_daylight_saving_period``
- **Type:** ``String``
@@ -171,7 +169,7 @@ Enter a date range like 'Mar 15 - Dec 15'. If not provided, the OS-HPXML default
**Simulation Control: Temperature Capacitance Multiplier**
-Affects the transient calculation of indoor air temperatures. If not provided, the OS-HPXML default (see HPXML Simulation Control) is used.
+Affects the transient calculation of indoor air temperatures. If 'auto' or not provided, the OS-HPXML default (see HPXML Simulation Control) is used.
- **Name:** ``simulation_control_temperature_capacitance_multiplier``
- **Type:** ``String``
@@ -182,14 +180,14 @@ Affects the transient calculation of indoor air temperatures. If not provided, t
**Simulation Control: Defrost Model Type**
-Research feature to select the type of defrost model. Use standard for default E+ defrost setting. Use advanced for an improved model that better accounts for load and energy use during defrost; using advanced may impact simulation runtime. If not provided, the OS-HPXML default (see HPXML Simulation Control) is used.
+Research feature to select the type of defrost model. Use standard for default E+ defrost setting. Use advanced for an improved model that better accounts for load and energy use during defrost; using advanced may impact simulation runtime. If 'auto' or not provided, the OS-HPXML default (see HPXML Simulation Control) is used.
- **Name:** ``simulation_control_defrost_model_type``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `standard`, `advanced`
+- **Choices:** `auto`, `standard`, `advanced`
@@ -221,40 +219,40 @@ Research feature to model capacity increment of multi-stage heat pump backup sys
**Site: Type**
-The type of site. If not provided, the OS-HPXML default (see HPXML Site) is used.
+The type of site. If 'auto' or not provided, the OS-HPXML default (see HPXML Site) is used.
- **Name:** ``site_type``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `suburban`, `urban`, `rural`
+- **Choices:** `auto`, `suburban`, `urban`, `rural`
**Site: Shielding of Home**
-Presence of nearby buildings, trees, obstructions for infiltration model. If not provided, the OS-HPXML default (see HPXML Site) is used.
+Presence of nearby buildings, trees, obstructions for infiltration model. If 'auto' or not provided, the OS-HPXML default (see HPXML Site) is used.
- **Name:** ``site_shielding_of_home``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `exposed`, `normal`, `well-shielded`
+- **Choices:** `auto`, `exposed`, `normal`, `well-shielded`
**Site: Soil and Moisture Type**
-Type of soil and moisture. This is used to inform ground conductivity and diffusivity. If not provided, the OS-HPXML default (see HPXML Site) is used.
+Type of soil and moisture. This is used to inform ground conductivity and diffusivity. If 'auto' or not provided, the OS-HPXML default (see HPXML Site) is used.
- **Name:** ``site_soil_and_moisture_type``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `clay, dry`, `clay, mixed`, `clay, wet`, `gravel, dry`, `gravel, mixed`, `gravel, wet`, `loam, dry`, `loam, mixed`, `loam, wet`, `sand, dry`, `sand, mixed`, `sand, wet`, `silt, dry`, `silt, mixed`, `silt, wet`, `unknown, dry`, `unknown, mixed`, `unknown, wet`
+- **Choices:** `auto`, `clay, dry`, `clay, mixed`, `clay, wet`, `gravel, dry`, `gravel, mixed`, `gravel, wet`, `loam, dry`, `loam, mixed`, `loam, wet`, `sand, dry`, `sand, mixed`, `sand, wet`, `silt, dry`, `silt, mixed`, `silt, wet`, `unknown, dry`, `unknown, mixed`, `unknown, wet`
@@ -310,20 +308,20 @@ City/municipality of the home address.
**Site: State Code**
-State code of the home address. If not provided, the OS-HPXML default (see HPXML Site) is used.
+State code of the home address. If 'auto' or not provided, the OS-HPXML default (see HPXML Site) is used.
- **Name:** ``site_state_code``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DC`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY`
+- **Choices:** `auto`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DC`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY`
**Site: Zip Code**
-Zip code of the home address. Either this or the Weather Station: EnergyPlus Weather (EPW) Filepath input below must be provided.
+Zip code of the home address. Either this or the Weather Station: EnergyPlus Weather (EPW} Filepath input below must be provided.
- **Name:** ``site_zip_code``
- **Type:** ``String``
@@ -334,12 +332,10 @@ Zip code of the home address. Either this or the Weather Station: EnergyPlus Wea
**Site: Time Zone UTC Offset**
-Time zone UTC offset of the home address. Must be between -12 and 14. If not provided, the OS-HPXML default (see HPXML Site) is used.
+Time zone UTC offset of the home address. Must be between -12 and 14. If 'auto' or not provided, the OS-HPXML default (see HPXML Site) is used.
- **Name:** ``site_time_zone_utc_offset``
-- **Type:** ``Double``
-
-- **Units:** ``hr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -347,12 +343,10 @@ Time zone UTC offset of the home address. Must be between -12 and 14. If not pro
**Site: Elevation**
-Elevation of the home address. If not provided, the OS-HPXML default (see HPXML Site) is used.
+Elevation of the home address. If 'auto' or not provided, the OS-HPXML default (see HPXML Site) is used.
- **Name:** ``site_elevation``
-- **Type:** ``Double``
-
-- **Units:** ``ft``
+- **Type:** ``String``
- **Required:** ``false``
@@ -360,12 +354,10 @@ Elevation of the home address. If not provided, the OS-HPXML default (see HPXML Site) is used.
+Latitude of the home address. Must be between -90 and 90. Use negative values for southern hemisphere. If 'auto' or not provided, the OS-HPXML default (see HPXML Site) is used.
- **Name:** ``site_latitude``
-- **Type:** ``Double``
-
-- **Units:** ``deg``
+- **Type:** ``String``
- **Required:** ``false``
@@ -373,18 +365,16 @@ Latitude of the home address. Must be between -90 and 90. Use negative values fo
**Site: Longitude**
-Longitude of the home address. Must be between -180 and 180. Use negative values for the western hemisphere. If not provided, the OS-HPXML default (see HPXML Site) is used.
+Longitude of the home address. Must be between -180 and 180. Use negative values for the western hemisphere. If 'auto' or not provided, the OS-HPXML default (see HPXML Site) is used.
- **Name:** ``site_longitude``
-- **Type:** ``Double``
-
-- **Units:** ``deg``
+- **Type:** ``String``
- **Required:** ``false``
-**Weather Station: EnergyPlus Weather (EPW) Filepath**
+**Weather Station: EnergyPlus Weather (EPW} Filepath**
Path of the EPW file. Either this or the Site: Zip Code input above must be provided.
@@ -489,7 +479,7 @@ The number of floors above grade in the unit. Attic type ConditionedAttic is inc
**Geometry: Unit Conditioned Floor Area**
-The total floor area of the unit's conditioned space (including any conditioned basement floor area).
+The total floor area of the unit's conditioned space (including any conditioned basement floor area}.
- **Name:** ``geometry_unit_cfa``
- **Type:** ``Double``
@@ -515,7 +505,7 @@ The ratio of front/back wall length to left/right wall length for the unit, excl
**Geometry: Unit Orientation**
-The unit's orientation is measured clockwise from north (e.g., North=0, East=90, South=180, West=270).
+The unit's orientation is measured clockwise from north (e.g., North=0, East=90, South=180, West=270}.
- **Name:** ``geometry_unit_orientation``
- **Type:** ``Double``
@@ -541,12 +531,10 @@ The number of bedrooms in the unit.
**Geometry: Unit Number of Bathrooms**
-The number of bathrooms in the unit. If not provided, the OS-HPXML default (see HPXML Building Construction) is used.
+The number of bathrooms in the unit. If 'auto' or not provided, the OS-HPXML default (see HPXML Building Construction) is used.
- **Name:** ``geometry_unit_num_bathrooms``
-- **Type:** ``Integer``
-
-- **Units:** ``#``
+- **Type:** ``String``
- **Required:** ``false``
@@ -554,7 +542,7 @@ The number of bathrooms in the unit. If not provided, the OS-HPXML default (see
**Geometry: Unit Number of Occupants**
-The number of occupants in the unit. If not provided, an *asset* calculation is performed assuming standard occupancy, in which various end use defaults (e.g., plug loads, appliances, and hot water usage) are calculated based on Number of Bedrooms and Conditioned Floor Area per ANSI/RESNET/ICC 301-2019. If provided, an *operational* calculation is instead performed in which the end use defaults are adjusted using the relationship between Number of Bedrooms and Number of Occupants from RECS 2015.
+The number of occupants in the unit. If not provided, an *asset* calculation is performed assuming standard occupancy, in which various end use defaults (e.g., plug loads, appliances, and hot water usage} are calculated based on Number of Bedrooms and Conditioned Floor Area per ANSI/RESNET/ICC 301-2019. If provided, an *operational* calculation is instead performed in which the end use defaults are adjusted using the relationship between Number of Bedrooms and Number of Occupants from RECS 2015.
- **Name:** ``geometry_unit_num_occupants``
- **Type:** ``Double``
@@ -593,12 +581,10 @@ Average distance from the floor to the ceiling.
**Geometry: Unit Height Above Grade**
-Describes the above-grade height of apartment units on upper floors or homes above ambient or belly-and-wing foundations. It is defined as the height of the lowest conditioned floor above grade and is used to calculate the wind speed for the infiltration model. If not provided, the OS-HPXML default (see HPXML Building Construction) is used.
+Describes the above-grade height of apartment units on upper floors or homes above ambient or belly-and-wing foundations. It is defined as the height of the lowest conditioned floor above grade and is used to calculate the wind speed for the infiltration model. If 'auto' or not provided, the OS-HPXML default (see HPXML Building Construction) is used.
- **Name:** ``geometry_unit_height_above_grade``
-- **Type:** ``Double``
-
-- **Units:** ``ft``
+- **Type:** ``String``
- **Required:** ``false``
@@ -606,51 +592,51 @@ Describes the above-grade height of apartment units on upper floors or homes abo
**Geometry: Garage Width**
-The width of the garage. Enter zero for no garage. Only applies to single-family detached units.
+The width of the garage. Only applies to single-family detached units. If not provided, defaults to zero (no garage}.
- **Name:** ``geometry_garage_width``
- **Type:** ``Double``
- **Units:** ``ft``
-- **Required:** ``true``
+- **Required:** ``false``
**Geometry: Garage Depth**
-The depth of the garage. Only applies to single-family detached units.
+The depth of the garage. Only applies to single-family detached units. If not provided, defaults to zero (no garage}.
- **Name:** ``geometry_garage_depth``
- **Type:** ``Double``
- **Units:** ``ft``
-- **Required:** ``true``
+- **Required:** ``false``
**Geometry: Garage Protrusion**
-The fraction of the garage that is protruding from the conditioned space. Only applies to single-family detached units.
+The fraction of the garage that is protruding from the conditioned space. Only applies to single-family detached units. If not provided, defaults to zero (no protrusion).
- **Name:** ``geometry_garage_protrusion``
- **Type:** ``Double``
- **Units:** ``Frac``
-- **Required:** ``true``
+- **Required:** ``false``
**Geometry: Garage Position**
-The position of the garage. Only applies to single-family detached units.
+The position of the garage. Only applies to single-family detached units. If not provided, defaults to Right.
- **Name:** ``geometry_garage_position``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `Right`, `Left`
@@ -671,14 +657,14 @@ The foundation type of the building. Foundation types ConditionedBasement and Co
**Geometry: Foundation Height**
-The height of the foundation (e.g., 3ft for crawlspace, 8ft for basement). Only applies to basements/crawlspaces.
+The height of the foundation (e.g., 3ft for crawlspace, 8ft for basement}. Only applies to basements/crawlspaces.
- **Name:** ``geometry_foundation_height``
- **Type:** ``Double``
- **Units:** ``ft``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -691,7 +677,7 @@ The depth above grade of the foundation wall. Only applies to basements/crawlspa
- **Units:** ``ft``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -728,7 +714,7 @@ The roof type of the building. Ignored if the building has a flat roof.
- **Name:** ``geometry_roof_type``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `gable`, `hip`
@@ -741,7 +727,7 @@ The roof pitch of the attic. Ignored if the building has a flat roof.
- **Name:** ``geometry_roof_pitch``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `1:12`, `2:12`, `3:12`, `4:12`, `5:12`, `6:12`, `7:12`, `8:12`, `9:12`, `10:12`, `11:12`, `12:12`
@@ -756,70 +742,68 @@ The eaves depth of the roof.
- **Units:** ``ft``
-- **Required:** ``true``
+- **Required:** ``false``
**Neighbor: Front Distance**
-The distance between the unit and the neighboring building to the front (not including eaves). A value of zero indicates no neighbors. Used for shading.
+The distance between the unit and the neighboring building to the front (not including eaves}. A value of zero indicates no neighbors. Used for shading.
- **Name:** ``neighbor_front_distance``
- **Type:** ``Double``
- **Units:** ``ft``
-- **Required:** ``true``
+- **Required:** ``false``
**Neighbor: Back Distance**
-The distance between the unit and the neighboring building to the back (not including eaves). A value of zero indicates no neighbors. Used for shading.
+The distance between the unit and the neighboring building to the back (not including eaves}. A value of zero indicates no neighbors. Used for shading.
- **Name:** ``neighbor_back_distance``
- **Type:** ``Double``
- **Units:** ``ft``
-- **Required:** ``true``
+- **Required:** ``false``
**Neighbor: Left Distance**
-The distance between the unit and the neighboring building to the left (not including eaves). A value of zero indicates no neighbors. Used for shading.
+The distance between the unit and the neighboring building to the left (not including eaves}. A value of zero indicates no neighbors. Used for shading.
- **Name:** ``neighbor_left_distance``
- **Type:** ``Double``
- **Units:** ``ft``
-- **Required:** ``true``
+- **Required:** ``false``
**Neighbor: Right Distance**
-The distance between the unit and the neighboring building to the right (not including eaves). A value of zero indicates no neighbors. Used for shading.
+The distance between the unit and the neighboring building to the right (not including eaves}. A value of zero indicates no neighbors. Used for shading.
- **Name:** ``neighbor_right_distance``
- **Type:** ``Double``
- **Units:** ``ft``
-- **Required:** ``true``
+- **Required:** ``false``
**Neighbor: Front Height**
-The height of the neighboring building to the front. If not provided, the OS-HPXML default (see HPXML Neighbor Building) is used.
+The height of the neighboring building to the front. If 'auto' or not provided, the OS-HPXML default (see HPXML Neighbor Building) is used.
- **Name:** ``neighbor_front_height``
-- **Type:** ``Double``
-
-- **Units:** ``ft``
+- **Type:** ``String``
- **Required:** ``false``
@@ -827,12 +811,10 @@ The height of the neighboring building to the front. If not provided, the OS-HPX
**Neighbor: Back Height**
-The height of the neighboring building to the back. If not provided, the OS-HPXML default (see HPXML Neighbor Building) is used.
+The height of the neighboring building to the back. If 'auto' or not provided, the OS-HPXML default (see HPXML Neighbor Building) is used.
- **Name:** ``neighbor_back_height``
-- **Type:** ``Double``
-
-- **Units:** ``ft``
+- **Type:** ``String``
- **Required:** ``false``
@@ -840,12 +822,10 @@ The height of the neighboring building to the back. If not provided, the OS-HPXM
**Neighbor: Left Height**
-The height of the neighboring building to the left. If not provided, the OS-HPXML default (see HPXML Neighbor Building) is used.
+The height of the neighboring building to the left. If 'auto' or not provided, the OS-HPXML default (see HPXML Neighbor Building) is used.
- **Name:** ``neighbor_left_height``
-- **Type:** ``Double``
-
-- **Units:** ``ft``
+- **Type:** ``String``
- **Required:** ``false``
@@ -853,12 +833,10 @@ The height of the neighboring building to the left. If not provided, the OS-HPXM
**Neighbor: Right Height**
-The height of the neighboring building to the right. If not provided, the OS-HPXML default (see HPXML Neighbor Building) is used.
+The height of the neighboring building to the right. If 'auto' or not provided, the OS-HPXML default (see HPXML Neighbor Building) is used.
- **Name:** ``neighbor_right_height``
-- **Type:** ``Double``
-
-- **Units:** ``ft``
+- **Type:** ``String``
- **Required:** ``false``
@@ -873,7 +851,7 @@ Assembly R-value for the floor over the foundation. Ignored if the building has
- **Units:** ``h-ft^2-R/Btu``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -886,7 +864,7 @@ Assembly R-value for the floor over the garage. Ignored unless the building has
- **Units:** ``h-ft^2-R/Btu``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -905,25 +883,23 @@ The type of floors.
**Foundation Wall: Type**
-The material type of the foundation wall. If not provided, the OS-HPXML default (see HPXML Foundation Walls) is used.
+The material type of the foundation wall. If 'auto' or not provided, the OS-HPXML default (see HPXML Foundation Walls) is used.
- **Name:** ``foundation_wall_type``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `solid concrete`, `concrete block`, `concrete block foam core`, `concrete block perlite core`, `concrete block vermiculite core`, `concrete block solid core`, `double brick`, `wood`
+- **Choices:** `auto`, `solid concrete`, `concrete block`, `concrete block foam core`, `concrete block perlite core`, `concrete block vermiculite core`, `concrete block solid core`, `double brick`, `wood`
**Foundation Wall: Thickness**
-The thickness of the foundation wall. If not provided, the OS-HPXML default (see HPXML Foundation Walls) is used.
+The thickness of the foundation wall. If 'auto' or not provided, the OS-HPXML default (see HPXML Foundation Walls) is used.
- **Name:** ``foundation_wall_thickness``
-- **Type:** ``Double``
-
-- **Units:** ``in``
+- **Type:** ``String``
- **Required:** ``false``
@@ -938,7 +914,7 @@ Nominal R-value for the foundation wall insulation. Only applies to basements/cr
- **Units:** ``h-ft^2-R/Btu``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -957,12 +933,10 @@ Whether the insulation is on the interior or exterior of the foundation wall. On
**Foundation Wall: Insulation Distance To Top**
-The distance from the top of the foundation wall to the top of the foundation wall insulation. Only applies to basements/crawlspaces. If not provided, the OS-HPXML default (see HPXML Foundation Walls) is used.
+The distance from the top of the foundation wall to the top of the foundation wall insulation. Only applies to basements/crawlspaces. If 'auto' or not provided, the OS-HPXML default (see HPXML Foundation Walls) is used.
- **Name:** ``foundation_wall_insulation_distance_to_top``
-- **Type:** ``Double``
-
-- **Units:** ``ft``
+- **Type:** ``String``
- **Required:** ``false``
@@ -970,12 +944,10 @@ The distance from the top of the foundation wall to the top of the foundation wa
**Foundation Wall: Insulation Distance To Bottom**
-The distance from the top of the foundation wall to the bottom of the foundation wall insulation. Only applies to basements/crawlspaces. If not provided, the OS-HPXML default (see HPXML Foundation Walls) is used.
+The distance from the top of the foundation wall to the bottom of the foundation wall insulation. Only applies to basements/crawlspaces. If 'auto' or not provided, the OS-HPXML default (see HPXML Foundation Walls) is used.
- **Name:** ``foundation_wall_insulation_distance_to_bottom``
-- **Type:** ``Double``
-
-- **Units:** ``ft``
+- **Type:** ``String``
- **Required:** ``false``
@@ -1009,27 +981,27 @@ Assembly R-value for the rim joists. Only applies to basements/crawlspaces. Requ
**Slab: Perimeter Insulation Nominal R-value**
-Nominal R-value of the vertical slab perimeter insulation. Applies to slab-on-grade foundations and basement/crawlspace floors.
+Nominal R-value of the vertical slab perimeter insulation. Applies to slab-on-grade foundations and basement/crawlspace floors. If not provided, defaults to zero.
- **Name:** ``slab_perimeter_insulation_r``
- **Type:** ``Double``
- **Units:** ``h-ft^2-R/Btu``
-- **Required:** ``true``
+- **Required:** ``false``
**Slab: Perimeter Insulation Depth**
-Depth from grade to bottom of vertical slab perimeter insulation. Applies to slab-on-grade foundations and basement/crawlspace floors.
+Depth from grade to bottom of vertical slab perimeter insulation. Applies to slab-on-grade foundations and basement/crawlspace floors. If not provided, defaults to zero.
- **Name:** ``slab_perimeter_insulation_depth``
- **Type:** ``Double``
- **Units:** ``ft``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -1074,38 +1046,36 @@ Depth of the slab exterior horizontal insulation measured from the top surface o
**Slab: Under Slab Insulation Nominal R-value**
-Nominal R-value of the horizontal under slab insulation. Applies to slab-on-grade foundations and basement/crawlspace floors.
+Nominal R-value of the horizontal under slab insulation. Applies to slab-on-grade foundations and basement/crawlspace floors. If not provided, defaults to zero.
- **Name:** ``slab_under_insulation_r``
- **Type:** ``Double``
- **Units:** ``h-ft^2-R/Btu``
-- **Required:** ``true``
+- **Required:** ``false``
**Slab: Under Slab Insulation Width**
-Width from slab edge inward of horizontal under-slab insulation. Enter 999 to specify that the under slab insulation spans the entire slab. Applies to slab-on-grade foundations and basement/crawlspace floors.
+Width from slab edge inward of horizontal under-slab insulation. Enter 999 to specify that the under slab insulation spans the entire slab. Applies to slab-on-grade foundations and basement/crawlspace floors. If not provided, defaults to zero.
- **Name:** ``slab_under_insulation_width``
- **Type:** ``Double``
- **Units:** ``ft``
-- **Required:** ``true``
+- **Required:** ``false``
**Slab: Thickness**
-The thickness of the slab. Zero can be entered if there is a dirt floor instead of a slab. If not provided, the OS-HPXML default (see HPXML Slabs) is used.
+The thickness of the slab. Zero can be entered if there is a dirt floor instead of a slab. If 'auto' or not provided, the OS-HPXML default (see HPXML Slabs) is used.
- **Name:** ``slab_thickness``
-- **Type:** ``Double``
-
-- **Units:** ``in``
+- **Type:** ``String``
- **Required:** ``false``
@@ -1113,12 +1083,10 @@ The thickness of the slab. Zero can be entered if there is a dirt floor instead
**Slab: Carpet Fraction**
-Fraction of the slab floor area that is carpeted. If not provided, the OS-HPXML default (see HPXML Slabs) is used.
+Fraction of the slab floor area that is carpeted. If 'auto' or not provided, the OS-HPXML default (see HPXML Slabs) is used.
- **Name:** ``slab_carpet_fraction``
-- **Type:** ``Double``
-
-- **Units:** ``Frac``
+- **Type:** ``String``
- **Required:** ``false``
@@ -1126,12 +1094,10 @@ Fraction of the slab floor area that is carpeted. If not provided, the OS-HPXML
**Slab: Carpet R-value**
-R-value of the slab carpet. If not provided, the OS-HPXML default (see HPXML Slabs) is used.
+R-value of the slab carpet. If 'auto' or not provided, the OS-HPXML default (see HPXML Slabs) is used.
- **Name:** ``slab_carpet_r``
-- **Type:** ``Double``
-
-- **Units:** ``h-ft^2-R/Btu``
+- **Type:** ``String``
- **Required:** ``false``
@@ -1139,40 +1105,40 @@ R-value of the slab carpet. If not provided, the OS-HPXML default (see HPXML Roofs) is used.
+The material type of the roof. If 'auto' or not provided, the OS-HPXML default (see HPXML Roofs) is used.
- **Name:** ``roof_material_type``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `asphalt or fiberglass shingles`, `concrete`, `cool roof`, `slate or tile shingles`, `expanded polystyrene sheathing`, `metal surfacing`, `plastic/rubber/synthetic sheeting`, `shingles`, `wood shingles or shakes`
+- **Choices:** `auto`, `asphalt or fiberglass shingles`, `concrete`, `cool roof`, `slate or tile shingles`, `expanded polystyrene sheathing`, `metal surfacing`, `plastic/rubber/synthetic sheeting`, `shingles`, `wood shingles or shakes`
**Roof: Color**
-The color of the roof. If not provided, the OS-HPXML default (see HPXML Roofs) is used.
+The color of the roof. If 'auto' or not provided, the OS-HPXML default (see HPXML Roofs) is used.
- **Name:** ``roof_color``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `dark`, `light`, `medium`, `medium dark`, `reflective`
+- **Choices:** `auto`, `dark`, `light`, `medium`, `medium dark`, `reflective`
@@ -1185,7 +1151,7 @@ Assembly R-value of the roof.
- **Units:** ``h-ft^2-R/Btu``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -1204,14 +1170,14 @@ The location of the radiant barrier in the attic.
**Attic: Radiant Barrier Grade**
-The grade of the radiant barrier in the attic. If not provided, the OS-HPXML default (see HPXML Roofs) is used.
+The grade of the radiant barrier in the attic. If 'auto' or not provided, the OS-HPXML default (see HPXML Roofs) is used.
- **Name:** ``radiant_barrier_grade``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `1`, `2`, `3`
+- **Choices:** `auto`, `1`, `2`, `3`
@@ -1230,27 +1196,27 @@ The type of walls.
**Wall: Siding Type**
-The siding type of the walls. Also applies to rim joists. If not provided, the OS-HPXML default (see HPXML Walls) is used.
+The siding type of the walls. Also applies to rim joists. If 'auto' or not provided, the OS-HPXML default (see HPXML Walls) is used.
- **Name:** ``wall_siding_type``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `aluminum siding`, `asbestos siding`, `brick veneer`, `composite shingle siding`, `fiber cement siding`, `masonite siding`, `none`, `stucco`, `synthetic stucco`, `vinyl siding`, `wood siding`
+- **Choices:** `auto`, `aluminum siding`, `asbestos siding`, `brick veneer`, `composite shingle siding`, `fiber cement siding`, `masonite siding`, `none`, `stucco`, `synthetic stucco`, `vinyl siding`, `wood siding`
**Wall: Color**
-The color of the walls. Also applies to rim joists. If not provided, the OS-HPXML default (see HPXML Walls) is used.
+The color of the walls. Also applies to rim joists. If 'auto' or not provided, the OS-HPXML default (see HPXML Walls) is used.
- **Name:** ``wall_color``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `dark`, `light`, `medium`, `medium dark`, `reflective`
+- **Choices:** `auto`, `auto`, `dark`, `light`, `medium`, `medium dark`, `reflective`
@@ -1267,61 +1233,9 @@ Assembly R-value of the walls.
-**Windows: Front Window-to-Wall Ratio**
-
-The ratio of window area to wall area for the unit's front facade. Enter 0 if specifying Front Window Area instead. If the front wall is adiabatic, the value will be ignored.
-
-- **Name:** ``window_front_wwr``
-- **Type:** ``Double``
-
-- **Units:** ``Frac``
-
-- **Required:** ``true``
-
-
-
-**Windows: Back Window-to-Wall Ratio**
-
-The ratio of window area to wall area for the unit's back facade. Enter 0 if specifying Back Window Area instead. If the back wall is adiabatic, the value will be ignored.
-
-- **Name:** ``window_back_wwr``
-- **Type:** ``Double``
-
-- **Units:** ``Frac``
-
-- **Required:** ``true``
-
-
-
-**Windows: Left Window-to-Wall Ratio**
-
-The ratio of window area to wall area for the unit's left facade (when viewed from the front). Enter 0 if specifying Left Window Area instead. If the left wall is adiabatic, the value will be ignored.
-
-- **Name:** ``window_left_wwr``
-- **Type:** ``Double``
-
-- **Units:** ``Frac``
-
-- **Required:** ``true``
-
-
-
-**Windows: Right Window-to-Wall Ratio**
-
-The ratio of window area to wall area for the unit's right facade (when viewed from the front). Enter 0 if specifying Right Window Area instead. If the right wall is adiabatic, the value will be ignored.
-
-- **Name:** ``window_right_wwr``
-- **Type:** ``Double``
-
-- **Units:** ``Frac``
-
-- **Required:** ``true``
-
-
-
**Windows: Front Window Area**
-The amount of window area on the unit's front facade. Enter 0 if specifying Front Window-to-Wall Ratio instead. If the front wall is adiabatic, the value will be ignored.
+The amount of window area on the unit's front facade. A value less than 1 will be treated as a window-to-wall ratio. If the front wall is adiabatic, the value will be ignored.
- **Name:** ``window_area_front``
- **Type:** ``Double``
@@ -1334,7 +1248,7 @@ The amount of window area on the unit's front facade. Enter 0 if specifying Fron
**Windows: Back Window Area**
-The amount of window area on the unit's back facade. Enter 0 if specifying Back Window-to-Wall Ratio instead. If the back wall is adiabatic, the value will be ignored.
+The amount of window area on the unit's back facade. A value less than 1 will be treated as a window-to-wall ratio. If the back wall is adiabatic, the value will be ignored.
- **Name:** ``window_area_back``
- **Type:** ``Double``
@@ -1347,7 +1261,7 @@ The amount of window area on the unit's back facade. Enter 0 if specifying Back
**Windows: Left Window Area**
-The amount of window area on the unit's left facade (when viewed from the front). Enter 0 if specifying Left Window-to-Wall Ratio instead. If the left wall is adiabatic, the value will be ignored.
+The amount of window area on the unit's left facade (when viewed from the front}. A value less than 1 will be treated as a window-to-wall ratio. If the left wall is adiabatic, the value will be ignored.
- **Name:** ``window_area_left``
- **Type:** ``Double``
@@ -1360,7 +1274,7 @@ The amount of window area on the unit's left facade (when viewed from the front)
**Windows: Right Window Area**
-The amount of window area on the unit's right facade (when viewed from the front). Enter 0 if specifying Right Window-to-Wall Ratio instead. If the right wall is adiabatic, the value will be ignored.
+The amount of window area on the unit's right facade (when viewed from the front}. A value less than 1 will be treated as a window-to-wall ratio. If the right wall is adiabatic, the value will be ignored.
- **Name:** ``window_area_right``
- **Type:** ``Double``
@@ -1384,77 +1298,71 @@ Ratio of window height to width.
-**Windows: Fraction Operable**
+**Windows: U-Factor**
-Fraction of windows that are operable. If not provided, the OS-HPXML default (see HPXML Windows) is used.
+Full-assembly NFRC U-factor.
-- **Name:** ``window_fraction_operable``
+- **Name:** ``window_ufactor``
- **Type:** ``Double``
-- **Units:** ``Frac``
+- **Units:** ``Btu/hr-ft^2-R``
-- **Required:** ``false``
+- **Required:** ``true``
-**Windows: Natural Ventilation Availability**
-
-For operable windows, the number of days/week that windows can be opened by occupants for natural ventilation. If not provided, the OS-HPXML default (see HPXML Windows) is used.
+**Windows: SHGC**
-- **Name:** ``window_natvent_availability``
-- **Type:** ``Integer``
+Full-assembly NFRC solar heat gain coefficient.
-- **Units:** ``Days/week``
+- **Name:** ``window_shgc``
+- **Type:** ``Double``
-- **Required:** ``false``
+- **Required:** ``true``
-**Windows: U-Factor**
-
-Full-assembly NFRC U-factor.
+**Windows: Fraction Operable**
-- **Name:** ``window_ufactor``
-- **Type:** ``Double``
+Fraction of windows that are operable. If 'auto' or not provided, the OS-HPXML default (see HPXML Windows) is used.
-- **Units:** ``Btu/hr-ft^2-R``
+- **Name:** ``window_fraction_operable``
+- **Type:** ``String``
-- **Required:** ``true``
+- **Required:** ``false``
-**Windows: SHGC**
+**Windows: Natural Ventilation Availability**
-Full-assembly NFRC solar heat gain coefficient.
+For operable windows, the number of days/week that windows can be opened by occupants for natural ventilation. If 'auto' or not provided, the OS-HPXML default (see HPXML Windows) is used.
-- **Name:** ``window_shgc``
-- **Type:** ``Double``
+- **Name:** ``window_natvent_availability``
+- **Type:** ``String``
-- **Required:** ``true``
+- **Required:** ``false``
**Windows: Interior Shading Type**
-Type of window interior shading. Summer/winter shading coefficients can be provided below instead. If neither is provided, the OS-HPXML default (see HPXML Interior Shading) is used.
+Type of window interior shading. Summer/winter shading coefficients can be provided below instead. If 'auto' or not provided, the OS-HPXML default (see HPXML Interior Shading) is used.
- **Name:** ``window_interior_shading_type``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `light curtains`, `light shades`, `light blinds`, `medium curtains`, `medium shades`, `medium blinds`, `dark curtains`, `dark shades`, `dark blinds`, `none`
+- **Choices:** `auto`, `light curtains`, `light shades`, `light blinds`, `medium curtains`, `medium shades`, `medium blinds`, `dark curtains`, `dark shades`, `dark blinds`, `none`
**Windows: Winter Interior Shading Coefficient**
-Interior shading coefficient for the winter season, which if provided overrides the shading type input. 1.0 indicates no reduction in solar gain, 0.85 indicates 15% reduction, etc. If not provided, the OS-HPXML default (see HPXML Interior Shading) is used.
+Interior shading coefficient for the winter season, which if provided overrides the shading type input. 1.0 indicates no reduction in solar gain, 0.85 indicates 15% reduction, etc. If 'auto' or not provided, the OS-HPXML default (see HPXML Interior Shading) is used.
- **Name:** ``window_interior_shading_winter``
-- **Type:** ``Double``
-
-- **Units:** ``Frac``
+- **Type:** ``String``
- **Required:** ``false``
@@ -1462,12 +1370,10 @@ Interior shading coefficient for the winter season, which if provided overrides
**Windows: Summer Interior Shading Coefficient**
-Interior shading coefficient for the summer season, which if provided overrides the shading type input. 1.0 indicates no reduction in solar gain, 0.85 indicates 15% reduction, etc. If not provided, the OS-HPXML default (see HPXML Interior Shading) is used.
+Interior shading coefficient for the summer season, which if provided overrides the shading type input. 1.0 indicates no reduction in solar gain, 0.85 indicates 15% reduction, etc. If 'auto' or not provided, the OS-HPXML default (see HPXML Interior Shading) is used.
- **Name:** ``window_interior_shading_summer``
-- **Type:** ``Double``
-
-- **Units:** ``Frac``
+- **Type:** ``String``
- **Required:** ``false``
@@ -1475,25 +1381,23 @@ Interior shading coefficient for the summer season, which if provided overrides
**Windows: Exterior Shading Type**
-Type of window exterior shading. Summer/winter shading coefficients can be provided below instead. If neither is provided, the OS-HPXML default (see HPXML Exterior Shading) is used.
+Type of window exterior shading. Summer/winter shading coefficients can be provided below instead. If 'auto' or not provided, the OS-HPXML default (see HPXML Exterior Shading) is used.
- **Name:** ``window_exterior_shading_type``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `solar film`, `solar screens`, `none`
+- **Choices:** `auto`, `solar film`, `solar screens`, `none`
**Windows: Winter Exterior Shading Coefficient**
-Exterior shading coefficient for the winter season, which if provided overrides the shading type input. 1.0 indicates no reduction in solar gain, 0.85 indicates 15% reduction, etc. If not provided, the OS-HPXML default (see HPXML Exterior Shading) is used.
+Exterior shading coefficient for the winter season, which if provided overrides the shading type input. 1.0 indicates no reduction in solar gain, 0.85 indicates 15% reduction, etc. If 'auto' or not provided, the OS-HPXML default (see HPXML Exterior Shading) is used.
- **Name:** ``window_exterior_shading_winter``
-- **Type:** ``Double``
-
-- **Units:** ``Frac``
+- **Type:** ``String``
- **Required:** ``false``
@@ -1501,12 +1405,10 @@ Exterior shading coefficient for the winter season, which if provided overrides
**Windows: Summer Exterior Shading Coefficient**
-Exterior shading coefficient for the summer season, which if provided overrides the shading type input. 1.0 indicates no reduction in solar gain, 0.85 indicates 15% reduction, etc. If not provided, the OS-HPXML default (see HPXML Exterior Shading) is used.
+Exterior shading coefficient for the summer season, which if provided overrides the shading type input. 1.0 indicates no reduction in solar gain, 0.85 indicates 15% reduction, etc. If 'auto' or not provided, the OS-HPXML default (see HPXML Exterior Shading) is used.
- **Name:** ``window_exterior_shading_summer``
-- **Type:** ``Double``
-
-- **Units:** ``Frac``
+- **Type:** ``String``
- **Required:** ``false``
@@ -1514,7 +1416,7 @@ Exterior shading coefficient for the summer season, which if provided overrides
**Windows: Shading Summer Season**
-Enter a date range like 'May 1 - Sep 30'. Defines the summer season for purposes of shading coefficients; the rest of the year is assumed to be winter. If not provided, the OS-HPXML default (see HPXML Windows) is used.
+Enter a date range like 'May 1 - Sep 30'. Defines the summer season for purposes of shading coefficients; the rest of the year is assumed to be winter. If 'auto' or not provided, the OS-HPXML default (see HPXML Windows) is used.
- **Name:** ``window_shading_summer_season``
- **Type:** ``String``
@@ -1558,7 +1460,7 @@ The depth of overhangs for windows for the front facade.
- **Units:** ``ft``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -1571,7 +1473,7 @@ The overhangs distance to the top of window for the front facade.
- **Units:** ``ft``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -1584,7 +1486,7 @@ The overhangs distance to the bottom of window for the front facade.
- **Units:** ``ft``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -1597,7 +1499,7 @@ The depth of overhangs for windows for the back facade.
- **Units:** ``ft``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -1610,7 +1512,7 @@ The overhangs distance to the top of window for the back facade.
- **Units:** ``ft``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -1623,7 +1525,7 @@ The overhangs distance to the bottom of window for the back facade.
- **Units:** ``ft``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -1636,7 +1538,7 @@ The depth of overhangs for windows for the left facade.
- **Units:** ``ft``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -1649,7 +1551,7 @@ The overhangs distance to the top of window for the left facade.
- **Units:** ``ft``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -1662,7 +1564,7 @@ The overhangs distance to the bottom of window for the left facade.
- **Units:** ``ft``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -1675,7 +1577,7 @@ The depth of overhangs for windows for the right facade.
- **Units:** ``ft``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -1688,7 +1590,7 @@ The overhangs distance to the top of window for the right facade.
- **Units:** ``ft``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -1701,7 +1603,7 @@ The overhangs distance to the bottom of window for the right facade.
- **Units:** ``ft``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -1714,7 +1616,7 @@ The amount of skylight area on the unit's front conditioned roof facade.
- **Units:** ``ft^2``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -1727,57 +1629,57 @@ The amount of skylight area on the unit's back conditioned roof facade.
- **Units:** ``ft^2``
-- **Required:** ``true``
+- **Required:** ``false``
**Skylights: Left Roof Area**
-The amount of skylight area on the unit's left conditioned roof facade (when viewed from the front).
+The amount of skylight area on the unit's left conditioned roof facade (when viewed from the front}.
- **Name:** ``skylight_area_left``
- **Type:** ``Double``
- **Units:** ``ft^2``
-- **Required:** ``true``
+- **Required:** ``false``
**Skylights: Right Roof Area**
-The amount of skylight area on the unit's right conditioned roof facade (when viewed from the front).
+The amount of skylight area on the unit's right conditioned roof facade (when viewed from the front}.
- **Name:** ``skylight_area_right``
- **Type:** ``Double``
- **Units:** ``ft^2``
-- **Required:** ``true``
+- **Required:** ``false``
**Skylights: U-Factor**
-Full-assembly NFRC U-factor.
+Full-assembly NFRC U-factor. If not provided, defaults to 0.33.
- **Name:** ``skylight_ufactor``
- **Type:** ``Double``
- **Units:** ``Btu/hr-ft^2-R``
-- **Required:** ``true``
+- **Required:** ``false``
**Skylights: SHGC**
-Full-assembly NFRC solar heat gain coefficient.
+Full-assembly NFRC solar heat gain coefficient. If not provided, defaults to 0.45.
- **Name:** ``skylight_shgc``
- **Type:** ``Double``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -1796,7 +1698,7 @@ The type of storm, if present. If not provided, assumes there is no storm.
**Doors: Area**
-The area of the opaque door(s).
+The area of the opaque door(s}.
- **Name:** ``door_area``
- **Type:** ``Double``
@@ -1809,7 +1711,7 @@ The area of the opaque door(s).
**Doors: R-value**
-R-value of the opaque door(s).
+R-value of the opaque door(s}.
- **Name:** ``door_rvalue``
- **Type:** ``Double``
@@ -1885,13 +1787,15 @@ Type of air leakage if providing a numeric air leakage value. If 'unit total', r
**Air Leakage: Has Flue or Chimney in Conditioned Space**
-Presence of flue or chimney with combustion air from conditioned space; used for infiltration model. If not provided, the OS-HPXML default (see Flue or Chimney) is used.
+Presence of flue or chimney with combustion air from conditioned space; used for infiltration model. If 'auto' or not provided, the OS-HPXML default (see Flue or Chimney) is used.
- **Name:** ``air_leakage_has_flue_or_chimney_in_conditioned_space``
-- **Type:** ``Boolean``
+- **Type:** ``Choice``
- **Required:** ``false``
+- **Choices:** `auto`, `true`, `false`
+
**Heating System: Type**
@@ -1914,7 +1818,7 @@ The fuel type of the heating system. Ignored for ElectricResistance.
- **Name:** ``heating_system_fuel``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `electricity`, `natural gas`, `fuel oil`, `propane`, `wood`, `wood pellets`, `coal`
@@ -1929,18 +1833,16 @@ The rated heating efficiency value of the heating system.
- **Units:** ``Frac``
-- **Required:** ``true``
+- **Required:** ``false``
**Heating System: Heating Capacity**
-The output heating capacity of the heating system. If not provided, the OS-HPXML autosized default (see HPXML Heating Systems) is used.
+The output heating capacity of the heating system. If 'auto' or not provided, the OS-HPXML default (see HPXML Heating Systems) is used.
- **Name:** ``heating_system_heating_capacity``
-- **Type:** ``Double``
-
-- **Units:** ``Btu/hr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -1972,14 +1874,14 @@ The maximum capacity limit applied to the auto-sizing methodology. If not provid
**Heating System: Fraction Heat Load Served**
-The heating load served by the heating system.
+The heating load served by the heating system. If not provided, defaults to 1.
- **Name:** ``heating_system_fraction_heat_load_served``
- **Type:** ``Double``
- **Units:** ``Frac``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -1998,7 +1900,7 @@ The fuel usage of the pilot light. Applies only to Furnace, WallFurnace, FloorFu
**Heating System: Airflow Defect Ratio**
-The airflow defect ratio, defined as (InstalledAirflow - DesignAirflow) / DesignAirflow, of the heating system per ANSI/RESNET/ACCA Standard 310. A value of zero means no airflow defect. Applies only to Furnace. If not provided, assumes no defect.
+The airflow defect ratio, defined as (InstalledAirflow - DesignAirflow} / DesignAirflow, of the heating system per ANSI/RESNET/ACCA Standard 310. A value of zero means no airflow defect. Applies only to Furnace. If not provided, assumes no defect.
- **Name:** ``heating_system_airflow_defect_ratio``
- **Type:** ``Double``
@@ -2024,12 +1926,12 @@ The type of cooling system. Use 'none' if there is no cooling system or if there
**Cooling System: Efficiency Type**
-The efficiency type of the cooling system. System types central air conditioner and mini-split use SEER or SEER2. System types room air conditioner and packaged terminal air conditioner use EER or CEER. Ignored for system type evaporative cooler.
+The efficiency type of the cooling system. System types central air conditioner and mini-split use SEER or SEER2. System types room air conditioner and packaged terminal air conditioner use EER or CEER. Ignored for system type evaporative cooler. If not provided, defaults to SEER.
- **Name:** ``cooling_system_cooling_efficiency_type``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `SEER`, `SEER2`, `EER`, `CEER`
@@ -2042,31 +1944,29 @@ The rated efficiency value of the cooling system. Ignored for evaporative cooler
- **Name:** ``cooling_system_cooling_efficiency``
- **Type:** ``Double``
-- **Required:** ``true``
+- **Required:** ``false``
**Cooling System: Cooling Compressor Type**
-The compressor type of the cooling system. Only applies to central air conditioner and mini-split. If not provided, the OS-HPXML default (see Central Air Conditioner, Mini-Split Air Conditioner) is used.
+The compressor type of the cooling system. Only applies to central air conditioner and mini-split. If 'auto' or not provided, the OS-HPXML default (see Central Air Conditioner, Mini-Split Air Conditioner) is used.
- **Name:** ``cooling_system_cooling_compressor_type``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `single stage`, `two stage`, `variable speed`
+- **Choices:** `auto`, `single stage`, `two stage`, `variable speed`
**Cooling System: Cooling Sensible Heat Fraction**
-The sensible heat fraction of the cooling system. Ignored for evaporative cooler. If not provided, the OS-HPXML default (see Central Air Conditioner, Room Air Conditioner, Packaged Terminal Air Conditioner, Mini-Split Air Conditioner) is used.
+The sensible heat fraction of the cooling system. Ignored for evaporative cooler. If 'auto' or not provided, the OS-HPXML default (see Central Air Conditioner, Room Air Conditioner, Packaged Terminal Air Conditioner, Mini-Split Air Conditioner) is used.
- **Name:** ``cooling_system_cooling_sensible_heat_fraction``
-- **Type:** ``Double``
-
-- **Units:** ``Frac``
+- **Type:** ``String``
- **Required:** ``false``
@@ -2074,12 +1974,10 @@ The sensible heat fraction of the cooling system. Ignored for evaporative cooler
**Cooling System: Cooling Capacity**
-The output cooling capacity of the cooling system. If not provided, the OS-HPXML autosized default (see Central Air Conditioner, Room Air Conditioner, Packaged Terminal Air Conditioner, Evaporative Cooler, Mini-Split Air Conditioner) is used.
+The output cooling capacity of the cooling system. If 'auto' or not provided, the OS-HPXML default (see Central Air Conditioner, Room Air Conditioner, Packaged Terminal Air Conditioner, Evaporative Cooler, Mini-Split Air Conditioner) is used.
- **Name:** ``cooling_system_cooling_capacity``
-- **Type:** ``Double``
-
-- **Units:** ``Btu/hr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -2111,14 +2009,14 @@ The maximum capacity limit applied to the auto-sizing methodology. If not provid
**Cooling System: Fraction Cool Load Served**
-The cooling load served by the cooling system.
+The cooling load served by the cooling system. If not provided, defaults to 1.
- **Name:** ``cooling_system_fraction_cool_load_served``
- **Type:** ``Double``
- **Units:** ``Frac``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -2135,7 +2033,7 @@ Whether the cooling system is ducted or not. Only used for mini-split and evapor
**Cooling System: Airflow Defect Ratio**
-The airflow defect ratio, defined as (InstalledAirflow - DesignAirflow) / DesignAirflow, of the cooling system per ANSI/RESNET/ACCA Standard 310. A value of zero means no airflow defect. Applies only to central air conditioner and ducted mini-split. If not provided, assumes no defect.
+The airflow defect ratio, defined as (InstalledAirflow - DesignAirflow} / DesignAirflow, of the cooling system per ANSI/RESNET/ACCA Standard 310. A value of zero means no airflow defect. Applies only to central air conditioner and ducted mini-split. If not provided, assumes no defect.
- **Name:** ``cooling_system_airflow_defect_ratio``
- **Type:** ``Double``
@@ -2148,7 +2046,7 @@ The airflow defect ratio, defined as (InstalledAirflow - DesignAirflow) / Design
**Cooling System: Charge Defect Ratio**
-The refrigerant charge defect ratio, defined as (InstalledCharge - DesignCharge) / DesignCharge, of the cooling system per ANSI/RESNET/ACCA Standard 310. A value of zero means no refrigerant charge defect. Applies only to central air conditioner and mini-split. If not provided, assumes no defect.
+The refrigerant charge defect ratio, defined as (InstalledCharge - DesignCharge} / DesignCharge, of the cooling system per ANSI/RESNET/ACCA Standard 310. A value of zero means no refrigerant charge defect. Applies only to central air conditioner and mini-split. If not provided, assumes no defect.
- **Name:** ``cooling_system_charge_defect_ratio``
- **Type:** ``Double``
@@ -2161,12 +2059,10 @@ The refrigerant charge defect ratio, defined as (InstalledCharge - DesignCharge)
**Cooling System: Crankcase Heater Power Watts**
-Cooling system crankcase heater power consumption in Watts. Applies only to central air conditioner, room air conditioner, packaged terminal air conditioner and mini-split. If not provided, the OS-HPXML default (see Central Air Conditioner, Room Air Conditioner, Packaged Terminal Air Conditioner, Mini-Split Air Conditioner) is used.
+Cooling system crankcase heater power consumption in Watts. Applies only to central air conditioner, room air conditioner, packaged terminal air conditioner and mini-split. If 'auto' or not provided, the OS-HPXML default (see Central Air Conditioner, Room Air Conditioner, Packaged Terminal Air Conditioner, Mini-Split Air Conditioner) is used.
- **Name:** ``cooling_system_crankcase_heater_watts``
-- **Type:** ``Double``
-
-- **Units:** ``W``
+- **Type:** ``String``
- **Required:** ``false``
@@ -2200,12 +2096,10 @@ The rated heating efficiency value of the heating system integrated into cooling
**Cooling System: Integrated Heating System Heating Capacity**
-The output heating capacity of the heating system integrated into cooling system. If not provided, the OS-HPXML autosized default (see Room Air Conditioner, Packaged Terminal Air Conditioner) is used. Only used for room air conditioner and packaged terminal air conditioner.
+The output heating capacity of the heating system integrated into cooling system. Only used for room air conditioner and packaged terminal air conditioner. If 'auto' or not provided, the OS-HPXML default (see Room Air Conditioner, Packaged Terminal Air Conditioner) is used.
- **Name:** ``cooling_system_integrated_heating_system_capacity``
-- **Type:** ``Double``
-
-- **Units:** ``Btu/hr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -2239,12 +2133,12 @@ The type of heat pump. Use 'none' if there is no heat pump.
**Heat Pump: Heating Efficiency Type**
-The heating efficiency type of heat pump. System types air-to-air and mini-split use HSPF or HSPF2. System types ground-to-air, packaged terminal heat pump and room air conditioner with reverse cycle use COP.
+The heating efficiency type of heat pump. System types air-to-air and mini-split use HSPF or HSPF2. System types ground-to-air, packaged terminal heat pump and room air conditioner with reverse cycle use COP. If not provided, defaults to HSPF.
- **Name:** ``heat_pump_heating_efficiency_type``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `HSPF`, `HSPF2`, `COP`
@@ -2257,18 +2151,18 @@ The rated heating efficiency value of the heat pump.
- **Name:** ``heat_pump_heating_efficiency``
- **Type:** ``Double``
-- **Required:** ``true``
+- **Required:** ``false``
**Heat Pump: Cooling Efficiency Type**
-The cooling efficiency type of heat pump. System types air-to-air and mini-split use SEER or SEER2. System types ground-to-air, packaged terminal heat pump and room air conditioner with reverse cycle use EER.
+The cooling efficiency type of heat pump. System types air-to-air and mini-split use SEER or SEER2. System types ground-to-air, packaged terminal heat pump and room air conditioner with reverse cycle use EER. If not provided, defaults to SEER.
- **Name:** ``heat_pump_cooling_efficiency_type``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `SEER`, `SEER2`, `EER`, `CEER`
@@ -2281,31 +2175,29 @@ The rated cooling efficiency value of the heat pump.
- **Name:** ``heat_pump_cooling_efficiency``
- **Type:** ``Double``
-- **Required:** ``true``
+- **Required:** ``false``
**Heat Pump: Cooling Compressor Type**
-The compressor type of the heat pump. Only applies to air-to-air and mini-split. If not provided, the OS-HPXML default (see Air-to-Air Heat Pump, Mini-Split Heat Pump) is used.
+The compressor type of the heat pump. Only applies to air-to-air and mini-split. If 'auto' or not provided, the OS-HPXML default (see Air-to-Air Heat Pump, Mini-Split Heat Pump) is used.
- **Name:** ``heat_pump_cooling_compressor_type``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `single stage`, `two stage`, `variable speed`
+- **Choices:** `auto`, `auto`, `single stage`, `two stage`, `variable speed`
**Heat Pump: Cooling Sensible Heat Fraction**
-The sensible heat fraction of the heat pump. If not provided, the OS-HPXML default (see Air-to-Air Heat Pump, Mini-Split Heat Pump, Packaged Terminal Heat Pump, Room Air Conditioner w/ Reverse Cycle, Ground-to-Air Heat Pump) is used.
+The sensible heat fraction of the heat pump. If 'auto' or not provided, the OS-HPXML default (see Air-to-Air Heat Pump, Mini-Split Heat Pump, Packaged Terminal Heat Pump, Room Air Conditioner w/ Reverse Cycle, Ground-to-Air Heat Pump) is used.
- **Name:** ``heat_pump_cooling_sensible_heat_fraction``
-- **Type:** ``Double``
-
-- **Units:** ``Frac``
+- **Type:** ``String``
- **Required:** ``false``
@@ -2313,12 +2205,10 @@ The sensible heat fraction of the heat pump. If not provided, the OS-HPXML defau
**Heat Pump: Heating Capacity**
-The output heating capacity of the heat pump. If not provided, the OS-HPXML autosized default (see Air-to-Air Heat Pump, Mini-Split Heat Pump, Packaged Terminal Heat Pump, Room Air Conditioner w/ Reverse Cycle, Ground-to-Air Heat Pump) is used.
+The output heating capacity of the heat pump. If 'auto' or not provided, the OS-HPXML default (see Air-to-Air Heat Pump, Mini-Split Heat Pump, Packaged Terminal Heat Pump, Room Air Conditioner w/ Reverse Cycle, Ground-to-Air Heat Pump) is used.
- **Name:** ``heat_pump_heating_capacity``
-- **Type:** ``Double``
-
-- **Units:** ``Btu/hr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -2350,12 +2240,10 @@ The maximum capacity limit applied to the auto-sizing methodology. If not provid
**Heat Pump: Heating Capacity Retention Fraction**
-The output heating capacity of the heat pump at a user-specified temperature (e.g., 17F or 5F) divided by the above nominal heating capacity. Applies to all heat pump types except ground-to-air. If not provided, the OS-HPXML default (see Air-to-Air Heat Pump, Mini-Split Heat Pump, Packaged Terminal Heat Pump, Room Air Conditioner w/ Reverse Cycle) is used.
+The output heating capacity of the heat pump at a user-specified temperature (e.g., 17F or 5F} divided by the above nominal heating capacity. Applies to all heat pump types except ground-to-air. If 'auto' or not provided, the OS-HPXML default (see Air-to-Air Heat Pump, Mini-Split Heat Pump, Packaged Terminal Heat Pump, Room Air Conditioner w/ Reverse Cycle) is used.
- **Name:** ``heat_pump_heating_capacity_retention_fraction``
-- **Type:** ``Double``
-
-- **Units:** ``Frac``
+- **Type:** ``String``
- **Required:** ``false``
@@ -2363,7 +2251,7 @@ The output heating capacity of the heat pump at a user-specified temperature (e.
**Heat Pump: Heating Capacity Retention Temperature**
-The user-specified temperature (e.g., 17F or 5F) for the above heating capacity retention fraction. Applies to all heat pump types except ground-to-air. Required if the Heating Capacity Retention Fraction is provided.
+The user-specified temperature (e.g., 17F or 5F} for the above heating capacity retention fraction. Applies to all heat pump types except ground-to-air. Required if the Heating Capacity Retention Fraction is provided.
- **Name:** ``heat_pump_heating_capacity_retention_temp``
- **Type:** ``Double``
@@ -2376,12 +2264,10 @@ The user-specified temperature (e.g., 17F or 5F) for the above heating capacity
**Heat Pump: Cooling Capacity**
-The output cooling capacity of the heat pump. If not provided, the OS-HPXML autosized default (see Air-to-Air Heat Pump, Mini-Split Heat Pump, Packaged Terminal Heat Pump, Room Air Conditioner w/ Reverse Cycle, Ground-to-Air Heat Pump) is used.
+The output cooling capacity of the heat pump. If 'auto' or not provided, the OS-HPXML default (see Air-to-Air Heat Pump, Mini-Split Heat Pump, Packaged Terminal Heat Pump, Room Air Conditioner w/ Reverse Cycle, Ground-to-Air Heat Pump) is used.
- **Name:** ``heat_pump_cooling_capacity``
-- **Type:** ``Double``
-
-- **Units:** ``Btu/hr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -2413,38 +2299,36 @@ The maximum capacity limit applied to the auto-sizing methodology. If not provid
**Heat Pump: Fraction Heat Load Served**
-The heating load served by the heat pump.
+The heating load served by the heat pump. If not provided, defaults to 1.
- **Name:** ``heat_pump_fraction_heat_load_served``
- **Type:** ``Double``
- **Units:** ``Frac``
-- **Required:** ``true``
+- **Required:** ``false``
**Heat Pump: Fraction Cool Load Served**
-The cooling load served by the heat pump.
+The cooling load served by the heat pump. If not provided, defaults to 1.
- **Name:** ``heat_pump_fraction_cool_load_served``
- **Type:** ``Double``
- **Units:** ``Frac``
-- **Required:** ``true``
+- **Required:** ``false``
**Heat Pump: Compressor Lockout Temperature**
-The temperature below which the heat pump compressor is disabled. If both this and Backup Heating Lockout Temperature are provided and use the same value, it essentially defines a switchover temperature (for, e.g., a dual-fuel heat pump). Applies to all heat pump types other than ground-to-air. If not provided, the OS-HPXML default (see Air-to-Air Heat Pump, Mini-Split Heat Pump, Packaged Terminal Heat Pump, Room Air Conditioner w/ Reverse Cycle) is used.
+The temperature below which the heat pump compressor is disabled. If both this and Backup Heating Lockout Temperature are provided and use the same value, it essentially defines a switchover temperature (for, e.g., a dual-fuel heat pump}. Applies to all heat pump types other than ground-to-air. If 'auto' or not provided, the OS-HPXML default (see Air-to-Air Heat Pump, Mini-Split Heat Pump, Packaged Terminal Heat Pump, Room Air Conditioner w/ Reverse Cycle) is used.
- **Name:** ``heat_pump_compressor_lockout_temp``
-- **Type:** ``Double``
-
-- **Units:** ``F``
+- **Type:** ``String``
- **Required:** ``false``
@@ -2452,12 +2336,12 @@ The temperature below which the heat pump compressor is disabled. If both this a
**Heat Pump: Backup Type**
-The backup type of the heat pump. If 'integrated', represents e.g. built-in electric strip heat or dual-fuel integrated furnace. If 'separate', represents e.g. electric baseboard or boiler based on the Heating System 2 specified below. Use 'none' if there is no backup heating.
+The backup type of the heat pump. If 'integrated', represents e.g. built-in electric strip heat or dual-fuel integrated furnace. If 'separate', represents e.g. electric baseboard or boiler based on the Heating System 2 specified below. Use 'none' if there is no backup heating. If not provided, defaults to 'integrated'.
- **Name:** ``heat_pump_backup_type``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `none`, `integrated`, `separate`
@@ -2489,12 +2373,12 @@ The maximum capacity limit applied to the auto-sizing methodology if Backup Type
**Heat Pump: Backup Fuel Type**
-The backup fuel type of the heat pump. Only applies if Backup Type is 'integrated'.
+The backup fuel type of the heat pump. Only applies if Backup Type is 'integrated'. If not provided, defaults to electricity.
- **Name:** ``heat_pump_backup_fuel``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `electricity`, `natural gas`, `fuel oil`, `propane`
@@ -2502,23 +2386,21 @@ The backup fuel type of the heat pump. Only applies if Backup Type is 'integrate
**Heat Pump: Backup Rated Efficiency**
-The backup rated efficiency value of the heat pump. Percent for electricity fuel type. AFUE otherwise. Only applies if Backup Type is 'integrated'.
+The backup rated efficiency value of the heat pump. Percent for electricity fuel type. AFUE otherwise. Only applies if Backup Type is 'integrated'. If not provided, defaults to 1.
- **Name:** ``heat_pump_backup_heating_efficiency``
- **Type:** ``Double``
-- **Required:** ``true``
+- **Required:** ``false``
**Heat Pump: Backup Heating Capacity**
-The backup output heating capacity of the heat pump. If not provided, the OS-HPXML autosized default (see Backup) is used. Only applies if Backup Type is 'integrated'.
+The backup output heating capacity of the heat pump. Only applies if Backup Type is 'integrated'. If 'auto' or not provided, the OS-HPXML default (see Backup) is used.
- **Name:** ``heat_pump_backup_heating_capacity``
-- **Type:** ``Double``
-
-- **Units:** ``Btu/hr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -2526,12 +2408,10 @@ The backup output heating capacity of the heat pump. If not provided, the OS-HPX
**Heat Pump: Backup Heating Lockout Temperature**
-The temperature above which the heat pump backup system is disabled. If both this and Compressor Lockout Temperature are provided and use the same value, it essentially defines a switchover temperature (for, e.g., a dual-fuel heat pump). Applies for both Backup Type of 'integrated' and 'separate'. If not provided, the OS-HPXML default (see Backup) is used.
+The temperature above which the heat pump backup system is disabled. If both this and Compressor Lockout Temperature are provided and use the same value, it essentially defines a switchover temperature (for, e.g., a dual-fuel heat pump}. Applies for both Backup Type of 'integrated' and 'separate'. If 'auto' or not provided, the OS-HPXML default (see Backup) is used.
- **Name:** ``heat_pump_backup_heating_lockout_temp``
-- **Type:** ``Double``
-
-- **Units:** ``F``
+- **Type:** ``String``
- **Required:** ``false``
@@ -2539,27 +2419,27 @@ The temperature above which the heat pump backup system is disabled. If both thi
**Heat Pump: Sizing Methodology**
-The auto-sizing methodology to use when the heat pump capacity is not provided. If not provided, the OS-HPXML default (see HPXML HVAC Sizing Control) is used.
+The auto-sizing methodology to use when the heat pump capacity is not provided. If 'auto' or not provided, the OS-HPXML default (see HPXML HVAC Sizing Control) is used.
- **Name:** ``heat_pump_sizing_methodology``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `ACCA`, `HERS`, `MaxLoad`
+- **Choices:** `auto`, `ACCA`, `HERS`, `MaxLoad`
**Heat Pump: Backup Sizing Methodology**
-The auto-sizing methodology to use when the heat pump backup capacity is not provided. If not provided, the OS-HPXML default (see HPXML HVAC Sizing Control) is used.
+The auto-sizing methodology to use when the heat pump backup capacity is not provided. If 'auto' or not provided, the OS-HPXML default (see HPXML HVAC Sizing Control) is used.
- **Name:** ``heat_pump_backup_sizing_methodology``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `emergency`, `supplemental`
+- **Choices:** `auto`, `emergency`, `supplemental`
@@ -2576,7 +2456,7 @@ Whether the heat pump is ducted or not. Only used for mini-split. It's assumed t
**Heat Pump: Airflow Defect Ratio**
-The airflow defect ratio, defined as (InstalledAirflow - DesignAirflow) / DesignAirflow, of the heat pump per ANSI/RESNET/ACCA Standard 310. A value of zero means no airflow defect. Applies only to air-to-air, ducted mini-split, and ground-to-air. If not provided, assumes no defect.
+The airflow defect ratio, defined as (InstalledAirflow - DesignAirflow} / DesignAirflow, of the heat pump per ANSI/RESNET/ACCA Standard 310. A value of zero means no airflow defect. Applies only to air-to-air, ducted mini-split, and ground-to-air. If not provided, assumes no defect.
- **Name:** ``heat_pump_airflow_defect_ratio``
- **Type:** ``Double``
@@ -2589,7 +2469,7 @@ The airflow defect ratio, defined as (InstalledAirflow - DesignAirflow) / Design
**Heat Pump: Charge Defect Ratio**
-The refrigerant charge defect ratio, defined as (InstalledCharge - DesignCharge) / DesignCharge, of the heat pump per ANSI/RESNET/ACCA Standard 310. A value of zero means no refrigerant charge defect. Applies to all heat pump types. If not provided, assumes no defect.
+The refrigerant charge defect ratio, defined as (InstalledCharge - DesignCharge} / DesignCharge, of the heat pump per ANSI/RESNET/ACCA Standard 310. A value of zero means no refrigerant charge defect. Applies to all heat pump types. If not provided, assumes no defect.
- **Name:** ``heat_pump_charge_defect_ratio``
- **Type:** ``Double``
@@ -2602,12 +2482,10 @@ The refrigerant charge defect ratio, defined as (InstalledCharge - DesignCharge)
**Heat Pump: Crankcase Heater Power Watts**
-Heat Pump crankcase heater power consumption in Watts. Applies only to air-to-air, mini-split, packaged terminal heat pump and room air conditioner with reverse cycle. If not provided, the OS-HPXML default (see Air-to-Air Heat Pump, Mini-Split Heat Pump, Packaged Terminal Heat Pump, Room Air Conditioner w/ Reverse Cycle) is used.
+Heat Pump crankcase heater power consumption in Watts. Applies only to air-to-air, mini-split, packaged terminal heat pump and room air conditioner with reverse cycle. If 'auto' or not provided, the OS-HPXML default (see Air-to-Air Heat Pump, Mini-Split Heat Pump, Packaged Terminal Heat Pump, Room Air Conditioner w/ Reverse Cycle) is used.
- **Name:** ``heat_pump_crankcase_heater_watts``
-- **Type:** ``Double``
-
-- **Units:** ``W``
+- **Type:** ``String``
- **Required:** ``false``
@@ -2615,7 +2493,7 @@ Heat Pump crankcase heater power consumption in Watts. Applies only to air-to-ai
**HVAC Detailed Performance Data: Capacity Type**
-Type of capacity values for detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps).
+Type of capacity values for detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}.
- **Name:** ``hvac_perf_data_capacity_type``
- **Type:** ``Choice``
@@ -2628,7 +2506,7 @@ Type of capacity values for detailed performance data if available. Applies only
**HVAC Detailed Performance Data: Heating Outdoor Temperatures**
-Outdoor temperatures of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). One of the outdoor temperatures must be 47 F. At least two performance data points are required using a comma-separated list.
+Outdoor temperatures of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. One of the outdoor temperatures must be 47 F. At least two performance data points are required using a comma-separated list.
- **Name:** ``hvac_perf_data_heating_outdoor_temperatures``
- **Type:** ``String``
@@ -2639,7 +2517,7 @@ Outdoor temperatures of heating detailed performance data if available. Applies
**HVAC Detailed Performance Data: Heating Minimum Speed Capacities**
-Minimum speed capacities of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). At least two performance data points are required using a comma-separated list.
+Minimum speed capacities of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. At least two performance data points are required using a comma-separated list.
- **Name:** ``hvac_perf_data_heating_min_speed_capacities``
- **Type:** ``String``
@@ -2650,7 +2528,7 @@ Minimum speed capacities of heating detailed performance data if available. Appl
**HVAC Detailed Performance Data: Heating Maximum Speed Capacities**
-Maximum speed capacities of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). At least two performance data points are required using a comma-separated list.
+Maximum speed capacities of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. At least two performance data points are required using a comma-separated list.
- **Name:** ``hvac_perf_data_heating_max_speed_capacities``
- **Type:** ``String``
@@ -2661,7 +2539,7 @@ Maximum speed capacities of heating detailed performance data if available. Appl
**HVAC Detailed Performance Data: Heating Minimum Speed COPs**
-Minimum speed efficiency COP values of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). At least two performance data points are required using a comma-separated list.
+Minimum speed efficiency COP values of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. At least two performance data points are required using a comma-separated list.
- **Name:** ``hvac_perf_data_heating_min_speed_cops``
- **Type:** ``String``
@@ -2672,7 +2550,7 @@ Minimum speed efficiency COP values of heating detailed performance data if avai
**HVAC Detailed Performance Data: Heating Maximum Speed COPs**
-Maximum speed efficiency COP values of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). At least two performance data points are required using a comma-separated list.
+Maximum speed efficiency COP values of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. At least two performance data points are required using a comma-separated list.
- **Name:** ``hvac_perf_data_heating_max_speed_cops``
- **Type:** ``String``
@@ -2683,7 +2561,7 @@ Maximum speed efficiency COP values of heating detailed performance data if avai
**HVAC Detailed Performance Data: Cooling Outdoor Temperatures**
-Outdoor temperatures of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). One of the outdoor temperatures must be 95 F. At least two performance data points are required using a comma-separated list.
+Outdoor temperatures of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. One of the outdoor temperatures must be 95 F. At least two performance data points are required using a comma-separated list.
- **Name:** ``hvac_perf_data_cooling_outdoor_temperatures``
- **Type:** ``String``
@@ -2694,7 +2572,7 @@ Outdoor temperatures of cooling detailed performance data if available. Applies
**HVAC Detailed Performance Data: Cooling Minimum Speed Capacities**
-Minimum speed capacities of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). At least two performance data points are required using a comma-separated list.
+Minimum speed capacities of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. At least two performance data points are required using a comma-separated list.
- **Name:** ``hvac_perf_data_cooling_min_speed_capacities``
- **Type:** ``String``
@@ -2705,7 +2583,7 @@ Minimum speed capacities of cooling detailed performance data if available. Appl
**HVAC Detailed Performance Data: Cooling Maximum Speed Capacities**
-Maximum speed capacities of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). At least two performance data points are required using a comma-separated list.
+Maximum speed capacities of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. At least two performance data points are required using a comma-separated list.
- **Name:** ``hvac_perf_data_cooling_max_speed_capacities``
- **Type:** ``String``
@@ -2716,7 +2594,7 @@ Maximum speed capacities of cooling detailed performance data if available. Appl
**HVAC Detailed Performance Data: Cooling Minimum Speed COPs**
-Minimum speed efficiency COP values of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). At least two performance data points are required using a comma-separated list.
+Minimum speed efficiency COP values of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. At least two performance data points are required using a comma-separated list.
- **Name:** ``hvac_perf_data_cooling_min_speed_cops``
- **Type:** ``String``
@@ -2727,7 +2605,7 @@ Minimum speed efficiency COP values of cooling detailed performance data if avai
**HVAC Detailed Performance Data: Cooling Maximum Speed COPs**
-Maximum speed efficiency COP values of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). At least two performance data points are required using a comma-separated list.
+Maximum speed efficiency COP values of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. At least two performance data points are required using a comma-separated list.
- **Name:** ``hvac_perf_data_cooling_max_speed_cops``
- **Type:** ``String``
@@ -2738,38 +2616,36 @@ Maximum speed efficiency COP values of cooling detailed performance data if avai
**Geothermal Loop: Configuration**
-Configuration of the geothermal loop. Only applies to ground-to-air heat pump type. If not provided, the OS-HPXML default (see Ground-to-Air Heat Pump) is used.
+Configuration of the geothermal loop. Only applies to ground-to-air heat pump type. If 'auto' or not provided, the OS-HPXML default (see Ground-to-Air Heat Pump) is used.
- **Name:** ``geothermal_loop_configuration``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `none`, `vertical`
+- **Choices:** `auto`, `none`, `vertical`
**Geothermal Loop: Borefield Configuration**
-Borefield configuration of the geothermal loop. Only applies to ground-to-air heat pump type. If not provided, the OS-HPXML default (see HPXML Geothermal Loops) is used.
+Borefield configuration of the geothermal loop. Only applies to ground-to-air heat pump type. If 'auto' or not provided, the OS-HPXML default (see HPXML Geothermal Loops) is used.
- **Name:** ``geothermal_loop_borefield_configuration``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `Rectangle`, `Open Rectangle`, `C`, `L`, `U`, `Lopsided U`
+- **Choices:** `auto`, `Rectangle`, `Open Rectangle`, `C`, `L`, `U`, `Lopsided U`
**Geothermal Loop: Loop Flow**
-Water flow rate through the geothermal loop. Only applies to ground-to-air heat pump type. If not provided, the OS-HPXML autosized default (see HPXML Geothermal Loops) is used.
+Water flow rate through the geothermal loop. Only applies to ground-to-air heat pump type. If 'auto' or not provided, the OS-HPXML default (see HPXML Geothermal Loops) is used.
- **Name:** ``geothermal_loop_loop_flow``
-- **Type:** ``Double``
-
-- **Units:** ``gpm``
+- **Type:** ``String``
- **Required:** ``false``
@@ -2777,12 +2653,10 @@ Water flow rate through the geothermal loop. Only applies to ground-to-air heat
**Geothermal Loop: Boreholes Count**
-Number of boreholes. Only applies to ground-to-air heat pump type. If not provided, the OS-HPXML autosized default (see HPXML Geothermal Loops) is used.
+Number of boreholes. Only applies to ground-to-air heat pump type. If 'auto' or not provided, the OS-HPXML default (see HPXML Geothermal Loops) is used.
- **Name:** ``geothermal_loop_boreholes_count``
-- **Type:** ``Integer``
-
-- **Units:** ``#``
+- **Type:** ``String``
- **Required:** ``false``
@@ -2790,12 +2664,10 @@ Number of boreholes. Only applies to ground-to-air heat pump type. If not provid
**Geothermal Loop: Boreholes Length**
-Average length of each borehole (vertical). Only applies to ground-to-air heat pump type. If not provided, the OS-HPXML autosized default (see HPXML Geothermal Loops) is used.
+Average length of each borehole (vertical}. Only applies to ground-to-air heat pump type. If 'auto' or not provided, the OS-HPXML default (see HPXML Geothermal Loops) is used.
- **Name:** ``geothermal_loop_boreholes_length``
-- **Type:** ``Double``
-
-- **Units:** ``ft``
+- **Type:** ``String``
- **Required:** ``false``
@@ -2803,12 +2675,10 @@ Average length of each borehole (vertical). Only applies to ground-to-air heat p
**Geothermal Loop: Boreholes Spacing**
-Distance between bores. Only applies to ground-to-air heat pump type. If not provided, the OS-HPXML default (see HPXML Geothermal Loops) is used.
+Distance between bores. Only applies to ground-to-air heat pump type. If 'auto' or not provided, the OS-HPXML default (see HPXML Geothermal Loops) is used.
- **Name:** ``geothermal_loop_boreholes_spacing``
-- **Type:** ``Double``
-
-- **Units:** ``ft``
+- **Type:** ``String``
- **Required:** ``false``
@@ -2816,12 +2686,10 @@ Distance between bores. Only applies to ground-to-air heat pump type. If not pro
**Geothermal Loop: Boreholes Diameter**
-Diameter of bores. Only applies to ground-to-air heat pump type. If not provided, the OS-HPXML default (see HPXML Geothermal Loops) is used.
+Diameter of bores. Only applies to ground-to-air heat pump type. If 'auto' or not provided, the OS-HPXML default (see HPXML Geothermal Loops) is used.
- **Name:** ``geothermal_loop_boreholes_diameter``
-- **Type:** ``Double``
-
-- **Units:** ``in``
+- **Type:** ``String``
- **Required:** ``false``
@@ -2829,51 +2697,51 @@ Diameter of bores. Only applies to ground-to-air heat pump type. If not provided
**Geothermal Loop: Grout Type**
-Grout type of the geothermal loop. Only applies to ground-to-air heat pump type. If not provided, the OS-HPXML default (see HPXML Geothermal Loops) is used.
+Grout type of the geothermal loop. Only applies to ground-to-air heat pump type. If 'auto' or not provided, the OS-HPXML default (see HPXML Geothermal Loops) is used.
- **Name:** ``geothermal_loop_grout_type``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `standard`, `thermally enhanced`
+- **Choices:** `auto`, `standard`, `thermally enhanced`
**Geothermal Loop: Pipe Type**
-Pipe type of the geothermal loop. Only applies to ground-to-air heat pump type. If not provided, the OS-HPXML default (see HPXML Geothermal Loops) is used.
+Pipe type of the geothermal loop. Only applies to ground-to-air heat pump type. If 'auto' or not provided, the OS-HPXML default (see HPXML Geothermal Loops) is used.
- **Name:** ``geothermal_loop_pipe_type``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `standard`, `thermally enhanced`
+- **Choices:** `auto`, `auto`, `standard`, `thermally enhanced`
**Geothermal Loop: Pipe Diameter**
-Pipe diameter of the geothermal loop. Only applies to ground-to-air heat pump type. If not provided, the OS-HPXML default (see HPXML Geothermal Loops) is used.
+Pipe diameter of the geothermal loop. Only applies to ground-to-air heat pump type. If 'auto' or not provided, the OS-HPXML default (see HPXML Geothermal Loops) is used.
- **Name:** ``geothermal_loop_pipe_diameter``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `3/4" pipe`, `1" pipe`, `1-1/4" pipe`
+- **Choices:** `auto`, `3/4" pipe`, `1" pipe`, `1-1/4" pipe`
**Heating System 2: Type**
-The type of the second heating system. If a heat pump is specified and the backup type is 'separate', this heating system represents 'separate' backup heating. For ducted heat pumps where the backup heating system is a 'Furnace', the backup would typically be characterized as 'integrated' in that the furnace and heat pump share the same distribution system and blower fan; a 'Furnace' as 'separate' backup to a ducted heat pump is not supported.
+The type of the second heating system. If a heat pump is specified and the backup type is 'separate', this heating system represents 'separate' backup heating. For ducted heat pumps where the backup heating system is a 'Furnace', the backup would typically be characterized as 'integrated' in that the furnace and heat pump share the same distribution system and blower fan; a 'Furnace' as 'separate' backup to a ducted heat pump is not supported. If not provided, defaults to none.
- **Name:** ``heating_system_2_type``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `none`, `Furnace`, `WallFurnace`, `FloorFurnace`, `Boiler`, `ElectricResistance`, `Stove`, `SpaceHeater`, `Fireplace`
@@ -2881,12 +2749,12 @@ The type of the second heating system. If a heat pump is specified and the backu
**Heating System 2: Fuel Type**
-The fuel type of the second heating system. Ignored for ElectricResistance.
+The fuel type of the second heating system. Ignored for ElectricResistance. If not provided, defaults to electricity.
- **Name:** ``heating_system_2_fuel``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `electricity`, `natural gas`, `fuel oil`, `propane`, `wood`, `wood pellets`, `coal`
@@ -2894,25 +2762,23 @@ The fuel type of the second heating system. Ignored for ElectricResistance.
**Heating System 2: Rated AFUE or Percent**
-The rated heating efficiency value of the second heating system.
+The rated heating efficiency value of the second heating system. If not provided, defaults to 1.
- **Name:** ``heating_system_2_heating_efficiency``
- **Type:** ``Double``
- **Units:** ``Frac``
-- **Required:** ``true``
+- **Required:** ``false``
**Heating System 2: Heating Capacity**
-The output heating capacity of the second heating system. If not provided, the OS-HPXML autosized default (see HPXML Heating Systems) is used.
+The output heating capacity of the second heating system. If 'auto' or not provided, the OS-HPXML default (see HPXML Heating Systems) is used.
- **Name:** ``heating_system_2_heating_capacity``
-- **Type:** ``Double``
-
-- **Units:** ``Btu/hr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -2944,14 +2810,14 @@ The maximum capacity limit applied to the auto-sizing methodology. If not provid
**Heating System 2: Fraction Heat Load Served**
-The heat load served fraction of the second heating system. Ignored if this heating system serves as a backup system for a heat pump.
+The heat load served fraction of the second heating system. Ignored if this heating system serves as a backup system for a heat pump. If not provided, defaults to 0.25.
- **Name:** ``heating_system_2_fraction_heat_load_served``
- **Type:** ``Double``
- **Units:** ``Frac``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -3001,7 +2867,7 @@ Specify the constant or 24-hour comma-separated weekend cooling setpoint schedul
**HVAC Control: Heating Season Period**
-Enter a date range like 'Nov 1 - Jun 30'. If not provided, the OS-HPXML default (see HPXML HVAC Control) is used. Can also provide 'BuildingAmerica' to use automatic seasons from the Building America House Simulation Protocols.
+Enter a date range like 'Nov 1 - Jun 30'. Can also provide 'BuildingAmerica' to use automatic seasons from the Building America House Simulation Protocols. If 'auto' or not provided, the OS-HPXML default (see HPXML HVAC Control) is used.
- **Name:** ``hvac_control_heating_season_period``
- **Type:** ``String``
@@ -3012,7 +2878,7 @@ Enter a date range like 'Nov 1 - Jun 30'. If not provided, the OS-HPXML default
**HVAC Control: Cooling Season Period**
-Enter a date range like 'Jun 1 - Oct 31'. If not provided, the OS-HPXML default (see HPXML HVAC Control) is used. Can also provide 'BuildingAmerica' to use automatic seasons from the Building America House Simulation Protocols.
+Enter a date range like 'Jun 1 - Oct 31'. Can also provide 'BuildingAmerica' to use automatic seasons from the Building America House Simulation Protocols. If 'auto' or not provided, the OS-HPXML default (see HPXML HVAC Control) is used.
- **Name:** ``hvac_control_cooling_season_period``
- **Type:** ``String``
@@ -3023,12 +2889,10 @@ Enter a date range like 'Jun 1 - Oct 31'. If not provided, the OS-HPXML default
**HVAC Blower: Fan Efficiency**
-The blower fan efficiency at maximum fan speed. Applies only to split (not packaged) systems (i.e., applies to ducted systems as well as ductless mini-split systems). If not provided, the OS-HPXML default (see HPXML Heating Systems, HPXML Cooling Systems, HPXML Heat Pumps) is used.
+The blower fan efficiency at maximum fan speed. Applies only to split (not packaged} systems (i.e., applies to ducted systems as well as ductless mini-split systems}. If 'auto' or not provided, the OS-HPXML default (see HPXML Heating Systems, HPXML Cooling Systems, HPXML Heat Pumps) is used.
- **Name:** ``hvac_blower_fan_watts_per_cfm``
-- **Type:** ``Double``
-
-- **Units:** ``W/CFM``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3041,7 +2905,7 @@ The leakage units of the ducts.
- **Name:** ``ducts_leakage_units``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `CFM25`, `CFM50`, `Percent`
@@ -3054,20 +2918,20 @@ The leakage value to outside for the supply ducts.
- **Name:** ``ducts_supply_leakage_to_outside_value``
- **Type:** ``Double``
-- **Required:** ``true``
+- **Required:** ``false``
**Ducts: Supply Location**
-The location of the supply ducts. If not provided, the OS-HPXML default (see Air Distribution) is used.
+The location of the supply ducts. If 'auto' or not provided, the OS-HPXML default (see Air Distribution) is used.
- **Name:** ``ducts_supply_location``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `conditioned space`, `basement - conditioned`, `basement - unconditioned`, `crawlspace`, `crawlspace - vented`, `crawlspace - unvented`, `crawlspace - conditioned`, `attic`, `attic - vented`, `attic - unvented`, `garage`, `exterior wall`, `under slab`, `roof deck`, `outside`, `other housing unit`, `other heated space`, `other multifamily buffer space`, `other non-freezing space`, `manufactured home belly`
+- **Choices:** `auto`, `conditioned space`, `basement - conditioned`, `basement - unconditioned`, `crawlspace`, `crawlspace - vented`, `crawlspace - unvented`, `crawlspace - conditioned`, `attic`, `attic - vented`, `attic - unvented`, `garage`, `exterior wall`, `under slab`, `roof deck`, `outside`, `other housing unit`, `other heated space`, `other multifamily buffer space`, `other non-freezing space`, `manufactured home belly`
@@ -3080,31 +2944,29 @@ The nominal insulation r-value of the supply ducts excluding air films. Use 0 fo
- **Units:** ``h-ft^2-R/Btu``
-- **Required:** ``true``
+- **Required:** ``false``
**Ducts: Supply Buried Insulation Level**
-Whether the supply ducts are buried in, e.g., attic loose-fill insulation. Partially buried ducts have insulation that does not cover the top of the ducts. Fully buried ducts have insulation that just covers the top of the ducts. Deeply buried ducts have insulation that continues above the top of the ducts.
+Whether the supply ducts are buried in, e.g., attic loose-fill insulation. Partially buried ducts have insulation that does not cover the top of the ducts. Fully buried ducts have insulation that just covers the top of the ducts. Deeply buried ducts have insulation that continues above the top of the ducts. If 'auto' or not provided, the OS-HPXML default (see Air Distribution) is used.
- **Name:** ``ducts_supply_buried_insulation_level``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `not buried`, `partially buried`, `fully buried`, `deeply buried`
+- **Choices:** `auto`, `not buried`, `partially buried`, `fully buried`, `deeply buried`
**Ducts: Supply Surface Area**
-The supply ducts surface area in the given location. If neither Surface Area nor Area Fraction provided, the OS-HPXML default (see Air Distribution) is used.
+The supply ducts surface area in the given location. If 'auto' or not provided, the OS-HPXML default (see Air Distribution) is used.
- **Name:** ``ducts_supply_surface_area``
-- **Type:** ``Double``
-
-- **Units:** ``ft^2``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3112,12 +2974,10 @@ The supply ducts surface area in the given location. If neither Surface Area nor
**Ducts: Supply Area Fraction**
-The fraction of supply ducts surface area in the given location. Only used if Surface Area is not provided. If the fraction is less than 1, the remaining duct area is assumed to be in conditioned space. If neither Surface Area nor Area Fraction provided, the OS-HPXML default (see Air Distribution) is used.
+The fraction of supply ducts surface area in the given location. Only used if Surface Area is not provided. If the fraction is less than 1, the remaining duct area is assumed to be in conditioned space. If 'auto' or not provided, the OS-HPXML default (see Air Distribution) is used.
- **Name:** ``ducts_supply_surface_area_fraction``
-- **Type:** ``Double``
-
-- **Units:** ``frac``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3125,12 +2985,10 @@ The fraction of supply ducts surface area in the given location. Only used if Su
**Ducts: Supply Fraction Rectangular**
-The fraction of supply ducts that are rectangular (as opposed to round); this affects the duct effective R-value used for modeling. If not provided, the OS-HPXML default (see Air Distribution) is used.
+The fraction of supply ducts that are rectangular (as opposed to round}; this affects the duct effective R-value used for modeling. If 'auto' or not provided, the OS-HPXML default (see Air Distribution) is used.
- **Name:** ``ducts_supply_fraction_rectangular``
-- **Type:** ``Double``
-
-- **Units:** ``frac``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3143,20 +3001,20 @@ The leakage value to outside for the return ducts.
- **Name:** ``ducts_return_leakage_to_outside_value``
- **Type:** ``Double``
-- **Required:** ``true``
+- **Required:** ``false``
**Ducts: Return Location**
-The location of the return ducts. If not provided, the OS-HPXML default (see Air Distribution) is used.
+The location of the return ducts. If 'auto' or not provided, the OS-HPXML default (see Air Distribution) is used.
- **Name:** ``ducts_return_location``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `conditioned space`, `basement - conditioned`, `basement - unconditioned`, `crawlspace`, `crawlspace - vented`, `crawlspace - unvented`, `crawlspace - conditioned`, `attic`, `attic - vented`, `attic - unvented`, `garage`, `exterior wall`, `under slab`, `roof deck`, `outside`, `other housing unit`, `other heated space`, `other multifamily buffer space`, `other non-freezing space`, `manufactured home belly`
+- **Choices:** `auto`, `auto`, `conditioned space`, `basement - conditioned`, `basement - unconditioned`, `crawlspace`, `crawlspace - vented`, `crawlspace - unvented`, `crawlspace - conditioned`, `attic`, `attic - vented`, `attic - unvented`, `garage`, `exterior wall`, `under slab`, `roof deck`, `outside`, `other housing unit`, `other heated space`, `other multifamily buffer space`, `other non-freezing space`, `manufactured home belly`
@@ -3169,31 +3027,29 @@ The nominal insulation r-value of the return ducts excluding air films. Use 0 fo
- **Units:** ``h-ft^2-R/Btu``
-- **Required:** ``true``
+- **Required:** ``false``
**Ducts: Return Buried Insulation Level**
-Whether the return ducts are buried in, e.g., attic loose-fill insulation. Partially buried ducts have insulation that does not cover the top of the ducts. Fully buried ducts have insulation that just covers the top of the ducts. Deeply buried ducts have insulation that continues above the top of the ducts.
+Whether the return ducts are buried in, e.g., attic loose-fill insulation. Partially buried ducts have insulation that does not cover the top of the ducts. Fully buried ducts have insulation that just covers the top of the ducts. Deeply buried ducts have insulation that continues above the top of the ducts. If 'auto' or not provided, the OS-HPXML default (see Air Distribution) is used.
- **Name:** ``ducts_return_buried_insulation_level``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `not buried`, `partially buried`, `fully buried`, `deeply buried`
+- **Choices:** `auto`, `auto`, `not buried`, `partially buried`, `fully buried`, `deeply buried`
**Ducts: Return Surface Area**
-The return ducts surface area in the given location. If neither Surface Area nor Area Fraction provided, the OS-HPXML default (see Air Distribution) is used.
+The return ducts surface area in the given location. If 'auto' or not provided, the OS-HPXML default (see Air Distribution) is used.
- **Name:** ``ducts_return_surface_area``
-- **Type:** ``Double``
-
-- **Units:** ``ft^2``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3201,12 +3057,10 @@ The return ducts surface area in the given location. If neither Surface Area nor
**Ducts: Return Area Fraction**
-The fraction of return ducts surface area in the given location. Only used if Surface Area is not provided. If the fraction is less than 1, the remaining duct area is assumed to be in conditioned space. If neither Surface Area nor Area Fraction provided, the OS-HPXML default (see Air Distribution) is used.
+The fraction of return ducts surface area in the given location. Only used if Surface Area is not provided. If the fraction is less than 1, the remaining duct area is assumed to be in conditioned space. If 'auto' or not provided, the OS-HPXML default (see Air Distribution) is used.
- **Name:** ``ducts_return_surface_area_fraction``
-- **Type:** ``Double``
-
-- **Units:** ``frac``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3214,12 +3068,10 @@ The fraction of return ducts surface area in the given location. Only used if Su
**Ducts: Number of Return Registers**
-The number of return registers of the ducts. Only used to calculate default return duct surface area. If not provided, the OS-HPXML default (see Air Distribution) is used.
+The number of return registers of the ducts. Only used to calculate default return duct surface area. If 'auto' or not provided, the OS-HPXML default (see Air Distribution) is used.
- **Name:** ``ducts_number_of_return_registers``
-- **Type:** ``Integer``
-
-- **Units:** ``#``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3227,12 +3079,10 @@ The number of return registers of the ducts. Only used to calculate default retu
**Ducts: Return Fraction Rectangular**
-The fraction of return ducts that are rectangular (as opposed to round); this affects the duct effective R-value used for modeling. If not provided, the OS-HPXML default (see Air Distribution) is used.
+The fraction of return ducts that are rectangular (as opposed to round}; this affects the duct effective R-value used for modeling. If 'auto' or not provided, the OS-HPXML default (see Air Distribution) is used.
- **Name:** ``ducts_return_fraction_rectangular``
-- **Type:** ``Double``
-
-- **Units:** ``frac``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3240,12 +3090,12 @@ The fraction of return ducts that are rectangular (as opposed to round); this af
**Mechanical Ventilation: Fan Type**
-The type of the mechanical ventilation. Use 'none' if there is no mechanical ventilation system.
+The type of the mechanical ventilation. Use 'none' if there is no mechanical ventilation system. If not provided, defaults to none.
- **Name:** ``mech_vent_fan_type``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `none`, `exhaust only`, `supply only`, `energy recovery ventilator`, `heat recovery ventilator`, `balanced`, `central fan integrated supply`
@@ -3253,12 +3103,10 @@ The type of the mechanical ventilation. Use 'none' if there is no mechanical ven
**Mechanical Ventilation: Flow Rate**
-The flow rate of the mechanical ventilation. If not provided, the OS-HPXML default (see HPXML Mechanical Ventilation Fans) is used.
+The flow rate of the mechanical ventilation. If 'auto' or not provided, the OS-HPXML default (see HPXML Mechanical Ventilation Fans) is used.
- **Name:** ``mech_vent_flow_rate``
-- **Type:** ``Double``
-
-- **Units:** ``CFM``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3266,12 +3114,10 @@ The flow rate of the mechanical ventilation. If not provided, the OS-HPXML defau
**Mechanical Ventilation: Hours In Operation**
-The hours in operation of the mechanical ventilation. If not provided, the OS-HPXML default (see HPXML Mechanical Ventilation Fans) is used.
+The hours in operation of the mechanical ventilation. If 'auto' or not provided, the OS-HPXML default (see HPXML Mechanical Ventilation Fans) is used.
- **Name:** ``mech_vent_hours_in_operation``
-- **Type:** ``Double``
-
-- **Units:** ``hrs/day``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3284,7 +3130,7 @@ The total recovery efficiency type of the mechanical ventilation.
- **Name:** ``mech_vent_recovery_efficiency_type``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `Unadjusted`, `Adjusted`
@@ -3292,38 +3138,36 @@ The total recovery efficiency type of the mechanical ventilation.
**Mechanical Ventilation: Total Recovery Efficiency**
-The Unadjusted or Adjusted total recovery efficiency of the mechanical ventilation. Applies to energy recovery ventilator.
+The Unadjusted or Adjusted total recovery efficiency of the mechanical ventilation. Applies to energy recovery ventilator. If not provided, defaults to Unadjusted total recovery efficiency of 0.48.
- **Name:** ``mech_vent_total_recovery_efficiency``
- **Type:** ``Double``
- **Units:** ``Frac``
-- **Required:** ``true``
+- **Required:** ``false``
**Mechanical Ventilation: Sensible Recovery Efficiency**
-The Unadjusted or Adjusted sensible recovery efficiency of the mechanical ventilation. Applies to energy recovery ventilator and heat recovery ventilator.
+The Unadjusted or Adjusted sensible recovery efficiency of the mechanical ventilation. Applies to energy recovery ventilator and heat recovery ventilator. If not provided, defaults to Unadjusted sensible recovery efficiency of 0.72.
- **Name:** ``mech_vent_sensible_recovery_efficiency``
- **Type:** ``Double``
- **Units:** ``Frac``
-- **Required:** ``true``
+- **Required:** ``false``
**Mechanical Ventilation: Fan Power**
-The fan power of the mechanical ventilation. If not provided, the OS-HPXML default (see HPXML Mechanical Ventilation Fans) is used.
+The fan power of the mechanical ventilation. If 'auto' or not provided, the OS-HPXML default (see HPXML Mechanical Ventilation Fans) is used.
- **Name:** ``mech_vent_fan_power``
-- **Type:** ``Double``
-
-- **Units:** ``W``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3338,7 +3182,7 @@ Number of dwelling units served by the mechanical ventilation system. Must be 1
- **Units:** ``#``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -3435,12 +3279,12 @@ Fraction of cooling load introduced by the shared ventilation system that is met
**Mechanical Ventilation 2: Fan Type**
-The type of the second mechanical ventilation. Use 'none' if there is no second mechanical ventilation system.
+The type of the second mechanical ventilation. Use 'none' if there is no second mechanical ventilation system. If not provided, defaults to none.
- **Name:** ``mech_vent_2_fan_type``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `none`, `exhaust only`, `supply only`, `energy recovery ventilator`, `heat recovery ventilator`, `balanced`
@@ -3455,7 +3299,7 @@ The flow rate of the second mechanical ventilation.
- **Units:** ``CFM``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -3468,7 +3312,7 @@ The hours in operation of the second mechanical ventilation.
- **Units:** ``hrs/day``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -3479,7 +3323,7 @@ The total recovery efficiency type of the second mechanical ventilation.
- **Name:** ``mech_vent_2_recovery_efficiency_type``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `Unadjusted`, `Adjusted`
@@ -3494,7 +3338,7 @@ The Unadjusted or Adjusted total recovery efficiency of the second mechanical ve
- **Units:** ``Frac``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -3507,7 +3351,7 @@ The Unadjusted or Adjusted sensible recovery efficiency of the second mechanical
- **Units:** ``Frac``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -3520,18 +3364,16 @@ The fan power of the second mechanical ventilation.
- **Units:** ``W``
-- **Required:** ``true``
+- **Required:** ``false``
**Kitchen Fans: Quantity**
-The quantity of the kitchen fans. If not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.
+The quantity of the kitchen fans. If 'auto' or not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.
- **Name:** ``kitchen_fans_quantity``
-- **Type:** ``Integer``
-
-- **Units:** ``#``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3539,12 +3381,10 @@ The quantity of the kitchen fans. If not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.
+The flow rate of the kitchen fan. If 'auto' or not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.
- **Name:** ``kitchen_fans_flow_rate``
-- **Type:** ``Double``
-
-- **Units:** ``CFM``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3552,12 +3392,10 @@ The flow rate of the kitchen fan. If not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.
+The hours in operation of the kitchen fan. If 'auto' or not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.
- **Name:** ``kitchen_fans_hours_in_operation``
-- **Type:** ``Double``
-
-- **Units:** ``hrs/day``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3565,12 +3403,10 @@ The hours in operation of the kitchen fan. If not provided, the OS-HPXML default
**Kitchen Fans: Fan Power**
-The fan power of the kitchen fan. If not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.
+The fan power of the kitchen fan. If 'auto' or not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.
- **Name:** ``kitchen_fans_power``
-- **Type:** ``Double``
-
-- **Units:** ``W``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3578,12 +3414,10 @@ The fan power of the kitchen fan. If not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.
+The start hour of the kitchen fan. If 'auto' or not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.
- **Name:** ``kitchen_fans_start_hour``
-- **Type:** ``Integer``
-
-- **Units:** ``hr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3591,12 +3425,10 @@ The start hour of the kitchen fan. If not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.
+The quantity of the bathroom fans. If 'auto' or not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.
- **Name:** ``bathroom_fans_quantity``
-- **Type:** ``Integer``
-
-- **Units:** ``#``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3604,12 +3436,10 @@ The quantity of the bathroom fans. If not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.
+The flow rate of the bathroom fans. If 'auto' or not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.
- **Name:** ``bathroom_fans_flow_rate``
-- **Type:** ``Double``
-
-- **Units:** ``CFM``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3617,12 +3447,10 @@ The flow rate of the bathroom fans. If not provided, the OS-HPXML default (see <
**Bathroom Fans: Hours In Operation**
-The hours in operation of the bathroom fans. If not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.
+The hours in operation of the bathroom fans. If 'auto' or not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.
- **Name:** ``bathroom_fans_hours_in_operation``
-- **Type:** ``Double``
-
-- **Units:** ``hrs/day``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3630,12 +3458,10 @@ The hours in operation of the bathroom fans. If not provided, the OS-HPXML defau
**Bathroom Fans: Fan Power**
-The fan power of the bathroom fans. If not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.
+The fan power of the bathroom fans. If 'auto' or not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.
- **Name:** ``bathroom_fans_power``
-- **Type:** ``Double``
-
-- **Units:** ``W``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3643,12 +3469,10 @@ The fan power of the bathroom fans. If not provided, the OS-HPXML default (see <
**Bathroom Fans: Start Hour**
-The start hour of the bathroom fans. If not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.
+The start hour of the bathroom fans. If 'auto' or not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.
- **Name:** ``bathroom_fans_start_hour``
-- **Type:** ``Integer``
-
-- **Units:** ``hr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3661,18 +3485,16 @@ Whether there is a whole house fan.
- **Name:** ``whole_house_fan_present``
- **Type:** ``Boolean``
-- **Required:** ``true``
+- **Required:** ``false``
**Whole House Fan: Flow Rate**
-The flow rate of the whole house fan. If not provided, the OS-HPXML default (see HPXML Whole House Fans) is used.
+The flow rate of the whole house fan. If 'auto' or not provided, the OS-HPXML default (see HPXML Whole House Fans) is used.
- **Name:** ``whole_house_fan_flow_rate``
-- **Type:** ``Double``
-
-- **Units:** ``CFM``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3680,12 +3502,10 @@ The flow rate of the whole house fan. If not provided, the OS-HPXML default (see
**Whole House Fan: Fan Power**
-The fan power of the whole house fan. If not provided, the OS-HPXML default (see HPXML Whole House Fans) is used.
+The fan power of the whole house fan. If 'auto' or not provided, the OS-HPXML default (see HPXML Whole House Fans) is used.
- **Name:** ``whole_house_fan_power``
-- **Type:** ``Double``
-
-- **Units:** ``W``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3711,7 +3531,7 @@ The fuel type of water heater. Ignored for heat pump water heater.
- **Name:** ``water_heater_fuel_type``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `electricity`, `natural gas`, `fuel oil`, `propane`, `wood`, `coal`
@@ -3719,25 +3539,23 @@ The fuel type of water heater. Ignored for heat pump water heater.
**Water Heater: Location**
-The location of water heater. If not provided, the OS-HPXML default (see HPXML Water Heating Systems) is used.
+The location of water heater. If 'auto' or not provided, the OS-HPXML default (see HPXML Water Heating Systems) is used.
- **Name:** ``water_heater_location``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `conditioned space`, `basement - conditioned`, `basement - unconditioned`, `garage`, `attic`, `attic - vented`, `attic - unvented`, `crawlspace`, `crawlspace - vented`, `crawlspace - unvented`, `crawlspace - conditioned`, `other exterior`, `other housing unit`, `other heated space`, `other multifamily buffer space`, `other non-freezing space`
+- **Choices:** `auto`, `conditioned space`, `basement - conditioned`, `basement - unconditioned`, `garage`, `attic`, `attic - vented`, `attic - unvented`, `crawlspace`, `crawlspace - vented`, `crawlspace - unvented`, `crawlspace - conditioned`, `other exterior`, `other housing unit`, `other heated space`, `other multifamily buffer space`, `other non-freezing space`
**Water Heater: Tank Volume**
-Nominal volume of water heater tank. If not provided, the OS-HPXML default (see Conventional Storage, Heat Pump, Combi Boiler w/ Storage) is used.
+Nominal volume of water heater tank. If 'auto' or not provided, the OS-HPXML default (see Conventional Storage, Heat Pump, Combi Boiler w/ Storage) is used.
- **Name:** ``water_heater_tank_volume``
-- **Type:** ``Double``
-
-- **Units:** ``gal``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3750,7 +3568,7 @@ The efficiency type of water heater. Does not apply to space-heating boilers.
- **Name:** ``water_heater_efficiency_type``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `EnergyFactor`, `UniformEnergyFactor`
@@ -3763,31 +3581,29 @@ Rated Energy Factor or Uniform Energy Factor. Does not apply to space-heating bo
- **Name:** ``water_heater_efficiency``
- **Type:** ``Double``
-- **Required:** ``true``
+- **Required:** ``false``
**Water Heater: Usage Bin**
-The usage of the water heater. Only applies if Efficiency Type is UniformEnergyFactor and Type is not instantaneous water heater. Does not apply to space-heating boilers. If not provided, the OS-HPXML default (see Conventional Storage, Heat Pump) is used.
+The usage of the water heater. Only applies if Efficiency Type is UniformEnergyFactor and Type is not instantaneous water heater. Does not apply to space-heating boilers. If 'auto' or not provided, the OS-HPXML default (see Conventional Storage, Heat Pump) is used.
- **Name:** ``water_heater_usage_bin``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `very small`, `low`, `medium`, `high`
+- **Choices:** `auto`, `very small`, `low`, `medium`, `high`
**Water Heater: Recovery Efficiency**
-Ratio of energy delivered to water heater to the energy content of the fuel consumed by the water heater. Only used for non-electric storage water heaters. If not provided, the OS-HPXML default (see Conventional Storage) is used.
+Ratio of energy delivered to water heater to the energy content of the fuel consumed by the water heater. Only used for non-electric storage water heaters. If 'auto' or not provided, the OS-HPXML default (see Conventional Storage) is used.
- **Name:** ``water_heater_recovery_efficiency``
-- **Type:** ``Double``
-
-- **Units:** ``Frac``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3795,12 +3611,10 @@ Ratio of energy delivered to water heater to the energy content of the fuel cons
**Water Heater: Heating Capacity**
-Heating capacity. Only applies to storage water heater and heat pump water heater (compressor). If not provided, the OS-HPXML default (see Conventional Storage, Heat Pump) is used.
+Heating capacity. Only applies to storage water heater and heat pump water heater (compressor}. If 'auto' or not provided, the OS-HPXML default (see Conventional Storage, Heat Pump) is used.
- **Name:** ``water_heater_heating_capacity``
-- **Type:** ``Double``
-
-- **Units:** ``Btu/hr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3808,12 +3622,10 @@ Heating capacity. Only applies to storage water heater and heat pump water heate
**Water Heater: Backup Heating Capacity**
-Backup heating capacity for a heat pump water heater. If not provided, the OS-HPXML default (see Heat Pump) is used.
+Backup heating capacity for a heat pump water heater. If 'auto' or not provided, the OS-HPXML default (see Heat Pump) is used.
- **Name:** ``water_heater_backup_heating_capacity``
-- **Type:** ``Double``
-
-- **Units:** ``Btu/hr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3821,12 +3633,10 @@ Backup heating capacity for a heat pump water heater. If not provided, the OS-HP
**Water Heater: Standby Loss**
-The standby loss of water heater. Only applies to space-heating boilers. If not provided, the OS-HPXML default (see Combi Boiler w/ Storage) is used.
+The standby loss of water heater. Only applies to space-heating boilers. If 'auto' or not provided, the OS-HPXML default (see Combi Boiler w/ Storage) is used.
- **Name:** ``water_heater_standby_loss``
-- **Type:** ``Double``
-
-- **Units:** ``F/hr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3847,12 +3657,10 @@ The jacket R-value of water heater. Doesn't apply to instantaneous water heater
**Water Heater: Setpoint Temperature**
-The setpoint temperature of water heater. If not provided, the OS-HPXML default (see HPXML Water Heating Systems) is used.
+The setpoint temperature of water heater. If 'auto' or not provided, the OS-HPXML default (see HPXML Water Heating Systems) is used.
- **Name:** ``water_heater_setpoint_temperature``
-- **Type:** ``Double``
-
-- **Units:** ``F``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3860,7 +3668,7 @@ The setpoint temperature of water heater. If not provided, the OS-HPXML default
**Water Heater: Number of Bedrooms Served**
-Number of bedrooms served (directly or indirectly) by the water heater. Only needed if single-family attached or apartment unit and it is a shared water heater serving multiple dwelling units. Used to apportion water heater tank losses to the unit.
+Number of bedrooms served (directly or indirectly} by the water heater. Only needed if single-family attached or apartment unit and it is a shared water heater serving multiple dwelling units. Used to apportion water heater tank losses to the unit.
- **Name:** ``water_heater_num_bedrooms_served``
- **Type:** ``Integer``
@@ -3884,27 +3692,27 @@ Requires that the dwelling unit has a air-to-air, mini-split, or ground-to-air h
**Water Heater: Tank Type**
-Type of tank model to use. The 'stratified' tank generally provide more accurate results, but may significantly increase run time. Applies only to storage water heater. If not provided, the OS-HPXML default (see Conventional Storage) is used.
+Type of tank model to use. The 'stratified' tank generally provide more accurate results, but may significantly increase run time. Applies only to storage water heater. If 'auto' or not provided, the OS-HPXML default (see Conventional Storage) is used.
- **Name:** ``water_heater_tank_model_type``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `mixed`, `stratified`
+- **Choices:** `auto`, `mixed`, `stratified`
**Water Heater: Operating Mode**
-The water heater operating mode. The 'heat pump only' option only uses the heat pump, while 'hybrid/auto' allows the backup electric resistance to come on in high demand situations. This is ignored if a scheduled operating mode type is selected. Applies only to heat pump water heater. If not provided, the OS-HPXML default (see Heat Pump) is used.
+The water heater operating mode. The 'heat pump only' option only uses the heat pump, while 'hybrid/auto' allows the backup electric resistance to come on in high demand situations. This is ignored if a scheduled operating mode type is selected. Applies only to heat pump water heater. If 'auto' or not provided, the OS-HPXML default (see Heat Pump) is used.
- **Name:** ``water_heater_operating_mode``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `hybrid/auto`, `heat pump only`
+- **Choices:** `auto`, `hybrid/auto`, `heat pump only`
@@ -3923,12 +3731,10 @@ The type of the hot water distribution system.
**Hot Water Distribution: Standard Piping Length**
-If the distribution system is Standard, the length of the piping. If not provided, the OS-HPXML default (see Standard) is used.
+If the distribution system is Standard, the length of the piping. If 'auto' or not provided, the OS-HPXML default (see Standard) is used.
- **Name:** ``hot_water_distribution_standard_piping_length``
-- **Type:** ``Double``
-
-- **Units:** ``ft``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3949,12 +3755,10 @@ If the distribution system is Recirculation, the type of hot water recirculation
**Hot Water Distribution: Recirculation Piping Length**
-If the distribution system is Recirculation, the length of the recirculation piping. If not provided, the OS-HPXML default (see Recirculation (In-Unit)) is used.
+If the distribution system is Recirculation, the length of the recirculation piping. If 'auto' or not provided, the OS-HPXML default (see Recirculation (In-Unit}) is used.
- **Name:** ``hot_water_distribution_recirc_piping_length``
-- **Type:** ``Double``
-
-- **Units:** ``ft``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3962,12 +3766,10 @@ If the distribution system is Recirculation, the length of the recirculation pip
**Hot Water Distribution: Recirculation Branch Piping Length**
-If the distribution system is Recirculation, the length of the recirculation branch piping. If not provided, the OS-HPXML default (see Recirculation (In-Unit)) is used.
+If the distribution system is Recirculation, the length of the recirculation branch piping. If 'auto' or not provided, the OS-HPXML default (see Recirculation (In-Unit}) is used.
- **Name:** ``hot_water_distribution_recirc_branch_piping_length``
-- **Type:** ``Double``
-
-- **Units:** ``ft``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3975,12 +3777,10 @@ If the distribution system is Recirculation, the length of the recirculation bra
**Hot Water Distribution: Recirculation Pump Power**
-If the distribution system is Recirculation, the recirculation pump power. If not provided, the OS-HPXML default (see Recirculation (In-Unit)) is used.
+If the distribution system is Recirculation, the recirculation pump power. If 'auto' or not provided, the OS-HPXML default (see Recirculation (In-Unit}) is used.
- **Name:** ``hot_water_distribution_recirc_pump_power``
-- **Type:** ``Double``
-
-- **Units:** ``W``
+- **Type:** ``String``
- **Required:** ``false``
@@ -3988,12 +3788,10 @@ If the distribution system is Recirculation, the recirculation pump power. If no
**Hot Water Distribution: Pipe Insulation Nominal R-Value**
-Nominal R-value of the pipe insulation. If not provided, the OS-HPXML default (see HPXML Hot Water Distribution) is used.
+Nominal R-value of the pipe insulation. If 'auto' or not provided, the OS-HPXML default (see HPXML Hot Water Distribution) is used.
- **Name:** ``hot_water_distribution_pipe_r``
-- **Type:** ``Double``
-
-- **Units:** ``h-ft^2-R/Btu``
+- **Type:** ``String``
- **Required:** ``false``
@@ -4006,7 +3804,7 @@ Which facilities are connected for the drain water heat recovery. Use 'none' if
- **Name:** ``dwhr_facilities_connected``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `none`, `one`, `all`
@@ -4038,32 +3836,32 @@ The efficiency of the drain water heat recovery.
**Hot Water Fixtures: Is Shower Low Flow**
-Whether the shower fixture is low flow.
+Whether the shower fixture is low flow. If not provided, defaults to false.
- **Name:** ``water_fixtures_shower_low_flow``
- **Type:** ``Boolean``
-- **Required:** ``true``
+- **Required:** ``false``
**Hot Water Fixtures: Is Sink Low Flow**
-Whether the sink fixture is low flow.
+Whether the sink fixture is low flow. If not provided, defaults to false.
- **Name:** ``water_fixtures_sink_low_flow``
- **Type:** ``Boolean``
-- **Required:** ``true``
+- **Required:** ``false``
**Hot Water Fixtures: Usage Multiplier**
-Multiplier on the hot water usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Water Fixtures) is used.
+Multiplier on the hot water usage that can reflect, e.g., high/low usage occupants. If 'auto' or not provided, the OS-HPXML default (see HPXML Water Fixtures) is used.
- **Name:** ``water_fixtures_usage_multiplier``
-- **Type:** ``Double``
+- **Type:** ``String``
- **Required:** ``false``
@@ -4071,10 +3869,10 @@ Multiplier on the hot water usage that can reflect, e.g., high/low usage occupan
**General Water Use: Usage Multiplier**
-Multiplier on internal gains from general water use (floor mopping, shower evaporation, water films on showers, tubs & sinks surfaces, plant watering, etc.) that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Building Occupancy) is used.
+Multiplier on internal gains from general water use (floor mopping, shower evaporation, water films on showers, tubs & sinks surfaces, plant watering, etc.} that can reflect, e.g., high/low usage occupants. If 'auto' or not provided, the OS-HPXML default (see HPXML Building Occupancy) is used.
- **Name:** ``general_water_use_usage_multiplier``
-- **Type:** ``Double``
+- **Type:** ``String``
- **Required:** ``false``
@@ -4087,7 +3885,7 @@ The type of solar thermal system. Use 'none' if there is no solar thermal system
- **Name:** ``solar_thermal_system_type``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `none`, `hot water`
@@ -4102,7 +3900,7 @@ The collector area of the solar thermal system.
- **Units:** ``ft^2``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -4113,7 +3911,7 @@ The collector loop type of the solar thermal system.
- **Name:** ``solar_thermal_collector_loop_type``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `liquid direct`, `liquid indirect`, `passive thermosyphon`
@@ -4126,7 +3924,7 @@ The collector type of the solar thermal system.
- **Name:** ``solar_thermal_collector_type``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `evacuated tube`, `single glazing black`, `double glazing black`, `integrated collector storage`
@@ -4134,14 +3932,14 @@ The collector type of the solar thermal system.
**Solar Thermal: Collector Azimuth**
-The collector azimuth of the solar thermal system. Azimuth is measured clockwise from north (e.g., North=0, East=90, South=180, West=270).
+The collector azimuth of the solar thermal system. Azimuth is measured clockwise from north (e.g., North=0, East=90, South=180, West=270}.
- **Name:** ``solar_thermal_collector_azimuth``
- **Type:** ``Double``
- **Units:** ``degrees``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -4152,7 +3950,7 @@ The collector tilt of the solar thermal system. Can also enter, e.g., RoofPitch,
- **Name:** ``solar_thermal_collector_tilt``
- **Type:** ``String``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -4165,7 +3963,7 @@ The collector rated optical efficiency of the solar thermal system.
- **Units:** ``Frac``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -4178,18 +3976,16 @@ The collector rated thermal losses of the solar thermal system.
- **Units:** ``Btu/hr-ft^2-R``
-- **Required:** ``true``
+- **Required:** ``false``
**Solar Thermal: Storage Volume**
-The storage volume of the solar thermal system. If not provided, the OS-HPXML default (see Detailed Inputs) is used.
+The storage volume of the solar thermal system. If 'auto' or not provided, the OS-HPXML default (see Detailed Inputs) is used.
- **Name:** ``solar_thermal_storage_volume``
-- **Type:** ``Double``
-
-- **Units:** ``gal``
+- **Type:** ``String``
- **Required:** ``false``
@@ -4204,70 +4000,70 @@ The solar fraction of the solar thermal system. If provided, overrides all other
- **Units:** ``Frac``
-- **Required:** ``true``
+- **Required:** ``false``
**PV System: Present**
-Whether there is a PV system present.
+Whether there is a PV system present. If not provided, defaults to false.
- **Name:** ``pv_system_present``
- **Type:** ``Boolean``
-- **Required:** ``true``
+- **Required:** ``false``
**PV System: Module Type**
-Module type of the PV system. If not provided, the OS-HPXML default (see HPXML Photovoltaics) is used.
+Module type of the PV system. If 'auto' or not provided, the OS-HPXML default (see HPXML Photovoltaics) is used.
- **Name:** ``pv_system_module_type``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `standard`, `premium`, `thin film`
+- **Choices:** `auto`, `standard`, `premium`, `thin film`
**PV System: Location**
-Location of the PV system. If not provided, the OS-HPXML default (see HPXML Photovoltaics) is used.
+Location of the PV system. If 'auto' or not provided, the OS-HPXML default (see HPXML Photovoltaics) is used.
- **Name:** ``pv_system_location``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `roof`, `ground`
+- **Choices:** `auto`, `roof`, `ground`
**PV System: Tracking**
-Type of tracking for the PV system. If not provided, the OS-HPXML default (see HPXML Photovoltaics) is used.
+Type of tracking for the PV system. If 'auto' or not provided, the OS-HPXML default (see HPXML Photovoltaics) is used.
- **Name:** ``pv_system_tracking``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `fixed`, `1-axis`, `1-axis backtracked`, `2-axis`
+- **Choices:** `auto`, `fixed`, `1-axis`, `1-axis backtracked`, `2-axis`
**PV System: Array Azimuth**
-Array azimuth of the PV system. Azimuth is measured clockwise from north (e.g., North=0, East=90, South=180, West=270).
+Array azimuth of the PV system. Azimuth is measured clockwise from north (e.g., North=0, East=90, South=180, West=270}.
- **Name:** ``pv_system_array_azimuth``
- **Type:** ``Double``
- **Units:** ``degrees``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -4278,7 +4074,7 @@ Array tilt of the PV system. Can also enter, e.g., RoofPitch, RoofPitch+20, Lati
- **Name:** ``pv_system_array_tilt``
- **Type:** ``String``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -4291,18 +4087,16 @@ Maximum power output of the PV system. For a shared system, this is the total bu
- **Units:** ``W``
-- **Required:** ``true``
+- **Required:** ``false``
**PV System: Inverter Efficiency**
-Inverter efficiency of the PV system. If there are two PV systems, this will apply to both. If not provided, the OS-HPXML default (see HPXML Photovoltaics) is used.
+Inverter efficiency of the PV system. If there are two PV systems, this will apply to both. If 'auto' or not provided, the OS-HPXML default (see HPXML Photovoltaics) is used.
- **Name:** ``pv_system_inverter_efficiency``
-- **Type:** ``Double``
-
-- **Units:** ``Frac``
+- **Type:** ``String``
- **Required:** ``false``
@@ -4310,12 +4104,10 @@ Inverter efficiency of the PV system. If there are two PV systems, this will app
**PV System: System Losses Fraction**
-System losses fraction of the PV system. If there are two PV systems, this will apply to both. If not provided, the OS-HPXML default (see HPXML Photovoltaics) is used.
+System losses fraction of the PV system. If there are two PV systems, this will apply to both. If 'auto' or not provided, the OS-HPXML default (see HPXML Photovoltaics) is used.
- **Name:** ``pv_system_system_losses_fraction``
-- **Type:** ``Double``
-
-- **Units:** ``Frac``
+- **Type:** ``String``
- **Required:** ``false``
@@ -4336,64 +4128,64 @@ Number of bedrooms served by PV system. Only needed if single-family attached or
**PV System 2: Present**
-Whether there is a second PV system present.
+Whether there is a second PV system present. If not provided, defaults to false.
- **Name:** ``pv_system_2_present``
- **Type:** ``Boolean``
-- **Required:** ``true``
+- **Required:** ``false``
**PV System 2: Module Type**
-Module type of the second PV system. If not provided, the OS-HPXML default (see HPXML Photovoltaics) is used.
+Module type of the second PV system. If 'auto' or not provided, the OS-HPXML default (see HPXML Photovoltaics) is used.
- **Name:** ``pv_system_2_module_type``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `standard`, `premium`, `thin film`
+- **Choices:** `auto`, `auto`, `standard`, `premium`, `thin film`
**PV System 2: Location**
-Location of the second PV system. If not provided, the OS-HPXML default (see HPXML Photovoltaics) is used.
+Location of the second PV system. If 'auto' or not provided, the OS-HPXML default (see HPXML Photovoltaics) is used.
- **Name:** ``pv_system_2_location``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `roof`, `ground`
+- **Choices:** `auto`, `auto`, `roof`, `ground`
**PV System 2: Tracking**
-Type of tracking for the second PV system. If not provided, the OS-HPXML default (see HPXML Photovoltaics) is used.
+Type of tracking for the second PV system. If 'auto' or not provided, the OS-HPXML default (see HPXML Photovoltaics) is used.
- **Name:** ``pv_system_2_tracking``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `fixed`, `1-axis`, `1-axis backtracked`, `2-axis`
+- **Choices:** `auto`, `auto`, `fixed`, `1-axis`, `1-axis backtracked`, `2-axis`
**PV System 2: Array Azimuth**
-Array azimuth of the second PV system. Azimuth is measured clockwise from north (e.g., North=0, East=90, South=180, West=270).
+Array azimuth of the second PV system. Azimuth is measured clockwise from north (e.g., North=0, East=90, South=180, West=270}.
- **Name:** ``pv_system_2_array_azimuth``
- **Type:** ``Double``
- **Units:** ``degrees``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -4404,7 +4196,7 @@ Array tilt of the second PV system. Can also enter, e.g., RoofPitch, RoofPitch+2
- **Name:** ``pv_system_2_array_tilt``
- **Type:** ``String``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -4417,42 +4209,40 @@ Maximum power output of the second PV system. For a shared system, this is the t
- **Units:** ``W``
-- **Required:** ``true``
+- **Required:** ``false``
**Battery: Present**
-Whether there is a lithium ion battery present.
+Whether there is a lithium ion battery present. If not provided, defaults to false.
- **Name:** ``battery_present``
- **Type:** ``Boolean``
-- **Required:** ``true``
+- **Required:** ``false``
**Battery: Location**
-The space type for the lithium ion battery location. If not provided, the OS-HPXML default (see HPXML Batteries) is used.
+The space type for the lithium ion battery location. If 'auto' or not provided, the OS-HPXML default (see HPXML Batteries) is used.
- **Name:** ``battery_location``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `conditioned space`, `basement - conditioned`, `basement - unconditioned`, `crawlspace`, `crawlspace - vented`, `crawlspace - unvented`, `crawlspace - conditioned`, `attic`, `attic - vented`, `attic - unvented`, `garage`, `outside`
+- **Choices:** `auto`, `conditioned space`, `basement - conditioned`, `basement - unconditioned`, `crawlspace`, `crawlspace - vented`, `crawlspace - unvented`, `crawlspace - conditioned`, `attic`, `attic - vented`, `attic - unvented`, `garage`, `outside`
**Battery: Rated Power Output**
-The rated power output of the lithium ion battery. If not provided, the OS-HPXML default (see HPXML Batteries) is used.
+The rated power output of the lithium ion battery. If 'auto' or not provided, the OS-HPXML default (see HPXML Batteries) is used.
- **Name:** ``battery_power``
-- **Type:** ``Double``
-
-- **Units:** ``W``
+- **Type:** ``String``
- **Required:** ``false``
@@ -4460,12 +4250,10 @@ The rated power output of the lithium ion battery. If not provided, the OS-HPXML
**Battery: Nominal Capacity**
-The nominal capacity of the lithium ion battery. If not provided, the OS-HPXML default (see HPXML Batteries) is used.
+The nominal capacity of the lithium ion battery. If 'auto' or not provided, the OS-HPXML default (see HPXML Batteries) is used.
- **Name:** ``battery_capacity``
-- **Type:** ``Double``
-
-- **Units:** ``kWh``
+- **Type:** ``String``
- **Required:** ``false``
@@ -4473,12 +4261,10 @@ The nominal capacity of the lithium ion battery. If not provided, the OS-HPXML d
**Battery: Usable Capacity**
-The usable capacity of the lithium ion battery. If not provided, the OS-HPXML default (see HPXML Batteries) is used.
+The usable capacity of the lithium ion battery. If 'auto' or not provided, the OS-HPXML default (see HPXML Batteries) is used.
- **Name:** ``battery_usable_capacity``
-- **Type:** ``Double``
-
-- **Units:** ``kWh``
+- **Type:** ``String``
- **Required:** ``false``
@@ -4486,12 +4272,10 @@ The usable capacity of the lithium ion battery. If not provided, the OS-HPXML de
**Battery: Round Trip Efficiency**
-The round trip efficiency of the lithium ion battery. If not provided, the OS-HPXML default (see HPXML Batteries) is used.
+The round trip efficiency of the lithium ion battery. If 'auto' or not provided, the OS-HPXML default (see HPXML Batteries) is used.
- **Name:** ``battery_round_trip_efficiency``
-- **Type:** ``Double``
-
-- **Units:** ``Frac``
+- **Type:** ``String``
- **Required:** ``false``
@@ -4523,43 +4307,43 @@ Whether there is lighting energy use.
**Lighting: Interior Fraction CFL**
-Fraction of all lamps (interior) that are compact fluorescent. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent.
+Fraction of all lamps (interior} that are compact fluorescent. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent. If not provided, defaults to 0.1.
- **Name:** ``lighting_interior_fraction_cfl``
- **Type:** ``Double``
-- **Required:** ``true``
+- **Required:** ``false``
**Lighting: Interior Fraction LFL**
-Fraction of all lamps (interior) that are linear fluorescent. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent.
+Fraction of all lamps (interior} that are linear fluorescent. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent. If not provided, defaults to 0.0.
- **Name:** ``lighting_interior_fraction_lfl``
- **Type:** ``Double``
-- **Required:** ``true``
+- **Required:** ``false``
**Lighting: Interior Fraction LED**
-Fraction of all lamps (interior) that are light emitting diodes. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent.
+Fraction of all lamps (interior} that are light emitting diodes. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent. If not provided, defaults to 0.0.
- **Name:** ``lighting_interior_fraction_led``
- **Type:** ``Double``
-- **Required:** ``true``
+- **Required:** ``false``
**Lighting: Interior Usage Multiplier**
-Multiplier on the lighting energy usage (interior) that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Lighting) is used.
+Multiplier on the lighting energy usage (interior} that can reflect, e.g., high/low usage occupants. If 'auto' or not provided, the OS-HPXML default (see HPXML Lighting) is used.
- **Name:** ``lighting_interior_usage_multiplier``
-- **Type:** ``Double``
+- **Type:** ``String``
- **Required:** ``false``
@@ -4567,43 +4351,43 @@ Multiplier on the lighting energy usage (interior) that can reflect, e.g., high/
**Lighting: Exterior Fraction CFL**
-Fraction of all lamps (exterior) that are compact fluorescent. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent.
+Fraction of all lamps (exterior} that are compact fluorescent. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent. If not provided, defaults to 0.0.
- **Name:** ``lighting_exterior_fraction_cfl``
- **Type:** ``Double``
-- **Required:** ``true``
+- **Required:** ``false``
**Lighting: Exterior Fraction LFL**
-Fraction of all lamps (exterior) that are linear fluorescent. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent.
+Fraction of all lamps (exterior} that are linear fluorescent. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent. If not provided, defaults to 0.0.
- **Name:** ``lighting_exterior_fraction_lfl``
- **Type:** ``Double``
-- **Required:** ``true``
+- **Required:** ``false``
**Lighting: Exterior Fraction LED**
-Fraction of all lamps (exterior) that are light emitting diodes. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent.
+Fraction of all lamps (exterior} that are light emitting diodes. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent. If not provided, defaults to 0.0.
- **Name:** ``lighting_exterior_fraction_led``
- **Type:** ``Double``
-- **Required:** ``true``
+- **Required:** ``false``
**Lighting: Exterior Usage Multiplier**
-Multiplier on the lighting energy usage (exterior) that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Lighting) is used.
+Multiplier on the lighting energy usage (exterior} that can reflect, e.g., high/low usage occupants. If 'auto' or not provided, the OS-HPXML default (see HPXML Lighting) is used.
- **Name:** ``lighting_exterior_usage_multiplier``
-- **Type:** ``Double``
+- **Type:** ``String``
- **Required:** ``false``
@@ -4611,43 +4395,43 @@ Multiplier on the lighting energy usage (exterior) that can reflect, e.g., high/
**Lighting: Garage Fraction CFL**
-Fraction of all lamps (garage) that are compact fluorescent. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent.
+Fraction of all lamps (garage} that are compact fluorescent. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent. If not provided, defaults to 0.0.
- **Name:** ``lighting_garage_fraction_cfl``
- **Type:** ``Double``
-- **Required:** ``true``
+- **Required:** ``false``
**Lighting: Garage Fraction LFL**
-Fraction of all lamps (garage) that are linear fluorescent. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent.
+Fraction of all lamps (garage} that are linear fluorescent. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent. If not provided, defaults to 0.0.
- **Name:** ``lighting_garage_fraction_lfl``
- **Type:** ``Double``
-- **Required:** ``true``
+- **Required:** ``false``
**Lighting: Garage Fraction LED**
-Fraction of all lamps (garage) that are light emitting diodes. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent.
+Fraction of all lamps (garage} that are light emitting diodes. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent. If not provided, defaults to 0.0.
- **Name:** ``lighting_garage_fraction_led``
- **Type:** ``Double``
-- **Required:** ``true``
+- **Required:** ``false``
**Lighting: Garage Usage Multiplier**
-Multiplier on the lighting energy usage (garage) that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Lighting) is used.
+Multiplier on the lighting energy usage (garage} that can reflect, e.g., high/low usage occupants. If 'auto' or not provided, the OS-HPXML default (see HPXML Lighting) is used.
- **Name:** ``lighting_garage_usage_multiplier``
-- **Type:** ``Double``
+- **Type:** ``String``
- **Required:** ``false``
@@ -4655,23 +4439,21 @@ Multiplier on the lighting energy usage (garage) that can reflect, e.g., high/lo
**Holiday Lighting: Present**
-Whether there is holiday lighting.
+Whether there is holiday lighting. If not provided, defaults to false.
- **Name:** ``holiday_lighting_present``
- **Type:** ``Boolean``
-- **Required:** ``true``
+- **Required:** ``false``
**Holiday Lighting: Daily Consumption**
-The daily energy consumption for holiday lighting (exterior). If not provided, the OS-HPXML default (see HPXML Lighting) is used.
+The daily energy consumption for holiday lighting (exterior}. If 'auto' or not provided, the OS-HPXML default (see HPXML Lighting) is used.
- **Name:** ``holiday_lighting_daily_kwh``
-- **Type:** ``Double``
-
-- **Units:** ``kWh/day``
+- **Type:** ``String``
- **Required:** ``false``
@@ -4679,7 +4461,7 @@ The daily energy consumption for holiday lighting (exterior). If not provided, t
**Holiday Lighting: Period**
-Enter a date range like 'Nov 25 - Jan 5'. If not provided, the OS-HPXML default (see HPXML Lighting) is used.
+Enter a date range like 'Nov 25 - Jan 5'. If 'auto' or not provided, the OS-HPXML default (see HPXML Lighting) is used.
- **Name:** ``holiday_lighting_period``
- **Type:** ``String``
@@ -4690,12 +4472,12 @@ Enter a date range like 'Nov 25 - Jan 5'. If not provided, the OS-HPXML default
**Dehumidifier: Type**
-The type of dehumidifier.
+The type of dehumidifier. If not provided, defaults to none.
- **Name:** ``dehumidifier_type``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `none`, `portable`, `whole-home`
@@ -4708,7 +4490,7 @@ The efficiency type of dehumidifier.
- **Name:** ``dehumidifier_efficiency_type``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `EnergyFactor`, `IntegratedEnergyFactor`
@@ -4723,20 +4505,20 @@ The efficiency of the dehumidifier.
- **Units:** ``liters/kWh``
-- **Required:** ``true``
+- **Required:** ``false``
**Dehumidifier: Capacity**
-The capacity (water removal rate) of the dehumidifier.
+The capacity (water removal rate} of the dehumidifier.
- **Name:** ``dehumidifier_capacity``
- **Type:** ``Double``
- **Units:** ``pint/day``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -4749,7 +4531,7 @@ The relative humidity setpoint of the dehumidifier.
- **Units:** ``Frac``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -4762,7 +4544,7 @@ The dehumidification load served fraction of the dehumidifier.
- **Units:** ``Frac``
-- **Required:** ``true``
+- **Required:** ``false``
@@ -4779,14 +4561,14 @@ Whether there is a clothes washer present.
**Clothes Washer: Location**
-The space type for the clothes washer location. If not provided, the OS-HPXML default (see HPXML Clothes Washer) is used.
+The space type for the clothes washer location. If 'auto' or not provided, the OS-HPXML default (see HPXML Clothes Washer) is used.
- **Name:** ``clothes_washer_location``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `conditioned space`, `basement - conditioned`, `basement - unconditioned`, `garage`, `other housing unit`, `other heated space`, `other multifamily buffer space`, `other non-freezing space`
+- **Choices:** `auto`, `conditioned space`, `basement - conditioned`, `basement - unconditioned`, `garage`, `other housing unit`, `other heated space`, `other multifamily buffer space`, `other non-freezing space`
@@ -4797,7 +4579,7 @@ The efficiency type of the clothes washer.
- **Name:** ``clothes_washer_efficiency_type``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `ModifiedEnergyFactor`, `IntegratedModifiedEnergyFactor`
@@ -4805,12 +4587,10 @@ The efficiency type of the clothes washer.
**Clothes Washer: Efficiency**
-The efficiency of the clothes washer. If not provided, the OS-HPXML default (see HPXML Clothes Washer) is used.
+The efficiency of the clothes washer. If 'auto' or not provided, the OS-HPXML default (see HPXML Clothes Washer) is used.
- **Name:** ``clothes_washer_efficiency``
-- **Type:** ``Double``
-
-- **Units:** ``ft^3/kWh-cyc``
+- **Type:** ``String``
- **Required:** ``false``
@@ -4818,12 +4598,10 @@ The efficiency of the clothes washer. If not provided, the OS-HPXML default (see
**Clothes Washer: Rated Annual Consumption**
-The annual energy consumed by the clothes washer, as rated, obtained from the EnergyGuide label. This includes both the appliance electricity consumption and the energy required for water heating. If not provided, the OS-HPXML default (see HPXML Clothes Washer) is used.
+The annual energy consumed by the clothes washer, as rated, obtained from the EnergyGuide label. This includes both the appliance electricity consumption and the energy required for water heating. If 'auto' or not provided, the OS-HPXML default (see HPXML Clothes Washer) is used.
- **Name:** ``clothes_washer_rated_annual_kwh``
-- **Type:** ``Double``
-
-- **Units:** ``kWh/yr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -4831,12 +4609,10 @@ The annual energy consumed by the clothes washer, as rated, obtained from the En
**Clothes Washer: Label Electric Rate**
-The annual energy consumed by the clothes washer, as rated, obtained from the EnergyGuide label. This includes both the appliance electricity consumption and the energy required for water heating. If not provided, the OS-HPXML default (see HPXML Clothes Washer) is used.
+The annual energy consumed by the clothes washer, as rated, obtained from the EnergyGuide label. This includes both the appliance electricity consumption and the energy required for water heating. If 'auto' or not provided, the OS-HPXML default (see HPXML Clothes Washer) is used.
- **Name:** ``clothes_washer_label_electric_rate``
-- **Type:** ``Double``
-
-- **Units:** ``$/kWh``
+- **Type:** ``String``
- **Required:** ``false``
@@ -4844,12 +4620,10 @@ The annual energy consumed by the clothes washer, as rated, obtained from the En
**Clothes Washer: Label Gas Rate**
-The annual energy consumed by the clothes washer, as rated, obtained from the EnergyGuide label. This includes both the appliance electricity consumption and the energy required for water heating. If not provided, the OS-HPXML default (see HPXML Clothes Washer) is used.
+The annual energy consumed by the clothes washer, as rated, obtained from the EnergyGuide label. This includes both the appliance electricity consumption and the energy required for water heating. If 'auto' or not provided, the OS-HPXML default (see HPXML Clothes Washer) is used.
- **Name:** ``clothes_washer_label_gas_rate``
-- **Type:** ``Double``
-
-- **Units:** ``$/therm``
+- **Type:** ``String``
- **Required:** ``false``
@@ -4857,12 +4631,10 @@ The annual energy consumed by the clothes washer, as rated, obtained from the En
**Clothes Washer: Label Annual Cost with Gas DHW**
-The annual cost of using the system under test conditions. Input is obtained from the EnergyGuide label. If not provided, the OS-HPXML default (see HPXML Clothes Washer) is used.
+The annual cost of using the system under test conditions. Input is obtained from the EnergyGuide label. If 'auto' or not provided, the OS-HPXML default (see HPXML Clothes Washer) is used.
- **Name:** ``clothes_washer_label_annual_gas_cost``
-- **Type:** ``Double``
-
-- **Units:** ``$``
+- **Type:** ``String``
- **Required:** ``false``
@@ -4870,12 +4642,10 @@ The annual cost of using the system under test conditions. Input is obtained fro
**Clothes Washer: Label Usage**
-The clothes washer loads per week. If not provided, the OS-HPXML default (see HPXML Clothes Washer) is used.
+The clothes washer loads per week. If 'auto' or not provided, the OS-HPXML default (see HPXML Clothes Washer) is used.
- **Name:** ``clothes_washer_label_usage``
-- **Type:** ``Double``
-
-- **Units:** ``cyc/wk``
+- **Type:** ``String``
- **Required:** ``false``
@@ -4883,12 +4653,10 @@ The clothes washer loads per week. If not provided, the OS-HPXML default (see HPXML Clothes Washer) is used.
+Volume of the washer drum. Obtained from the EnergyStar website or the manufacturer's literature. If 'auto' or not provided, the OS-HPXML default (see HPXML Clothes Washer) is used.
- **Name:** ``clothes_washer_capacity``
-- **Type:** ``Double``
-
-- **Units:** ``ft^3``
+- **Type:** ``String``
- **Required:** ``false``
@@ -4896,10 +4664,10 @@ Volume of the washer drum. Obtained from the EnergyStar website or the manufactu
**Clothes Washer: Usage Multiplier**
-Multiplier on the clothes washer energy and hot water usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Clothes Washer) is used.
+Multiplier on the clothes washer energy and hot water usage that can reflect, e.g., high/low usage occupants. If 'auto' or not provided, the OS-HPXML default (see HPXML Clothes Washer) is used.
- **Name:** ``clothes_washer_usage_multiplier``
-- **Type:** ``Double``
+- **Type:** ``String``
- **Required:** ``false``
@@ -4918,14 +4686,14 @@ Whether there is a clothes dryer present.
**Clothes Dryer: Location**
-The space type for the clothes dryer location. If not provided, the OS-HPXML default (see HPXML Clothes Dryer) is used.
+The space type for the clothes dryer location. If 'auto' or not provided, the OS-HPXML default (see HPXML Clothes Dryer) is used.
- **Name:** ``clothes_dryer_location``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `conditioned space`, `basement - conditioned`, `basement - unconditioned`, `garage`, `other housing unit`, `other heated space`, `other multifamily buffer space`, `other non-freezing space`
+- **Choices:** `auto`, `auto`, `conditioned space`, `basement - conditioned`, `basement - unconditioned`, `garage`, `other housing unit`, `other heated space`, `other multifamily buffer space`, `other non-freezing space`
@@ -4936,7 +4704,7 @@ Type of fuel used by the clothes dryer.
- **Name:** ``clothes_dryer_fuel_type``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `electricity`, `natural gas`, `fuel oil`, `propane`, `wood`, `coal`
@@ -4949,7 +4717,7 @@ The efficiency type of the clothes dryer.
- **Name:** ``clothes_dryer_efficiency_type``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `EnergyFactor`, `CombinedEnergyFactor`
@@ -4957,12 +4725,10 @@ The efficiency type of the clothes dryer.
**Clothes Dryer: Efficiency**
-The efficiency of the clothes dryer. If not provided, the OS-HPXML default (see HPXML Clothes Dryer) is used.
+The efficiency of the clothes dryer. If 'auto' or not provided, the OS-HPXML default (see HPXML Clothes Dryer) is used.
- **Name:** ``clothes_dryer_efficiency``
-- **Type:** ``Double``
-
-- **Units:** ``lb/kWh``
+- **Type:** ``String``
- **Required:** ``false``
@@ -4970,12 +4736,10 @@ The efficiency of the clothes dryer. If not provided, the OS-HPXML default (see
**Clothes Dryer: Vented Flow Rate**
-The exhaust flow rate of the vented clothes dryer. If not provided, the OS-HPXML default (see HPXML Clothes Dryer) is used.
+The exhaust flow rate of the vented clothes dryer. If 'auto' or not provided, the OS-HPXML default (see HPXML Clothes Dryer) is used.
- **Name:** ``clothes_dryer_vented_flow_rate``
-- **Type:** ``Double``
-
-- **Units:** ``CFM``
+- **Type:** ``String``
- **Required:** ``false``
@@ -4983,10 +4747,10 @@ The exhaust flow rate of the vented clothes dryer. If not provided, the OS-HPXML
**Clothes Dryer: Usage Multiplier**
-Multiplier on the clothes dryer energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Clothes Dryer) is used.
+Multiplier on the clothes dryer energy usage that can reflect, e.g., high/low usage occupants. If 'auto' or not provided, the OS-HPXML default (see HPXML Clothes Dryer) is used.
- **Name:** ``clothes_dryer_usage_multiplier``
-- **Type:** ``Double``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5005,14 +4769,14 @@ Whether there is a dishwasher present.
**Dishwasher: Location**
-The space type for the dishwasher location. If not provided, the OS-HPXML default (see HPXML Dishwasher) is used.
+The space type for the dishwasher location. If 'auto' or not provided, the OS-HPXML default (see HPXML Dishwasher) is used.
- **Name:** ``dishwasher_location``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `conditioned space`, `basement - conditioned`, `basement - unconditioned`, `garage`, `other housing unit`, `other heated space`, `other multifamily buffer space`, `other non-freezing space`
+- **Choices:** `auto`, `auto`, `auto`, `conditioned space`, `basement - conditioned`, `basement - unconditioned`, `garage`, `other housing unit`, `other heated space`, `other multifamily buffer space`, `other non-freezing space`
@@ -5023,7 +4787,7 @@ The efficiency type of dishwasher.
- **Name:** ``dishwasher_efficiency_type``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `RatedAnnualkWh`, `EnergyFactor`
@@ -5031,12 +4795,10 @@ The efficiency type of dishwasher.
**Dishwasher: Efficiency**
-The efficiency of the dishwasher. If not provided, the OS-HPXML default (see HPXML Dishwasher) is used.
+The efficiency of the dishwasher. If 'auto' or not provided, the OS-HPXML default (see HPXML Dishwasher) is used.
- **Name:** ``dishwasher_efficiency``
-- **Type:** ``Double``
-
-- **Units:** ``RatedAnnualkWh or EnergyFactor``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5044,12 +4806,10 @@ The efficiency of the dishwasher. If not provided, the OS-HPXML default (see HPXML Dishwasher) is used.
+The label electric rate of the dishwasher. If 'auto' or not provided, the OS-HPXML default (see HPXML Dishwasher) is used.
- **Name:** ``dishwasher_label_electric_rate``
-- **Type:** ``Double``
-
-- **Units:** ``$/kWh``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5057,12 +4817,10 @@ The label electric rate of the dishwasher. If not provided, the OS-HPXML default
**Dishwasher: Label Gas Rate**
-The label gas rate of the dishwasher. If not provided, the OS-HPXML default (see HPXML Dishwasher) is used.
+The label gas rate of the dishwasher. If 'auto' or not provided, the OS-HPXML default (see HPXML Dishwasher) is used.
- **Name:** ``dishwasher_label_gas_rate``
-- **Type:** ``Double``
-
-- **Units:** ``$/therm``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5070,12 +4828,10 @@ The label gas rate of the dishwasher. If not provided, the OS-HPXML default (see
**Dishwasher: Label Annual Gas Cost**
-The label annual gas cost of the dishwasher. If not provided, the OS-HPXML default (see HPXML Dishwasher) is used.
+The label annual gas cost of the dishwasher. If 'auto' or not provided, the OS-HPXML default (see HPXML Dishwasher) is used.
- **Name:** ``dishwasher_label_annual_gas_cost``
-- **Type:** ``Double``
-
-- **Units:** ``$``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5083,12 +4839,10 @@ The label annual gas cost of the dishwasher. If not provided, the OS-HPXML defau
**Dishwasher: Label Usage**
-The dishwasher loads per week. If not provided, the OS-HPXML default (see HPXML Dishwasher) is used.
+The dishwasher loads per week. If 'auto' or not provided, the OS-HPXML default (see HPXML Dishwasher) is used.
- **Name:** ``dishwasher_label_usage``
-- **Type:** ``Double``
-
-- **Units:** ``cyc/wk``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5096,12 +4850,10 @@ The dishwasher loads per week. If not provided, the OS-HPXML default (see HPXML Dishwasher) is used.
+The number of place settings for the unit. Data obtained from manufacturer's literature. If 'auto' or not provided, the OS-HPXML default (see HPXML Dishwasher) is used.
- **Name:** ``dishwasher_place_setting_capacity``
-- **Type:** ``Integer``
-
-- **Units:** ``#``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5109,10 +4861,10 @@ The number of place settings for the unit. Data obtained from manufacturer's lit
**Dishwasher: Usage Multiplier**
-Multiplier on the dishwasher energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Dishwasher) is used.
+Multiplier on the dishwasher energy usage that can reflect, e.g., high/low usage occupants. If 'auto' or not provided, the OS-HPXML default (see HPXML Dishwasher) is used.
- **Name:** ``dishwasher_usage_multiplier``
-- **Type:** ``Double``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5131,25 +4883,23 @@ Whether there is a refrigerator present.
**Refrigerator: Location**
-The space type for the refrigerator location. If not provided, the OS-HPXML default (see HPXML Refrigerators) is used.
+The space type for the refrigerator location. If 'auto' or not provided, the OS-HPXML default (see HPXML Refrigerators) is used.
- **Name:** ``refrigerator_location``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `conditioned space`, `basement - conditioned`, `basement - unconditioned`, `garage`, `other housing unit`, `other heated space`, `other multifamily buffer space`, `other non-freezing space`
+- **Choices:** `auto`, `auto`, `auto`, `auto`, `conditioned space`, `basement - conditioned`, `basement - unconditioned`, `garage`, `other housing unit`, `other heated space`, `other multifamily buffer space`, `other non-freezing space`
**Refrigerator: Rated Annual Consumption**
-The EnergyGuide rated annual energy consumption for a refrigerator. If not provided, the OS-HPXML default (see HPXML Refrigerators) is used.
+The EnergyGuide rated annual energy consumption for a refrigerator. If 'auto' or not provided, the OS-HPXML default (see HPXML Refrigerators) is used.
- **Name:** ``refrigerator_rated_annual_kwh``
-- **Type:** ``Double``
-
-- **Units:** ``kWh/yr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5157,10 +4907,10 @@ The EnergyGuide rated annual energy consumption for a refrigerator. If not provi
**Refrigerator: Usage Multiplier**
-Multiplier on the refrigerator energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Refrigerators) is used.
+Multiplier on the refrigerator energy usage that can reflect, e.g., high/low usage occupants. If 'auto' or not provided, the OS-HPXML default (see HPXML Refrigerators) is used.
- **Name:** ``refrigerator_usage_multiplier``
-- **Type:** ``Double``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5168,36 +4918,34 @@ Multiplier on the refrigerator energy usage that can reflect, e.g., high/low usa
**Extra Refrigerator: Present**
-Whether there is an extra refrigerator present.
+Whether there is an extra refrigerator present. If not provided, defaults to false.
- **Name:** ``extra_refrigerator_present``
- **Type:** ``Boolean``
-- **Required:** ``true``
+- **Required:** ``false``
**Extra Refrigerator: Location**
-The space type for the extra refrigerator location. If not provided, the OS-HPXML default (see HPXML Refrigerators) is used.
+The space type for the extra refrigerator location. If 'auto' or not provided, the OS-HPXML default (see HPXML Refrigerators) is used.
- **Name:** ``extra_refrigerator_location``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `conditioned space`, `basement - conditioned`, `basement - unconditioned`, `garage`, `other housing unit`, `other heated space`, `other multifamily buffer space`, `other non-freezing space`
+- **Choices:** `auto`, `auto`, `auto`, `auto`, `auto`, `conditioned space`, `basement - conditioned`, `basement - unconditioned`, `garage`, `other housing unit`, `other heated space`, `other multifamily buffer space`, `other non-freezing space`
**Extra Refrigerator: Rated Annual Consumption**
-The EnergyGuide rated annual energy consumption for an extra refrigerator. If not provided, the OS-HPXML default (see HPXML Refrigerators) is used.
+The EnergyGuide rated annual energy consumption for an extra refrigerator. If 'auto' or not provided, the OS-HPXML default (see HPXML Refrigerators) is used.
- **Name:** ``extra_refrigerator_rated_annual_kwh``
-- **Type:** ``Double``
-
-- **Units:** ``kWh/yr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5205,10 +4953,10 @@ The EnergyGuide rated annual energy consumption for an extra refrigerator. If no
**Extra Refrigerator: Usage Multiplier**
-Multiplier on the extra refrigerator energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Refrigerators) is used.
+Multiplier on the extra refrigerator energy usage that can reflect, e.g., high/low usage occupants. If 'auto' or not provided, the OS-HPXML default (see HPXML Refrigerators) is used.
- **Name:** ``extra_refrigerator_usage_multiplier``
-- **Type:** ``Double``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5216,36 +4964,34 @@ Multiplier on the extra refrigerator energy usage that can reflect, e.g., high/l
**Freezer: Present**
-Whether there is a freezer present.
+Whether there is a freezer present. If not provided, defaults to false.
- **Name:** ``freezer_present``
- **Type:** ``Boolean``
-- **Required:** ``true``
+- **Required:** ``false``
**Freezer: Location**
-The space type for the freezer location. If not provided, the OS-HPXML default (see HPXML Freezers) is used.
+The space type for the freezer location. If 'auto' or not provided, the OS-HPXML default (see HPXML Freezers) is used.
- **Name:** ``freezer_location``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `conditioned space`, `basement - conditioned`, `basement - unconditioned`, `garage`, `other housing unit`, `other heated space`, `other multifamily buffer space`, `other non-freezing space`
+- **Choices:** `auto`, `auto`, `auto`, `auto`, `auto`, `auto`, `conditioned space`, `basement - conditioned`, `basement - unconditioned`, `garage`, `other housing unit`, `other heated space`, `other multifamily buffer space`, `other non-freezing space`
**Freezer: Rated Annual Consumption**
-The EnergyGuide rated annual energy consumption for a freezer. If not provided, the OS-HPXML default (see HPXML Freezers) is used.
+The EnergyGuide rated annual energy consumption for a freezer. If 'auto' or not provided, the OS-HPXML default (see HPXML Freezers) is used.
- **Name:** ``freezer_rated_annual_kwh``
-- **Type:** ``Double``
-
-- **Units:** ``kWh/yr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5253,10 +4999,10 @@ The EnergyGuide rated annual energy consumption for a freezer. If not provided,
**Freezer: Usage Multiplier**
-Multiplier on the freezer energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Freezers) is used.
+Multiplier on the freezer energy usage that can reflect, e.g., high/low usage occupants. If 'auto' or not provided, the OS-HPXML default (see HPXML Freezers) is used.
- **Name:** ``freezer_usage_multiplier``
-- **Type:** ``Double``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5275,14 +5021,14 @@ Whether there is a cooking range/oven present.
**Cooking Range/Oven: Location**
-The space type for the cooking range/oven location. If not provided, the OS-HPXML default (see HPXML Cooking Range/Oven) is used.
+The space type for the cooking range/oven location. If 'auto' or not provided, the OS-HPXML default (see HPXML Cooking Range/Oven) is used.
- **Name:** ``cooking_range_oven_location``
- **Type:** ``Choice``
- **Required:** ``false``
-- **Choices:** `conditioned space`, `basement - conditioned`, `basement - unconditioned`, `garage`, `other housing unit`, `other heated space`, `other multifamily buffer space`, `other non-freezing space`
+- **Choices:** `auto`, `auto`, `auto`, `auto`, `auto`, `auto`, `auto`, `conditioned space`, `basement - conditioned`, `basement - unconditioned`, `garage`, `other housing unit`, `other heated space`, `other multifamily buffer space`, `other non-freezing space`
@@ -5293,7 +5039,7 @@ Type of fuel used by the cooking range/oven.
- **Name:** ``cooking_range_oven_fuel_type``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `electricity`, `natural gas`, `fuel oil`, `propane`, `wood`, `coal`
@@ -5301,32 +5047,36 @@ Type of fuel used by the cooking range/oven.
**Cooking Range/Oven: Is Induction**
-Whether the cooking range is induction. If not provided, the OS-HPXML default (see HPXML Cooking Range/Oven) is used.
+Whether the cooking range is induction. If 'auto' or not provided, the OS-HPXML default (see HPXML Cooking Range/Oven) is used.
- **Name:** ``cooking_range_oven_is_induction``
-- **Type:** ``Boolean``
+- **Type:** ``Choice``
- **Required:** ``false``
+- **Choices:** `auto`, `true`, `false`
+
**Cooking Range/Oven: Is Convection**
-Whether the oven is convection. If not provided, the OS-HPXML default (see HPXML Cooking Range/Oven) is used.
+Whether the oven is convection. If 'auto' or not provided, the OS-HPXML default (see HPXML Cooking Range/Oven) is used.
- **Name:** ``cooking_range_oven_is_convection``
-- **Type:** ``Boolean``
+- **Type:** ``Choice``
- **Required:** ``false``
+- **Choices:** `auto`, `true`, `false`
+
**Cooking Range/Oven: Usage Multiplier**
-Multiplier on the cooking range/oven energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Cooking Range/Oven) is used.
+Multiplier on the cooking range/oven energy usage that can reflect, e.g., high/low usage occupants. If 'auto' or not provided, the OS-HPXML default (see HPXML Cooking Range/Oven) is used.
- **Name:** ``cooking_range_oven_usage_multiplier``
-- **Type:** ``Double``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5345,12 +5095,10 @@ Whether there are any ceiling fans.
**Ceiling Fan: Label Energy Use**
-The label average energy use of the ceiling fan(s). If neither Efficiency nor Label Energy Use provided, the OS-HPXML default (see HPXML Ceiling Fans) is used.
+The label average energy use of the ceiling fan(s}. If 'auto' or not provided, the OS-HPXML default (see HPXML Ceiling Fans) is used.
- **Name:** ``ceiling_fan_label_energy_use``
-- **Type:** ``Double``
-
-- **Units:** ``W``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5358,12 +5106,10 @@ The label average energy use of the ceiling fan(s). If neither Efficiency nor La
**Ceiling Fan: Efficiency**
-The efficiency rating of the ceiling fan(s) at medium speed. Only used if Label Energy Use not provided. If neither Efficiency nor Label Energy Use provided, the OS-HPXML default (see HPXML Ceiling Fans) is used.
+The efficiency rating of the ceiling fan(s} at medium speed. Only used if Label Energy Use not provided. If 'auto' or not provided, the OS-HPXML default (see HPXML Ceiling Fans) is used.
- **Name:** ``ceiling_fan_efficiency``
-- **Type:** ``Double``
-
-- **Units:** ``CFM/W``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5371,12 +5117,10 @@ The efficiency rating of the ceiling fan(s) at medium speed. Only used if Label
**Ceiling Fan: Quantity**
-Total number of ceiling fans. If not provided, the OS-HPXML default (see HPXML Ceiling Fans) is used.
+Total number of ceiling fans. If 'auto' or not provided, the OS-HPXML default (see HPXML Ceiling Fans) is used.
- **Name:** ``ceiling_fan_quantity``
-- **Type:** ``Integer``
-
-- **Units:** ``#``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5384,12 +5128,10 @@ Total number of ceiling fans. If not provided, the OS-HPXML default (see HPXML Ceiling Fans) is used.
+The cooling setpoint temperature offset during months when the ceiling fans are operating. Only applies if ceiling fan quantity is greater than zero. If 'auto' or not provided, the OS-HPXML default (see HPXML Ceiling Fans) is used.
- **Name:** ``ceiling_fan_cooling_setpoint_temp_offset``
-- **Type:** ``Double``
-
-- **Units:** ``F``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5408,12 +5150,10 @@ Whether there are televisions.
**Misc Plug Loads: Television Annual kWh**
-The annual energy consumption of the television plug loads. If not provided, the OS-HPXML default (see HPXML Plug Loads) is used.
+The annual energy consumption of the television plug loads. If 'auto' or not provided, the OS-HPXML default (see HPXML Plug Loads) is used.
- **Name:** ``misc_plug_loads_television_annual_kwh``
-- **Type:** ``Double``
-
-- **Units:** ``kWh/yr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5421,10 +5161,10 @@ The annual energy consumption of the television plug loads. If not provided, the
**Misc Plug Loads: Television Usage Multiplier**
-Multiplier on the television energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Plug Loads) is used.
+Multiplier on the television energy usage that can reflect, e.g., high/low usage occupants. If 'auto' or not provided, the OS-HPXML default (see HPXML Plug Loads) is used.
- **Name:** ``misc_plug_loads_television_usage_multiplier``
-- **Type:** ``Double``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5432,12 +5172,10 @@ Multiplier on the television energy usage that can reflect, e.g., high/low usage
**Misc Plug Loads: Other Annual kWh**
-The annual energy consumption of the other residual plug loads. If not provided, the OS-HPXML default (see HPXML Plug Loads) is used.
+The annual energy consumption of the other residual plug loads. If 'auto' or not provided, the OS-HPXML default (see HPXML Plug Loads) is used.
- **Name:** ``misc_plug_loads_other_annual_kwh``
-- **Type:** ``Double``
-
-- **Units:** ``kWh/yr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5445,12 +5183,10 @@ The annual energy consumption of the other residual plug loads. If not provided,
**Misc Plug Loads: Other Sensible Fraction**
-Fraction of other residual plug loads' internal gains that are sensible. If not provided, the OS-HPXML default (see HPXML Plug Loads) is used.
+Fraction of other residual plug loads' internal gains that are sensible. If 'auto' or not provided, the OS-HPXML default (see HPXML Plug Loads) is used.
- **Name:** ``misc_plug_loads_other_frac_sensible``
-- **Type:** ``Double``
-
-- **Units:** ``Frac``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5458,12 +5194,10 @@ Fraction of other residual plug loads' internal gains that are sensible. If not
**Misc Plug Loads: Other Latent Fraction**
-Fraction of other residual plug loads' internal gains that are latent. If not provided, the OS-HPXML default (see HPXML Plug Loads) is used.
+Fraction of other residual plug loads' internal gains that are latent. If 'auto' or not provided, the OS-HPXML default (see HPXML Plug Loads) is used.
- **Name:** ``misc_plug_loads_other_frac_latent``
-- **Type:** ``Double``
-
-- **Units:** ``Frac``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5471,10 +5205,10 @@ Fraction of other residual plug loads' internal gains that are latent. If not pr
**Misc Plug Loads: Other Usage Multiplier**
-Multiplier on the other energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Plug Loads) is used.
+Multiplier on the other energy usage that can reflect, e.g., high/low usage occupants. If 'auto' or not provided, the OS-HPXML default (see HPXML Plug Loads) is used.
- **Name:** ``misc_plug_loads_other_usage_multiplier``
-- **Type:** ``Double``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5482,23 +5216,21 @@ Multiplier on the other energy usage that can reflect, e.g., high/low usage occu
**Misc Plug Loads: Well Pump Present**
-Whether there is a well pump.
+Whether there is a well pump. If not provided, defaults to false.
- **Name:** ``misc_plug_loads_well_pump_present``
- **Type:** ``Boolean``
-- **Required:** ``true``
+- **Required:** ``false``
**Misc Plug Loads: Well Pump Annual kWh**
-The annual energy consumption of the well pump plug loads. If not provided, the OS-HPXML default (see HPXML Plug Loads) is used.
+The annual energy consumption of the well pump plug loads. If 'auto' or not provided, the OS-HPXML default (see HPXML Plug Loads) is used.
- **Name:** ``misc_plug_loads_well_pump_annual_kwh``
-- **Type:** ``Double``
-
-- **Units:** ``kWh/yr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5506,10 +5238,10 @@ The annual energy consumption of the well pump plug loads. If not provided, the
**Misc Plug Loads: Well Pump Usage Multiplier**
-Multiplier on the well pump energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Plug Loads) is used.
+Multiplier on the well pump energy usage that can reflect, e.g., high/low usage occupants. If 'auto' or not provided, the OS-HPXML default (see HPXML Plug Loads) is used.
- **Name:** ``misc_plug_loads_well_pump_usage_multiplier``
-- **Type:** ``Double``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5517,23 +5249,21 @@ Multiplier on the well pump energy usage that can reflect, e.g., high/low usage
**Misc Plug Loads: Vehicle Present**
-Whether there is an electric vehicle.
+Whether there is an electric vehicle. If not provided, defaults to false.
- **Name:** ``misc_plug_loads_vehicle_present``
- **Type:** ``Boolean``
-- **Required:** ``true``
+- **Required:** ``false``
**Misc Plug Loads: Vehicle Annual kWh**
-The annual energy consumption of the electric vehicle plug loads. If not provided, the OS-HPXML default (see HPXML Plug Loads) is used.
+The annual energy consumption of the electric vehicle plug loads. If 'auto' or not provided, the OS-HPXML default (see HPXML Plug Loads) is used.
- **Name:** ``misc_plug_loads_vehicle_annual_kwh``
-- **Type:** ``Double``
-
-- **Units:** ``kWh/yr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5541,10 +5271,10 @@ The annual energy consumption of the electric vehicle plug loads. If not provide
**Misc Plug Loads: Vehicle Usage Multiplier**
-Multiplier on the electric vehicle energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Plug Loads) is used.
+Multiplier on the electric vehicle energy usage that can reflect, e.g., high/low usage occupants. If 'auto' or not provided, the OS-HPXML default (see HPXML Plug Loads) is used.
- **Name:** ``misc_plug_loads_vehicle_usage_multiplier``
-- **Type:** ``Double``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5552,23 +5282,23 @@ Multiplier on the electric vehicle energy usage that can reflect, e.g., high/low
**Misc Fuel Loads: Grill Present**
-Whether there is a fuel loads grill.
+Whether there is a fuel loads grill. If not provided, defaults to false.
- **Name:** ``misc_fuel_loads_grill_present``
- **Type:** ``Boolean``
-- **Required:** ``true``
+- **Required:** ``false``
**Misc Fuel Loads: Grill Fuel Type**
-The fuel type of the fuel loads grill.
+The fuel type of the fuel loads grill. If not provided, defaults to natural gas.
- **Name:** ``misc_fuel_loads_grill_fuel_type``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `natural gas`, `fuel oil`, `propane`, `wood`, `wood pellets`
@@ -5576,12 +5306,10 @@ The fuel type of the fuel loads grill.
**Misc Fuel Loads: Grill Annual therm**
-The annual energy consumption of the fuel loads grill. If not provided, the OS-HPXML default (see HPXML Fuel Loads) is used.
+The annual energy consumption of the fuel loads grill. If 'auto' or not provided, the OS-HPXML default (see HPXML Fuel Loads) is used.
- **Name:** ``misc_fuel_loads_grill_annual_therm``
-- **Type:** ``Double``
-
-- **Units:** ``therm/yr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5589,10 +5317,10 @@ The annual energy consumption of the fuel loads grill. If not provided, the OS-H
**Misc Fuel Loads: Grill Usage Multiplier**
-Multiplier on the fuel loads grill energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Fuel Loads) is used.
+Multiplier on the fuel loads grill energy usage that can reflect, e.g., high/low usage occupants. If 'auto' or not provided, the OS-HPXML default (see HPXML Fuel Loads) is used.
- **Name:** ``misc_fuel_loads_grill_usage_multiplier``
-- **Type:** ``Double``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5600,23 +5328,23 @@ Multiplier on the fuel loads grill energy usage that can reflect, e.g., high/low
**Misc Fuel Loads: Lighting Present**
-Whether there is fuel loads lighting.
+Whether there is fuel loads lighting. If not provided, defaults to false.
- **Name:** ``misc_fuel_loads_lighting_present``
- **Type:** ``Boolean``
-- **Required:** ``true``
+- **Required:** ``false``
**Misc Fuel Loads: Lighting Fuel Type**
-The fuel type of the fuel loads lighting.
+The fuel type of the fuel loads lighting. If not provided, defaults to natural gas.
- **Name:** ``misc_fuel_loads_lighting_fuel_type``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `natural gas`, `fuel oil`, `propane`, `wood`, `wood pellets`
@@ -5624,12 +5352,10 @@ The fuel type of the fuel loads lighting.
**Misc Fuel Loads: Lighting Annual therm**
-The annual energy consumption of the fuel loads lighting. If not provided, the OS-HPXML default (see HPXML Fuel Loads)is used.
+The annual energy consumption of the fuel loads lighting. If 'auto' or not provided, the OS-HPXML default (see HPXML Fuel Loads) is used.
- **Name:** ``misc_fuel_loads_lighting_annual_therm``
-- **Type:** ``Double``
-
-- **Units:** ``therm/yr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5637,10 +5363,10 @@ The annual energy consumption of the fuel loads lighting. If not provided, the O
**Misc Fuel Loads: Lighting Usage Multiplier**
-Multiplier on the fuel loads lighting energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Fuel Loads) is used.
+Multiplier on the fuel loads lighting energy usage that can reflect, e.g., high/low usage occupants. If 'auto' or not provided, the OS-HPXML default (see HPXML Fuel Loads) is used.
- **Name:** ``misc_fuel_loads_lighting_usage_multiplier``
-- **Type:** ``Double``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5648,23 +5374,23 @@ Multiplier on the fuel loads lighting energy usage that can reflect, e.g., high/
**Misc Fuel Loads: Fireplace Present**
-Whether there is fuel loads fireplace.
+Whether there is fuel loads fireplace. If not provided, defaults to false.
- **Name:** ``misc_fuel_loads_fireplace_present``
- **Type:** ``Boolean``
-- **Required:** ``true``
+- **Required:** ``false``
**Misc Fuel Loads: Fireplace Fuel Type**
-The fuel type of the fuel loads fireplace.
+The fuel type of the fuel loads fireplace. If not provided, defaults to natural gas.
- **Name:** ``misc_fuel_loads_fireplace_fuel_type``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `natural gas`, `fuel oil`, `propane`, `wood`, `wood pellets`
@@ -5672,12 +5398,10 @@ The fuel type of the fuel loads fireplace.
**Misc Fuel Loads: Fireplace Annual therm**
-The annual energy consumption of the fuel loads fireplace. If not provided, the OS-HPXML default (see HPXML Fuel Loads) is used.
+The annual energy consumption of the fuel loads fireplace. If 'auto' or not provided, the OS-HPXML default (see HPXML Fuel Loads) is used.
- **Name:** ``misc_fuel_loads_fireplace_annual_therm``
-- **Type:** ``Double``
-
-- **Units:** ``therm/yr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5685,12 +5409,10 @@ The annual energy consumption of the fuel loads fireplace. If not provided, the
**Misc Fuel Loads: Fireplace Sensible Fraction**
-Fraction of fireplace residual fuel loads' internal gains that are sensible. If not provided, the OS-HPXML default (see HPXML Fuel Loads) is used.
+Fraction of fireplace residual fuel loads' internal gains that are sensible. If 'auto' or not provided, the OS-HPXML default (see HPXML Fuel Loads) is used.
- **Name:** ``misc_fuel_loads_fireplace_frac_sensible``
-- **Type:** ``Double``
-
-- **Units:** ``Frac``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5698,12 +5420,10 @@ Fraction of fireplace residual fuel loads' internal gains that are sensible. If
**Misc Fuel Loads: Fireplace Latent Fraction**
-Fraction of fireplace residual fuel loads' internal gains that are latent. If not provided, the OS-HPXML default (see HPXML Fuel Loads) is used.
+Fraction of fireplace residual fuel loads' internal gains that are latent. If 'auto' or not provided, the OS-HPXML default (see HPXML Fuel Loads) is used.
- **Name:** ``misc_fuel_loads_fireplace_frac_latent``
-- **Type:** ``Double``
-
-- **Units:** ``Frac``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5711,10 +5431,10 @@ Fraction of fireplace residual fuel loads' internal gains that are latent. If no
**Misc Fuel Loads: Fireplace Usage Multiplier**
-Multiplier on the fuel loads fireplace energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Fuel Loads) is used.
+Multiplier on the fuel loads fireplace energy usage that can reflect, e.g., high/low usage occupants. If 'auto' or not provided, the OS-HPXML default (see HPXML Fuel Loads) is used.
- **Name:** ``misc_fuel_loads_fireplace_usage_multiplier``
-- **Type:** ``Double``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5722,23 +5442,21 @@ Multiplier on the fuel loads fireplace energy usage that can reflect, e.g., high
**Pool: Present**
-Whether there is a pool.
+Whether there is a pool. If not provided, defaults to false.
- **Name:** ``pool_present``
- **Type:** ``Boolean``
-- **Required:** ``true``
+- **Required:** ``false``
**Pool: Pump Annual kWh**
-The annual energy consumption of the pool pump. If not provided, the OS-HPXML default (see Pool Pump) is used.
+The annual energy consumption of the pool pump. If 'auto' or not provided, the OS-HPXML default (see Pool Pump) is used.
- **Name:** ``pool_pump_annual_kwh``
-- **Type:** ``Double``
-
-- **Units:** ``kWh/yr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5746,10 +5464,10 @@ The annual energy consumption of the pool pump. If not provided, the OS-HPXML de
**Pool: Pump Usage Multiplier**
-Multiplier on the pool pump energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see Pool Pump) is used.
+Multiplier on the pool pump energy usage that can reflect, e.g., high/low usage occupants. If 'auto' or not provided, the OS-HPXML default (see Pool Pump) is used.
- **Name:** ``pool_pump_usage_multiplier``
-- **Type:** ``Double``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5762,7 +5480,7 @@ The type of pool heater. Use 'none' if there is no pool heater.
- **Name:** ``pool_heater_type``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `none`, `electric resistance`, `gas fired`, `heat pump`
@@ -5770,12 +5488,10 @@ The type of pool heater. Use 'none' if there is no pool heater.
**Pool: Heater Annual kWh**
-The annual energy consumption of the electric resistance pool heater. If not provided, the OS-HPXML default (see Pool Heater) is used.
+The annual energy consumption of the electric resistance pool heater. If 'auto' or not provided, the OS-HPXML default (see Pool Heater) is used.
- **Name:** ``pool_heater_annual_kwh``
-- **Type:** ``Double``
-
-- **Units:** ``kWh/yr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5783,12 +5499,10 @@ The annual energy consumption of the electric resistance pool heater. If not pro
**Pool: Heater Annual therm**
-The annual energy consumption of the gas fired pool heater. If not provided, the OS-HPXML default (see Pool Heater) is used.
+The annual energy consumption of the gas fired pool heater. If 'auto' or not provided, the OS-HPXML default (see Pool Heater) is used.
- **Name:** ``pool_heater_annual_therm``
-- **Type:** ``Double``
-
-- **Units:** ``therm/yr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5796,10 +5510,10 @@ The annual energy consumption of the gas fired pool heater. If not provided, the
**Pool: Heater Usage Multiplier**
-Multiplier on the pool heater energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see Pool Heater) is used.
+Multiplier on the pool heater energy usage that can reflect, e.g., high/low usage occupants. If 'auto' or not provided, the OS-HPXML default (see Pool Heater) is used.
- **Name:** ``pool_heater_usage_multiplier``
-- **Type:** ``Double``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5807,23 +5521,21 @@ Multiplier on the pool heater energy usage that can reflect, e.g., high/low usag
**Permanent Spa: Present**
-Whether there is a permanent spa.
+Whether there is a permanent spa. If not provided, defaults to false.
- **Name:** ``permanent_spa_present``
- **Type:** ``Boolean``
-- **Required:** ``true``
+- **Required:** ``false``
**Permanent Spa: Pump Annual kWh**
-The annual energy consumption of the permanent spa pump. If not provided, the OS-HPXML default (see Permanent Spa Pump) is used.
+The annual energy consumption of the permanent spa pump. If 'auto' or not provided, the OS-HPXML default (see Permanent Spa Pump) is used.
- **Name:** ``permanent_spa_pump_annual_kwh``
-- **Type:** ``Double``
-
-- **Units:** ``kWh/yr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5831,10 +5543,10 @@ The annual energy consumption of the permanent spa pump. If not provided, the OS
**Permanent Spa: Pump Usage Multiplier**
-Multiplier on the permanent spa pump energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see Permanent Spa Pump) is used.
+Multiplier on the permanent spa pump energy usage that can reflect, e.g., high/low usage occupants. If 'auto' or not provided, the OS-HPXML default (see Permanent Spa Pump) is used.
- **Name:** ``permanent_spa_pump_usage_multiplier``
-- **Type:** ``Double``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5847,7 +5559,7 @@ The type of permanent spa heater. Use 'none' if there is no permanent spa heater
- **Name:** ``permanent_spa_heater_type``
- **Type:** ``Choice``
-- **Required:** ``true``
+- **Required:** ``false``
- **Choices:** `none`, `electric resistance`, `gas fired`, `heat pump`
@@ -5855,12 +5567,10 @@ The type of permanent spa heater. Use 'none' if there is no permanent spa heater
**Permanent Spa: Heater Annual kWh**
-The annual energy consumption of the electric resistance permanent spa heater. If not provided, the OS-HPXML default (see Permanent Spa Heater) is used.
+The annual energy consumption of the electric resistance permanent spa heater. If 'auto' or not provided, the OS-HPXML default (see Permanent Spa Heater) is used.
- **Name:** ``permanent_spa_heater_annual_kwh``
-- **Type:** ``Double``
-
-- **Units:** ``kWh/yr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5868,12 +5578,10 @@ The annual energy consumption of the electric resistance permanent spa heater. I
**Permanent Spa: Heater Annual therm**
-The annual energy consumption of the gas fired permanent spa heater. If not provided, the OS-HPXML default (see Permanent Spa Heater) is used.
+The annual energy consumption of the gas fired permanent spa heater. If 'auto' or not provided, the OS-HPXML default (see Permanent Spa Heater) is used.
- **Name:** ``permanent_spa_heater_annual_therm``
-- **Type:** ``Double``
-
-- **Units:** ``therm/yr``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5881,10 +5589,10 @@ The annual energy consumption of the gas fired permanent spa heater. If not prov
**Permanent Spa: Heater Usage Multiplier**
-Multiplier on the permanent spa heater energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see Permanent Spa Heater) is used.
+Multiplier on the permanent spa heater energy usage that can reflect, e.g., high/low usage occupants. If 'auto' or not provided, the OS-HPXML default (see Permanent Spa Heater) is used.
- **Name:** ``permanent_spa_heater_usage_multiplier``
-- **Type:** ``Double``
+- **Type:** ``String``
- **Required:** ``false``
@@ -5903,7 +5611,7 @@ Names of emissions scenarios. If multiple scenarios, use a comma-separated list.
**Emissions: Types**
-Types of emissions (e.g., CO2e, NOx, etc.). If multiple scenarios, use a comma-separated list.
+Types of emissions (e.g., CO2e, NOx, etc.}. If multiple scenarios, use a comma-separated list.
- **Name:** ``emissions_types``
- **Type:** ``String``
@@ -6277,7 +5985,7 @@ Utility bill PV monthly grid connection fees. If multiple scenarios, use a comma
**Additional Properties**
-Additional properties specified as key-value pairs (i.e., key=value). If multiple additional properties, use a |-separated list. For example, 'LowIncome=false|Remodeled|Description=2-story home in Denver'. These properties will be stored in the HPXML file under /HPXML/SoftwareInfo/extension/AdditionalProperties.
+Additional properties specified as key-value pairs (i.e., key=value}. If multiple additional properties, use a |-separated list. For example, 'LowIncome=false|Remodeled|Description=2-story home in Denver'. These properties will be stored in the HPXML file under /HPXML/SoftwareInfo/extension/AdditionalProperties.
- **Name:** ``additional_properties``
- **Type:** ``String``
diff --git a/BuildResidentialHPXML/measure.rb b/BuildResidentialHPXML/measure.rb
index 8434564b4d..050410500c 100644
--- a/BuildResidentialHPXML/measure.rb
+++ b/BuildResidentialHPXML/measure.rb
@@ -33,131 +33,252 @@ def modeler_description
return "The measure handles geometry by 1) translating high-level geometry inputs (conditioned floor area, number of stories, etc.) to 3D closed-form geometry in an OpenStudio model and then 2) mapping the OpenStudio surfaces to HPXML surfaces (using surface type, boundary condition, area, orientation, etc.). Like surfaces are collapsed into a single surface with aggregate surface area. Note: OS-HPXML default values can be found in the documentation or can be seen by using the 'apply_defaults' argument."
end
+ # TODO
+ def make_argument(name:,
+ type:,
+ required:,
+ display_name:,
+ description:,
+ units: nil,
+ choices: [],
+ default_href: nil)
+
+ fail "Specified #{type} argument with no choices." if type == Argument::Choice && choices.empty?
+ fail 'Specified required argument with indication of OS-HPXML default.' if required && !default_href.nil?
+
+ if !default_href.nil?
+ if type == Argument::Boolean
+ choices = ['true', 'false']
+ type = Argument::Choice
+ elsif [Argument::Double, Argument::Integer].include?(type)
+ type = Argument::String
+ end
+ end
+
+ if choices.empty?
+ arg = OpenStudio::Measure::OSArgument.send(type, name, required)
+ else
+ if !default_href.nil?
+ choices.unshift(Constants::Auto)
+ end
+ arg = OpenStudio::Measure::OSArgument.send(type, name, choices, required)
+ end
+ arg.setDisplayName(display_name)
+ arg.setUnits(units) if !units.nil?
+ if !default_href.nil?
+ description += " If '#{Constants::Auto}' or not provided, the OS-HPXML default (see #{default_href}) is used."
+ end
+ arg.setDescription(description)
+ return arg
+ end
+
# Define the arguments that the user will input.
#
# @param model [OpenStudio::Model::Model] OpenStudio Model object
# @return [OpenStudio::Measure::OSArgumentVector] an OpenStudio::Measure::OSArgumentVector object
def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
- docs_base_url = "https://openstudio-hpxml.readthedocs.io/en/v#{Version::OS_HPXML_Version}/workflow_inputs.html"
-
args = OpenStudio::Measure::OSArgumentVector.new
+ get_arguments.each do |arg|
+ args << make_argument(**arg)
+ end
+ return args
+ end
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('hpxml_path', true)
- arg.setDisplayName('HPXML File Path')
- arg.setDescription('Absolute/relative path of the HPXML file.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('existing_hpxml_path', false)
- arg.setDisplayName('Existing HPXML File Path')
- arg.setDescription('Absolute/relative path of the existing HPXML file. If not provided, a new HPXML file with one Building element is created. If provided, a new Building element will be appended to this HPXML file (e.g., to create a multifamily HPXML file describing multiple dwelling units).')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('whole_sfa_or_mf_building_sim', false)
- arg.setDisplayName('Whole SFA/MF Building Simulation?')
- arg.setDescription('If the HPXML file represents a single family-attached/multifamily building with multiple dwelling units defined, specifies whether to run the HPXML file as a single whole building model.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('software_info_program_used', false)
- arg.setDisplayName('Software Info: Program Used')
- arg.setDescription('The name of the software program used.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('software_info_program_version', false)
- arg.setDisplayName('Software Info: Program Version')
- arg.setDescription('The version of the software program used.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('schedules_filepaths', false)
- arg.setDisplayName('Schedules: CSV File Paths')
- arg.setDescription('Absolute/relative paths of csv files containing user-specified detailed schedules. If multiple files, use a comma-separated list.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('schedules_unavailable_period_types', false)
- arg.setDisplayName('Schedules: Unavailable Period Types')
- arg.setDescription("Specifies the unavailable period types. Possible types are column names defined in unavailable_periods.csv: #{Schedule.unavailable_period_types.join(', ')}. If multiple periods, use a comma-separated list.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('schedules_unavailable_period_dates', false)
- arg.setDisplayName('Schedules: Unavailable Period Dates')
- arg.setDescription('Specifies the unavailable period date ranges. Enter a date range like "Dec 15 - Jan 15". Optionally, can enter hour of the day like "Dec 15 2 - Jan 15 20" (start hour can be 0 through 23 and end hour can be 1 through 24). If multiple periods, use a comma-separated list.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('schedules_unavailable_period_window_natvent_availabilities', false)
- arg.setDisplayName('Schedules: Unavailable Period Window Natural Ventilation Availabilities')
- arg.setDescription("The availability of the natural ventilation schedule during unavailable periods. Valid choices are: #{[HPXML::ScheduleRegular, HPXML::ScheduleAvailable, HPXML::ScheduleUnavailable].join(', ')}. If multiple periods, use a comma-separated list. If not provided, the OS-HPXML default (see HPXML Unavailable Periods) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('simulation_control_timestep', false)
- arg.setDisplayName('Simulation Control: Timestep')
- arg.setUnits('min')
- arg.setDescription("Value must be a divisor of 60. If not provided, the OS-HPXML default (see HPXML Simulation Control) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('simulation_control_run_period', false)
- arg.setDisplayName('Simulation Control: Run Period')
- arg.setDescription("Enter a date range like 'Jan 1 - Dec 31'. If not provided, the OS-HPXML default (see HPXML Simulation Control) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('simulation_control_run_period_calendar_year', false)
- arg.setDisplayName('Simulation Control: Run Period Calendar Year')
- arg.setUnits('year')
- arg.setDescription("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. If not provided, the OS-HPXML default (see HPXML Simulation Control) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('simulation_control_daylight_saving_enabled', false)
- arg.setDisplayName('Simulation Control: Daylight Saving Enabled')
- arg.setDescription("Whether to use daylight saving. If not provided, the OS-HPXML default (see HPXML Building Site) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('simulation_control_daylight_saving_period', false)
- arg.setDisplayName('Simulation Control: Daylight Saving Period')
- arg.setDescription("Enter a date range like 'Mar 15 - Dec 15'. If not provided, the OS-HPXML default (see HPXML Building Site) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('simulation_control_temperature_capacitance_multiplier', false)
- arg.setDisplayName('Simulation Control: Temperature Capacitance Multiplier')
- arg.setDescription("Affects the transient calculation of indoor air temperatures. If not provided, the OS-HPXML default (see HPXML Simulation Control) is used.")
- args << arg
+ # TODO
+ def get_arguments
+ docs_base_url = "https://openstudio-hpxml.readthedocs.io/en/v#{Version::OS_HPXML_Version}/workflow_inputs.html"
+
+ args = []
+
+ args << {
+ name: 'hpxml_path',
+ type: Argument::String,
+ required: true,
+ display_name: 'HPXML File Path',
+ description: 'Absolute/relative path of the HPXML file.'
+ }
+
+ args << {
+ name: 'existing_hpxml_path',
+ type: Argument::String,
+ required: false,
+ display_name: 'Existing HPXML File Path',
+ description: 'Absolute/relative path of the existing HPXML file. If not provided, a new HPXML file with one Building element is created. If provided, a new Building element will be appended to this HPXML file (e.g., to create a multifamily HPXML file describing multiple dwelling units}.'
+ }
+
+ args << {
+ name: 'whole_sfa_or_mf_building_sim',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Whole SFA/MF Building Simulation?',
+ description: 'If the HPXML file represents a single family-attached/multifamily building with multiple dwelling units defined, specifies whether to run the HPXML file as a single whole building model.'
+ }
+
+ args << {
+ name: 'software_info_program_used',
+ type: Argument::String,
+ required: false,
+ display_name: 'Software Info: Program Used',
+ description: 'The name of the software program used.'
+ }
+
+ args << {
+ name: 'software_info_program_version',
+ type: Argument::String,
+ required: false,
+ display_name: 'Software Info: Program Version',
+ description: 'The version of the software program used.'
+ }
+
+ args << {
+ name: 'schedules_filepaths',
+ type: Argument::String,
+ required: false,
+ display_name: 'Schedules: CSV File Paths',
+ description: 'Absolute/relative paths of csv files containing user-specified detailed schedules. If multiple files, use a comma-separated list.'
+ }
+
+ args << {
+ name: 'schedules_unavailable_period_types',
+ type: Argument::String,
+ required: false,
+ display_name: 'Schedules: Unavailable Period Types',
+ description: "Specifies the unavailable period types. Possible types are column names defined in unavailable_periods.csv: #{Schedule.unavailable_period_types.join(', ')}. If multiple periods, use a comma-separated list."
+ }
+
+ args << {
+ name: 'schedules_unavailable_period_dates',
+ type: Argument::String,
+ required: false,
+ display_name: 'Schedules: Unavailable Period Dates',
+ description: 'Specifies the unavailable period date ranges. Enter a date range like "Dec 15 - Jan 15". Optionally, can enter hour of the day like "Dec 15 2 - Jan 15 20" (start hour can be 0 through 23 and end hour can be 1 through 24}. If multiple periods, use a comma-separated list.'
+ }
+
+ args << {
+ name: 'schedules_unavailable_period_window_natvent_availabilities',
+ type: Argument::String,
+ required: false,
+ display_name: 'Schedules: Unavailable Period Window Natural Ventilation Availabilities',
+ description: "The availability of the natural ventilation schedule during unavailable periods. Valid choices are: #{[HPXML::ScheduleRegular, HPXML::ScheduleAvailable, HPXML::ScheduleUnavailable].join(', ')}. If multiple periods, use a comma-separated list.",
+ default_href: "HPXML Unavailable Periods"
+ }
+
+ args << {
+ name: 'simulation_control_timestep',
+ type: Argument::Integer,
+ required: false,
+ display_name: 'Simulation Control: Timestep',
+ description: 'Value must be a divisor of 60.',
+ units: 'min',
+ default_href: "HPXML Simulation Control"
+ }
+
+ args << {
+ name: 'simulation_control_run_period',
+ type: Argument::String,
+ required: false,
+ display_name: 'Simulation Control: Run Period',
+ description: "Enter a date range like 'Jan 1 - Dec 31'. If not provided, the OS-HPXML default (see HPXML Simulation Control) is used."
+ }
+
+ args << {
+ name: 'simulation_control_run_period_calendar_year',
+ type: Argument::Integer,
+ required: false,
+ display_name: 'Simulation Control: Run Period Calendar Year',
+ units: 'year',
+ description: '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.',
+ default_href: "HPXML Simulation Control"
+ }
+
+ args << {
+ name: 'simulation_control_daylight_saving_enabled',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Simulation Control: Daylight Saving Enabled',
+ description: 'Whether to use daylight saving.',
+ default_href: "HPXML Building Site"
+ }
+
+ args << {
+ name: 'simulation_control_daylight_saving_period',
+ type: Argument::String,
+ required: false,
+ display_name: 'Simulation Control: Daylight Saving Period',
+ description: "Enter a date range like 'Mar 15 - Dec 15'.",
+ default_href: "HPXML Building Site"
+ }
+
+ args << {
+ name: 'simulation_control_temperature_capacitance_multiplier',
+ type: Argument::Double,
+ required: false,
+ display_name: 'Simulation Control: Temperature Capacitance Multiplier',
+ description: 'Affects the transient calculation of indoor air temperatures.',
+ default_href: "HPXML Simulation Control"
+ }
defrost_model_type_choices = OpenStudio::StringVector.new
defrost_model_type_choices << HPXML::AdvancedResearchDefrostModelTypeStandard
defrost_model_type_choices << HPXML::AdvancedResearchDefrostModelTypeAdvanced
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('simulation_control_defrost_model_type', defrost_model_type_choices, false)
- arg.setDisplayName('Simulation Control: Defrost Model Type')
- arg.setDescription("Research feature to select the type of defrost model. Use #{HPXML::AdvancedResearchDefrostModelTypeStandard} for default E+ defrost setting. Use #{HPXML::AdvancedResearchDefrostModelTypeAdvanced} for an improved model that better accounts for load and energy use during defrost; using #{HPXML::AdvancedResearchDefrostModelTypeAdvanced} may impact simulation runtime. If not provided, the OS-HPXML default (see HPXML Simulation Control) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('simulation_control_onoff_thermostat_deadband', false)
- arg.setDisplayName('Simulation Control: HVAC On-Off Thermostat Deadband')
- arg.setDescription('Research feature to model on-off thermostat deadband and start-up degradation for single or two speed AC/ASHP systems, and realistic time-based staging for two speed AC/ASHP systems. Currently only supported with 1 min timestep.')
- arg.setUnits('deg-F')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('simulation_control_heat_pump_backup_heating_capacity_increment', false)
- arg.setDisplayName('Simulation Control: Heat Pump Backup Heating Capacity Increment')
- arg.setDescription("Research feature to model capacity increment of multi-stage heat pump backup systems with time-based staging. Only applies to air-source heat pumps where Backup Type is '#{HPXML::HeatPumpBackupTypeIntegrated}' and Backup Fuel Type is '#{HPXML::FuelTypeElectricity}'. Currently only supported with 1 min timestep.")
- arg.setUnits('Btu/hr')
- args << arg
+
+ args << {
+ name: 'simulation_control_defrost_model_type',
+ type: Argument::Choice,
+ required: false,
+ display_name: 'Simulation Control: Defrost Model Type',
+ description: "Research feature to select the type of defrost model. Use #{HPXML::AdvancedResearchDefrostModelTypeStandard} for default E+ defrost setting. Use #{HPXML::AdvancedResearchDefrostModelTypeAdvanced} for an improved model that better accounts for load and energy use during defrost; using #{HPXML::AdvancedResearchDefrostModelTypeAdvanced} may impact simulation runtime.",
+ choices: defrost_model_type_choices,
+ default_href: "HPXML Simulation Control"
+ }
+
+ args << {
+ name: 'simulation_control_onoff_thermostat_deadband',
+ type: Argument::Double,
+ required: false,
+ display_name: 'Simulation Control: HVAC On-Off Thermostat Deadband',
+ description: 'Research feature to model on-off thermostat deadband and start-up degradation for single or two speed AC/ASHP systems, and realistic time-based staging for two speed AC/ASHP systems. Currently only supported with 1 min timestep.',
+ units: 'deg-F'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'simulation_control_heat_pump_backup_heating_capacity_increment',
+ required: false,
+ display_name: 'Simulation Control: Heat Pump Backup Heating Capacity Increment',
+ description: "Research feature to model capacity increment of multi-stage heat pump backup systems with time-based staging. Only applies to air-source heat pumps where Backup Type is '#{HPXML::HeatPumpBackupTypeIntegrated}' and Backup Fuel Type is '#{HPXML::FuelTypeElectricity}'. Currently only supported with 1 min timestep.",
+ units: 'Btu/hr'
+ }
site_type_choices = OpenStudio::StringVector.new
site_type_choices << HPXML::SiteTypeSuburban
site_type_choices << HPXML::SiteTypeUrban
site_type_choices << HPXML::SiteTypeRural
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('site_type', site_type_choices, false)
- arg.setDisplayName('Site: Type')
- arg.setDescription("The type of site. If not provided, the OS-HPXML default (see HPXML Site) is used.")
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'site_type',
+ choices: site_type_choices,
+ required: false,
+ display_name: 'Site: Type',
+ description: 'The type of site.',
+ default_href: "HPXML Site"
+ }
site_shielding_of_home_choices = OpenStudio::StringVector.new
site_shielding_of_home_choices << HPXML::ShieldingExposed
site_shielding_of_home_choices << HPXML::ShieldingNormal
site_shielding_of_home_choices << HPXML::ShieldingWellShielded
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('site_shielding_of_home', site_shielding_of_home_choices, false)
- arg.setDisplayName('Site: Shielding of Home')
- arg.setDescription("Presence of nearby buildings, trees, obstructions for infiltration model. If not provided, the OS-HPXML default (see HPXML Site) is used.")
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'site_shielding_of_home',
+ choices: site_shielding_of_home_choices,
+ required: false,
+ display_name: 'Site: Shielding of Home',
+ description: 'Presence of nearby buildings, trees, obstructions for infiltration model.',
+ default_href: "HPXML Site"
+ }
soil_types = [HPXML::SiteSoilTypeClay,
HPXML::SiteSoilTypeGravel,
@@ -177,86 +298,134 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
end
end
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('site_soil_and_moisture_type', site_soil_and_moisture_type_choices, false)
- arg.setDisplayName('Site: Soil and Moisture Type')
- arg.setDescription("Type of soil and moisture. This is used to inform ground conductivity and diffusivity. If not provided, the OS-HPXML default (see HPXML Site) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeDoubleArgument('site_ground_conductivity', false)
- arg.setDisplayName('Site: Ground Conductivity')
- arg.setDescription('Conductivity of the ground soil. If provided, overrides the previous site and moisture type input.')
- arg.setUnits('Btu/hr-ft-F')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeDoubleArgument('site_ground_diffusivity', false)
- arg.setDisplayName('Site: Ground Diffusivity')
- arg.setDescription('Diffusivity of the ground soil. If provided, overrides the previous site and moisture type input.')
- arg.setUnits('ft^2/hr')
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'site_soil_and_moisture_type',
+ choices: site_soil_and_moisture_type_choices,
+ required: false,
+ display_name: 'Site: Soil and Moisture Type',
+ description: 'Type of soil and moisture. This is used to inform ground conductivity and diffusivity.',
+ default_href: "HPXML Site"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'site_ground_conductivity',
+ required: false,
+ display_name: 'Site: Ground Conductivity',
+ description: 'Conductivity of the ground soil. If provided, overrides the previous site and moisture type input.',
+ units: 'Btu/hr-ft-F'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'site_ground_diffusivity',
+ required: false,
+ display_name: 'Site: Ground Diffusivity',
+ description: 'Diffusivity of the ground soil. If provided, overrides the previous site and moisture type input.',
+ units: 'ft^2/hr'
+ }
site_iecc_zone_choices = OpenStudio::StringVector.new
Constants::IECCZones.each do |iz|
site_iecc_zone_choices << iz
end
- arg = OpenStudio::Measure::OSArgument.makeChoiceArgument('site_iecc_zone', site_iecc_zone_choices, false)
- arg.setDisplayName('Site: IECC Zone')
- arg.setDescription('IECC zone of the home address.')
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'site_iecc_zone',
+ choices: site_iecc_zone_choices,
+ required: false,
+ display_name: 'Site: IECC Zone',
+ description: 'IECC zone of the home address.'
+ }
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('site_city', false)
- arg.setDisplayName('Site: City')
- arg.setDescription('City/municipality of the home address.')
- args << arg
+ args << {
+ type: Argument::String,
+ name: 'site_city',
+ required: false,
+ display_name: 'Site: City',
+ description: 'City/municipality of the home address.'
+ }
site_state_code_choices = OpenStudio::StringVector.new
Constants::StateCodesMap.keys.each do |sc|
site_state_code_choices << sc
end
- arg = OpenStudio::Measure::OSArgument.makeChoiceArgument('site_state_code', site_state_code_choices, false)
- arg.setDisplayName('Site: State Code')
- arg.setDescription("State code of the home address. If not provided, the OS-HPXML default (see HPXML Site) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('site_zip_code', false)
- arg.setDisplayName('Site: Zip Code')
- arg.setDescription('Zip code of the home address. Either this or the Weather Station: EnergyPlus Weather (EPW) Filepath input below must be provided.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeDoubleArgument('site_time_zone_utc_offset', false)
- arg.setDisplayName('Site: Time Zone UTC Offset')
- arg.setDescription("Time zone UTC offset of the home address. Must be between -12 and 14. If not provided, the OS-HPXML default (see HPXML Site) is used.")
- arg.setUnits('hr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeDoubleArgument('site_elevation', false)
- arg.setDisplayName('Site: Elevation')
- arg.setDescription("Elevation of the home address. If not provided, the OS-HPXML default (see HPXML Site) is used.")
- arg.setUnits('ft')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeDoubleArgument('site_latitude', false)
- arg.setDisplayName('Site: Latitude')
- arg.setDescription("Latitude of the home address. Must be between -90 and 90. Use negative values for southern hemisphere. If not provided, the OS-HPXML default (see HPXML Site) is used.")
- arg.setUnits('deg')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeDoubleArgument('site_longitude', false)
- arg.setDisplayName('Site: Longitude')
- arg.setDescription("Longitude of the home address. Must be between -180 and 180. Use negative values for the western hemisphere. If not provided, the OS-HPXML default (see HPXML Site) is used.")
- arg.setUnits('deg')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('weather_station_epw_filepath', false)
- arg.setDisplayName('Weather Station: EnergyPlus Weather (EPW) Filepath')
- arg.setDescription('Path of the EPW file. Either this or the Site: Zip Code input above must be provided.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeIntegerArgument('year_built', false)
- arg.setDisplayName('Building Construction: Year Built')
- arg.setDescription('The year the building was built.')
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'site_state_code',
+ choices: site_state_code_choices,
+ required: false,
+ display_name: 'Site: State Code',
+ description: 'State code of the home address.',
+ default_href: "HPXML Site"
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'site_zip_code',
+ required: false,
+ display_name: 'Site: Zip Code',
+ description: 'Zip code of the home address. Either this or the Weather Station: EnergyPlus Weather (EPW} Filepath input below must be provided.'
+ }
+
+ args << {
+ name: 'site_time_zone_utc_offset',
+ type: Argument::Double,
+ required: false,
+ display_name: 'Site: Time Zone UTC Offset',
+ description: 'Time zone UTC offset of the home address. Must be between -12 and 14.',
+ units: 'hr',
+ default_href: "HPXML Site"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'site_elevation',
+ required: false,
+ display_name: 'Site: Elevation',
+ description: 'Elevation of the home address.',
+ units: 'ft',
+ default_href: "HPXML Site"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'site_latitude',
+ required: false,
+ display_name: 'Site: Latitude',
+ description: 'Latitude of the home address. Must be between -90 and 90. Use negative values for southern hemisphere.',
+ units: 'deg',
+ default_href: "HPXML Site"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'site_longitude',
+ required: false,
+ display_name: 'Site: Longitude',
+ description: 'Longitude of the home address. Must be between -180 and 180. Use negative values for the western hemisphere.',
+ units: 'deg',
+ default_href: "HPXML Site"
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'weather_station_epw_filepath',
+ required: false,
+ display_name: 'Weather Station: EnergyPlus Weather (EPW} Filepath',
+ description: 'Path of the EPW file. Either this or the Site: Zip Code input above must be provided.'
+ }
+
+ args << {
+ name: 'year_built',
+ type: Argument::Integer,
+ required: false,
+ display_name: 'Building Construction: Year Built',
+ description: 'The year the building was built.'
+ }
unit_type_choices = OpenStudio::StringVector.new
unit_type_choices << HPXML::ResidentialTypeSFD
@@ -264,137 +433,186 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
unit_type_choices << HPXML::ResidentialTypeApartment
unit_type_choices << HPXML::ResidentialTypeManufactured
- arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('unit_multiplier', false)
- arg.setDisplayName('Building Construction: Unit Multiplier')
- arg.setDescription('The number of similar dwelling units. EnergyPlus simulation results will be multiplied this value. If not provided, defaults to 1.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('geometry_unit_type', unit_type_choices, true)
- arg.setDisplayName('Geometry: Unit Type')
- arg.setDescription("The type of dwelling unit. Use #{HPXML::ResidentialTypeSFA} for a dwelling unit with 1 or more stories, attached units to one or both sides, and no units above/below. Use #{HPXML::ResidentialTypeApartment} for a dwelling unit with 1 story, attached units to one, two, or three sides, and units above and/or below.")
- arg.setDefaultValue(HPXML::ResidentialTypeSFD)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('geometry_unit_left_wall_is_adiabatic', false)
- arg.setDisplayName('Geometry: Unit Left Wall Is Adiabatic')
- arg.setDescription('Presence of an adiabatic left wall.')
- arg.setDefaultValue(false)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('geometry_unit_right_wall_is_adiabatic', false)
- arg.setDisplayName('Geometry: Unit Right Wall Is Adiabatic')
- arg.setDescription('Presence of an adiabatic right wall.')
- arg.setDefaultValue(false)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('geometry_unit_front_wall_is_adiabatic', false)
- arg.setDisplayName('Geometry: Unit Front Wall Is Adiabatic')
- arg.setDescription('Presence of an adiabatic front wall, for example, the unit is adjacent to a conditioned corridor.')
- arg.setDefaultValue(false)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('geometry_unit_back_wall_is_adiabatic', false)
- arg.setDisplayName('Geometry: Unit Back Wall Is Adiabatic')
- arg.setDescription('Presence of an adiabatic back wall.')
- arg.setDefaultValue(false)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('geometry_unit_num_floors_above_grade', true)
- arg.setDisplayName('Geometry: Unit Number of Floors Above Grade')
- arg.setUnits('#')
- arg.setDescription("The number of floors above grade in the unit. Attic type #{HPXML::AtticTypeConditioned} is included. Assumed to be 1 for #{HPXML::ResidentialTypeApartment}s.")
- arg.setDefaultValue(2)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('geometry_unit_cfa', true)
- arg.setDisplayName('Geometry: Unit Conditioned Floor Area')
- arg.setUnits('ft^2')
- arg.setDescription("The total floor area of the unit's conditioned space (including any conditioned basement floor area).")
- arg.setDefaultValue(2000.0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('geometry_unit_aspect_ratio', true)
- arg.setDisplayName('Geometry: Unit Aspect Ratio')
- arg.setUnits('Frac')
- arg.setDescription('The ratio of front/back wall length to left/right wall length for the unit, excluding any protruding garage wall area.')
- arg.setDefaultValue(2.0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('geometry_unit_orientation', true)
- arg.setDisplayName('Geometry: Unit Orientation')
- arg.setUnits('degrees')
- arg.setDescription("The unit's orientation is measured clockwise from north (e.g., North=0, East=90, South=180, West=270).")
- arg.setDefaultValue(180.0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('geometry_unit_num_bedrooms', true)
- arg.setDisplayName('Geometry: Unit Number of Bedrooms')
- arg.setUnits('#')
- arg.setDescription('The number of bedrooms in the unit.')
- arg.setDefaultValue(3)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('geometry_unit_num_bathrooms', false)
- arg.setDisplayName('Geometry: Unit Number of Bathrooms')
- arg.setUnits('#')
- arg.setDescription("The number of bathrooms in the unit. If not provided, the OS-HPXML default (see HPXML Building Construction) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('geometry_unit_num_occupants', false)
- arg.setDisplayName('Geometry: Unit Number of Occupants')
- arg.setUnits('#')
- arg.setDescription('The number of occupants in the unit. If not provided, an *asset* calculation is performed assuming standard occupancy, in which various end use defaults (e.g., plug loads, appliances, and hot water usage) are calculated based on Number of Bedrooms and Conditioned Floor Area per ANSI/RESNET/ICC 301-2019. If provided, an *operational* calculation is instead performed in which the end use defaults are adjusted using the relationship between Number of Bedrooms and Number of Occupants from RECS 2015.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('geometry_building_num_units', false)
- arg.setDisplayName('Geometry: Building Number of Units')
- arg.setUnits('#')
- arg.setDescription("The number of units in the building. Required for #{HPXML::ResidentialTypeSFA} and #{HPXML::ResidentialTypeApartment}s.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('geometry_average_ceiling_height', true)
- arg.setDisplayName('Geometry: Average Ceiling Height')
- arg.setUnits('ft')
- arg.setDescription('Average distance from the floor to the ceiling.')
- arg.setDefaultValue(8.0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('geometry_unit_height_above_grade', false)
- arg.setDisplayName('Geometry: Unit Height Above Grade')
- arg.setUnits('ft')
- arg.setDescription("Describes the above-grade height of apartment units on upper floors or homes above ambient or belly-and-wing foundations. It is defined as the height of the lowest conditioned floor above grade and is used to calculate the wind speed for the infiltration model. If not provided, the OS-HPXML default (see HPXML Building Construction) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('geometry_garage_width', true)
- arg.setDisplayName('Geometry: Garage Width')
- arg.setUnits('ft')
- arg.setDescription("The width of the garage. Enter zero for no garage. Only applies to #{HPXML::ResidentialTypeSFD} units.")
- arg.setDefaultValue(0.0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('geometry_garage_depth', true)
- arg.setDisplayName('Geometry: Garage Depth')
- arg.setUnits('ft')
- arg.setDescription("The depth of the garage. Only applies to #{HPXML::ResidentialTypeSFD} units.")
- arg.setDefaultValue(20.0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('geometry_garage_protrusion', true)
- arg.setDisplayName('Geometry: Garage Protrusion')
- arg.setUnits('Frac')
- arg.setDescription("The fraction of the garage that is protruding from the conditioned space. Only applies to #{HPXML::ResidentialTypeSFD} units.")
- arg.setDefaultValue(0.0)
- args << arg
+ args << {
+ type: Argument::Integer,
+ name: 'unit_multiplier',
+ required: false,
+ display_name: 'Building Construction: Unit Multiplier',
+ description: 'The number of similar dwelling units. EnergyPlus simulation results will be multiplied this value. If not provided, defaults to 1.'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'geometry_unit_type',
+ choices: unit_type_choices,
+ required: true,
+ display_name: 'Geometry: Unit Type',
+ description: "The type of dwelling unit. Use #{HPXML::ResidentialTypeSFA} for a dwelling unit with 1 or more stories, attached units to one or both sides, and no units above/below. Use #{HPXML::ResidentialTypeApartment} for a dwelling unit with 1 story, attached units to one, two, or three sides, and units above and/or below."
+ }
+
+ args << {
+ name: 'geometry_unit_left_wall_is_adiabatic',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Geometry: Unit Left Wall Is Adiabatic',
+ description: 'Presence of an adiabatic left wall.'
+ }
+
+ args << {
+ name: 'geometry_unit_right_wall_is_adiabatic',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Geometry: Unit Right Wall Is Adiabatic',
+ description: 'Presence of an adiabatic right wall.'
+ }
+
+ args << {
+ name: 'geometry_unit_front_wall_is_adiabatic',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Geometry: Unit Front Wall Is Adiabatic',
+ description: 'Presence of an adiabatic front wall, for example, the unit is adjacent to a conditioned corridor.'
+ }
+
+ args << {
+ name: 'geometry_unit_back_wall_is_adiabatic',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Geometry: Unit Back Wall Is Adiabatic',
+ description: 'Presence of an adiabatic back wall.'
+ }
+
+ args << {
+ type: Argument::Integer,
+ name: 'geometry_unit_num_floors_above_grade',
+ required: true,
+ display_name: 'Geometry: Unit Number of Floors Above Grade',
+ units: '#',
+ description: "The number of floors above grade in the unit. Attic type #{HPXML::AtticTypeConditioned} is included. Assumed to be 1 for #{HPXML::ResidentialTypeApartment}s."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'geometry_unit_cfa',
+ required: true,
+ display_name: 'Geometry: Unit Conditioned Floor Area',
+ units: 'ft^2',
+ description: "The total floor area of the unit's conditioned space (including any conditioned basement floor area}."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'geometry_unit_aspect_ratio',
+ required: true,
+ display_name: 'Geometry: Unit Aspect Ratio',
+ units: 'Frac',
+ description: 'The ratio of front/back wall length to left/right wall length for the unit, excluding any protruding garage wall area.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'geometry_unit_orientation',
+ required: true,
+ display_name: 'Geometry: Unit Orientation',
+ units: 'degrees',
+ description: "The unit's orientation is measured clockwise from north (e.g., North=0, East=90, South=180, West=270}."
+ }
+
+ args << {
+ type: Argument::Integer,
+ name: 'geometry_unit_num_bedrooms',
+ required: true,
+ display_name: 'Geometry: Unit Number of Bedrooms',
+ units: '#',
+ description: 'The number of bedrooms in the unit.'
+ }
+
+ args << {
+ type: Argument::Integer,
+ name: 'geometry_unit_num_bathrooms',
+ required: false,
+ display_name: 'Geometry: Unit Number of Bathrooms',
+ units: '#',
+ description: 'The number of bathrooms in the unit.',
+ default_href: "HPXML Building Construction"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'geometry_unit_num_occupants',
+ required: false,
+ display_name: 'Geometry: Unit Number of Occupants',
+ units: '#',
+ description: 'The number of occupants in the unit. If not provided, an *asset* calculation is performed assuming standard occupancy, in which various end use defaults (e.g., plug loads, appliances, and hot water usage} are calculated based on Number of Bedrooms and Conditioned Floor Area per ANSI/RESNET/ICC 301-2019. If provided, an *operational* calculation is instead performed in which the end use defaults are adjusted using the relationship between Number of Bedrooms and Number of Occupants from RECS 2015.'
+ }
+
+ args << {
+ type: Argument::Integer,
+ name: 'geometry_building_num_units',
+ required: false,
+ display_name: 'Geometry: Building Number of Units',
+ units: '#',
+ description: "The number of units in the building. Required for #{HPXML::ResidentialTypeSFA} and #{HPXML::ResidentialTypeApartment}s."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'geometry_average_ceiling_height',
+ required: true,
+ display_name: 'Geometry: Average Ceiling Height',
+ units: 'ft',
+ description: 'Average distance from the floor to the ceiling.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'geometry_unit_height_above_grade',
+ required: false,
+ display_name: 'Geometry: Unit Height Above Grade',
+ units: 'ft',
+ description: 'Describes the above-grade height of apartment units on upper floors or homes above ambient or belly-and-wing foundations. It is defined as the height of the lowest conditioned floor above grade and is used to calculate the wind speed for the infiltration model.',
+ default_href: "HPXML Building Construction"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'geometry_garage_width',
+ required: false,
+ display_name: 'Geometry: Garage Width',
+ units: 'ft',
+ description: "The width of the garage. Only applies to #{HPXML::ResidentialTypeSFD} units. If not provided, defaults to zero (no garage}."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'geometry_garage_depth',
+ required: false,
+ display_name: 'Geometry: Garage Depth',
+ units: 'ft',
+ description: "The depth of the garage. Only applies to #{HPXML::ResidentialTypeSFD} units. If not provided, defaults to zero (no garage}."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'geometry_garage_protrusion',
+ required: false,
+ display_name: 'Geometry: Garage Protrusion',
+ units: 'Frac',
+ description: "The fraction of the garage that is protruding from the conditioned space. Only applies to #{HPXML::ResidentialTypeSFD} units. If not provided, defaults to zero (no protrusion)."
+ }
garage_position_choices = OpenStudio::StringVector.new
garage_position_choices << Constants::PositionRight
garage_position_choices << Constants::PositionLeft
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('geometry_garage_position', garage_position_choices, true)
- arg.setDisplayName('Geometry: Garage Position')
- arg.setDescription("The position of the garage. Only applies to #{HPXML::ResidentialTypeSFD} units.")
- arg.setDefaultValue(Constants::PositionRight)
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'geometry_garage_position',
+ choices: garage_position_choices,
+ required: false,
+ display_name: 'Geometry: Garage Position',
+ description: "The position of the garage. Only applies to #{HPXML::ResidentialTypeSFD} units. If not provided, defaults to #{Constants::PositionRight}."
+ }
foundation_type_choices = OpenStudio::StringVector.new
foundation_type_choices << HPXML::FoundationTypeSlab
@@ -408,31 +626,41 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
foundation_type_choices << "#{HPXML::FoundationTypeBellyAndWing}WithSkirt"
foundation_type_choices << "#{HPXML::FoundationTypeBellyAndWing}NoSkirt"
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('geometry_foundation_type', foundation_type_choices, true)
- arg.setDisplayName('Geometry: Foundation Type')
- arg.setDescription("The foundation type of the building. Foundation types #{HPXML::FoundationTypeBasementConditioned} and #{HPXML::FoundationTypeCrawlspaceConditioned} are not allowed for #{HPXML::ResidentialTypeApartment}s.")
- arg.setDefaultValue(HPXML::FoundationTypeSlab)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('geometry_foundation_height', true)
- arg.setDisplayName('Geometry: Foundation Height')
- arg.setUnits('ft')
- arg.setDescription('The height of the foundation (e.g., 3ft for crawlspace, 8ft for basement). Only applies to basements/crawlspaces.')
- arg.setDefaultValue(0.0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('geometry_foundation_height_above_grade', true)
- arg.setDisplayName('Geometry: Foundation Height Above Grade')
- arg.setUnits('ft')
- arg.setDescription('The depth above grade of the foundation wall. Only applies to basements/crawlspaces.')
- arg.setDefaultValue(0.0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('geometry_rim_joist_height', false)
- arg.setDisplayName('Geometry: Rim Joist Height')
- arg.setUnits('in')
- arg.setDescription('The height of the rim joists. Only applies to basements/crawlspaces.')
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'geometry_foundation_type',
+ choices: foundation_type_choices,
+ required: true,
+ display_name: 'Geometry: Foundation Type',
+ description: "The foundation type of the building. Foundation types #{HPXML::FoundationTypeBasementConditioned} and #{HPXML::FoundationTypeCrawlspaceConditioned} are not allowed for #{HPXML::ResidentialTypeApartment}s."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'geometry_foundation_height',
+ required: false,
+ display_name: 'Geometry: Foundation Height',
+ units: 'ft',
+ description: 'The height of the foundation (e.g., 3ft for crawlspace, 8ft for basement}. Only applies to basements/crawlspaces.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'geometry_foundation_height_above_grade',
+ required: false,
+ display_name: 'Geometry: Foundation Height Above Grade',
+ units: 'ft',
+ description: 'The depth above grade of the foundation wall. Only applies to basements/crawlspaces.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'geometry_rim_joist_height',
+ required: false,
+ display_name: 'Geometry: Rim Joist Height',
+ units: 'in',
+ description: 'The height of the rim joists. Only applies to basements/crawlspaces.'
+ }
attic_type_choices = OpenStudio::StringVector.new
attic_type_choices << HPXML::AtticTypeFlatRoof
@@ -441,21 +669,27 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
attic_type_choices << HPXML::AtticTypeConditioned
attic_type_choices << HPXML::AtticTypeBelowApartment # I.e., adiabatic
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('geometry_attic_type', attic_type_choices, true)
- arg.setDisplayName('Geometry: Attic Type')
- arg.setDescription("The attic type of the building. Attic type #{HPXML::AtticTypeConditioned} is not allowed for #{HPXML::ResidentialTypeApartment}s.")
- arg.setDefaultValue(HPXML::AtticTypeVented)
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'geometry_attic_type',
+ choices: attic_type_choices,
+ required: true,
+ display_name: 'Geometry: Attic Type',
+ description: "The attic type of the building. Attic type #{HPXML::AtticTypeConditioned} is not allowed for #{HPXML::ResidentialTypeApartment}s."
+ }
roof_type_choices = OpenStudio::StringVector.new
roof_type_choices << Constants::RoofTypeGable
roof_type_choices << Constants::RoofTypeHip
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('geometry_roof_type', roof_type_choices, true)
- arg.setDisplayName('Geometry: Roof Type')
- arg.setDescription('The roof type of the building. Ignored if the building has a flat roof.')
- arg.setDefaultValue(Constants::RoofTypeGable)
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'geometry_roof_type',
+ choices: roof_type_choices,
+ required: false,
+ display_name: 'Geometry: Roof Type',
+ description: 'The roof type of the building. Ignored if the building has a flat roof.'
+ }
roof_pitch_choices = OpenStudio::StringVector.new
roof_pitch_choices << '1:12'
@@ -471,84 +705,117 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
roof_pitch_choices << '11:12'
roof_pitch_choices << '12:12'
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('geometry_roof_pitch', roof_pitch_choices, true)
- arg.setDisplayName('Geometry: Roof Pitch')
- arg.setDescription('The roof pitch of the attic. Ignored if the building has a flat roof.')
- arg.setDefaultValue('6:12')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('geometry_eaves_depth', true)
- arg.setDisplayName('Geometry: Eaves Depth')
- arg.setUnits('ft')
- arg.setDescription('The eaves depth of the roof.')
- arg.setDefaultValue(2.0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('neighbor_front_distance', true)
- arg.setDisplayName('Neighbor: Front Distance')
- arg.setUnits('ft')
- arg.setDescription('The distance between the unit and the neighboring building to the front (not including eaves). A value of zero indicates no neighbors. Used for shading.')
- arg.setDefaultValue(0.0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('neighbor_back_distance', true)
- arg.setDisplayName('Neighbor: Back Distance')
- arg.setUnits('ft')
- arg.setDescription('The distance between the unit and the neighboring building to the back (not including eaves). A value of zero indicates no neighbors. Used for shading.')
- arg.setDefaultValue(0.0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('neighbor_left_distance', true)
- arg.setDisplayName('Neighbor: Left Distance')
- arg.setUnits('ft')
- arg.setDescription('The distance between the unit and the neighboring building to the left (not including eaves). A value of zero indicates no neighbors. Used for shading.')
- arg.setDefaultValue(10.0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('neighbor_right_distance', true)
- arg.setDisplayName('Neighbor: Right Distance')
- arg.setUnits('ft')
- arg.setDescription('The distance between the unit and the neighboring building to the right (not including eaves). A value of zero indicates no neighbors. Used for shading.')
- arg.setDefaultValue(10.0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('neighbor_front_height', false)
- arg.setDisplayName('Neighbor: Front Height')
- arg.setUnits('ft')
- arg.setDescription("The height of the neighboring building to the front. If not provided, the OS-HPXML default (see HPXML Neighbor Building) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('neighbor_back_height', false)
- arg.setDisplayName('Neighbor: Back Height')
- arg.setUnits('ft')
- arg.setDescription("The height of the neighboring building to the back. If not provided, the OS-HPXML default (see HPXML Neighbor Building) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('neighbor_left_height', false)
- arg.setDisplayName('Neighbor: Left Height')
- arg.setUnits('ft')
- arg.setDescription("The height of the neighboring building to the left. If not provided, the OS-HPXML default (see HPXML Neighbor Building) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('neighbor_right_height', false)
- arg.setDisplayName('Neighbor: Right Height')
- arg.setUnits('ft')
- arg.setDescription("The height of the neighboring building to the right. If not provided, the OS-HPXML default (see HPXML Neighbor Building) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('floor_over_foundation_assembly_r', true)
- arg.setDisplayName('Floor: Over Foundation Assembly R-value')
- arg.setUnits('h-ft^2-R/Btu')
- arg.setDescription('Assembly R-value for the floor over the foundation. Ignored if the building has a slab-on-grade foundation.')
- arg.setDefaultValue(28.1)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('floor_over_garage_assembly_r', true)
- arg.setDisplayName('Floor: Over Garage Assembly R-value')
- arg.setUnits('h-ft^2-R/Btu')
- arg.setDescription('Assembly R-value for the floor over the garage. Ignored unless the building has a garage under conditioned space.')
- arg.setDefaultValue(28.1)
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'geometry_roof_pitch',
+ choices: roof_pitch_choices,
+ required: false,
+ display_name: 'Geometry: Roof Pitch',
+ description: 'The roof pitch of the attic. Ignored if the building has a flat roof.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'geometry_eaves_depth',
+ required: false,
+ display_name: 'Geometry: Eaves Depth',
+ units: 'ft',
+ description: 'The eaves depth of the roof.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'neighbor_front_distance',
+ required: false,
+ display_name: 'Neighbor: Front Distance',
+ units: 'ft',
+ description: 'The distance between the unit and the neighboring building to the front (not including eaves}. A value of zero indicates no neighbors. Used for shading.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'neighbor_back_distance',
+ required: false,
+ display_name: 'Neighbor: Back Distance',
+ units: 'ft',
+ description: 'The distance between the unit and the neighboring building to the back (not including eaves}. A value of zero indicates no neighbors. Used for shading.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'neighbor_left_distance',
+ required: false,
+ display_name: 'Neighbor: Left Distance',
+ units: 'ft',
+ description: 'The distance between the unit and the neighboring building to the left (not including eaves}. A value of zero indicates no neighbors. Used for shading.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'neighbor_right_distance',
+ required: false,
+ display_name: 'Neighbor: Right Distance',
+ units: 'ft',
+ description: 'The distance between the unit and the neighboring building to the right (not including eaves}. A value of zero indicates no neighbors. Used for shading.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'neighbor_front_height',
+ required: false,
+ display_name: 'Neighbor: Front Height',
+ units: 'ft',
+ description: 'The height of the neighboring building to the front.',
+ default_href: "HPXML Neighbor Building"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'neighbor_back_height',
+ required: false,
+ display_name: 'Neighbor: Back Height',
+ units: 'ft',
+ description: 'The height of the neighboring building to the back.',
+ default_href: "HPXML Neighbor Building"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'neighbor_left_height',
+ required: false,
+ display_name: 'Neighbor: Left Height',
+ units: 'ft',
+ description: 'The height of the neighboring building to the left.',
+ default_href: "HPXML Neighbor Building"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'neighbor_right_height',
+ required: false,
+ display_name: 'Neighbor: Right Height',
+ units: 'ft',
+ description: 'The height of the neighboring building to the right.',
+ default_href: "HPXML Neighbor Building"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'floor_over_foundation_assembly_r',
+ required: false,
+ display_name: 'Floor: Over Foundation Assembly R-value',
+ units: 'h-ft^2-R/Btu',
+ description: 'Assembly R-value for the floor over the foundation. Ignored if the building has a slab-on-grade foundation.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'floor_over_garage_assembly_r',
+ required: false,
+ display_name: 'Floor: Over Garage Assembly R-value',
+ units: 'h-ft^2-R/Btu',
+ description: 'Assembly R-value for the floor over the garage. Ignored unless the building has a garage under conditioned space.'
+ }
floor_type_choices = OpenStudio::StringVector.new
floor_type_choices << HPXML::FloorTypeWoodFrame
@@ -556,11 +823,14 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
floor_type_choices << HPXML::FloorTypeConcrete
floor_type_choices << HPXML::FloorTypeSteelFrame
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('floor_type', floor_type_choices, true)
- arg.setDisplayName('Floor: Type')
- arg.setDescription('The type of floors.')
- arg.setDefaultValue(HPXML::FloorTypeWoodFrame)
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'floor_type',
+ choices: floor_type_choices,
+ required: true,
+ display_name: 'Floor: Type',
+ description: 'The type of floors.'
+ }
foundation_wall_type_choices = OpenStudio::StringVector.new
foundation_wall_type_choices << HPXML::FoundationWallTypeSolidConcrete
@@ -572,129 +842,188 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
foundation_wall_type_choices << HPXML::FoundationWallTypeDoubleBrick
foundation_wall_type_choices << HPXML::FoundationWallTypeWood
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('foundation_wall_type', foundation_wall_type_choices, false)
- arg.setDisplayName('Foundation Wall: Type')
- arg.setDescription("The material type of the foundation wall. If not provided, the OS-HPXML default (see HPXML Foundation Walls) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('foundation_wall_thickness', false)
- arg.setDisplayName('Foundation Wall: Thickness')
- arg.setUnits('in')
- arg.setDescription("The thickness of the foundation wall. If not provided, the OS-HPXML default (see HPXML Foundation Walls) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('foundation_wall_insulation_r', true)
- arg.setDisplayName('Foundation Wall: Insulation Nominal R-value')
- arg.setUnits('h-ft^2-R/Btu')
- arg.setDescription('Nominal R-value for the foundation wall insulation. Only applies to basements/crawlspaces.')
- arg.setDefaultValue(0)
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'foundation_wall_type',
+ choices: foundation_wall_type_choices,
+ required: false,
+ display_name: 'Foundation Wall: Type',
+ description: 'The material type of the foundation wall.',
+ default_href: "HPXML Foundation Walls"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'foundation_wall_thickness',
+ required: false,
+ display_name: 'Foundation Wall: Thickness',
+ units: 'in',
+ description: 'The thickness of the foundation wall.',
+ default_href: "HPXML Foundation Walls"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'foundation_wall_insulation_r',
+ required: false,
+ display_name: 'Foundation Wall: Insulation Nominal R-value',
+ units: 'h-ft^2-R/Btu',
+ description: 'Nominal R-value for the foundation wall insulation. Only applies to basements/crawlspaces.'
+ }
wall_ins_location_choices = OpenStudio::StringVector.new
wall_ins_location_choices << Constants::LocationInterior
wall_ins_location_choices << Constants::LocationExterior
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('foundation_wall_insulation_location', wall_ins_location_choices, false)
- arg.setDisplayName('Foundation Wall: Insulation Location')
- arg.setUnits('ft')
- arg.setDescription('Whether the insulation is on the interior or exterior of the foundation wall. Only applies to basements/crawlspaces.')
- arg.setDefaultValue(Constants::LocationExterior)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('foundation_wall_insulation_distance_to_top', false)
- arg.setDisplayName('Foundation Wall: Insulation Distance To Top')
- arg.setUnits('ft')
- arg.setDescription("The distance from the top of the foundation wall to the top of the foundation wall insulation. Only applies to basements/crawlspaces. If not provided, the OS-HPXML default (see HPXML Foundation Walls) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('foundation_wall_insulation_distance_to_bottom', false)
- arg.setDisplayName('Foundation Wall: Insulation Distance To Bottom')
- arg.setUnits('ft')
- arg.setDescription("The distance from the top of the foundation wall to the bottom of the foundation wall insulation. Only applies to basements/crawlspaces. If not provided, the OS-HPXML default (see HPXML Foundation Walls) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('foundation_wall_assembly_r', false)
- arg.setDisplayName('Foundation Wall: Assembly R-value')
- arg.setUnits('h-ft^2-R/Btu')
- arg.setDescription('Assembly R-value for the foundation walls. Only applies to basements/crawlspaces. If provided, overrides the previous foundation wall insulation inputs. If not provided, it is ignored.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('rim_joist_assembly_r', false)
- arg.setDisplayName('Rim Joist: Assembly R-value')
- arg.setUnits('h-ft^2-R/Btu')
- arg.setDescription('Assembly R-value for the rim joists. Only applies to basements/crawlspaces. Required if a rim joist height is provided.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('slab_perimeter_insulation_r', true)
- arg.setDisplayName('Slab: Perimeter Insulation Nominal R-value')
- arg.setUnits('h-ft^2-R/Btu')
- arg.setDescription('Nominal R-value of the vertical slab perimeter insulation. Applies to slab-on-grade foundations and basement/crawlspace floors.')
- arg.setDefaultValue(0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('slab_perimeter_insulation_depth', true)
- arg.setDisplayName('Slab: Perimeter Insulation Depth')
- arg.setUnits('ft')
- arg.setDescription('Depth from grade to bottom of vertical slab perimeter insulation. Applies to slab-on-grade foundations and basement/crawlspace floors.')
- arg.setDefaultValue(0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('slab_exterior_horizontal_insulation_r', false)
- arg.setDisplayName('Slab: Exterior Horizontal Insulation Nominal R-value')
- arg.setUnits('h-ft^2-R/Btu')
- arg.setDescription('Nominal R-value of the slab exterior horizontal insulation. Applies to slab-on-grade foundations and basement/crawlspace floors.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('slab_exterior_horizontal_insulation_width', false)
- arg.setDisplayName('Slab: Exterior Horizontal Insulation Width')
- arg.setUnits('ft')
- arg.setDescription('Width of the slab exterior horizontal insulation measured from the exterior surface of the vertical slab perimeter insulation. Applies to slab-on-grade foundations and basement/crawlspace floors.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('slab_exterior_horizontal_insulation_depth_below_grade', false)
- arg.setDisplayName('Slab: Exterior Horizontal Insulation Depth Below Grade')
- arg.setUnits('ft')
- arg.setDescription('Depth of the slab exterior horizontal insulation measured from the top surface of the slab exterior horizontal insulation. Applies to slab-on-grade foundations and basement/crawlspace floors.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('slab_under_insulation_r', true)
- arg.setDisplayName('Slab: Under Slab Insulation Nominal R-value')
- arg.setUnits('h-ft^2-R/Btu')
- arg.setDescription('Nominal R-value of the horizontal under slab insulation. Applies to slab-on-grade foundations and basement/crawlspace floors.')
- arg.setDefaultValue(0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('slab_under_insulation_width', true)
- arg.setDisplayName('Slab: Under Slab Insulation Width')
- arg.setUnits('ft')
- arg.setDescription('Width from slab edge inward of horizontal under-slab insulation. Enter 999 to specify that the under slab insulation spans the entire slab. Applies to slab-on-grade foundations and basement/crawlspace floors.')
- arg.setDefaultValue(0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('slab_thickness', false)
- arg.setDisplayName('Slab: Thickness')
- arg.setUnits('in')
- arg.setDescription("The thickness of the slab. Zero can be entered if there is a dirt floor instead of a slab. If not provided, the OS-HPXML default (see HPXML Slabs) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('slab_carpet_fraction', false)
- arg.setDisplayName('Slab: Carpet Fraction')
- arg.setUnits('Frac')
- arg.setDescription("Fraction of the slab floor area that is carpeted. If not provided, the OS-HPXML default (see HPXML Slabs) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('slab_carpet_r', false)
- arg.setDisplayName('Slab: Carpet R-value')
- arg.setUnits('h-ft^2-R/Btu')
- arg.setDescription("R-value of the slab carpet. If not provided, the OS-HPXML default (see HPXML Slabs) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('ceiling_assembly_r', true)
- arg.setDisplayName('Ceiling: Assembly R-value')
- arg.setUnits('h-ft^2-R/Btu')
- arg.setDescription('Assembly R-value for the ceiling (attic floor).')
- arg.setDefaultValue(31.6)
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'foundation_wall_insulation_location',
+ choices: wall_ins_location_choices,
+ required: false,
+ display_name: 'Foundation Wall: Insulation Location',
+ units: 'ft',
+ description: 'Whether the insulation is on the interior or exterior of the foundation wall. Only applies to basements/crawlspaces.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'foundation_wall_insulation_distance_to_top',
+ required: false,
+ display_name: 'Foundation Wall: Insulation Distance To Top',
+ units: 'ft',
+ description: 'The distance from the top of the foundation wall to the top of the foundation wall insulation. Only applies to basements/crawlspaces.',
+ default_href: "HPXML Foundation Walls"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'foundation_wall_insulation_distance_to_bottom',
+ required: false,
+ display_name: 'Foundation Wall: Insulation Distance To Bottom',
+ units: 'ft',
+ description: 'The distance from the top of the foundation wall to the bottom of the foundation wall insulation. Only applies to basements/crawlspaces.',
+ default_href: "HPXML Foundation Walls"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'foundation_wall_assembly_r',
+ required: false,
+ display_name: 'Foundation Wall: Assembly R-value',
+ units: 'h-ft^2-R/Btu',
+ description: 'Assembly R-value for the foundation walls. Only applies to basements/crawlspaces. If provided, overrides the previous foundation wall insulation inputs. If not provided, it is ignored.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'rim_joist_assembly_r',
+ required: false,
+ display_name: 'Rim Joist: Assembly R-value',
+ units: 'h-ft^2-R/Btu',
+ description: 'Assembly R-value for the rim joists. Only applies to basements/crawlspaces. Required if a rim joist height is provided.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'slab_perimeter_insulation_r',
+ required: false,
+ display_name: 'Slab: Perimeter Insulation Nominal R-value',
+ units: 'h-ft^2-R/Btu',
+ description: 'Nominal R-value of the vertical slab perimeter insulation. Applies to slab-on-grade foundations and basement/crawlspace floors. If not provided, defaults to zero.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'slab_perimeter_insulation_depth',
+ required: false,
+ display_name: 'Slab: Perimeter Insulation Depth',
+ units: 'ft',
+ description: 'Depth from grade to bottom of vertical slab perimeter insulation. Applies to slab-on-grade foundations and basement/crawlspace floors. If not provided, defaults to zero.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'slab_exterior_horizontal_insulation_r',
+ required: false,
+ display_name: 'Slab: Exterior Horizontal Insulation Nominal R-value',
+ units: 'h-ft^2-R/Btu',
+ description: 'Nominal R-value of the slab exterior horizontal insulation. Applies to slab-on-grade foundations and basement/crawlspace floors.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'slab_exterior_horizontal_insulation_width',
+ required: false,
+ display_name: 'Slab: Exterior Horizontal Insulation Width',
+ units: 'ft',
+ description: 'Width of the slab exterior horizontal insulation measured from the exterior surface of the vertical slab perimeter insulation. Applies to slab-on-grade foundations and basement/crawlspace floors.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'slab_exterior_horizontal_insulation_depth_below_grade',
+ required: false,
+ display_name: 'Slab: Exterior Horizontal Insulation Depth Below Grade',
+ units: 'ft',
+ description: 'Depth of the slab exterior horizontal insulation measured from the top surface of the slab exterior horizontal insulation. Applies to slab-on-grade foundations and basement/crawlspace floors.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'slab_under_insulation_r',
+ required: false,
+ display_name: 'Slab: Under Slab Insulation Nominal R-value',
+ units: 'h-ft^2-R/Btu',
+ description: 'Nominal R-value of the horizontal under slab insulation. Applies to slab-on-grade foundations and basement/crawlspace floors. If not provided, defaults to zero.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'slab_under_insulation_width',
+ required: false,
+ display_name: 'Slab: Under Slab Insulation Width',
+ units: 'ft',
+ description: 'Width from slab edge inward of horizontal under-slab insulation. Enter 999 to specify that the under slab insulation spans the entire slab. Applies to slab-on-grade foundations and basement/crawlspace floors. If not provided, defaults to zero.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'slab_thickness',
+ required: false,
+ display_name: 'Slab: Thickness',
+ units: 'in',
+ description: 'The thickness of the slab. Zero can be entered if there is a dirt floor instead of a slab.',
+ default_href: "HPXML Slabs"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'slab_carpet_fraction',
+ required: false,
+ display_name: 'Slab: Carpet Fraction',
+ units: 'Frac',
+ description: 'Fraction of the slab floor area that is carpeted.',
+ default_href: "HPXML Slabs"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'slab_carpet_r',
+ required: false,
+ display_name: 'Slab: Carpet R-value',
+ units: 'h-ft^2-R/Btu',
+ description: 'R-value of the slab carpet.',
+ default_href: "HPXML Slabs"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'ceiling_assembly_r',
+ required: false,
+ display_name: 'Ceiling: Assembly R-value',
+ units: 'h-ft^2-R/Btu',
+ description: 'Assembly R-value for the ceiling (attic floor}.'
+ }
roof_material_type_choices = OpenStudio::StringVector.new
roof_material_type_choices << HPXML::RoofTypeAsphaltShingles
@@ -707,10 +1036,15 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
roof_material_type_choices << HPXML::RoofTypeShingles
roof_material_type_choices << HPXML::RoofTypeWoodShingles
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('roof_material_type', roof_material_type_choices, false)
- arg.setDisplayName('Roof: Material Type')
- arg.setDescription("The material type of the roof. If not provided, the OS-HPXML default (see HPXML Roofs) is used.")
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'roof_material_type',
+ choices: roof_material_type_choices,
+ required: false,
+ display_name: 'Roof: Material Type',
+ description: 'The material type of the roof.',
+ default_href: "HPXML Roofs"
+ }
color_choices = OpenStudio::StringVector.new
color_choices << HPXML::ColorDark
@@ -719,17 +1053,24 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
color_choices << HPXML::ColorMediumDark
color_choices << HPXML::ColorReflective
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('roof_color', color_choices, false)
- arg.setDisplayName('Roof: Color')
- arg.setDescription("The color of the roof. If not provided, the OS-HPXML default (see HPXML Roofs) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('roof_assembly_r', true)
- arg.setDisplayName('Roof: Assembly R-value')
- arg.setUnits('h-ft^2-R/Btu')
- arg.setDescription('Assembly R-value of the roof.')
- arg.setDefaultValue(2.3)
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'roof_color',
+ choices: color_choices,
+ required: false,
+ display_name: 'Roof: Color',
+ description: 'The color of the roof.',
+ default_href: "HPXML Roofs"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'roof_assembly_r',
+ required: false,
+ display_name: 'Roof: Assembly R-value',
+ units: 'h-ft^2-R/Btu',
+ description: 'Assembly R-value of the roof.'
+ }
radiant_barrier_attic_location_choices = OpenStudio::StringVector.new
radiant_barrier_attic_location_choices << Constants::None
@@ -737,20 +1078,29 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
radiant_barrier_attic_location_choices << HPXML::RadiantBarrierLocationAtticRoofAndGableWalls
radiant_barrier_attic_location_choices << HPXML::RadiantBarrierLocationAtticFloor
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('radiant_barrier_attic_location', radiant_barrier_attic_location_choices, false)
- arg.setDisplayName('Attic: Radiant Barrier Location')
- arg.setDescription('The location of the radiant barrier in the attic.')
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'radiant_barrier_attic_location',
+ choices: radiant_barrier_attic_location_choices,
+ required: false,
+ display_name: 'Attic: Radiant Barrier Location',
+ description: 'The location of the radiant barrier in the attic.'
+ }
radiant_barrier_grade_choices = OpenStudio::StringVector.new
radiant_barrier_grade_choices << '1'
radiant_barrier_grade_choices << '2'
radiant_barrier_grade_choices << '3'
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('radiant_barrier_grade', radiant_barrier_grade_choices, false)
- arg.setDisplayName('Attic: Radiant Barrier Grade')
- arg.setDescription("The grade of the radiant barrier in the attic. If not provided, the OS-HPXML default (see HPXML Roofs) is used.")
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'radiant_barrier_grade',
+ choices: radiant_barrier_grade_choices,
+ required: false,
+ display_name: 'Attic: Radiant Barrier Grade',
+ description: 'The grade of the radiant barrier in the attic.',
+ default_href: "HPXML Roofs"
+ }
wall_type_choices = OpenStudio::StringVector.new
wall_type_choices << HPXML::WallTypeWoodStud
@@ -765,11 +1115,14 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
wall_type_choices << HPXML::WallTypeStrawBale
wall_type_choices << HPXML::WallTypeBrick
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('wall_type', wall_type_choices, true)
- arg.setDisplayName('Wall: Type')
- arg.setDescription('The type of walls.')
- arg.setDefaultValue(HPXML::WallTypeWoodStud)
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'wall_type',
+ choices: wall_type_choices,
+ required: true,
+ display_name: 'Wall: Type',
+ description: 'The type of walls.'
+ }
wall_siding_type_choices = OpenStudio::StringVector.new
wall_siding_type_choices << HPXML::SidingTypeAluminum
@@ -784,110 +1137,116 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
wall_siding_type_choices << HPXML::SidingTypeVinyl
wall_siding_type_choices << HPXML::SidingTypeWood
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('wall_siding_type', wall_siding_type_choices, false)
- arg.setDisplayName('Wall: Siding Type')
- arg.setDescription("The siding type of the walls. Also applies to rim joists. If not provided, the OS-HPXML default (see HPXML Walls) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('wall_color', color_choices, false)
- arg.setDisplayName('Wall: Color')
- arg.setDescription("The color of the walls. Also applies to rim joists. If not provided, the OS-HPXML default (see HPXML Walls) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('wall_assembly_r', true)
- arg.setDisplayName('Wall: Assembly R-value')
- arg.setUnits('h-ft^2-R/Btu')
- arg.setDescription('Assembly R-value of the walls.')
- arg.setDefaultValue(11.9)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('window_front_wwr', true)
- arg.setDisplayName('Windows: Front Window-to-Wall Ratio')
- arg.setUnits('Frac')
- arg.setDescription("The ratio of window area to wall area for the unit's front facade. Enter 0 if specifying Front Window Area instead. If the front wall is adiabatic, the value will be ignored.")
- arg.setDefaultValue(0.18)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('window_back_wwr', true)
- arg.setDisplayName('Windows: Back Window-to-Wall Ratio')
- arg.setUnits('Frac')
- arg.setDescription("The ratio of window area to wall area for the unit's back facade. Enter 0 if specifying Back Window Area instead. If the back wall is adiabatic, the value will be ignored.")
- arg.setDefaultValue(0.18)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('window_left_wwr', true)
- arg.setDisplayName('Windows: Left Window-to-Wall Ratio')
- arg.setUnits('Frac')
- arg.setDescription("The ratio of window area to wall area for the unit's left facade (when viewed from the front). Enter 0 if specifying Left Window Area instead. If the left wall is adiabatic, the value will be ignored.")
- arg.setDefaultValue(0.18)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('window_right_wwr', true)
- arg.setDisplayName('Windows: Right Window-to-Wall Ratio')
- arg.setUnits('Frac')
- arg.setDescription("The ratio of window area to wall area for the unit's right facade (when viewed from the front). Enter 0 if specifying Right Window Area instead. If the right wall is adiabatic, the value will be ignored.")
- arg.setDefaultValue(0.18)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('window_area_front', true)
- arg.setDisplayName('Windows: Front Window Area')
- arg.setUnits('ft^2')
- arg.setDescription("The amount of window area on the unit's front facade. Enter 0 if specifying Front Window-to-Wall Ratio instead. If the front wall is adiabatic, the value will be ignored.")
- arg.setDefaultValue(0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('window_area_back', true)
- arg.setDisplayName('Windows: Back Window Area')
- arg.setUnits('ft^2')
- arg.setDescription("The amount of window area on the unit's back facade. Enter 0 if specifying Back Window-to-Wall Ratio instead. If the back wall is adiabatic, the value will be ignored.")
- arg.setDefaultValue(0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('window_area_left', true)
- arg.setDisplayName('Windows: Left Window Area')
- arg.setUnits('ft^2')
- arg.setDescription("The amount of window area on the unit's left facade (when viewed from the front). Enter 0 if specifying Left Window-to-Wall Ratio instead. If the left wall is adiabatic, the value will be ignored.")
- arg.setDefaultValue(0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('window_area_right', true)
- arg.setDisplayName('Windows: Right Window Area')
- arg.setUnits('ft^2')
- arg.setDescription("The amount of window area on the unit's right facade (when viewed from the front). Enter 0 if specifying Right Window-to-Wall Ratio instead. If the right wall is adiabatic, the value will be ignored.")
- arg.setDefaultValue(0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('window_aspect_ratio', true)
- arg.setDisplayName('Windows: Aspect Ratio')
- arg.setUnits('Frac')
- arg.setDescription('Ratio of window height to width.')
- arg.setDefaultValue(1.333)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('window_fraction_operable', false)
- arg.setDisplayName('Windows: Fraction Operable')
- arg.setUnits('Frac')
- arg.setDescription("Fraction of windows that are operable. If not provided, the OS-HPXML default (see HPXML Windows) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('window_natvent_availability', false)
- arg.setDisplayName('Windows: Natural Ventilation Availability')
- arg.setUnits('Days/week')
- arg.setDescription("For operable windows, the number of days/week that windows can be opened by occupants for natural ventilation. If not provided, the OS-HPXML default (see HPXML Windows) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('window_ufactor', true)
- arg.setDisplayName('Windows: U-Factor')
- arg.setUnits('Btu/hr-ft^2-R')
- arg.setDescription('Full-assembly NFRC U-factor.')
- arg.setDefaultValue(0.37)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('window_shgc', true)
- arg.setDisplayName('Windows: SHGC')
- arg.setDescription('Full-assembly NFRC solar heat gain coefficient.')
- arg.setDefaultValue(0.3)
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'wall_siding_type',
+ choices: wall_siding_type_choices,
+ required: false,
+ display_name: 'Wall: Siding Type',
+ description: 'The siding type of the walls. Also applies to rim joists.',
+ default_href: "HPXML Walls"
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'wall_color',
+ choices: color_choices,
+ required: false,
+ display_name: 'Wall: Color',
+ description: 'The color of the walls. Also applies to rim joists.',
+ default_href: "HPXML Walls"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'wall_assembly_r',
+ required: true,
+ display_name: 'Wall: Assembly R-value',
+ units: 'h-ft^2-R/Btu',
+ description: 'Assembly R-value of the walls.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'window_area_front',
+ required: true,
+ display_name: 'Windows: Front Window Area',
+ units: 'ft^2',
+ description: "The amount of window area on the unit's front facade. A value less than 1 will be treated as a window-to-wall ratio. If the front wall is adiabatic, the value will be ignored."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'window_area_back',
+ required: true,
+ display_name: 'Windows: Back Window Area',
+ units: 'ft^2',
+ description: "The amount of window area on the unit's back facade. A value less than 1 will be treated as a window-to-wall ratio. If the back wall is adiabatic, the value will be ignored."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'window_area_left',
+ required: true,
+ display_name: 'Windows: Left Window Area',
+ units: 'ft^2',
+ description: "The amount of window area on the unit's left facade (when viewed from the front}. A value less than 1 will be treated as a window-to-wall ratio. If the left wall is adiabatic, the value will be ignored."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'window_area_right',
+ required: true,
+ display_name: 'Windows: Right Window Area',
+ units: 'ft^2',
+ description: "The amount of window area on the unit's right facade (when viewed from the front}. A value less than 1 will be treated as a window-to-wall ratio. If the right wall is adiabatic, the value will be ignored."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'window_aspect_ratio',
+ required: true,
+ display_name: 'Windows: Aspect Ratio',
+ units: 'Frac',
+ description: 'Ratio of window height to width.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'window_ufactor',
+ required: true,
+ display_name: 'Windows: U-Factor',
+ units: 'Btu/hr-ft^2-R',
+ description: 'Full-assembly NFRC U-factor.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'window_shgc',
+ required: true,
+ display_name: 'Windows: SHGC',
+ description: 'Full-assembly NFRC solar heat gain coefficient.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'window_fraction_operable',
+ required: false,
+ display_name: 'Windows: Fraction Operable',
+ units: 'Frac',
+ description: 'Fraction of windows that are operable.',
+ default_href: "HPXML Windows"
+ }
+
+ args << {
+ type: Argument::Integer,
+ name: 'window_natvent_availability',
+ required: false,
+ display_name: 'Windows: Natural Ventilation Availability',
+ units: 'Days/week',
+ description: 'For operable windows, the number of days/week that windows can be opened by occupants for natural ventilation.',
+ default_href: "HPXML Windows"
+ }
window_interior_shading_type_choices = OpenStudio::StringVector.new
window_interior_shading_type_choices << HPXML::InteriorShadingTypeLightCurtains
@@ -902,215 +1261,297 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
window_interior_shading_type_choices << HPXML::InteriorShadingTypeNone
# Not adding inputs for other because that can be anything
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('window_interior_shading_type', window_interior_shading_type_choices, false)
- arg.setDisplayName('Windows: Interior Shading Type')
- arg.setDescription("Type of window interior shading. Summer/winter shading coefficients can be provided below instead. If neither is provided, the OS-HPXML default (see HPXML Interior Shading) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('window_interior_shading_winter', false)
- arg.setDisplayName('Windows: Winter Interior Shading Coefficient')
- arg.setUnits('Frac')
- arg.setDescription("Interior shading coefficient for the winter season, which if provided overrides the shading type input. 1.0 indicates no reduction in solar gain, 0.85 indicates 15% reduction, etc. If not provided, the OS-HPXML default (see HPXML Interior Shading) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('window_interior_shading_summer', false)
- arg.setDisplayName('Windows: Summer Interior Shading Coefficient')
- arg.setUnits('Frac')
- arg.setDescription("Interior shading coefficient for the summer season, which if provided overrides the shading type input. 1.0 indicates no reduction in solar gain, 0.85 indicates 15% reduction, etc. If not provided, the OS-HPXML default (see HPXML Interior Shading) is used.")
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'window_interior_shading_type',
+ choices: window_interior_shading_type_choices,
+ required: false,
+ display_name: 'Windows: Interior Shading Type',
+ description: 'Type of window interior shading. Summer/winter shading coefficients can be provided below instead.',
+ default_href: "HPXML Interior Shading"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'window_interior_shading_winter',
+ required: false,
+ display_name: 'Windows: Winter Interior Shading Coefficient',
+ units: 'Frac',
+ description: 'Interior shading coefficient for the winter season, which if provided overrides the shading type input. 1.0 indicates no reduction in solar gain, 0.85 indicates 15% reduction, etc.',
+ default_href: "HPXML Interior Shading"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'window_interior_shading_summer',
+ required: false,
+ display_name: 'Windows: Summer Interior Shading Coefficient',
+ units: 'Frac',
+ description: 'Interior shading coefficient for the summer season, which if provided overrides the shading type input. 1.0 indicates no reduction in solar gain, 0.85 indicates 15% reduction, etc.',
+ default_href: "HPXML Interior Shading"
+ }
window_exterior_shading_type_choices = OpenStudio::StringVector.new
window_exterior_shading_type_choices << HPXML::ExteriorShadingTypeSolarFilm
window_exterior_shading_type_choices << HPXML::ExteriorShadingTypeSolarScreens
window_exterior_shading_type_choices << HPXML::ExteriorShadingTypeNone
# Not adding inputs for trees since that is more specific to select windows, whereas this will apply to every window
- # Not adding inputs for overhangs/neighbors because there are other inputs to describe those (and in more detail)
+ # Not adding inputs for overhangs/neighbors because there are other inputs to describe those (and in more detail}
# Not adding inputs for other because that can be anything
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('window_exterior_shading_type', window_exterior_shading_type_choices, false)
- arg.setDisplayName('Windows: Exterior Shading Type')
- arg.setDescription("Type of window exterior shading. Summer/winter shading coefficients can be provided below instead. If neither is provided, the OS-HPXML default (see HPXML Exterior Shading) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('window_exterior_shading_winter', false)
- arg.setDisplayName('Windows: Winter Exterior Shading Coefficient')
- arg.setUnits('Frac')
- arg.setDescription("Exterior shading coefficient for the winter season, which if provided overrides the shading type input. 1.0 indicates no reduction in solar gain, 0.85 indicates 15% reduction, etc. If not provided, the OS-HPXML default (see HPXML Exterior Shading) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('window_exterior_shading_summer', false)
- arg.setDisplayName('Windows: Summer Exterior Shading Coefficient')
- arg.setUnits('Frac')
- arg.setDescription("Exterior shading coefficient for the summer season, which if provided overrides the shading type input. 1.0 indicates no reduction in solar gain, 0.85 indicates 15% reduction, etc. If not provided, the OS-HPXML default (see HPXML Exterior Shading) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('window_shading_summer_season', false)
- arg.setDisplayName('Windows: Shading Summer Season')
- arg.setDescription("Enter a date range like 'May 1 - Sep 30'. Defines the summer season for purposes of shading coefficients; the rest of the year is assumed to be winter. If not provided, the OS-HPXML default (see HPXML Windows) is used.")
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'window_exterior_shading_type',
+ choices: window_exterior_shading_type_choices,
+ required: false,
+ display_name: 'Windows: Exterior Shading Type',
+ description: 'Type of window exterior shading. Summer/winter shading coefficients can be provided below instead.',
+ default_href: "HPXML Exterior Shading"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'window_exterior_shading_winter',
+ required: false,
+ display_name: 'Windows: Winter Exterior Shading Coefficient',
+ units: 'Frac',
+ description: 'Exterior shading coefficient for the winter season, which if provided overrides the shading type input. 1.0 indicates no reduction in solar gain, 0.85 indicates 15% reduction, etc.',
+ default_href: "HPXML Exterior Shading"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'window_exterior_shading_summer',
+ required: false,
+ display_name: 'Windows: Summer Exterior Shading Coefficient',
+ units: 'Frac',
+ description: 'Exterior shading coefficient for the summer season, which if provided overrides the shading type input. 1.0 indicates no reduction in solar gain, 0.85 indicates 15% reduction, etc.',
+ default_href: "HPXML Exterior Shading"
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'window_shading_summer_season',
+ required: false,
+ display_name: 'Windows: Shading Summer Season',
+ description: "Enter a date range like 'May 1 - Sep 30'. Defines the summer season for purposes of shading coefficients; the rest of the year is assumed to be winter.",
+ default_href: "HPXML Windows"
+ }
window_insect_screen_choices = OpenStudio::StringVector.new
window_insect_screen_choices << Constants::None
window_insect_screen_choices << HPXML::LocationExterior
window_insect_screen_choices << HPXML::LocationInterior
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('window_insect_screens', window_insect_screen_choices, false)
- arg.setDisplayName('Windows: Insect Screens')
- arg.setDescription('The type of insect screens, if present. If not provided, assumes there are no insect screens.')
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'window_insect_screens',
+ choices: window_insect_screen_choices,
+ required: false,
+ display_name: 'Windows: Insect Screens',
+ description: 'The type of insect screens, if present. If not provided, assumes there are no insect screens.'
+ }
storm_window_type_choices = OpenStudio::StringVector.new
storm_window_type_choices << HPXML::WindowGlassTypeClear
storm_window_type_choices << HPXML::WindowGlassTypeLowE
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('window_storm_type', storm_window_type_choices, false)
- arg.setDisplayName('Windows: Storm Type')
- arg.setDescription('The type of storm, if present. If not provided, assumes there is no storm.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('overhangs_front_depth', true)
- arg.setDisplayName('Overhangs: Front Depth')
- arg.setUnits('ft')
- arg.setDescription('The depth of overhangs for windows for the front facade.')
- arg.setDefaultValue(0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('overhangs_front_distance_to_top_of_window', true)
- arg.setDisplayName('Overhangs: Front Distance to Top of Window')
- arg.setUnits('ft')
- arg.setDescription('The overhangs distance to the top of window for the front facade.')
- arg.setDefaultValue(0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('overhangs_front_distance_to_bottom_of_window', true)
- arg.setDisplayName('Overhangs: Front Distance to Bottom of Window')
- arg.setUnits('ft')
- arg.setDescription('The overhangs distance to the bottom of window for the front facade.')
- arg.setDefaultValue(4)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('overhangs_back_depth', true)
- arg.setDisplayName('Overhangs: Back Depth')
- arg.setUnits('ft')
- arg.setDescription('The depth of overhangs for windows for the back facade.')
- arg.setDefaultValue(0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('overhangs_back_distance_to_top_of_window', true)
- arg.setDisplayName('Overhangs: Back Distance to Top of Window')
- arg.setUnits('ft')
- arg.setDescription('The overhangs distance to the top of window for the back facade.')
- arg.setDefaultValue(0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('overhangs_back_distance_to_bottom_of_window', true)
- arg.setDisplayName('Overhangs: Back Distance to Bottom of Window')
- arg.setUnits('ft')
- arg.setDescription('The overhangs distance to the bottom of window for the back facade.')
- arg.setDefaultValue(4)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('overhangs_left_depth', true)
- arg.setDisplayName('Overhangs: Left Depth')
- arg.setUnits('ft')
- arg.setDescription('The depth of overhangs for windows for the left facade.')
- arg.setDefaultValue(0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('overhangs_left_distance_to_top_of_window', true)
- arg.setDisplayName('Overhangs: Left Distance to Top of Window')
- arg.setUnits('ft')
- arg.setDescription('The overhangs distance to the top of window for the left facade.')
- arg.setDefaultValue(0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('overhangs_left_distance_to_bottom_of_window', true)
- arg.setDisplayName('Overhangs: Left Distance to Bottom of Window')
- arg.setUnits('ft')
- arg.setDescription('The overhangs distance to the bottom of window for the left facade.')
- arg.setDefaultValue(4)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('overhangs_right_depth', true)
- arg.setDisplayName('Overhangs: Right Depth')
- arg.setUnits('ft')
- arg.setDescription('The depth of overhangs for windows for the right facade.')
- arg.setDefaultValue(0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('overhangs_right_distance_to_top_of_window', true)
- arg.setDisplayName('Overhangs: Right Distance to Top of Window')
- arg.setUnits('ft')
- arg.setDescription('The overhangs distance to the top of window for the right facade.')
- arg.setDefaultValue(0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('overhangs_right_distance_to_bottom_of_window', true)
- arg.setDisplayName('Overhangs: Right Distance to Bottom of Window')
- arg.setUnits('ft')
- arg.setDescription('The overhangs distance to the bottom of window for the right facade.')
- arg.setDefaultValue(4)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('skylight_area_front', true)
- arg.setDisplayName('Skylights: Front Roof Area')
- arg.setUnits('ft^2')
- arg.setDescription("The amount of skylight area on the unit's front conditioned roof facade.")
- arg.setDefaultValue(0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('skylight_area_back', true)
- arg.setDisplayName('Skylights: Back Roof Area')
- arg.setUnits('ft^2')
- arg.setDescription("The amount of skylight area on the unit's back conditioned roof facade.")
- arg.setDefaultValue(0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('skylight_area_left', true)
- arg.setDisplayName('Skylights: Left Roof Area')
- arg.setUnits('ft^2')
- arg.setDescription("The amount of skylight area on the unit's left conditioned roof facade (when viewed from the front).")
- arg.setDefaultValue(0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('skylight_area_right', true)
- arg.setDisplayName('Skylights: Right Roof Area')
- arg.setUnits('ft^2')
- arg.setDescription("The amount of skylight area on the unit's right conditioned roof facade (when viewed from the front).")
- arg.setDefaultValue(0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('skylight_ufactor', true)
- arg.setDisplayName('Skylights: U-Factor')
- arg.setUnits('Btu/hr-ft^2-R')
- arg.setDescription('Full-assembly NFRC U-factor.')
- arg.setDefaultValue(0.33)
- args << arg
-
- skylight_shgc = OpenStudio::Measure::OSArgument::makeDoubleArgument('skylight_shgc', true)
- skylight_shgc.setDisplayName('Skylights: SHGC')
- skylight_shgc.setDescription('Full-assembly NFRC solar heat gain coefficient.')
- skylight_shgc.setDefaultValue(0.45)
- args << skylight_shgc
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('skylight_storm_type', storm_window_type_choices, false)
- arg.setDisplayName('Skylights: Storm Type')
- arg.setDescription('The type of storm, if present. If not provided, assumes there is no storm.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('door_area', true)
- arg.setDisplayName('Doors: Area')
- arg.setUnits('ft^2')
- arg.setDescription('The area of the opaque door(s).')
- arg.setDefaultValue(20.0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('door_rvalue', true)
- arg.setDisplayName('Doors: R-value')
- arg.setUnits('h-ft^2-R/Btu')
- arg.setDescription('R-value of the opaque door(s).')
- arg.setDefaultValue(4.4)
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'window_storm_type',
+ choices: storm_window_type_choices,
+ required: false,
+ display_name: 'Windows: Storm Type',
+ description: 'The type of storm, if present. If not provided, assumes there is no storm.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'overhangs_front_depth',
+ required: false,
+ display_name: 'Overhangs: Front Depth',
+ units: 'ft',
+ description: 'The depth of overhangs for windows for the front facade.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'overhangs_front_distance_to_top_of_window',
+ required: false,
+ display_name: 'Overhangs: Front Distance to Top of Window',
+ units: 'ft',
+ description: 'The overhangs distance to the top of window for the front facade.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'overhangs_front_distance_to_bottom_of_window',
+ required: false,
+ display_name: 'Overhangs: Front Distance to Bottom of Window',
+ units: 'ft',
+ description: 'The overhangs distance to the bottom of window for the front facade.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'overhangs_back_depth',
+ required: false,
+ display_name: 'Overhangs: Back Depth',
+ units: 'ft',
+ description: 'The depth of overhangs for windows for the back facade.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'overhangs_back_distance_to_top_of_window',
+ required: false,
+ display_name: 'Overhangs: Back Distance to Top of Window',
+ units: 'ft',
+ description: 'The overhangs distance to the top of window for the back facade.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'overhangs_back_distance_to_bottom_of_window',
+ required: false,
+ display_name: 'Overhangs: Back Distance to Bottom of Window',
+ units: 'ft',
+ description: 'The overhangs distance to the bottom of window for the back facade.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'overhangs_left_depth',
+ required: false,
+ display_name: 'Overhangs: Left Depth',
+ units: 'ft',
+ description: 'The depth of overhangs for windows for the left facade.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'overhangs_left_distance_to_top_of_window',
+ required: false,
+ display_name: 'Overhangs: Left Distance to Top of Window',
+ units: 'ft',
+ description: 'The overhangs distance to the top of window for the left facade.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'overhangs_left_distance_to_bottom_of_window',
+ required: false,
+ display_name: 'Overhangs: Left Distance to Bottom of Window',
+ units: 'ft',
+ description: 'The overhangs distance to the bottom of window for the left facade.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'overhangs_right_depth',
+ required: false,
+ display_name: 'Overhangs: Right Depth',
+ units: 'ft',
+ description: 'The depth of overhangs for windows for the right facade.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'overhangs_right_distance_to_top_of_window',
+ required: false,
+ display_name: 'Overhangs: Right Distance to Top of Window',
+ units: 'ft',
+ description: 'The overhangs distance to the top of window for the right facade.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'overhangs_right_distance_to_bottom_of_window',
+ required: false,
+ display_name: 'Overhangs: Right Distance to Bottom of Window',
+ units: 'ft',
+ description: 'The overhangs distance to the bottom of window for the right facade.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'skylight_area_front',
+ required: false,
+ display_name: 'Skylights: Front Roof Area',
+ units: 'ft^2',
+ description: "The amount of skylight area on the unit's front conditioned roof facade."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'skylight_area_back',
+ required: false,
+ display_name: 'Skylights: Back Roof Area',
+ units: 'ft^2',
+ description: "The amount of skylight area on the unit's back conditioned roof facade."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'skylight_area_left',
+ required: false,
+ display_name: 'Skylights: Left Roof Area',
+ units: 'ft^2',
+ description: "The amount of skylight area on the unit's left conditioned roof facade (when viewed from the front}."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'skylight_area_right',
+ required: false,
+ display_name: 'Skylights: Right Roof Area',
+ units: 'ft^2',
+ description: "The amount of skylight area on the unit's right conditioned roof facade (when viewed from the front}."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'skylight_ufactor',
+ required: false,
+ display_name: 'Skylights: U-Factor',
+ units: 'Btu/hr-ft^2-R',
+ description: 'Full-assembly NFRC U-factor. If not provided, defaults to 0.33.'
+ }
+
+ args << {
+ name: 'skylight_shgc',
+ type: Argument::Double,
+ required: false,
+ display_name: 'Skylights: SHGC',
+ description: 'Full-assembly NFRC solar heat gain coefficient. If not provided, defaults to 0.45.'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'skylight_storm_type',
+ choices: storm_window_type_choices,
+ required: false,
+ display_name: 'Skylights: Storm Type',
+ description: 'The type of storm, if present. If not provided, assumes there is no storm.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'door_area',
+ required: true,
+ display_name: 'Doors: Area',
+ units: 'ft^2',
+ description: 'The area of the opaque door(s}.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'door_rvalue',
+ required: true,
+ display_name: 'Doors: R-value',
+ units: 'h-ft^2-R/Btu',
+ description: 'R-value of the opaque door(s}.'
+ }
air_leakage_leakiness_description_choices = OpenStudio::StringVector.new
air_leakage_leakiness_description_choices << HPXML::LeakinessVeryTight
@@ -1119,11 +1560,14 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
air_leakage_leakiness_description_choices << HPXML::LeakinessLeaky
air_leakage_leakiness_description_choices << HPXML::LeakinessVeryLeaky
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('air_leakage_leakiness_description', air_leakage_leakiness_description_choices, false)
- arg.setDisplayName('Air Leakage: Leakiness Description')
- arg.setDescription('Qualitative description of infiltration. If provided, the Year Built of the home is required. Either provide this input or provide a numeric air leakage value below.')
- arg.setDefaultValue(HPXML::LeakinessAverage)
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'air_leakage_leakiness_description',
+ choices: air_leakage_leakiness_description_choices,
+ required: false,
+ display_name: 'Air Leakage: Leakiness Description',
+ description: 'Qualitative description of infiltration. If provided, the Year Built of the home is required. Either provide this input or provide a numeric air leakage value below.'
+ }
air_leakage_units_choices = OpenStudio::StringVector.new
air_leakage_units_choices << HPXML::UnitsACH
@@ -1132,35 +1576,53 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
air_leakage_units_choices << HPXML::UnitsCFMNatural
air_leakage_units_choices << HPXML::UnitsELA
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('air_leakage_units', air_leakage_units_choices, false)
- arg.setDisplayName('Air Leakage: Units')
- arg.setDescription('The unit of measure for the air leakage if providing a numeric air leakage value.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('air_leakage_house_pressure', false)
- arg.setDisplayName('Air Leakage: House Pressure')
- arg.setUnits('Pa')
- arg.setDescription("The house pressure relative to outside if providing a numeric air leakage value. Required when units are #{HPXML::UnitsACH} or #{HPXML::UnitsCFM}.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('air_leakage_value', false)
- arg.setDisplayName('Air Leakage: Value')
- arg.setDescription("Numeric air leakage value. For '#{HPXML::UnitsELA}', provide value in sq. in. If provided, overrides Leakiness Description input.")
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'air_leakage_units',
+ choices: air_leakage_units_choices,
+ required: false,
+ display_name: 'Air Leakage: Units',
+ description: 'The unit of measure for the air leakage if providing a numeric air leakage value.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'air_leakage_house_pressure',
+ required: false,
+ display_name: 'Air Leakage: House Pressure',
+ units: 'Pa',
+ description: "The house pressure relative to outside if providing a numeric air leakage value. Required when units are #{HPXML::UnitsACH} or #{HPXML::UnitsCFM}."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'air_leakage_value',
+ required: false,
+ display_name: 'Air Leakage: Value',
+ description: "Numeric air leakage value. For '#{HPXML::UnitsELA}', provide value in sq. in. If provided, overrides Leakiness Description input."
+ }
air_leakage_type_choices = OpenStudio::StringVector.new
air_leakage_type_choices << HPXML::InfiltrationTypeUnitTotal
air_leakage_type_choices << HPXML::InfiltrationTypeUnitExterior
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('air_leakage_type', air_leakage_type_choices, false)
- arg.setDisplayName('Air Leakage: Type')
- arg.setDescription("Type of air leakage if providing a numeric air leakage value. If '#{HPXML::InfiltrationTypeUnitTotal}', represents the total infiltration to the unit as measured by a compartmentalization test, in which case the air leakage value will be adjusted by the ratio of exterior envelope surface area to total envelope surface area. Otherwise, if '#{HPXML::InfiltrationTypeUnitExterior}', represents the infiltration to the unit from outside only as measured by a guarded test. Required when unit type is #{HPXML::ResidentialTypeSFA} or #{HPXML::ResidentialTypeApartment}.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('air_leakage_has_flue_or_chimney_in_conditioned_space', false)
- arg.setDisplayName('Air Leakage: Has Flue or Chimney in Conditioned Space')
- arg.setDescription("Presence of flue or chimney with combustion air from conditioned space; used for infiltration model. If not provided, the OS-HPXML default (see Flue or Chimney) is used.")
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'air_leakage_type',
+ choices: air_leakage_type_choices,
+ required: false,
+ display_name: 'Air Leakage: Type',
+ description: "Type of air leakage if providing a numeric air leakage value. If '#{HPXML::InfiltrationTypeUnitTotal}', represents the total infiltration to the unit as measured by a compartmentalization test, in which case the air leakage value will be adjusted by the ratio of exterior envelope surface area to total envelope surface area. Otherwise, if '#{HPXML::InfiltrationTypeUnitExterior}', represents the infiltration to the unit from outside only as measured by a guarded test. Required when unit type is #{HPXML::ResidentialTypeSFA} or #{HPXML::ResidentialTypeApartment}."
+ }
+
+ args << {
+ name: 'air_leakage_has_flue_or_chimney_in_conditioned_space',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Air Leakage: Has Flue or Chimney in Conditioned Space',
+ description: 'Presence of flue or chimney with combustion air from conditioned space; used for infiltration model.',
+ default_href: "Flue or Chimney"
+ }
heating_system_type_choices = OpenStudio::StringVector.new
heating_system_type_choices << Constants::None
@@ -1203,160 +1665,241 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
compressor_type_choices << HPXML::HVACCompressorTypeTwoStage
compressor_type_choices << HPXML::HVACCompressorTypeVariableSpeed
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('heating_system_type', heating_system_type_choices, true)
- arg.setDisplayName('Heating System: Type')
- arg.setDescription("The type of heating system. Use '#{Constants::None}' if there is no heating system or if there is a heat pump serving a heating load.")
- arg.setDefaultValue(HPXML::HVACTypeFurnace)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('heating_system_fuel', heating_system_fuel_choices, true)
- arg.setDisplayName('Heating System: Fuel Type')
- arg.setDescription("The fuel type of the heating system. Ignored for #{HPXML::HVACTypeElectricResistance}.")
- arg.setDefaultValue(HPXML::FuelTypeNaturalGas)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heating_system_heating_efficiency', true)
- arg.setDisplayName('Heating System: Rated AFUE or Percent')
- arg.setUnits('Frac')
- arg.setDescription('The rated heating efficiency value of the heating system.')
- arg.setDefaultValue(0.78)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heating_system_heating_capacity', false)
- arg.setDisplayName('Heating System: Heating Capacity')
- arg.setDescription("The output heating capacity of the heating system. If not provided, the OS-HPXML autosized default (see HPXML Heating Systems) is used.")
- arg.setUnits('Btu/hr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heating_system_heating_autosizing_factor', false)
- arg.setDisplayName('Heating System: Heating Autosizing Factor')
- arg.setDescription('The capacity scaling factor applied to the auto-sizing methodology. If not provided, 1.0 is used.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heating_system_heating_autosizing_limit', false)
- arg.setDisplayName('Heating System: Heating Autosizing Limit')
- arg.setDescription('The maximum capacity limit applied to the auto-sizing methodology. If not provided, no limit is used.')
- arg.setUnits('Btu/hr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heating_system_fraction_heat_load_served', true)
- arg.setDisplayName('Heating System: Fraction Heat Load Served')
- arg.setDescription('The heating load served by the heating system.')
- arg.setUnits('Frac')
- arg.setDefaultValue(1)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heating_system_pilot_light', false)
- arg.setDisplayName('Heating System: Pilot Light')
- arg.setDescription("The fuel usage of the pilot light. Applies only to #{HPXML::HVACTypeFurnace}, #{HPXML::HVACTypeWallFurnace}, #{HPXML::HVACTypeFloorFurnace}, #{HPXML::HVACTypeStove}, #{HPXML::HVACTypeBoiler}, and #{HPXML::HVACTypeFireplace} with non-electric fuel type. If not provided, assumes no pilot light.")
- arg.setUnits('Btuh')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heating_system_airflow_defect_ratio', false)
- arg.setDisplayName('Heating System: Airflow Defect Ratio')
- arg.setDescription("The airflow defect ratio, defined as (InstalledAirflow - DesignAirflow) / DesignAirflow, of the heating system per ANSI/RESNET/ACCA Standard 310. A value of zero means no airflow defect. Applies only to #{HPXML::HVACTypeFurnace}. If not provided, assumes no defect.")
- arg.setUnits('Frac')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('cooling_system_type', cooling_system_type_choices, true)
- arg.setDisplayName('Cooling System: Type')
- arg.setDescription("The type of cooling system. Use '#{Constants::None}' if there is no cooling system or if there is a heat pump serving a cooling load.")
- arg.setDefaultValue(HPXML::HVACTypeCentralAirConditioner)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('cooling_system_cooling_efficiency_type', cooling_efficiency_type_choices, true)
- arg.setDisplayName('Cooling System: Efficiency Type')
- arg.setDescription("The efficiency type of the cooling system. System types #{HPXML::HVACTypeCentralAirConditioner} and #{HPXML::HVACTypeMiniSplitAirConditioner} use #{HPXML::UnitsSEER} or #{HPXML::UnitsSEER2}. System types #{HPXML::HVACTypeRoomAirConditioner} and #{HPXML::HVACTypePTAC} use #{HPXML::UnitsEER} or #{HPXML::UnitsCEER}. Ignored for system type #{HPXML::HVACTypeEvaporativeCooler}.")
- arg.setDefaultValue(HPXML::UnitsSEER)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('cooling_system_cooling_efficiency', true)
- arg.setDisplayName('Cooling System: Efficiency')
- arg.setDescription("The rated efficiency value of the cooling system. Ignored for #{HPXML::HVACTypeEvaporativeCooler}.")
- arg.setDefaultValue(13.0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('cooling_system_cooling_compressor_type', compressor_type_choices, false)
- arg.setDisplayName('Cooling System: Cooling Compressor Type')
- arg.setDescription("The compressor type of the cooling system. Only applies to #{HPXML::HVACTypeCentralAirConditioner} and #{HPXML::HVACTypeMiniSplitAirConditioner}. If not provided, the OS-HPXML default (see Central Air Conditioner, Mini-Split Air Conditioner) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('cooling_system_cooling_sensible_heat_fraction', false)
- arg.setDisplayName('Cooling System: Cooling Sensible Heat Fraction')
- arg.setDescription("The sensible heat fraction of the cooling system. Ignored for #{HPXML::HVACTypeEvaporativeCooler}. If not provided, the OS-HPXML default (see Central Air Conditioner, Room Air Conditioner, Packaged Terminal Air Conditioner, Mini-Split Air Conditioner) is used.")
- arg.setUnits('Frac')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('cooling_system_cooling_capacity', false)
- arg.setDisplayName('Cooling System: Cooling Capacity')
- arg.setDescription("The output cooling capacity of the cooling system. If not provided, the OS-HPXML autosized default (see Central Air Conditioner, Room Air Conditioner, Packaged Terminal Air Conditioner, Evaporative Cooler, Mini-Split Air Conditioner) is used.")
- arg.setUnits('Btu/hr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('cooling_system_cooling_autosizing_factor', false)
- arg.setDisplayName('Cooling System: Cooling Autosizing Factor')
- arg.setDescription('The capacity scaling factor applied to the auto-sizing methodology. If not provided, 1.0 is used.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('cooling_system_cooling_autosizing_limit', false)
- arg.setDisplayName('Cooling System: Cooling Autosizing Limit')
- arg.setDescription('The maximum capacity limit applied to the auto-sizing methodology. If not provided, no limit is used.')
- arg.setUnits('Btu/hr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('cooling_system_fraction_cool_load_served', true)
- arg.setDisplayName('Cooling System: Fraction Cool Load Served')
- arg.setDescription('The cooling load served by the cooling system.')
- arg.setUnits('Frac')
- arg.setDefaultValue(1)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('cooling_system_is_ducted', false)
- arg.setDisplayName('Cooling System: Is Ducted')
- arg.setDescription("Whether the cooling system is ducted or not. Only used for #{HPXML::HVACTypeMiniSplitAirConditioner} and #{HPXML::HVACTypeEvaporativeCooler}. It's assumed that #{HPXML::HVACTypeCentralAirConditioner} is ducted, and #{HPXML::HVACTypeRoomAirConditioner} and #{HPXML::HVACTypePTAC} are not ducted.")
- arg.setDefaultValue(false)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('cooling_system_airflow_defect_ratio', false)
- arg.setDisplayName('Cooling System: Airflow Defect Ratio')
- arg.setDescription("The airflow defect ratio, defined as (InstalledAirflow - DesignAirflow) / DesignAirflow, of the cooling system per ANSI/RESNET/ACCA Standard 310. A value of zero means no airflow defect. Applies only to #{HPXML::HVACTypeCentralAirConditioner} and ducted #{HPXML::HVACTypeMiniSplitAirConditioner}. If not provided, assumes no defect.")
- arg.setUnits('Frac')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('cooling_system_charge_defect_ratio', false)
- arg.setDisplayName('Cooling System: Charge Defect Ratio')
- arg.setDescription("The refrigerant charge defect ratio, defined as (InstalledCharge - DesignCharge) / DesignCharge, of the cooling system per ANSI/RESNET/ACCA Standard 310. A value of zero means no refrigerant charge defect. Applies only to #{HPXML::HVACTypeCentralAirConditioner} and #{HPXML::HVACTypeMiniSplitAirConditioner}. If not provided, assumes no defect.")
- arg.setUnits('Frac')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('cooling_system_crankcase_heater_watts', false)
- arg.setDisplayName('Cooling System: Crankcase Heater Power Watts')
- arg.setDescription("Cooling system crankcase heater power consumption in Watts. Applies only to #{HPXML::HVACTypeCentralAirConditioner}, #{HPXML::HVACTypeRoomAirConditioner}, #{HPXML::HVACTypePTAC} and #{HPXML::HVACTypeMiniSplitAirConditioner}. If not provided, the OS-HPXML default (see Central Air Conditioner, Room Air Conditioner, Packaged Terminal Air Conditioner, Mini-Split Air Conditioner) is used.")
- arg.setUnits('W')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('cooling_system_integrated_heating_system_fuel', heating_system_fuel_choices, false)
- arg.setDisplayName('Cooling System: Integrated Heating System Fuel Type')
- arg.setDescription("The fuel type of the heating system integrated into cooling system. Only used for #{HPXML::HVACTypePTAC} and #{HPXML::HVACTypeRoomAirConditioner}.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('cooling_system_integrated_heating_system_efficiency_percent', false)
- arg.setDisplayName('Cooling System: Integrated Heating System Efficiency')
- arg.setUnits('Frac')
- arg.setDescription("The rated heating efficiency value of the heating system integrated into cooling system. Only used for #{HPXML::HVACTypePTAC} and #{HPXML::HVACTypeRoomAirConditioner}.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('cooling_system_integrated_heating_system_capacity', false)
- arg.setDisplayName('Cooling System: Integrated Heating System Heating Capacity')
- arg.setDescription("The output heating capacity of the heating system integrated into cooling system. If not provided, the OS-HPXML autosized default (see Room Air Conditioner, Packaged Terminal Air Conditioner) is used. Only used for #{HPXML::HVACTypeRoomAirConditioner} and #{HPXML::HVACTypePTAC}.")
- arg.setUnits('Btu/hr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('cooling_system_integrated_heating_system_fraction_heat_load_served', false)
- arg.setDisplayName('Cooling System: Integrated Heating System Fraction Heat Load Served')
- arg.setDescription("The heating load served by the heating system integrated into cooling system. Only used for #{HPXML::HVACTypePTAC} and #{HPXML::HVACTypeRoomAirConditioner}.")
- arg.setUnits('Frac')
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'heating_system_type',
+ choices: heating_system_type_choices,
+ required: true,
+ display_name: 'Heating System: Type',
+ description: "The type of heating system. Use '#{Constants::None}' if there is no heating system or if there is a heat pump serving a heating load."
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'heating_system_fuel',
+ choices: heating_system_fuel_choices,
+ required: false,
+ display_name: 'Heating System: Fuel Type',
+ description: "The fuel type of the heating system. Ignored for #{HPXML::HVACTypeElectricResistance}."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heating_system_heating_efficiency',
+ required: false,
+ display_name: 'Heating System: Rated AFUE or Percent',
+ units: 'Frac',
+ description: 'The rated heating efficiency value of the heating system.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heating_system_heating_capacity',
+ required: false,
+ display_name: 'Heating System: Heating Capacity',
+ description: 'The output heating capacity of the heating system.',
+ units: 'Btu/hr',
+ default_href: "HPXML Heating Systems"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heating_system_heating_autosizing_factor',
+ required: false,
+ display_name: 'Heating System: Heating Autosizing Factor',
+ description: 'The capacity scaling factor applied to the auto-sizing methodology. If not provided, 1.0 is used.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heating_system_heating_autosizing_limit',
+ required: false,
+ display_name: 'Heating System: Heating Autosizing Limit',
+ description: 'The maximum capacity limit applied to the auto-sizing methodology. If not provided, no limit is used.',
+ units: 'Btu/hr'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heating_system_fraction_heat_load_served',
+ required: false,
+ display_name: 'Heating System: Fraction Heat Load Served',
+ description: 'The heating load served by the heating system. If not provided, defaults to 1.',
+ units: 'Frac'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heating_system_pilot_light',
+ required: false,
+ display_name: 'Heating System: Pilot Light',
+ description: "The fuel usage of the pilot light. Applies only to #{HPXML::HVACTypeFurnace}, #{HPXML::HVACTypeWallFurnace}, #{HPXML::HVACTypeFloorFurnace}, #{HPXML::HVACTypeStove}, #{HPXML::HVACTypeBoiler}, and #{HPXML::HVACTypeFireplace} with non-electric fuel type. If not provided, assumes no pilot light.",
+ units: 'Btuh'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heating_system_airflow_defect_ratio',
+ required: false,
+ display_name: 'Heating System: Airflow Defect Ratio',
+ description: "The airflow defect ratio, defined as (InstalledAirflow - DesignAirflow} / DesignAirflow, of the heating system per ANSI/RESNET/ACCA Standard 310. A value of zero means no airflow defect. Applies only to #{HPXML::HVACTypeFurnace}. If not provided, assumes no defect.",
+ units: 'Frac'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'cooling_system_type',
+ choices: cooling_system_type_choices,
+ required: true,
+ display_name: 'Cooling System: Type',
+ description: "The type of cooling system. Use '#{Constants::None}' if there is no cooling system or if there is a heat pump serving a cooling load."
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'cooling_system_cooling_efficiency_type',
+ choices: cooling_efficiency_type_choices,
+ required: false,
+ display_name: 'Cooling System: Efficiency Type',
+ description: "The efficiency type of the cooling system. System types #{HPXML::HVACTypeCentralAirConditioner} and #{HPXML::HVACTypeMiniSplitAirConditioner} use #{HPXML::UnitsSEER} or #{HPXML::UnitsSEER2}. System types #{HPXML::HVACTypeRoomAirConditioner} and #{HPXML::HVACTypePTAC} use #{HPXML::UnitsEER} or #{HPXML::UnitsCEER}. Ignored for system type #{HPXML::HVACTypeEvaporativeCooler}. If not provided, defaults to #{HPXML::UnitsSEER}."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'cooling_system_cooling_efficiency',
+ required: false,
+ display_name: 'Cooling System: Efficiency',
+ description: "The rated efficiency value of the cooling system. Ignored for #{HPXML::HVACTypeEvaporativeCooler}."
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'cooling_system_cooling_compressor_type',
+ choices: compressor_type_choices,
+ required: false,
+ display_name: 'Cooling System: Cooling Compressor Type',
+ description: "The compressor type of the cooling system. Only applies to #{HPXML::HVACTypeCentralAirConditioner} and #{HPXML::HVACTypeMiniSplitAirConditioner}.",
+ default_href: "Central Air Conditioner, Mini-Split Air Conditioner"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'cooling_system_cooling_sensible_heat_fraction',
+ required: false,
+ display_name: 'Cooling System: Cooling Sensible Heat Fraction',
+ description: "The sensible heat fraction of the cooling system. Ignored for #{HPXML::HVACTypeEvaporativeCooler}.",
+ default_href: "Central Air Conditioner, Room Air Conditioner, Packaged Terminal Air Conditioner, Mini-Split Air Conditioner",
+ units: 'Frac'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'cooling_system_cooling_capacity',
+ required: false,
+ display_name: 'Cooling System: Cooling Capacity',
+ description: 'The output cooling capacity of the cooling system.',
+ default_href: "Central Air Conditioner, Room Air Conditioner, Packaged Terminal Air Conditioner, Evaporative Cooler, Mini-Split Air Conditioner",
+ units: 'Btu/hr'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'cooling_system_cooling_autosizing_factor',
+ required: false,
+ display_name: 'Cooling System: Cooling Autosizing Factor',
+ description: 'The capacity scaling factor applied to the auto-sizing methodology. If not provided, 1.0 is used.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'cooling_system_cooling_autosizing_limit',
+ required: false,
+ display_name: 'Cooling System: Cooling Autosizing Limit',
+ description: 'The maximum capacity limit applied to the auto-sizing methodology. If not provided, no limit is used.',
+ units: 'Btu/hr'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'cooling_system_fraction_cool_load_served',
+ required: false,
+ display_name: 'Cooling System: Fraction Cool Load Served',
+ description: 'The cooling load served by the cooling system. If not provided, defaults to 1.',
+ units: 'Frac'
+ }
+
+ args << {
+ name: 'cooling_system_is_ducted',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Cooling System: Is Ducted',
+ description: "Whether the cooling system is ducted or not. Only used for #{HPXML::HVACTypeMiniSplitAirConditioner} and #{HPXML::HVACTypeEvaporativeCooler}. It's assumed that #{HPXML::HVACTypeCentralAirConditioner} is ducted, and #{HPXML::HVACTypeRoomAirConditioner} and #{HPXML::HVACTypePTAC} are not ducted."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'cooling_system_airflow_defect_ratio',
+ required: false,
+ display_name: 'Cooling System: Airflow Defect Ratio',
+ description: "The airflow defect ratio, defined as (InstalledAirflow - DesignAirflow} / DesignAirflow, of the cooling system per ANSI/RESNET/ACCA Standard 310. A value of zero means no airflow defect. Applies only to #{HPXML::HVACTypeCentralAirConditioner} and ducted #{HPXML::HVACTypeMiniSplitAirConditioner}. If not provided, assumes no defect.",
+ units: 'Frac'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'cooling_system_charge_defect_ratio',
+ required: false,
+ display_name: 'Cooling System: Charge Defect Ratio',
+ description: "The refrigerant charge defect ratio, defined as (InstalledCharge - DesignCharge} / DesignCharge, of the cooling system per ANSI/RESNET/ACCA Standard 310. A value of zero means no refrigerant charge defect. Applies only to #{HPXML::HVACTypeCentralAirConditioner} and #{HPXML::HVACTypeMiniSplitAirConditioner}. If not provided, assumes no defect.",
+ units: 'Frac'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'cooling_system_crankcase_heater_watts',
+ required: false,
+ display_name: 'Cooling System: Crankcase Heater Power Watts',
+ description: "Cooling system crankcase heater power consumption in Watts. Applies only to #{HPXML::HVACTypeCentralAirConditioner}, #{HPXML::HVACTypeRoomAirConditioner}, #{HPXML::HVACTypePTAC} and #{HPXML::HVACTypeMiniSplitAirConditioner}.",
+ default_href: "Central Air Conditioner, Room Air Conditioner, Packaged Terminal Air Conditioner, Mini-Split Air Conditioner",
+ units: 'W'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'cooling_system_integrated_heating_system_fuel',
+ choices: heating_system_fuel_choices,
+ required: false,
+ display_name: 'Cooling System: Integrated Heating System Fuel Type',
+ description: "The fuel type of the heating system integrated into cooling system. Only used for #{HPXML::HVACTypePTAC} and #{HPXML::HVACTypeRoomAirConditioner}."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'cooling_system_integrated_heating_system_efficiency_percent',
+ required: false,
+ display_name: 'Cooling System: Integrated Heating System Efficiency',
+ units: 'Frac',
+ description: "The rated heating efficiency value of the heating system integrated into cooling system. Only used for #{HPXML::HVACTypePTAC} and #{HPXML::HVACTypeRoomAirConditioner}."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'cooling_system_integrated_heating_system_capacity',
+ required: false,
+ display_name: 'Cooling System: Integrated Heating System Heating Capacity',
+ description: "The output heating capacity of the heating system integrated into cooling system. Only used for #{HPXML::HVACTypeRoomAirConditioner} and #{HPXML::HVACTypePTAC}.",
+ default_href: "Room Air Conditioner, Packaged Terminal Air Conditioner",
+ units: 'Btu/hr'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'cooling_system_integrated_heating_system_fraction_heat_load_served',
+ required: false,
+ display_name: 'Cooling System: Integrated Heating System Fraction Heat Load Served',
+ description: "The heating load served by the heating system integrated into cooling system. Only used for #{HPXML::HVACTypePTAC} and #{HPXML::HVACTypeRoomAirConditioner}.",
+ units: 'Frac'
+ }
heat_pump_type_choices = OpenStudio::StringVector.new
heat_pump_type_choices << Constants::None
@@ -1391,256 +1934,391 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
heat_pump_backup_sizing_choices << HPXML::HeatPumpBackupSizingEmergency
heat_pump_backup_sizing_choices << HPXML::HeatPumpBackupSizingSupplemental
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('heat_pump_type', heat_pump_type_choices, true)
- arg.setDisplayName('Heat Pump: Type')
- arg.setDescription("The type of heat pump. Use '#{Constants::None}' if there is no heat pump.")
- arg.setDefaultValue(Constants::None)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('heat_pump_heating_efficiency_type', heat_pump_heating_efficiency_type_choices, true)
- arg.setDisplayName('Heat Pump: Heating Efficiency Type')
- arg.setDescription("The heating efficiency type of heat pump. System types #{HPXML::HVACTypeHeatPumpAirToAir} and #{HPXML::HVACTypeHeatPumpMiniSplit} use #{HPXML::UnitsHSPF} or #{HPXML::UnitsHSPF2}. System types #{HPXML::HVACTypeHeatPumpGroundToAir}, #{HPXML::HVACTypeHeatPumpPTHP} and #{HPXML::HVACTypeHeatPumpRoom} use #{HPXML::UnitsCOP}.")
- arg.setDefaultValue(HPXML::UnitsHSPF)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heat_pump_heating_efficiency', true)
- arg.setDisplayName('Heat Pump: Heating Efficiency')
- arg.setDescription('The rated heating efficiency value of the heat pump.')
- arg.setDefaultValue(7.7)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('heat_pump_cooling_efficiency_type', cooling_efficiency_type_choices, true)
- arg.setDisplayName('Heat Pump: Cooling Efficiency Type')
- arg.setDescription("The cooling efficiency type of heat pump. System types #{HPXML::HVACTypeHeatPumpAirToAir} and #{HPXML::HVACTypeHeatPumpMiniSplit} use #{HPXML::UnitsSEER} or #{HPXML::UnitsSEER2}. System types #{HPXML::HVACTypeHeatPumpGroundToAir}, #{HPXML::HVACTypeHeatPumpPTHP} and #{HPXML::HVACTypeHeatPumpRoom} use #{HPXML::UnitsEER}.")
- arg.setDefaultValue(HPXML::UnitsSEER)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heat_pump_cooling_efficiency', true)
- arg.setDisplayName('Heat Pump: Cooling Efficiency')
- arg.setDescription('The rated cooling efficiency value of the heat pump.')
- arg.setDefaultValue(13.0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('heat_pump_cooling_compressor_type', compressor_type_choices, false)
- arg.setDisplayName('Heat Pump: Cooling Compressor Type')
- arg.setDescription("The compressor type of the heat pump. Only applies to #{HPXML::HVACTypeHeatPumpAirToAir} and #{HPXML::HVACTypeHeatPumpMiniSplit}. If not provided, the OS-HPXML default (see Air-to-Air Heat Pump, Mini-Split Heat Pump) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heat_pump_cooling_sensible_heat_fraction', false)
- arg.setDisplayName('Heat Pump: Cooling Sensible Heat Fraction')
- arg.setDescription("The sensible heat fraction of the heat pump. If not provided, the OS-HPXML default (see Air-to-Air Heat Pump, Mini-Split Heat Pump, Packaged Terminal Heat Pump, Room Air Conditioner w/ Reverse Cycle, Ground-to-Air Heat Pump) is used.")
- arg.setUnits('Frac')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heat_pump_heating_capacity', false)
- arg.setDisplayName('Heat Pump: Heating Capacity')
- arg.setDescription("The output heating capacity of the heat pump. If not provided, the OS-HPXML autosized default (see Air-to-Air Heat Pump, Mini-Split Heat Pump, Packaged Terminal Heat Pump, Room Air Conditioner w/ Reverse Cycle, Ground-to-Air Heat Pump) is used.")
- arg.setUnits('Btu/hr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heat_pump_heating_autosizing_factor', false)
- arg.setDisplayName('Heat Pump: Heating Autosizing Factor')
- arg.setDescription('The capacity scaling factor applied to the auto-sizing methodology. If not provided, 1.0 is used.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heat_pump_heating_autosizing_limit', false)
- arg.setDisplayName('Heat Pump: Heating Autosizing Limit')
- arg.setDescription('The maximum capacity limit applied to the auto-sizing methodology. If not provided, no limit is used.')
- arg.setUnits('Btu/hr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heat_pump_heating_capacity_retention_fraction', false)
- arg.setDisplayName('Heat Pump: Heating Capacity Retention Fraction')
- arg.setDescription("The output heating capacity of the heat pump at a user-specified temperature (e.g., 17F or 5F) divided by the above nominal heating capacity. Applies to all heat pump types except #{HPXML::HVACTypeHeatPumpGroundToAir}. If not provided, the OS-HPXML default (see Air-to-Air Heat Pump, Mini-Split Heat Pump, Packaged Terminal Heat Pump, Room Air Conditioner w/ Reverse Cycle) is used.")
- arg.setUnits('Frac')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heat_pump_heating_capacity_retention_temp', false)
- arg.setDisplayName('Heat Pump: Heating Capacity Retention Temperature')
- arg.setDescription("The user-specified temperature (e.g., 17F or 5F) for the above heating capacity retention fraction. Applies to all heat pump types except #{HPXML::HVACTypeHeatPumpGroundToAir}. Required if the Heating Capacity Retention Fraction is provided.")
- arg.setUnits('F')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heat_pump_cooling_capacity', false)
- arg.setDisplayName('Heat Pump: Cooling Capacity')
- arg.setDescription("The output cooling capacity of the heat pump. If not provided, the OS-HPXML autosized default (see Air-to-Air Heat Pump, Mini-Split Heat Pump, Packaged Terminal Heat Pump, Room Air Conditioner w/ Reverse Cycle, Ground-to-Air Heat Pump) is used.")
- arg.setUnits('Btu/hr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heat_pump_cooling_autosizing_factor', false)
- arg.setDisplayName('Heat Pump: Cooling Autosizing Factor')
- arg.setDescription('The capacity scaling factor applied to the auto-sizing methodology. If not provided, 1.0 is used.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heat_pump_cooling_autosizing_limit', false)
- arg.setDisplayName('Heat Pump: Cooling Autosizing Limit')
- arg.setDescription('The maximum capacity limit applied to the auto-sizing methodology. If not provided, no limit is used.')
- arg.setUnits('Btu/hr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heat_pump_fraction_heat_load_served', true)
- arg.setDisplayName('Heat Pump: Fraction Heat Load Served')
- arg.setDescription('The heating load served by the heat pump.')
- arg.setUnits('Frac')
- arg.setDefaultValue(1)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heat_pump_fraction_cool_load_served', true)
- arg.setDisplayName('Heat Pump: Fraction Cool Load Served')
- arg.setDescription('The cooling load served by the heat pump.')
- arg.setUnits('Frac')
- arg.setDefaultValue(1)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heat_pump_compressor_lockout_temp', false)
- arg.setDisplayName('Heat Pump: Compressor Lockout Temperature')
- arg.setDescription("The temperature below which the heat pump compressor is disabled. If both this and Backup Heating Lockout Temperature are provided and use the same value, it essentially defines a switchover temperature (for, e.g., a dual-fuel heat pump). Applies to all heat pump types other than #{HPXML::HVACTypeHeatPumpGroundToAir}. If not provided, the OS-HPXML default (see Air-to-Air Heat Pump, Mini-Split Heat Pump, Packaged Terminal Heat Pump, Room Air Conditioner w/ Reverse Cycle) is used.")
- arg.setUnits('F')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('heat_pump_backup_type', heat_pump_backup_type_choices, true)
- arg.setDisplayName('Heat Pump: Backup Type')
- arg.setDescription("The backup type of the heat pump. If '#{HPXML::HeatPumpBackupTypeIntegrated}', represents e.g. built-in electric strip heat or dual-fuel integrated furnace. If '#{HPXML::HeatPumpBackupTypeSeparate}', represents e.g. electric baseboard or boiler based on the Heating System 2 specified below. Use '#{Constants::None}' if there is no backup heating.")
- arg.setDefaultValue(HPXML::HeatPumpBackupTypeIntegrated)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heat_pump_backup_heating_autosizing_factor', false)
- arg.setDisplayName('Heat Pump: Backup Heating Autosizing Factor')
- arg.setDescription("The capacity scaling factor applied to the auto-sizing methodology if Backup Type is '#{HPXML::HeatPumpBackupTypeIntegrated}'. If not provided, 1.0 is used. If Backup Type is '#{HPXML::HeatPumpBackupTypeSeparate}', use Heating System 2: Heating Autosizing Factor.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heat_pump_backup_heating_autosizing_limit', false)
- arg.setDisplayName('Heat Pump: Backup Heating Autosizing Limit')
- arg.setDescription("The maximum capacity limit applied to the auto-sizing methodology if Backup Type is '#{HPXML::HeatPumpBackupTypeIntegrated}'. If not provided, no limit is used. If Backup Type is '#{HPXML::HeatPumpBackupTypeSeparate}', use Heating System 2: Heating Autosizing Limit.")
- arg.setUnits('Btu/hr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('heat_pump_backup_fuel', heat_pump_backup_fuel_choices, true)
- arg.setDisplayName('Heat Pump: Backup Fuel Type')
- arg.setDescription("The backup fuel type of the heat pump. Only applies if Backup Type is '#{HPXML::HeatPumpBackupTypeIntegrated}'.")
- arg.setDefaultValue(HPXML::FuelTypeElectricity)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heat_pump_backup_heating_efficiency', true)
- arg.setDisplayName('Heat Pump: Backup Rated Efficiency')
- arg.setDescription("The backup rated efficiency value of the heat pump. Percent for electricity fuel type. AFUE otherwise. Only applies if Backup Type is '#{HPXML::HeatPumpBackupTypeIntegrated}'.")
- arg.setDefaultValue(1)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heat_pump_backup_heating_capacity', false)
- arg.setDisplayName('Heat Pump: Backup Heating Capacity')
- arg.setDescription("The backup output heating capacity of the heat pump. If not provided, the OS-HPXML autosized default (see Backup) is used. Only applies if Backup Type is '#{HPXML::HeatPumpBackupTypeIntegrated}'.")
- arg.setUnits('Btu/hr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heat_pump_backup_heating_lockout_temp', false)
- arg.setDisplayName('Heat Pump: Backup Heating Lockout Temperature')
- arg.setDescription("The temperature above which the heat pump backup system is disabled. If both this and Compressor Lockout Temperature are provided and use the same value, it essentially defines a switchover temperature (for, e.g., a dual-fuel heat pump). Applies for both Backup Type of '#{HPXML::HeatPumpBackupTypeIntegrated}' and '#{HPXML::HeatPumpBackupTypeSeparate}'. If not provided, the OS-HPXML default (see Backup) is used.")
- arg.setUnits('F')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('heat_pump_sizing_methodology', heat_pump_sizing_choices, false)
- arg.setDisplayName('Heat Pump: Sizing Methodology')
- arg.setDescription("The auto-sizing methodology to use when the heat pump capacity is not provided. If not provided, the OS-HPXML default (see HPXML HVAC Sizing Control) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('heat_pump_backup_sizing_methodology', heat_pump_backup_sizing_choices, false)
- arg.setDisplayName('Heat Pump: Backup Sizing Methodology')
- arg.setDescription("The auto-sizing methodology to use when the heat pump backup capacity is not provided. If not provided, the OS-HPXML default (see HPXML HVAC Sizing Control) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('heat_pump_is_ducted', false)
- arg.setDisplayName('Heat Pump: Is Ducted')
- arg.setDescription("Whether the heat pump is ducted or not. Only used for #{HPXML::HVACTypeHeatPumpMiniSplit}. It's assumed that #{HPXML::HVACTypeHeatPumpAirToAir} and #{HPXML::HVACTypeHeatPumpGroundToAir} are ducted, and #{HPXML::HVACTypeHeatPumpPTHP} and #{HPXML::HVACTypeHeatPumpRoom} are not ducted. If not provided, assumes not ducted.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heat_pump_airflow_defect_ratio', false)
- arg.setDisplayName('Heat Pump: Airflow Defect Ratio')
- arg.setDescription("The airflow defect ratio, defined as (InstalledAirflow - DesignAirflow) / DesignAirflow, of the heat pump per ANSI/RESNET/ACCA Standard 310. A value of zero means no airflow defect. Applies only to #{HPXML::HVACTypeHeatPumpAirToAir}, ducted #{HPXML::HVACTypeHeatPumpMiniSplit}, and #{HPXML::HVACTypeHeatPumpGroundToAir}. If not provided, assumes no defect.")
- arg.setUnits('Frac')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heat_pump_charge_defect_ratio', false)
- arg.setDisplayName('Heat Pump: Charge Defect Ratio')
- arg.setDescription('The refrigerant charge defect ratio, defined as (InstalledCharge - DesignCharge) / DesignCharge, of the heat pump per ANSI/RESNET/ACCA Standard 310. A value of zero means no refrigerant charge defect. Applies to all heat pump types. If not provided, assumes no defect.')
- arg.setUnits('Frac')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heat_pump_crankcase_heater_watts', false)
- arg.setDisplayName('Heat Pump: Crankcase Heater Power Watts')
- arg.setDescription("Heat Pump crankcase heater power consumption in Watts. Applies only to #{HPXML::HVACTypeHeatPumpAirToAir}, #{HPXML::HVACTypeHeatPumpMiniSplit}, #{HPXML::HVACTypeHeatPumpPTHP} and #{HPXML::HVACTypeHeatPumpRoom}. If not provided, the OS-HPXML default (see Air-to-Air Heat Pump, Mini-Split Heat Pump, Packaged Terminal Heat Pump, Room Air Conditioner w/ Reverse Cycle) is used.")
- arg.setUnits('W')
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'heat_pump_type',
+ choices: heat_pump_type_choices,
+ required: true,
+ display_name: 'Heat Pump: Type',
+ description: "The type of heat pump. Use '#{Constants::None}' if there is no heat pump."
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'heat_pump_heating_efficiency_type',
+ choices: heat_pump_heating_efficiency_type_choices,
+ required: false,
+ display_name: 'Heat Pump: Heating Efficiency Type',
+ description: "The heating efficiency type of heat pump. System types #{HPXML::HVACTypeHeatPumpAirToAir} and #{HPXML::HVACTypeHeatPumpMiniSplit} use #{HPXML::UnitsHSPF} or #{HPXML::UnitsHSPF2}. System types #{HPXML::HVACTypeHeatPumpGroundToAir}, #{HPXML::HVACTypeHeatPumpPTHP} and #{HPXML::HVACTypeHeatPumpRoom} use #{HPXML::UnitsCOP}. If not provided, defaults to #{HPXML::UnitsHSPF}."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heat_pump_heating_efficiency',
+ required: false,
+ display_name: 'Heat Pump: Heating Efficiency',
+ description: 'The rated heating efficiency value of the heat pump.'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'heat_pump_cooling_efficiency_type',
+ choices: cooling_efficiency_type_choices,
+ required: false,
+ display_name: 'Heat Pump: Cooling Efficiency Type',
+ description: "The cooling efficiency type of heat pump. System types #{HPXML::HVACTypeHeatPumpAirToAir} and #{HPXML::HVACTypeHeatPumpMiniSplit} use #{HPXML::UnitsSEER} or #{HPXML::UnitsSEER2}. System types #{HPXML::HVACTypeHeatPumpGroundToAir}, #{HPXML::HVACTypeHeatPumpPTHP} and #{HPXML::HVACTypeHeatPumpRoom} use #{HPXML::UnitsEER}. If not provided, defaults to #{HPXML::UnitsSEER}."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heat_pump_cooling_efficiency',
+ required: false,
+ display_name: 'Heat Pump: Cooling Efficiency',
+ description: 'The rated cooling efficiency value of the heat pump.'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'heat_pump_cooling_compressor_type',
+ choices: compressor_type_choices,
+ required: false,
+ display_name: 'Heat Pump: Cooling Compressor Type',
+ description: "The compressor type of the heat pump. Only applies to #{HPXML::HVACTypeHeatPumpAirToAir} and #{HPXML::HVACTypeHeatPumpMiniSplit}.",
+ default_href: "Air-to-Air Heat Pump, Mini-Split Heat Pump"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heat_pump_cooling_sensible_heat_fraction',
+ required: false,
+ display_name: 'Heat Pump: Cooling Sensible Heat Fraction',
+ description: 'The sensible heat fraction of the heat pump.',
+ default_href: "Air-to-Air Heat Pump, Mini-Split Heat Pump, Packaged Terminal Heat Pump, Room Air Conditioner w/ Reverse Cycle, Ground-to-Air Heat Pump",
+ units: 'Frac'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heat_pump_heating_capacity',
+ required: false,
+ display_name: 'Heat Pump: Heating Capacity',
+ description: 'The output heating capacity of the heat pump.',
+ default_href: "Air-to-Air Heat Pump, Mini-Split Heat Pump, Packaged Terminal Heat Pump, Room Air Conditioner w/ Reverse Cycle, Ground-to-Air Heat Pump",
+ units: 'Btu/hr'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heat_pump_heating_autosizing_factor',
+ required: false,
+ display_name: 'Heat Pump: Heating Autosizing Factor',
+ description: 'The capacity scaling factor applied to the auto-sizing methodology. If not provided, 1.0 is used.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heat_pump_heating_autosizing_limit',
+ required: false,
+ display_name: 'Heat Pump: Heating Autosizing Limit',
+ description: 'The maximum capacity limit applied to the auto-sizing methodology. If not provided, no limit is used.',
+ units: 'Btu/hr'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heat_pump_heating_capacity_retention_fraction',
+ required: false,
+ display_name: 'Heat Pump: Heating Capacity Retention Fraction',
+ description: "The output heating capacity of the heat pump at a user-specified temperature (e.g., 17F or 5F} divided by the above nominal heating capacity. Applies to all heat pump types except #{HPXML::HVACTypeHeatPumpGroundToAir}.",
+ default_href: "Air-to-Air Heat Pump, Mini-Split Heat Pump, Packaged Terminal Heat Pump, Room Air Conditioner w/ Reverse Cycle",
+ units: 'Frac'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heat_pump_heating_capacity_retention_temp',
+ required: false,
+ display_name: 'Heat Pump: Heating Capacity Retention Temperature',
+ description: "The user-specified temperature (e.g., 17F or 5F} for the above heating capacity retention fraction. Applies to all heat pump types except #{HPXML::HVACTypeHeatPumpGroundToAir}. Required if the Heating Capacity Retention Fraction is provided.",
+ units: 'F'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heat_pump_cooling_capacity',
+ required: false,
+ display_name: 'Heat Pump: Cooling Capacity',
+ description: 'The output cooling capacity of the heat pump.',
+ default_href: "Air-to-Air Heat Pump, Mini-Split Heat Pump, Packaged Terminal Heat Pump, Room Air Conditioner w/ Reverse Cycle, Ground-to-Air Heat Pump",
+ units: 'Btu/hr'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heat_pump_cooling_autosizing_factor',
+ required: false,
+ display_name: 'Heat Pump: Cooling Autosizing Factor',
+ description: 'The capacity scaling factor applied to the auto-sizing methodology. If not provided, 1.0 is used.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heat_pump_cooling_autosizing_limit',
+ required: false,
+ display_name: 'Heat Pump: Cooling Autosizing Limit',
+ description: 'The maximum capacity limit applied to the auto-sizing methodology. If not provided, no limit is used.',
+ units: 'Btu/hr'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heat_pump_fraction_heat_load_served',
+ required: false,
+ display_name: 'Heat Pump: Fraction Heat Load Served',
+ description: 'The heating load served by the heat pump. If not provided, defaults to 1.',
+ units: 'Frac'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heat_pump_fraction_cool_load_served',
+ required: false,
+ display_name: 'Heat Pump: Fraction Cool Load Served',
+ description: 'The cooling load served by the heat pump. If not provided, defaults to 1.',
+ units: 'Frac'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heat_pump_compressor_lockout_temp',
+ required: false,
+ display_name: 'Heat Pump: Compressor Lockout Temperature',
+ description: "The temperature below which the heat pump compressor is disabled. If both this and Backup Heating Lockout Temperature are provided and use the same value, it essentially defines a switchover temperature (for, e.g., a dual-fuel heat pump}. Applies to all heat pump types other than #{HPXML::HVACTypeHeatPumpGroundToAir}.",
+ default_href: "Air-to-Air Heat Pump, Mini-Split Heat Pump, Packaged Terminal Heat Pump, Room Air Conditioner w/ Reverse Cycle",
+ units: 'F'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'heat_pump_backup_type',
+ choices: heat_pump_backup_type_choices,
+ required: false,
+ display_name: 'Heat Pump: Backup Type',
+ description: "The backup type of the heat pump. If '#{HPXML::HeatPumpBackupTypeIntegrated}', represents e.g. built-in electric strip heat or dual-fuel integrated furnace. If '#{HPXML::HeatPumpBackupTypeSeparate}', represents e.g. electric baseboard or boiler based on the Heating System 2 specified below. Use '#{Constants::None}' if there is no backup heating. If not provided, defaults to '#{HPXML::HeatPumpBackupTypeIntegrated}'."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heat_pump_backup_heating_autosizing_factor',
+ required: false,
+ display_name: 'Heat Pump: Backup Heating Autosizing Factor',
+ description: "The capacity scaling factor applied to the auto-sizing methodology if Backup Type is '#{HPXML::HeatPumpBackupTypeIntegrated}'. If not provided, 1.0 is used. If Backup Type is '#{HPXML::HeatPumpBackupTypeSeparate}', use Heating System 2: Heating Autosizing Factor."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heat_pump_backup_heating_autosizing_limit',
+ required: false,
+ display_name: 'Heat Pump: Backup Heating Autosizing Limit',
+ description: "The maximum capacity limit applied to the auto-sizing methodology if Backup Type is '#{HPXML::HeatPumpBackupTypeIntegrated}'. If not provided, no limit is used. If Backup Type is '#{HPXML::HeatPumpBackupTypeSeparate}', use Heating System 2: Heating Autosizing Limit.",
+ units: 'Btu/hr'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'heat_pump_backup_fuel',
+ choices: heat_pump_backup_fuel_choices,
+ required: false,
+ display_name: 'Heat Pump: Backup Fuel Type',
+ description: "The backup fuel type of the heat pump. Only applies if Backup Type is '#{HPXML::HeatPumpBackupTypeIntegrated}'. If not provided, defaults to electricity."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heat_pump_backup_heating_efficiency',
+ required: false,
+ display_name: 'Heat Pump: Backup Rated Efficiency',
+ description: "The backup rated efficiency value of the heat pump. Percent for electricity fuel type. AFUE otherwise. Only applies if Backup Type is '#{HPXML::HeatPumpBackupTypeIntegrated}'. If not provided, defaults to 1."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heat_pump_backup_heating_capacity',
+ required: false,
+ display_name: 'Heat Pump: Backup Heating Capacity',
+ description: "The backup output heating capacity of the heat pump. Only applies if Backup Type is '#{HPXML::HeatPumpBackupTypeIntegrated}'.",
+ default_href: "Backup",
+ units: 'Btu/hr'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heat_pump_backup_heating_lockout_temp',
+ required: false,
+ display_name: 'Heat Pump: Backup Heating Lockout Temperature',
+ description: "The temperature above which the heat pump backup system is disabled. If both this and Compressor Lockout Temperature are provided and use the same value, it essentially defines a switchover temperature (for, e.g., a dual-fuel heat pump}. Applies for both Backup Type of '#{HPXML::HeatPumpBackupTypeIntegrated}' and '#{HPXML::HeatPumpBackupTypeSeparate}'.",
+ default_href: "Backup",
+ units: 'F'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'heat_pump_sizing_methodology',
+ choices: heat_pump_sizing_choices,
+ required: false,
+ display_name: 'Heat Pump: Sizing Methodology',
+ description: 'The auto-sizing methodology to use when the heat pump capacity is not provided.',
+ default_href: "HPXML HVAC Sizing Control"
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'heat_pump_backup_sizing_methodology',
+ choices: heat_pump_backup_sizing_choices,
+ required: false,
+ display_name: 'Heat Pump: Backup Sizing Methodology',
+ description: 'The auto-sizing methodology to use when the heat pump backup capacity is not provided.',
+ default_href: "HPXML HVAC Sizing Control"
+ }
+
+ args << {
+ name: 'heat_pump_is_ducted',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Heat Pump: Is Ducted',
+ description: "Whether the heat pump is ducted or not. Only used for #{HPXML::HVACTypeHeatPumpMiniSplit}. It's assumed that #{HPXML::HVACTypeHeatPumpAirToAir} and #{HPXML::HVACTypeHeatPumpGroundToAir} are ducted, and #{HPXML::HVACTypeHeatPumpPTHP} and #{HPXML::HVACTypeHeatPumpRoom} are not ducted. If not provided, assumes not ducted."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heat_pump_airflow_defect_ratio',
+ required: false,
+ display_name: 'Heat Pump: Airflow Defect Ratio',
+ description: "The airflow defect ratio, defined as (InstalledAirflow - DesignAirflow} / DesignAirflow, of the heat pump per ANSI/RESNET/ACCA Standard 310. A value of zero means no airflow defect. Applies only to #{HPXML::HVACTypeHeatPumpAirToAir}, ducted #{HPXML::HVACTypeHeatPumpMiniSplit}, and #{HPXML::HVACTypeHeatPumpGroundToAir}. If not provided, assumes no defect.",
+ units: 'Frac'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heat_pump_charge_defect_ratio',
+ required: false,
+ display_name: 'Heat Pump: Charge Defect Ratio',
+ description: 'The refrigerant charge defect ratio, defined as (InstalledCharge - DesignCharge} / DesignCharge, of the heat pump per ANSI/RESNET/ACCA Standard 310. A value of zero means no refrigerant charge defect. Applies to all heat pump types. If not provided, assumes no defect.',
+ units: 'Frac'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heat_pump_crankcase_heater_watts',
+ required: false,
+ display_name: 'Heat Pump: Crankcase Heater Power Watts',
+ description: "Heat Pump crankcase heater power consumption in Watts. Applies only to #{HPXML::HVACTypeHeatPumpAirToAir}, #{HPXML::HVACTypeHeatPumpMiniSplit}, #{HPXML::HVACTypeHeatPumpPTHP} and #{HPXML::HVACTypeHeatPumpRoom}.",
+ default_href: "Air-to-Air Heat Pump, Mini-Split Heat Pump, Packaged Terminal Heat Pump, Room Air Conditioner w/ Reverse Cycle",
+ units: 'W'
+ }
perf_data_capacity_type_choices = OpenStudio::StringVector.new
perf_data_capacity_type_choices << 'Absolute capacities'
perf_data_capacity_type_choices << 'Normalized capacity fractions'
- arg = OpenStudio::Measure::OSArgument.makeChoiceArgument('hvac_perf_data_capacity_type', perf_data_capacity_type_choices, false)
- arg.setDisplayName('HVAC Detailed Performance Data: Capacity Type')
- arg.setDescription('Type of capacity values for detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps).')
- arg.setUnits('Absolute capacities')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('hvac_perf_data_heating_outdoor_temperatures', false)
- arg.setDisplayName('HVAC Detailed Performance Data: Heating Outdoor Temperatures')
- arg.setDescription('Outdoor temperatures of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). One of the outdoor temperatures must be 47 F. At least two performance data points are required using a comma-separated list.')
- arg.setUnits('F')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('hvac_perf_data_heating_min_speed_capacities', false)
- arg.setDisplayName('HVAC Detailed Performance Data: Heating Minimum Speed Capacities')
- arg.setDescription('Minimum speed capacities of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). At least two performance data points are required using a comma-separated list.')
- arg.setUnits('Btu/hr or Frac')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('hvac_perf_data_heating_max_speed_capacities', false)
- arg.setDisplayName('HVAC Detailed Performance Data: Heating Maximum Speed Capacities')
- arg.setDescription('Maximum speed capacities of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). At least two performance data points are required using a comma-separated list.')
- arg.setUnits('Btu/hr or Frac')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('hvac_perf_data_heating_min_speed_cops', false)
- arg.setDisplayName('HVAC Detailed Performance Data: Heating Minimum Speed COPs')
- arg.setDescription('Minimum speed efficiency COP values of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). At least two performance data points are required using a comma-separated list.')
- arg.setUnits('W/W')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('hvac_perf_data_heating_max_speed_cops', false)
- arg.setDisplayName('HVAC Detailed Performance Data: Heating Maximum Speed COPs')
- arg.setDescription('Maximum speed efficiency COP values of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). At least two performance data points are required using a comma-separated list.')
- arg.setUnits('W/W')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('hvac_perf_data_cooling_outdoor_temperatures', false)
- arg.setDisplayName('HVAC Detailed Performance Data: Cooling Outdoor Temperatures')
- arg.setDescription('Outdoor temperatures of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). One of the outdoor temperatures must be 95 F. At least two performance data points are required using a comma-separated list.')
- arg.setUnits('F')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('hvac_perf_data_cooling_min_speed_capacities', false)
- arg.setDisplayName('HVAC Detailed Performance Data: Cooling Minimum Speed Capacities')
- arg.setDescription('Minimum speed capacities of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). At least two performance data points are required using a comma-separated list.')
- arg.setUnits('Btu/hr or Frac')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('hvac_perf_data_cooling_max_speed_capacities', false)
- arg.setDisplayName('HVAC Detailed Performance Data: Cooling Maximum Speed Capacities')
- arg.setDescription('Maximum speed capacities of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). At least two performance data points are required using a comma-separated list.')
- arg.setUnits('Btu/hr or Frac')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('hvac_perf_data_cooling_min_speed_cops', false)
- arg.setDisplayName('HVAC Detailed Performance Data: Cooling Minimum Speed COPs')
- arg.setDescription('Minimum speed efficiency COP values of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). At least two performance data points are required using a comma-separated list.')
- arg.setUnits('W/W')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('hvac_perf_data_cooling_max_speed_cops', false)
- arg.setDisplayName('HVAC Detailed Performance Data: Cooling Maximum Speed COPs')
- arg.setDescription('Maximum speed efficiency COP values of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). At least two performance data points are required using a comma-separated list.')
- arg.setUnits('W/W')
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'hvac_perf_data_capacity_type',
+ choices: perf_data_capacity_type_choices,
+ required: false,
+ display_name: 'HVAC Detailed Performance Data: Capacity Type',
+ description: 'Type of capacity values for detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}.'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'hvac_perf_data_heating_outdoor_temperatures',
+ required: false,
+ display_name: 'HVAC Detailed Performance Data: Heating Outdoor Temperatures',
+ description: 'Outdoor temperatures of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. One of the outdoor temperatures must be 47 F. At least two performance data points are required using a comma-separated list.',
+ units: 'F'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'hvac_perf_data_heating_min_speed_capacities',
+ required: false,
+ display_name: 'HVAC Detailed Performance Data: Heating Minimum Speed Capacities',
+ description: 'Minimum speed capacities of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. At least two performance data points are required using a comma-separated list.',
+ units: 'Btu/hr or Frac'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'hvac_perf_data_heating_max_speed_capacities',
+ required: false,
+ display_name: 'HVAC Detailed Performance Data: Heating Maximum Speed Capacities',
+ description: 'Maximum speed capacities of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. At least two performance data points are required using a comma-separated list.',
+ units: 'Btu/hr or Frac'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'hvac_perf_data_heating_min_speed_cops',
+ required: false,
+ display_name: 'HVAC Detailed Performance Data: Heating Minimum Speed COPs',
+ description: 'Minimum speed efficiency COP values of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. At least two performance data points are required using a comma-separated list.',
+ units: 'W/W'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'hvac_perf_data_heating_max_speed_cops',
+ required: false,
+ display_name: 'HVAC Detailed Performance Data: Heating Maximum Speed COPs',
+ description: 'Maximum speed efficiency COP values of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. At least two performance data points are required using a comma-separated list.',
+ units: 'W/W'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'hvac_perf_data_cooling_outdoor_temperatures',
+ required: false,
+ display_name: 'HVAC Detailed Performance Data: Cooling Outdoor Temperatures',
+ description: 'Outdoor temperatures of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. One of the outdoor temperatures must be 95 F. At least two performance data points are required using a comma-separated list.',
+ units: 'F'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'hvac_perf_data_cooling_min_speed_capacities',
+ required: false,
+ display_name: 'HVAC Detailed Performance Data: Cooling Minimum Speed Capacities',
+ description: 'Minimum speed capacities of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. At least two performance data points are required using a comma-separated list.',
+ units: 'Btu/hr or Frac'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'hvac_perf_data_cooling_max_speed_capacities',
+ required: false,
+ display_name: 'HVAC Detailed Performance Data: Cooling Maximum Speed Capacities',
+ description: 'Maximum speed capacities of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. At least two performance data points are required using a comma-separated list.',
+ units: 'Btu/hr or Frac'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'hvac_perf_data_cooling_min_speed_cops',
+ required: false,
+ display_name: 'HVAC Detailed Performance Data: Cooling Minimum Speed COPs',
+ description: 'Minimum speed efficiency COP values of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. At least two performance data points are required using a comma-separated list.',
+ units: 'W/W'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'hvac_perf_data_cooling_max_speed_cops',
+ required: false,
+ display_name: 'HVAC Detailed Performance Data: Cooling Maximum Speed COPs',
+ description: 'Maximum speed efficiency COP values of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. At least two performance data points are required using a comma-separated list.',
+ units: 'W/W'
+ }
geothermal_loop_configuration_choices = OpenStudio::StringVector.new
geothermal_loop_configuration_choices << Constants::None
@@ -1649,10 +2327,15 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
# geothermal_loop_configuration_choices << HPXML::GeothermalLoopLoopConfigurationOther
geothermal_loop_configuration_choices << HPXML::GeothermalLoopLoopConfigurationVertical
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('geothermal_loop_configuration', geothermal_loop_configuration_choices, false)
- arg.setDisplayName('Geothermal Loop: Configuration')
- arg.setDescription("Configuration of the geothermal loop. Only applies to #{HPXML::HVACTypeHeatPumpGroundToAir} heat pump type. If not provided, the OS-HPXML default (see Ground-to-Air Heat Pump) is used.")
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'geothermal_loop_configuration',
+ choices: geothermal_loop_configuration_choices,
+ required: false,
+ display_name: 'Geothermal Loop: Configuration',
+ description: "Configuration of the geothermal loop. Only applies to #{HPXML::HVACTypeHeatPumpGroundToAir} heat pump type.",
+ default_href: "Ground-to-Air Heat Pump"
+ }
geothermal_loop_borefield_configuration_choices = OpenStudio::StringVector.new
valid_bore_configs = HVACSizing.get_geothermal_loop_valid_configurations
@@ -1660,65 +2343,105 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
geothermal_loop_borefield_configuration_choices << valid_bore_config
end
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('geothermal_loop_borefield_configuration', geothermal_loop_borefield_configuration_choices, false)
- arg.setDisplayName('Geothermal Loop: Borefield Configuration')
- arg.setDescription("Borefield configuration of the geothermal loop. Only applies to #{HPXML::HVACTypeHeatPumpGroundToAir} heat pump type. If not provided, the OS-HPXML default (see HPXML Geothermal Loops) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('geothermal_loop_loop_flow', false)
- arg.setDisplayName('Geothermal Loop: Loop Flow')
- arg.setDescription("Water flow rate through the geothermal loop. Only applies to #{HPXML::HVACTypeHeatPumpGroundToAir} heat pump type. If not provided, the OS-HPXML autosized default (see HPXML Geothermal Loops) is used.")
- arg.setUnits('gpm')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('geothermal_loop_boreholes_count', false)
- arg.setDisplayName('Geothermal Loop: Boreholes Count')
- arg.setDescription("Number of boreholes. Only applies to #{HPXML::HVACTypeHeatPumpGroundToAir} heat pump type. If not provided, the OS-HPXML autosized default (see HPXML Geothermal Loops) is used.")
- arg.setUnits('#')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('geothermal_loop_boreholes_length', false)
- arg.setDisplayName('Geothermal Loop: Boreholes Length')
- arg.setDescription("Average length of each borehole (vertical). Only applies to #{HPXML::HVACTypeHeatPumpGroundToAir} heat pump type. If not provided, the OS-HPXML autosized default (see HPXML Geothermal Loops) is used.")
- arg.setUnits('ft')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('geothermal_loop_boreholes_spacing', false)
- arg.setDisplayName('Geothermal Loop: Boreholes Spacing')
- arg.setDescription("Distance between bores. Only applies to #{HPXML::HVACTypeHeatPumpGroundToAir} heat pump type. If not provided, the OS-HPXML default (see HPXML Geothermal Loops) is used.")
- arg.setUnits('ft')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('geothermal_loop_boreholes_diameter', false)
- arg.setDisplayName('Geothermal Loop: Boreholes Diameter')
- arg.setDescription("Diameter of bores. Only applies to #{HPXML::HVACTypeHeatPumpGroundToAir} heat pump type. If not provided, the OS-HPXML default (see HPXML Geothermal Loops) is used.")
- arg.setUnits('in')
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'geothermal_loop_borefield_configuration',
+ choices: geothermal_loop_borefield_configuration_choices,
+ required: false,
+ display_name: 'Geothermal Loop: Borefield Configuration',
+ description: "Borefield configuration of the geothermal loop. Only applies to #{HPXML::HVACTypeHeatPumpGroundToAir} heat pump type.",
+ default_href: "HPXML Geothermal Loops"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'geothermal_loop_loop_flow',
+ required: false,
+ display_name: 'Geothermal Loop: Loop Flow',
+ description: "Water flow rate through the geothermal loop. Only applies to #{HPXML::HVACTypeHeatPumpGroundToAir} heat pump type.",
+ default_href: "HPXML Geothermal Loops",
+ units: 'gpm'
+ }
+
+ args << {
+ type: Argument::Integer,
+ name: 'geothermal_loop_boreholes_count',
+ required: false,
+ display_name: 'Geothermal Loop: Boreholes Count',
+ description: "Number of boreholes. Only applies to #{HPXML::HVACTypeHeatPumpGroundToAir} heat pump type.",
+ default_href: "HPXML Geothermal Loops",
+ units: '#'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'geothermal_loop_boreholes_length',
+ required: false,
+ display_name: 'Geothermal Loop: Boreholes Length',
+ description: "Average length of each borehole (vertical}. Only applies to #{HPXML::HVACTypeHeatPumpGroundToAir} heat pump type.",
+ default_href: "HPXML Geothermal Loops",
+ units: 'ft'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'geothermal_loop_boreholes_spacing',
+ required: false,
+ display_name: 'Geothermal Loop: Boreholes Spacing',
+ description: "Distance between bores. Only applies to #{HPXML::HVACTypeHeatPumpGroundToAir} heat pump type.",
+ default_href: "HPXML Geothermal Loops",
+ units: 'ft'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'geothermal_loop_boreholes_diameter',
+ required: false,
+ display_name: 'Geothermal Loop: Boreholes Diameter',
+ description: "Diameter of bores. Only applies to #{HPXML::HVACTypeHeatPumpGroundToAir} heat pump type.",
+ default_href: "HPXML Geothermal Loops",
+ units: 'in'
+ }
geothermal_loop_grout_or_pipe_type_choices = OpenStudio::StringVector.new
geothermal_loop_grout_or_pipe_type_choices << HPXML::GeothermalLoopGroutOrPipeTypeStandard
geothermal_loop_grout_or_pipe_type_choices << HPXML::GeothermalLoopGroutOrPipeTypeThermallyEnhanced
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('geothermal_loop_grout_type', geothermal_loop_grout_or_pipe_type_choices, false)
- arg.setDisplayName('Geothermal Loop: Grout Type')
- arg.setDescription("Grout type of the geothermal loop. Only applies to #{HPXML::HVACTypeHeatPumpGroundToAir} heat pump type. If not provided, the OS-HPXML default (see HPXML Geothermal Loops) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('geothermal_loop_pipe_type', geothermal_loop_grout_or_pipe_type_choices, false)
- arg.setDisplayName('Geothermal Loop: Pipe Type')
- arg.setDescription("Pipe type of the geothermal loop. Only applies to #{HPXML::HVACTypeHeatPumpGroundToAir} heat pump type. If not provided, the OS-HPXML default (see HPXML Geothermal Loops) is used.")
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'geothermal_loop_grout_type',
+ choices: geothermal_loop_grout_or_pipe_type_choices,
+ required: false,
+ display_name: 'Geothermal Loop: Grout Type',
+ description: "Grout type of the geothermal loop. Only applies to #{HPXML::HVACTypeHeatPumpGroundToAir} heat pump type.",
+ default_href: "HPXML Geothermal Loops"
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'geothermal_loop_pipe_type',
+ choices: geothermal_loop_grout_or_pipe_type_choices,
+ required: false,
+ display_name: 'Geothermal Loop: Pipe Type',
+ description: "Pipe type of the geothermal loop. Only applies to #{HPXML::HVACTypeHeatPumpGroundToAir} heat pump type.",
+ default_href: "HPXML Geothermal Loops"
+ }
geothermal_loop_pipe_diameter_choices = OpenStudio::StringVector.new
geothermal_loop_pipe_diameter_choices << '3/4" pipe'
geothermal_loop_pipe_diameter_choices << '1" pipe'
geothermal_loop_pipe_diameter_choices << '1-1/4" pipe'
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('geothermal_loop_pipe_diameter', geothermal_loop_pipe_diameter_choices, false)
- arg.setDisplayName('Geothermal Loop: Pipe Diameter')
- arg.setDescription("Pipe diameter of the geothermal loop. Only applies to #{HPXML::HVACTypeHeatPumpGroundToAir} heat pump type. If not provided, the OS-HPXML default (see HPXML Geothermal Loops) is used.")
- arg.setUnits('in')
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'geothermal_loop_pipe_diameter',
+ choices: geothermal_loop_pipe_diameter_choices,
+ required: false,
+ display_name: 'Geothermal Loop: Pipe Diameter',
+ description: "Pipe diameter of the geothermal loop. Only applies to #{HPXML::HVACTypeHeatPumpGroundToAir} heat pump type.",
+ default_href: "HPXML Geothermal Loops",
+ units: 'in'
+ }
heating_system_2_type_choices = OpenStudio::StringVector.new
heating_system_2_type_choices << Constants::None
@@ -1731,88 +2454,132 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
heating_system_2_type_choices << HPXML::HVACTypeSpaceHeater
heating_system_2_type_choices << HPXML::HVACTypeFireplace
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('heating_system_2_type', heating_system_2_type_choices, true)
- arg.setDisplayName('Heating System 2: Type')
- arg.setDescription("The type of the second heating system. If a heat pump is specified and the backup type is '#{HPXML::HeatPumpBackupTypeSeparate}', this heating system represents '#{HPXML::HeatPumpBackupTypeSeparate}' backup heating. For ducted heat pumps where the backup heating system is a '#{HPXML::HVACTypeFurnace}', the backup would typically be characterized as '#{HPXML::HeatPumpBackupTypeIntegrated}' in that the furnace and heat pump share the same distribution system and blower fan; a '#{HPXML::HVACTypeFurnace}' as '#{HPXML::HeatPumpBackupTypeSeparate}' backup to a ducted heat pump is not supported.")
- arg.setDefaultValue(Constants::None)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('heating_system_2_fuel', heating_system_fuel_choices, true)
- arg.setDisplayName('Heating System 2: Fuel Type')
- arg.setDescription("The fuel type of the second heating system. Ignored for #{HPXML::HVACTypeElectricResistance}.")
- arg.setDefaultValue(HPXML::FuelTypeElectricity)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heating_system_2_heating_efficiency', true)
- arg.setDisplayName('Heating System 2: Rated AFUE or Percent')
- arg.setUnits('Frac')
- arg.setDescription('The rated heating efficiency value of the second heating system.')
- arg.setDefaultValue(1.0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heating_system_2_heating_capacity', false)
- arg.setDisplayName('Heating System 2: Heating Capacity')
- arg.setDescription("The output heating capacity of the second heating system. If not provided, the OS-HPXML autosized default (see HPXML Heating Systems) is used.")
- arg.setUnits('Btu/hr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heating_system_2_heating_autosizing_factor', false)
- arg.setDisplayName('Heating System 2: Heating Autosizing Factor')
- arg.setDescription('The capacity scaling factor applied to the auto-sizing methodology. If not provided, 1.0 is used.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heating_system_2_heating_autosizing_limit', false)
- arg.setDisplayName('Heating System 2: Heating Autosizing Limit')
- arg.setDescription('The maximum capacity limit applied to the auto-sizing methodology. If not provided, no limit is used.')
- arg.setUnits('Btu/hr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heating_system_2_fraction_heat_load_served', true)
- arg.setDisplayName('Heating System 2: Fraction Heat Load Served')
- arg.setDescription('The heat load served fraction of the second heating system. Ignored if this heating system serves as a backup system for a heat pump.')
- arg.setUnits('Frac')
- arg.setDefaultValue(0.25)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('hvac_control_heating_weekday_setpoint', false)
- arg.setDisplayName('HVAC Control: Heating Weekday Setpoint Schedule')
- arg.setDescription('Specify the constant or 24-hour comma-separated weekday heating setpoint schedule. Required unless a detailed CSV schedule is provided.')
- arg.setUnits('F')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('hvac_control_heating_weekend_setpoint', false)
- arg.setDisplayName('HVAC Control: Heating Weekend Setpoint Schedule')
- arg.setDescription('Specify the constant or 24-hour comma-separated weekend heating setpoint schedule. Required unless a detailed CSV schedule is provided.')
- arg.setUnits('F')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('hvac_control_cooling_weekday_setpoint', false)
- arg.setDisplayName('HVAC Control: Cooling Weekday Setpoint Schedule')
- arg.setDescription('Specify the constant or 24-hour comma-separated weekday cooling setpoint schedule. Required unless a detailed CSV schedule is provided.')
- arg.setUnits('F')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('hvac_control_cooling_weekend_setpoint', false)
- arg.setDisplayName('HVAC Control: Cooling Weekend Setpoint Schedule')
- arg.setDescription('Specify the constant or 24-hour comma-separated weekend cooling setpoint schedule. Required unless a detailed CSV schedule is provided.')
- arg.setUnits('F')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('hvac_control_heating_season_period', false)
- arg.setDisplayName('HVAC Control: Heating Season Period')
- arg.setDescription("Enter a date range like 'Nov 1 - Jun 30'. If not provided, the OS-HPXML default (see HPXML HVAC Control) is used. Can also provide '#{Constants::BuildingAmerica}' to use automatic seasons from the Building America House Simulation Protocols.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('hvac_control_cooling_season_period', false)
- arg.setDisplayName('HVAC Control: Cooling Season Period')
- arg.setDescription("Enter a date range like 'Jun 1 - Oct 31'. If not provided, the OS-HPXML default (see HPXML HVAC Control) is used. Can also provide '#{Constants::BuildingAmerica}' to use automatic seasons from the Building America House Simulation Protocols.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('hvac_blower_fan_watts_per_cfm', false)
- arg.setDisplayName('HVAC Blower: Fan Efficiency')
- arg.setDescription("The blower fan efficiency at maximum fan speed. Applies only to split (not packaged) systems (i.e., applies to ducted systems as well as ductless #{HPXML::HVACTypeHeatPumpMiniSplit} systems). If not provided, the OS-HPXML default (see HPXML Heating Systems, HPXML Cooling Systems, HPXML Heat Pumps) is used.")
- arg.setUnits('W/CFM')
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'heating_system_2_type',
+ choices: heating_system_2_type_choices,
+ required: false,
+ display_name: 'Heating System 2: Type',
+ description: "The type of the second heating system. If a heat pump is specified and the backup type is '#{HPXML::HeatPumpBackupTypeSeparate}', this heating system represents '#{HPXML::HeatPumpBackupTypeSeparate}' backup heating. For ducted heat pumps where the backup heating system is a '#{HPXML::HVACTypeFurnace}', the backup would typically be characterized as '#{HPXML::HeatPumpBackupTypeIntegrated}' in that the furnace and heat pump share the same distribution system and blower fan; a '#{HPXML::HVACTypeFurnace}' as '#{HPXML::HeatPumpBackupTypeSeparate}' backup to a ducted heat pump is not supported. If not provided, defaults to none."
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'heating_system_2_fuel',
+ choices: heating_system_fuel_choices,
+ required: false,
+ display_name: 'Heating System 2: Fuel Type',
+ description: "The fuel type of the second heating system. Ignored for #{HPXML::HVACTypeElectricResistance}. If not provided, defaults to electricity."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heating_system_2_heating_efficiency',
+ required: false,
+ display_name: 'Heating System 2: Rated AFUE or Percent',
+ units: 'Frac',
+ description: 'The rated heating efficiency value of the second heating system. If not provided, defaults to 1.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heating_system_2_heating_capacity',
+ required: false,
+ display_name: 'Heating System 2: Heating Capacity',
+ description: 'The output heating capacity of the second heating system.',
+ default_href: "HPXML Heating Systems",
+ units: 'Btu/hr'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heating_system_2_heating_autosizing_factor',
+ required: false,
+ display_name: 'Heating System 2: Heating Autosizing Factor',
+ description: 'The capacity scaling factor applied to the auto-sizing methodology. If not provided, 1.0 is used.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heating_system_2_heating_autosizing_limit',
+ required: false,
+ display_name: 'Heating System 2: Heating Autosizing Limit',
+ description: 'The maximum capacity limit applied to the auto-sizing methodology. If not provided, no limit is used.',
+ units: 'Btu/hr'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'heating_system_2_fraction_heat_load_served',
+ required: false,
+ display_name: 'Heating System 2: Fraction Heat Load Served',
+ description: 'The heat load served fraction of the second heating system. Ignored if this heating system serves as a backup system for a heat pump. If not provided, defaults to 0.25.',
+ units: 'Frac'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'hvac_control_heating_weekday_setpoint',
+ required: false,
+ display_name: 'HVAC Control: Heating Weekday Setpoint Schedule',
+ description: 'Specify the constant or 24-hour comma-separated weekday heating setpoint schedule. Required unless a detailed CSV schedule is provided.',
+ units: 'F'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'hvac_control_heating_weekend_setpoint',
+ required: false,
+ display_name: 'HVAC Control: Heating Weekend Setpoint Schedule',
+ description: 'Specify the constant or 24-hour comma-separated weekend heating setpoint schedule. Required unless a detailed CSV schedule is provided.',
+ units: 'F'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'hvac_control_cooling_weekday_setpoint',
+ required: false,
+ display_name: 'HVAC Control: Cooling Weekday Setpoint Schedule',
+ description: 'Specify the constant or 24-hour comma-separated weekday cooling setpoint schedule. Required unless a detailed CSV schedule is provided.',
+ units: 'F'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'hvac_control_cooling_weekend_setpoint',
+ required: false,
+ display_name: 'HVAC Control: Cooling Weekend Setpoint Schedule',
+ description: 'Specify the constant or 24-hour comma-separated weekend cooling setpoint schedule. Required unless a detailed CSV schedule is provided.',
+ units: 'F'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'hvac_control_heating_season_period',
+ required: false,
+ display_name: 'HVAC Control: Heating Season Period',
+ description: "Enter a date range like 'Nov 1 - Jun 30'. Can also provide '#{Constants::BuildingAmerica}' to use automatic seasons from the Building America House Simulation Protocols.",
+ default_href: "HPXML HVAC Control"
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'hvac_control_cooling_season_period',
+ required: false,
+ display_name: 'HVAC Control: Cooling Season Period',
+ description: "Enter a date range like 'Jun 1 - Oct 31'. Can also provide '#{Constants::BuildingAmerica}' to use automatic seasons from the Building America House Simulation Protocols.",
+ default_href: "HPXML HVAC Control"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'hvac_blower_fan_watts_per_cfm',
+ required: false,
+ display_name: 'HVAC Blower: Fan Efficiency',
+ description: "The blower fan efficiency at maximum fan speed. Applies only to split (not packaged} systems (i.e., applies to ducted systems as well as ductless #{HPXML::HVACTypeHeatPumpMiniSplit} systems}.",
+ default_href: "HPXML Heating Systems, HPXML Cooling Systems, HPXML Heat Pumps",
+ units: 'W/CFM'
+ }
duct_leakage_units_choices = OpenStudio::StringVector.new
duct_leakage_units_choices << HPXML::UnitsCFM25
@@ -1841,29 +2608,41 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
duct_location_choices << HPXML::LocationOtherNonFreezingSpace
duct_location_choices << HPXML::LocationManufacturedHomeBelly
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('ducts_leakage_units', duct_leakage_units_choices, true)
- arg.setDisplayName('Ducts: Leakage Units')
- arg.setDescription('The leakage units of the ducts.')
- arg.setDefaultValue(HPXML::UnitsPercent)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('ducts_supply_leakage_to_outside_value', true)
- arg.setDisplayName('Ducts: Supply Leakage to Outside Value')
- arg.setDescription('The leakage value to outside for the supply ducts.')
- arg.setDefaultValue(0.1)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('ducts_supply_location', duct_location_choices, false)
- arg.setDisplayName('Ducts: Supply Location')
- arg.setDescription("The location of the supply ducts. If not provided, the OS-HPXML default (see Air Distribution) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('ducts_supply_insulation_r', true)
- arg.setDisplayName('Ducts: Supply Insulation R-Value')
- arg.setDescription('The nominal insulation r-value of the supply ducts excluding air films. Use 0 for uninsulated ducts.')
- arg.setUnits('h-ft^2-R/Btu')
- arg.setDefaultValue(0)
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'ducts_leakage_units',
+ choices: duct_leakage_units_choices,
+ required: false,
+ display_name: 'Ducts: Leakage Units',
+ description: 'The leakage units of the ducts.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'ducts_supply_leakage_to_outside_value',
+ required: false,
+ display_name: 'Ducts: Supply Leakage to Outside Value',
+ description: 'The leakage value to outside for the supply ducts.'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'ducts_supply_location',
+ choices: duct_location_choices,
+ required: false,
+ display_name: 'Ducts: Supply Location',
+ description: 'The location of the supply ducts.',
+ default_href: "Air Distribution"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'ducts_supply_insulation_r',
+ required: false,
+ display_name: 'Ducts: Supply Insulation R-Value',
+ description: 'The nominal insulation r-value of the supply ducts excluding air films. Use 0 for uninsulated ducts.',
+ units: 'h-ft^2-R/Btu'
+ }
duct_buried_level_choices = OpenStudio::StringVector.new
duct_buried_level_choices << HPXML::DuctBuriedInsulationNone
@@ -1871,75 +2650,122 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
duct_buried_level_choices << HPXML::DuctBuriedInsulationFull
duct_buried_level_choices << HPXML::DuctBuriedInsulationDeep
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('ducts_supply_buried_insulation_level', duct_buried_level_choices, false)
- arg.setDisplayName('Ducts: Supply Buried Insulation Level')
- arg.setDescription('Whether the supply ducts are buried in, e.g., attic loose-fill insulation. Partially buried ducts have insulation that does not cover the top of the ducts. Fully buried ducts have insulation that just covers the top of the ducts. Deeply buried ducts have insulation that continues above the top of the ducts.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('ducts_supply_surface_area', false)
- arg.setDisplayName('Ducts: Supply Surface Area')
- arg.setDescription("The supply ducts surface area in the given location. If neither Surface Area nor Area Fraction provided, the OS-HPXML default (see Air Distribution) is used.")
- arg.setUnits('ft^2')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('ducts_supply_surface_area_fraction', false)
- arg.setDisplayName('Ducts: Supply Area Fraction')
- arg.setDescription("The fraction of supply ducts surface area in the given location. Only used if Surface Area is not provided. If the fraction is less than 1, the remaining duct area is assumed to be in conditioned space. If neither Surface Area nor Area Fraction provided, the OS-HPXML default (see Air Distribution) is used.")
- arg.setUnits('frac')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('ducts_supply_fraction_rectangular', false)
- arg.setDisplayName('Ducts: Supply Fraction Rectangular')
- arg.setDescription("The fraction of supply ducts that are rectangular (as opposed to round); this affects the duct effective R-value used for modeling. If not provided, the OS-HPXML default (see Air Distribution) is used.")
- arg.setUnits('frac')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('ducts_return_leakage_to_outside_value', true)
- arg.setDisplayName('Ducts: Return Leakage to Outside Value')
- arg.setDescription('The leakage value to outside for the return ducts.')
- arg.setDefaultValue(0.1)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('ducts_return_location', duct_location_choices, false)
- arg.setDisplayName('Ducts: Return Location')
- arg.setDescription("The location of the return ducts. If not provided, the OS-HPXML default (see Air Distribution) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('ducts_return_insulation_r', true)
- arg.setDisplayName('Ducts: Return Insulation R-Value')
- arg.setDescription('The nominal insulation r-value of the return ducts excluding air films. Use 0 for uninsulated ducts.')
- arg.setUnits('h-ft^2-R/Btu')
- arg.setDefaultValue(0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('ducts_return_buried_insulation_level', duct_buried_level_choices, false)
- arg.setDisplayName('Ducts: Return Buried Insulation Level')
- arg.setDescription('Whether the return ducts are buried in, e.g., attic loose-fill insulation. Partially buried ducts have insulation that does not cover the top of the ducts. Fully buried ducts have insulation that just covers the top of the ducts. Deeply buried ducts have insulation that continues above the top of the ducts.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('ducts_return_surface_area', false)
- arg.setDisplayName('Ducts: Return Surface Area')
- arg.setDescription("The return ducts surface area in the given location. If neither Surface Area nor Area Fraction provided, the OS-HPXML default (see Air Distribution) is used.")
- arg.setUnits('ft^2')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('ducts_return_surface_area_fraction', false)
- arg.setDisplayName('Ducts: Return Area Fraction')
- arg.setDescription("The fraction of return ducts surface area in the given location. Only used if Surface Area is not provided. If the fraction is less than 1, the remaining duct area is assumed to be in conditioned space. If neither Surface Area nor Area Fraction provided, the OS-HPXML default (see Air Distribution) is used.")
- arg.setUnits('frac')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('ducts_number_of_return_registers', false)
- arg.setDisplayName('Ducts: Number of Return Registers')
- arg.setDescription("The number of return registers of the ducts. Only used to calculate default return duct surface area. If not provided, the OS-HPXML default (see Air Distribution) is used.")
- arg.setUnits('#')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('ducts_return_fraction_rectangular', false)
- arg.setDisplayName('Ducts: Return Fraction Rectangular')
- arg.setDescription("The fraction of return ducts that are rectangular (as opposed to round); this affects the duct effective R-value used for modeling. If not provided, the OS-HPXML default (see Air Distribution) is used.")
- arg.setUnits('frac')
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'ducts_supply_buried_insulation_level',
+ choices: duct_buried_level_choices,
+ required: false,
+ display_name: 'Ducts: Supply Buried Insulation Level',
+ description: 'Whether the supply ducts are buried in, e.g., attic loose-fill insulation. Partially buried ducts have insulation that does not cover the top of the ducts. Fully buried ducts have insulation that just covers the top of the ducts. Deeply buried ducts have insulation that continues above the top of the ducts.',
+ default_href: "Air Distribution"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'ducts_supply_surface_area',
+ required: false,
+ display_name: 'Ducts: Supply Surface Area',
+ description: 'The supply ducts surface area in the given location.',
+ default_href: "Air Distribution",
+ units: 'ft^2'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'ducts_supply_surface_area_fraction',
+ required: false,
+ display_name: 'Ducts: Supply Area Fraction',
+ description: 'The fraction of supply ducts surface area in the given location. Only used if Surface Area is not provided. If the fraction is less than 1, the remaining duct area is assumed to be in conditioned space.',
+ default_href: "Air Distribution",
+ units: 'frac'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'ducts_supply_fraction_rectangular',
+ required: false,
+ display_name: 'Ducts: Supply Fraction Rectangular',
+ description: 'The fraction of supply ducts that are rectangular (as opposed to round}; this affects the duct effective R-value used for modeling.',
+ default_href: "Air Distribution",
+ units: 'frac'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'ducts_return_leakage_to_outside_value',
+ required: false,
+ display_name: 'Ducts: Return Leakage to Outside Value',
+ description: 'The leakage value to outside for the return ducts.'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'ducts_return_location',
+ choices: duct_location_choices,
+ required: false,
+ display_name: 'Ducts: Return Location',
+ description: 'The location of the return ducts.',
+ default_href: "Air Distribution"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'ducts_return_insulation_r',
+ required: false,
+ display_name: 'Ducts: Return Insulation R-Value',
+ description: 'The nominal insulation r-value of the return ducts excluding air films. Use 0 for uninsulated ducts.',
+ units: 'h-ft^2-R/Btu'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'ducts_return_buried_insulation_level',
+ choices: duct_buried_level_choices,
+ required: false,
+ display_name: 'Ducts: Return Buried Insulation Level',
+ description: 'Whether the return ducts are buried in, e.g., attic loose-fill insulation. Partially buried ducts have insulation that does not cover the top of the ducts. Fully buried ducts have insulation that just covers the top of the ducts. Deeply buried ducts have insulation that continues above the top of the ducts.',
+ default_href: "Air Distribution"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'ducts_return_surface_area',
+ required: false,
+ display_name: 'Ducts: Return Surface Area',
+ description: 'The return ducts surface area in the given location.',
+ default_href: "Air Distribution",
+ units: 'ft^2'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'ducts_return_surface_area_fraction',
+ required: false,
+ display_name: 'Ducts: Return Area Fraction',
+ description: 'The fraction of return ducts surface area in the given location. Only used if Surface Area is not provided. If the fraction is less than 1, the remaining duct area is assumed to be in conditioned space.',
+ default_href: "Air Distribution",
+ units: 'frac'
+ }
+
+ args << {
+ type: Argument::Integer,
+ name: 'ducts_number_of_return_registers',
+ required: false,
+ display_name: 'Ducts: Number of Return Registers',
+ description: 'The number of return registers of the ducts. Only used to calculate default return duct surface area.',
+ default_href: "Air Distribution",
+ units: '#'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'ducts_return_fraction_rectangular',
+ required: false,
+ display_name: 'Ducts: Return Fraction Rectangular',
+ description: 'The fraction of return ducts that are rectangular (as opposed to round}; this affects the duct effective R-value used for modeling.',
+ default_href: "Air Distribution",
+ units: 'frac'
+ }
mech_vent_fan_type_choices = OpenStudio::StringVector.new
mech_vent_fan_type_choices << Constants::None
@@ -1954,99 +2780,146 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
mech_vent_recovery_efficiency_type_choices << 'Unadjusted'
mech_vent_recovery_efficiency_type_choices << 'Adjusted'
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('mech_vent_fan_type', mech_vent_fan_type_choices, true)
- arg.setDisplayName('Mechanical Ventilation: Fan Type')
- arg.setDescription("The type of the mechanical ventilation. Use '#{Constants::None}' if there is no mechanical ventilation system.")
- arg.setDefaultValue(Constants::None)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('mech_vent_flow_rate', false)
- arg.setDisplayName('Mechanical Ventilation: Flow Rate')
- arg.setDescription("The flow rate of the mechanical ventilation. If not provided, the OS-HPXML default (see HPXML Mechanical Ventilation Fans) is used.")
- arg.setUnits('CFM')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('mech_vent_hours_in_operation', false)
- arg.setDisplayName('Mechanical Ventilation: Hours In Operation')
- arg.setDescription("The hours in operation of the mechanical ventilation. If not provided, the OS-HPXML default (see HPXML Mechanical Ventilation Fans) is used.")
- arg.setUnits('hrs/day')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('mech_vent_recovery_efficiency_type', mech_vent_recovery_efficiency_type_choices, true)
- arg.setDisplayName('Mechanical Ventilation: Total Recovery Efficiency Type')
- arg.setDescription('The total recovery efficiency type of the mechanical ventilation.')
- arg.setDefaultValue('Unadjusted')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('mech_vent_total_recovery_efficiency', true)
- arg.setDisplayName('Mechanical Ventilation: Total Recovery Efficiency')
- arg.setDescription("The Unadjusted or Adjusted total recovery efficiency of the mechanical ventilation. Applies to #{HPXML::MechVentTypeERV}.")
- arg.setUnits('Frac')
- arg.setDefaultValue(0.48)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('mech_vent_sensible_recovery_efficiency', true)
- arg.setDisplayName('Mechanical Ventilation: Sensible Recovery Efficiency')
- arg.setDescription("The Unadjusted or Adjusted sensible recovery efficiency of the mechanical ventilation. Applies to #{HPXML::MechVentTypeERV} and #{HPXML::MechVentTypeHRV}.")
- arg.setUnits('Frac')
- arg.setDefaultValue(0.72)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('mech_vent_fan_power', false)
- arg.setDisplayName('Mechanical Ventilation: Fan Power')
- arg.setDescription("The fan power of the mechanical ventilation. If not provided, the OS-HPXML default (see HPXML Mechanical Ventilation Fans) is used.")
- arg.setUnits('W')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('mech_vent_num_units_served', true)
- arg.setDisplayName('Mechanical Ventilation: Number of Units Served')
- arg.setDescription("Number of dwelling units served by the mechanical ventilation system. Must be 1 if #{HPXML::ResidentialTypeSFD}. Used to apportion flow rate and fan power to the unit.")
- arg.setUnits('#')
- arg.setDefaultValue(1)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('mech_vent_shared_frac_recirculation', false)
- arg.setDisplayName('Shared Mechanical Ventilation: Fraction Recirculation')
- arg.setDescription('Fraction of the total supply air that is recirculated, with the remainder assumed to be outdoor air. The value must be 0 for exhaust only systems. Required for a shared mechanical ventilation system.')
- arg.setUnits('Frac')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('mech_vent_shared_preheating_fuel', heating_system_fuel_choices, false)
- arg.setDisplayName('Shared Mechanical Ventilation: Preheating Fuel')
- arg.setDescription('Fuel type of the preconditioning heating equipment. Only used for a shared mechanical ventilation system. If not provided, assumes no preheating.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('mech_vent_shared_preheating_efficiency', false)
- arg.setDisplayName('Shared Mechanical Ventilation: Preheating Efficiency')
- arg.setDescription('Efficiency of the preconditioning heating equipment. Only used for a shared mechanical ventilation system. If not provided, assumes no preheating.')
- arg.setUnits('COP')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('mech_vent_shared_preheating_fraction_heat_load_served', false)
- arg.setDisplayName('Shared Mechanical Ventilation: Preheating Fraction Ventilation Heat Load Served')
- arg.setDescription('Fraction of heating load introduced by the shared ventilation system that is met by the preconditioning heating equipment. If not provided, assumes no preheating.')
- arg.setUnits('Frac')
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'mech_vent_fan_type',
+ choices: mech_vent_fan_type_choices,
+ required: false,
+ display_name: 'Mechanical Ventilation: Fan Type',
+ description: "The type of the mechanical ventilation. Use '#{Constants::None}' if there is no mechanical ventilation system. If not provided, defaults to none."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'mech_vent_flow_rate',
+ required: false,
+ display_name: 'Mechanical Ventilation: Flow Rate',
+ description: 'The flow rate of the mechanical ventilation.',
+ default_href: "HPXML Mechanical Ventilation Fans",
+ units: 'CFM'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'mech_vent_hours_in_operation',
+ required: false,
+ display_name: 'Mechanical Ventilation: Hours In Operation',
+ description: 'The hours in operation of the mechanical ventilation.',
+ default_href: "HPXML Mechanical Ventilation Fans",
+ units: 'hrs/day'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'mech_vent_recovery_efficiency_type',
+ choices: mech_vent_recovery_efficiency_type_choices,
+ required: false,
+ display_name: 'Mechanical Ventilation: Total Recovery Efficiency Type',
+ description: 'The total recovery efficiency type of the mechanical ventilation.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'mech_vent_total_recovery_efficiency',
+ required: false,
+ display_name: 'Mechanical Ventilation: Total Recovery Efficiency',
+ description: "The Unadjusted or Adjusted total recovery efficiency of the mechanical ventilation. Applies to #{HPXML::MechVentTypeERV}. If not provided, defaults to Unadjusted total recovery efficiency of 0.48.",
+ units: 'Frac'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'mech_vent_sensible_recovery_efficiency',
+ required: false,
+ display_name: 'Mechanical Ventilation: Sensible Recovery Efficiency',
+ description: "The Unadjusted or Adjusted sensible recovery efficiency of the mechanical ventilation. Applies to #{HPXML::MechVentTypeERV} and #{HPXML::MechVentTypeHRV}. If not provided, defaults to Unadjusted sensible recovery efficiency of 0.72.",
+ units: 'Frac'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'mech_vent_fan_power',
+ required: false,
+ display_name: 'Mechanical Ventilation: Fan Power',
+ description: 'The fan power of the mechanical ventilation.',
+ default_href: "HPXML Mechanical Ventilation Fans",
+ units: 'W'
+ }
+
+ args << {
+ type: Argument::Integer,
+ name: 'mech_vent_num_units_served',
+ required: false,
+ display_name: 'Mechanical Ventilation: Number of Units Served',
+ description: "Number of dwelling units served by the mechanical ventilation system. Must be 1 if #{HPXML::ResidentialTypeSFD}. Used to apportion flow rate and fan power to the unit.",
+ units: '#'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'mech_vent_shared_frac_recirculation',
+ required: false,
+ display_name: 'Shared Mechanical Ventilation: Fraction Recirculation',
+ description: 'Fraction of the total supply air that is recirculated, with the remainder assumed to be outdoor air. The value must be 0 for exhaust only systems. Required for a shared mechanical ventilation system.',
+ units: 'Frac'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'mech_vent_shared_preheating_fuel',
+ choices: heating_system_fuel_choices,
+ required: false,
+ display_name: 'Shared Mechanical Ventilation: Preheating Fuel',
+ description: 'Fuel type of the preconditioning heating equipment. Only used for a shared mechanical ventilation system. If not provided, assumes no preheating.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'mech_vent_shared_preheating_efficiency',
+ required: false,
+ display_name: 'Shared Mechanical Ventilation: Preheating Efficiency',
+ description: 'Efficiency of the preconditioning heating equipment. Only used for a shared mechanical ventilation system. If not provided, assumes no preheating.',
+ units: 'COP'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'mech_vent_shared_preheating_fraction_heat_load_served',
+ required: false,
+ display_name: 'Shared Mechanical Ventilation: Preheating Fraction Ventilation Heat Load Served',
+ description: 'Fraction of heating load introduced by the shared ventilation system that is met by the preconditioning heating equipment. If not provided, assumes no preheating.',
+ units: 'Frac'
+ }
cooling_system_fuel_choices = OpenStudio::StringVector.new
cooling_system_fuel_choices << HPXML::FuelTypeElectricity
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('mech_vent_shared_precooling_fuel', cooling_system_fuel_choices, false)
- arg.setDisplayName('Shared Mechanical Ventilation: Precooling Fuel')
- arg.setDescription('Fuel type of the preconditioning cooling equipment. Only used for a shared mechanical ventilation system. If not provided, assumes no precooling.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('mech_vent_shared_precooling_efficiency', false)
- arg.setDisplayName('Shared Mechanical Ventilation: Precooling Efficiency')
- arg.setDescription('Efficiency of the preconditioning cooling equipment. Only used for a shared mechanical ventilation system. If not provided, assumes no precooling.')
- arg.setUnits('COP')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('mech_vent_shared_precooling_fraction_cool_load_served', false)
- arg.setDisplayName('Shared Mechanical Ventilation: Precooling Fraction Ventilation Cool Load Served')
- arg.setDescription('Fraction of cooling load introduced by the shared ventilation system that is met by the preconditioning cooling equipment. If not provided, assumes no precooling.')
- arg.setUnits('Frac')
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'mech_vent_shared_precooling_fuel',
+ choices: cooling_system_fuel_choices,
+ required: false,
+ display_name: 'Shared Mechanical Ventilation: Precooling Fuel',
+ description: 'Fuel type of the preconditioning cooling equipment. Only used for a shared mechanical ventilation system. If not provided, assumes no precooling.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'mech_vent_shared_precooling_efficiency',
+ required: false,
+ display_name: 'Shared Mechanical Ventilation: Precooling Efficiency',
+ description: 'Efficiency of the preconditioning cooling equipment. Only used for a shared mechanical ventilation system. If not provided, assumes no precooling.',
+ units: 'COP'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'mech_vent_shared_precooling_fraction_cool_load_served',
+ required: false,
+ display_name: 'Shared Mechanical Ventilation: Precooling Fraction Ventilation Cool Load Served',
+ description: 'Fraction of cooling load introduced by the shared ventilation system that is met by the preconditioning cooling equipment. If not provided, assumes no precooling.',
+ units: 'Frac'
+ }
mech_vent_2_fan_type_choices = OpenStudio::StringVector.new
mech_vent_2_fan_type_choices << Constants::None
@@ -2056,130 +2929,196 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
mech_vent_2_fan_type_choices << HPXML::MechVentTypeHRV
mech_vent_2_fan_type_choices << HPXML::MechVentTypeBalanced
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('mech_vent_2_fan_type', mech_vent_2_fan_type_choices, true)
- arg.setDisplayName('Mechanical Ventilation 2: Fan Type')
- arg.setDescription("The type of the second mechanical ventilation. Use '#{Constants::None}' if there is no second mechanical ventilation system.")
- arg.setDefaultValue(Constants::None)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('mech_vent_2_flow_rate', true)
- arg.setDisplayName('Mechanical Ventilation 2: Flow Rate')
- arg.setDescription('The flow rate of the second mechanical ventilation.')
- arg.setUnits('CFM')
- arg.setDefaultValue(110)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('mech_vent_2_hours_in_operation', true)
- arg.setDisplayName('Mechanical Ventilation 2: Hours In Operation')
- arg.setDescription('The hours in operation of the second mechanical ventilation.')
- arg.setUnits('hrs/day')
- arg.setDefaultValue(24)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('mech_vent_2_recovery_efficiency_type', mech_vent_recovery_efficiency_type_choices, true)
- arg.setDisplayName('Mechanical Ventilation 2: Total Recovery Efficiency Type')
- arg.setDescription('The total recovery efficiency type of the second mechanical ventilation.')
- arg.setDefaultValue('Unadjusted')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('mech_vent_2_total_recovery_efficiency', true)
- arg.setDisplayName('Mechanical Ventilation 2: Total Recovery Efficiency')
- arg.setDescription("The Unadjusted or Adjusted total recovery efficiency of the second mechanical ventilation. Applies to #{HPXML::MechVentTypeERV}.")
- arg.setUnits('Frac')
- arg.setDefaultValue(0.48)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('mech_vent_2_sensible_recovery_efficiency', true)
- arg.setDisplayName('Mechanical Ventilation 2: Sensible Recovery Efficiency')
- arg.setDescription("The Unadjusted or Adjusted sensible recovery efficiency of the second mechanical ventilation. Applies to #{HPXML::MechVentTypeERV} and #{HPXML::MechVentTypeHRV}.")
- arg.setUnits('Frac')
- arg.setDefaultValue(0.72)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('mech_vent_2_fan_power', true)
- arg.setDisplayName('Mechanical Ventilation 2: Fan Power')
- arg.setDescription('The fan power of the second mechanical ventilation.')
- arg.setUnits('W')
- arg.setDefaultValue(30)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('kitchen_fans_quantity', false)
- arg.setDisplayName('Kitchen Fans: Quantity')
- arg.setDescription("The quantity of the kitchen fans. If not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.")
- arg.setUnits('#')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('kitchen_fans_flow_rate', false)
- arg.setDisplayName('Kitchen Fans: Flow Rate')
- arg.setDescription("The flow rate of the kitchen fan. If not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.")
- arg.setUnits('CFM')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('kitchen_fans_hours_in_operation', false)
- arg.setDisplayName('Kitchen Fans: Hours In Operation')
- arg.setDescription("The hours in operation of the kitchen fan. If not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.")
- arg.setUnits('hrs/day')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('kitchen_fans_power', false)
- arg.setDisplayName('Kitchen Fans: Fan Power')
- arg.setDescription("The fan power of the kitchen fan. If not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.")
- arg.setUnits('W')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('kitchen_fans_start_hour', false)
- arg.setDisplayName('Kitchen Fans: Start Hour')
- arg.setDescription("The start hour of the kitchen fan. If not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.")
- arg.setUnits('hr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('bathroom_fans_quantity', false)
- arg.setDisplayName('Bathroom Fans: Quantity')
- arg.setDescription("The quantity of the bathroom fans. If not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.")
- arg.setUnits('#')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('bathroom_fans_flow_rate', false)
- arg.setDisplayName('Bathroom Fans: Flow Rate')
- arg.setDescription("The flow rate of the bathroom fans. If not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.")
- arg.setUnits('CFM')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('bathroom_fans_hours_in_operation', false)
- arg.setDisplayName('Bathroom Fans: Hours In Operation')
- arg.setDescription("The hours in operation of the bathroom fans. If not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.")
- arg.setUnits('hrs/day')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('bathroom_fans_power', false)
- arg.setDisplayName('Bathroom Fans: Fan Power')
- arg.setDescription("The fan power of the bathroom fans. If not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.")
- arg.setUnits('W')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('bathroom_fans_start_hour', false)
- arg.setDisplayName('Bathroom Fans: Start Hour')
- arg.setDescription("The start hour of the bathroom fans. If not provided, the OS-HPXML default (see HPXML Local Ventilation Fans) is used.")
- arg.setUnits('hr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('whole_house_fan_present', true)
- arg.setDisplayName('Whole House Fan: Present')
- arg.setDescription('Whether there is a whole house fan.')
- arg.setDefaultValue(false)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('whole_house_fan_flow_rate', false)
- arg.setDisplayName('Whole House Fan: Flow Rate')
- arg.setDescription("The flow rate of the whole house fan. If not provided, the OS-HPXML default (see HPXML Whole House Fans) is used.")
- arg.setUnits('CFM')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('whole_house_fan_power', false)
- arg.setDisplayName('Whole House Fan: Fan Power')
- arg.setDescription("The fan power of the whole house fan. If not provided, the OS-HPXML default (see HPXML Whole House Fans) is used.")
- arg.setUnits('W')
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'mech_vent_2_fan_type',
+ choices: mech_vent_2_fan_type_choices,
+ required: false,
+ display_name: 'Mechanical Ventilation 2: Fan Type',
+ description: "The type of the second mechanical ventilation. Use '#{Constants::None}' if there is no second mechanical ventilation system. If not provided, defaults to none."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'mech_vent_2_flow_rate',
+ required: false,
+ display_name: 'Mechanical Ventilation 2: Flow Rate',
+ description: 'The flow rate of the second mechanical ventilation.',
+ units: 'CFM'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'mech_vent_2_hours_in_operation',
+ required: false,
+ display_name: 'Mechanical Ventilation 2: Hours In Operation',
+ description: 'The hours in operation of the second mechanical ventilation.',
+ units: 'hrs/day'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'mech_vent_2_recovery_efficiency_type',
+ choices: mech_vent_recovery_efficiency_type_choices,
+ required: false,
+ display_name: 'Mechanical Ventilation 2: Total Recovery Efficiency Type',
+ description: 'The total recovery efficiency type of the second mechanical ventilation.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'mech_vent_2_total_recovery_efficiency',
+ required: false,
+ display_name: 'Mechanical Ventilation 2: Total Recovery Efficiency',
+ description: "The Unadjusted or Adjusted total recovery efficiency of the second mechanical ventilation. Applies to #{HPXML::MechVentTypeERV}.",
+ units: 'Frac'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'mech_vent_2_sensible_recovery_efficiency',
+ required: false,
+ display_name: 'Mechanical Ventilation 2: Sensible Recovery Efficiency',
+ description: "The Unadjusted or Adjusted sensible recovery efficiency of the second mechanical ventilation. Applies to #{HPXML::MechVentTypeERV} and #{HPXML::MechVentTypeHRV}.",
+ units: 'Frac'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'mech_vent_2_fan_power',
+ required: false,
+ display_name: 'Mechanical Ventilation 2: Fan Power',
+ description: 'The fan power of the second mechanical ventilation.',
+ units: 'W'
+ }
+
+ args << {
+ type: Argument::Integer,
+ name: 'kitchen_fans_quantity',
+ required: false,
+ display_name: 'Kitchen Fans: Quantity',
+ description: 'The quantity of the kitchen fans.',
+ default_href: "HPXML Local Ventilation Fans",
+ units: '#'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'kitchen_fans_flow_rate',
+ required: false,
+ display_name: 'Kitchen Fans: Flow Rate',
+ description: 'The flow rate of the kitchen fan.',
+ default_href: "HPXML Local Ventilation Fans",
+ units: 'CFM'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'kitchen_fans_hours_in_operation',
+ required: false,
+ display_name: 'Kitchen Fans: Hours In Operation',
+ description: 'The hours in operation of the kitchen fan.',
+ default_href: "HPXML Local Ventilation Fans",
+ units: 'hrs/day'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'kitchen_fans_power',
+ required: false,
+ display_name: 'Kitchen Fans: Fan Power',
+ description: 'The fan power of the kitchen fan.',
+ default_href: "HPXML Local Ventilation Fans",
+ units: 'W'
+ }
+
+ args << {
+ type: Argument::Integer,
+ name: 'kitchen_fans_start_hour',
+ required: false,
+ display_name: 'Kitchen Fans: Start Hour',
+ description: 'The start hour of the kitchen fan.',
+ default_href: "HPXML Local Ventilation Fans",
+ units: 'hr'
+ }
+
+ args << {
+ type: Argument::Integer,
+ name: 'bathroom_fans_quantity',
+ required: false,
+ display_name: 'Bathroom Fans: Quantity',
+ description: 'The quantity of the bathroom fans.',
+ default_href: "HPXML Local Ventilation Fans",
+ units: '#'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'bathroom_fans_flow_rate',
+ required: false,
+ display_name: 'Bathroom Fans: Flow Rate',
+ description: 'The flow rate of the bathroom fans.',
+ default_href: "HPXML Local Ventilation Fans",
+ units: 'CFM'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'bathroom_fans_hours_in_operation',
+ required: false,
+ display_name: 'Bathroom Fans: Hours In Operation',
+ description: 'The hours in operation of the bathroom fans.',
+ default_href: "HPXML Local Ventilation Fans",
+ units: 'hrs/day'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'bathroom_fans_power',
+ required: false,
+ display_name: 'Bathroom Fans: Fan Power',
+ description: 'The fan power of the bathroom fans.',
+ default_href: "HPXML Local Ventilation Fans",
+ units: 'W'
+ }
+
+ args << {
+ type: Argument::Integer,
+ name: 'bathroom_fans_start_hour',
+ required: false,
+ display_name: 'Bathroom Fans: Start Hour',
+ description: 'The start hour of the bathroom fans.',
+ default_href: "HPXML Local Ventilation Fans",
+ units: 'hr'
+ }
+
+ args << {
+ name: 'whole_house_fan_present',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Whole House Fan: Present',
+ description: 'Whether there is a whole house fan.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'whole_house_fan_flow_rate',
+ required: false,
+ display_name: 'Whole House Fan: Flow Rate',
+ description: 'The flow rate of the whole house fan.',
+ default_href: "HPXML Whole House Fans",
+ units: 'CFM'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'whole_house_fan_power',
+ required: false,
+ display_name: 'Whole House Fan: Fan Power',
+ description: 'The fan power of the whole house fan.',
+ default_href: "HPXML Whole House Fans",
+ units: 'W'
+ }
water_heater_type_choices = OpenStudio::StringVector.new
water_heater_type_choices << Constants::None
@@ -2225,126 +3164,197 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
water_heater_usage_bin_choices << HPXML::WaterHeaterUsageBinMedium
water_heater_usage_bin_choices << HPXML::WaterHeaterUsageBinHigh
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('water_heater_type', water_heater_type_choices, true)
- arg.setDisplayName('Water Heater: Type')
- arg.setDescription("The type of water heater. Use '#{Constants::None}' if there is no water heater.")
- arg.setDefaultValue(HPXML::WaterHeaterTypeStorage)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('water_heater_fuel_type', water_heater_fuel_choices, true)
- arg.setDisplayName('Water Heater: Fuel Type')
- arg.setDescription("The fuel type of water heater. Ignored for #{HPXML::WaterHeaterTypeHeatPump}.")
- arg.setDefaultValue(HPXML::FuelTypeNaturalGas)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('water_heater_location', water_heater_location_choices, false)
- arg.setDisplayName('Water Heater: Location')
- arg.setDescription("The location of water heater. If not provided, the OS-HPXML default (see HPXML Water Heating Systems) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('water_heater_tank_volume', false)
- arg.setDisplayName('Water Heater: Tank Volume')
- arg.setDescription("Nominal volume of water heater tank. If not provided, the OS-HPXML default (see Conventional Storage, Heat Pump, Combi Boiler w/ Storage) is used.")
- arg.setUnits('gal')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('water_heater_efficiency_type', water_heater_efficiency_type_choices, true)
- arg.setDisplayName('Water Heater: Efficiency Type')
- arg.setDescription('The efficiency type of water heater. Does not apply to space-heating boilers.')
- arg.setDefaultValue('EnergyFactor')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('water_heater_efficiency', true)
- arg.setDisplayName('Water Heater: Efficiency')
- arg.setDescription('Rated Energy Factor or Uniform Energy Factor. Does not apply to space-heating boilers.')
- arg.setDefaultValue(0.67)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('water_heater_usage_bin', water_heater_usage_bin_choices, false)
- arg.setDisplayName('Water Heater: Usage Bin')
- arg.setDescription("The usage of the water heater. Only applies if Efficiency Type is UniformEnergyFactor and Type is not #{HPXML::WaterHeaterTypeTankless}. Does not apply to space-heating boilers. If not provided, the OS-HPXML default (see Conventional Storage, Heat Pump) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('water_heater_recovery_efficiency', false)
- arg.setDisplayName('Water Heater: Recovery Efficiency')
- arg.setDescription("Ratio of energy delivered to water heater to the energy content of the fuel consumed by the water heater. Only used for non-electric storage water heaters. If not provided, the OS-HPXML default (see Conventional Storage) is used.")
- arg.setUnits('Frac')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('water_heater_heating_capacity', false)
- arg.setDisplayName('Water Heater: Heating Capacity')
- arg.setDescription("Heating capacity. Only applies to #{HPXML::WaterHeaterTypeStorage} and #{HPXML::WaterHeaterTypeHeatPump} (compressor). If not provided, the OS-HPXML default (see Conventional Storage, Heat Pump) is used.")
- arg.setUnits('Btu/hr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('water_heater_backup_heating_capacity', false)
- arg.setDisplayName('Water Heater: Backup Heating Capacity')
- arg.setDescription("Backup heating capacity for a #{HPXML::WaterHeaterTypeHeatPump}. If not provided, the OS-HPXML default (see Heat Pump) is used.")
- arg.setUnits('Btu/hr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('water_heater_standby_loss', false)
- arg.setDisplayName('Water Heater: Standby Loss')
- arg.setDescription("The standby loss of water heater. Only applies to space-heating boilers. If not provided, the OS-HPXML default (see Combi Boiler w/ Storage) is used.")
- arg.setUnits('F/hr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('water_heater_jacket_rvalue', false)
- arg.setDisplayName('Water Heater: Jacket R-value')
- arg.setDescription("The jacket R-value of water heater. Doesn't apply to #{HPXML::WaterHeaterTypeTankless} or #{HPXML::WaterHeaterTypeCombiTankless}. If not provided, defaults to no jacket insulation.")
- arg.setUnits('h-ft^2-R/Btu')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('water_heater_setpoint_temperature', false)
- arg.setDisplayName('Water Heater: Setpoint Temperature')
- arg.setDescription("The setpoint temperature of water heater. If not provided, the OS-HPXML default (see HPXML Water Heating Systems) is used.")
- arg.setUnits('F')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('water_heater_num_bedrooms_served', false)
- arg.setDisplayName('Water Heater: Number of Bedrooms Served')
- arg.setDescription("Number of bedrooms served (directly or indirectly) by the water heater. Only needed if #{HPXML::ResidentialTypeSFA} or #{HPXML::ResidentialTypeApartment} and it is a shared water heater serving multiple dwelling units. Used to apportion water heater tank losses to the unit.")
- arg.setUnits('#')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('water_heater_uses_desuperheater', false)
- arg.setDisplayName('Water Heater: Uses Desuperheater')
- arg.setDescription("Requires that the dwelling unit has a #{HPXML::HVACTypeHeatPumpAirToAir}, #{HPXML::HVACTypeHeatPumpMiniSplit}, or #{HPXML::HVACTypeHeatPumpGroundToAir} heat pump or a #{HPXML::HVACTypeCentralAirConditioner} or #{HPXML::HVACTypeMiniSplitAirConditioner} air conditioner. If not provided, assumes no desuperheater.")
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'water_heater_type',
+ choices: water_heater_type_choices,
+ required: true,
+ display_name: 'Water Heater: Type',
+ description: "The type of water heater. Use '#{Constants::None}' if there is no water heater."
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'water_heater_fuel_type',
+ choices: water_heater_fuel_choices,
+ required: false,
+ display_name: 'Water Heater: Fuel Type',
+ description: "The fuel type of water heater. Ignored for #{HPXML::WaterHeaterTypeHeatPump}."
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'water_heater_location',
+ choices: water_heater_location_choices,
+ required: false,
+ display_name: 'Water Heater: Location',
+ description: 'The location of water heater.',
+ default_href: "HPXML Water Heating Systems"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'water_heater_tank_volume',
+ required: false,
+ display_name: 'Water Heater: Tank Volume',
+ description: 'Nominal volume of water heater tank.',
+ default_href: "Conventional Storage, Heat Pump, Combi Boiler w/ Storage",
+ units: 'gal'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'water_heater_efficiency_type',
+ choices: water_heater_efficiency_type_choices,
+ required: false,
+ display_name: 'Water Heater: Efficiency Type',
+ description: 'The efficiency type of water heater. Does not apply to space-heating boilers.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'water_heater_efficiency',
+ required: false,
+ display_name: 'Water Heater: Efficiency',
+ description: 'Rated Energy Factor or Uniform Energy Factor. Does not apply to space-heating boilers.'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'water_heater_usage_bin',
+ choices: water_heater_usage_bin_choices,
+ required: false,
+ display_name: 'Water Heater: Usage Bin',
+ description: "The usage of the water heater. Only applies if Efficiency Type is UniformEnergyFactor and Type is not #{HPXML::WaterHeaterTypeTankless}. Does not apply to space-heating boilers.",
+ default_href: "Conventional Storage, Heat Pump"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'water_heater_recovery_efficiency',
+ required: false,
+ display_name: 'Water Heater: Recovery Efficiency',
+ description: 'Ratio of energy delivered to water heater to the energy content of the fuel consumed by the water heater. Only used for non-electric storage water heaters.',
+ default_href: "Conventional Storage",
+ units: 'Frac'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'water_heater_heating_capacity',
+ required: false,
+ display_name: 'Water Heater: Heating Capacity',
+ description: "Heating capacity. Only applies to #{HPXML::WaterHeaterTypeStorage} and #{HPXML::WaterHeaterTypeHeatPump} (compressor}.",
+ default_href: "Conventional Storage, Heat Pump",
+ units: 'Btu/hr'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'water_heater_backup_heating_capacity',
+ required: false,
+ display_name: 'Water Heater: Backup Heating Capacity',
+ description: "Backup heating capacity for a #{HPXML::WaterHeaterTypeHeatPump}.",
+ default_href: "Heat Pump",
+ units: 'Btu/hr'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'water_heater_standby_loss',
+ required: false,
+ display_name: 'Water Heater: Standby Loss',
+ description: 'The standby loss of water heater. Only applies to space-heating boilers.',
+ default_href: "Combi Boiler w/ Storage",
+ units: 'F/hr'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'water_heater_jacket_rvalue',
+ required: false,
+ display_name: 'Water Heater: Jacket R-value',
+ description: "The jacket R-value of water heater. Doesn't apply to #{HPXML::WaterHeaterTypeTankless} or #{HPXML::WaterHeaterTypeCombiTankless}. If not provided, defaults to no jacket insulation.",
+ units: 'h-ft^2-R/Btu'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'water_heater_setpoint_temperature',
+ required: false,
+ display_name: 'Water Heater: Setpoint Temperature',
+ description: 'The setpoint temperature of water heater.',
+ default_href: "HPXML Water Heating Systems",
+ units: 'F'
+ }
+
+ args << {
+ type: Argument::Integer,
+ name: 'water_heater_num_bedrooms_served',
+ required: false,
+ display_name: 'Water Heater: Number of Bedrooms Served',
+ description: "Number of bedrooms served (directly or indirectly} by the water heater. Only needed if #{HPXML::ResidentialTypeSFA} or #{HPXML::ResidentialTypeApartment} and it is a shared water heater serving multiple dwelling units. Used to apportion water heater tank losses to the unit.",
+ units: '#'
+ }
+
+ args << {
+ name: 'water_heater_uses_desuperheater',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Water Heater: Uses Desuperheater',
+ description: "Requires that the dwelling unit has a #{HPXML::HVACTypeHeatPumpAirToAir}, #{HPXML::HVACTypeHeatPumpMiniSplit}, or #{HPXML::HVACTypeHeatPumpGroundToAir} heat pump or a #{HPXML::HVACTypeCentralAirConditioner} or #{HPXML::HVACTypeMiniSplitAirConditioner} air conditioner. If not provided, assumes no desuperheater."
+ }
water_heater_tank_model_type_choices = OpenStudio::StringVector.new
water_heater_tank_model_type_choices << HPXML::WaterHeaterTankModelTypeMixed
water_heater_tank_model_type_choices << HPXML::WaterHeaterTankModelTypeStratified
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('water_heater_tank_model_type', water_heater_tank_model_type_choices, false)
- arg.setDisplayName('Water Heater: Tank Type')
- arg.setDescription("Type of tank model to use. The '#{HPXML::WaterHeaterTankModelTypeStratified}' tank generally provide more accurate results, but may significantly increase run time. Applies only to #{HPXML::WaterHeaterTypeStorage}. If not provided, the OS-HPXML default (see Conventional Storage) is used.")
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'water_heater_tank_model_type',
+ choices: water_heater_tank_model_type_choices,
+ required: false,
+ display_name: 'Water Heater: Tank Type',
+ description: "Type of tank model to use. The '#{HPXML::WaterHeaterTankModelTypeStratified}' tank generally provide more accurate results, but may significantly increase run time. Applies only to #{HPXML::WaterHeaterTypeStorage}.",
+ default_href: "Conventional Storage"
+ }
water_heater_operating_mode_choices = OpenStudio::StringVector.new
water_heater_operating_mode_choices << HPXML::WaterHeaterOperatingModeHybridAuto
water_heater_operating_mode_choices << HPXML::WaterHeaterOperatingModeHeatPumpOnly
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('water_heater_operating_mode', water_heater_operating_mode_choices, false)
- arg.setDisplayName('Water Heater: Operating Mode')
- arg.setDescription("The water heater operating mode. The '#{HPXML::WaterHeaterOperatingModeHeatPumpOnly}' option only uses the heat pump, while '#{HPXML::WaterHeaterOperatingModeHybridAuto}' allows the backup electric resistance to come on in high demand situations. This is ignored if a scheduled operating mode type is selected. Applies only to #{HPXML::WaterHeaterTypeHeatPump}. If not provided, the OS-HPXML default (see Heat Pump) is used.")
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'water_heater_operating_mode',
+ choices: water_heater_operating_mode_choices,
+ required: false,
+ display_name: 'Water Heater: Operating Mode',
+ description: "The water heater operating mode. The '#{HPXML::WaterHeaterOperatingModeHeatPumpOnly}' option only uses the heat pump, while '#{HPXML::WaterHeaterOperatingModeHybridAuto}' allows the backup electric resistance to come on in high demand situations. This is ignored if a scheduled operating mode type is selected. Applies only to #{HPXML::WaterHeaterTypeHeatPump}.",
+ default_href: "Heat Pump"
+ }
hot_water_distribution_system_type_choices = OpenStudio::StringVector.new
hot_water_distribution_system_type_choices << HPXML::DHWDistTypeStandard
hot_water_distribution_system_type_choices << HPXML::DHWDistTypeRecirc
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('hot_water_distribution_system_type', hot_water_distribution_system_type_choices, true)
- arg.setDisplayName('Hot Water Distribution: System Type')
- arg.setDescription('The type of the hot water distribution system.')
- arg.setDefaultValue(HPXML::DHWDistTypeStandard)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('hot_water_distribution_standard_piping_length', false)
- arg.setDisplayName('Hot Water Distribution: Standard Piping Length')
- arg.setUnits('ft')
- arg.setDescription("If the distribution system is #{HPXML::DHWDistTypeStandard}, the length of the piping. If not provided, the OS-HPXML default (see Standard) is used.")
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'hot_water_distribution_system_type',
+ choices: hot_water_distribution_system_type_choices,
+ required: true,
+ display_name: 'Hot Water Distribution: System Type',
+ description: 'The type of the hot water distribution system.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'hot_water_distribution_standard_piping_length',
+ required: false,
+ display_name: 'Hot Water Distribution: Standard Piping Length',
+ units: 'ft',
+ description: "If the distribution system is #{HPXML::DHWDistTypeStandard}, the length of the piping.",
+ default_href: "Standard"
+ }
recirculation_control_type_choices = OpenStudio::StringVector.new
recirculation_control_type_choices << HPXML::DHWRecircControlTypeNone
@@ -2353,81 +3363,119 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
recirculation_control_type_choices << HPXML::DHWRecircControlTypeSensor
recirculation_control_type_choices << HPXML::DHWRecircControlTypeManual
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('hot_water_distribution_recirc_control_type', recirculation_control_type_choices, false)
- arg.setDisplayName('Hot Water Distribution: Recirculation Control Type')
- arg.setDescription("If the distribution system is #{HPXML::DHWDistTypeRecirc}, the type of hot water recirculation control, if any.")
- arg.setDefaultValue(HPXML::DHWRecircControlTypeNone)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('hot_water_distribution_recirc_piping_length', false)
- arg.setDisplayName('Hot Water Distribution: Recirculation Piping Length')
- arg.setUnits('ft')
- arg.setDescription("If the distribution system is #{HPXML::DHWDistTypeRecirc}, the length of the recirculation piping. If not provided, the OS-HPXML default (see Recirculation (In-Unit)) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('hot_water_distribution_recirc_branch_piping_length', false)
- arg.setDisplayName('Hot Water Distribution: Recirculation Branch Piping Length')
- arg.setUnits('ft')
- arg.setDescription("If the distribution system is #{HPXML::DHWDistTypeRecirc}, the length of the recirculation branch piping. If not provided, the OS-HPXML default (see Recirculation (In-Unit)) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('hot_water_distribution_recirc_pump_power', false)
- arg.setDisplayName('Hot Water Distribution: Recirculation Pump Power')
- arg.setUnits('W')
- arg.setDescription("If the distribution system is #{HPXML::DHWDistTypeRecirc}, the recirculation pump power. If not provided, the OS-HPXML default (see Recirculation (In-Unit)) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('hot_water_distribution_pipe_r', false)
- arg.setDisplayName('Hot Water Distribution: Pipe Insulation Nominal R-Value')
- arg.setUnits('h-ft^2-R/Btu')
- arg.setDescription("Nominal R-value of the pipe insulation. If not provided, the OS-HPXML default (see HPXML Hot Water Distribution) is used.")
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'hot_water_distribution_recirc_control_type',
+ choices: recirculation_control_type_choices,
+ required: false,
+ display_name: 'Hot Water Distribution: Recirculation Control Type',
+ description: "If the distribution system is #{HPXML::DHWDistTypeRecirc}, the type of hot water recirculation control, if any."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'hot_water_distribution_recirc_piping_length',
+ required: false,
+ display_name: 'Hot Water Distribution: Recirculation Piping Length',
+ units: 'ft',
+ description: "If the distribution system is #{HPXML::DHWDistTypeRecirc}, the length of the recirculation piping.",
+ default_href: "Recirculation (In-Unit}"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'hot_water_distribution_recirc_branch_piping_length',
+ required: false,
+ display_name: 'Hot Water Distribution: Recirculation Branch Piping Length',
+ units: 'ft',
+ description: "If the distribution system is #{HPXML::DHWDistTypeRecirc}, the length of the recirculation branch piping.",
+ default_href: "Recirculation (In-Unit}"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'hot_water_distribution_recirc_pump_power',
+ required: false,
+ display_name: 'Hot Water Distribution: Recirculation Pump Power',
+ units: 'W',
+ description: "If the distribution system is #{HPXML::DHWDistTypeRecirc}, the recirculation pump power.",
+ default_href: "Recirculation (In-Unit}"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'hot_water_distribution_pipe_r',
+ required: false,
+ display_name: 'Hot Water Distribution: Pipe Insulation Nominal R-Value',
+ units: 'h-ft^2-R/Btu',
+ description: 'Nominal R-value of the pipe insulation.',
+ default_href: "HPXML Hot Water Distribution"
+ }
dwhr_facilities_connected_choices = OpenStudio::StringVector.new
dwhr_facilities_connected_choices << Constants::None
dwhr_facilities_connected_choices << HPXML::DWHRFacilitiesConnectedOne
dwhr_facilities_connected_choices << HPXML::DWHRFacilitiesConnectedAll
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('dwhr_facilities_connected', dwhr_facilities_connected_choices, true)
- arg.setDisplayName('Drain Water Heat Recovery: Facilities Connected')
- arg.setDescription("Which facilities are connected for the drain water heat recovery. Use '#{Constants::None}' if there is no drain water heat recovery system.")
- arg.setDefaultValue(Constants::None)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('dwhr_equal_flow', false)
- arg.setDisplayName('Drain Water Heat Recovery: Equal Flow')
- arg.setDescription('Whether the drain water heat recovery has equal flow.')
- arg.setDefaultValue(true)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('dwhr_efficiency', false)
- arg.setDisplayName('Drain Water Heat Recovery: Efficiency')
- arg.setUnits('Frac')
- arg.setDescription('The efficiency of the drain water heat recovery.')
- arg.setDefaultValue(0.55)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('water_fixtures_shower_low_flow', true)
- arg.setDisplayName('Hot Water Fixtures: Is Shower Low Flow')
- arg.setDescription('Whether the shower fixture is low flow.')
- arg.setDefaultValue(false)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('water_fixtures_sink_low_flow', true)
- arg.setDisplayName('Hot Water Fixtures: Is Sink Low Flow')
- arg.setDescription('Whether the sink fixture is low flow.')
- arg.setDefaultValue(false)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('water_fixtures_usage_multiplier', false)
- arg.setDisplayName('Hot Water Fixtures: Usage Multiplier')
- arg.setDescription("Multiplier on the hot water usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Water Fixtures) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('general_water_use_usage_multiplier', false)
- arg.setDisplayName('General Water Use: Usage Multiplier')
- arg.setDescription("Multiplier on internal gains from general water use (floor mopping, shower evaporation, water films on showers, tubs & sinks surfaces, plant watering, etc.) that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Building Occupancy) is used.")
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'dwhr_facilities_connected',
+ choices: dwhr_facilities_connected_choices,
+ required: false,
+ display_name: 'Drain Water Heat Recovery: Facilities Connected',
+ description: "Which facilities are connected for the drain water heat recovery. Use '#{Constants::None}' if there is no drain water heat recovery system."
+ }
+
+ args << {
+ name: 'dwhr_equal_flow',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Drain Water Heat Recovery: Equal Flow',
+ description: 'Whether the drain water heat recovery has equal flow.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'dwhr_efficiency',
+ required: false,
+ display_name: 'Drain Water Heat Recovery: Efficiency',
+ units: 'Frac',
+ description: 'The efficiency of the drain water heat recovery.'
+ }
+
+ args << {
+ name: 'water_fixtures_shower_low_flow',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Hot Water Fixtures: Is Shower Low Flow',
+ description: 'Whether the shower fixture is low flow. If not provided, defaults to false.'
+ }
+
+ args << {
+ name: 'water_fixtures_sink_low_flow',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Hot Water Fixtures: Is Sink Low Flow',
+ description: 'Whether the sink fixture is low flow. If not provided, defaults to false.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'water_fixtures_usage_multiplier',
+ required: false,
+ display_name: 'Hot Water Fixtures: Usage Multiplier',
+ description: 'Multiplier on the hot water usage that can reflect, e.g., high/low usage occupants.',
+ default_href: "HPXML Water Fixtures"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'general_water_use_usage_multiplier',
+ required: false,
+ display_name: 'General Water Use: Usage Multiplier',
+ description: 'Multiplier on internal gains from general water use (floor mopping, shower evaporation, water films on showers, tubs & sinks surfaces, plant watering, etc.} that can reflect, e.g., high/low usage occupants.',
+ default_href: "HPXML Building Occupancy"
+ }
solar_thermal_system_type_choices = OpenStudio::StringVector.new
solar_thermal_system_type_choices << Constants::None
@@ -2444,71 +3492,96 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
solar_thermal_collector_type_choices << HPXML::SolarThermalCollectorTypeDoubleGlazing
solar_thermal_collector_type_choices << HPXML::SolarThermalCollectorTypeICS
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('solar_thermal_system_type', solar_thermal_system_type_choices, true)
- arg.setDisplayName('Solar Thermal: System Type')
- arg.setDescription("The type of solar thermal system. Use '#{Constants::None}' if there is no solar thermal system.")
- arg.setDefaultValue(Constants::None)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('solar_thermal_collector_area', true)
- arg.setDisplayName('Solar Thermal: Collector Area')
- arg.setUnits('ft^2')
- arg.setDescription('The collector area of the solar thermal system.')
- arg.setDefaultValue(40.0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('solar_thermal_collector_loop_type', solar_thermal_collector_loop_type_choices, true)
- arg.setDisplayName('Solar Thermal: Collector Loop Type')
- arg.setDescription('The collector loop type of the solar thermal system.')
- arg.setDefaultValue(HPXML::SolarThermalLoopTypeDirect)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('solar_thermal_collector_type', solar_thermal_collector_type_choices, true)
- arg.setDisplayName('Solar Thermal: Collector Type')
- arg.setDescription('The collector type of the solar thermal system.')
- arg.setDefaultValue(HPXML::SolarThermalCollectorTypeEvacuatedTube)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('solar_thermal_collector_azimuth', true)
- arg.setDisplayName('Solar Thermal: Collector Azimuth')
- arg.setUnits('degrees')
- arg.setDescription('The collector azimuth of the solar thermal system. Azimuth is measured clockwise from north (e.g., North=0, East=90, South=180, West=270).')
- arg.setDefaultValue(180)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('solar_thermal_collector_tilt', true)
- arg.setDisplayName('Solar Thermal: Collector Tilt')
- arg.setUnits('degrees')
- arg.setDescription('The collector tilt of the solar thermal system. Can also enter, e.g., RoofPitch, RoofPitch+20, Latitude, Latitude-15, etc.')
- arg.setDefaultValue('RoofPitch')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('solar_thermal_collector_rated_optical_efficiency', true)
- arg.setDisplayName('Solar Thermal: Collector Rated Optical Efficiency')
- arg.setUnits('Frac')
- arg.setDescription('The collector rated optical efficiency of the solar thermal system.')
- arg.setDefaultValue(0.5)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('solar_thermal_collector_rated_thermal_losses', true)
- arg.setDisplayName('Solar Thermal: Collector Rated Thermal Losses')
- arg.setUnits('Btu/hr-ft^2-R')
- arg.setDescription('The collector rated thermal losses of the solar thermal system.')
- arg.setDefaultValue(0.2799)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('solar_thermal_storage_volume', false)
- arg.setDisplayName('Solar Thermal: Storage Volume')
- arg.setUnits('gal')
- arg.setDescription("The storage volume of the solar thermal system. If not provided, the OS-HPXML default (see Detailed Inputs) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('solar_thermal_solar_fraction', true)
- arg.setDisplayName('Solar Thermal: Solar Fraction')
- arg.setUnits('Frac')
- arg.setDescription('The solar fraction of the solar thermal system. If provided, overrides all other solar thermal inputs.')
- arg.setDefaultValue(0)
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'solar_thermal_system_type',
+ choices: solar_thermal_system_type_choices,
+ required: false,
+ display_name: 'Solar Thermal: System Type',
+ description: "The type of solar thermal system. Use '#{Constants::None}' if there is no solar thermal system."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'solar_thermal_collector_area',
+ required: false,
+ display_name: 'Solar Thermal: Collector Area',
+ units: 'ft^2',
+ description: 'The collector area of the solar thermal system.'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'solar_thermal_collector_loop_type',
+ choices: solar_thermal_collector_loop_type_choices,
+ required: false,
+ display_name: 'Solar Thermal: Collector Loop Type',
+ description: 'The collector loop type of the solar thermal system.'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'solar_thermal_collector_type',
+ choices: solar_thermal_collector_type_choices,
+ required: false,
+ display_name: 'Solar Thermal: Collector Type',
+ description: 'The collector type of the solar thermal system.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'solar_thermal_collector_azimuth',
+ required: false,
+ display_name: 'Solar Thermal: Collector Azimuth',
+ units: 'degrees',
+ description: 'The collector azimuth of the solar thermal system. Azimuth is measured clockwise from north (e.g., North=0, East=90, South=180, West=270}.'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'solar_thermal_collector_tilt',
+ required: false,
+ display_name: 'Solar Thermal: Collector Tilt',
+ units: 'degrees',
+ description: 'The collector tilt of the solar thermal system. Can also enter, e.g., RoofPitch, RoofPitch+20, Latitude, Latitude-15, etc.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'solar_thermal_collector_rated_optical_efficiency',
+ required: false,
+ display_name: 'Solar Thermal: Collector Rated Optical Efficiency',
+ units: 'Frac',
+ description: 'The collector rated optical efficiency of the solar thermal system.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'solar_thermal_collector_rated_thermal_losses',
+ required: false,
+ display_name: 'Solar Thermal: Collector Rated Thermal Losses',
+ units: 'Btu/hr-ft^2-R',
+ description: 'The collector rated thermal losses of the solar thermal system.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'solar_thermal_storage_volume',
+ required: false,
+ display_name: 'Solar Thermal: Storage Volume',
+ units: 'gal',
+ description: 'The storage volume of the solar thermal system.',
+ default_href: "Detailed Inputs"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'solar_thermal_solar_fraction',
+ required: false,
+ display_name: 'Solar Thermal: Solar Fraction',
+ units: 'Frac',
+ description: 'The solar fraction of the solar thermal system. If provided, overrides all other solar thermal inputs.'
+ }
pv_system_module_type_choices = OpenStudio::StringVector.new
pv_system_module_type_choices << HPXML::PVModuleTypeStandard
@@ -2525,107 +3598,164 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
pv_system_tracking_choices << HPXML::PVTrackingType1AxisBacktracked
pv_system_tracking_choices << HPXML::PVTrackingType2Axis
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('pv_system_present', true)
- arg.setDisplayName('PV System: Present')
- arg.setDescription('Whether there is a PV system present.')
- arg.setDefaultValue(false)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('pv_system_module_type', pv_system_module_type_choices, false)
- arg.setDisplayName('PV System: Module Type')
- arg.setDescription("Module type of the PV system. If not provided, the OS-HPXML default (see HPXML Photovoltaics) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('pv_system_location', pv_system_location_choices, false)
- arg.setDisplayName('PV System: Location')
- arg.setDescription("Location of the PV system. If not provided, the OS-HPXML default (see HPXML Photovoltaics) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('pv_system_tracking', pv_system_tracking_choices, false)
- arg.setDisplayName('PV System: Tracking')
- arg.setDescription("Type of tracking for the PV system. If not provided, the OS-HPXML default (see HPXML Photovoltaics) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('pv_system_array_azimuth', true)
- arg.setDisplayName('PV System: Array Azimuth')
- arg.setUnits('degrees')
- arg.setDescription('Array azimuth of the PV system. Azimuth is measured clockwise from north (e.g., North=0, East=90, South=180, West=270).')
- arg.setDefaultValue(180)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('pv_system_array_tilt', true)
- arg.setDisplayName('PV System: Array Tilt')
- arg.setUnits('degrees')
- arg.setDescription('Array tilt of the PV system. Can also enter, e.g., RoofPitch, RoofPitch+20, Latitude, Latitude-15, etc.')
- arg.setDefaultValue('RoofPitch')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('pv_system_max_power_output', true)
- arg.setDisplayName('PV System: Maximum Power Output')
- arg.setUnits('W')
- arg.setDescription('Maximum power output of the PV system. For a shared system, this is the total building maximum power output.')
- arg.setDefaultValue(4000)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('pv_system_inverter_efficiency', false)
- arg.setDisplayName('PV System: Inverter Efficiency')
- arg.setUnits('Frac')
- arg.setDescription("Inverter efficiency of the PV system. If there are two PV systems, this will apply to both. If not provided, the OS-HPXML default (see HPXML Photovoltaics) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('pv_system_system_losses_fraction', false)
- arg.setDisplayName('PV System: System Losses Fraction')
- arg.setUnits('Frac')
- arg.setDescription("System losses fraction of the PV system. If there are two PV systems, this will apply to both. If not provided, the OS-HPXML default (see HPXML Photovoltaics) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('pv_system_num_bedrooms_served', false)
- arg.setDisplayName('PV System: Number of Bedrooms Served')
- arg.setDescription("Number of bedrooms served by PV system. Only needed if #{HPXML::ResidentialTypeSFA} or #{HPXML::ResidentialTypeApartment} and it is a shared PV system serving multiple dwelling units. Used to apportion PV generation to the unit of a SFA/MF building. If there are two PV systems, this will apply to both.")
- arg.setUnits('#')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('pv_system_2_present', true)
- arg.setDisplayName('PV System 2: Present')
- arg.setDescription('Whether there is a second PV system present.')
- arg.setDefaultValue(false)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('pv_system_2_module_type', pv_system_module_type_choices, false)
- arg.setDisplayName('PV System 2: Module Type')
- arg.setDescription("Module type of the second PV system. If not provided, the OS-HPXML default (see HPXML Photovoltaics) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('pv_system_2_location', pv_system_location_choices, false)
- arg.setDisplayName('PV System 2: Location')
- arg.setDescription("Location of the second PV system. If not provided, the OS-HPXML default (see HPXML Photovoltaics) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('pv_system_2_tracking', pv_system_tracking_choices, false)
- arg.setDisplayName('PV System 2: Tracking')
- arg.setDescription("Type of tracking for the second PV system. If not provided, the OS-HPXML default (see HPXML Photovoltaics) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('pv_system_2_array_azimuth', true)
- arg.setDisplayName('PV System 2: Array Azimuth')
- arg.setUnits('degrees')
- arg.setDescription('Array azimuth of the second PV system. Azimuth is measured clockwise from north (e.g., North=0, East=90, South=180, West=270).')
- arg.setDefaultValue(180)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('pv_system_2_array_tilt', true)
- arg.setDisplayName('PV System 2: Array Tilt')
- arg.setUnits('degrees')
- arg.setDescription('Array tilt of the second PV system. Can also enter, e.g., RoofPitch, RoofPitch+20, Latitude, Latitude-15, etc.')
- arg.setDefaultValue('RoofPitch')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('pv_system_2_max_power_output', true)
- arg.setDisplayName('PV System 2: Maximum Power Output')
- arg.setUnits('W')
- arg.setDescription('Maximum power output of the second PV system. For a shared system, this is the total building maximum power output.')
- arg.setDefaultValue(4000)
- args << arg
+ args << {
+ name: 'pv_system_present',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'PV System: Present',
+ description: 'Whether there is a PV system present. If not provided, defaults to false.'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'pv_system_module_type',
+ choices: pv_system_module_type_choices,
+ required: false,
+ display_name: 'PV System: Module Type',
+ description: 'Module type of the PV system.',
+ default_href: "HPXML Photovoltaics"
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'pv_system_location',
+ choices: pv_system_location_choices,
+ required: false,
+ display_name: 'PV System: Location',
+ description: 'Location of the PV system.',
+ default_href: "HPXML Photovoltaics"
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'pv_system_tracking',
+ choices: pv_system_tracking_choices,
+ required: false,
+ display_name: 'PV System: Tracking',
+ description: 'Type of tracking for the PV system.',
+ default_href: "HPXML Photovoltaics"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'pv_system_array_azimuth',
+ required: false,
+ display_name: 'PV System: Array Azimuth',
+ units: 'degrees',
+ description: 'Array azimuth of the PV system. Azimuth is measured clockwise from north (e.g., North=0, East=90, South=180, West=270}.'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'pv_system_array_tilt',
+ required: false,
+ display_name: 'PV System: Array Tilt',
+ units: 'degrees',
+ description: 'Array tilt of the PV system. Can also enter, e.g., RoofPitch, RoofPitch+20, Latitude, Latitude-15, etc.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'pv_system_max_power_output',
+ required: false,
+ display_name: 'PV System: Maximum Power Output',
+ units: 'W',
+ description: 'Maximum power output of the PV system. For a shared system, this is the total building maximum power output.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'pv_system_inverter_efficiency',
+ required: false,
+ display_name: 'PV System: Inverter Efficiency',
+ units: 'Frac',
+ description: 'Inverter efficiency of the PV system. If there are two PV systems, this will apply to both.',
+ default_href: "HPXML Photovoltaics"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'pv_system_system_losses_fraction',
+ required: false,
+ display_name: 'PV System: System Losses Fraction',
+ units: 'Frac',
+ description: 'System losses fraction of the PV system. If there are two PV systems, this will apply to both.',
+ default_href: "HPXML Photovoltaics"
+ }
+
+ args << {
+ type: Argument::Integer,
+ name: 'pv_system_num_bedrooms_served',
+ required: false,
+ display_name: 'PV System: Number of Bedrooms Served',
+ description: "Number of bedrooms served by PV system. Only needed if #{HPXML::ResidentialTypeSFA} or #{HPXML::ResidentialTypeApartment} and it is a shared PV system serving multiple dwelling units. Used to apportion PV generation to the unit of a SFA/MF building. If there are two PV systems, this will apply to both.",
+ units: '#'
+ }
+
+ args << {
+ name: 'pv_system_2_present',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'PV System 2: Present',
+ description: 'Whether there is a second PV system present. If not provided, defaults to false.'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'pv_system_2_module_type',
+ choices: pv_system_module_type_choices,
+ required: false,
+ display_name: 'PV System 2: Module Type',
+ description: 'Module type of the second PV system.',
+ default_href: "HPXML Photovoltaics"
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'pv_system_2_location',
+ choices: pv_system_location_choices,
+ required: false,
+ display_name: 'PV System 2: Location',
+ description: 'Location of the second PV system.',
+ default_href: "HPXML Photovoltaics"
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'pv_system_2_tracking',
+ choices: pv_system_tracking_choices,
+ required: false,
+ display_name: 'PV System 2: Tracking',
+ description: 'Type of tracking for the second PV system.',
+ default_href: "HPXML Photovoltaics"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'pv_system_2_array_azimuth',
+ required: false,
+ display_name: 'PV System 2: Array Azimuth',
+ units: 'degrees',
+ description: 'Array azimuth of the second PV system. Azimuth is measured clockwise from north (e.g., North=0, East=90, South=180, West=270}.'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'pv_system_2_array_tilt',
+ required: false,
+ display_name: 'PV System 2: Array Tilt',
+ units: 'degrees',
+ description: 'Array tilt of the second PV system. Can also enter, e.g., RoofPitch, RoofPitch+20, Latitude, Latitude-15, etc.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'pv_system_2_max_power_output',
+ required: false,
+ display_name: 'PV System 2: Maximum Power Output',
+ units: 'W',
+ description: 'Maximum power output of the second PV system. For a shared system, this is the total building maximum power output.'
+ }
battery_location_choices = OpenStudio::StringVector.new
battery_location_choices << HPXML::LocationConditionedSpace
@@ -2641,138 +3771,206 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
battery_location_choices << HPXML::LocationGarage
battery_location_choices << HPXML::LocationOutside
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('battery_present', true)
- arg.setDisplayName('Battery: Present')
- arg.setDescription('Whether there is a lithium ion battery present.')
- arg.setDefaultValue(false)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('battery_location', battery_location_choices, false)
- arg.setDisplayName('Battery: Location')
- arg.setDescription("The space type for the lithium ion battery location. If not provided, the OS-HPXML default (see HPXML Batteries) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('battery_power', false)
- arg.setDisplayName('Battery: Rated Power Output')
- arg.setDescription("The rated power output of the lithium ion battery. If not provided, the OS-HPXML default (see HPXML Batteries) is used.")
- arg.setUnits('W')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('battery_capacity', false)
- arg.setDisplayName('Battery: Nominal Capacity')
- arg.setDescription("The nominal capacity of the lithium ion battery. If not provided, the OS-HPXML default (see HPXML Batteries) is used.")
- arg.setUnits('kWh')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('battery_usable_capacity', false)
- arg.setDisplayName('Battery: Usable Capacity')
- arg.setDescription("The usable capacity of the lithium ion battery. If not provided, the OS-HPXML default (see HPXML Batteries) is used.")
- arg.setUnits('kWh')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('battery_round_trip_efficiency', false)
- arg.setDisplayName('Battery: Round Trip Efficiency')
- arg.setDescription("The round trip efficiency of the lithium ion battery. If not provided, the OS-HPXML default (see HPXML Batteries) is used.")
- arg.setUnits('Frac')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('battery_num_bedrooms_served', false)
- arg.setDisplayName('Battery: Number of Bedrooms Served')
- arg.setDescription("Number of bedrooms served by the lithium ion battery. Only needed if #{HPXML::ResidentialTypeSFA} or #{HPXML::ResidentialTypeApartment} and it is a shared battery serving multiple dwelling units. Used to apportion battery charging/discharging to the unit of a SFA/MF building.")
- arg.setUnits('#')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('lighting_present', true)
- arg.setDisplayName('Lighting: Present')
- arg.setDescription('Whether there is lighting energy use.')
- arg.setDefaultValue(true)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('lighting_interior_fraction_cfl', true)
- arg.setDisplayName('Lighting: Interior Fraction CFL')
- arg.setDescription('Fraction of all lamps (interior) that are compact fluorescent. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent.')
- arg.setDefaultValue(0.1)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('lighting_interior_fraction_lfl', true)
- arg.setDisplayName('Lighting: Interior Fraction LFL')
- arg.setDescription('Fraction of all lamps (interior) that are linear fluorescent. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent.')
- arg.setDefaultValue(0.0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('lighting_interior_fraction_led', true)
- arg.setDisplayName('Lighting: Interior Fraction LED')
- arg.setDescription('Fraction of all lamps (interior) that are light emitting diodes. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent.')
- arg.setDefaultValue(0.0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('lighting_interior_usage_multiplier', false)
- arg.setDisplayName('Lighting: Interior Usage Multiplier')
- arg.setDescription("Multiplier on the lighting energy usage (interior) that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Lighting) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('lighting_exterior_fraction_cfl', true)
- arg.setDisplayName('Lighting: Exterior Fraction CFL')
- arg.setDescription('Fraction of all lamps (exterior) that are compact fluorescent. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent.')
- arg.setDefaultValue(0.0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('lighting_exterior_fraction_lfl', true)
- arg.setDisplayName('Lighting: Exterior Fraction LFL')
- arg.setDescription('Fraction of all lamps (exterior) that are linear fluorescent. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent.')
- arg.setDefaultValue(0.0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('lighting_exterior_fraction_led', true)
- arg.setDisplayName('Lighting: Exterior Fraction LED')
- arg.setDescription('Fraction of all lamps (exterior) that are light emitting diodes. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent.')
- arg.setDefaultValue(0.0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('lighting_exterior_usage_multiplier', false)
- arg.setDisplayName('Lighting: Exterior Usage Multiplier')
- arg.setDescription("Multiplier on the lighting energy usage (exterior) that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Lighting) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('lighting_garage_fraction_cfl', true)
- arg.setDisplayName('Lighting: Garage Fraction CFL')
- arg.setDescription('Fraction of all lamps (garage) that are compact fluorescent. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent.')
- arg.setDefaultValue(0.0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('lighting_garage_fraction_lfl', true)
- arg.setDisplayName('Lighting: Garage Fraction LFL')
- arg.setDescription('Fraction of all lamps (garage) that are linear fluorescent. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent.')
- arg.setDefaultValue(0.0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('lighting_garage_fraction_led', true)
- arg.setDisplayName('Lighting: Garage Fraction LED')
- arg.setDescription('Fraction of all lamps (garage) that are light emitting diodes. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent.')
- arg.setDefaultValue(0.0)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('lighting_garage_usage_multiplier', false)
- arg.setDisplayName('Lighting: Garage Usage Multiplier')
- arg.setDescription("Multiplier on the lighting energy usage (garage) that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Lighting) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('holiday_lighting_present', true)
- arg.setDisplayName('Holiday Lighting: Present')
- arg.setDescription('Whether there is holiday lighting.')
- arg.setDefaultValue(false)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('holiday_lighting_daily_kwh', false)
- arg.setDisplayName('Holiday Lighting: Daily Consumption')
- arg.setUnits('kWh/day')
- arg.setDescription("The daily energy consumption for holiday lighting (exterior). If not provided, the OS-HPXML default (see HPXML Lighting) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('holiday_lighting_period', false)
- arg.setDisplayName('Holiday Lighting: Period')
- arg.setDescription("Enter a date range like 'Nov 25 - Jan 5'. If not provided, the OS-HPXML default (see HPXML Lighting) is used.")
- args << arg
+ args << {
+ name: 'battery_present',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Battery: Present',
+ description: 'Whether there is a lithium ion battery present. If not provided, defaults to false.'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'battery_location',
+ choices: battery_location_choices,
+ required: false,
+ display_name: 'Battery: Location',
+ description: 'The space type for the lithium ion battery location.',
+ default_href: "HPXML Batteries"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'battery_power',
+ required: false,
+ display_name: 'Battery: Rated Power Output',
+ description: 'The rated power output of the lithium ion battery.',
+ default_href: "HPXML Batteries",
+ units: 'W'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'battery_capacity',
+ required: false,
+ display_name: 'Battery: Nominal Capacity',
+ description: 'The nominal capacity of the lithium ion battery.',
+ default_href: "HPXML Batteries",
+ units: 'kWh'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'battery_usable_capacity',
+ required: false,
+ display_name: 'Battery: Usable Capacity',
+ description: 'The usable capacity of the lithium ion battery.',
+ default_href: "HPXML Batteries",
+ units: 'kWh'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'battery_round_trip_efficiency',
+ required: false,
+ display_name: 'Battery: Round Trip Efficiency',
+ description: 'The round trip efficiency of the lithium ion battery.',
+ default_href: "HPXML Batteries",
+ units: 'Frac'
+ }
+
+ args << {
+ type: Argument::Integer,
+ name: 'battery_num_bedrooms_served',
+ required: false,
+ display_name: 'Battery: Number of Bedrooms Served',
+ description: "Number of bedrooms served by the lithium ion battery. Only needed if #{HPXML::ResidentialTypeSFA} or #{HPXML::ResidentialTypeApartment} and it is a shared battery serving multiple dwelling units. Used to apportion battery charging/discharging to the unit of a SFA/MF building.",
+ units: '#'
+ }
+
+ args << {
+ name: 'lighting_present',
+ type: Argument::Boolean,
+ required: true,
+ display_name: 'Lighting: Present',
+ description: 'Whether there is lighting energy use.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'lighting_interior_fraction_cfl',
+ required: false,
+ display_name: 'Lighting: Interior Fraction CFL',
+ description: 'Fraction of all lamps (interior} that are compact fluorescent. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent. If not provided, defaults to 0.1.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'lighting_interior_fraction_lfl',
+ required: false,
+ display_name: 'Lighting: Interior Fraction LFL',
+ description: 'Fraction of all lamps (interior} that are linear fluorescent. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent. If not provided, defaults to 0.0.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'lighting_interior_fraction_led',
+ required: false,
+ display_name: 'Lighting: Interior Fraction LED',
+ description: 'Fraction of all lamps (interior} that are light emitting diodes. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent. If not provided, defaults to 0.0.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'lighting_interior_usage_multiplier',
+ required: false,
+ display_name: 'Lighting: Interior Usage Multiplier',
+ description: 'Multiplier on the lighting energy usage (interior} that can reflect, e.g., high/low usage occupants.',
+ default_href: "HPXML Lighting"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'lighting_exterior_fraction_cfl',
+ required: false,
+ display_name: 'Lighting: Exterior Fraction CFL',
+ description: 'Fraction of all lamps (exterior} that are compact fluorescent. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent. If not provided, defaults to 0.0.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'lighting_exterior_fraction_lfl',
+ required: false,
+ display_name: 'Lighting: Exterior Fraction LFL',
+ description: 'Fraction of all lamps (exterior} that are linear fluorescent. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent. If not provided, defaults to 0.0.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'lighting_exterior_fraction_led',
+ required: false,
+ display_name: 'Lighting: Exterior Fraction LED',
+ description: 'Fraction of all lamps (exterior} that are light emitting diodes. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent. If not provided, defaults to 0.0.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'lighting_exterior_usage_multiplier',
+ required: false,
+ display_name: 'Lighting: Exterior Usage Multiplier',
+ description: 'Multiplier on the lighting energy usage (exterior} that can reflect, e.g., high/low usage occupants.',
+ default_href: "HPXML Lighting"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'lighting_garage_fraction_cfl',
+ required: false,
+ display_name: 'Lighting: Garage Fraction CFL',
+ description: 'Fraction of all lamps (garage} that are compact fluorescent. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent. If not provided, defaults to 0.0.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'lighting_garage_fraction_lfl',
+ required: false,
+ display_name: 'Lighting: Garage Fraction LFL',
+ description: 'Fraction of all lamps (garage} that are linear fluorescent. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent. If not provided, defaults to 0.0.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'lighting_garage_fraction_led',
+ required: false,
+ display_name: 'Lighting: Garage Fraction LED',
+ description: 'Fraction of all lamps (garage} that are light emitting diodes. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent. If not provided, defaults to 0.0.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'lighting_garage_usage_multiplier',
+ required: false,
+ display_name: 'Lighting: Garage Usage Multiplier',
+ description: 'Multiplier on the lighting energy usage (garage} that can reflect, e.g., high/low usage occupants.',
+ default_href: "HPXML Lighting"
+ }
+
+ args << {
+ name: 'holiday_lighting_present',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Holiday Lighting: Present',
+ description: 'Whether there is holiday lighting. If not provided, defaults to false.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'holiday_lighting_daily_kwh',
+ required: false,
+ display_name: 'Holiday Lighting: Daily Consumption',
+ units: 'kWh/day',
+ description: 'The daily energy consumption for holiday lighting (exterior}.',
+ default_href: "HPXML Lighting"
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'holiday_lighting_period',
+ required: false,
+ display_name: 'Holiday Lighting: Period',
+ description: "Enter a date range like 'Nov 25 - Jan 5'.",
+ default_href: "HPXML Lighting"
+ }
dehumidifier_type_choices = OpenStudio::StringVector.new
dehumidifier_type_choices << Constants::None
@@ -2783,45 +3981,59 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
dehumidifier_efficiency_type_choices << 'EnergyFactor'
dehumidifier_efficiency_type_choices << 'IntegratedEnergyFactor'
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('dehumidifier_type', dehumidifier_type_choices, true)
- arg.setDisplayName('Dehumidifier: Type')
- arg.setDescription('The type of dehumidifier.')
- arg.setDefaultValue(Constants::None)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('dehumidifier_efficiency_type', dehumidifier_efficiency_type_choices, true)
- arg.setDisplayName('Dehumidifier: Efficiency Type')
- arg.setDescription('The efficiency type of dehumidifier.')
- arg.setDefaultValue('IntegratedEnergyFactor')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('dehumidifier_efficiency', true)
- arg.setDisplayName('Dehumidifier: Efficiency')
- arg.setUnits('liters/kWh')
- arg.setDescription('The efficiency of the dehumidifier.')
- arg.setDefaultValue(1.5)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('dehumidifier_capacity', true)
- arg.setDisplayName('Dehumidifier: Capacity')
- arg.setDescription('The capacity (water removal rate) of the dehumidifier.')
- arg.setUnits('pint/day')
- arg.setDefaultValue(40)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('dehumidifier_rh_setpoint', true)
- arg.setDisplayName('Dehumidifier: Relative Humidity Setpoint')
- arg.setDescription('The relative humidity setpoint of the dehumidifier.')
- arg.setUnits('Frac')
- arg.setDefaultValue(0.5)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('dehumidifier_fraction_dehumidification_load_served', true)
- arg.setDisplayName('Dehumidifier: Fraction Dehumidification Load Served')
- arg.setDescription('The dehumidification load served fraction of the dehumidifier.')
- arg.setUnits('Frac')
- arg.setDefaultValue(1)
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'dehumidifier_type',
+ choices: dehumidifier_type_choices,
+ required: false,
+ display_name: 'Dehumidifier: Type',
+ description: 'The type of dehumidifier. If not provided, defaults to none.'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'dehumidifier_efficiency_type',
+ choices: dehumidifier_efficiency_type_choices,
+ required: false,
+ display_name: 'Dehumidifier: Efficiency Type',
+ description: 'The efficiency type of dehumidifier.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'dehumidifier_efficiency',
+ required: false,
+ display_name: 'Dehumidifier: Efficiency',
+ units: 'liters/kWh',
+ description: 'The efficiency of the dehumidifier.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'dehumidifier_capacity',
+ required: false,
+ display_name: 'Dehumidifier: Capacity',
+ description: 'The capacity (water removal rate} of the dehumidifier.',
+ units: 'pint/day'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'dehumidifier_rh_setpoint',
+ required: false,
+ display_name: 'Dehumidifier: Relative Humidity Setpoint',
+ description: 'The relative humidity setpoint of the dehumidifier.',
+ units: 'Frac'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'dehumidifier_fraction_dehumidification_load_served',
+ required: false,
+ display_name: 'Dehumidifier: Fraction Dehumidification Load Served',
+ description: 'The dehumidification load served fraction of the dehumidifier.',
+ units: 'Frac'
+ }
appliance_location_choices = OpenStudio::StringVector.new
appliance_location_choices << HPXML::LocationConditionedSpace
@@ -2837,80 +4049,129 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
clothes_washer_efficiency_type_choices << 'ModifiedEnergyFactor'
clothes_washer_efficiency_type_choices << 'IntegratedModifiedEnergyFactor'
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('clothes_washer_present', true)
- arg.setDisplayName('Clothes Washer: Present')
- arg.setDescription('Whether there is a clothes washer present.')
- arg.setDefaultValue(true)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('clothes_washer_location', appliance_location_choices, false)
- arg.setDisplayName('Clothes Washer: Location')
- arg.setDescription("The space type for the clothes washer location. If not provided, the OS-HPXML default (see HPXML Clothes Washer) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('clothes_washer_efficiency_type', clothes_washer_efficiency_type_choices, true)
- arg.setDisplayName('Clothes Washer: Efficiency Type')
- arg.setDescription('The efficiency type of the clothes washer.')
- arg.setDefaultValue('IntegratedModifiedEnergyFactor')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('clothes_washer_efficiency', false)
- arg.setDisplayName('Clothes Washer: Efficiency')
- arg.setUnits('ft^3/kWh-cyc')
- arg.setDescription("The efficiency of the clothes washer. If not provided, the OS-HPXML default (see HPXML Clothes Washer) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('clothes_washer_rated_annual_kwh', false)
- arg.setDisplayName('Clothes Washer: Rated Annual Consumption')
- arg.setUnits('kWh/yr')
- arg.setDescription("The annual energy consumed by the clothes washer, as rated, obtained from the EnergyGuide label. This includes both the appliance electricity consumption and the energy required for water heating. If not provided, the OS-HPXML default (see HPXML Clothes Washer) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('clothes_washer_label_electric_rate', false)
- arg.setDisplayName('Clothes Washer: Label Electric Rate')
- arg.setUnits('$/kWh')
- arg.setDescription("The annual energy consumed by the clothes washer, as rated, obtained from the EnergyGuide label. This includes both the appliance electricity consumption and the energy required for water heating. If not provided, the OS-HPXML default (see HPXML Clothes Washer) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('clothes_washer_label_gas_rate', false)
- arg.setDisplayName('Clothes Washer: Label Gas Rate')
- arg.setUnits('$/therm')
- arg.setDescription("The annual energy consumed by the clothes washer, as rated, obtained from the EnergyGuide label. This includes both the appliance electricity consumption and the energy required for water heating. If not provided, the OS-HPXML default (see HPXML Clothes Washer) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('clothes_washer_label_annual_gas_cost', false)
- arg.setDisplayName('Clothes Washer: Label Annual Cost with Gas DHW')
- arg.setUnits('$')
- arg.setDescription("The annual cost of using the system under test conditions. Input is obtained from the EnergyGuide label. If not provided, the OS-HPXML default (see HPXML Clothes Washer) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('clothes_washer_label_usage', false)
- arg.setDisplayName('Clothes Washer: Label Usage')
- arg.setUnits('cyc/wk')
- arg.setDescription("The clothes washer loads per week. If not provided, the OS-HPXML default (see HPXML Clothes Washer) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('clothes_washer_capacity', false)
- arg.setDisplayName('Clothes Washer: Drum Volume')
- arg.setUnits('ft^3')
- arg.setDescription("Volume of the washer drum. Obtained from the EnergyStar website or the manufacturer's literature. If not provided, the OS-HPXML default (see HPXML Clothes Washer) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('clothes_washer_usage_multiplier', false)
- arg.setDisplayName('Clothes Washer: Usage Multiplier')
- arg.setDescription("Multiplier on the clothes washer energy and hot water usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Clothes Washer) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('clothes_dryer_present', true)
- arg.setDisplayName('Clothes Dryer: Present')
- arg.setDescription('Whether there is a clothes dryer present.')
- arg.setDefaultValue(true)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('clothes_dryer_location', appliance_location_choices, false)
- arg.setDisplayName('Clothes Dryer: Location')
- arg.setDescription("The space type for the clothes dryer location. If not provided, the OS-HPXML default (see HPXML Clothes Dryer) is used.")
- args << arg
+ args << {
+ name: 'clothes_washer_present',
+ type: Argument::Boolean,
+ required: true,
+ display_name: 'Clothes Washer: Present',
+ description: 'Whether there is a clothes washer present.'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'clothes_washer_location',
+ choices: appliance_location_choices,
+ required: false,
+ display_name: 'Clothes Washer: Location',
+ description: 'The space type for the clothes washer location.',
+ default_href: "HPXML Clothes Washer"
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'clothes_washer_efficiency_type',
+ choices: clothes_washer_efficiency_type_choices,
+ required: false,
+ display_name: 'Clothes Washer: Efficiency Type',
+ description: 'The efficiency type of the clothes washer.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'clothes_washer_efficiency',
+ required: false,
+ display_name: 'Clothes Washer: Efficiency',
+ units: 'ft^3/kWh-cyc',
+ description: 'The efficiency of the clothes washer.',
+ default_href: "HPXML Clothes Washer"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'clothes_washer_rated_annual_kwh',
+ required: false,
+ display_name: 'Clothes Washer: Rated Annual Consumption',
+ units: 'kWh/yr',
+ description: 'The annual energy consumed by the clothes washer, as rated, obtained from the EnergyGuide label. This includes both the appliance electricity consumption and the energy required for water heating.',
+ default_href: "HPXML Clothes Washer"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'clothes_washer_label_electric_rate',
+ required: false,
+ display_name: 'Clothes Washer: Label Electric Rate',
+ units: '$/kWh',
+ description: 'The annual energy consumed by the clothes washer, as rated, obtained from the EnergyGuide label. This includes both the appliance electricity consumption and the energy required for water heating.',
+ default_href: "HPXML Clothes Washer"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'clothes_washer_label_gas_rate',
+ required: false,
+ display_name: 'Clothes Washer: Label Gas Rate',
+ units: '$/therm',
+ description: 'The annual energy consumed by the clothes washer, as rated, obtained from the EnergyGuide label. This includes both the appliance electricity consumption and the energy required for water heating.',
+ default_href: "HPXML Clothes Washer"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'clothes_washer_label_annual_gas_cost',
+ required: false,
+ display_name: 'Clothes Washer: Label Annual Cost with Gas DHW',
+ units: '$',
+ description: 'The annual cost of using the system under test conditions. Input is obtained from the EnergyGuide label.',
+ default_href: "HPXML Clothes Washer"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'clothes_washer_label_usage',
+ required: false,
+ display_name: 'Clothes Washer: Label Usage',
+ units: 'cyc/wk',
+ description: 'The clothes washer loads per week.',
+ default_href: "HPXML Clothes Washer"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'clothes_washer_capacity',
+ required: false,
+ display_name: 'Clothes Washer: Drum Volume',
+ units: 'ft^3',
+ description: "Volume of the washer drum. Obtained from the EnergyStar website or the manufacturer's literature.",
+ default_href: "HPXML Clothes Washer"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'clothes_washer_usage_multiplier',
+ required: false,
+ display_name: 'Clothes Washer: Usage Multiplier',
+ description: 'Multiplier on the clothes washer energy and hot water usage that can reflect, e.g., high/low usage occupants.',
+ default_href: "HPXML Clothes Washer"
+ }
+
+ args << {
+ name: 'clothes_dryer_present',
+ type: Argument::Boolean,
+ required: true,
+ display_name: 'Clothes Dryer: Present',
+ description: 'Whether there is a clothes dryer present.'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'clothes_dryer_location',
+ choices: appliance_location_choices,
+ required: false,
+ display_name: 'Clothes Dryer: Location',
+ description: 'The space type for the clothes dryer location.',
+ default_href: "HPXML Clothes Dryer"
+ }
clothes_dryer_fuel_choices = OpenStudio::StringVector.new
clothes_dryer_fuel_choices << HPXML::FuelTypeElectricity
@@ -2924,162 +4185,263 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
clothes_dryer_efficiency_type_choices << 'EnergyFactor'
clothes_dryer_efficiency_type_choices << 'CombinedEnergyFactor'
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('clothes_dryer_fuel_type', clothes_dryer_fuel_choices, true)
- arg.setDisplayName('Clothes Dryer: Fuel Type')
- arg.setDescription('Type of fuel used by the clothes dryer.')
- arg.setDefaultValue(HPXML::FuelTypeNaturalGas)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('clothes_dryer_efficiency_type', clothes_dryer_efficiency_type_choices, true)
- arg.setDisplayName('Clothes Dryer: Efficiency Type')
- arg.setDescription('The efficiency type of the clothes dryer.')
- arg.setDefaultValue('CombinedEnergyFactor')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('clothes_dryer_efficiency', false)
- arg.setDisplayName('Clothes Dryer: Efficiency')
- arg.setUnits('lb/kWh')
- arg.setDescription("The efficiency of the clothes dryer. If not provided, the OS-HPXML default (see HPXML Clothes Dryer) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('clothes_dryer_vented_flow_rate', false)
- arg.setDisplayName('Clothes Dryer: Vented Flow Rate')
- arg.setDescription("The exhaust flow rate of the vented clothes dryer. If not provided, the OS-HPXML default (see HPXML Clothes Dryer) is used.")
- arg.setUnits('CFM')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('clothes_dryer_usage_multiplier', false)
- arg.setDisplayName('Clothes Dryer: Usage Multiplier')
- arg.setDescription("Multiplier on the clothes dryer energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Clothes Dryer) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('dishwasher_present', true)
- arg.setDisplayName('Dishwasher: Present')
- arg.setDescription('Whether there is a dishwasher present.')
- arg.setDefaultValue(true)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('dishwasher_location', appliance_location_choices, false)
- arg.setDisplayName('Dishwasher: Location')
- arg.setDescription("The space type for the dishwasher location. If not provided, the OS-HPXML default (see HPXML Dishwasher) is used.")
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'clothes_dryer_fuel_type',
+ choices: clothes_dryer_fuel_choices,
+ required: false,
+ display_name: 'Clothes Dryer: Fuel Type',
+ description: 'Type of fuel used by the clothes dryer.'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'clothes_dryer_efficiency_type',
+ choices: clothes_dryer_efficiency_type_choices,
+ required: false,
+ display_name: 'Clothes Dryer: Efficiency Type',
+ description: 'The efficiency type of the clothes dryer.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'clothes_dryer_efficiency',
+ required: false,
+ display_name: 'Clothes Dryer: Efficiency',
+ units: 'lb/kWh',
+ description: 'The efficiency of the clothes dryer.',
+ default_href: "HPXML Clothes Dryer"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'clothes_dryer_vented_flow_rate',
+ required: false,
+ display_name: 'Clothes Dryer: Vented Flow Rate',
+ description: 'The exhaust flow rate of the vented clothes dryer.',
+ default_href: "HPXML Clothes Dryer",
+ units: 'CFM'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'clothes_dryer_usage_multiplier',
+ required: false,
+ display_name: 'Clothes Dryer: Usage Multiplier',
+ description: 'Multiplier on the clothes dryer energy usage that can reflect, e.g., high/low usage occupants.',
+ default_href: "HPXML Clothes Dryer"
+ }
+
+ args << {
+ name: 'dishwasher_present',
+ type: Argument::Boolean,
+ required: true,
+ display_name: 'Dishwasher: Present',
+ description: 'Whether there is a dishwasher present.'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'dishwasher_location',
+ choices: appliance_location_choices,
+ required: false,
+ display_name: 'Dishwasher: Location',
+ description: 'The space type for the dishwasher location.',
+ default_href: "HPXML Dishwasher"
+ }
dishwasher_efficiency_type_choices = OpenStudio::StringVector.new
dishwasher_efficiency_type_choices << 'RatedAnnualkWh'
dishwasher_efficiency_type_choices << 'EnergyFactor'
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('dishwasher_efficiency_type', dishwasher_efficiency_type_choices, true)
- arg.setDisplayName('Dishwasher: Efficiency Type')
- arg.setDescription('The efficiency type of dishwasher.')
- arg.setDefaultValue('RatedAnnualkWh')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('dishwasher_efficiency', false)
- arg.setDisplayName('Dishwasher: Efficiency')
- arg.setUnits('RatedAnnualkWh or EnergyFactor')
- arg.setDescription("The efficiency of the dishwasher. If not provided, the OS-HPXML default (see HPXML Dishwasher) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('dishwasher_label_electric_rate', false)
- arg.setDisplayName('Dishwasher: Label Electric Rate')
- arg.setUnits('$/kWh')
- arg.setDescription("The label electric rate of the dishwasher. If not provided, the OS-HPXML default (see HPXML Dishwasher) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('dishwasher_label_gas_rate', false)
- arg.setDisplayName('Dishwasher: Label Gas Rate')
- arg.setUnits('$/therm')
- arg.setDescription("The label gas rate of the dishwasher. If not provided, the OS-HPXML default (see HPXML Dishwasher) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('dishwasher_label_annual_gas_cost', false)
- arg.setDisplayName('Dishwasher: Label Annual Gas Cost')
- arg.setUnits('$')
- arg.setDescription("The label annual gas cost of the dishwasher. If not provided, the OS-HPXML default (see HPXML Dishwasher) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('dishwasher_label_usage', false)
- arg.setDisplayName('Dishwasher: Label Usage')
- arg.setUnits('cyc/wk')
- arg.setDescription("The dishwasher loads per week. If not provided, the OS-HPXML default (see HPXML Dishwasher) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('dishwasher_place_setting_capacity', false)
- arg.setDisplayName('Dishwasher: Number of Place Settings')
- arg.setUnits('#')
- arg.setDescription("The number of place settings for the unit. Data obtained from manufacturer's literature. If not provided, the OS-HPXML default (see HPXML Dishwasher) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('dishwasher_usage_multiplier', false)
- arg.setDisplayName('Dishwasher: Usage Multiplier')
- arg.setDescription("Multiplier on the dishwasher energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Dishwasher) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('refrigerator_present', true)
- arg.setDisplayName('Refrigerator: Present')
- arg.setDescription('Whether there is a refrigerator present.')
- arg.setDefaultValue(true)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('refrigerator_location', appliance_location_choices, false)
- arg.setDisplayName('Refrigerator: Location')
- arg.setDescription("The space type for the refrigerator location. If not provided, the OS-HPXML default (see HPXML Refrigerators) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('refrigerator_rated_annual_kwh', false)
- arg.setDisplayName('Refrigerator: Rated Annual Consumption')
- arg.setUnits('kWh/yr')
- arg.setDescription("The EnergyGuide rated annual energy consumption for a refrigerator. If not provided, the OS-HPXML default (see HPXML Refrigerators) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('refrigerator_usage_multiplier', false)
- arg.setDisplayName('Refrigerator: Usage Multiplier')
- arg.setDescription("Multiplier on the refrigerator energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Refrigerators) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('extra_refrigerator_present', true)
- arg.setDisplayName('Extra Refrigerator: Present')
- arg.setDescription('Whether there is an extra refrigerator present.')
- arg.setDefaultValue(false)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('extra_refrigerator_location', appliance_location_choices, false)
- arg.setDisplayName('Extra Refrigerator: Location')
- arg.setDescription("The space type for the extra refrigerator location. If not provided, the OS-HPXML default (see HPXML Refrigerators) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('extra_refrigerator_rated_annual_kwh', false)
- arg.setDisplayName('Extra Refrigerator: Rated Annual Consumption')
- arg.setUnits('kWh/yr')
- arg.setDescription("The EnergyGuide rated annual energy consumption for an extra refrigerator. If not provided, the OS-HPXML default (see HPXML Refrigerators) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('extra_refrigerator_usage_multiplier', false)
- arg.setDisplayName('Extra Refrigerator: Usage Multiplier')
- arg.setDescription("Multiplier on the extra refrigerator energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Refrigerators) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('freezer_present', true)
- arg.setDisplayName('Freezer: Present')
- arg.setDescription('Whether there is a freezer present.')
- arg.setDefaultValue(false)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('freezer_location', appliance_location_choices, false)
- arg.setDisplayName('Freezer: Location')
- arg.setDescription("The space type for the freezer location. If not provided, the OS-HPXML default (see HPXML Freezers) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('freezer_rated_annual_kwh', false)
- arg.setDisplayName('Freezer: Rated Annual Consumption')
- arg.setUnits('kWh/yr')
- arg.setDescription("The EnergyGuide rated annual energy consumption for a freezer. If not provided, the OS-HPXML default (see HPXML Freezers) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('freezer_usage_multiplier', false)
- arg.setDisplayName('Freezer: Usage Multiplier')
- arg.setDescription("Multiplier on the freezer energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Freezers) is used.")
- args << arg
+ args << {
+ type: Argument::Choice,
+ name: 'dishwasher_efficiency_type',
+ choices: dishwasher_efficiency_type_choices,
+ required: false,
+ display_name: 'Dishwasher: Efficiency Type',
+ description: 'The efficiency type of dishwasher.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'dishwasher_efficiency',
+ required: false,
+ display_name: 'Dishwasher: Efficiency',
+ units: 'RatedAnnualkWh or EnergyFactor',
+ description: 'The efficiency of the dishwasher.',
+ default_href: "HPXML Dishwasher"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'dishwasher_label_electric_rate',
+ required: false,
+ display_name: 'Dishwasher: Label Electric Rate',
+ units: '$/kWh',
+ description: 'The label electric rate of the dishwasher.',
+ default_href: "HPXML Dishwasher"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'dishwasher_label_gas_rate',
+ required: false,
+ display_name: 'Dishwasher: Label Gas Rate',
+ units: '$/therm',
+ description: 'The label gas rate of the dishwasher.',
+ default_href: "HPXML Dishwasher"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'dishwasher_label_annual_gas_cost',
+ required: false,
+ display_name: 'Dishwasher: Label Annual Gas Cost',
+ units: '$',
+ description: 'The label annual gas cost of the dishwasher.',
+ default_href: "HPXML Dishwasher"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'dishwasher_label_usage',
+ required: false,
+ display_name: 'Dishwasher: Label Usage',
+ units: 'cyc/wk',
+ description: 'The dishwasher loads per week.',
+ default_href: "HPXML Dishwasher"
+ }
+
+ args << {
+ type: Argument::Integer,
+ name: 'dishwasher_place_setting_capacity',
+ required: false,
+ display_name: 'Dishwasher: Number of Place Settings',
+ units: '#',
+ description: "The number of place settings for the unit. Data obtained from manufacturer's literature.",
+ default_href: "HPXML Dishwasher"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'dishwasher_usage_multiplier',
+ required: false,
+ display_name: 'Dishwasher: Usage Multiplier',
+ description: 'Multiplier on the dishwasher energy usage that can reflect, e.g., high/low usage occupants.',
+ default_href: "HPXML Dishwasher"
+ }
+
+ args << {
+ name: 'refrigerator_present',
+ type: Argument::Boolean,
+ required: true,
+ display_name: 'Refrigerator: Present',
+ description: 'Whether there is a refrigerator present.'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'refrigerator_location',
+ choices: appliance_location_choices,
+ required: false,
+ display_name: 'Refrigerator: Location',
+ description: 'The space type for the refrigerator location.',
+ default_href: "HPXML Refrigerators"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'refrigerator_rated_annual_kwh',
+ required: false,
+ display_name: 'Refrigerator: Rated Annual Consumption',
+ units: 'kWh/yr',
+ description: 'The EnergyGuide rated annual energy consumption for a refrigerator.',
+ default_href: "HPXML Refrigerators"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'refrigerator_usage_multiplier',
+ required: false,
+ display_name: 'Refrigerator: Usage Multiplier',
+ description: 'Multiplier on the refrigerator energy usage that can reflect, e.g., high/low usage occupants.',
+ default_href: "HPXML Refrigerators"
+ }
+
+ args << {
+ name: 'extra_refrigerator_present',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Extra Refrigerator: Present',
+ description: 'Whether there is an extra refrigerator present. If not provided, defaults to false.'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'extra_refrigerator_location',
+ choices: appliance_location_choices,
+ required: false,
+ display_name: 'Extra Refrigerator: Location',
+ description: 'The space type for the extra refrigerator location.',
+ default_href: "HPXML Refrigerators"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'extra_refrigerator_rated_annual_kwh',
+ required: false,
+ display_name: 'Extra Refrigerator: Rated Annual Consumption',
+ units: 'kWh/yr',
+ description: 'The EnergyGuide rated annual energy consumption for an extra refrigerator.',
+ default_href: "HPXML Refrigerators"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'extra_refrigerator_usage_multiplier',
+ required: false,
+ display_name: 'Extra Refrigerator: Usage Multiplier',
+ description: 'Multiplier on the extra refrigerator energy usage that can reflect, e.g., high/low usage occupants.',
+ default_href: "HPXML Refrigerators"
+ }
+
+ args << {
+ name: 'freezer_present',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Freezer: Present',
+ description: 'Whether there is a freezer present. If not provided, defaults to false.'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'freezer_location',
+ choices: appliance_location_choices,
+ required: false,
+ display_name: 'Freezer: Location',
+ description: 'The space type for the freezer location.',
+ default_href: "HPXML Freezers"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'freezer_rated_annual_kwh',
+ required: false,
+ display_name: 'Freezer: Rated Annual Consumption',
+ units: 'kWh/yr',
+ description: 'The EnergyGuide rated annual energy consumption for a freezer.',
+ default_href: "HPXML Freezers"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'freezer_usage_multiplier',
+ required: false,
+ display_name: 'Freezer: Usage Multiplier',
+ description: 'Multiplier on the freezer energy usage that can reflect, e.g., high/low usage occupants.',
+ default_href: "HPXML Freezers"
+ }
cooking_range_oven_fuel_choices = OpenStudio::StringVector.new
cooking_range_oven_fuel_choices << HPXML::FuelTypeElectricity
@@ -3089,141 +4451,227 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
cooking_range_oven_fuel_choices << HPXML::FuelTypeWoodCord
cooking_range_oven_fuel_choices << HPXML::FuelTypeCoal
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('cooking_range_oven_present', true)
- arg.setDisplayName('Cooking Range/Oven: Present')
- arg.setDescription('Whether there is a cooking range/oven present.')
- arg.setDefaultValue(true)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('cooking_range_oven_location', appliance_location_choices, false)
- arg.setDisplayName('Cooking Range/Oven: Location')
- arg.setDescription("The space type for the cooking range/oven location. If not provided, the OS-HPXML default (see HPXML Cooking Range/Oven) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('cooking_range_oven_fuel_type', cooking_range_oven_fuel_choices, true)
- arg.setDisplayName('Cooking Range/Oven: Fuel Type')
- arg.setDescription('Type of fuel used by the cooking range/oven.')
- arg.setDefaultValue(HPXML::FuelTypeNaturalGas)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('cooking_range_oven_is_induction', false)
- arg.setDisplayName('Cooking Range/Oven: Is Induction')
- arg.setDescription("Whether the cooking range is induction. If not provided, the OS-HPXML default (see HPXML Cooking Range/Oven) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('cooking_range_oven_is_convection', false)
- arg.setDisplayName('Cooking Range/Oven: Is Convection')
- arg.setDescription("Whether the oven is convection. If not provided, the OS-HPXML default (see HPXML Cooking Range/Oven) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('cooking_range_oven_usage_multiplier', false)
- arg.setDisplayName('Cooking Range/Oven: Usage Multiplier')
- arg.setDescription("Multiplier on the cooking range/oven energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Cooking Range/Oven) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('ceiling_fan_present', true)
- arg.setDisplayName('Ceiling Fan: Present')
- arg.setDescription('Whether there are any ceiling fans.')
- arg.setDefaultValue(true)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('ceiling_fan_label_energy_use', false)
- arg.setDisplayName('Ceiling Fan: Label Energy Use')
- arg.setUnits('W')
- arg.setDescription("The label average energy use of the ceiling fan(s). If neither Efficiency nor Label Energy Use provided, the OS-HPXML default (see HPXML Ceiling Fans) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('ceiling_fan_efficiency', false)
- arg.setDisplayName('Ceiling Fan: Efficiency')
- arg.setUnits('CFM/W')
- arg.setDescription("The efficiency rating of the ceiling fan(s) at medium speed. Only used if Label Energy Use not provided. If neither Efficiency nor Label Energy Use provided, the OS-HPXML default (see HPXML Ceiling Fans) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('ceiling_fan_quantity', false)
- arg.setDisplayName('Ceiling Fan: Quantity')
- arg.setUnits('#')
- arg.setDescription("Total number of ceiling fans. If not provided, the OS-HPXML default (see HPXML Ceiling Fans) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('ceiling_fan_cooling_setpoint_temp_offset', false)
- arg.setDisplayName('Ceiling Fan: Cooling Setpoint Temperature Offset')
- arg.setUnits('F')
- arg.setDescription("The cooling setpoint temperature offset during months when the ceiling fans are operating. Only applies if ceiling fan quantity is greater than zero. If not provided, the OS-HPXML default (see HPXML Ceiling Fans) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('misc_plug_loads_television_present', true)
- arg.setDisplayName('Misc Plug Loads: Television Present')
- arg.setDescription('Whether there are televisions.')
- arg.setDefaultValue(true)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('misc_plug_loads_television_annual_kwh', false)
- arg.setDisplayName('Misc Plug Loads: Television Annual kWh')
- arg.setDescription("The annual energy consumption of the television plug loads. If not provided, the OS-HPXML default (see HPXML Plug Loads) is used.")
- arg.setUnits('kWh/yr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('misc_plug_loads_television_usage_multiplier', false)
- arg.setDisplayName('Misc Plug Loads: Television Usage Multiplier')
- arg.setDescription("Multiplier on the television energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Plug Loads) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('misc_plug_loads_other_annual_kwh', false)
- arg.setDisplayName('Misc Plug Loads: Other Annual kWh')
- arg.setDescription("The annual energy consumption of the other residual plug loads. If not provided, the OS-HPXML default (see HPXML Plug Loads) is used.")
- arg.setUnits('kWh/yr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('misc_plug_loads_other_frac_sensible', false)
- arg.setDisplayName('Misc Plug Loads: Other Sensible Fraction')
- arg.setDescription("Fraction of other residual plug loads' internal gains that are sensible. If not provided, the OS-HPXML default (see HPXML Plug Loads) is used.")
- arg.setUnits('Frac')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('misc_plug_loads_other_frac_latent', false)
- arg.setDisplayName('Misc Plug Loads: Other Latent Fraction')
- arg.setDescription("Fraction of other residual plug loads' internal gains that are latent. If not provided, the OS-HPXML default (see HPXML Plug Loads) is used.")
- arg.setUnits('Frac')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('misc_plug_loads_other_usage_multiplier', false)
- arg.setDisplayName('Misc Plug Loads: Other Usage Multiplier')
- arg.setDescription("Multiplier on the other energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Plug Loads) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('misc_plug_loads_well_pump_present', true)
- arg.setDisplayName('Misc Plug Loads: Well Pump Present')
- arg.setDescription('Whether there is a well pump.')
- arg.setDefaultValue(false)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('misc_plug_loads_well_pump_annual_kwh', false)
- arg.setDisplayName('Misc Plug Loads: Well Pump Annual kWh')
- arg.setDescription("The annual energy consumption of the well pump plug loads. If not provided, the OS-HPXML default (see HPXML Plug Loads) is used.")
- arg.setUnits('kWh/yr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('misc_plug_loads_well_pump_usage_multiplier', false)
- arg.setDisplayName('Misc Plug Loads: Well Pump Usage Multiplier')
- arg.setDescription("Multiplier on the well pump energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Plug Loads) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('misc_plug_loads_vehicle_present', true)
- arg.setDisplayName('Misc Plug Loads: Vehicle Present')
- arg.setDescription('Whether there is an electric vehicle.')
- arg.setDefaultValue(false)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('misc_plug_loads_vehicle_annual_kwh', false)
- arg.setDisplayName('Misc Plug Loads: Vehicle Annual kWh')
- arg.setDescription("The annual energy consumption of the electric vehicle plug loads. If not provided, the OS-HPXML default (see HPXML Plug Loads) is used.")
- arg.setUnits('kWh/yr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('misc_plug_loads_vehicle_usage_multiplier', false)
- arg.setDisplayName('Misc Plug Loads: Vehicle Usage Multiplier')
- arg.setDescription("Multiplier on the electric vehicle energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Plug Loads) is used.")
- args << arg
+ args << {
+ name: 'cooking_range_oven_present',
+ type: Argument::Boolean,
+ required: true,
+ display_name: 'Cooking Range/Oven: Present',
+ description: 'Whether there is a cooking range/oven present.'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'cooking_range_oven_location',
+ choices: appliance_location_choices,
+ required: false,
+ display_name: 'Cooking Range/Oven: Location',
+ description: 'The space type for the cooking range/oven location.',
+ default_href: "HPXML Cooking Range/Oven"
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'cooking_range_oven_fuel_type',
+ choices: cooking_range_oven_fuel_choices,
+ required: false,
+ display_name: 'Cooking Range/Oven: Fuel Type',
+ description: 'Type of fuel used by the cooking range/oven.'
+ }
+
+ args << {
+ name: 'cooking_range_oven_is_induction',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Cooking Range/Oven: Is Induction',
+ description: 'Whether the cooking range is induction.',
+ default_href: "HPXML Cooking Range/Oven"
+ }
+
+ args << {
+ name: 'cooking_range_oven_is_convection',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Cooking Range/Oven: Is Convection',
+ description: 'Whether the oven is convection.',
+ default_href: "HPXML Cooking Range/Oven"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'cooking_range_oven_usage_multiplier',
+ required: false,
+ display_name: 'Cooking Range/Oven: Usage Multiplier',
+ description: 'Multiplier on the cooking range/oven energy usage that can reflect, e.g., high/low usage occupants.',
+ default_href: "HPXML Cooking Range/Oven"
+ }
+
+ args << {
+ name: 'ceiling_fan_present',
+ type: Argument::Boolean,
+ required: true,
+ display_name: 'Ceiling Fan: Present',
+ description: 'Whether there are any ceiling fans.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'ceiling_fan_label_energy_use',
+ required: false,
+ display_name: 'Ceiling Fan: Label Energy Use',
+ units: 'W',
+ description: 'The label average energy use of the ceiling fan(s}.',
+ default_href: "HPXML Ceiling Fans"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'ceiling_fan_efficiency',
+ required: false,
+ display_name: 'Ceiling Fan: Efficiency',
+ units: 'CFM/W',
+ description: 'The efficiency rating of the ceiling fan(s} at medium speed. Only used if Label Energy Use not provided.',
+ default_href: "HPXML Ceiling Fans"
+ }
+
+ args << {
+ type: Argument::Integer,
+ name: 'ceiling_fan_quantity',
+ required: false,
+ display_name: 'Ceiling Fan: Quantity',
+ units: '#',
+ description: 'Total number of ceiling fans.',
+ default_href: "HPXML Ceiling Fans"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'ceiling_fan_cooling_setpoint_temp_offset',
+ required: false,
+ display_name: 'Ceiling Fan: Cooling Setpoint Temperature Offset',
+ units: 'F',
+ description: 'The cooling setpoint temperature offset during months when the ceiling fans are operating. Only applies if ceiling fan quantity is greater than zero.',
+ default_href: "HPXML Ceiling Fans"
+ }
+
+ args << {
+ name: 'misc_plug_loads_television_present',
+ type: Argument::Boolean,
+ required: true,
+ display_name: 'Misc Plug Loads: Television Present',
+ description: 'Whether there are televisions.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'misc_plug_loads_television_annual_kwh',
+ required: false,
+ display_name: 'Misc Plug Loads: Television Annual kWh',
+ description: 'The annual energy consumption of the television plug loads.',
+ default_href: "HPXML Plug Loads",
+ units: 'kWh/yr'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'misc_plug_loads_television_usage_multiplier',
+ required: false,
+ display_name: 'Misc Plug Loads: Television Usage Multiplier',
+ description: 'Multiplier on the television energy usage that can reflect, e.g., high/low usage occupants.',
+ default_href: "HPXML Plug Loads"
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'misc_plug_loads_other_annual_kwh',
+ required: false,
+ display_name: 'Misc Plug Loads: Other Annual kWh',
+ description: 'The annual energy consumption of the other residual plug loads.',
+ default_href: "HPXML Plug Loads",
+ units: 'kWh/yr'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'misc_plug_loads_other_frac_sensible',
+ required: false,
+ display_name: 'Misc Plug Loads: Other Sensible Fraction',
+ description: "Fraction of other residual plug loads' internal gains that are sensible.",
+ default_href: "HPXML Plug Loads",
+ units: 'Frac'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'misc_plug_loads_other_frac_latent',
+ required: false,
+ display_name: 'Misc Plug Loads: Other Latent Fraction',
+ description: "Fraction of other residual plug loads' internal gains that are latent.",
+ default_href: "HPXML Plug Loads",
+ units: 'Frac'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'misc_plug_loads_other_usage_multiplier',
+ required: false,
+ display_name: 'Misc Plug Loads: Other Usage Multiplier',
+ description: 'Multiplier on the other energy usage that can reflect, e.g., high/low usage occupants.',
+ default_href: "HPXML Plug Loads"
+ }
+
+ args << {
+ name: 'misc_plug_loads_well_pump_present',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Misc Plug Loads: Well Pump Present',
+ description: 'Whether there is a well pump. If not provided, defaults to false.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'misc_plug_loads_well_pump_annual_kwh',
+ required: false,
+ display_name: 'Misc Plug Loads: Well Pump Annual kWh',
+ description: 'The annual energy consumption of the well pump plug loads.',
+ default_href: "HPXML Plug Loads",
+ units: 'kWh/yr'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'misc_plug_loads_well_pump_usage_multiplier',
+ required: false,
+ display_name: 'Misc Plug Loads: Well Pump Usage Multiplier',
+ description: 'Multiplier on the well pump energy usage that can reflect, e.g., high/low usage occupants.',
+ default_href: "HPXML Plug Loads"
+ }
+
+ args << {
+ name: 'misc_plug_loads_vehicle_present',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Misc Plug Loads: Vehicle Present',
+ description: 'Whether there is an electric vehicle. If not provided, defaults to false.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'misc_plug_loads_vehicle_annual_kwh',
+ required: false,
+ display_name: 'Misc Plug Loads: Vehicle Annual kWh',
+ description: 'The annual energy consumption of the electric vehicle plug loads.',
+ default_href: "HPXML Plug Loads",
+ units: 'kWh/yr'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'misc_plug_loads_vehicle_usage_multiplier',
+ required: false,
+ display_name: 'Misc Plug Loads: Vehicle Usage Multiplier',
+ description: 'Multiplier on the electric vehicle energy usage that can reflect, e.g., high/low usage occupants.',
+ default_href: "HPXML Plug Loads"
+ }
misc_fuel_loads_fuel_choices = OpenStudio::StringVector.new
misc_fuel_loads_fuel_choices << HPXML::FuelTypeNaturalGas
@@ -3232,86 +4680,133 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
misc_fuel_loads_fuel_choices << HPXML::FuelTypeWoodCord
misc_fuel_loads_fuel_choices << HPXML::FuelTypeWoodPellets
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('misc_fuel_loads_grill_present', true)
- arg.setDisplayName('Misc Fuel Loads: Grill Present')
- arg.setDescription('Whether there is a fuel loads grill.')
- arg.setDefaultValue(false)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('misc_fuel_loads_grill_fuel_type', misc_fuel_loads_fuel_choices, true)
- arg.setDisplayName('Misc Fuel Loads: Grill Fuel Type')
- arg.setDescription('The fuel type of the fuel loads grill.')
- arg.setDefaultValue(HPXML::FuelTypeNaturalGas)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('misc_fuel_loads_grill_annual_therm', false)
- arg.setDisplayName('Misc Fuel Loads: Grill Annual therm')
- arg.setDescription("The annual energy consumption of the fuel loads grill. If not provided, the OS-HPXML default (see HPXML Fuel Loads) is used.")
- arg.setUnits('therm/yr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('misc_fuel_loads_grill_usage_multiplier', false)
- arg.setDisplayName('Misc Fuel Loads: Grill Usage Multiplier')
- arg.setDescription("Multiplier on the fuel loads grill energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Fuel Loads) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('misc_fuel_loads_lighting_present', true)
- arg.setDisplayName('Misc Fuel Loads: Lighting Present')
- arg.setDescription('Whether there is fuel loads lighting.')
- arg.setDefaultValue(false)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('misc_fuel_loads_lighting_fuel_type', misc_fuel_loads_fuel_choices, true)
- arg.setDisplayName('Misc Fuel Loads: Lighting Fuel Type')
- arg.setDescription('The fuel type of the fuel loads lighting.')
- arg.setDefaultValue(HPXML::FuelTypeNaturalGas)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('misc_fuel_loads_lighting_annual_therm', false)
- arg.setDisplayName('Misc Fuel Loads: Lighting Annual therm')
- arg.setDescription("The annual energy consumption of the fuel loads lighting. If not provided, the OS-HPXML default (see HPXML Fuel Loads)is used.")
- arg.setUnits('therm/yr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('misc_fuel_loads_lighting_usage_multiplier', false)
- arg.setDisplayName('Misc Fuel Loads: Lighting Usage Multiplier')
- arg.setDescription("Multiplier on the fuel loads lighting energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Fuel Loads) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('misc_fuel_loads_fireplace_present', true)
- arg.setDisplayName('Misc Fuel Loads: Fireplace Present')
- arg.setDescription('Whether there is fuel loads fireplace.')
- arg.setDefaultValue(false)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('misc_fuel_loads_fireplace_fuel_type', misc_fuel_loads_fuel_choices, true)
- arg.setDisplayName('Misc Fuel Loads: Fireplace Fuel Type')
- arg.setDescription('The fuel type of the fuel loads fireplace.')
- arg.setDefaultValue(HPXML::FuelTypeNaturalGas)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('misc_fuel_loads_fireplace_annual_therm', false)
- arg.setDisplayName('Misc Fuel Loads: Fireplace Annual therm')
- arg.setDescription("The annual energy consumption of the fuel loads fireplace. If not provided, the OS-HPXML default (see HPXML Fuel Loads) is used.")
- arg.setUnits('therm/yr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('misc_fuel_loads_fireplace_frac_sensible', false)
- arg.setDisplayName('Misc Fuel Loads: Fireplace Sensible Fraction')
- arg.setDescription("Fraction of fireplace residual fuel loads' internal gains that are sensible. If not provided, the OS-HPXML default (see HPXML Fuel Loads) is used.")
- arg.setUnits('Frac')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('misc_fuel_loads_fireplace_frac_latent', false)
- arg.setDisplayName('Misc Fuel Loads: Fireplace Latent Fraction')
- arg.setDescription("Fraction of fireplace residual fuel loads' internal gains that are latent. If not provided, the OS-HPXML default (see HPXML Fuel Loads) is used.")
- arg.setUnits('Frac')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('misc_fuel_loads_fireplace_usage_multiplier', false)
- arg.setDisplayName('Misc Fuel Loads: Fireplace Usage Multiplier')
- arg.setDescription("Multiplier on the fuel loads fireplace energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see HPXML Fuel Loads) is used.")
- args << arg
+ args << {
+ name: 'misc_fuel_loads_grill_present',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Misc Fuel Loads: Grill Present',
+ description: 'Whether there is a fuel loads grill. If not provided, defaults to false.'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'misc_fuel_loads_grill_fuel_type',
+ choices: misc_fuel_loads_fuel_choices,
+ required: false,
+ display_name: 'Misc Fuel Loads: Grill Fuel Type',
+ description: 'The fuel type of the fuel loads grill. If not provided, defaults to natural gas.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'misc_fuel_loads_grill_annual_therm',
+ required: false,
+ display_name: 'Misc Fuel Loads: Grill Annual therm',
+ description: 'The annual energy consumption of the fuel loads grill.',
+ default_href: "HPXML Fuel Loads",
+ units: 'therm/yr'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'misc_fuel_loads_grill_usage_multiplier',
+ required: false,
+ display_name: 'Misc Fuel Loads: Grill Usage Multiplier',
+ description: 'Multiplier on the fuel loads grill energy usage that can reflect, e.g., high/low usage occupants.',
+ default_href: "HPXML Fuel Loads"
+ }
+
+ args << {
+ name: 'misc_fuel_loads_lighting_present',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Misc Fuel Loads: Lighting Present',
+ description: 'Whether there is fuel loads lighting. If not provided, defaults to false.'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'misc_fuel_loads_lighting_fuel_type',
+ choices: misc_fuel_loads_fuel_choices,
+ required: false,
+ display_name: 'Misc Fuel Loads: Lighting Fuel Type',
+ description: 'The fuel type of the fuel loads lighting. If not provided, defaults to natural gas.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'misc_fuel_loads_lighting_annual_therm',
+ required: false,
+ display_name: 'Misc Fuel Loads: Lighting Annual therm',
+ description: 'The annual energy consumption of the fuel loads lighting.',
+ default_href: "HPXML Fuel Loads",
+ units: 'therm/yr'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'misc_fuel_loads_lighting_usage_multiplier',
+ required: false,
+ display_name: 'Misc Fuel Loads: Lighting Usage Multiplier',
+ description: 'Multiplier on the fuel loads lighting energy usage that can reflect, e.g., high/low usage occupants.',
+ default_href: "HPXML Fuel Loads"
+ }
+
+ args << {
+ name: 'misc_fuel_loads_fireplace_present',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Misc Fuel Loads: Fireplace Present',
+ description: 'Whether there is fuel loads fireplace. If not provided, defaults to false.'
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'misc_fuel_loads_fireplace_fuel_type',
+ choices: misc_fuel_loads_fuel_choices,
+ required: false,
+ display_name: 'Misc Fuel Loads: Fireplace Fuel Type',
+ description: 'The fuel type of the fuel loads fireplace. If not provided, defaults to natural gas.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'misc_fuel_loads_fireplace_annual_therm',
+ required: false,
+ display_name: 'Misc Fuel Loads: Fireplace Annual therm',
+ description: 'The annual energy consumption of the fuel loads fireplace.',
+ default_href: "HPXML Fuel Loads",
+ units: 'therm/yr'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'misc_fuel_loads_fireplace_frac_sensible',
+ required: false,
+ display_name: 'Misc Fuel Loads: Fireplace Sensible Fraction',
+ description: "Fraction of fireplace residual fuel loads' internal gains that are sensible.",
+ default_href: "HPXML Fuel Loads",
+ units: 'Frac'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'misc_fuel_loads_fireplace_frac_latent',
+ required: false,
+ display_name: 'Misc Fuel Loads: Fireplace Latent Fraction',
+ description: "Fraction of fireplace residual fuel loads' internal gains that are latent.",
+ default_href: "HPXML Fuel Loads",
+ units: 'Frac'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'misc_fuel_loads_fireplace_usage_multiplier',
+ required: false,
+ display_name: 'Misc Fuel Loads: Fireplace Usage Multiplier',
+ description: 'Multiplier on the fuel loads fireplace energy usage that can reflect, e.g., high/low usage occupants.',
+ default_href: "HPXML Fuel Loads"
+ }
heater_type_choices = OpenStudio::StringVector.new
heater_type_choices << HPXML::TypeNone
@@ -3319,151 +4814,235 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
heater_type_choices << HPXML::HeaterTypeGas
heater_type_choices << HPXML::HeaterTypeHeatPump
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('pool_present', true)
- arg.setDisplayName('Pool: Present')
- arg.setDescription('Whether there is a pool.')
- arg.setDefaultValue(false)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('pool_pump_annual_kwh', false)
- arg.setDisplayName('Pool: Pump Annual kWh')
- arg.setDescription("The annual energy consumption of the pool pump. If not provided, the OS-HPXML default (see Pool Pump) is used.")
- arg.setUnits('kWh/yr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('pool_pump_usage_multiplier', false)
- arg.setDisplayName('Pool: Pump Usage Multiplier')
- arg.setDescription("Multiplier on the pool pump energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see Pool Pump) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('pool_heater_type', heater_type_choices, true)
- arg.setDisplayName('Pool: Heater Type')
- arg.setDescription("The type of pool heater. Use '#{HPXML::TypeNone}' if there is no pool heater.")
- arg.setDefaultValue(HPXML::TypeNone)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('pool_heater_annual_kwh', false)
- arg.setDisplayName('Pool: Heater Annual kWh')
- arg.setDescription("The annual energy consumption of the #{HPXML::HeaterTypeElectricResistance} pool heater. If not provided, the OS-HPXML default (see Pool Heater) is used.")
- arg.setUnits('kWh/yr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('pool_heater_annual_therm', false)
- arg.setDisplayName('Pool: Heater Annual therm')
- arg.setDescription("The annual energy consumption of the #{HPXML::HeaterTypeGas} pool heater. If not provided, the OS-HPXML default (see Pool Heater) is used.")
- arg.setUnits('therm/yr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('pool_heater_usage_multiplier', false)
- arg.setDisplayName('Pool: Heater Usage Multiplier')
- arg.setDescription("Multiplier on the pool heater energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see Pool Heater) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('permanent_spa_present', true)
- arg.setDisplayName('Permanent Spa: Present')
- arg.setDescription('Whether there is a permanent spa.')
- arg.setDefaultValue(false)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('permanent_spa_pump_annual_kwh', false)
- arg.setDisplayName('Permanent Spa: Pump Annual kWh')
- arg.setDescription("The annual energy consumption of the permanent spa pump. If not provided, the OS-HPXML default (see Permanent Spa Pump) is used.")
- arg.setUnits('kWh/yr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('permanent_spa_pump_usage_multiplier', false)
- arg.setDisplayName('Permanent Spa: Pump Usage Multiplier')
- arg.setDescription("Multiplier on the permanent spa pump energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see Permanent Spa Pump) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('permanent_spa_heater_type', heater_type_choices, true)
- arg.setDisplayName('Permanent Spa: Heater Type')
- arg.setDescription("The type of permanent spa heater. Use '#{HPXML::TypeNone}' if there is no permanent spa heater.")
- arg.setDefaultValue(HPXML::TypeNone)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('permanent_spa_heater_annual_kwh', false)
- arg.setDisplayName('Permanent Spa: Heater Annual kWh')
- arg.setDescription("The annual energy consumption of the #{HPXML::HeaterTypeElectricResistance} permanent spa heater. If not provided, the OS-HPXML default (see Permanent Spa Heater) is used.")
- arg.setUnits('kWh/yr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('permanent_spa_heater_annual_therm', false)
- arg.setDisplayName('Permanent Spa: Heater Annual therm')
- arg.setDescription("The annual energy consumption of the #{HPXML::HeaterTypeGas} permanent spa heater. If not provided, the OS-HPXML default (see Permanent Spa Heater) is used.")
- arg.setUnits('therm/yr')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('permanent_spa_heater_usage_multiplier', false)
- arg.setDisplayName('Permanent Spa: Heater Usage Multiplier')
- arg.setDescription("Multiplier on the permanent spa heater energy usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see Permanent Spa Heater) is used.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('emissions_scenario_names', false)
- arg.setDisplayName('Emissions: Scenario Names')
- arg.setDescription('Names of emissions scenarios. If multiple scenarios, use a comma-separated list. If not provided, no emissions scenarios are calculated.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('emissions_types', false)
- arg.setDisplayName('Emissions: Types')
- arg.setDescription('Types of emissions (e.g., CO2e, NOx, etc.). If multiple scenarios, use a comma-separated list.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('emissions_electricity_units', false)
- arg.setDisplayName('Emissions: Electricity Units')
- arg.setDescription('Electricity emissions factors units. If multiple scenarios, use a comma-separated list. Only lb/MWh and kg/MWh are allowed.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('emissions_electricity_values_or_filepaths', false)
- arg.setDisplayName('Emissions: Electricity Values or File Paths')
- arg.setDescription('Electricity emissions factors values, specified as either an annual factor or an absolute/relative path to a file with hourly factors. If multiple scenarios, use a comma-separated list.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('emissions_electricity_number_of_header_rows', false)
- arg.setDisplayName('Emissions: Electricity Files Number of Header Rows')
- arg.setDescription('The number of header rows in the electricity emissions factor file. Only applies when an electricity filepath is used. If multiple scenarios, use a comma-separated list.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('emissions_electricity_column_numbers', false)
- arg.setDisplayName('Emissions: Electricity Files Column Numbers')
- arg.setDescription('The column number in the electricity emissions factor file. Only applies when an electricity filepath is used. If multiple scenarios, use a comma-separated list.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('emissions_fossil_fuel_units', false)
- arg.setDisplayName('Emissions: Fossil Fuel Units')
- arg.setDescription('Fossil fuel emissions factors units. If multiple scenarios, use a comma-separated list. Only lb/MBtu and kg/MBtu are allowed.')
- args << arg
+ args << {
+ name: 'pool_present',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Pool: Present',
+ description: 'Whether there is a pool. If not provided, defaults to false.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'pool_pump_annual_kwh',
+ required: false,
+ display_name: 'Pool: Pump Annual kWh',
+ description: 'The annual energy consumption of the pool pump.',
+ default_href: "Pool Pump",
+ units: 'kWh/yr'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'pool_pump_usage_multiplier',
+ required: false,
+ display_name: 'Pool: Pump Usage Multiplier',
+ description: 'Multiplier on the pool pump energy usage that can reflect, e.g., high/low usage occupants.',
+ default_href: "Pool Pump"
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'pool_heater_type',
+ choices: heater_type_choices,
+ required: false,
+ display_name: 'Pool: Heater Type',
+ description: "The type of pool heater. Use '#{HPXML::TypeNone}' if there is no pool heater."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'pool_heater_annual_kwh',
+ required: false,
+ display_name: 'Pool: Heater Annual kWh',
+ description: "The annual energy consumption of the #{HPXML::HeaterTypeElectricResistance} pool heater.",
+ default_href: "Pool Heater",
+ units: 'kWh/yr'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'pool_heater_annual_therm',
+ required: false,
+ display_name: 'Pool: Heater Annual therm',
+ description: "The annual energy consumption of the #{HPXML::HeaterTypeGas} pool heater.",
+ default_href: "Pool Heater",
+ units: 'therm/yr'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'pool_heater_usage_multiplier',
+ required: false,
+ display_name: 'Pool: Heater Usage Multiplier',
+ description: 'Multiplier on the pool heater energy usage that can reflect, e.g., high/low usage occupants.',
+ default_href: "Pool Heater"
+ }
+
+ args << {
+ name: 'permanent_spa_present',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Permanent Spa: Present',
+ description: 'Whether there is a permanent spa. If not provided, defaults to false.'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'permanent_spa_pump_annual_kwh',
+ required: false,
+ display_name: 'Permanent Spa: Pump Annual kWh',
+ description: 'The annual energy consumption of the permanent spa pump.',
+ default_href: "Permanent Spa Pump",
+ units: 'kWh/yr'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'permanent_spa_pump_usage_multiplier',
+ required: false,
+ display_name: 'Permanent Spa: Pump Usage Multiplier',
+ description: 'Multiplier on the permanent spa pump energy usage that can reflect, e.g., high/low usage occupants.',
+ default_href: "Permanent Spa Pump"
+ }
+
+ args << {
+ type: Argument::Choice,
+ name: 'permanent_spa_heater_type',
+ choices: heater_type_choices,
+ required: false,
+ display_name: 'Permanent Spa: Heater Type',
+ description: "The type of permanent spa heater. Use '#{HPXML::TypeNone}' if there is no permanent spa heater."
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'permanent_spa_heater_annual_kwh',
+ required: false,
+ display_name: 'Permanent Spa: Heater Annual kWh',
+ description: "The annual energy consumption of the #{HPXML::HeaterTypeElectricResistance} permanent spa heater.",
+ default_href: "Permanent Spa Heater",
+ units: 'kWh/yr'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'permanent_spa_heater_annual_therm',
+ required: false,
+ display_name: 'Permanent Spa: Heater Annual therm',
+ description: "The annual energy consumption of the #{HPXML::HeaterTypeGas} permanent spa heater.",
+ default_href: "Permanent Spa Heater",
+ units: 'therm/yr'
+ }
+
+ args << {
+ type: Argument::Double,
+ name: 'permanent_spa_heater_usage_multiplier',
+ required: false,
+ display_name: 'Permanent Spa: Heater Usage Multiplier',
+ description: 'Multiplier on the permanent spa heater energy usage that can reflect, e.g., high/low usage occupants.',
+ default_href: "Permanent Spa Heater"
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'emissions_scenario_names',
+ required: false,
+ display_name: 'Emissions: Scenario Names',
+ description: 'Names of emissions scenarios. If multiple scenarios, use a comma-separated list. If not provided, no emissions scenarios are calculated.'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'emissions_types',
+ required: false,
+ display_name: 'Emissions: Types',
+ description: 'Types of emissions (e.g., CO2e, NOx, etc.}. If multiple scenarios, use a comma-separated list.'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'emissions_electricity_units',
+ required: false,
+ display_name: 'Emissions: Electricity Units',
+ description: 'Electricity emissions factors units. If multiple scenarios, use a comma-separated list. Only lb/MWh and kg/MWh are allowed.'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'emissions_electricity_values_or_filepaths',
+ required: false,
+ display_name: 'Emissions: Electricity Values or File Paths',
+ description: 'Electricity emissions factors values, specified as either an annual factor or an absolute/relative path to a file with hourly factors. If multiple scenarios, use a comma-separated list.'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'emissions_electricity_number_of_header_rows',
+ required: false,
+ display_name: 'Emissions: Electricity Files Number of Header Rows',
+ description: 'The number of header rows in the electricity emissions factor file. Only applies when an electricity filepath is used. If multiple scenarios, use a comma-separated list.'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'emissions_electricity_column_numbers',
+ required: false,
+ display_name: 'Emissions: Electricity Files Column Numbers',
+ description: 'The column number in the electricity emissions factor file. Only applies when an electricity filepath is used. If multiple scenarios, use a comma-separated list.'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'emissions_fossil_fuel_units',
+ required: false,
+ display_name: 'Emissions: Fossil Fuel Units',
+ description: 'Fossil fuel emissions factors units. If multiple scenarios, use a comma-separated list. Only lb/MBtu and kg/MBtu are allowed.'
+ }
HPXML::fossil_fuels.each do |fossil_fuel|
underscore_case = OpenStudio::toUnderscoreCase(fossil_fuel)
all_caps_case = fossil_fuel.split(' ').map(&:capitalize).join(' ')
cap_case = fossil_fuel.capitalize
- arg = OpenStudio::Measure::OSArgument.makeStringArgument("emissions_#{underscore_case}_values", false)
- arg.setDisplayName("Emissions: #{all_caps_case} Values")
- arg.setDescription("#{cap_case} emissions factors values, specified as an annual factor. If multiple scenarios, use a comma-separated list.")
- args << arg
+ args << {
+ type: Argument::String,
+ name: "emissions_#{underscore_case}_values",
+ required: false,
+ display_name: "Emissions: #{all_caps_case} Values",
+ description: "#{cap_case} emissions factors values, specified as an annual factor. If multiple scenarios, use a comma-separated list."
+ }
end
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('utility_bill_scenario_names', false)
- arg.setDisplayName('Utility Bills: Scenario Names')
- arg.setDescription('Names of utility bill scenarios. If multiple scenarios, use a comma-separated list. If not provided, no utility bills scenarios are calculated.')
- args << arg
+ args << {
+ type: Argument::String,
+ name: 'utility_bill_scenario_names',
+ required: false,
+ display_name: 'Utility Bills: Scenario Names',
+ description: 'Names of utility bill scenarios. If multiple scenarios, use a comma-separated list. If not provided, no utility bills scenarios are calculated.'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'utility_bill_electricity_filepaths',
+ required: false,
+ display_name: 'Utility Bills: Electricity File Paths',
+ description: 'Electricity tariff file specified as an absolute/relative path to a file with utility rate structure information. Tariff file must be formatted to OpenEI API version 7. If multiple scenarios, use a comma-separated list.'
+ }
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('utility_bill_electricity_filepaths', false)
- arg.setDisplayName('Utility Bills: Electricity File Paths')
- arg.setDescription('Electricity tariff file specified as an absolute/relative path to a file with utility rate structure information. Tariff file must be formatted to OpenEI API version 7. If multiple scenarios, use a comma-separated list.')
- args << arg
HPXML::all_fuels.each do |fuel|
underscore_case = OpenStudio::toUnderscoreCase(fuel)
all_caps_case = fuel.split(' ').map(&:capitalize).join(' ')
cap_case = fuel.capitalize
- arg = OpenStudio::Measure::OSArgument.makeStringArgument("utility_bill_#{underscore_case}_fixed_charges", false)
- arg.setDisplayName("Utility Bills: #{all_caps_case} Fixed Charges")
- arg.setDescription("#{cap_case} utility bill monthly fixed charges. If multiple scenarios, use a comma-separated list.")
- args << arg
+ args << {
+ type: Argument::String,
+ name: "utility_bill_#{underscore_case}_fixed_charges",
+ required: false,
+ display_name: "Utility Bills: #{all_caps_case} Fixed Charges",
+ description: "#{cap_case} utility bill monthly fixed charges. If multiple scenarios, use a comma-separated list."
+ }
end
HPXML::all_fuels.each do |fuel|
@@ -3471,64 +5050,94 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
all_caps_case = fuel.split(' ').map(&:capitalize).join(' ')
cap_case = fuel.capitalize
- arg = OpenStudio::Measure::OSArgument.makeStringArgument("utility_bill_#{underscore_case}_marginal_rates", false)
- arg.setDisplayName("Utility Bills: #{all_caps_case} Marginal Rates")
- arg.setDescription("#{cap_case} utility bill marginal rates. If multiple scenarios, use a comma-separated list.")
- args << arg
- end
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('utility_bill_pv_compensation_types', false)
- arg.setDisplayName('Utility Bills: PV Compensation Types')
- arg.setDescription('Utility bill PV compensation types. If multiple scenarios, use a comma-separated list.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('utility_bill_pv_net_metering_annual_excess_sellback_rate_types', false)
- arg.setDisplayName('Utility Bills: PV Net Metering Annual Excess Sellback Rate Types')
- arg.setDescription("Utility bill PV net metering annual excess sellback rate types. Only applies if the PV compensation type is '#{HPXML::PVCompensationTypeNetMetering}'. If multiple scenarios, use a comma-separated list.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('utility_bill_pv_net_metering_annual_excess_sellback_rates', false)
- arg.setDisplayName('Utility Bills: PV Net Metering Annual Excess Sellback Rates')
- arg.setDescription("Utility bill PV net metering annual excess sellback rates. Only applies if the PV compensation type is '#{HPXML::PVCompensationTypeNetMetering}' and the PV annual excess sellback rate type is '#{HPXML::PVAnnualExcessSellbackRateTypeUserSpecified}'. If multiple scenarios, use a comma-separated list.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('utility_bill_pv_feed_in_tariff_rates', false)
- arg.setDisplayName('Utility Bills: PV Feed-In Tariff Rates')
- arg.setDescription("Utility bill PV annual full/gross feed-in tariff rates. Only applies if the PV compensation type is '#{HPXML::PVCompensationTypeFeedInTariff}'. If multiple scenarios, use a comma-separated list.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('utility_bill_pv_monthly_grid_connection_fee_units', false)
- arg.setDisplayName('Utility Bills: PV Monthly Grid Connection Fee Units')
- arg.setDescription('Utility bill PV monthly grid connection fee units. If multiple scenarios, use a comma-separated list.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('utility_bill_pv_monthly_grid_connection_fees', false)
- arg.setDisplayName('Utility Bills: PV Monthly Grid Connection Fees')
- arg.setDescription('Utility bill PV monthly grid connection fees. If multiple scenarios, use a comma-separated list.')
- args << arg
-
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('additional_properties', false)
- arg.setDisplayName('Additional Properties')
- arg.setDescription("Additional properties specified as key-value pairs (i.e., key=value). If multiple additional properties, use a |-separated list. For example, 'LowIncome=false|Remodeled|Description=2-story home in Denver'. These properties will be stored in the HPXML file under /HPXML/SoftwareInfo/extension/AdditionalProperties.")
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('combine_like_surfaces', false)
- arg.setDisplayName('Combine like surfaces?')
- arg.setDescription('If true, combines like surfaces to simplify the HPXML file generated.')
- arg.setDefaultValue(false)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('apply_defaults', false)
- arg.setDisplayName('Apply Default Values?')
- arg.setDescription('If true, applies OS-HPXML default values to the HPXML output file. Setting to true will also force validation of the HPXML output file before applying OS-HPXML default values.')
- arg.setDefaultValue(false)
- args << arg
-
- arg = OpenStudio::Measure::OSArgument::makeBoolArgument('apply_validation', false)
- arg.setDisplayName('Apply Validation?')
- arg.setDescription('If true, validates the HPXML output file. Set to false for faster performance. Note that validation is not needed if the HPXML file will be validated downstream (e.g., via the HPXMLtoOpenStudio measure).')
- arg.setDefaultValue(false)
- args << arg
+ args << {
+ type: Argument::String,
+ name: "utility_bill_#{underscore_case}_marginal_rates",
+ required: false,
+ display_name: "Utility Bills: #{all_caps_case} Marginal Rates",
+ description: "#{cap_case} utility bill marginal rates. If multiple scenarios, use a comma-separated list."
+ }
+ end
+
+ args << {
+ type: Argument::String,
+ name: 'utility_bill_pv_compensation_types',
+ required: false,
+ display_name: 'Utility Bills: PV Compensation Types',
+ description: 'Utility bill PV compensation types. If multiple scenarios, use a comma-separated list.'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'utility_bill_pv_net_metering_annual_excess_sellback_rate_types',
+ required: false,
+ display_name: 'Utility Bills: PV Net Metering Annual Excess Sellback Rate Types',
+ description: "Utility bill PV net metering annual excess sellback rate types. Only applies if the PV compensation type is '#{HPXML::PVCompensationTypeNetMetering}'. If multiple scenarios, use a comma-separated list."
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'utility_bill_pv_net_metering_annual_excess_sellback_rates',
+ required: false,
+ display_name: 'Utility Bills: PV Net Metering Annual Excess Sellback Rates',
+ description: "Utility bill PV net metering annual excess sellback rates. Only applies if the PV compensation type is '#{HPXML::PVCompensationTypeNetMetering}' and the PV annual excess sellback rate type is '#{HPXML::PVAnnualExcessSellbackRateTypeUserSpecified}'. If multiple scenarios, use a comma-separated list."
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'utility_bill_pv_feed_in_tariff_rates',
+ required: false,
+ display_name: 'Utility Bills: PV Feed-In Tariff Rates',
+ description: "Utility bill PV annual full/gross feed-in tariff rates. Only applies if the PV compensation type is '#{HPXML::PVCompensationTypeFeedInTariff}'. If multiple scenarios, use a comma-separated list."
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'utility_bill_pv_monthly_grid_connection_fee_units',
+ required: false,
+ display_name: 'Utility Bills: PV Monthly Grid Connection Fee Units',
+ description: 'Utility bill PV monthly grid connection fee units. If multiple scenarios, use a comma-separated list.'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'utility_bill_pv_monthly_grid_connection_fees',
+ required: false,
+ display_name: 'Utility Bills: PV Monthly Grid Connection Fees',
+ description: 'Utility bill PV monthly grid connection fees. If multiple scenarios, use a comma-separated list.'
+ }
+
+ args << {
+ type: Argument::String,
+ name: 'additional_properties',
+ required: false,
+ display_name: 'Additional Properties',
+ description: "Additional properties specified as key-value pairs (i.e., key=value}. If multiple additional properties, use a |-separated list. For example, 'LowIncome=false|Remodeled|Description=2-story home in Denver'. These properties will be stored in the HPXML file under /HPXML/SoftwareInfo/extension/AdditionalProperties."
+ }
+
+ args << {
+ name: 'combine_like_surfaces',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Combine like surfaces?',
+ description: 'If true, combines like surfaces to simplify the HPXML file generated.'
+ }
+
+ args << {
+ name: 'apply_defaults',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Apply Default Values?',
+ description: 'If true, applies OS-HPXML default values to the HPXML output file. Setting to true will also force validation of the HPXML output file before applying OS-HPXML default values.'
+ }
+
+ args << {
+ name: 'apply_validation',
+ type: Argument::Boolean,
+ required: false,
+ display_name: 'Apply Validation?',
+ description: 'If true, validates the HPXML output file. Set to false for faster performance. Note that validation is not needed if the HPXML file will be validated downstream (e.g., via the HPXMLtoOpenStudio measure).'
+ }
return args
end
@@ -3552,6 +5161,7 @@ def run(model, runner, user_arguments)
Version.check_openstudio_version()
args = runner.getArgumentValues(arguments(model), user_arguments)
+ args = convertArgumentValues(get_arguments, args)
# Argument error checks
warnings, errors = validate_arguments(args)
@@ -3647,13 +5257,13 @@ def argument_warnings(args)
warning = (args[:geometry_foundation_type] == HPXML::FoundationTypeSlab) && (args[:geometry_foundation_height_above_grade] > 0)
warnings << 'Specified a slab foundation type with a non-zero height above grade.' if warning
- warning = [HPXML::FoundationTypeCrawlspaceVented, HPXML::FoundationTypeCrawlspaceUnvented, HPXML::FoundationTypeBasementUnconditioned].include?(args[:geometry_foundation_type]) && ((args[:foundation_wall_insulation_r] > 0) || !args[:foundation_wall_assembly_r].nil?) && (args[:floor_over_foundation_assembly_r] > max_uninsulated_floor_rvalue)
+ warning = [HPXML::FoundationTypeCrawlspaceVented, HPXML::FoundationTypeCrawlspaceUnvented, HPXML::FoundationTypeBasementUnconditioned].include?(args[:geometry_foundation_type]) && ((args[:foundation_wall_insulation_r] > 0) || !args[:foundation_wall_assembly_r].nil?) && (!args[:floor_over_foundation_assembly_r].nil? && args[:floor_over_foundation_assembly_r] > max_uninsulated_floor_rvalue)
warnings << 'Home with unconditioned basement/crawlspace foundation type has both foundation wall insulation and floor insulation.' if warning
warning = [HPXML::AtticTypeVented, HPXML::AtticTypeUnvented].include?(args[:geometry_attic_type]) && (args[:ceiling_assembly_r] > max_uninsulated_ceiling_rvalue) && (args[:roof_assembly_r] > max_uninsulated_roof_rvalue)
warnings << 'Home with unconditioned attic type has both ceiling insulation and roof insulation.' if warning
- warning = (args[:geometry_foundation_type] == HPXML::FoundationTypeBasementConditioned) && (args[:floor_over_foundation_assembly_r] > max_uninsulated_floor_rvalue)
+ warning = (args[:geometry_foundation_type] == HPXML::FoundationTypeBasementConditioned) && (!args[:floor_over_foundation_assembly_r].nil? && args[:floor_over_foundation_assembly_r] > max_uninsulated_floor_rvalue)
warnings << 'Home with conditioned basement has floor insulation.' if warning
warning = (args[:geometry_attic_type] == HPXML::AtticTypeConditioned) && (args[:ceiling_assembly_r] > max_uninsulated_ceiling_rvalue)
@@ -3673,10 +5283,10 @@ def argument_warnings(args)
def argument_errors(args)
errors = []
- error = (args[:heating_system_type] != Constants::None) && (args[:heat_pump_type] != Constants::None) && (args[:heating_system_fraction_heat_load_served] > 0) && (args[:heat_pump_fraction_heat_load_served] > 0)
+ error = (args[:heating_system_type] != Constants::None) && (args[:heat_pump_type] != Constants::None) && (args[:heating_system_fraction_heat_load_served].nil? || args[:heating_system_fraction_heat_load_served] > 0) && (args[:heat_pump_fraction_heat_load_served].nil? || args[:heat_pump_fraction_heat_load_served] > 0)
errors << 'Multiple central heating systems are not currently supported.' if error
- error = (args[:cooling_system_type] != Constants::None) && (args[:heat_pump_type] != Constants::None) && (args[:cooling_system_fraction_cool_load_served] > 0) && (args[:heat_pump_fraction_cool_load_served] > 0)
+ error = (args[:cooling_system_type] != Constants::None) && (args[:heat_pump_type] != Constants::None) && (args[:cooling_system_fraction_cool_load_served].nil? || args[:cooling_system_fraction_cool_load_served] > 0) && (args[:heat_pump_fraction_cool_load_served].nil? || args[:heat_pump_fraction_cool_load_served] > 0)
errors << 'Multiple central cooling systems are not currently supported.' if error
error = ![HPXML::FoundationTypeSlab, HPXML::FoundationTypeAboveApartment].include?(args[:geometry_foundation_type]) && (args[:geometry_foundation_height] == 0)
@@ -3685,7 +5295,7 @@ def argument_errors(args)
error = (args[:geometry_unit_type] == HPXML::ResidentialTypeApartment) && ([HPXML::FoundationTypeBasementConditioned, HPXML::FoundationTypeCrawlspaceConditioned].include? args[:geometry_foundation_type])
errors << 'Conditioned basement/crawlspace foundation type for apartment units is not currently supported.' if error
- error = (args[:heating_system_type] == Constants::None) && (args[:heat_pump_type] == Constants::None) && (args[:heating_system_2_type] != Constants::None)
+ error = (args[:heating_system_type] == Constants::None) && (args[:heat_pump_type] == Constants::None) && (!args[:heating_system_2_type].nil? && args[:heating_system_2_type] != Constants::None)
errors << 'A second heating system was specified without a primary heating system.' if error
if ((args[:heat_pump_backup_type] == HPXML::HeatPumpBackupTypeSeparate) && (args[:heating_system_2_type] == HPXML::HVACTypeFurnace)) # separate ducted backup
@@ -3807,7 +5417,7 @@ def argument_errors(args)
emissions_scenario_lengths = [args[:emissions_scenario_names].count(','),
args[:emissions_types].count(','),
args[:emissions_electricity_units].count(','),
- args[:emissions_electricity_values_or_filepaths].count(',')]
+ "#{args[:emissions_electricity_values_or_filepaths]}".count(',')]
emissions_scenario_lengths += [args[:emissions_electricity_number_of_header_rows].count(',')] unless args[:emissions_electricity_number_of_header_rows].nil?
emissions_scenario_lengths += [args[:emissions_electricity_column_numbers].count(',')] unless args[:emissions_electricity_column_numbers].nil?
@@ -3845,7 +5455,7 @@ def argument_errors(args)
error = (args[:geometry_unit_num_floors_above_grade] > 6)
errors << 'Number of above-grade floors must be six or less.' if error
- error = (args[:geometry_garage_protrusion] < 0) || (args[:geometry_garage_protrusion] > 1)
+ error = !args[:geometry_garage_protrusion].nil? && ((args[:geometry_garage_protrusion] < 0) || (args[:geometry_garage_protrusion] > 1))
errors << 'Garage protrusion fraction must be between zero and one.' if error
error = (args[:geometry_unit_left_wall_is_adiabatic] && args[:geometry_unit_right_wall_is_adiabatic] && args[:geometry_unit_front_wall_is_adiabatic] && args[:geometry_unit_back_wall_is_adiabatic])
@@ -3857,13 +5467,13 @@ def argument_errors(args)
error = (args[:geometry_unit_type] == HPXML::ResidentialTypeSFA) && (args[:geometry_attic_type] == HPXML::AtticTypeBelowApartment)
errors << 'Single-family attached units cannot be below another unit.' if error
- error = (args[:geometry_garage_protrusion] > 0) && (args[:geometry_roof_type] == Constants::RoofTypeHip) && (args[:geometry_garage_width] * args[:geometry_garage_depth] > 0)
+ error = (!args[:geometry_garage_protrusion].nil? && args[:geometry_garage_protrusion] > 0) && (args[:geometry_roof_type] == Constants::RoofTypeHip) && !args[:geometry_garage_width].nil? && !args[:geometry_garage_depth].nil? && (args[:geometry_garage_width] * args[:geometry_garage_depth] > 0)
errors << 'Cannot handle protruding garage and hip roof.' if error
- error = (args[:geometry_garage_protrusion] > 0) && (args[:geometry_unit_aspect_ratio] < 1) && (args[:geometry_garage_width] * args[:geometry_garage_depth] > 0) && (args[:geometry_roof_type] == Constants::RoofTypeGable)
+ error = (!args[:geometry_garage_protrusion].nil? && args[:geometry_garage_protrusion] > 0) && (args[:geometry_unit_aspect_ratio] < 1) & !args[:geometry_garage_width].nil? && !args[:geometry_garage_depth].nil? && (args[:geometry_garage_width] * args[:geometry_garage_depth] > 0) && (args[:geometry_roof_type] == Constants::RoofTypeGable)
errors << 'Cannot handle protruding garage and attic ridge running from front to back.' if error
- error = (args[:geometry_foundation_type] == HPXML::FoundationTypeAmbient) && (args[:geometry_garage_width] * args[:geometry_garage_depth] > 0)
+ error = (args[:geometry_foundation_type] == HPXML::FoundationTypeAmbient) && !args[:geometry_garage_width].nil? && !args[:geometry_garage_depth].nil? && (args[:geometry_garage_width] * args[:geometry_garage_depth] > 0)
errors << 'Cannot handle garages with an ambient foundation type.' if error
error = (args[:door_area] < 0)
@@ -3996,9 +5606,9 @@ def self.create(runner, model, args, epw_path, hpxml_path, existing_hpxml_path)
def self.need_weather_based_on_args(args)
if (args[:hvac_control_heating_season_period].to_s == Constants::BuildingAmerica) ||
(args[:hvac_control_cooling_season_period].to_s == Constants::BuildingAmerica) ||
- (args[:solar_thermal_system_type] != Constants::None && args[:solar_thermal_collector_tilt].start_with?('latitude')) ||
- (args[:pv_system_present] && args[:pv_system_array_tilt].start_with?('latitude')) ||
- (args[:pv_system_2_present] && args[:pv_system_2_array_tilt].start_with?('latitude')) ||
+ (!args[:solar_thermal_system_type].nil? && args[:solar_thermal_system_type] != Constants::None && !args[:solar_thermal_collector_tilt].nil? && args[:solar_thermal_collector_tilt].start_with?('latitude')) ||
+ (args[:pv_system_present] && !args[:pv_system_array_tilt].nil? && args[:pv_system_array_tilt].start_with?('latitude')) ||
+ (args[:pv_system_2_present] && !args[:pv_system_2_array_tilt].nil? && args[:pv_system_2_array_tilt].start_with?('latitude')) ||
(args[:apply_defaults])
return true
end
@@ -4190,7 +5800,7 @@ def self.set_header(runner, hpxml, args)
if (not hpxml.header.software_program_version.nil?) && (hpxml.header.software_program_version != args[:software_info_program_version])
errors << "'Software Info: Program Version' cannot vary across dwelling units."
end
- hpxml.header.software_program_version = args[:software_info_program_version]
+ hpxml.header.software_program_version = "#{args[:software_info_program_version]}"
end
if not args[:simulation_control_timestep].nil?
@@ -4662,7 +6272,7 @@ def self.set_neighbor_buildings(hpxml_bldg, args)
nbr_map.each do |facade, data|
distance, neighbor_height = data
- next if distance == 0
+ next if distance.nil? || distance == 0
azimuth = Geometry.get_azimuth_from_facade(facade: facade, orientation: args[:geometry_unit_orientation])
@@ -5131,7 +6741,7 @@ def self.set_foundation_walls(hpxml_bldg, model, args, sorted_surfaces)
# @return [nil]
def self.set_floors(hpxml_bldg, args, sorted_surfaces)
if [HPXML::FoundationTypeBasementConditioned,
- HPXML::FoundationTypeCrawlspaceConditioned].include?(args[:geometry_foundation_type]) && (args[:floor_over_foundation_assembly_r] > 2.1)
+ HPXML::FoundationTypeCrawlspaceConditioned].include?(args[:geometry_foundation_type]) && (!args[:floor_over_foundation_assembly_r].nil? && args[:floor_over_foundation_assembly_r] > 2.1)
args[:floor_over_foundation_assembly_r] = 2.1 # Uninsulated
end
@@ -5214,6 +6824,10 @@ def self.set_floors(hpxml_bldg, args, sorted_surfaces)
# @param sorted_surfaces [Array] surfaces sorted by deterministically assigned Index
# @return [nil]
def self.set_slabs(hpxml_bldg, model, args, sorted_surfaces)
+ args[:slab_perimeter_insulation_r] = 0 if args[:slab_perimeter_insulation_r].nil?
+ args[:slab_perimeter_insulation_depth] = 0 if args[:slab_perimeter_insulation_depth].nil?
+ args[:slab_under_insulation_r] = 0 if args[:slab_under_insulation_r].nil?
+ args[:slab_under_insulation_width] = 0 if args[:slab_under_insulation_width].nil?
sorted_surfaces.each do |surface|
next unless [EPlus::BoundaryConditionFoundation].include? surface.outsideBoundaryCondition
next if surface.surfaceType != EPlus::SurfaceTypeFloor
@@ -5236,7 +6850,7 @@ def self.set_slabs(hpxml_bldg, model, args, sorted_surfaces)
exposed_perimeter -= Geometry.get_unexposed_garage_perimeter(**args)
end
- if args[:slab_under_insulation_width] >= 999
+ if !args[:slab_under_insulation_width].nil? && args[:slab_under_insulation_width] >= 999
under_slab_insulation_spans_entire_slab = true
else
under_slab_insulation_width = args[:slab_under_insulation_width]
@@ -5292,19 +6906,19 @@ def self.set_windows(hpxml_bldg, model, args, sorted_subsurfaces)
sub_surface_height = Geometry.get_surface_height(surface: sub_surface)
sub_surface_facade = Geometry.get_facade_for_surface(surface: sub_surface)
- if (sub_surface_facade == Constants::FacadeFront) && ((args[:overhangs_front_depth] > 0) || args[:overhangs_front_distance_to_top_of_window] > 0)
+ if (sub_surface_facade == Constants::FacadeFront) && (!args[:overhangs_front_depth].nil? && args[:overhangs_front_depth] > 0)
overhangs_depth = args[:overhangs_front_depth]
overhangs_distance_to_top_of_window = args[:overhangs_front_distance_to_top_of_window]
overhangs_distance_to_bottom_of_window = args[:overhangs_front_distance_to_bottom_of_window]
- elsif (sub_surface_facade == Constants::FacadeBack) && ((args[:overhangs_back_depth] > 0) || args[:overhangs_back_distance_to_top_of_window] > 0)
+ elsif (sub_surface_facade == Constants::FacadeBack) && (!args[:overhangs_back_depth].nil? && args[:overhangs_back_depth] > 0)
overhangs_depth = args[:overhangs_back_depth]
overhangs_distance_to_top_of_window = args[:overhangs_back_distance_to_top_of_window]
overhangs_distance_to_bottom_of_window = args[:overhangs_back_distance_to_bottom_of_window]
- elsif (sub_surface_facade == Constants::FacadeLeft) && ((args[:overhangs_left_depth] > 0) || args[:overhangs_left_distance_to_top_of_window] > 0)
+ elsif (sub_surface_facade == Constants::FacadeLeft) && (!args[:overhangs_left_depth].nil? && args[:overhangs_left_depth] > 0)
overhangs_depth = args[:overhangs_left_depth]
overhangs_distance_to_top_of_window = args[:overhangs_left_distance_to_top_of_window]
overhangs_distance_to_bottom_of_window = args[:overhangs_left_distance_to_bottom_of_window]
- elsif (sub_surface_facade == Constants::FacadeRight) && ((args[:overhangs_right_depth] > 0) || args[:overhangs_right_distance_to_top_of_window] > 0)
+ elsif (sub_surface_facade == Constants::FacadeRight) && (!args[:overhangs_right_depth].nil? && args[:overhangs_right_depth] > 0)
overhangs_depth = args[:overhangs_right_depth]
overhangs_distance_to_top_of_window = args[:overhangs_right_distance_to_top_of_window]
overhangs_distance_to_bottom_of_window = args[:overhangs_right_distance_to_bottom_of_window]
@@ -5370,6 +6984,8 @@ def self.set_windows(hpxml_bldg, model, args, sorted_subsurfaces)
# @param sorted_subsurfaces [Array] subsurfaces sorted by deterministically assigned Index
# @return [nil]
def self.set_skylights(hpxml_bldg, args, sorted_subsurfaces)
+ args[:skylight_ufactor] = 0.33 if args[:skylight_ufactor].nil?
+ args[:skylight_shgc] = 0.45 if args[:skylight_shgc].nil?
sorted_subsurfaces.each do |sub_surface|
next if sub_surface.subSurfaceType != 'Skylight'
@@ -5569,8 +7185,6 @@ def self.set_heating_systems(hpxml_bldg, args)
end
end
- fraction_heat_load_served = args[:heating_system_fraction_heat_load_served]
-
if heating_system_type.include?('Shared')
is_shared_system = true
number_of_units_served = args[:geometry_building_num_units]
@@ -5581,13 +7195,14 @@ def self.set_heating_systems(hpxml_bldg, args)
heating_system_type = HPXML::HVACTypeBoiler
end
+ args[:heating_system_fraction_heat_load_served] = 1 if args[:heating_system_fraction_heat_load_served].nil?
hpxml_bldg.heating_systems.add(id: "HeatingSystem#{hpxml_bldg.heating_systems.size + 1}",
heating_system_type: heating_system_type,
heating_system_fuel: args[:heating_system_fuel],
heating_capacity: args[:heating_system_heating_capacity],
heating_autosizing_factor: args[:heating_system_heating_autosizing_factor],
heating_autosizing_limit: args[:heating_system_heating_autosizing_limit],
- fraction_heat_load_served: fraction_heat_load_served,
+ fraction_heat_load_served: args[:heating_system_fraction_heat_load_served],
heating_efficiency_afue: heating_efficiency_afue,
heating_efficiency_percent: heating_efficiency_percent,
airflow_defect_ratio: airflow_defect_ratio,
@@ -5626,6 +7241,7 @@ def self.set_cooling_systems(hpxml_bldg, args)
end
if cooling_system_type != HPXML::HVACTypeEvaporativeCooler
+ args[:cooling_system_cooling_efficiency_type] = HPXML::UnitsSEER if args[:cooling_system_cooling_efficiency_type].nil?
case args[:cooling_system_cooling_efficiency_type]
when HPXML::UnitsSEER
cooling_efficiency_seer = args[:cooling_system_cooling_efficiency]
@@ -5657,6 +7273,7 @@ def self.set_cooling_systems(hpxml_bldg, args)
integrated_heating_system_efficiency_percent = args[:cooling_system_integrated_heating_system_efficiency_percent]
end
+ args[:cooling_system_fraction_cool_load_served] = 1 if args[:cooling_system_fraction_cool_load_served].nil?
hpxml_bldg.cooling_systems.add(id: "CoolingSystem#{hpxml_bldg.cooling_systems.size + 1}",
cooling_system_type: cooling_system_type,
cooling_system_fuel: HPXML::FuelTypeElectricity,
@@ -5738,6 +7355,9 @@ def self.set_heat_pumps(hpxml_bldg, args)
return if heat_pump_type == Constants::None
+ args[:heat_pump_backup_type] = HPXML::HeatPumpBackupTypeIntegrated if args[:heat_pump_backup_type].nil?
+ args[:heat_pump_backup_fuel] = HPXML::FuelTypeElectricity if args[:heat_pump_backup_fuel].nil?
+ args[:heat_pump_backup_heating_efficiency] = 1 if args[:heat_pump_backup_heating_efficiency].nil?
case args[:heat_pump_backup_type]
when HPXML::HeatPumpBackupTypeIntegrated
backup_type = args[:heat_pump_backup_type]
@@ -5771,6 +7391,7 @@ def self.set_heat_pumps(hpxml_bldg, args)
compressor_type = args[:heat_pump_cooling_compressor_type]
end
+ args[:heat_pump_heating_efficiency_type] = HPXML::UnitsHSPF if args[:heat_pump_heating_efficiency_type].nil?
case args[:heat_pump_heating_efficiency_type]
when HPXML::UnitsHSPF
heating_efficiency_hspf = args[:heat_pump_heating_efficiency]
@@ -5780,6 +7401,7 @@ def self.set_heat_pumps(hpxml_bldg, args)
heating_efficiency_cop = args[:heat_pump_heating_efficiency]
end
+ args[:heat_pump_cooling_efficiency_type] = HPXML::UnitsSEER if args[:heat_pump_cooling_efficiency_type].nil?
case args[:heat_pump_cooling_efficiency_type]
when HPXML::UnitsSEER
cooling_efficiency_seer = args[:heat_pump_cooling_efficiency]
@@ -5797,6 +7419,8 @@ def self.set_heat_pumps(hpxml_bldg, args)
heat_pump_crankcase_heater_watts = args[:heat_pump_crankcase_heater_watts]
end
+ args[:heat_pump_fraction_heat_load_served] = 1 if args[:heat_pump_fraction_heat_load_served].nil?
+ args[:heat_pump_fraction_cool_load_served] = 1 if args[:heat_pump_fraction_cool_load_served].nil?
hpxml_bldg.heat_pumps.add(id: "HeatPump#{hpxml_bldg.heat_pumps.size + 1}",
heat_pump_type: heat_pump_type,
heat_pump_fuel: HPXML::FuelTypeElectricity,
@@ -5970,9 +7594,13 @@ def self.set_secondary_heating_systems(hpxml_bldg, args)
heating_system_type = args[:heating_system_2_type]
heating_system_is_heatpump_backup = (args[:heat_pump_type] != Constants::None && args[:heat_pump_backup_type] == HPXML::HeatPumpBackupTypeSeparate)
- return if heating_system_type == Constants::None && (not heating_system_is_heatpump_backup)
+ return if (heating_system_type.nil? || heating_system_type == Constants::None) && (not heating_system_is_heatpump_backup)
+
+ args[:heating_system_2_fuel] = HPXML::FuelTypeElectricity if args[:heating_system_2_fuel].nil?
+ args[:heating_system_2_heating_efficiency] = 1.0 if args[:heating_system_2_heating_efficiency].nil?
+ args[:heating_system_2_fraction_heat_load_served] = 0.25 if args[:heating_system_2_fraction_heat_load_served].nil?
- if args[:heating_system_2_fuel] == HPXML::HVACTypeElectricResistance
+ if args[:heating_system_type] == HPXML::HVACTypeElectricResistance
args[:heating_system_2_fuel] = HPXML::FuelTypeElectricity
end
@@ -6404,10 +8032,13 @@ def self.set_hvac_control(hpxml, hpxml_bldg, args, weather)
# @param args [Hash] Map of :argument_name => value
# @return [nil]
def self.set_ventilation_fans(hpxml_bldg, args)
- if args[:mech_vent_fan_type] != Constants::None
+ if (!args[:mech_vent_fan_type].nil? && args[:mech_vent_fan_type] != Constants::None)
distribution_system_idref = nil
+ args[:mech_vent_recovery_efficiency_type] = 'Unadjusted' if args[:mech_vent_recovery_efficiency_type].nil?
+ args[:mech_vent_total_recovery_efficiency] = 0.48 if args[:mech_vent_total_recovery_efficiency].nil?
+ args[:mech_vent_sensible_recovery_efficiency] = 0.72 if args[:mech_vent_sensible_recovery_efficiency].nil?
case args[:mech_vent_fan_type]
when HPXML::MechVentTypeERV
case args[:mech_vent_recovery_efficiency_type]
@@ -6487,7 +8118,7 @@ def self.set_ventilation_fans(hpxml_bldg, args)
precooling_fraction_load_served: precooling_fraction_load_served)
end
- if args[:mech_vent_2_fan_type] != Constants::None
+ if (!args[:mech_vent_2_fan_type].nil? && args[:mech_vent_2_fan_type] != Constants::None)
case args[:mech_vent_2_fan_type]
when HPXML::MechVentTypeERV
@@ -6729,10 +8360,12 @@ def self.set_hot_water_distribution(hpxml_bldg, args)
def self.set_water_fixtures(hpxml_bldg, args)
return if args[:water_heater_type] == Constants::None
+ args[:water_fixtures_shower_low_flow] = false if args[:water_fixtures_shower_low_flow].nil?
hpxml_bldg.water_fixtures.add(id: "WaterFixture#{hpxml_bldg.water_fixtures.size + 1}",
water_fixture_type: HPXML::WaterFixtureTypeShowerhead,
low_flow: args[:water_fixtures_shower_low_flow])
+ args[:water_fixtures_sink_low_flow] = false if args[:water_fixtures_sink_low_flow].nil?
hpxml_bldg.water_fixtures.add(id: "WaterFixture#{hpxml_bldg.water_fixtures.size + 1}",
water_fixture_type: HPXML::WaterFixtureTypeFaucet,
low_flow: args[:water_fixtures_sink_low_flow])
@@ -6751,9 +8384,9 @@ def self.set_water_fixtures(hpxml_bldg, args)
# @param weather [WeatherFile] Weather object containing EPW information
# @return [nil]
def self.set_solar_thermal(hpxml_bldg, args, weather)
- return if args[:solar_thermal_system_type] == Constants::None
+ return if (args[:solar_thermal_system_type].nil? || args[:solar_thermal_system_type] == Constants::None)
- if args[:solar_thermal_solar_fraction] > 0
+ if (!args[:solar_thermal_solar_fraction].nil? && args[:solar_thermal_solar_fraction] > 0)
solar_fraction = args[:solar_thermal_solar_fraction]
else
collector_area = args[:solar_thermal_collector_area]
@@ -6887,7 +8520,17 @@ def self.set_battery(hpxml_bldg, args)
# @return [nil]
def self.set_lighting(hpxml_bldg, args)
if args[:lighting_present]
- has_garage = (args[:geometry_garage_width] * args[:geometry_garage_depth] > 0)
+ args[:lighting_interior_fraction_cfl] = 0.1 if args[:lighting_interior_fraction_cfl].nil?
+ args[:lighting_interior_fraction_lfl] = 0.0 if args[:lighting_interior_fraction_lfl].nil?
+ args[:lighting_interior_fraction_led] = 0.0 if args[:lighting_interior_fraction_led].nil?
+ args[:lighting_exterior_fraction_cfl] = 0.0 if args[:lighting_exterior_fraction_cfl].nil?
+ args[:lighting_exterior_fraction_lfl] = 0.0 if args[:lighting_exterior_fraction_lfl].nil?
+ args[:lighting_exterior_fraction_led] = 0.0 if args[:lighting_exterior_fraction_led].nil?
+ args[:lighting_garage_fraction_cfl] = 0.0 if args[:lighting_garage_fraction_cfl].nil?
+ args[:lighting_garage_fraction_lfl] = 0.0 if args[:lighting_garage_fraction_lfl].nil?
+ args[:lighting_garage_fraction_led] = 0.0 if args[:lighting_garage_fraction_led].nil?
+
+ has_garage = !args[:geometry_garage_width].nil? && !args[:geometry_garage_depth].nil? && (args[:geometry_garage_width] * args[:geometry_garage_depth] > 0)
# Interior
interior_usage_multiplier = args[:lighting_interior_usage_multiplier]
@@ -6971,7 +8614,7 @@ def self.set_lighting(hpxml_bldg, args)
# @param args [Hash] Map of :argument_name => value
# @return [nil]
def self.set_dehumidifier(hpxml_bldg, args)
- return if args[:dehumidifier_type] == Constants::None
+ return if (args[:dehumidifier_type].nil? || args[:dehumidifier_type] == Constants::None)
case args[:dehumidifier_efficiency_type]
when 'EnergyFactor'
@@ -7268,6 +8911,7 @@ def self.set_misc_plug_loads_vehicle(hpxml_bldg, args)
def self.set_misc_fuel_loads_grill(hpxml_bldg, args)
return unless args[:misc_fuel_loads_grill_present]
+ args[:misc_fuel_loads_grill_fuel_type] = HPXML::FuelTypeNaturalGas if args[:misc_fuel_loads_grill_fuel_type].nil?
hpxml_bldg.fuel_loads.add(id: "FuelLoad#{hpxml_bldg.fuel_loads.size + 1}",
fuel_load_type: HPXML::FuelLoadTypeGrill,
fuel_type: args[:misc_fuel_loads_grill_fuel_type],
@@ -7286,6 +8930,7 @@ def self.set_misc_fuel_loads_grill(hpxml_bldg, args)
def self.set_misc_fuel_loads_lighting(hpxml_bldg, args)
return unless args[:misc_fuel_loads_lighting_present]
+ args[:misc_fuel_loads_lighting_fuel_type] = HPXML::FuelTypeNaturalGas if args[:misc_fuel_loads_lighting_fuel_type].nil?
hpxml_bldg.fuel_loads.add(id: "FuelLoad#{hpxml_bldg.fuel_loads.size + 1}",
fuel_load_type: HPXML::FuelLoadTypeLighting,
fuel_type: args[:misc_fuel_loads_lighting_fuel_type],
@@ -7305,6 +8950,7 @@ def self.set_misc_fuel_loads_lighting(hpxml_bldg, args)
def self.set_misc_fuel_loads_fireplace(hpxml_bldg, args)
return unless args[:misc_fuel_loads_fireplace_present]
+ args[:misc_fuel_loads_fireplace_fuel_type] = HPXML::FuelTypeNaturalGas if args[:misc_fuel_loads_fireplace_fuel_type].nil?
hpxml_bldg.fuel_loads.add(id: "FuelLoad#{hpxml_bldg.fuel_loads.size + 1}",
fuel_load_type: HPXML::FuelLoadTypeFireplace,
fuel_type: args[:misc_fuel_loads_fireplace_fuel_type],
diff --git a/BuildResidentialHPXML/measure.xml b/BuildResidentialHPXML/measure.xml
index 94a6e96597..572f80e834 100644
--- a/BuildResidentialHPXML/measure.xml
+++ b/BuildResidentialHPXML/measure.xml
@@ -3,8 +3,8 @@
3.1
build_residential_hpxml
a13a8983-2b01-4930-8af2-42030b6e4233
- c768997a-a50d-422b-8942-6c3249d0c01e
- 2024-11-27T21:21:13Z
+ e79fb8f0-0e8d-4477-b92e-ad90fd7ed7f6
+ 2024-12-02T17:32:55Z
2C38F48B
BuildResidentialHPXML
HPXML Builder
@@ -22,7 +22,7 @@
existing_hpxml_path
Existing HPXML File Path
- Absolute/relative path of the existing HPXML file. If not provided, a new HPXML file with one Building element is created. If provided, a new Building element will be appended to this HPXML file (e.g., to create a multifamily HPXML file describing multiple dwelling units).
+ Absolute/relative path of the existing HPXML file. If not provided, a new HPXML file with one Building element is created. If provided, a new Building element will be appended to this HPXML file (e.g., to create a multifamily HPXML file describing multiple dwelling units}.
String
false
false
@@ -80,7 +80,7 @@
schedules_unavailable_period_dates
Schedules: Unavailable Period Dates
- Specifies the unavailable period date ranges. Enter a date range like "Dec 15 - Jan 15". Optionally, can enter hour of the day like "Dec 15 2 - Jan 15 20" (start hour can be 0 through 23 and end hour can be 1 through 24). If multiple periods, use a comma-separated list.
+ Specifies the unavailable period date ranges. Enter a date range like "Dec 15 - Jan 15". Optionally, can enter hour of the day like "Dec 15 2 - Jan 15 20" (start hour can be 0 through 23 and end hour can be 1 through 24}. If multiple periods, use a comma-separated list.
String
false
false
@@ -88,7 +88,7 @@
schedules_unavailable_period_window_natvent_availabilities
Schedules: Unavailable Period Window Natural Ventilation Availabilities
- The availability of the natural ventilation schedule during unavailable periods. Valid choices are: regular schedule, always available, always unavailable. If multiple periods, use a comma-separated list. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-unavailable-periods'>HPXML Unavailable Periods</a>) is used.
+ The availability of the natural ventilation schedule during unavailable periods. Valid choices are: regular schedule, always available, always unavailable. If multiple periods, use a comma-separated list. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-unavailable-periods'>HPXML Unavailable Periods</a>) is used.
String
false
false
@@ -96,8 +96,8 @@
simulation_control_timestep
Simulation Control: Timestep
- Value must be a divisor of 60. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-simulation-control'>HPXML Simulation Control</a>) is used.
- Integer
+ Value must be a divisor of 60. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-simulation-control'>HPXML Simulation Control</a>) is used.
+ String
min
false
false
@@ -113,8 +113,8 @@
simulation_control_run_period_calendar_year
Simulation Control: Run Period 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. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-simulation-control'>HPXML Simulation Control</a>) is used.
- Integer
+ 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. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-simulation-control'>HPXML Simulation Control</a>) is used.
+ String
year
false
false
@@ -122,11 +122,15 @@
simulation_control_daylight_saving_enabled
Simulation Control: Daylight Saving Enabled
- Whether to use daylight saving. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-building-site'>HPXML Building Site</a>) is used.
- Boolean
+ Whether to use daylight saving. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-building-site'>HPXML Building Site</a>) is used.
+ Choice
false
false
+
+ auto
+ auto
+
true
true
@@ -140,7 +144,7 @@
simulation_control_daylight_saving_period
Simulation Control: Daylight Saving Period
- Enter a date range like 'Mar 15 - Dec 15'. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-building-site'>HPXML Building Site</a>) is used.
+ Enter a date range like 'Mar 15 - Dec 15'. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-building-site'>HPXML Building Site</a>) is used.
String
false
false
@@ -148,7 +152,7 @@
simulation_control_temperature_capacitance_multiplier
Simulation Control: Temperature Capacitance Multiplier
- Affects the transient calculation of indoor air temperatures. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-simulation-control'>HPXML Simulation Control</a>) is used.
+ Affects the transient calculation of indoor air temperatures. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-simulation-control'>HPXML Simulation Control</a>) is used.
String
false
false
@@ -156,11 +160,15 @@
simulation_control_defrost_model_type
Simulation Control: Defrost Model Type
- Research feature to select the type of defrost model. Use standard for default E+ defrost setting. Use advanced for an improved model that better accounts for load and energy use during defrost; using advanced may impact simulation runtime. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-simulation-control'>HPXML Simulation Control</a>) is used.
+ Research feature to select the type of defrost model. Use standard for default E+ defrost setting. Use advanced for an improved model that better accounts for load and energy use during defrost; using advanced may impact simulation runtime. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-simulation-control'>HPXML Simulation Control</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
standard
standard
@@ -192,11 +200,15 @@
site_type
Site: Type
- The type of site. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-site'>HPXML Site</a>) is used.
+ The type of site. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-site'>HPXML Site</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
suburban
suburban
@@ -214,11 +226,15 @@
site_shielding_of_home
Site: Shielding of Home
- Presence of nearby buildings, trees, obstructions for infiltration model. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-site'>HPXML Site</a>) is used.
+ Presence of nearby buildings, trees, obstructions for infiltration model. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-site'>HPXML Site</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
exposed
exposed
@@ -236,11 +252,15 @@
site_soil_and_moisture_type
Site: Soil and Moisture Type
- Type of soil and moisture. This is used to inform ground conductivity and diffusivity. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-site'>HPXML Site</a>) is used.
+ Type of soil and moisture. This is used to inform ground conductivity and diffusivity. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-site'>HPXML Site</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
clay, dry
clay, dry
@@ -434,11 +454,15 @@
site_state_code
Site: State Code
- State code of the home address. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-site'>HPXML Site</a>) is used.
+ State code of the home address. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-site'>HPXML Site</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
AK
AK
@@ -648,7 +672,7 @@
site_zip_code
Site: Zip Code
- Zip code of the home address. Either this or the Weather Station: EnergyPlus Weather (EPW) Filepath input below must be provided.
+ Zip code of the home address. Either this or the Weather Station: EnergyPlus Weather (EPW} Filepath input below must be provided.
String
false
false
@@ -656,8 +680,8 @@
site_time_zone_utc_offset
Site: Time Zone UTC Offset
- Time zone UTC offset of the home address. Must be between -12 and 14. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-site'>HPXML Site</a>) is used.
- Double
+ Time zone UTC offset of the home address. Must be between -12 and 14. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-site'>HPXML Site</a>) is used.
+ String
hr
false
false
@@ -665,8 +689,8 @@
site_elevation
Site: Elevation
- Elevation of the home address. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-site'>HPXML Site</a>) is used.
- Double
+ Elevation of the home address. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-site'>HPXML Site</a>) is used.
+ String
ft
false
false
@@ -674,8 +698,8 @@
site_latitude
Site: Latitude
- Latitude of the home address. Must be between -90 and 90. Use negative values for southern hemisphere. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-site'>HPXML Site</a>) is used.
- Double
+ Latitude of the home address. Must be between -90 and 90. Use negative values for southern hemisphere. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-site'>HPXML Site</a>) is used.
+ String
deg
false
false
@@ -683,15 +707,15 @@
site_longitude
Site: Longitude
- Longitude of the home address. Must be between -180 and 180. Use negative values for the western hemisphere. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-site'>HPXML Site</a>) is used.
- Double
+ Longitude of the home address. Must be between -180 and 180. Use negative values for the western hemisphere. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-site'>HPXML Site</a>) is used.
+ String
deg
false
false
weather_station_epw_filepath
- Weather Station: EnergyPlus Weather (EPW) Filepath
+ Weather Station: EnergyPlus Weather (EPW} Filepath
Path of the EPW file. Either this or the Site: Zip Code input above must be provided.
String
false
@@ -720,7 +744,6 @@
Choice
true
false
- single-family detached
single-family detached
@@ -747,7 +770,6 @@
Boolean
false
false
- false
true
@@ -766,7 +788,6 @@
Boolean
false
false
- false
true
@@ -785,7 +806,6 @@
Boolean
false
false
- false
true
@@ -804,7 +824,6 @@
Boolean
false
false
- false
true
@@ -824,17 +843,15 @@
#
true
false
- 2
geometry_unit_cfa
Geometry: Unit Conditioned Floor Area
- The total floor area of the unit's conditioned space (including any conditioned basement floor area).
+ The total floor area of the unit's conditioned space (including any conditioned basement floor area}.
Double
ft^2
true
false
- 2000
geometry_unit_aspect_ratio
@@ -844,17 +861,15 @@
Frac
true
false
- 2
geometry_unit_orientation
Geometry: Unit Orientation
- The unit's orientation is measured clockwise from north (e.g., North=0, East=90, South=180, West=270).
+ The unit's orientation is measured clockwise from north (e.g., North=0, East=90, South=180, West=270}.
Double
degrees
true
false
- 180
geometry_unit_num_bedrooms
@@ -864,13 +879,12 @@
#
true
false
- 3
geometry_unit_num_bathrooms
Geometry: Unit Number of Bathrooms
- The number of bathrooms in the unit. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-building-construction'>HPXML Building Construction</a>) is used.
- Integer
+ The number of bathrooms in the unit. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-building-construction'>HPXML Building Construction</a>) is used.
+ String
#
false
false
@@ -878,7 +892,7 @@
geometry_unit_num_occupants
Geometry: Unit Number of Occupants
- The number of occupants in the unit. If not provided, an *asset* calculation is performed assuming standard occupancy, in which various end use defaults (e.g., plug loads, appliances, and hot water usage) are calculated based on Number of Bedrooms and Conditioned Floor Area per ANSI/RESNET/ICC 301-2019. If provided, an *operational* calculation is instead performed in which the end use defaults are adjusted using the relationship between Number of Bedrooms and Number of Occupants from RECS 2015.
+ The number of occupants in the unit. If not provided, an *asset* calculation is performed assuming standard occupancy, in which various end use defaults (e.g., plug loads, appliances, and hot water usage} are calculated based on Number of Bedrooms and Conditioned Floor Area per ANSI/RESNET/ICC 301-2019. If provided, an *operational* calculation is instead performed in which the end use defaults are adjusted using the relationship between Number of Bedrooms and Number of Occupants from RECS 2015.
Double
#
false
@@ -901,13 +915,12 @@
ft
true
false
- 8
geometry_unit_height_above_grade
Geometry: Unit Height Above Grade
- Describes the above-grade height of apartment units on upper floors or homes above ambient or belly-and-wing foundations. It is defined as the height of the lowest conditioned floor above grade and is used to calculate the wind speed for the infiltration model. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-building-construction'>HPXML Building Construction</a>) is used.
- Double
+ Describes the above-grade height of apartment units on upper floors or homes above ambient or belly-and-wing foundations. It is defined as the height of the lowest conditioned floor above grade and is used to calculate the wind speed for the infiltration model. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-building-construction'>HPXML Building Construction</a>) is used.
+ String
ft
false
false
@@ -915,41 +928,37 @@
geometry_garage_width
Geometry: Garage Width
- The width of the garage. Enter zero for no garage. Only applies to single-family detached units.
+ The width of the garage. Only applies to single-family detached units. If not provided, defaults to zero (no garage}.
Double
ft
- true
+ false
false
- 0
geometry_garage_depth
Geometry: Garage Depth
- The depth of the garage. Only applies to single-family detached units.
+ The depth of the garage. Only applies to single-family detached units. If not provided, defaults to zero (no garage}.
Double
ft
- true
+ false
false
- 20
geometry_garage_protrusion
Geometry: Garage Protrusion
- The fraction of the garage that is protruding from the conditioned space. Only applies to single-family detached units.
+ The fraction of the garage that is protruding from the conditioned space. Only applies to single-family detached units. If not provided, defaults to zero (no protrusion).
Double
Frac
- true
+ false
false
- 0
geometry_garage_position
Geometry: Garage Position
- The position of the garage. Only applies to single-family detached units.
+ The position of the garage. Only applies to single-family detached units. If not provided, defaults to Right.
Choice
- true
+ false
false
- Right
Right
@@ -968,7 +977,6 @@
Choice
true
false
- SlabOnGrade
SlabOnGrade
@@ -1015,12 +1023,11 @@
geometry_foundation_height
Geometry: Foundation Height
- The height of the foundation (e.g., 3ft for crawlspace, 8ft for basement). Only applies to basements/crawlspaces.
+ The height of the foundation (e.g., 3ft for crawlspace, 8ft for basement}. Only applies to basements/crawlspaces.
Double
ft
- true
+ false
false
- 0
geometry_foundation_height_above_grade
@@ -1028,9 +1035,8 @@
The depth above grade of the foundation wall. Only applies to basements/crawlspaces.
Double
ft
- true
+ false
false
- 0
geometry_rim_joist_height
@@ -1048,7 +1054,6 @@
Choice
true
false
- VentedAttic
FlatRoof
@@ -1077,9 +1082,8 @@
Geometry: Roof Type
The roof type of the building. Ignored if the building has a flat roof.
Choice
- true
+ false
false
- gable
gable
@@ -1096,9 +1100,8 @@
Geometry: Roof Pitch
The roof pitch of the attic. Ignored if the building has a flat roof.
Choice
- true
+ false
false
- 6:12
1:12
@@ -1156,55 +1159,50 @@
The eaves depth of the roof.
Double
ft
- true
+ false
false
- 2
neighbor_front_distance
Neighbor: Front Distance
- The distance between the unit and the neighboring building to the front (not including eaves). A value of zero indicates no neighbors. Used for shading.
+ The distance between the unit and the neighboring building to the front (not including eaves}. A value of zero indicates no neighbors. Used for shading.
Double
ft
- true
+ false
false
- 0
neighbor_back_distance
Neighbor: Back Distance
- The distance between the unit and the neighboring building to the back (not including eaves). A value of zero indicates no neighbors. Used for shading.
+ The distance between the unit and the neighboring building to the back (not including eaves}. A value of zero indicates no neighbors. Used for shading.
Double
ft
- true
+ false
false
- 0
neighbor_left_distance
Neighbor: Left Distance
- The distance between the unit and the neighboring building to the left (not including eaves). A value of zero indicates no neighbors. Used for shading.
+ The distance between the unit and the neighboring building to the left (not including eaves}. A value of zero indicates no neighbors. Used for shading.
Double
ft
- true
+ false
false
- 10
neighbor_right_distance
Neighbor: Right Distance
- The distance between the unit and the neighboring building to the right (not including eaves). A value of zero indicates no neighbors. Used for shading.
+ The distance between the unit and the neighboring building to the right (not including eaves}. A value of zero indicates no neighbors. Used for shading.
Double
ft
- true
+ false
false
- 10
neighbor_front_height
Neighbor: Front Height
- The height of the neighboring building to the front. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-neighbor-buildings'>HPXML Neighbor Building</a>) is used.
- Double
+ The height of the neighboring building to the front. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-neighbor-buildings'>HPXML Neighbor Building</a>) is used.
+ String
ft
false
false
@@ -1212,8 +1210,8 @@
neighbor_back_height
Neighbor: Back Height
- The height of the neighboring building to the back. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-neighbor-buildings'>HPXML Neighbor Building</a>) is used.
- Double
+ The height of the neighboring building to the back. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-neighbor-buildings'>HPXML Neighbor Building</a>) is used.
+ String
ft
false
false
@@ -1221,8 +1219,8 @@
neighbor_left_height
Neighbor: Left Height
- The height of the neighboring building to the left. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-neighbor-buildings'>HPXML Neighbor Building</a>) is used.
- Double
+ The height of the neighboring building to the left. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-neighbor-buildings'>HPXML Neighbor Building</a>) is used.
+ String
ft
false
false
@@ -1230,8 +1228,8 @@
neighbor_right_height
Neighbor: Right Height
- The height of the neighboring building to the right. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-neighbor-buildings'>HPXML Neighbor Building</a>) is used.
- Double
+ The height of the neighboring building to the right. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-neighbor-buildings'>HPXML Neighbor Building</a>) is used.
+ String
ft
false
false
@@ -1242,9 +1240,8 @@
Assembly R-value for the floor over the foundation. Ignored if the building has a slab-on-grade foundation.
Double
h-ft^2-R/Btu
- true
+ false
false
- 28.1
floor_over_garage_assembly_r
@@ -1252,9 +1249,8 @@
Assembly R-value for the floor over the garage. Ignored unless the building has a garage under conditioned space.
Double
h-ft^2-R/Btu
- true
+ false
false
- 28.1
floor_type
@@ -1263,7 +1259,6 @@
Choice
true
false
- WoodFrame
WoodFrame
@@ -1286,11 +1281,15 @@
foundation_wall_type
Foundation Wall: Type
- The material type of the foundation wall. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-foundation-walls'>HPXML Foundation Walls</a>) is used.
+ The material type of the foundation wall. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-foundation-walls'>HPXML Foundation Walls</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
solid concrete
solid concrete
@@ -1328,8 +1327,8 @@
foundation_wall_thickness
Foundation Wall: Thickness
- The thickness of the foundation wall. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-foundation-walls'>HPXML Foundation Walls</a>) is used.
- Double
+ The thickness of the foundation wall. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-foundation-walls'>HPXML Foundation Walls</a>) is used.
+ String
in
false
false
@@ -1340,9 +1339,8 @@
Nominal R-value for the foundation wall insulation. Only applies to basements/crawlspaces.
Double
h-ft^2-R/Btu
- true
+ false
false
- 0
foundation_wall_insulation_location
@@ -1352,7 +1350,6 @@
ft
false
false
- exterior
interior
@@ -1367,8 +1364,8 @@
foundation_wall_insulation_distance_to_top
Foundation Wall: Insulation Distance To Top
- The distance from the top of the foundation wall to the top of the foundation wall insulation. Only applies to basements/crawlspaces. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-foundation-walls'>HPXML Foundation Walls</a>) is used.
- Double
+ The distance from the top of the foundation wall to the top of the foundation wall insulation. Only applies to basements/crawlspaces. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-foundation-walls'>HPXML Foundation Walls</a>) is used.
+ String
ft
false
false
@@ -1376,8 +1373,8 @@
foundation_wall_insulation_distance_to_bottom
Foundation Wall: Insulation Distance To Bottom
- The distance from the top of the foundation wall to the bottom of the foundation wall insulation. Only applies to basements/crawlspaces. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-foundation-walls'>HPXML Foundation Walls</a>) is used.
- Double
+ The distance from the top of the foundation wall to the bottom of the foundation wall insulation. Only applies to basements/crawlspaces. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-foundation-walls'>HPXML Foundation Walls</a>) is used.
+ String
ft
false
false
@@ -1403,22 +1400,20 @@
slab_perimeter_insulation_r
Slab: Perimeter Insulation Nominal R-value
- Nominal R-value of the vertical slab perimeter insulation. Applies to slab-on-grade foundations and basement/crawlspace floors.
+ Nominal R-value of the vertical slab perimeter insulation. Applies to slab-on-grade foundations and basement/crawlspace floors. If not provided, defaults to zero.
Double
h-ft^2-R/Btu
- true
+ false
false
- 0
slab_perimeter_insulation_depth
Slab: Perimeter Insulation Depth
- Depth from grade to bottom of vertical slab perimeter insulation. Applies to slab-on-grade foundations and basement/crawlspace floors.
+ Depth from grade to bottom of vertical slab perimeter insulation. Applies to slab-on-grade foundations and basement/crawlspace floors. If not provided, defaults to zero.
Double
ft
- true
+ false
false
- 0
slab_exterior_horizontal_insulation_r
@@ -1450,28 +1445,26 @@
slab_under_insulation_r
Slab: Under Slab Insulation Nominal R-value
- Nominal R-value of the horizontal under slab insulation. Applies to slab-on-grade foundations and basement/crawlspace floors.
+ Nominal R-value of the horizontal under slab insulation. Applies to slab-on-grade foundations and basement/crawlspace floors. If not provided, defaults to zero.
Double
h-ft^2-R/Btu
- true
+ false
false
- 0
slab_under_insulation_width
Slab: Under Slab Insulation Width
- Width from slab edge inward of horizontal under-slab insulation. Enter 999 to specify that the under slab insulation spans the entire slab. Applies to slab-on-grade foundations and basement/crawlspace floors.
+ Width from slab edge inward of horizontal under-slab insulation. Enter 999 to specify that the under slab insulation spans the entire slab. Applies to slab-on-grade foundations and basement/crawlspace floors. If not provided, defaults to zero.
Double
ft
- true
+ false
false
- 0
slab_thickness
Slab: Thickness
- The thickness of the slab. Zero can be entered if there is a dirt floor instead of a slab. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-slabs'>HPXML Slabs</a>) is used.
- Double
+ The thickness of the slab. Zero can be entered if there is a dirt floor instead of a slab. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-slabs'>HPXML Slabs</a>) is used.
+ String
in
false
false
@@ -1479,8 +1472,8 @@
slab_carpet_fraction
Slab: Carpet Fraction
- Fraction of the slab floor area that is carpeted. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-slabs'>HPXML Slabs</a>) is used.
- Double
+ Fraction of the slab floor area that is carpeted. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-slabs'>HPXML Slabs</a>) is used.
+ String
Frac
false
false
@@ -1488,8 +1481,8 @@
slab_carpet_r
Slab: Carpet R-value
- R-value of the slab carpet. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-slabs'>HPXML Slabs</a>) is used.
- Double
+ R-value of the slab carpet. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-slabs'>HPXML Slabs</a>) is used.
+ String
h-ft^2-R/Btu
false
false
@@ -1497,21 +1490,24 @@
ceiling_assembly_r
Ceiling: Assembly R-value
- Assembly R-value for the ceiling (attic floor).
+ Assembly R-value for the ceiling (attic floor}.
Double
h-ft^2-R/Btu
- true
+ false
false
- 31.6
roof_material_type
Roof: Material Type
- The material type of the roof. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-roofs'>HPXML Roofs</a>) is used.
+ The material type of the roof. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-roofs'>HPXML Roofs</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
asphalt or fiberglass shingles
asphalt or fiberglass shingles
@@ -1553,11 +1549,15 @@
roof_color
Roof: Color
- The color of the roof. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-roofs'>HPXML Roofs</a>) is used.
+ The color of the roof. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-roofs'>HPXML Roofs</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
dark
dark
@@ -1586,9 +1586,8 @@
Assembly R-value of the roof.
Double
h-ft^2-R/Btu
- true
+ false
false
- 2.3
radiant_barrier_attic_location
@@ -1619,11 +1618,15 @@
radiant_barrier_grade
Attic: Radiant Barrier Grade
- The grade of the radiant barrier in the attic. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-roofs'>HPXML Roofs</a>) is used.
+ The grade of the radiant barrier in the attic. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-roofs'>HPXML Roofs</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
1
1
@@ -1645,7 +1648,6 @@
Choice
true
false
- WoodStud
WoodStud
@@ -1696,11 +1698,15 @@
wall_siding_type
Wall: Siding Type
- The siding type of the walls. Also applies to rim joists. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-walls'>HPXML Walls</a>) is used.
+ The siding type of the walls. Also applies to rim joists. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-walls'>HPXML Walls</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
aluminum siding
aluminum siding
@@ -1750,11 +1756,19 @@
wall_color
Wall: Color
- The color of the walls. Also applies to rim joists. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-walls'>HPXML Walls</a>) is used.
+ The color of the walls. Also applies to rim joists. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-walls'>HPXML Walls</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
+
+ auto
+ auto
+
dark
dark
@@ -1785,87 +1799,42 @@
h-ft^2-R/Btu
true
false
- 11.9
-
-
- window_front_wwr
- Windows: Front Window-to-Wall Ratio
- The ratio of window area to wall area for the unit's front facade. Enter 0 if specifying Front Window Area instead. If the front wall is adiabatic, the value will be ignored.
- Double
- Frac
- true
- false
- 0.18
-
-
- window_back_wwr
- Windows: Back Window-to-Wall Ratio
- The ratio of window area to wall area for the unit's back facade. Enter 0 if specifying Back Window Area instead. If the back wall is adiabatic, the value will be ignored.
- Double
- Frac
- true
- false
- 0.18
-
-
- window_left_wwr
- Windows: Left Window-to-Wall Ratio
- The ratio of window area to wall area for the unit's left facade (when viewed from the front). Enter 0 if specifying Left Window Area instead. If the left wall is adiabatic, the value will be ignored.
- Double
- Frac
- true
- false
- 0.18
-
-
- window_right_wwr
- Windows: Right Window-to-Wall Ratio
- The ratio of window area to wall area for the unit's right facade (when viewed from the front). Enter 0 if specifying Right Window Area instead. If the right wall is adiabatic, the value will be ignored.
- Double
- Frac
- true
- false
- 0.18
window_area_front
Windows: Front Window Area
- The amount of window area on the unit's front facade. Enter 0 if specifying Front Window-to-Wall Ratio instead. If the front wall is adiabatic, the value will be ignored.
+ The amount of window area on the unit's front facade. A value less than 1 will be treated as a window-to-wall ratio. If the front wall is adiabatic, the value will be ignored.
Double
ft^2
true
false
- 0
window_area_back
Windows: Back Window Area
- The amount of window area on the unit's back facade. Enter 0 if specifying Back Window-to-Wall Ratio instead. If the back wall is adiabatic, the value will be ignored.
+ The amount of window area on the unit's back facade. A value less than 1 will be treated as a window-to-wall ratio. If the back wall is adiabatic, the value will be ignored.
Double
ft^2
true
false
- 0
window_area_left
Windows: Left Window Area
- The amount of window area on the unit's left facade (when viewed from the front). Enter 0 if specifying Left Window-to-Wall Ratio instead. If the left wall is adiabatic, the value will be ignored.
+ The amount of window area on the unit's left facade (when viewed from the front}. A value less than 1 will be treated as a window-to-wall ratio. If the left wall is adiabatic, the value will be ignored.
Double
ft^2
true
false
- 0
window_area_right
Windows: Right Window Area
- The amount of window area on the unit's right facade (when viewed from the front). Enter 0 if specifying Right Window-to-Wall Ratio instead. If the right wall is adiabatic, the value will be ignored.
+ The amount of window area on the unit's right facade (when viewed from the front}. A value less than 1 will be treated as a window-to-wall ratio. If the right wall is adiabatic, the value will be ignored.
Double
ft^2
true
false
- 0
window_aspect_ratio
@@ -1875,25 +1844,6 @@
Frac
true
false
- 1.333
-
-
- window_fraction_operable
- Windows: Fraction Operable
- Fraction of windows that are operable. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-windows'>HPXML Windows</a>) is used.
- Double
- Frac
- false
- false
-
-
- window_natvent_availability
- Windows: Natural Ventilation Availability
- For operable windows, the number of days/week that windows can be opened by occupants for natural ventilation. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-windows'>HPXML Windows</a>) is used.
- Integer
- Days/week
- false
- false
window_ufactor
@@ -1903,7 +1853,6 @@
Btu/hr-ft^2-R
true
false
- 0.37
window_shgc
@@ -1912,16 +1861,37 @@
Double
true
false
- 0.3
+
+
+ window_fraction_operable
+ Windows: Fraction Operable
+ Fraction of windows that are operable. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-windows'>HPXML Windows</a>) is used.
+ String
+ Frac
+ false
+ false
+
+
+ window_natvent_availability
+ Windows: Natural Ventilation Availability
+ For operable windows, the number of days/week that windows can be opened by occupants for natural ventilation. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-windows'>HPXML Windows</a>) is used.
+ String
+ Days/week
+ false
+ false
window_interior_shading_type
Windows: Interior Shading Type
- Type of window interior shading. Summer/winter shading coefficients can be provided below instead. If neither is provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-interior-shading'>HPXML Interior Shading</a>) is used.
+ Type of window interior shading. Summer/winter shading coefficients can be provided below instead. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-interior-shading'>HPXML Interior Shading</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
light curtains
light curtains
@@ -1967,8 +1937,8 @@
window_interior_shading_winter
Windows: Winter Interior Shading Coefficient
- Interior shading coefficient for the winter season, which if provided overrides the shading type input. 1.0 indicates no reduction in solar gain, 0.85 indicates 15% reduction, etc. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-interior-shading'>HPXML Interior Shading</a>) is used.
- Double
+ Interior shading coefficient for the winter season, which if provided overrides the shading type input. 1.0 indicates no reduction in solar gain, 0.85 indicates 15% reduction, etc. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-interior-shading'>HPXML Interior Shading</a>) is used.
+ String
Frac
false
false
@@ -1976,8 +1946,8 @@
window_interior_shading_summer
Windows: Summer Interior Shading Coefficient
- Interior shading coefficient for the summer season, which if provided overrides the shading type input. 1.0 indicates no reduction in solar gain, 0.85 indicates 15% reduction, etc. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-interior-shading'>HPXML Interior Shading</a>) is used.
- Double
+ Interior shading coefficient for the summer season, which if provided overrides the shading type input. 1.0 indicates no reduction in solar gain, 0.85 indicates 15% reduction, etc. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-interior-shading'>HPXML Interior Shading</a>) is used.
+ String
Frac
false
false
@@ -1985,11 +1955,15 @@
window_exterior_shading_type
Windows: Exterior Shading Type
- Type of window exterior shading. Summer/winter shading coefficients can be provided below instead. If neither is provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-exterior-shading'>HPXML Exterior Shading</a>) is used.
+ Type of window exterior shading. Summer/winter shading coefficients can be provided below instead. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-exterior-shading'>HPXML Exterior Shading</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
solar film
solar film
@@ -2007,8 +1981,8 @@
window_exterior_shading_winter
Windows: Winter Exterior Shading Coefficient
- Exterior shading coefficient for the winter season, which if provided overrides the shading type input. 1.0 indicates no reduction in solar gain, 0.85 indicates 15% reduction, etc. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-exterior-shading'>HPXML Exterior Shading</a>) is used.
- Double
+ Exterior shading coefficient for the winter season, which if provided overrides the shading type input. 1.0 indicates no reduction in solar gain, 0.85 indicates 15% reduction, etc. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-exterior-shading'>HPXML Exterior Shading</a>) is used.
+ String
Frac
false
false
@@ -2016,8 +1990,8 @@
window_exterior_shading_summer
Windows: Summer Exterior Shading Coefficient
- Exterior shading coefficient for the summer season, which if provided overrides the shading type input. 1.0 indicates no reduction in solar gain, 0.85 indicates 15% reduction, etc. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-exterior-shading'>HPXML Exterior Shading</a>) is used.
- Double
+ Exterior shading coefficient for the summer season, which if provided overrides the shading type input. 1.0 indicates no reduction in solar gain, 0.85 indicates 15% reduction, etc. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-exterior-shading'>HPXML Exterior Shading</a>) is used.
+ String
Frac
false
false
@@ -2025,7 +1999,7 @@
window_shading_summer_season
Windows: Shading Summer Season
- Enter a date range like 'May 1 - Sep 30'. Defines the summer season for purposes of shading coefficients; the rest of the year is assumed to be winter. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-windows'>HPXML Windows</a>) is used.
+ Enter a date range like 'May 1 - Sep 30'. Defines the summer season for purposes of shading coefficients; the rest of the year is assumed to be winter. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-windows'>HPXML Windows</a>) is used.
String
false
false
@@ -2076,9 +2050,8 @@
The depth of overhangs for windows for the front facade.
Double
ft
- true
+ false
false
- 0
overhangs_front_distance_to_top_of_window
@@ -2086,9 +2059,8 @@
The overhangs distance to the top of window for the front facade.
Double
ft
- true
+ false
false
- 0
overhangs_front_distance_to_bottom_of_window
@@ -2096,9 +2068,8 @@
The overhangs distance to the bottom of window for the front facade.
Double
ft
- true
+ false
false
- 4
overhangs_back_depth
@@ -2106,9 +2077,8 @@
The depth of overhangs for windows for the back facade.
Double
ft
- true
+ false
false
- 0
overhangs_back_distance_to_top_of_window
@@ -2116,9 +2086,8 @@
The overhangs distance to the top of window for the back facade.
Double
ft
- true
+ false
false
- 0
overhangs_back_distance_to_bottom_of_window
@@ -2126,9 +2095,8 @@
The overhangs distance to the bottom of window for the back facade.
Double
ft
- true
+ false
false
- 4
overhangs_left_depth
@@ -2136,9 +2104,8 @@
The depth of overhangs for windows for the left facade.
Double
ft
- true
+ false
false
- 0
overhangs_left_distance_to_top_of_window
@@ -2146,9 +2113,8 @@
The overhangs distance to the top of window for the left facade.
Double
ft
- true
+ false
false
- 0
overhangs_left_distance_to_bottom_of_window
@@ -2156,9 +2122,8 @@
The overhangs distance to the bottom of window for the left facade.
Double
ft
- true
+ false
false
- 4
overhangs_right_depth
@@ -2166,9 +2131,8 @@
The depth of overhangs for windows for the right facade.
Double
ft
- true
+ false
false
- 0
overhangs_right_distance_to_top_of_window
@@ -2176,9 +2140,8 @@
The overhangs distance to the top of window for the right facade.
Double
ft
- true
+ false
false
- 0
overhangs_right_distance_to_bottom_of_window
@@ -2186,9 +2149,8 @@
The overhangs distance to the bottom of window for the right facade.
Double
ft
- true
+ false
false
- 4
skylight_area_front
@@ -2196,9 +2158,8 @@
The amount of skylight area on the unit's front conditioned roof facade.
Double
ft^2
- true
+ false
false
- 0
skylight_area_back
@@ -2206,48 +2167,43 @@
The amount of skylight area on the unit's back conditioned roof facade.
Double
ft^2
- true
+ false
false
- 0
skylight_area_left
Skylights: Left Roof Area
- The amount of skylight area on the unit's left conditioned roof facade (when viewed from the front).
+ The amount of skylight area on the unit's left conditioned roof facade (when viewed from the front}.
Double
ft^2
- true
+ false
false
- 0
skylight_area_right
Skylights: Right Roof Area
- The amount of skylight area on the unit's right conditioned roof facade (when viewed from the front).
+ The amount of skylight area on the unit's right conditioned roof facade (when viewed from the front}.
Double
ft^2
- true
+ false
false
- 0
skylight_ufactor
Skylights: U-Factor
- Full-assembly NFRC U-factor.
+ Full-assembly NFRC U-factor. If not provided, defaults to 0.33.
Double
Btu/hr-ft^2-R
- true
+ false
false
- 0.33
skylight_shgc
Skylights: SHGC
- Full-assembly NFRC solar heat gain coefficient.
+ Full-assembly NFRC solar heat gain coefficient. If not provided, defaults to 0.45.
Double
- true
+ false
false
- 0.45
skylight_storm_type
@@ -2270,22 +2226,20 @@
door_area
Doors: Area
- The area of the opaque door(s).
+ The area of the opaque door(s}.
Double
ft^2
true
false
- 20
door_rvalue
Doors: R-value
- R-value of the opaque door(s).
+ R-value of the opaque door(s}.
Double
h-ft^2-R/Btu
true
false
- 4.4
air_leakage_leakiness_description
@@ -2294,7 +2248,6 @@
Choice
false
false
- average
very tight
@@ -2386,11 +2339,15 @@
air_leakage_has_flue_or_chimney_in_conditioned_space
Air Leakage: Has Flue or Chimney in Conditioned Space
- Presence of flue or chimney with combustion air from conditioned space; used for infiltration model. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#flue-or-chimney'>Flue or Chimney</a>) is used.
- Boolean
+ Presence of flue or chimney with combustion air from conditioned space; used for infiltration model. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#flue-or-chimney'>Flue or Chimney</a>) is used.
+ Choice
false
false
+
+ auto
+ auto
+
true
true
@@ -2408,7 +2365,6 @@
Choice
true
false
- Furnace
none
@@ -2461,9 +2417,8 @@
Heating System: Fuel Type
The fuel type of the heating system. Ignored for ElectricResistance.
Choice
- true
+ false
false
- natural gas
electricity
@@ -2501,15 +2456,14 @@
The rated heating efficiency value of the heating system.
Double
Frac
- true
+ false
false
- 0.78
heating_system_heating_capacity
Heating System: Heating Capacity
- The output heating capacity of the heating system. If not provided, the OS-HPXML autosized default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-heating-systems'>HPXML Heating Systems</a>) is used.
- Double
+ The output heating capacity of the heating system. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-heating-systems'>HPXML Heating Systems</a>) is used.
+ String
Btu/hr
false
false
@@ -2534,12 +2488,11 @@
heating_system_fraction_heat_load_served
Heating System: Fraction Heat Load Served
- The heating load served by the heating system.
+ The heating load served by the heating system. If not provided, defaults to 1.
Double
Frac
- true
+ false
false
- 1
heating_system_pilot_light
@@ -2553,7 +2506,7 @@
heating_system_airflow_defect_ratio
Heating System: Airflow Defect Ratio
- The airflow defect ratio, defined as (InstalledAirflow - DesignAirflow) / DesignAirflow, of the heating system per ANSI/RESNET/ACCA Standard 310. A value of zero means no airflow defect. Applies only to Furnace. If not provided, assumes no defect.
+ The airflow defect ratio, defined as (InstalledAirflow - DesignAirflow} / DesignAirflow, of the heating system per ANSI/RESNET/ACCA Standard 310. A value of zero means no airflow defect. Applies only to Furnace. If not provided, assumes no defect.
Double
Frac
false
@@ -2566,7 +2519,6 @@
Choice
true
false
- central air conditioner
none
@@ -2597,11 +2549,10 @@
cooling_system_cooling_efficiency_type
Cooling System: Efficiency Type
- The efficiency type of the cooling system. System types central air conditioner and mini-split use SEER or SEER2. System types room air conditioner and packaged terminal air conditioner use EER or CEER. Ignored for system type evaporative cooler.
+ The efficiency type of the cooling system. System types central air conditioner and mini-split use SEER or SEER2. System types room air conditioner and packaged terminal air conditioner use EER or CEER. Ignored for system type evaporative cooler. If not provided, defaults to SEER.
Choice
- true
+ false
false
- SEER
SEER
@@ -2626,18 +2577,21 @@
Cooling System: Efficiency
The rated efficiency value of the cooling system. Ignored for evaporative cooler.
Double
- true
+ false
false
- 13
cooling_system_cooling_compressor_type
Cooling System: Cooling Compressor Type
- The compressor type of the cooling system. Only applies to central air conditioner and mini-split. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#central-air-conditioner'>Central Air Conditioner</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#mini-split-air-conditioner'>Mini-Split Air Conditioner</a>) is used.
+ The compressor type of the cooling system. Only applies to central air conditioner and mini-split. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#central-air-conditioner'>Central Air Conditioner</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#mini-split-air-conditioner'>Mini-Split Air Conditioner</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
single stage
single stage
@@ -2655,8 +2609,8 @@
cooling_system_cooling_sensible_heat_fraction
Cooling System: Cooling Sensible Heat Fraction
- The sensible heat fraction of the cooling system. Ignored for evaporative cooler. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#central-air-conditioner'>Central Air Conditioner</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#room-air-conditioner'>Room Air Conditioner</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#packaged-terminal-air-conditioner'>Packaged Terminal Air Conditioner</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#mini-split-air-conditioner'>Mini-Split Air Conditioner</a>) is used.
- Double
+ The sensible heat fraction of the cooling system. Ignored for evaporative cooler. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#central-air-conditioner'>Central Air Conditioner</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#room-air-conditioner'>Room Air Conditioner</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#packaged-terminal-air-conditioner'>Packaged Terminal Air Conditioner</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#mini-split-air-conditioner'>Mini-Split Air Conditioner</a>) is used.
+ String
Frac
false
false
@@ -2664,8 +2618,8 @@
cooling_system_cooling_capacity
Cooling System: Cooling Capacity
- The output cooling capacity of the cooling system. If not provided, the OS-HPXML autosized default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#central-air-conditioner'>Central Air Conditioner</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#room-air-conditioner'>Room Air Conditioner</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#packaged-terminal-air-conditioner'>Packaged Terminal Air Conditioner</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#evaporative-cooler'>Evaporative Cooler</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#mini-split-air-conditioner'>Mini-Split Air Conditioner</a>) is used.
- Double
+ The output cooling capacity of the cooling system. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#central-air-conditioner'>Central Air Conditioner</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#room-air-conditioner'>Room Air Conditioner</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#packaged-terminal-air-conditioner'>Packaged Terminal Air Conditioner</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#evaporative-cooler'>Evaporative Cooler</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#mini-split-air-conditioner'>Mini-Split Air Conditioner</a>) is used.
+ String
Btu/hr
false
false
@@ -2690,12 +2644,11 @@
cooling_system_fraction_cool_load_served
Cooling System: Fraction Cool Load Served
- The cooling load served by the cooling system.
+ The cooling load served by the cooling system. If not provided, defaults to 1.
Double
Frac
- true
+ false
false
- 1
cooling_system_is_ducted
@@ -2704,7 +2657,6 @@
Boolean
false
false
- false
true
@@ -2719,7 +2671,7 @@
cooling_system_airflow_defect_ratio
Cooling System: Airflow Defect Ratio
- The airflow defect ratio, defined as (InstalledAirflow - DesignAirflow) / DesignAirflow, of the cooling system per ANSI/RESNET/ACCA Standard 310. A value of zero means no airflow defect. Applies only to central air conditioner and ducted mini-split. If not provided, assumes no defect.
+ The airflow defect ratio, defined as (InstalledAirflow - DesignAirflow} / DesignAirflow, of the cooling system per ANSI/RESNET/ACCA Standard 310. A value of zero means no airflow defect. Applies only to central air conditioner and ducted mini-split. If not provided, assumes no defect.
Double
Frac
false
@@ -2728,7 +2680,7 @@
cooling_system_charge_defect_ratio
Cooling System: Charge Defect Ratio
- The refrigerant charge defect ratio, defined as (InstalledCharge - DesignCharge) / DesignCharge, of the cooling system per ANSI/RESNET/ACCA Standard 310. A value of zero means no refrigerant charge defect. Applies only to central air conditioner and mini-split. If not provided, assumes no defect.
+ The refrigerant charge defect ratio, defined as (InstalledCharge - DesignCharge} / DesignCharge, of the cooling system per ANSI/RESNET/ACCA Standard 310. A value of zero means no refrigerant charge defect. Applies only to central air conditioner and mini-split. If not provided, assumes no defect.
Double
Frac
false
@@ -2737,8 +2689,8 @@
cooling_system_crankcase_heater_watts
Cooling System: Crankcase Heater Power Watts
- Cooling system crankcase heater power consumption in Watts. Applies only to central air conditioner, room air conditioner, packaged terminal air conditioner and mini-split. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#central-air-conditioner'>Central Air Conditioner</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#room-air-conditioner'>Room Air Conditioner</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#packaged-terminal-air-conditioner'>Packaged Terminal Air Conditioner</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#mini-split-air-conditioner'>Mini-Split Air Conditioner</a>) is used.
- Double
+ Cooling system crankcase heater power consumption in Watts. Applies only to central air conditioner, room air conditioner, packaged terminal air conditioner and mini-split. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#central-air-conditioner'>Central Air Conditioner</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#room-air-conditioner'>Room Air Conditioner</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#packaged-terminal-air-conditioner'>Packaged Terminal Air Conditioner</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#mini-split-air-conditioner'>Mini-Split Air Conditioner</a>) is used.
+ String
W
false
false
@@ -2793,8 +2745,8 @@
cooling_system_integrated_heating_system_capacity
Cooling System: Integrated Heating System Heating Capacity
- The output heating capacity of the heating system integrated into cooling system. If not provided, the OS-HPXML autosized default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#room-air-conditioner'>Room Air Conditioner</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#packaged-terminal-air-conditioner'>Packaged Terminal Air Conditioner</a>) is used. Only used for room air conditioner and packaged terminal air conditioner.
- Double
+ The output heating capacity of the heating system integrated into cooling system. Only used for room air conditioner and packaged terminal air conditioner. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#room-air-conditioner'>Room Air Conditioner</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#packaged-terminal-air-conditioner'>Packaged Terminal Air Conditioner</a>) is used.
+ String
Btu/hr
false
false
@@ -2815,7 +2767,6 @@
Choice
true
false
- none
none
@@ -2846,11 +2797,10 @@
heat_pump_heating_efficiency_type
Heat Pump: Heating Efficiency Type
- The heating efficiency type of heat pump. System types air-to-air and mini-split use HSPF or HSPF2. System types ground-to-air, packaged terminal heat pump and room air conditioner with reverse cycle use COP.
+ The heating efficiency type of heat pump. System types air-to-air and mini-split use HSPF or HSPF2. System types ground-to-air, packaged terminal heat pump and room air conditioner with reverse cycle use COP. If not provided, defaults to HSPF.
Choice
- true
+ false
false
- HSPF
HSPF
@@ -2871,18 +2821,16 @@
Heat Pump: Heating Efficiency
The rated heating efficiency value of the heat pump.
Double
- true
+ false
false
- 7.7
heat_pump_cooling_efficiency_type
Heat Pump: Cooling Efficiency Type
- The cooling efficiency type of heat pump. System types air-to-air and mini-split use SEER or SEER2. System types ground-to-air, packaged terminal heat pump and room air conditioner with reverse cycle use EER.
+ The cooling efficiency type of heat pump. System types air-to-air and mini-split use SEER or SEER2. System types ground-to-air, packaged terminal heat pump and room air conditioner with reverse cycle use EER. If not provided, defaults to SEER.
Choice
- true
+ false
false
- SEER
SEER
@@ -2907,18 +2855,25 @@
Heat Pump: Cooling Efficiency
The rated cooling efficiency value of the heat pump.
Double
- true
+ false
false
- 13
heat_pump_cooling_compressor_type
Heat Pump: Cooling Compressor Type
- The compressor type of the heat pump. Only applies to air-to-air and mini-split. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-to-air-heat-pump'>Air-to-Air Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#mini-split-heat-pump'>Mini-Split Heat Pump</a>) is used.
+ The compressor type of the heat pump. Only applies to air-to-air and mini-split. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-to-air-heat-pump'>Air-to-Air Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#mini-split-heat-pump'>Mini-Split Heat Pump</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
+
+ auto
+ auto
+
single stage
single stage
@@ -2936,8 +2891,8 @@
heat_pump_cooling_sensible_heat_fraction
Heat Pump: Cooling Sensible Heat Fraction
- The sensible heat fraction of the heat pump. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-to-air-heat-pump'>Air-to-Air Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#mini-split-heat-pump'>Mini-Split Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#packaged-terminal-heat-pump'>Packaged Terminal Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#room-air-conditioner-w-reverse-cycle'>Room Air Conditioner w/ Reverse Cycle</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#ground-to-air-heat-pump'>Ground-to-Air Heat Pump</a>) is used.
- Double
+ The sensible heat fraction of the heat pump. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-to-air-heat-pump'>Air-to-Air Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#mini-split-heat-pump'>Mini-Split Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#packaged-terminal-heat-pump'>Packaged Terminal Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#room-air-conditioner-w-reverse-cycle'>Room Air Conditioner w/ Reverse Cycle</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#ground-to-air-heat-pump'>Ground-to-Air Heat Pump</a>) is used.
+ String
Frac
false
false
@@ -2945,8 +2900,8 @@
heat_pump_heating_capacity
Heat Pump: Heating Capacity
- The output heating capacity of the heat pump. If not provided, the OS-HPXML autosized default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-to-air-heat-pump'>Air-to-Air Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#mini-split-heat-pump'>Mini-Split Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#packaged-terminal-heat-pump'>Packaged Terminal Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#room-air-conditioner-w-reverse-cycle'>Room Air Conditioner w/ Reverse Cycle</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#ground-to-air-heat-pump'>Ground-to-Air Heat Pump</a>) is used.
- Double
+ The output heating capacity of the heat pump. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-to-air-heat-pump'>Air-to-Air Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#mini-split-heat-pump'>Mini-Split Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#packaged-terminal-heat-pump'>Packaged Terminal Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#room-air-conditioner-w-reverse-cycle'>Room Air Conditioner w/ Reverse Cycle</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#ground-to-air-heat-pump'>Ground-to-Air Heat Pump</a>) is used.
+ String
Btu/hr
false
false
@@ -2971,8 +2926,8 @@
heat_pump_heating_capacity_retention_fraction
Heat Pump: Heating Capacity Retention Fraction
- The output heating capacity of the heat pump at a user-specified temperature (e.g., 17F or 5F) divided by the above nominal heating capacity. Applies to all heat pump types except ground-to-air. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-to-air-heat-pump'>Air-to-Air Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#mini-split-heat-pump'>Mini-Split Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#packaged-terminal-heat-pump'>Packaged Terminal Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#room-air-conditioner-w-reverse-cycle'>Room Air Conditioner w/ Reverse Cycle</a>) is used.
- Double
+ The output heating capacity of the heat pump at a user-specified temperature (e.g., 17F or 5F} divided by the above nominal heating capacity. Applies to all heat pump types except ground-to-air. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-to-air-heat-pump'>Air-to-Air Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#mini-split-heat-pump'>Mini-Split Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#packaged-terminal-heat-pump'>Packaged Terminal Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#room-air-conditioner-w-reverse-cycle'>Room Air Conditioner w/ Reverse Cycle</a>) is used.
+ String
Frac
false
false
@@ -2980,7 +2935,7 @@
heat_pump_heating_capacity_retention_temp
Heat Pump: Heating Capacity Retention Temperature
- The user-specified temperature (e.g., 17F or 5F) for the above heating capacity retention fraction. Applies to all heat pump types except ground-to-air. Required if the Heating Capacity Retention Fraction is provided.
+ The user-specified temperature (e.g., 17F or 5F} for the above heating capacity retention fraction. Applies to all heat pump types except ground-to-air. Required if the Heating Capacity Retention Fraction is provided.
Double
F
false
@@ -2989,8 +2944,8 @@
heat_pump_cooling_capacity
Heat Pump: Cooling Capacity
- The output cooling capacity of the heat pump. If not provided, the OS-HPXML autosized default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-to-air-heat-pump'>Air-to-Air Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#mini-split-heat-pump'>Mini-Split Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#packaged-terminal-heat-pump'>Packaged Terminal Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#room-air-conditioner-w-reverse-cycle'>Room Air Conditioner w/ Reverse Cycle</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#ground-to-air-heat-pump'>Ground-to-Air Heat Pump</a>) is used.
- Double
+ The output cooling capacity of the heat pump. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-to-air-heat-pump'>Air-to-Air Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#mini-split-heat-pump'>Mini-Split Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#packaged-terminal-heat-pump'>Packaged Terminal Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#room-air-conditioner-w-reverse-cycle'>Room Air Conditioner w/ Reverse Cycle</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#ground-to-air-heat-pump'>Ground-to-Air Heat Pump</a>) is used.
+ String
Btu/hr
false
false
@@ -3015,28 +2970,26 @@
heat_pump_fraction_heat_load_served
Heat Pump: Fraction Heat Load Served
- The heating load served by the heat pump.
+ The heating load served by the heat pump. If not provided, defaults to 1.
Double
Frac
- true
+ false
false
- 1
heat_pump_fraction_cool_load_served
Heat Pump: Fraction Cool Load Served
- The cooling load served by the heat pump.
+ The cooling load served by the heat pump. If not provided, defaults to 1.
Double
Frac
- true
+ false
false
- 1
heat_pump_compressor_lockout_temp
Heat Pump: Compressor Lockout Temperature
- The temperature below which the heat pump compressor is disabled. If both this and Backup Heating Lockout Temperature are provided and use the same value, it essentially defines a switchover temperature (for, e.g., a dual-fuel heat pump). Applies to all heat pump types other than ground-to-air. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-to-air-heat-pump'>Air-to-Air Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#mini-split-heat-pump'>Mini-Split Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#packaged-terminal-heat-pump'>Packaged Terminal Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#room-air-conditioner-w-reverse-cycle'>Room Air Conditioner w/ Reverse Cycle</a>) is used.
- Double
+ The temperature below which the heat pump compressor is disabled. If both this and Backup Heating Lockout Temperature are provided and use the same value, it essentially defines a switchover temperature (for, e.g., a dual-fuel heat pump}. Applies to all heat pump types other than ground-to-air. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-to-air-heat-pump'>Air-to-Air Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#mini-split-heat-pump'>Mini-Split Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#packaged-terminal-heat-pump'>Packaged Terminal Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#room-air-conditioner-w-reverse-cycle'>Room Air Conditioner w/ Reverse Cycle</a>) is used.
+ String
F
false
false
@@ -3044,11 +2997,10 @@
heat_pump_backup_type
Heat Pump: Backup Type
- The backup type of the heat pump. If 'integrated', represents e.g. built-in electric strip heat or dual-fuel integrated furnace. If 'separate', represents e.g. electric baseboard or boiler based on the Heating System 2 specified below. Use 'none' if there is no backup heating.
+ The backup type of the heat pump. If 'integrated', represents e.g. built-in electric strip heat or dual-fuel integrated furnace. If 'separate', represents e.g. electric baseboard or boiler based on the Heating System 2 specified below. Use 'none' if there is no backup heating. If not provided, defaults to 'integrated'.
Choice
- true
+ false
false
- integrated
none
@@ -3084,11 +3036,10 @@
heat_pump_backup_fuel
Heat Pump: Backup Fuel Type
- The backup fuel type of the heat pump. Only applies if Backup Type is 'integrated'.
+ The backup fuel type of the heat pump. Only applies if Backup Type is 'integrated'. If not provided, defaults to electricity.
Choice
- true
+ false
false
- electricity
electricity
@@ -3111,17 +3062,16 @@
heat_pump_backup_heating_efficiency
Heat Pump: Backup Rated Efficiency
- The backup rated efficiency value of the heat pump. Percent for electricity fuel type. AFUE otherwise. Only applies if Backup Type is 'integrated'.
+ The backup rated efficiency value of the heat pump. Percent for electricity fuel type. AFUE otherwise. Only applies if Backup Type is 'integrated'. If not provided, defaults to 1.
Double
- true
+ false
false
- 1
heat_pump_backup_heating_capacity
Heat Pump: Backup Heating Capacity
- The backup output heating capacity of the heat pump. If not provided, the OS-HPXML autosized default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#backup'>Backup</a>) is used. Only applies if Backup Type is 'integrated'.
- Double
+ The backup output heating capacity of the heat pump. Only applies if Backup Type is 'integrated'. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#backup'>Backup</a>) is used.
+ String
Btu/hr
false
false
@@ -3129,8 +3079,8 @@
heat_pump_backup_heating_lockout_temp
Heat Pump: Backup Heating Lockout Temperature
- The temperature above which the heat pump backup system is disabled. If both this and Compressor Lockout Temperature are provided and use the same value, it essentially defines a switchover temperature (for, e.g., a dual-fuel heat pump). Applies for both Backup Type of 'integrated' and 'separate'. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#backup'>Backup</a>) is used.
- Double
+ The temperature above which the heat pump backup system is disabled. If both this and Compressor Lockout Temperature are provided and use the same value, it essentially defines a switchover temperature (for, e.g., a dual-fuel heat pump}. Applies for both Backup Type of 'integrated' and 'separate'. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#backup'>Backup</a>) is used.
+ String
F
false
false
@@ -3138,11 +3088,15 @@
heat_pump_sizing_methodology
Heat Pump: Sizing Methodology
- The auto-sizing methodology to use when the heat pump capacity is not provided. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-hvac-sizing-control'>HPXML HVAC Sizing Control</a>) is used.
+ The auto-sizing methodology to use when the heat pump capacity is not provided. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-hvac-sizing-control'>HPXML HVAC Sizing Control</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
ACCA
ACCA
@@ -3160,11 +3114,15 @@
heat_pump_backup_sizing_methodology
Heat Pump: Backup Sizing Methodology
- The auto-sizing methodology to use when the heat pump backup capacity is not provided. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-hvac-sizing-control'>HPXML HVAC Sizing Control</a>) is used.
+ The auto-sizing methodology to use when the heat pump backup capacity is not provided. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-hvac-sizing-control'>HPXML HVAC Sizing Control</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
emergency
emergency
@@ -3196,7 +3154,7 @@
heat_pump_airflow_defect_ratio
Heat Pump: Airflow Defect Ratio
- The airflow defect ratio, defined as (InstalledAirflow - DesignAirflow) / DesignAirflow, of the heat pump per ANSI/RESNET/ACCA Standard 310. A value of zero means no airflow defect. Applies only to air-to-air, ducted mini-split, and ground-to-air. If not provided, assumes no defect.
+ The airflow defect ratio, defined as (InstalledAirflow - DesignAirflow} / DesignAirflow, of the heat pump per ANSI/RESNET/ACCA Standard 310. A value of zero means no airflow defect. Applies only to air-to-air, ducted mini-split, and ground-to-air. If not provided, assumes no defect.
Double
Frac
false
@@ -3205,7 +3163,7 @@
heat_pump_charge_defect_ratio
Heat Pump: Charge Defect Ratio
- The refrigerant charge defect ratio, defined as (InstalledCharge - DesignCharge) / DesignCharge, of the heat pump per ANSI/RESNET/ACCA Standard 310. A value of zero means no refrigerant charge defect. Applies to all heat pump types. If not provided, assumes no defect.
+ The refrigerant charge defect ratio, defined as (InstalledCharge - DesignCharge} / DesignCharge, of the heat pump per ANSI/RESNET/ACCA Standard 310. A value of zero means no refrigerant charge defect. Applies to all heat pump types. If not provided, assumes no defect.
Double
Frac
false
@@ -3214,8 +3172,8 @@
heat_pump_crankcase_heater_watts
Heat Pump: Crankcase Heater Power Watts
- Heat Pump crankcase heater power consumption in Watts. Applies only to air-to-air, mini-split, packaged terminal heat pump and room air conditioner with reverse cycle. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-to-air-heat-pump'>Air-to-Air Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#mini-split-heat-pump'>Mini-Split Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#packaged-terminal-heat-pump'>Packaged Terminal Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#room-air-conditioner-w-reverse-cycle'>Room Air Conditioner w/ Reverse Cycle</a>) is used.
- Double
+ Heat Pump crankcase heater power consumption in Watts. Applies only to air-to-air, mini-split, packaged terminal heat pump and room air conditioner with reverse cycle. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-to-air-heat-pump'>Air-to-Air Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#mini-split-heat-pump'>Mini-Split Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#packaged-terminal-heat-pump'>Packaged Terminal Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#room-air-conditioner-w-reverse-cycle'>Room Air Conditioner w/ Reverse Cycle</a>) is used.
+ String
W
false
false
@@ -3223,9 +3181,8 @@
hvac_perf_data_capacity_type
HVAC Detailed Performance Data: Capacity Type
- Type of capacity values for detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps).
+ Type of capacity values for detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}.
Choice
- Absolute capacities
false
false
@@ -3242,7 +3199,7 @@
hvac_perf_data_heating_outdoor_temperatures
HVAC Detailed Performance Data: Heating Outdoor Temperatures
- Outdoor temperatures of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). One of the outdoor temperatures must be 47 F. At least two performance data points are required using a comma-separated list.
+ Outdoor temperatures of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. One of the outdoor temperatures must be 47 F. At least two performance data points are required using a comma-separated list.
String
F
false
@@ -3251,7 +3208,7 @@
hvac_perf_data_heating_min_speed_capacities
HVAC Detailed Performance Data: Heating Minimum Speed Capacities
- Minimum speed capacities of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). At least two performance data points are required using a comma-separated list.
+ Minimum speed capacities of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. At least two performance data points are required using a comma-separated list.
String
Btu/hr or Frac
false
@@ -3260,7 +3217,7 @@
hvac_perf_data_heating_max_speed_capacities
HVAC Detailed Performance Data: Heating Maximum Speed Capacities
- Maximum speed capacities of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). At least two performance data points are required using a comma-separated list.
+ Maximum speed capacities of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. At least two performance data points are required using a comma-separated list.
String
Btu/hr or Frac
false
@@ -3269,7 +3226,7 @@
hvac_perf_data_heating_min_speed_cops
HVAC Detailed Performance Data: Heating Minimum Speed COPs
- Minimum speed efficiency COP values of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). At least two performance data points are required using a comma-separated list.
+ Minimum speed efficiency COP values of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. At least two performance data points are required using a comma-separated list.
String
W/W
false
@@ -3278,7 +3235,7 @@
hvac_perf_data_heating_max_speed_cops
HVAC Detailed Performance Data: Heating Maximum Speed COPs
- Maximum speed efficiency COP values of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). At least two performance data points are required using a comma-separated list.
+ Maximum speed efficiency COP values of heating detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. At least two performance data points are required using a comma-separated list.
String
W/W
false
@@ -3287,7 +3244,7 @@
hvac_perf_data_cooling_outdoor_temperatures
HVAC Detailed Performance Data: Cooling Outdoor Temperatures
- Outdoor temperatures of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). One of the outdoor temperatures must be 95 F. At least two performance data points are required using a comma-separated list.
+ Outdoor temperatures of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. One of the outdoor temperatures must be 95 F. At least two performance data points are required using a comma-separated list.
String
F
false
@@ -3296,7 +3253,7 @@
hvac_perf_data_cooling_min_speed_capacities
HVAC Detailed Performance Data: Cooling Minimum Speed Capacities
- Minimum speed capacities of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). At least two performance data points are required using a comma-separated list.
+ Minimum speed capacities of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. At least two performance data points are required using a comma-separated list.
String
Btu/hr or Frac
false
@@ -3305,7 +3262,7 @@
hvac_perf_data_cooling_max_speed_capacities
HVAC Detailed Performance Data: Cooling Maximum Speed Capacities
- Maximum speed capacities of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). At least two performance data points are required using a comma-separated list.
+ Maximum speed capacities of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. At least two performance data points are required using a comma-separated list.
String
Btu/hr or Frac
false
@@ -3314,7 +3271,7 @@
hvac_perf_data_cooling_min_speed_cops
HVAC Detailed Performance Data: Cooling Minimum Speed COPs
- Minimum speed efficiency COP values of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). At least two performance data points are required using a comma-separated list.
+ Minimum speed efficiency COP values of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. At least two performance data points are required using a comma-separated list.
String
W/W
false
@@ -3323,7 +3280,7 @@
hvac_perf_data_cooling_max_speed_cops
HVAC Detailed Performance Data: Cooling Maximum Speed COPs
- Maximum speed efficiency COP values of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps). At least two performance data points are required using a comma-separated list.
+ Maximum speed efficiency COP values of cooling detailed performance data if available. Applies only to variable-speed air-source HVAC systems (central air conditioners, mini-split air conditioners, air-to-air heat pumps, and mini-split heat pumps}. At least two performance data points are required using a comma-separated list.
String
W/W
false
@@ -3332,11 +3289,15 @@
geothermal_loop_configuration
Geothermal Loop: Configuration
- Configuration of the geothermal loop. Only applies to ground-to-air heat pump type. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#ground-to-air-heat-pump'>Ground-to-Air Heat Pump</a>) is used.
+ Configuration of the geothermal loop. Only applies to ground-to-air heat pump type. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#ground-to-air-heat-pump'>Ground-to-Air Heat Pump</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
none
none
@@ -3350,11 +3311,15 @@
geothermal_loop_borefield_configuration
Geothermal Loop: Borefield Configuration
- Borefield configuration of the geothermal loop. Only applies to ground-to-air heat pump type. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-geothermal-loops'>HPXML Geothermal Loops</a>) is used.
+ Borefield configuration of the geothermal loop. Only applies to ground-to-air heat pump type. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-geothermal-loops'>HPXML Geothermal Loops</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
Rectangle
Rectangle
@@ -3384,8 +3349,8 @@
geothermal_loop_loop_flow
Geothermal Loop: Loop Flow
- Water flow rate through the geothermal loop. Only applies to ground-to-air heat pump type. If not provided, the OS-HPXML autosized default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-geothermal-loops'>HPXML Geothermal Loops</a>) is used.
- Double
+ Water flow rate through the geothermal loop. Only applies to ground-to-air heat pump type. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-geothermal-loops'>HPXML Geothermal Loops</a>) is used.
+ String
gpm
false
false
@@ -3393,8 +3358,8 @@
geothermal_loop_boreholes_count
Geothermal Loop: Boreholes Count
- Number of boreholes. Only applies to ground-to-air heat pump type. If not provided, the OS-HPXML autosized default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-geothermal-loops'>HPXML Geothermal Loops</a>) is used.
- Integer
+ Number of boreholes. Only applies to ground-to-air heat pump type. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-geothermal-loops'>HPXML Geothermal Loops</a>) is used.
+ String
#
false
false
@@ -3402,8 +3367,8 @@
geothermal_loop_boreholes_length
Geothermal Loop: Boreholes Length
- Average length of each borehole (vertical). Only applies to ground-to-air heat pump type. If not provided, the OS-HPXML autosized default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-geothermal-loops'>HPXML Geothermal Loops</a>) is used.
- Double
+ Average length of each borehole (vertical}. Only applies to ground-to-air heat pump type. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-geothermal-loops'>HPXML Geothermal Loops</a>) is used.
+ String
ft
false
false
@@ -3411,8 +3376,8 @@
geothermal_loop_boreholes_spacing
Geothermal Loop: Boreholes Spacing
- Distance between bores. Only applies to ground-to-air heat pump type. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-geothermal-loops'>HPXML Geothermal Loops</a>) is used.
- Double
+ Distance between bores. Only applies to ground-to-air heat pump type. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-geothermal-loops'>HPXML Geothermal Loops</a>) is used.
+ String
ft
false
false
@@ -3420,8 +3385,8 @@
geothermal_loop_boreholes_diameter
Geothermal Loop: Boreholes Diameter
- Diameter of bores. Only applies to ground-to-air heat pump type. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-geothermal-loops'>HPXML Geothermal Loops</a>) is used.
- Double
+ Diameter of bores. Only applies to ground-to-air heat pump type. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-geothermal-loops'>HPXML Geothermal Loops</a>) is used.
+ String
in
false
false
@@ -3429,11 +3394,15 @@
geothermal_loop_grout_type
Geothermal Loop: Grout Type
- Grout type of the geothermal loop. Only applies to ground-to-air heat pump type. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-geothermal-loops'>HPXML Geothermal Loops</a>) is used.
+ Grout type of the geothermal loop. Only applies to ground-to-air heat pump type. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-geothermal-loops'>HPXML Geothermal Loops</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
standard
standard
@@ -3447,11 +3416,19 @@
geothermal_loop_pipe_type
Geothermal Loop: Pipe Type
- Pipe type of the geothermal loop. Only applies to ground-to-air heat pump type. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-geothermal-loops'>HPXML Geothermal Loops</a>) is used.
+ Pipe type of the geothermal loop. Only applies to ground-to-air heat pump type. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-geothermal-loops'>HPXML Geothermal Loops</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
+
+ auto
+ auto
+
standard
standard
@@ -3465,12 +3442,16 @@
geothermal_loop_pipe_diameter
Geothermal Loop: Pipe Diameter
- Pipe diameter of the geothermal loop. Only applies to ground-to-air heat pump type. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-geothermal-loops'>HPXML Geothermal Loops</a>) is used.
+ Pipe diameter of the geothermal loop. Only applies to ground-to-air heat pump type. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-geothermal-loops'>HPXML Geothermal Loops</a>) is used.
Choice
in
false
false
+
+ auto
+ auto
+
3/4" pipe
3/4" pipe
@@ -3488,11 +3469,10 @@
heating_system_2_type
Heating System 2: Type
- The type of the second heating system. If a heat pump is specified and the backup type is 'separate', this heating system represents 'separate' backup heating. For ducted heat pumps where the backup heating system is a 'Furnace', the backup would typically be characterized as 'integrated' in that the furnace and heat pump share the same distribution system and blower fan; a 'Furnace' as 'separate' backup to a ducted heat pump is not supported.
+ The type of the second heating system. If a heat pump is specified and the backup type is 'separate', this heating system represents 'separate' backup heating. For ducted heat pumps where the backup heating system is a 'Furnace', the backup would typically be characterized as 'integrated' in that the furnace and heat pump share the same distribution system and blower fan; a 'Furnace' as 'separate' backup to a ducted heat pump is not supported. If not provided, defaults to none.
Choice
- true
+ false
false
- none
none
@@ -3535,11 +3515,10 @@
heating_system_2_fuel
Heating System 2: Fuel Type
- The fuel type of the second heating system. Ignored for ElectricResistance.
+ The fuel type of the second heating system. Ignored for ElectricResistance. If not provided, defaults to electricity.
Choice
- true
+ false
false
- electricity
electricity
@@ -3574,18 +3553,17 @@
heating_system_2_heating_efficiency
Heating System 2: Rated AFUE or Percent
- The rated heating efficiency value of the second heating system.
+ The rated heating efficiency value of the second heating system. If not provided, defaults to 1.
Double
Frac
- true
+ false
false
- 1
heating_system_2_heating_capacity
Heating System 2: Heating Capacity
- The output heating capacity of the second heating system. If not provided, the OS-HPXML autosized default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-heating-systems'>HPXML Heating Systems</a>) is used.
- Double
+ The output heating capacity of the second heating system. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-heating-systems'>HPXML Heating Systems</a>) is used.
+ String
Btu/hr
false
false
@@ -3610,12 +3588,11 @@
heating_system_2_fraction_heat_load_served
Heating System 2: Fraction Heat Load Served
- The heat load served fraction of the second heating system. Ignored if this heating system serves as a backup system for a heat pump.
+ The heat load served fraction of the second heating system. Ignored if this heating system serves as a backup system for a heat pump. If not provided, defaults to 0.25.
Double
Frac
- true
+ false
false
- 0.25
hvac_control_heating_weekday_setpoint
@@ -3656,7 +3633,7 @@
hvac_control_heating_season_period
HVAC Control: Heating Season Period
- Enter a date range like 'Nov 1 - Jun 30'. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-hvac-control'>HPXML HVAC Control</a>) is used. Can also provide 'BuildingAmerica' to use automatic seasons from the Building America House Simulation Protocols.
+ Enter a date range like 'Nov 1 - Jun 30'. Can also provide 'BuildingAmerica' to use automatic seasons from the Building America House Simulation Protocols. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-hvac-control'>HPXML HVAC Control</a>) is used.
String
false
false
@@ -3664,7 +3641,7 @@
hvac_control_cooling_season_period
HVAC Control: Cooling Season Period
- Enter a date range like 'Jun 1 - Oct 31'. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-hvac-control'>HPXML HVAC Control</a>) is used. Can also provide 'BuildingAmerica' to use automatic seasons from the Building America House Simulation Protocols.
+ Enter a date range like 'Jun 1 - Oct 31'. Can also provide 'BuildingAmerica' to use automatic seasons from the Building America House Simulation Protocols. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-hvac-control'>HPXML HVAC Control</a>) is used.
String
false
false
@@ -3672,8 +3649,8 @@
hvac_blower_fan_watts_per_cfm
HVAC Blower: Fan Efficiency
- The blower fan efficiency at maximum fan speed. Applies only to split (not packaged) systems (i.e., applies to ducted systems as well as ductless mini-split systems). If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-heating-systems'>HPXML Heating Systems</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-cooling-systems'>HPXML Cooling Systems</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-heat-pumps'>HPXML Heat Pumps</a>) is used.
- Double
+ The blower fan efficiency at maximum fan speed. Applies only to split (not packaged} systems (i.e., applies to ducted systems as well as ductless mini-split systems}. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-heating-systems'>HPXML Heating Systems</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-cooling-systems'>HPXML Cooling Systems</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-heat-pumps'>HPXML Heat Pumps</a>) is used.
+ String
W/CFM
false
false
@@ -3683,9 +3660,8 @@
Ducts: Leakage Units
The leakage units of the ducts.
Choice
- true
+ false
false
- Percent
CFM25
@@ -3706,18 +3682,21 @@
Ducts: Supply Leakage to Outside Value
The leakage value to outside for the supply ducts.
Double
- true
+ false
false
- 0.1
ducts_supply_location
Ducts: Supply Location
- The location of the supply ducts. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-distribution'>Air Distribution</a>) is used.
+ The location of the supply ducts. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-distribution'>Air Distribution</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
conditioned space
conditioned space
@@ -3806,18 +3785,21 @@
The nominal insulation r-value of the supply ducts excluding air films. Use 0 for uninsulated ducts.
Double
h-ft^2-R/Btu
- true
+ false
false
- 0
ducts_supply_buried_insulation_level
Ducts: Supply Buried Insulation Level
- Whether the supply ducts are buried in, e.g., attic loose-fill insulation. Partially buried ducts have insulation that does not cover the top of the ducts. Fully buried ducts have insulation that just covers the top of the ducts. Deeply buried ducts have insulation that continues above the top of the ducts.
+ Whether the supply ducts are buried in, e.g., attic loose-fill insulation. Partially buried ducts have insulation that does not cover the top of the ducts. Fully buried ducts have insulation that just covers the top of the ducts. Deeply buried ducts have insulation that continues above the top of the ducts. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-distribution'>Air Distribution</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
not buried
not buried
@@ -3839,8 +3821,8 @@
ducts_supply_surface_area
Ducts: Supply Surface Area
- The supply ducts surface area in the given location. If neither Surface Area nor Area Fraction provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-distribution'>Air Distribution</a>) is used.
- Double
+ The supply ducts surface area in the given location. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-distribution'>Air Distribution</a>) is used.
+ String
ft^2
false
false
@@ -3848,8 +3830,8 @@
ducts_supply_surface_area_fraction
Ducts: Supply Area Fraction
- The fraction of supply ducts surface area in the given location. Only used if Surface Area is not provided. If the fraction is less than 1, the remaining duct area is assumed to be in conditioned space. If neither Surface Area nor Area Fraction provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-distribution'>Air Distribution</a>) is used.
- Double
+ The fraction of supply ducts surface area in the given location. Only used if Surface Area is not provided. If the fraction is less than 1, the remaining duct area is assumed to be in conditioned space. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-distribution'>Air Distribution</a>) is used.
+ String
frac
false
false
@@ -3857,8 +3839,8 @@
ducts_supply_fraction_rectangular
Ducts: Supply Fraction Rectangular
- The fraction of supply ducts that are rectangular (as opposed to round); this affects the duct effective R-value used for modeling. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-distribution'>Air Distribution</a>) is used.
- Double
+ The fraction of supply ducts that are rectangular (as opposed to round}; this affects the duct effective R-value used for modeling. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-distribution'>Air Distribution</a>) is used.
+ String
frac
false
false
@@ -3868,18 +3850,25 @@
Ducts: Return Leakage to Outside Value
The leakage value to outside for the return ducts.
Double
- true
+ false
false
- 0.1
ducts_return_location
Ducts: Return Location
- The location of the return ducts. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-distribution'>Air Distribution</a>) is used.
+ The location of the return ducts. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-distribution'>Air Distribution</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
+
+ auto
+ auto
+
conditioned space
conditioned space
@@ -3968,18 +3957,25 @@
The nominal insulation r-value of the return ducts excluding air films. Use 0 for uninsulated ducts.
Double
h-ft^2-R/Btu
- true
+ false
false
- 0
ducts_return_buried_insulation_level
Ducts: Return Buried Insulation Level
- Whether the return ducts are buried in, e.g., attic loose-fill insulation. Partially buried ducts have insulation that does not cover the top of the ducts. Fully buried ducts have insulation that just covers the top of the ducts. Deeply buried ducts have insulation that continues above the top of the ducts.
+ Whether the return ducts are buried in, e.g., attic loose-fill insulation. Partially buried ducts have insulation that does not cover the top of the ducts. Fully buried ducts have insulation that just covers the top of the ducts. Deeply buried ducts have insulation that continues above the top of the ducts. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-distribution'>Air Distribution</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
+
+ auto
+ auto
+
not buried
not buried
@@ -4001,8 +3997,8 @@
ducts_return_surface_area
Ducts: Return Surface Area
- The return ducts surface area in the given location. If neither Surface Area nor Area Fraction provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-distribution'>Air Distribution</a>) is used.
- Double
+ The return ducts surface area in the given location. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-distribution'>Air Distribution</a>) is used.
+ String
ft^2
false
false
@@ -4010,8 +4006,8 @@
ducts_return_surface_area_fraction
Ducts: Return Area Fraction
- The fraction of return ducts surface area in the given location. Only used if Surface Area is not provided. If the fraction is less than 1, the remaining duct area is assumed to be in conditioned space. If neither Surface Area nor Area Fraction provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-distribution'>Air Distribution</a>) is used.
- Double
+ The fraction of return ducts surface area in the given location. Only used if Surface Area is not provided. If the fraction is less than 1, the remaining duct area is assumed to be in conditioned space. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-distribution'>Air Distribution</a>) is used.
+ String
frac
false
false
@@ -4019,8 +4015,8 @@
ducts_number_of_return_registers
Ducts: Number of Return Registers
- The number of return registers of the ducts. Only used to calculate default return duct surface area. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-distribution'>Air Distribution</a>) is used.
- Integer
+ The number of return registers of the ducts. Only used to calculate default return duct surface area. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-distribution'>Air Distribution</a>) is used.
+ String
#
false
false
@@ -4028,8 +4024,8 @@
ducts_return_fraction_rectangular
Ducts: Return Fraction Rectangular
- The fraction of return ducts that are rectangular (as opposed to round); this affects the duct effective R-value used for modeling. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-distribution'>Air Distribution</a>) is used.
- Double
+ The fraction of return ducts that are rectangular (as opposed to round}; this affects the duct effective R-value used for modeling. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#air-distribution'>Air Distribution</a>) is used.
+ String
frac
false
false
@@ -4037,11 +4033,10 @@
mech_vent_fan_type
Mechanical Ventilation: Fan Type
- The type of the mechanical ventilation. Use 'none' if there is no mechanical ventilation system.
+ The type of the mechanical ventilation. Use 'none' if there is no mechanical ventilation system. If not provided, defaults to none.
Choice
- true
+ false
false
- none
none
@@ -4076,8 +4071,8 @@
mech_vent_flow_rate
Mechanical Ventilation: Flow Rate
- The flow rate of the mechanical ventilation. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-mechanical-ventilation-fans'>HPXML Mechanical Ventilation Fans</a>) is used.
- Double
+ The flow rate of the mechanical ventilation. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-mechanical-ventilation-fans'>HPXML Mechanical Ventilation Fans</a>) is used.
+ String
CFM
false
false
@@ -4085,8 +4080,8 @@
mech_vent_hours_in_operation
Mechanical Ventilation: Hours In Operation
- The hours in operation of the mechanical ventilation. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-mechanical-ventilation-fans'>HPXML Mechanical Ventilation Fans</a>) is used.
- Double
+ The hours in operation of the mechanical ventilation. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-mechanical-ventilation-fans'>HPXML Mechanical Ventilation Fans</a>) is used.
+ String
hrs/day
false
false
@@ -4096,9 +4091,8 @@
Mechanical Ventilation: Total Recovery Efficiency Type
The total recovery efficiency type of the mechanical ventilation.
Choice
- true
+ false
false
- Unadjusted
Unadjusted
@@ -4113,28 +4107,26 @@
mech_vent_total_recovery_efficiency
Mechanical Ventilation: Total Recovery Efficiency
- The Unadjusted or Adjusted total recovery efficiency of the mechanical ventilation. Applies to energy recovery ventilator.
+ The Unadjusted or Adjusted total recovery efficiency of the mechanical ventilation. Applies to energy recovery ventilator. If not provided, defaults to Unadjusted total recovery efficiency of 0.48.
Double
Frac
- true
+ false
false
- 0.48
mech_vent_sensible_recovery_efficiency
Mechanical Ventilation: Sensible Recovery Efficiency
- The Unadjusted or Adjusted sensible recovery efficiency of the mechanical ventilation. Applies to energy recovery ventilator and heat recovery ventilator.
+ The Unadjusted or Adjusted sensible recovery efficiency of the mechanical ventilation. Applies to energy recovery ventilator and heat recovery ventilator. If not provided, defaults to Unadjusted sensible recovery efficiency of 0.72.
Double
Frac
- true
+ false
false
- 0.72
mech_vent_fan_power
Mechanical Ventilation: Fan Power
- The fan power of the mechanical ventilation. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-mechanical-ventilation-fans'>HPXML Mechanical Ventilation Fans</a>) is used.
- Double
+ The fan power of the mechanical ventilation. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-mechanical-ventilation-fans'>HPXML Mechanical Ventilation Fans</a>) is used.
+ String
W
false
false
@@ -4145,9 +4137,8 @@
Number of dwelling units served by the mechanical ventilation system. Must be 1 if single-family detached. Used to apportion flow rate and fan power to the unit.
Integer
#
- true
+ false
false
- 1
mech_vent_shared_frac_recirculation
@@ -4249,11 +4240,10 @@
mech_vent_2_fan_type
Mechanical Ventilation 2: Fan Type
- The type of the second mechanical ventilation. Use 'none' if there is no second mechanical ventilation system.
+ The type of the second mechanical ventilation. Use 'none' if there is no second mechanical ventilation system. If not provided, defaults to none.
Choice
- true
+ false
false
- none
none
@@ -4287,9 +4277,8 @@
The flow rate of the second mechanical ventilation.
Double
CFM
- true
+ false
false
- 110
mech_vent_2_hours_in_operation
@@ -4297,18 +4286,16 @@
The hours in operation of the second mechanical ventilation.
Double
hrs/day
- true
+ false
false
- 24
mech_vent_2_recovery_efficiency_type
Mechanical Ventilation 2: Total Recovery Efficiency Type
The total recovery efficiency type of the second mechanical ventilation.
Choice
- true
+ false
false
- Unadjusted
Unadjusted
@@ -4326,9 +4313,8 @@
The Unadjusted or Adjusted total recovery efficiency of the second mechanical ventilation. Applies to energy recovery ventilator.
Double
Frac
- true
+ false
false
- 0.48
mech_vent_2_sensible_recovery_efficiency
@@ -4336,9 +4322,8 @@
The Unadjusted or Adjusted sensible recovery efficiency of the second mechanical ventilation. Applies to energy recovery ventilator and heat recovery ventilator.
Double
Frac
- true
+ false
false
- 0.72
mech_vent_2_fan_power
@@ -4346,15 +4331,14 @@
The fan power of the second mechanical ventilation.
Double
W
- true
+ false
false
- 30
kitchen_fans_quantity
Kitchen Fans: Quantity
- The quantity of the kitchen fans. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-local-ventilation-fans'>HPXML Local Ventilation Fans</a>) is used.
- Integer
+ The quantity of the kitchen fans. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-local-ventilation-fans'>HPXML Local Ventilation Fans</a>) is used.
+ String
#
false
false
@@ -4362,8 +4346,8 @@
kitchen_fans_flow_rate
Kitchen Fans: Flow Rate
- The flow rate of the kitchen fan. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-local-ventilation-fans'>HPXML Local Ventilation Fans</a>) is used.
- Double
+ The flow rate of the kitchen fan. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-local-ventilation-fans'>HPXML Local Ventilation Fans</a>) is used.
+ String
CFM
false
false
@@ -4371,8 +4355,8 @@
kitchen_fans_hours_in_operation
Kitchen Fans: Hours In Operation
- The hours in operation of the kitchen fan. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-local-ventilation-fans'>HPXML Local Ventilation Fans</a>) is used.
- Double
+ The hours in operation of the kitchen fan. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-local-ventilation-fans'>HPXML Local Ventilation Fans</a>) is used.
+ String
hrs/day
false
false
@@ -4380,8 +4364,8 @@
kitchen_fans_power
Kitchen Fans: Fan Power
- The fan power of the kitchen fan. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-local-ventilation-fans'>HPXML Local Ventilation Fans</a>) is used.
- Double
+ The fan power of the kitchen fan. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-local-ventilation-fans'>HPXML Local Ventilation Fans</a>) is used.
+ String
W
false
false
@@ -4389,8 +4373,8 @@
kitchen_fans_start_hour
Kitchen Fans: Start Hour
- The start hour of the kitchen fan. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-local-ventilation-fans'>HPXML Local Ventilation Fans</a>) is used.
- Integer
+ The start hour of the kitchen fan. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-local-ventilation-fans'>HPXML Local Ventilation Fans</a>) is used.
+ String
hr
false
false
@@ -4398,8 +4382,8 @@
bathroom_fans_quantity
Bathroom Fans: Quantity
- The quantity of the bathroom fans. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-local-ventilation-fans'>HPXML Local Ventilation Fans</a>) is used.
- Integer
+ The quantity of the bathroom fans. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-local-ventilation-fans'>HPXML Local Ventilation Fans</a>) is used.
+ String
#
false
false
@@ -4407,8 +4391,8 @@
bathroom_fans_flow_rate
Bathroom Fans: Flow Rate
- The flow rate of the bathroom fans. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-local-ventilation-fans'>HPXML Local Ventilation Fans</a>) is used.
- Double
+ The flow rate of the bathroom fans. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-local-ventilation-fans'>HPXML Local Ventilation Fans</a>) is used.
+ String
CFM
false
false
@@ -4416,8 +4400,8 @@
bathroom_fans_hours_in_operation
Bathroom Fans: Hours In Operation
- The hours in operation of the bathroom fans. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-local-ventilation-fans'>HPXML Local Ventilation Fans</a>) is used.
- Double
+ The hours in operation of the bathroom fans. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-local-ventilation-fans'>HPXML Local Ventilation Fans</a>) is used.
+ String
hrs/day
false
false
@@ -4425,8 +4409,8 @@
bathroom_fans_power
Bathroom Fans: Fan Power
- The fan power of the bathroom fans. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-local-ventilation-fans'>HPXML Local Ventilation Fans</a>) is used.
- Double
+ The fan power of the bathroom fans. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-local-ventilation-fans'>HPXML Local Ventilation Fans</a>) is used.
+ String
W
false
false
@@ -4434,8 +4418,8 @@
bathroom_fans_start_hour
Bathroom Fans: Start Hour
- The start hour of the bathroom fans. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-local-ventilation-fans'>HPXML Local Ventilation Fans</a>) is used.
- Integer
+ The start hour of the bathroom fans. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-local-ventilation-fans'>HPXML Local Ventilation Fans</a>) is used.
+ String
hr
false
false
@@ -4445,9 +4429,8 @@
Whole House Fan: Present
Whether there is a whole house fan.
Boolean
- true
+ false
false
- false
true
@@ -4462,8 +4445,8 @@
whole_house_fan_flow_rate
Whole House Fan: Flow Rate
- The flow rate of the whole house fan. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-whole-house-fans'>HPXML Whole House Fans</a>) is used.
- Double
+ The flow rate of the whole house fan. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-whole-house-fans'>HPXML Whole House Fans</a>) is used.
+ String
CFM
false
false
@@ -4471,8 +4454,8 @@
whole_house_fan_power
Whole House Fan: Fan Power
- The fan power of the whole house fan. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-whole-house-fans'>HPXML Whole House Fans</a>) is used.
- Double
+ The fan power of the whole house fan. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-whole-house-fans'>HPXML Whole House Fans</a>) is used.
+ String
W
false
false
@@ -4484,7 +4467,6 @@
Choice
true
false
- storage water heater
none
@@ -4517,9 +4499,8 @@
Water Heater: Fuel Type
The fuel type of water heater. Ignored for heat pump water heater.
Choice
- true
+ false
false
- natural gas
electricity
@@ -4550,11 +4531,15 @@
water_heater_location
Water Heater: Location
- The location of water heater. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-water-heating-systems'>HPXML Water Heating Systems</a>) is used.
+ The location of water heater. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-water-heating-systems'>HPXML Water Heating Systems</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
conditioned space
conditioned space
@@ -4624,8 +4609,8 @@
water_heater_tank_volume
Water Heater: Tank Volume
- Nominal volume of water heater tank. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#conventional-storage'>Conventional Storage</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#heat-pump'>Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#combi-boiler-w-storage'>Combi Boiler w/ Storage</a>) is used.
- Double
+ Nominal volume of water heater tank. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#conventional-storage'>Conventional Storage</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#heat-pump'>Heat Pump</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#combi-boiler-w-storage'>Combi Boiler w/ Storage</a>) is used.
+ String
gal
false
false
@@ -4635,9 +4620,8 @@
Water Heater: Efficiency Type
The efficiency type of water heater. Does not apply to space-heating boilers.
Choice
- true
+ false
false
- EnergyFactor
EnergyFactor
@@ -4654,18 +4638,21 @@
Water Heater: Efficiency
Rated Energy Factor or Uniform Energy Factor. Does not apply to space-heating boilers.
Double
- true
+ false
false
- 0.67
water_heater_usage_bin
Water Heater: Usage Bin
- The usage of the water heater. Only applies if Efficiency Type is UniformEnergyFactor and Type is not instantaneous water heater. Does not apply to space-heating boilers. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#conventional-storage'>Conventional Storage</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#heat-pump'>Heat Pump</a>) is used.
+ The usage of the water heater. Only applies if Efficiency Type is UniformEnergyFactor and Type is not instantaneous water heater. Does not apply to space-heating boilers. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#conventional-storage'>Conventional Storage</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#heat-pump'>Heat Pump</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
very small
very small
@@ -4687,8 +4674,8 @@
water_heater_recovery_efficiency
Water Heater: Recovery Efficiency
- Ratio of energy delivered to water heater to the energy content of the fuel consumed by the water heater. Only used for non-electric storage water heaters. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#conventional-storage'>Conventional Storage</a>) is used.
- Double
+ Ratio of energy delivered to water heater to the energy content of the fuel consumed by the water heater. Only used for non-electric storage water heaters. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#conventional-storage'>Conventional Storage</a>) is used.
+ String
Frac
false
false
@@ -4696,8 +4683,8 @@
water_heater_heating_capacity
Water Heater: Heating Capacity
- Heating capacity. Only applies to storage water heater and heat pump water heater (compressor). If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#conventional-storage'>Conventional Storage</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#heat-pump'>Heat Pump</a>) is used.
- Double
+ Heating capacity. Only applies to storage water heater and heat pump water heater (compressor}. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#conventional-storage'>Conventional Storage</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#heat-pump'>Heat Pump</a>) is used.
+ String
Btu/hr
false
false
@@ -4705,8 +4692,8 @@
water_heater_backup_heating_capacity
Water Heater: Backup Heating Capacity
- Backup heating capacity for a heat pump water heater. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#heat-pump'>Heat Pump</a>) is used.
- Double
+ Backup heating capacity for a heat pump water heater. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#heat-pump'>Heat Pump</a>) is used.
+ String
Btu/hr
false
false
@@ -4714,8 +4701,8 @@
water_heater_standby_loss
Water Heater: Standby Loss
- The standby loss of water heater. Only applies to space-heating boilers. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#combi-boiler-w-storage'>Combi Boiler w/ Storage</a>) is used.
- Double
+ The standby loss of water heater. Only applies to space-heating boilers. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#combi-boiler-w-storage'>Combi Boiler w/ Storage</a>) is used.
+ String
F/hr
false
false
@@ -4732,8 +4719,8 @@
water_heater_setpoint_temperature
Water Heater: Setpoint Temperature
- The setpoint temperature of water heater. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-water-heating-systems'>HPXML Water Heating Systems</a>) is used.
- Double
+ The setpoint temperature of water heater. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-water-heating-systems'>HPXML Water Heating Systems</a>) is used.
+ String
F
false
false
@@ -4741,7 +4728,7 @@
water_heater_num_bedrooms_served
Water Heater: Number of Bedrooms Served
- Number of bedrooms served (directly or indirectly) by the water heater. Only needed if single-family attached or apartment unit and it is a shared water heater serving multiple dwelling units. Used to apportion water heater tank losses to the unit.
+ Number of bedrooms served (directly or indirectly} by the water heater. Only needed if single-family attached or apartment unit and it is a shared water heater serving multiple dwelling units. Used to apportion water heater tank losses to the unit.
Integer
#
false
@@ -4768,11 +4755,15 @@
water_heater_tank_model_type
Water Heater: Tank Type
- Type of tank model to use. The 'stratified' tank generally provide more accurate results, but may significantly increase run time. Applies only to storage water heater. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#conventional-storage'>Conventional Storage</a>) is used.
+ Type of tank model to use. The 'stratified' tank generally provide more accurate results, but may significantly increase run time. Applies only to storage water heater. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#conventional-storage'>Conventional Storage</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
mixed
mixed
@@ -4786,11 +4777,15 @@
water_heater_operating_mode
Water Heater: Operating Mode
- The water heater operating mode. The 'heat pump only' option only uses the heat pump, while 'hybrid/auto' allows the backup electric resistance to come on in high demand situations. This is ignored if a scheduled operating mode type is selected. Applies only to heat pump water heater. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#heat-pump'>Heat Pump</a>) is used.
+ The water heater operating mode. The 'heat pump only' option only uses the heat pump, while 'hybrid/auto' allows the backup electric resistance to come on in high demand situations. This is ignored if a scheduled operating mode type is selected. Applies only to heat pump water heater. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#heat-pump'>Heat Pump</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
hybrid/auto
hybrid/auto
@@ -4808,7 +4803,6 @@
Choice
true
false
- Standard
Standard
@@ -4823,8 +4817,8 @@
hot_water_distribution_standard_piping_length
Hot Water Distribution: Standard Piping Length
- If the distribution system is Standard, the length of the piping. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#standard'>Standard</a>) is used.
- Double
+ If the distribution system is Standard, the length of the piping. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#standard'>Standard</a>) is used.
+ String
ft
false
false
@@ -4836,7 +4830,6 @@
Choice
false
false
- no control
no control
@@ -4863,8 +4856,8 @@
hot_water_distribution_recirc_piping_length
Hot Water Distribution: Recirculation Piping Length
- If the distribution system is Recirculation, the length of the recirculation piping. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#recirculation-in-unit'>Recirculation (In-Unit)</a>) is used.
- Double
+ If the distribution system is Recirculation, the length of the recirculation piping. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#recirculation-in-unit'>Recirculation (In-Unit}</a>) is used.
+ String
ft
false
false
@@ -4872,8 +4865,8 @@
hot_water_distribution_recirc_branch_piping_length
Hot Water Distribution: Recirculation Branch Piping Length
- If the distribution system is Recirculation, the length of the recirculation branch piping. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#recirculation-in-unit'>Recirculation (In-Unit)</a>) is used.
- Double
+ If the distribution system is Recirculation, the length of the recirculation branch piping. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#recirculation-in-unit'>Recirculation (In-Unit}</a>) is used.
+ String
ft
false
false
@@ -4881,8 +4874,8 @@
hot_water_distribution_recirc_pump_power
Hot Water Distribution: Recirculation Pump Power
- If the distribution system is Recirculation, the recirculation pump power. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#recirculation-in-unit'>Recirculation (In-Unit)</a>) is used.
- Double
+ If the distribution system is Recirculation, the recirculation pump power. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#recirculation-in-unit'>Recirculation (In-Unit}</a>) is used.
+ String
W
false
false
@@ -4890,8 +4883,8 @@
hot_water_distribution_pipe_r
Hot Water Distribution: Pipe Insulation Nominal R-Value
- Nominal R-value of the pipe insulation. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-hot-water-distribution'>HPXML Hot Water Distribution</a>) is used.
- Double
+ Nominal R-value of the pipe insulation. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-hot-water-distribution'>HPXML Hot Water Distribution</a>) is used.
+ String
h-ft^2-R/Btu
false
false
@@ -4901,9 +4894,8 @@
Drain Water Heat Recovery: Facilities Connected
Which facilities are connected for the drain water heat recovery. Use 'none' if there is no drain water heat recovery system.
Choice
- true
+ false
false
- none
none
@@ -4926,7 +4918,6 @@
Boolean
false
false
- true
true
@@ -4946,16 +4937,14 @@
Frac
false
false
- 0.55
water_fixtures_shower_low_flow
Hot Water Fixtures: Is Shower Low Flow
- Whether the shower fixture is low flow.
+ Whether the shower fixture is low flow. If not provided, defaults to false.
Boolean
- true
+ false
false
- false
true
@@ -4970,11 +4959,10 @@
water_fixtures_sink_low_flow
Hot Water Fixtures: Is Sink Low Flow
- Whether the sink fixture is low flow.
+ Whether the sink fixture is low flow. If not provided, defaults to false.
Boolean
- true
+ false
false
- false
true
@@ -4989,16 +4977,16 @@
water_fixtures_usage_multiplier
Hot Water Fixtures: Usage Multiplier
- Multiplier on the hot water usage that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-water-fixtures'>HPXML Water Fixtures</a>) is used.
- Double
+ Multiplier on the hot water usage that can reflect, e.g., high/low usage occupants. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-water-fixtures'>HPXML Water Fixtures</a>) is used.
+ String
false
false
general_water_use_usage_multiplier
General Water Use: Usage Multiplier
- Multiplier on internal gains from general water use (floor mopping, shower evaporation, water films on showers, tubs & sinks surfaces, plant watering, etc.) that can reflect, e.g., high/low usage occupants. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-building-occupancy'>HPXML Building Occupancy</a>) is used.
- Double
+ Multiplier on internal gains from general water use (floor mopping, shower evaporation, water films on showers, tubs & sinks surfaces, plant watering, etc.} that can reflect, e.g., high/low usage occupants. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-building-occupancy'>HPXML Building Occupancy</a>) is used.
+ String
false
false
@@ -5007,9 +4995,8 @@
Solar Thermal: System Type
The type of solar thermal system. Use 'none' if there is no solar thermal system.
Choice
- true
+ false
false
- none
none
@@ -5027,18 +5014,16 @@
The collector area of the solar thermal system.
Double
ft^2
- true
+ false
false
- 40
solar_thermal_collector_loop_type
Solar Thermal: Collector Loop Type
The collector loop type of the solar thermal system.
Choice
- true
+ false
false
- liquid direct
liquid direct
@@ -5059,9 +5044,8 @@
Solar Thermal: Collector Type
The collector type of the solar thermal system.
Choice
- true
+ false
false
- evacuated tube
evacuated tube
@@ -5084,12 +5068,11 @@
solar_thermal_collector_azimuth
Solar Thermal: Collector Azimuth
- The collector azimuth of the solar thermal system. Azimuth is measured clockwise from north (e.g., North=0, East=90, South=180, West=270).
+ The collector azimuth of the solar thermal system. Azimuth is measured clockwise from north (e.g., North=0, East=90, South=180, West=270}.
Double
degrees
- true
+ false
false
- 180
solar_thermal_collector_tilt
@@ -5097,9 +5080,8 @@
The collector tilt of the solar thermal system. Can also enter, e.g., RoofPitch, RoofPitch+20, Latitude, Latitude-15, etc.
String
degrees
- true
+ false
false
- RoofPitch
solar_thermal_collector_rated_optical_efficiency
@@ -5107,9 +5089,8 @@
The collector rated optical efficiency of the solar thermal system.
Double
Frac
- true
+ false
false
- 0.5
solar_thermal_collector_rated_thermal_losses
@@ -5117,15 +5098,14 @@
The collector rated thermal losses of the solar thermal system.
Double
Btu/hr-ft^2-R
- true
+ false
false
- 0.2799
solar_thermal_storage_volume
Solar Thermal: Storage Volume
- The storage volume of the solar thermal system. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#detailed-inputs'>Detailed Inputs</a>) is used.
- Double
+ The storage volume of the solar thermal system. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#detailed-inputs'>Detailed Inputs</a>) is used.
+ String
gal
false
false
@@ -5136,18 +5116,16 @@
The solar fraction of the solar thermal system. If provided, overrides all other solar thermal inputs.
Double
Frac
- true
+ false
false
- 0
pv_system_present
PV System: Present
- Whether there is a PV system present.
+ Whether there is a PV system present. If not provided, defaults to false.
Boolean
- true
+ false
false
- false
true
@@ -5162,11 +5140,15 @@
pv_system_module_type
PV System: Module Type
- Module type of the PV system. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-photovoltaics'>HPXML Photovoltaics</a>) is used.
+ Module type of the PV system. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-photovoltaics'>HPXML Photovoltaics</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
standard
standard
@@ -5184,11 +5166,15 @@
pv_system_location
PV System: Location
- Location of the PV system. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-photovoltaics'>HPXML Photovoltaics</a>) is used.
+ Location of the PV system. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-photovoltaics'>HPXML Photovoltaics</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
roof
roof
@@ -5202,11 +5188,15 @@
pv_system_tracking
PV System: Tracking
- Type of tracking for the PV system. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-photovoltaics'>HPXML Photovoltaics</a>) is used.
+ Type of tracking for the PV system. If 'auto' or not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-photovoltaics'>HPXML Photovoltaics</a>) is used.
Choice
false
false
+
+ auto
+ auto
+
fixed
fixed
@@ -5228,12 +5218,11 @@