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 @@ pv_system_array_azimuth 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}. Double degrees - true + false false - 180 pv_system_array_tilt @@ -5241,9 +5230,8 @@ Array tilt of the PV system. Can also enter, e.g., RoofPitch, RoofPitch+20, Latitude, Latitude-15, etc. String degrees - true + false false - RoofPitch pv_system_max_power_output @@ -5251,15 +5239,14 @@ Maximum power output of the PV system. For a shared system, this is the total building maximum power output. Double W - true + false false - 4000 pv_system_inverter_efficiency 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-photovoltaics'>HPXML Photovoltaics</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-photovoltaics'>HPXML Photovoltaics</a>) is used. + String Frac false false @@ -5267,8 +5254,8 @@ pv_system_system_losses_fraction 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-photovoltaics'>HPXML Photovoltaics</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-photovoltaics'>HPXML Photovoltaics</a>) is used. + String Frac false false @@ -5285,11 +5272,10 @@ pv_system_2_present 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. Boolean - true + false false - false true @@ -5304,11 +5290,19 @@ pv_system_2_module_type PV System 2: Module Type - Module type of the second 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 second 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 + + + auto + auto + standard standard @@ -5326,11 +5320,19 @@ pv_system_2_location PV System 2: Location - Location of the second 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 second 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 + + + auto + auto + roof roof @@ -5344,11 +5346,19 @@ pv_system_2_tracking PV System 2: Tracking - Type of tracking for the second 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 second 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 + + + auto + auto + fixed fixed @@ -5370,12 +5380,11 @@ pv_system_2_array_azimuth 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}. Double degrees - true + false false - 180 pv_system_2_array_tilt @@ -5383,9 +5392,8 @@ Array tilt of the second PV system. Can also enter, e.g., RoofPitch, RoofPitch+20, Latitude, Latitude-15, etc. String degrees - true + false false - RoofPitch pv_system_2_max_power_output @@ -5393,18 +5401,16 @@ Maximum power output of the second PV system. For a shared system, this is the total building maximum power output. Double W - true + false false - 4000 battery_present Battery: Present - Whether there is a lithium ion battery present. + Whether there is a lithium ion battery present. If not provided, defaults to false. Boolean - true + false false - false true @@ -5419,11 +5425,15 @@ battery_location Battery: Location - The space type for the lithium ion battery location. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-batteries'>HPXML Batteries</a>) is used. + The space type for the lithium ion battery 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#hpxml-batteries'>HPXML Batteries</a>) is used. Choice false false + + auto + auto + conditioned space conditioned space @@ -5477,8 +5487,8 @@ battery_power Battery: Rated Power Output - The rated power output of the lithium ion battery. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-batteries'>HPXML Batteries</a>) is used. - Double + The rated power output of the lithium ion battery. 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-batteries'>HPXML Batteries</a>) is used. + String W false false @@ -5486,8 +5496,8 @@ battery_capacity Battery: Nominal Capacity - The nominal capacity of the lithium ion battery. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-batteries'>HPXML Batteries</a>) is used. - Double + The nominal capacity of the lithium ion battery. 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-batteries'>HPXML Batteries</a>) is used. + String kWh false false @@ -5495,8 +5505,8 @@ battery_usable_capacity Battery: Usable Capacity - The usable capacity of the lithium ion battery. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-batteries'>HPXML Batteries</a>) is used. - Double + The usable capacity of the lithium ion battery. 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-batteries'>HPXML Batteries</a>) is used. + String kWh false false @@ -5504,8 +5514,8 @@ battery_round_trip_efficiency Battery: Round Trip Efficiency - The round trip efficiency of the lithium ion battery. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-batteries'>HPXML Batteries</a>) is used. - Double + The round trip efficiency of the lithium ion battery. 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-batteries'>HPXML Batteries</a>) is used. + String Frac false false @@ -5526,7 +5536,6 @@ Boolean true false - true true @@ -5541,116 +5550,106 @@ lighting_interior_fraction_cfl 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. Double - true + false false - 0.1 lighting_interior_fraction_lfl 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. Double - true + false false - 0 lighting_interior_fraction_led 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. Double - true + false false - 0 lighting_interior_usage_multiplier 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-lighting'>HPXML Lighting</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-lighting'>HPXML Lighting</a>) is used. + String false false lighting_exterior_fraction_cfl 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. Double - true + false false - 0 lighting_exterior_fraction_lfl 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. Double - true + false false - 0 lighting_exterior_fraction_led 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. Double - true + false false - 0 lighting_exterior_usage_multiplier 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-lighting'>HPXML Lighting</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-lighting'>HPXML Lighting</a>) is used. + String false false lighting_garage_fraction_cfl 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. Double - true + false false - 0 lighting_garage_fraction_lfl 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. Double - true + false false - 0 lighting_garage_fraction_led 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. Double - true + false false - 0 lighting_garage_usage_multiplier 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-lighting'>HPXML Lighting</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-lighting'>HPXML Lighting</a>) is used. + String false false holiday_lighting_present Holiday Lighting: Present - Whether there is holiday lighting. + Whether there is holiday lighting. If not provided, defaults to false. Boolean - true + false false - false true @@ -5665,8 +5664,8 @@ holiday_lighting_daily_kwh Holiday Lighting: Daily Consumption - The daily energy consumption for holiday lighting (exterior). If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-lighting'>HPXML Lighting</a>) is used. - Double + The daily energy consumption for holiday lighting (exterior}. 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-lighting'>HPXML Lighting</a>) is used. + String kWh/day false false @@ -5674,7 +5673,7 @@ holiday_lighting_period Holiday Lighting: Period - Enter a date range like 'Nov 25 - Jan 5'. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-lighting'>HPXML Lighting</a>) is used. + Enter a date range like 'Nov 25 - Jan 5'. 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-lighting'>HPXML Lighting</a>) is used. String false false @@ -5682,11 +5681,10 @@ dehumidifier_type Dehumidifier: Type - The type of dehumidifier. + The type of dehumidifier. If not provided, defaults to none. Choice - true + false false - none none @@ -5707,9 +5705,8 @@ Dehumidifier: Efficiency Type The efficiency type of dehumidifier. Choice - true + false false - IntegratedEnergyFactor EnergyFactor @@ -5727,19 +5724,17 @@ The efficiency of the dehumidifier. Double liters/kWh - true + false false - 1.5 dehumidifier_capacity Dehumidifier: Capacity - The capacity (water removal rate) of the dehumidifier. + The capacity (water removal rate} of the dehumidifier. Double pint/day - true + false false - 40 dehumidifier_rh_setpoint @@ -5747,9 +5742,8 @@ The relative humidity setpoint of the dehumidifier. Double Frac - true + false false - 0.5 dehumidifier_fraction_dehumidification_load_served @@ -5757,9 +5751,8 @@ The dehumidification load served fraction of the dehumidifier. Double Frac - true + false false - 1 clothes_washer_present @@ -5768,7 +5761,6 @@ Boolean true false - true true @@ -5783,11 +5775,15 @@ clothes_washer_location Clothes Washer: Location - The space type for the clothes washer location. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-clothes-washer'>HPXML Clothes Washer</a>) is used. + The space type for the clothes washer 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#hpxml-clothes-washer'>HPXML Clothes Washer</a>) is used. Choice false false + + auto + auto + conditioned space conditioned space @@ -5827,9 +5823,8 @@ Clothes Washer: Efficiency Type The efficiency type of the clothes washer. Choice - true + false false - IntegratedModifiedEnergyFactor ModifiedEnergyFactor @@ -5844,8 +5839,8 @@ clothes_washer_efficiency Clothes Washer: Efficiency - The efficiency of the clothes washer. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-clothes-washer'>HPXML Clothes Washer</a>) is used. - Double + The efficiency of the clothes washer. 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-clothes-washer'>HPXML Clothes Washer</a>) is used. + String ft^3/kWh-cyc false false @@ -5853,8 +5848,8 @@ clothes_washer_rated_annual_kwh 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-clothes-washer'>HPXML Clothes Washer</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-clothes-washer'>HPXML Clothes Washer</a>) is used. + String kWh/yr false false @@ -5862,8 +5857,8 @@ clothes_washer_label_electric_rate 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-clothes-washer'>HPXML Clothes Washer</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-clothes-washer'>HPXML Clothes Washer</a>) is used. + String $/kWh false false @@ -5871,8 +5866,8 @@ clothes_washer_label_gas_rate 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-clothes-washer'>HPXML Clothes Washer</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-clothes-washer'>HPXML Clothes Washer</a>) is used. + String $/therm false false @@ -5880,8 +5875,8 @@ clothes_washer_label_annual_gas_cost 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-clothes-washer'>HPXML Clothes Washer</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-clothes-washer'>HPXML Clothes Washer</a>) is used. + String $ false false @@ -5889,8 +5884,8 @@ clothes_washer_label_usage Clothes Washer: Label Usage - The clothes washer loads per week. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-clothes-washer'>HPXML Clothes Washer</a>) is used. - Double + The clothes washer loads per week. 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-clothes-washer'>HPXML Clothes Washer</a>) is used. + String cyc/wk false false @@ -5898,8 +5893,8 @@ clothes_washer_capacity Clothes Washer: Drum Volume - Volume of the washer drum. Obtained from the EnergyStar website or the manufacturer's literature. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-clothes-washer'>HPXML Clothes Washer</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-clothes-washer'>HPXML Clothes Washer</a>) is used. + String ft^3 false false @@ -5907,8 +5902,8 @@ clothes_washer_usage_multiplier 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-clothes-washer'>HPXML Clothes Washer</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-clothes-washer'>HPXML Clothes Washer</a>) is used. + String false false @@ -5919,7 +5914,6 @@ Boolean true false - true true @@ -5934,11 +5928,19 @@ clothes_dryer_location Clothes Dryer: Location - The space type for the clothes dryer location. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-clothes-dryer'>HPXML Clothes Dryer</a>) is used. + The space type for the clothes dryer 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#hpxml-clothes-dryer'>HPXML Clothes Dryer</a>) is used. Choice false false + + auto + auto + + + auto + auto + conditioned space conditioned space @@ -5978,9 +5980,8 @@ Clothes Dryer: Fuel Type Type of fuel used by the clothes dryer. Choice - true + false false - natural gas electricity @@ -6013,9 +6014,8 @@ Clothes Dryer: Efficiency Type The efficiency type of the clothes dryer. Choice - true + false false - CombinedEnergyFactor EnergyFactor @@ -6030,8 +6030,8 @@ clothes_dryer_efficiency Clothes Dryer: Efficiency - The efficiency of the clothes dryer. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-clothes-dryer'>HPXML Clothes Dryer</a>) is used. - Double + The efficiency of the clothes dryer. 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-clothes-dryer'>HPXML Clothes Dryer</a>) is used. + String lb/kWh false false @@ -6039,8 +6039,8 @@ clothes_dryer_vented_flow_rate Clothes Dryer: Vented Flow Rate - The exhaust flow rate of the vented clothes dryer. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-clothes-dryer'>HPXML Clothes Dryer</a>) is used. - Double + The exhaust flow rate of the vented clothes dryer. 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-clothes-dryer'>HPXML Clothes Dryer</a>) is used. + String CFM false false @@ -6048,8 +6048,8 @@ clothes_dryer_usage_multiplier 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-clothes-dryer'>HPXML Clothes Dryer</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-clothes-dryer'>HPXML Clothes Dryer</a>) is used. + String false false @@ -6060,7 +6060,6 @@ Boolean true false - true true @@ -6075,11 +6074,23 @@ dishwasher_location Dishwasher: Location - The space type for the dishwasher location. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-dishwasher'>HPXML Dishwasher</a>) is used. + The space type for the dishwasher 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#hpxml-dishwasher'>HPXML Dishwasher</a>) is used. Choice false false + + auto + auto + + + auto + auto + + + auto + auto + conditioned space conditioned space @@ -6119,9 +6130,8 @@ Dishwasher: Efficiency Type The efficiency type of dishwasher. Choice - true + false false - RatedAnnualkWh RatedAnnualkWh @@ -6136,8 +6146,8 @@ dishwasher_efficiency Dishwasher: Efficiency - The efficiency of the dishwasher. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-dishwasher'>HPXML Dishwasher</a>) is used. - Double + The efficiency of the dishwasher. 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-dishwasher'>HPXML Dishwasher</a>) is used. + String RatedAnnualkWh or EnergyFactor false false @@ -6145,8 +6155,8 @@ dishwasher_label_electric_rate Dishwasher: Label Electric Rate - The label electric rate of the dishwasher. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-dishwasher'>HPXML Dishwasher</a>) is used. - Double + The label electric rate of the dishwasher. 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-dishwasher'>HPXML Dishwasher</a>) is used. + String $/kWh false false @@ -6154,8 +6164,8 @@ dishwasher_label_gas_rate Dishwasher: Label Gas Rate - The label gas rate of the dishwasher. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-dishwasher'>HPXML Dishwasher</a>) is used. - Double + The label gas rate of the dishwasher. 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-dishwasher'>HPXML Dishwasher</a>) is used. + String $/therm false false @@ -6163,8 +6173,8 @@ dishwasher_label_annual_gas_cost Dishwasher: Label Annual Gas Cost - The label annual gas cost of the dishwasher. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-dishwasher'>HPXML Dishwasher</a>) is used. - Double + The label annual gas cost of the dishwasher. 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-dishwasher'>HPXML Dishwasher</a>) is used. + String $ false false @@ -6172,8 +6182,8 @@ dishwasher_label_usage Dishwasher: Label Usage - The dishwasher loads per week. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-dishwasher'>HPXML Dishwasher</a>) is used. - Double + The dishwasher loads per week. 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-dishwasher'>HPXML Dishwasher</a>) is used. + String cyc/wk false false @@ -6181,8 +6191,8 @@ dishwasher_place_setting_capacity Dishwasher: Number of Place Settings - The number of place settings for the unit. Data obtained from manufacturer's literature. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-dishwasher'>HPXML Dishwasher</a>) is used. - Integer + The number of place settings for the unit. Data obtained from manufacturer's literature. 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-dishwasher'>HPXML Dishwasher</a>) is used. + String # false false @@ -6190,8 +6200,8 @@ dishwasher_usage_multiplier 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-dishwasher'>HPXML Dishwasher</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-dishwasher'>HPXML Dishwasher</a>) is used. + String false false @@ -6202,7 +6212,6 @@ Boolean true false - true true @@ -6217,11 +6226,27 @@ refrigerator_location Refrigerator: Location - The space type for the refrigerator location. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-refrigerators'>HPXML Refrigerators</a>) is used. + The space type for the refrigerator 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#hpxml-refrigerators'>HPXML Refrigerators</a>) is used. Choice false false + + auto + auto + + + auto + auto + + + auto + auto + + + auto + auto + conditioned space conditioned space @@ -6259,8 +6284,8 @@ refrigerator_rated_annual_kwh Refrigerator: Rated Annual Consumption - The EnergyGuide rated annual energy consumption for a refrigerator. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-refrigerators'>HPXML Refrigerators</a>) is used. - Double + The EnergyGuide rated annual energy consumption for a refrigerator. 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-refrigerators'>HPXML Refrigerators</a>) is used. + String kWh/yr false false @@ -6268,19 +6293,18 @@ refrigerator_usage_multiplier 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-refrigerators'>HPXML Refrigerators</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-refrigerators'>HPXML Refrigerators</a>) is used. + String false false extra_refrigerator_present Extra Refrigerator: Present - Whether there is an extra refrigerator present. + Whether there is an extra refrigerator present. If not provided, defaults to false. Boolean - true + false false - false true @@ -6295,11 +6319,31 @@ extra_refrigerator_location Extra Refrigerator: Location - The space type for the extra refrigerator location. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-refrigerators'>HPXML Refrigerators</a>) is used. + The space type for the extra refrigerator 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#hpxml-refrigerators'>HPXML Refrigerators</a>) is used. Choice false false + + auto + auto + + + auto + auto + + + auto + auto + + + auto + auto + + + auto + auto + conditioned space conditioned space @@ -6337,8 +6381,8 @@ extra_refrigerator_rated_annual_kwh Extra Refrigerator: Rated Annual Consumption - The EnergyGuide rated annual energy consumption for an extra refrigerator. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-refrigerators'>HPXML Refrigerators</a>) is used. - Double + The EnergyGuide rated annual energy consumption for an extra refrigerator. 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-refrigerators'>HPXML Refrigerators</a>) is used. + String kWh/yr false false @@ -6346,19 +6390,18 @@ extra_refrigerator_usage_multiplier 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-refrigerators'>HPXML Refrigerators</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-refrigerators'>HPXML Refrigerators</a>) is used. + String false false freezer_present Freezer: Present - Whether there is a freezer present. + Whether there is a freezer present. If not provided, defaults to false. Boolean - true + false false - false true @@ -6373,11 +6416,35 @@ freezer_location Freezer: Location - The space type for the freezer location. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-freezers'>HPXML Freezers</a>) is used. + The space type for the freezer 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#hpxml-freezers'>HPXML Freezers</a>) is used. Choice false false + + auto + auto + + + auto + auto + + + auto + auto + + + auto + auto + + + auto + auto + + + auto + auto + conditioned space conditioned space @@ -6415,8 +6482,8 @@ freezer_rated_annual_kwh Freezer: Rated Annual Consumption - The EnergyGuide rated annual energy consumption for a freezer. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-freezers'>HPXML Freezers</a>) is used. - Double + The EnergyGuide rated annual energy consumption for a freezer. 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-freezers'>HPXML Freezers</a>) is used. + String kWh/yr false false @@ -6424,8 +6491,8 @@ freezer_usage_multiplier 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-freezers'>HPXML Freezers</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-freezers'>HPXML Freezers</a>) is used. + String false false @@ -6436,7 +6503,6 @@ Boolean true false - true true @@ -6451,11 +6517,39 @@ cooking_range_oven_location Cooking Range/Oven: Location - The space type for the cooking range/oven location. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-cooking-range-oven'>HPXML Cooking Range/Oven</a>) is used. + The space type for the cooking range/oven 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#hpxml-cooking-range-oven'>HPXML Cooking Range/Oven</a>) is used. Choice false false + + auto + auto + + + auto + auto + + + auto + auto + + + auto + auto + + + auto + auto + + + auto + auto + + + auto + auto + conditioned space conditioned space @@ -6495,9 +6589,8 @@ Cooking Range/Oven: Fuel Type Type of fuel used by the cooking range/oven. Choice - true + false false - natural gas electricity @@ -6528,11 +6621,15 @@ cooking_range_oven_is_induction Cooking Range/Oven: Is Induction - Whether the cooking range is induction. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-cooking-range-oven'>HPXML Cooking Range/Oven</a>) is used. - Boolean + Whether the cooking range is induction. 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-cooking-range-oven'>HPXML Cooking Range/Oven</a>) is used. + Choice false false + + auto + auto + true true @@ -6546,11 +6643,15 @@ cooking_range_oven_is_convection Cooking Range/Oven: Is Convection - Whether the oven is convection. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-cooking-range-oven'>HPXML Cooking Range/Oven</a>) is used. - Boolean + Whether the oven is convection. 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-cooking-range-oven'>HPXML Cooking Range/Oven</a>) is used. + Choice false false + + auto + auto + true true @@ -6564,8 +6665,8 @@ cooking_range_oven_usage_multiplier 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-cooking-range-oven'>HPXML Cooking Range/Oven</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-cooking-range-oven'>HPXML Cooking Range/Oven</a>) is used. + String false false @@ -6576,7 +6677,6 @@ Boolean true false - true true @@ -6591,8 +6691,8 @@ ceiling_fan_label_energy_use 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-ceiling-fans'>HPXML Ceiling Fans</a>) is used. - Double + The label average energy use of the ceiling fan(s}. 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-ceiling-fans'>HPXML Ceiling Fans</a>) is used. + String W false false @@ -6600,8 +6700,8 @@ ceiling_fan_efficiency 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-ceiling-fans'>HPXML Ceiling Fans</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-ceiling-fans'>HPXML Ceiling Fans</a>) is used. + String CFM/W false false @@ -6609,8 +6709,8 @@ ceiling_fan_quantity Ceiling Fan: Quantity - Total number of ceiling fans. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-ceiling-fans'>HPXML Ceiling Fans</a>) is used. - Integer + Total number of ceiling 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-ceiling-fans'>HPXML Ceiling Fans</a>) is used. + String # false false @@ -6618,8 +6718,8 @@ ceiling_fan_cooling_setpoint_temp_offset Ceiling Fan: Cooling Setpoint Temperature Offset - 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-ceiling-fans'>HPXML Ceiling Fans</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-ceiling-fans'>HPXML Ceiling Fans</a>) is used. + String F false false @@ -6631,7 +6731,6 @@ Boolean true false - true true @@ -6646,8 +6745,8 @@ misc_plug_loads_television_annual_kwh Misc Plug Loads: Television Annual kWh - The annual energy consumption of the television plug loads. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-plug-loads'>HPXML Plug Loads</a>) is used. - Double + The annual energy consumption of the television plug loads. 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-plug-loads'>HPXML Plug Loads</a>) is used. + String kWh/yr false false @@ -6655,16 +6754,16 @@ misc_plug_loads_television_usage_multiplier 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-plug-loads'>HPXML Plug Loads</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-plug-loads'>HPXML Plug Loads</a>) is used. + String false false misc_plug_loads_other_annual_kwh Misc Plug Loads: Other Annual kWh - The annual energy consumption of the other residual plug loads. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-plug-loads'>HPXML Plug Loads</a>) is used. - Double + The annual energy consumption of the other residual plug loads. 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-plug-loads'>HPXML Plug Loads</a>) is used. + String kWh/yr false false @@ -6672,8 +6771,8 @@ misc_plug_loads_other_frac_sensible 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-plug-loads'>HPXML Plug Loads</a>) is used. - Double + Fraction of other residual plug loads' internal gains that are sensible. 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-plug-loads'>HPXML Plug Loads</a>) is used. + String Frac false false @@ -6681,8 +6780,8 @@ misc_plug_loads_other_frac_latent 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-plug-loads'>HPXML Plug Loads</a>) is used. - Double + Fraction of other residual plug loads' internal gains that are latent. 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-plug-loads'>HPXML Plug Loads</a>) is used. + String Frac false false @@ -6690,19 +6789,18 @@ misc_plug_loads_other_usage_multiplier 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-plug-loads'>HPXML Plug Loads</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-plug-loads'>HPXML Plug Loads</a>) is used. + String false false misc_plug_loads_well_pump_present Misc Plug Loads: Well Pump Present - Whether there is a well pump. + Whether there is a well pump. If not provided, defaults to false. Boolean - true + false false - false true @@ -6717,8 +6815,8 @@ misc_plug_loads_well_pump_annual_kwh 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-plug-loads'>HPXML Plug Loads</a>) is used. - Double + The annual energy consumption of the well pump plug loads. 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-plug-loads'>HPXML Plug Loads</a>) is used. + String kWh/yr false false @@ -6726,19 +6824,18 @@ misc_plug_loads_well_pump_usage_multiplier 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-plug-loads'>HPXML Plug Loads</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-plug-loads'>HPXML Plug Loads</a>) is used. + String false false misc_plug_loads_vehicle_present Misc Plug Loads: Vehicle Present - Whether there is an electric vehicle. + Whether there is an electric vehicle. If not provided, defaults to false. Boolean - true + false false - false true @@ -6753,8 +6850,8 @@ misc_plug_loads_vehicle_annual_kwh Misc Plug Loads: Vehicle Annual kWh - The annual energy consumption of the electric vehicle plug loads. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-plug-loads'>HPXML Plug Loads</a>) is used. - Double + The annual energy consumption of the electric vehicle plug loads. 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-plug-loads'>HPXML Plug Loads</a>) is used. + String kWh/yr false false @@ -6762,19 +6859,18 @@ misc_plug_loads_vehicle_usage_multiplier 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-plug-loads'>HPXML Plug Loads</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-plug-loads'>HPXML Plug Loads</a>) is used. + String false false misc_fuel_loads_grill_present 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. Boolean - true + false false - false true @@ -6789,11 +6885,10 @@ misc_fuel_loads_grill_fuel_type 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. Choice - true + false false - natural gas natural gas @@ -6820,8 +6915,8 @@ misc_fuel_loads_grill_annual_therm Misc Fuel Loads: Grill Annual therm - The annual energy consumption of the fuel loads grill. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-fuel-loads'>HPXML Fuel Loads</a>) is used. - Double + The annual energy consumption of the fuel loads grill. 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-fuel-loads'>HPXML Fuel Loads</a>) is used. + String therm/yr false false @@ -6829,19 +6924,18 @@ misc_fuel_loads_grill_usage_multiplier 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-fuel-loads'>HPXML Fuel Loads</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-fuel-loads'>HPXML Fuel Loads</a>) is used. + String false false misc_fuel_loads_lighting_present Misc Fuel Loads: Lighting Present - Whether there is fuel loads lighting. + Whether there is fuel loads lighting. If not provided, defaults to false. Boolean - true + false false - false true @@ -6856,11 +6950,10 @@ misc_fuel_loads_lighting_fuel_type 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. Choice - true + false false - natural gas natural gas @@ -6887,8 +6980,8 @@ misc_fuel_loads_lighting_annual_therm Misc Fuel Loads: Lighting Annual therm - The annual energy consumption of the fuel loads lighting. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-fuel-loads'>HPXML Fuel Loads</a>)is used. - Double + The annual energy consumption of the fuel loads lighting. 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-fuel-loads'>HPXML Fuel Loads</a>) is used. + String therm/yr false false @@ -6896,19 +6989,18 @@ misc_fuel_loads_lighting_usage_multiplier 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-fuel-loads'>HPXML Fuel Loads</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-fuel-loads'>HPXML Fuel Loads</a>) is used. + String false false misc_fuel_loads_fireplace_present Misc Fuel Loads: Fireplace Present - Whether there is fuel loads fireplace. + Whether there is fuel loads fireplace. If not provided, defaults to false. Boolean - true + false false - false true @@ -6923,11 +7015,10 @@ misc_fuel_loads_fireplace_fuel_type 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. Choice - true + false false - natural gas natural gas @@ -6954,8 +7045,8 @@ misc_fuel_loads_fireplace_annual_therm Misc Fuel Loads: Fireplace Annual therm - The annual energy consumption of the fuel loads fireplace. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-fuel-loads'>HPXML Fuel Loads</a>) is used. - Double + The annual energy consumption of the fuel loads fireplace. 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-fuel-loads'>HPXML Fuel Loads</a>) is used. + String therm/yr false false @@ -6963,8 +7054,8 @@ misc_fuel_loads_fireplace_frac_sensible 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-fuel-loads'>HPXML Fuel Loads</a>) is used. - Double + Fraction of fireplace residual fuel loads' internal gains that are sensible. 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-fuel-loads'>HPXML Fuel Loads</a>) is used. + String Frac false false @@ -6972,8 +7063,8 @@ misc_fuel_loads_fireplace_frac_latent 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-fuel-loads'>HPXML Fuel Loads</a>) is used. - Double + Fraction of fireplace residual fuel loads' internal gains that are latent. 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-fuel-loads'>HPXML Fuel Loads</a>) is used. + String Frac false false @@ -6981,19 +7072,18 @@ misc_fuel_loads_fireplace_usage_multiplier 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-fuel-loads'>HPXML Fuel Loads</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#hpxml-fuel-loads'>HPXML Fuel Loads</a>) is used. + String false false pool_present Pool: Present - Whether there is a pool. + Whether there is a pool. If not provided, defaults to false. Boolean - true + false false - false true @@ -7008,8 +7098,8 @@ pool_pump_annual_kwh Pool: Pump Annual kWh - The annual energy consumption of the pool pump. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#pool-pump'>Pool Pump</a>) is used. - Double + The annual energy consumption of the pool 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#pool-pump'>Pool Pump</a>) is used. + String kWh/yr false false @@ -7017,8 +7107,8 @@ pool_pump_usage_multiplier 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#pool-pump'>Pool Pump</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#pool-pump'>Pool Pump</a>) is used. + String false false @@ -7027,9 +7117,8 @@ Pool: Heater Type The type of pool heater. Use 'none' if there is no pool heater. Choice - true + false false - none none @@ -7052,8 +7141,8 @@ pool_heater_annual_kwh Pool: Heater Annual kWh - The annual energy consumption of the electric resistance pool heater. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#pool-heater'>Pool Heater</a>) is used. - Double + The annual energy consumption of the electric resistance pool 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#pool-heater'>Pool Heater</a>) is used. + String kWh/yr false false @@ -7061,8 +7150,8 @@ pool_heater_annual_therm Pool: Heater Annual therm - The annual energy consumption of the gas fired pool heater. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#pool-heater'>Pool Heater</a>) is used. - Double + The annual energy consumption of the gas fired pool 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#pool-heater'>Pool Heater</a>) is used. + String therm/yr false false @@ -7070,19 +7159,18 @@ pool_heater_usage_multiplier 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#pool-heater'>Pool Heater</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#pool-heater'>Pool Heater</a>) is used. + String false false permanent_spa_present Permanent Spa: Present - Whether there is a permanent spa. + Whether there is a permanent spa. If not provided, defaults to false. Boolean - true + false false - false true @@ -7097,8 +7185,8 @@ permanent_spa_pump_annual_kwh Permanent Spa: Pump Annual kWh - The annual energy consumption of the permanent spa pump. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#permanent-spa-pump'>Permanent Spa Pump</a>) is used. - Double + The annual energy consumption of the permanent spa 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#permanent-spa-pump'>Permanent Spa Pump</a>) is used. + String kWh/yr false false @@ -7106,8 +7194,8 @@ permanent_spa_pump_usage_multiplier 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#permanent-spa-pump'>Permanent Spa Pump</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#permanent-spa-pump'>Permanent Spa Pump</a>) is used. + String false false @@ -7116,9 +7204,8 @@ Permanent Spa: Heater Type The type of permanent spa heater. Use 'none' if there is no permanent spa heater. Choice - true + false false - none none @@ -7141,8 +7228,8 @@ permanent_spa_heater_annual_kwh Permanent Spa: Heater Annual kWh - The annual energy consumption of the electric resistance permanent spa heater. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#permanent-spa-heater'>Permanent Spa Heater</a>) is used. - Double + The annual energy consumption of the electric resistance permanent spa 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#permanent-spa-heater'>Permanent Spa Heater</a>) is used. + String kWh/yr false false @@ -7150,8 +7237,8 @@ permanent_spa_heater_annual_therm Permanent Spa: Heater Annual therm - The annual energy consumption of the gas fired permanent spa heater. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#permanent-spa-heater'>Permanent Spa Heater</a>) is used. - Double + The annual energy consumption of the gas fired permanent spa 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#permanent-spa-heater'>Permanent Spa Heater</a>) is used. + String therm/yr false false @@ -7159,8 +7246,8 @@ permanent_spa_heater_usage_multiplier 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#permanent-spa-heater'>Permanent Spa Heater</a>) is used. - Double + 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 <a href='https://openstudio-hpxml.readthedocs.io/en/v1.10.0/workflow_inputs.html#permanent-spa-heater'>Permanent Spa Heater</a>) is used. + String false false @@ -7175,7 +7262,7 @@ emissions_types 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. String false false @@ -7447,7 +7534,7 @@ additional_properties 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. String false false @@ -7459,7 +7546,6 @@ Boolean false false - false true @@ -7478,7 +7564,6 @@ Boolean false false - false true @@ -7497,7 +7582,6 @@ Boolean false false - false true @@ -7527,7 +7611,7 @@ README.md md readme - B595D2F2 + 76B35F66 README.md.erb @@ -7544,25 +7628,25 @@ measure.rb rb script - 5F60558F + 724C3DC0 constants.rb rb resource - 079FF429 + E433BC30 geometry.rb rb resource - 425682E4 + 041E7C10 test_build_residential_hpxml.rb rb test - CCBB49E7 + DFE83D67 diff --git a/BuildResidentialHPXML/resources/constants.rb b/BuildResidentialHPXML/resources/constants.rb index 639a49592e..7aa6514ae1 100644 --- a/BuildResidentialHPXML/resources/constants.rb +++ b/BuildResidentialHPXML/resources/constants.rb @@ -2,6 +2,7 @@ # Collection of constants. module Constants + Auto = 'auto' BuildingAmerica = 'BuildingAmerica' FacadeFront = 'front' FacadeBack = 'back' @@ -16,3 +17,12 @@ module Constants RoofTypeGable = 'gable' RoofTypeHip = 'hip' end + +# TODO +module Argument + Choice = 'makeChoiceArgument' + String = 'makeStringArgument' + Double = 'makeDoubleArgument' + Integer = 'makeIntegerArgument' + Boolean = 'makeBoolArgument' +end diff --git a/BuildResidentialHPXML/resources/geometry.rb b/BuildResidentialHPXML/resources/geometry.rb index 6bf1d4ef74..83684c965b 100644 --- a/BuildResidentialHPXML/resources/geometry.rb +++ b/BuildResidentialHPXML/resources/geometry.rb @@ -27,10 +27,10 @@ def self.create_single_family_detached(runner:, geometry_average_ceiling_height:, geometry_unit_num_floors_above_grade:, geometry_unit_aspect_ratio:, - geometry_garage_width:, - geometry_garage_depth:, - geometry_garage_protrusion:, - geometry_garage_position:, + geometry_garage_width: 0.0, + geometry_garage_depth: 0.0, + geometry_garage_protrusion: 0.0, + geometry_garage_position: Constants::PositionRight, geometry_foundation_type:, geometry_foundation_height:, geometry_rim_joist_height:, @@ -681,10 +681,10 @@ def self.create_single_family_attached(model:, geometry_attic_type:, geometry_roof_type:, geometry_roof_pitch:, - geometry_unit_left_wall_is_adiabatic:, - geometry_unit_right_wall_is_adiabatic:, - geometry_unit_front_wall_is_adiabatic:, - geometry_unit_back_wall_is_adiabatic:, + geometry_unit_left_wall_is_adiabatic: false, + geometry_unit_right_wall_is_adiabatic: false, + geometry_unit_front_wall_is_adiabatic: false, + geometry_unit_back_wall_is_adiabatic: false, **) cfa = geometry_unit_cfa @@ -983,10 +983,10 @@ def self.create_apartment(model:, geometry_attic_type:, geometry_roof_type:, geometry_roof_pitch:, - geometry_unit_left_wall_is_adiabatic:, - geometry_unit_right_wall_is_adiabatic:, - geometry_unit_front_wall_is_adiabatic:, - geometry_unit_back_wall_is_adiabatic:, + geometry_unit_left_wall_is_adiabatic: false, + geometry_unit_right_wall_is_adiabatic: false, + geometry_unit_front_wall_is_adiabatic: false, + geometry_unit_back_wall_is_adiabatic: false, **) cfa = geometry_unit_cfa @@ -1385,14 +1385,10 @@ def self.create_doors(runner:, # # @param runner [OpenStudio::Measure::OSRunner] Object typically used to display warnings # @param model [OpenStudio::Model::Model] OpenStudio Model object - # @param window_front_wwr [Double] ratio of window to wall area for the unit's front facade (frac) - # @param window_back_wwr [Double] ratio of window to wall area for the unit's back facade (frac) - # @param window_left_wwr [Double] ratio of window to wall area for the unit's left facade (frac) - # @param window_right_wwr [Double] ratio of window to wall area for the unit's right facade (frac) - # @param window_area_front [Double] amount of window area on unit's front facade (ft2) - # @param window_area_back [Double] amount of window area on unit's back facade (ft2) - # @param window_area_left [Double] amount of window area on unit's left facade (ft2) - # @param window_area_right [Double] amount of window area on unit's right facade (ft2) + # @param window_area_front [Double] amount of window area on unit's front facade or window to wall ratio if less than 1 (ft2 or frac) + # @param window_area_back [Double] amount of window area on unit's back facade or window to wall ratio if less than 1 (ft2 or frac) + # @param window_area_left [Double] amount of window area on unit's left facade or window to wall ratio if less than 1 (ft2 or frac) + # @param window_area_right [Double] amount of window area on unit's right facade or window to wall ratio if less than 1 (ft2 or frac) # @param window_aspect_ratio [Double] ratio of window height to width (frac) # @param skylight_area_front [Double] amount of skylight area on the unit's front conditioned roof facade (ft2) # @param skylight_area_back [Double] amount of skylight area on the unit's back conditioned roof facade (ft2) @@ -1401,32 +1397,28 @@ def self.create_doors(runner:, # @return [Boolean] true if successful def self.create_windows_and_skylights(runner:, model:, - window_front_wwr:, - window_back_wwr:, - window_left_wwr:, - window_right_wwr:, window_area_front:, window_area_back:, window_area_left:, window_area_right:, window_aspect_ratio:, - skylight_area_front:, - skylight_area_back:, - skylight_area_left:, - skylight_area_right:, + skylight_area_front: 0, + skylight_area_back: 0, + skylight_area_left: 0, + skylight_area_right: 0, **) facades = [Constants::FacadeBack, Constants::FacadeRight, Constants::FacadeFront, Constants::FacadeLeft] wwrs = {} - wwrs[Constants::FacadeBack] = window_back_wwr - wwrs[Constants::FacadeRight] = window_right_wwr - wwrs[Constants::FacadeFront] = window_front_wwr - wwrs[Constants::FacadeLeft] = window_left_wwr + wwrs[Constants::FacadeBack] = (window_area_back < 1 ? window_area_back : 0.0) + wwrs[Constants::FacadeRight] = (window_area_right < 1 ? window_area_right : 0.0) + wwrs[Constants::FacadeFront] = (window_area_front < 1 ? window_area_front : 0.0) + wwrs[Constants::FacadeLeft] = (window_area_left < 1 ? window_area_left : 0.0) window_areas = {} - window_areas[Constants::FacadeBack] = window_area_back - window_areas[Constants::FacadeRight] = window_area_right - window_areas[Constants::FacadeFront] = window_area_front - window_areas[Constants::FacadeLeft] = window_area_left + window_areas[Constants::FacadeBack] = (window_area_back >= 1 ? window_area_back : 0.0) + window_areas[Constants::FacadeRight] = (window_area_right >= 1 ? window_area_right : 0.0) + window_areas[Constants::FacadeFront] = (window_area_front >= 1 ? window_area_front : 0.0) + window_areas[Constants::FacadeLeft] = (window_area_left >= 1 ? window_area_left : 0.0) skylight_areas = {} skylight_areas[Constants::FacadeBack] = skylight_area_back @@ -1759,9 +1751,9 @@ def self.calculate_exposed_perimeter(model:, # @param geometry_garage_width [Double] width of the garage (ft) # @param geometry_garage_depth [Double] depth of the garage (ft) # @return [Double] the unexposed garage perimeter - def self.get_unexposed_garage_perimeter(geometry_garage_protrusion:, - geometry_garage_width:, - geometry_garage_depth:, + def self.get_unexposed_garage_perimeter(geometry_garage_protrusion: 0.0, + geometry_garage_width: 0.0, + geometry_garage_depth: 0.0, **) protrusion = geometry_garage_protrusion width = geometry_garage_width diff --git a/BuildResidentialHPXML/tests/test_build_residential_hpxml.rb b/BuildResidentialHPXML/tests/test_build_residential_hpxml.rb index 06a9471fff..9849091bc9 100644 --- a/BuildResidentialHPXML/tests/test_build_residential_hpxml.rb +++ b/BuildResidentialHPXML/tests/test_build_residential_hpxml.rb @@ -35,6 +35,7 @@ def test_workflows 'base-sfd-header.xml' => 'base-sfd.xml', 'base-sfd-header-no-duplicates.xml' => 'base-sfd-header.xml', + 'base-auto.xml' => 'base-sfd.xml', # Extra files to test 'extra-auto.xml' => 'base-sfd.xml', @@ -417,18 +418,10 @@ def _set_measure_argument_values(hpxml_file, args) args['site_type'] = HPXML::SiteTypeSuburban args['geometry_unit_type'] = HPXML::ResidentialTypeSFD args['geometry_unit_cfa'] = 2700.0 - args['geometry_unit_left_wall_is_adiabatic'] = false - args['geometry_unit_right_wall_is_adiabatic'] = false - args['geometry_unit_front_wall_is_adiabatic'] = false - args['geometry_unit_back_wall_is_adiabatic'] = false args['geometry_unit_num_floors_above_grade'] = 1 args['geometry_average_ceiling_height'] = 8.0 args['geometry_unit_orientation'] = 180.0 args['geometry_unit_aspect_ratio'] = 1.5 - args['geometry_garage_width'] = 0.0 - args['geometry_garage_depth'] = 20.0 - args['geometry_garage_protrusion'] = 0.0 - args['geometry_garage_position'] = Constants::PositionRight args['geometry_foundation_type'] = HPXML::FoundationTypeBasementConditioned args['geometry_foundation_height'] = 8.0 args['geometry_foundation_height_above_grade'] = 1.0 @@ -440,42 +433,21 @@ def _set_measure_argument_values(hpxml_file, args) args['geometry_unit_num_bedrooms'] = 3 args['geometry_unit_num_bathrooms'] = 2 args['geometry_unit_num_occupants'] = 3 - args['floor_over_foundation_assembly_r'] = 0 - args['floor_over_garage_assembly_r'] = 0 args['floor_type'] = HPXML::FloorTypeWoodFrame args['foundation_wall_thickness'] = 8.0 args['foundation_wall_insulation_r'] = 8.9 args['foundation_wall_insulation_distance_to_top'] = 0.0 args['foundation_wall_insulation_distance_to_bottom'] = 8.0 args['rim_joist_assembly_r'] = 23.0 - args['slab_perimeter_insulation_r'] = 0 - args['slab_perimeter_insulation_depth'] = 0 - args['slab_under_insulation_r'] = 0 - args['slab_under_insulation_width'] = 0 - args['slab_exterior_horizontal_insulation_r'] = 0 - args['slab_exterior_horizontal_insulation_width'] = 0 - args['slab_exterior_horizontal_insulation_depth_below_grade'] = 0 - args['slab_thickness'] = 4.0 - args['slab_carpet_fraction'] = 0.0 - args['slab_carpet_r'] = 0.0 args['ceiling_assembly_r'] = 39.3 args['roof_material_type'] = HPXML::RoofTypeAsphaltShingles args['roof_color'] = HPXML::ColorMedium args['roof_assembly_r'] = 2.3 args['radiant_barrier_attic_location'] = Constants::None - args['radiant_barrier_grade'] = 1 - args['neighbor_front_distance'] = 0 - args['neighbor_back_distance'] = 0 - args['neighbor_left_distance'] = 0 - args['neighbor_right_distance'] = 0 args['wall_type'] = HPXML::WallTypeWoodStud args['wall_siding_type'] = HPXML::SidingTypeWood args['wall_color'] = HPXML::ColorMedium args['wall_assembly_r'] = 23 - args['window_front_wwr'] = 0 - args['window_back_wwr'] = 0 - args['window_left_wwr'] = 0 - args['window_right_wwr'] = 0 args['window_area_front'] = 108.0 args['window_area_back'] = 108.0 args['window_area_left'] = 72.0 @@ -486,24 +458,6 @@ def _set_measure_argument_values(hpxml_file, args) args['window_shgc'] = 0.45 args['window_interior_shading_winter'] = 0.85 args['window_interior_shading_summer'] = 0.7 - args['overhangs_front_depth'] = 0 - args['overhangs_back_depth'] = 0 - args['overhangs_left_depth'] = 0 - args['overhangs_right_depth'] = 0 - args['overhangs_front_distance_to_top_of_window'] = 0 - args['overhangs_back_distance_to_top_of_window'] = 0 - args['overhangs_left_distance_to_top_of_window'] = 0 - args['overhangs_right_distance_to_top_of_window'] = 0 - args['overhangs_front_distance_to_bottom_of_window'] = 0 - args['overhangs_back_distance_to_bottom_of_window'] = 0 - args['overhangs_left_distance_to_bottom_of_window'] = 0 - args['overhangs_right_distance_to_bottom_of_window'] = 0 - args['skylight_area_front'] = 0 - args['skylight_area_back'] = 0 - args['skylight_area_left'] = 0 - args['skylight_area_right'] = 0 - args['skylight_ufactor'] = 0.33 - args['skylight_shgc'] = 0.45 args['door_area'] = 40.0 args['door_rvalue'] = 4.4 args['air_leakage_units'] = HPXML::UnitsACH @@ -523,21 +477,6 @@ def _set_measure_argument_values(hpxml_file, args) args['cooling_system_fraction_cool_load_served'] = 1 args['cooling_system_is_ducted'] = false args['heat_pump_type'] = Constants::None - args['heat_pump_heating_efficiency_type'] = HPXML::UnitsHSPF - args['heat_pump_heating_efficiency'] = 7.7 - args['heat_pump_cooling_efficiency_type'] = HPXML::UnitsSEER - args['heat_pump_cooling_efficiency'] = 13.0 - args['heat_pump_cooling_compressor_type'] = HPXML::HVACCompressorTypeSingleStage - args['heat_pump_cooling_sensible_heat_fraction'] = 0.73 - args['heat_pump_heating_capacity'] = 36000.0 - args['heat_pump_cooling_capacity'] = 36000.0 - args['heat_pump_fraction_heat_load_served'] = 1 - args['heat_pump_fraction_cool_load_served'] = 1 - args['heat_pump_backup_type'] = HPXML::HeatPumpBackupTypeIntegrated - args['heat_pump_backup_fuel'] = HPXML::FuelTypeElectricity - args['heat_pump_backup_heating_efficiency'] = 1 - args['heat_pump_backup_heating_capacity'] = 36000.0 - args['geothermal_loop_configuration'] = Constants::None args['hvac_control_heating_weekday_setpoint'] = 68 args['hvac_control_heating_weekend_setpoint'] = 68 args['hvac_control_cooling_weekday_setpoint'] = 78 @@ -553,27 +492,8 @@ def _set_measure_argument_values(hpxml_file, args) args['ducts_return_surface_area'] = 50.0 args['ducts_number_of_return_registers'] = 2 args['heating_system_2_type'] = Constants::None - args['heating_system_2_fuel'] = HPXML::FuelTypeElectricity - args['heating_system_2_heating_efficiency'] = 1.0 - args['heating_system_2_fraction_heat_load_served'] = 0.25 - args['mech_vent_fan_type'] = Constants::None - args['mech_vent_flow_rate'] = 110 - args['mech_vent_hours_in_operation'] = 24 - args['mech_vent_recovery_efficiency_type'] = 'Unadjusted' - args['mech_vent_total_recovery_efficiency'] = 0.48 - args['mech_vent_sensible_recovery_efficiency'] = 0.72 - args['mech_vent_fan_power'] = 30 - args['mech_vent_num_units_served'] = 1 - args['mech_vent_2_fan_type'] = Constants::None - args['mech_vent_2_flow_rate'] = 110 - args['mech_vent_2_hours_in_operation'] = 24 - args['mech_vent_2_recovery_efficiency_type'] = 'Unadjusted' - args['mech_vent_2_total_recovery_efficiency'] = 0.48 - args['mech_vent_2_sensible_recovery_efficiency'] = 0.72 - args['mech_vent_2_fan_power'] = 30 args['kitchen_fans_quantity'] = 0 args['bathroom_fans_quantity'] = 0 - args['whole_house_fan_present'] = false args['water_heater_type'] = HPXML::WaterHeaterTypeStorage args['water_heater_fuel_type'] = HPXML::FuelTypeElectricity args['water_heater_location'] = HPXML::LocationConditionedSpace @@ -588,34 +508,9 @@ def _set_measure_argument_values(hpxml_file, args) args['water_heater_num_bedrooms_served'] = 3 args['hot_water_distribution_system_type'] = HPXML::DHWDistTypeStandard args['hot_water_distribution_standard_piping_length'] = 50 - args['hot_water_distribution_recirc_control_type'] = HPXML::DHWRecircControlTypeNone - args['hot_water_distribution_recirc_piping_length'] = 50 - args['hot_water_distribution_recirc_branch_piping_length'] = 50 - args['hot_water_distribution_recirc_pump_power'] = 50 args['hot_water_distribution_pipe_r'] = 0.0 - args['dwhr_facilities_connected'] = Constants::None - args['dwhr_equal_flow'] = true - args['dwhr_efficiency'] = 0.55 args['water_fixtures_shower_low_flow'] = true args['water_fixtures_sink_low_flow'] = false - args['solar_thermal_system_type'] = Constants::None - args['solar_thermal_collector_area'] = 40.0 - args['solar_thermal_collector_loop_type'] = HPXML::SolarThermalLoopTypeDirect - args['solar_thermal_collector_type'] = HPXML::SolarThermalCollectorTypeEvacuatedTube - args['solar_thermal_collector_azimuth'] = 180 - args['solar_thermal_collector_tilt'] = 20 - args['solar_thermal_collector_rated_optical_efficiency'] = 0.5 - args['solar_thermal_collector_rated_thermal_losses'] = 0.2799 - args['solar_thermal_solar_fraction'] = 0 - args['pv_system_present'] = false - args['pv_system_array_azimuth'] = 180 - args['pv_system_array_tilt'] = 20 - args['pv_system_max_power_output'] = 4000 - args['pv_system_2_present'] = false - args['pv_system_2_array_azimuth'] = 180 - args['pv_system_2_array_tilt'] = 20 - args['pv_system_2_max_power_output'] = 4000 - args['battery_present'] = false args['lighting_present'] = true args['lighting_interior_fraction_cfl'] = 0.4 args['lighting_interior_fraction_lfl'] = 0.1 @@ -626,13 +521,6 @@ def _set_measure_argument_values(hpxml_file, args) args['lighting_garage_fraction_cfl'] = 0.4 args['lighting_garage_fraction_lfl'] = 0.1 args['lighting_garage_fraction_led'] = 0.25 - args['holiday_lighting_present'] = false - args['dehumidifier_type'] = Constants::None - args['dehumidifier_efficiency_type'] = 'EnergyFactor' - args['dehumidifier_efficiency'] = 1.8 - args['dehumidifier_capacity'] = 40 - args['dehumidifier_rh_setpoint'] = 0.5 - args['dehumidifier_fraction_dehumidification_load_served'] = 1 args['clothes_washer_present'] = true args['clothes_washer_location'] = HPXML::LocationConditionedSpace args['clothes_washer_efficiency_type'] = 'IntegratedModifiedEnergyFactor' @@ -661,8 +549,6 @@ def _set_measure_argument_values(hpxml_file, args) args['refrigerator_present'] = true args['refrigerator_location'] = HPXML::LocationConditionedSpace args['refrigerator_rated_annual_kwh'] = 650.0 - args['extra_refrigerator_present'] = false - args['freezer_present'] = false args['cooking_range_oven_present'] = true args['cooking_range_oven_location'] = HPXML::LocationConditionedSpace args['cooking_range_oven_fuel_type'] = HPXML::FuelTypeElectricity @@ -674,18 +560,6 @@ def _set_measure_argument_values(hpxml_file, args) args['misc_plug_loads_other_annual_kwh'] = 2457.0 args['misc_plug_loads_other_frac_sensible'] = 0.855 args['misc_plug_loads_other_frac_latent'] = 0.045 - args['misc_plug_loads_well_pump_present'] = false - args['misc_plug_loads_vehicle_present'] = false - args['misc_fuel_loads_grill_present'] = false - args['misc_fuel_loads_grill_fuel_type'] = HPXML::FuelTypeNaturalGas - args['misc_fuel_loads_lighting_present'] = false - args['misc_fuel_loads_lighting_fuel_type'] = HPXML::FuelTypeNaturalGas - args['misc_fuel_loads_fireplace_present'] = false - args['misc_fuel_loads_fireplace_fuel_type'] = HPXML::FuelTypeNaturalGas - args['pool_present'] = false - args['pool_heater_type'] = HPXML::HeaterTypeElectricResistance - args['permanent_spa_present'] = false - args['permanent_spa_heater_type'] = HPXML::HeaterTypeElectricResistance when 'base-sfd2.xml' args['existing_hpxml_path'] = File.join(File.dirname(__FILE__), 'extra_files/base-sfd.xml') args['whole_sfa_or_mf_building_sim'] = true @@ -694,14 +568,10 @@ def _set_measure_argument_values(hpxml_file, args) args['geometry_unit_cfa'] = 1800.0 args['geometry_building_num_units'] = 3 args['geometry_unit_right_wall_is_adiabatic'] = true - args['window_front_wwr'] = 0.18 - args['window_back_wwr'] = 0.18 - args['window_left_wwr'] = 0.18 - args['window_right_wwr'] = 0.18 - args['window_area_front'] = 0 - args['window_area_back'] = 0 - args['window_area_left'] = 0 - args['window_area_right'] = 0 + args['window_area_front'] = 0.18 + args['window_area_back'] = 0.18 + args['window_area_left'] = 0.18 + args['window_area_right'] = 0.18 args['air_leakage_type'] = HPXML::InfiltrationTypeUnitTotal when 'base-sfa2.xml' args['existing_hpxml_path'] = File.join(File.dirname(__FILE__), 'extra_files/base-sfa.xml') @@ -717,14 +587,10 @@ def _set_measure_argument_values(hpxml_file, args) args['geometry_foundation_type'] = HPXML::FoundationTypeAboveApartment args['geometry_unit_right_wall_is_adiabatic'] = true args['geometry_building_num_units'] = 6 - args['window_front_wwr'] = 0.18 - args['window_back_wwr'] = 0.18 - args['window_left_wwr'] = 0.18 - args['window_right_wwr'] = 0.18 - args['window_area_front'] = 0 - args['window_area_back'] = 0 - args['window_area_left'] = 0 - args['window_area_right'] = 0 + args['window_area_front'] = 0.18 + args['window_area_back'] = 0.18 + args['window_area_left'] = 0.18 + args['window_area_right'] = 0.18 args['ducts_supply_leakage_to_outside_value'] = 0.0 args['ducts_return_leakage_to_outside_value'] = 0.0 args['ducts_supply_location'] = HPXML::LocationConditionedSpace @@ -762,6 +628,17 @@ def _set_measure_argument_values(hpxml_file, args) when 'base-sfd-header-no-duplicates.xml' args['existing_hpxml_path'] = File.join(File.dirname(__FILE__), 'extra_files/base-sfd-header.xml') args['whole_sfa_or_mf_building_sim'] = true + when 'base-auto.xml' + args['simulation_control_timestep'] = Constants::Auto + args['simulation_control_run_period_calendar_year'] = Constants::Auto + args['simulation_control_daylight_saving_enabled'] = Constants::Auto + args['simulation_control_temperature_capacitance_multiplier'] = Constants::Auto + args['site_type'] = Constants::Auto + args['site_shielding_of_home'] = Constants::Auto + args['site_soil_and_moisture_type'] = Constants::Auto + args['site_state_code'] = Constants::Auto + args['site_time_zone_utc_offset'] = Constants::Auto + args['site_elevation'] = Constants::Auto end # Extras @@ -788,7 +665,13 @@ def _set_measure_argument_values(hpxml_file, args) args['pv_system_2_array_tilt'] = 'roofpitch+15' when 'extra-dhw-solar-latitude.xml' args['solar_thermal_system_type'] = HPXML::SolarThermalSystemTypeHotWater + args['solar_thermal_collector_area'] = 40.0 + args['solar_thermal_collector_loop_type'] = HPXML::SolarThermalLoopTypeDirect + args['solar_thermal_collector_type'] = HPXML::SolarThermalCollectorTypeEvacuatedTube + args['solar_thermal_collector_azimuth'] = 180 args['solar_thermal_collector_tilt'] = 'Latitude-15' + args['solar_thermal_collector_rated_optical_efficiency'] = 0.5 + args['solar_thermal_collector_rated_thermal_losses'] = 0.2799 when 'extra-second-refrigerator.xml' args['extra_refrigerator_location'] = HPXML::LocationConditionedSpace when 'extra-second-heating-system-portable-heater-to-heating-system.xml' @@ -818,6 +701,8 @@ def _set_measure_argument_values(hpxml_file, args) args['heating_system_type'] = Constants::None args['cooling_system_type'] = Constants::None args['heat_pump_type'] = HPXML::HVACTypeHeatPumpAirToAir + args['heat_pump_heating_efficiency'] = 7.7 + args['heat_pump_cooling_efficiency'] = 13.0 args['heat_pump_backup_type'] = HPXML::HeatPumpBackupTypeIntegrated args['heat_pump_backup_fuel'] = HPXML::FuelTypeElectricity args['heat_pump_heating_capacity'] = 48000.0 @@ -835,6 +720,7 @@ def _set_measure_argument_values(hpxml_file, args) args.delete('heat_pump_cooling_compressor_type') args['heat_pump_heating_efficiency'] = 10.0 args['heat_pump_cooling_efficiency'] = 19.0 + args['heat_pump_backup_type'] = HPXML::HeatPumpBackupTypeIntegrated args['heat_pump_heating_capacity'] = 48000.0 args['heat_pump_is_ducted'] = true args['heat_pump_fraction_heat_load_served'] = 0.75 @@ -862,6 +748,7 @@ def _set_measure_argument_values(hpxml_file, args) args['geometry_garage_protrusion'] = 0.5 when 'extra-enclosure-garage-atticroof-conditioned.xml' args['geometry_garage_width'] = 30.0 + args['geometry_garage_depth'] = 20.0 args['geometry_garage_protrusion'] = 1.0 args['window_area_front'] = 12.0 args['window_aspect_ratio'] = 5.0 / 1.5 @@ -1266,13 +1153,16 @@ def _set_measure_argument_values(hpxml_file, args) when 'error-hip-roof-and-protruding-garage.xml' args['geometry_roof_type'] = Constants::RoofTypeHip args['geometry_garage_width'] = 12 + args['geometry_garage_depth'] = 20 args['geometry_garage_protrusion'] = 0.5 when 'error-protruding-garage-under-gable-roof.xml' args['geometry_unit_aspect_ratio'] = 0.5 args['geometry_garage_width'] = 12 + args['geometry_garage_depth'] = 20 args['geometry_garage_protrusion'] = 0.5 when 'error-ambient-with-garage.xml' args['geometry_garage_width'] = 12 + args['geometry_garage_depth'] = 20 args['geometry_foundation_type'] = HPXML::FoundationTypeAmbient when 'error-invalid-door-area.xml' args['door_area'] = -10 @@ -1280,6 +1170,7 @@ def _set_measure_argument_values(hpxml_file, args) args['window_aspect_ratio'] = 0 when 'error-garage-too-wide.xml' args['geometry_garage_width'] = 72 + args['geometry_garage_depth'] = 20 when 'error-garage-too-deep.xml' args['geometry_garage_width'] = 12 args['geometry_garage_depth'] = 40 diff --git a/Changelog.md b/Changelog.md index bc31743417..7be8d6a0c4 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,6 +1,8 @@ ## OpenStudio-HPXML v1.10.0 __New Features__ +- BuildResidentialHPXML measure: + - **Breaking change**: Removed `window__wwr` argument; a value less than 1 can be provided to the `window_area_` and will be treated as a window-to-wall ratio. __Bugfixes__ diff --git a/HPXMLtoOpenStudio/measure.xml b/HPXMLtoOpenStudio/measure.xml index b4ac7fd8f4..a5aef98ffc 100644 --- a/HPXMLtoOpenStudio/measure.xml +++ b/HPXMLtoOpenStudio/measure.xml @@ -3,8 +3,8 @@ 3.1 hpxm_lto_openstudio b1543b30-9465-45ff-ba04-1d1f85e763bc - c578c384-3ac2-4bc5-8764-763873807874 - 2024-11-27T16:38:08Z + aafb1678-c324-46e1-8f87-f66fd12a4575 + 2024-12-02T17:32:09Z D8922A73 HPXMLtoOpenStudio HPXML to OpenStudio Translator @@ -429,7 +429,7 @@ meta_measure.rb rb resource - F335EDC8 + CE2B7F88 minitest_helper.rb @@ -627,7 +627,7 @@ waterheater.rb rb resource - 6D8EEB7D + 2E2A51B7 weather.rb @@ -651,7 +651,7 @@ test_airflow.rb rb test - DA1297B3 + 56EB7327 test_battery.rb @@ -669,7 +669,7 @@ test_enclosure.rb rb test - A5253262 + 225864E3 test_generator.rb @@ -735,7 +735,7 @@ test_validation.rb rb test - 95476C6B + 1AD2667B test_water_heater.rb diff --git a/HPXMLtoOpenStudio/resources/meta_measure.rb b/HPXMLtoOpenStudio/resources/meta_measure.rb index 22462098e1..37dd183940 100644 --- a/HPXMLtoOpenStudio/resources/meta_measure.rb +++ b/HPXMLtoOpenStudio/resources/meta_measure.rb @@ -624,3 +624,32 @@ def is_integer? return true end end + +# TODO +def convertArgumentValues(get_arguments, args, delete_auto = true) + args.each do |name, value| + if delete_auto && value == Constants::Auto + args.delete(name) + next + end + + arg = get_arguments.find { |a| name.to_s == a[:name] } + type = arg[:type] + + if type == Argument::Choice + choices = arg[:choices] + if choices.include?(Constants::Auto) + if value.downcase.to_s == 'true' + args[name] = true + elsif value.downcase.to_s == 'false' + args[name] = false + end + end + elsif type == Argument::Double + args[name] = Float(value) + elsif type == Argument::Integer + args[name] = Integer(value) + end + end + return args +end diff --git a/HPXMLtoOpenStudio/resources/waterheater.rb b/HPXMLtoOpenStudio/resources/waterheater.rb index 32c094ce64..a4871960b7 100644 --- a/HPXMLtoOpenStudio/resources/waterheater.rb +++ b/HPXMLtoOpenStudio/resources/waterheater.rb @@ -430,10 +430,8 @@ def self.get_dist_energy_waste_factor(hot_water_distribution) # @param plantloop_map [Hash] Map of HPXML System ID => OpenStudio PlantLoop objects # @return [nil] def self.apply_combi_system_EMS(model, water_heating_systems, plantloop_map) - water_heating_systems.select { |wh| - [HPXML::WaterHeaterTypeCombiStorage, - HPXML::WaterHeaterTypeCombiTankless].include? wh.water_heater_type - }.each do |water_heating_system| + combi_whs = water_heating_systems.select { |wh| [HPXML::WaterHeaterTypeCombiStorage, HPXML::WaterHeaterTypeCombiTankless].include? wh.water_heater_type } + combi_whs.each do |water_heating_system| combi_sys_id = water_heating_system.id # EMS for modulate source side mass flow rate diff --git a/HPXMLtoOpenStudio/tests/test_airflow.rb b/HPXMLtoOpenStudio/tests/test_airflow.rb index d67967fa04..497129777e 100644 --- a/HPXMLtoOpenStudio/tests/test_airflow.rb +++ b/HPXMLtoOpenStudio/tests/test_airflow.rb @@ -647,8 +647,8 @@ def test_ducts_leakage_percent model, _hpxml, hpxml_bldg = _test_measure(args_hash) # Get HPXML values - supply_leakage = hpxml_bldg.hvac_distributions[0].duct_leakage_measurements.select { |m| m.duct_type == HPXML::DuctTypeSupply }[0] - return_leakage = hpxml_bldg.hvac_distributions[0].duct_leakage_measurements.select { |m| m.duct_type == HPXML::DuctTypeReturn }[0] + supply_leakage = hpxml_bldg.hvac_distributions[0].duct_leakage_measurements.find { |m| m.duct_type == HPXML::DuctTypeSupply } + return_leakage = hpxml_bldg.hvac_distributions[0].duct_leakage_measurements.find { |m| m.duct_type == HPXML::DuctTypeReturn } supply_leakage_frac = supply_leakage.duct_leakage_value return_leakage_frac = return_leakage.duct_leakage_value @@ -737,25 +737,25 @@ def test_infiltration_compartmentalization_area def test_infiltration_assumed_height # Base _hpxml, hpxml_bldg = _create_hpxml('base.xml') - infil_volume = hpxml_bldg.air_infiltration_measurements.select { |m| !m.infiltration_volume.nil? }[0].infiltration_volume + infil_volume = hpxml_bldg.air_infiltration_measurements.find { |m| !m.infiltration_volume.nil? }.infiltration_volume infil_height = hpxml_bldg.inferred_infiltration_height(infil_volume) assert_equal(9.75, infil_height) # Test w/o conditioned basement _hpxml, hpxml_bldg = _create_hpxml('base-foundation-unconditioned-basement.xml') - infil_volume = hpxml_bldg.air_infiltration_measurements.select { |m| !m.infiltration_volume.nil? }[0].infiltration_volume + infil_volume = hpxml_bldg.air_infiltration_measurements.find { |m| !m.infiltration_volume.nil? }.infiltration_volume infil_height = hpxml_bldg.inferred_infiltration_height(infil_volume) assert_equal(8, infil_height) # Test w/ walkout basement _hpxml, hpxml_bldg = _create_hpxml('base-foundation-walkout-basement.xml') - infil_volume = hpxml_bldg.air_infiltration_measurements.select { |m| !m.infiltration_volume.nil? }[0].infiltration_volume + infil_volume = hpxml_bldg.air_infiltration_measurements.find { |m| !m.infiltration_volume.nil? }.infiltration_volume infil_height = hpxml_bldg.inferred_infiltration_height(infil_volume) assert_equal(16, infil_height) # Test 2 story building _hpxml, hpxml_bldg = _create_hpxml('base-enclosure-2stories.xml') - infil_volume = hpxml_bldg.air_infiltration_measurements.select { |m| !m.infiltration_volume.nil? }[0].infiltration_volume + infil_volume = hpxml_bldg.air_infiltration_measurements.find { |m| !m.infiltration_volume.nil? }.infiltration_volume infil_height = hpxml_bldg.inferred_infiltration_height(infil_volume) assert_equal(17.75, infil_height) diff --git a/HPXMLtoOpenStudio/tests/test_enclosure.rb b/HPXMLtoOpenStudio/tests/test_enclosure.rb index d84a3e6041..87de9cf88a 100644 --- a/HPXMLtoOpenStudio/tests/test_enclosure.rb +++ b/HPXMLtoOpenStudio/tests/test_enclosure.rb @@ -619,7 +619,7 @@ def test_windows sf_winter *= window.exterior_shading_factor_winter unless window.exterior_shading_factor_winter.nil? # Check shading transmittance for sky beam and sky diffuse - os_subsurface = model.getSubSurfaces.select { |ss| ss.name.to_s.start_with? window.id }[0] + os_subsurface = model.getSubSurfaces.find { |ss| ss.name.to_s.start_with? window.id } os_ism = nil model.getSurfacePropertyIncidentSolarMultipliers.each do |ism| next unless os_subsurface == ism.subSurface @@ -683,7 +683,7 @@ def test_skylights sf_winter *= skylight.exterior_shading_factor_winter unless skylight.exterior_shading_factor_winter.nil? # Check shading transmittance for sky beam and sky diffuse - os_subsurface = model.getSubSurfaces.select { |ss| ss.name.to_s.start_with? skylight.id }[0] + os_subsurface = model.getSubSurfaces.find { |ss| ss.name.to_s.start_with? skylight.id } os_ism = nil model.getSurfacePropertyIncidentSolarMultipliers.each do |ism| next unless os_subsurface == ism.subSurface diff --git a/HPXMLtoOpenStudio/tests/test_validation.rb b/HPXMLtoOpenStudio/tests/test_validation.rb index 21f4bf08e0..1e82044122 100644 --- a/HPXMLtoOpenStudio/tests/test_validation.rb +++ b/HPXMLtoOpenStudio/tests/test_validation.rb @@ -345,18 +345,12 @@ def test_schema_schematron_error_messages hpxml_bldg.building_construction.conditioned_floor_area = 898.8 when 'enclosure-garage-missing-exterior-wall' hpxml, hpxml_bldg = _create_hpxml('base-enclosure-garage.xml') - hpxml_bldg.walls.select { |w| - w.interior_adjacent_to == HPXML::LocationGarage && - w.exterior_adjacent_to == HPXML::LocationOutside - }.reverse_each do |wall| + hpxml_bldg.walls.select { |w| w.interior_adjacent_to == HPXML::LocationGarage && w.exterior_adjacent_to == HPXML::LocationOutside }.reverse_each do |wall| wall.delete end when 'enclosure-garage-missing-roof-ceiling' hpxml, hpxml_bldg = _create_hpxml('base-enclosure-garage.xml') - hpxml_bldg.floors.select { |w| - w.interior_adjacent_to == HPXML::LocationGarage && - w.exterior_adjacent_to == HPXML::LocationAtticUnvented - }.reverse_each do |floor| + hpxml_bldg.floors.select { |w| w.interior_adjacent_to == HPXML::LocationGarage && w.exterior_adjacent_to == HPXML::LocationAtticUnvented }.reverse_each do |floor| floor.delete end when 'enclosure-garage-missing-slab' diff --git a/tasks.rb b/tasks.rb index a80bc6614a..db19e58f5d 100644 --- a/tasks.rb +++ b/tasks.rb @@ -599,10 +599,7 @@ def apply_hpxml_modification_sample_files(hpxml_path, hpxml) elsif hpxml_file == 'base-bldgtype-mf-unit-adjacent-to-other-housing-unit.xml' adjacent_to = HPXML::LocationOtherHousingUnit end - wall = hpxml_bldg.walls.select { |w| - w.interior_adjacent_to == HPXML::LocationConditionedSpace && - w.exterior_adjacent_to == HPXML::LocationOtherHousingUnit - }[0] + wall = hpxml_bldg.walls.find { |w| w.interior_adjacent_to == HPXML::LocationConditionedSpace && w.exterior_adjacent_to == HPXML::LocationOtherHousingUnit } wall.exterior_adjacent_to = adjacent_to hpxml_bldg.floors[0].exterior_adjacent_to = adjacent_to hpxml_bldg.floors[1].exterior_adjacent_to = adjacent_to @@ -629,10 +626,7 @@ def apply_hpxml_modification_sample_files(hpxml_path, hpxml) hpxml_bldg.cooking_ranges[0].location = adjacent_to elsif ['base-bldgtype-mf-unit-adjacent-to-multiple.xml', 'base-bldgtype-mf-unit-adjacent-to-multiple-hvac-none.xml'].include? hpxml_file - wall = hpxml_bldg.walls.select { |w| - w.interior_adjacent_to == HPXML::LocationConditionedSpace && - w.exterior_adjacent_to == HPXML::LocationOtherHousingUnit - }[0] + wall = hpxml_bldg.walls.find { |w| w.interior_adjacent_to == HPXML::LocationConditionedSpace && w.exterior_adjacent_to == HPXML::LocationOtherHousingUnit } wall.delete hpxml_bldg.walls.add(id: "Wall#{hpxml_bldg.walls.size + 1}", exterior_adjacent_to: HPXML::LocationOtherHeatedSpace, @@ -694,10 +688,7 @@ def apply_hpxml_modification_sample_files(hpxml_path, hpxml) area: 150, insulation_assembly_r_value: 2.1, floor_or_ceiling: HPXML::FloorOrCeilingFloor) - wall = hpxml_bldg.walls.select { |w| - w.interior_adjacent_to == HPXML::LocationConditionedSpace && - w.exterior_adjacent_to == HPXML::LocationOtherMultifamilyBufferSpace - }[0] + wall = hpxml_bldg.walls.find { |w| w.interior_adjacent_to == HPXML::LocationConditionedSpace && w.exterior_adjacent_to == HPXML::LocationOtherMultifamilyBufferSpace } hpxml_bldg.windows.add(id: "Window#{hpxml_bldg.windows.size + 1}", area: 50, azimuth: 270, @@ -705,19 +696,13 @@ def apply_hpxml_modification_sample_files(hpxml_path, hpxml) shgc: 0.45, fraction_operable: 0.67, attached_to_wall_idref: wall.id) - wall = hpxml_bldg.walls.select { |w| - w.interior_adjacent_to == HPXML::LocationConditionedSpace && - w.exterior_adjacent_to == HPXML::LocationOtherHeatedSpace - }[0] + wall = hpxml_bldg.walls.find { |w| w.interior_adjacent_to == HPXML::LocationConditionedSpace && w.exterior_adjacent_to == HPXML::LocationOtherHeatedSpace } hpxml_bldg.doors.add(id: "Door#{hpxml_bldg.doors.size + 1}", attached_to_wall_idref: wall.id, area: 20, azimuth: 0, r_value: 4.4) - wall = hpxml_bldg.walls.select { |w| - w.interior_adjacent_to == HPXML::LocationConditionedSpace && - w.exterior_adjacent_to == HPXML::LocationOtherHousingUnit - }[0] + wall = hpxml_bldg.walls.find { |w| w.interior_adjacent_to == HPXML::LocationConditionedSpace && w.exterior_adjacent_to == HPXML::LocationOtherHousingUnit } hpxml_bldg.doors.add(id: "Door#{hpxml_bldg.doors.size + 1}", attached_to_wall_idref: wall.id, area: 20, @@ -1445,10 +1430,7 @@ def apply_hpxml_modification_sample_files(hpxml_path, hpxml) 'base-enclosure-garage.xml', 'base-zones-spaces.xml', 'base-zones-spaces-multiple.xml'].include? hpxml_file - grg_wall = hpxml_bldg.walls.select { |w| - w.interior_adjacent_to == HPXML::LocationGarage && - w.exterior_adjacent_to == HPXML::LocationOutside - }[0] + grg_wall = hpxml_bldg.walls.find { |w| w.interior_adjacent_to == HPXML::LocationGarage && w.exterior_adjacent_to == HPXML::LocationOutside } hpxml_bldg.doors.add(id: "Door#{hpxml_bldg.doors.size + 1}", attached_to_wall_idref: grg_wall.id, area: 70, @@ -1456,7 +1438,7 @@ def apply_hpxml_modification_sample_files(hpxml_path, hpxml) r_value: 4.4) end if ['base-misc-neighbor-shading-bldgtype-multifamily.xml'].include? hpxml_file - wall = hpxml_bldg.walls.select { |w| w.azimuth == hpxml_bldg.neighbor_buildings[0].azimuth }[0] + wall = hpxml_bldg.walls.find { |w| w.azimuth == hpxml_bldg.neighbor_buildings[0].azimuth } wall.exterior_adjacent_to = HPXML::LocationOtherHeatedSpace end if ['base-foundation-vented-crawlspace-above-grade2.xml'].include? hpxml_file diff --git a/workflow/hpxml_inputs.json b/workflow/hpxml_inputs.json index 443c200788..63be75c765 100644 --- a/workflow/hpxml_inputs.json +++ b/workflow/hpxml_inputs.json @@ -26,7 +26,6 @@ "neighbor_left_distance": 0, "neighbor_right_distance": 0, "floor_over_foundation_assembly_r": 14.15, - "floor_over_garage_assembly_r": 0, "floor_type": "WoodFrame", "foundation_wall_thickness": 6, "foundation_wall_insulation_r": 0, @@ -51,10 +50,6 @@ "wall_siding_type": "wood siding", "wall_color": "medium", "wall_assembly_r": 11.76, - "window_front_wwr": 0, - "window_back_wwr": 0, - "window_left_wwr": 0, - "window_right_wwr": 0, "window_area_front": 90, "window_area_back": 90, "window_area_left": 45, @@ -65,51 +60,14 @@ "window_shgc": 0.67, "window_interior_shading_winter": 1, "window_interior_shading_summer": 1, - "overhangs_front_depth": 0, - "overhangs_front_distance_to_top_of_window": 0, - "overhangs_front_distance_to_bottom_of_window": 0, - "overhangs_back_depth": 0, - "overhangs_back_distance_to_top_of_window": 0, - "overhangs_back_distance_to_bottom_of_window": 0, - "overhangs_left_depth": 0, - "overhangs_left_distance_to_top_of_window": 0, - "overhangs_left_distance_to_bottom_of_window": 0, - "overhangs_right_depth": 0, - "overhangs_right_distance_to_top_of_window": 0, - "overhangs_right_distance_to_bottom_of_window": 0, - "skylight_area_front": 0, - "skylight_area_back": 0, - "skylight_area_left": 0, - "skylight_area_right": 0, - "skylight_ufactor": 0, - "skylight_shgc": 0, "door_area": 40, "door_rvalue": 3.04, "air_leakage_units": "ACHnatural", "air_leakage_house_pressure": 50, "air_leakage_value": 0.67, "heating_system_type": "none", - "heating_system_fuel": "natural gas", - "heating_system_heating_efficiency": 0, - "heating_system_fraction_heat_load_served": 0, "cooling_system_type": "none", - "cooling_system_cooling_efficiency_type": "SEER", - "cooling_system_cooling_efficiency": 0, - "cooling_system_fraction_cool_load_served": 0, "heat_pump_type": "none", - "heat_pump_heating_efficiency_type": "HSPF", - "heat_pump_heating_efficiency": 0, - "heat_pump_cooling_efficiency_type": "SEER", - "heat_pump_cooling_efficiency": 0, - "heat_pump_fraction_heat_load_served": 0, - "heat_pump_fraction_cool_load_served": 0, - "heat_pump_backup_type": "none", - "heat_pump_backup_fuel": "electricity", - "heat_pump_backup_heating_efficiency": 0, - "heating_system_2_type": "none", - "heating_system_2_fuel": "electricity", - "heating_system_2_heating_efficiency": 0, - "heating_system_2_fraction_heat_load_served": 0, "hvac_control_heating_weekday_setpoint": 68, "hvac_control_heating_weekend_setpoint": 68, "hvac_control_cooling_weekday_setpoint": 78, @@ -119,95 +77,21 @@ "ducts_return_leakage_to_outside_value": 0, "ducts_supply_insulation_r": 0, "ducts_return_insulation_r": 0, - "mech_vent_fan_type": "none", - "mech_vent_recovery_efficiency_type": "Unadjusted", - "mech_vent_total_recovery_efficiency": 0, - "mech_vent_sensible_recovery_efficiency": 0, - "mech_vent_num_units_served": 0, - "mech_vent_2_fan_type": "none", - "mech_vent_2_flow_rate": 0, - "mech_vent_2_hours_in_operation": 0, - "mech_vent_2_recovery_efficiency_type": "Unadjusted", - "mech_vent_2_total_recovery_efficiency": 0, - "mech_vent_2_sensible_recovery_efficiency": 0, - "mech_vent_2_fan_power": 0, "kitchen_fans_quantity": 0, "bathroom_fans_quantity": 0, - "whole_house_fan_present": false, "water_heater_type": "none", - "water_heater_fuel_type": "electricity", - "water_heater_efficiency_type": "EnergyFactor", - "water_heater_efficiency": 0, - "water_heater_num_bedrooms_served": 0, "hot_water_distribution_system_type": "Standard", - "dwhr_facilities_connected": "none", - "water_fixtures_shower_low_flow": false, - "water_fixtures_sink_low_flow": false, - "water_fixtures_usage_multiplier": null, - "solar_thermal_system_type": "none", - "solar_thermal_collector_area": 0, - "solar_thermal_collector_loop_type": "liquid indirect", - "solar_thermal_collector_type": "single glazing black", - "solar_thermal_collector_azimuth": 0, - "solar_thermal_collector_tilt": 0, - "solar_thermal_collector_rated_optical_efficiency": 0, - "solar_thermal_collector_rated_thermal_losses": 0, - "solar_thermal_solar_fraction": 0, - "pv_system_present": false, - "pv_system_array_azimuth": 0, - "pv_system_array_tilt": 0, - "pv_system_max_power_output": 0, - "pv_system_2_present": false, - "pv_system_2_array_azimuth": 0, - "pv_system_2_array_tilt": 0, - "pv_system_2_max_power_output": 0, - "battery_present": false, "lighting_present": false, - "lighting_interior_fraction_cfl": 0, - "lighting_interior_fraction_lfl": 0, - "lighting_interior_fraction_led": 0, - "lighting_exterior_fraction_cfl": 0, - "lighting_exterior_fraction_lfl": 0, - "lighting_exterior_fraction_led": 0, - "lighting_garage_fraction_cfl": 0, - "lighting_garage_fraction_lfl": 0, - "lighting_garage_fraction_led": 0, - "holiday_lighting_present": false, - "dehumidifier_type": "none", - "dehumidifier_efficiency_type": "EnergyFactor", - "dehumidifier_efficiency": 0, - "dehumidifier_capacity": 0, - "dehumidifier_rh_setpoint": 0, - "dehumidifier_fraction_dehumidification_load_served": 0, "clothes_washer_present": false, - "clothes_washer_efficiency_type": "IntegratedModifiedEnergyFactor", "clothes_dryer_present": false, - "clothes_dryer_fuel_type": "electricity", - "clothes_dryer_efficiency_type": "CombinedEnergyFactor", "dishwasher_present": false, - "dishwasher_efficiency_type": "RatedAnnualkWh", "refrigerator_present": false, - "extra_refrigerator_present": false, - "freezer_present": false, "cooking_range_oven_present": false, - "cooking_range_oven_fuel_type": "electricity", "ceiling_fan_present": false, "misc_plug_loads_television_present": false, "misc_plug_loads_other_annual_kwh": 7302, "misc_plug_loads_other_frac_sensible": 0.822, "misc_plug_loads_other_frac_latent": 0.178, - "misc_plug_loads_well_pump_present": false, - "misc_plug_loads_vehicle_present": false, - "misc_fuel_loads_grill_present": false, - "misc_fuel_loads_grill_fuel_type": "natural gas", - "misc_fuel_loads_lighting_present": false, - "misc_fuel_loads_lighting_fuel_type": "natural gas", - "misc_fuel_loads_fireplace_present": false, - "misc_fuel_loads_fireplace_fuel_type": "natural gas", - "pool_present": false, - "pool_heater_type": "none", - "permanent_spa_present": false, - "permanent_spa_heater_type": "none", "combine_like_surfaces": false }, "tests/ASHRAE_Standard_140/L110AC.xml": { @@ -526,9 +410,11 @@ "water_heater_location": "conditioned space", "clothes_washer_present": true, "clothes_dryer_present": true, + "clothes_dryer_fuel_type": "electricity", "dishwasher_present": true, "refrigerator_present": true, "cooking_range_oven_present": true, + "cooking_range_oven_fuel_type": "electricity", "lighting_present": true, "misc_plug_loads_other_annual_kwh": null, "misc_plug_loads_other_frac_sensible": null, @@ -631,8 +517,6 @@ "neighbor_back_distance": 0, "neighbor_left_distance": 0, "neighbor_right_distance": 0, - "floor_over_foundation_assembly_r": 0, - "floor_over_garage_assembly_r": 0, "floor_type": "WoodFrame", "foundation_wall_thickness": 8, "foundation_wall_insulation_r": 8.9, @@ -657,10 +541,6 @@ "wall_siding_type": "wood siding", "wall_color": "medium", "wall_assembly_r": 23, - "window_front_wwr": 0, - "window_back_wwr": 0, - "window_left_wwr": 0, - "window_right_wwr": 0, "window_area_front": 108, "window_area_back": 108, "window_area_left": 72, @@ -671,24 +551,6 @@ "window_shgc": 0.45, "window_interior_shading_winter": 0.85, "window_interior_shading_summer": 0.7, - "overhangs_front_depth": 0, - "overhangs_front_distance_to_top_of_window": 0, - "overhangs_front_distance_to_bottom_of_window": 0, - "overhangs_back_depth": 0, - "overhangs_back_distance_to_top_of_window": 0, - "overhangs_back_distance_to_bottom_of_window": 0, - "overhangs_left_depth": 0, - "overhangs_left_distance_to_top_of_window": 0, - "overhangs_left_distance_to_bottom_of_window": 0, - "overhangs_right_depth": 0, - "overhangs_right_distance_to_top_of_window": 0, - "overhangs_right_distance_to_bottom_of_window": 0, - "skylight_area_front": 0, - "skylight_area_back": 0, - "skylight_area_left": 0, - "skylight_area_right": 0, - "skylight_ufactor": 0.33, - "skylight_shgc": 0.45, "door_area": 40, "door_rvalue": 4.4, "air_leakage_units": "ACH", @@ -707,19 +569,6 @@ "cooling_system_cooling_capacity": 24000, "cooling_system_fraction_cool_load_served": 1, "heat_pump_type": "none", - "heat_pump_heating_efficiency_type": "HSPF", - "heat_pump_heating_efficiency": 0, - "heat_pump_cooling_efficiency_type": "SEER", - "heat_pump_cooling_efficiency": 0, - "heat_pump_fraction_heat_load_served": 0, - "heat_pump_fraction_cool_load_served": 0, - "heat_pump_backup_type": "none", - "heat_pump_backup_fuel": "electricity", - "heat_pump_backup_heating_efficiency": 0, - "heating_system_2_type": "none", - "heating_system_2_fuel": "electricity", - "heating_system_2_heating_efficiency": 0, - "heating_system_2_fraction_heat_load_served": 0, "hvac_control_heating_weekday_setpoint": 68, "hvac_control_heating_weekend_setpoint": 68, "hvac_control_cooling_weekday_setpoint": 78, @@ -733,21 +582,8 @@ "ducts_return_location": "attic - unvented", "ducts_return_insulation_r": 0, "ducts_return_surface_area": 50, - "mech_vent_fan_type": "none", - "mech_vent_recovery_efficiency_type": "Unadjusted", - "mech_vent_total_recovery_efficiency": 0, - "mech_vent_sensible_recovery_efficiency": 0, - "mech_vent_num_units_served": 0, - "mech_vent_2_fan_type": "none", - "mech_vent_2_flow_rate": 0, - "mech_vent_2_hours_in_operation": 0, - "mech_vent_2_recovery_efficiency_type": "Unadjusted", - "mech_vent_2_total_recovery_efficiency": 0, - "mech_vent_2_sensible_recovery_efficiency": 0, - "mech_vent_2_fan_power": 0, "kitchen_fans_quantity": 0, "bathroom_fans_quantity": 0, - "whole_house_fan_present": false, "water_heater_type": "storage water heater", "water_heater_fuel_type": "electricity", "water_heater_location": "conditioned space", @@ -761,27 +597,7 @@ "hot_water_distribution_system_type": "Standard", "hot_water_distribution_standard_piping_length": 50, "hot_water_distribution_pipe_r": 0, - "dwhr_facilities_connected": "none", "water_fixtures_shower_low_flow": true, - "water_fixtures_sink_low_flow": false, - "solar_thermal_system_type": "none", - "solar_thermal_collector_area": 0, - "solar_thermal_collector_loop_type": "liquid indirect", - "solar_thermal_collector_type": "single glazing black", - "solar_thermal_collector_azimuth": 0, - "solar_thermal_collector_tilt": 0, - "solar_thermal_collector_rated_optical_efficiency": 0, - "solar_thermal_collector_rated_thermal_losses": 0, - "solar_thermal_solar_fraction": 0, - "pv_system_present": false, - "pv_system_array_azimuth": 0, - "pv_system_array_tilt": 0, - "pv_system_max_power_output": 0, - "pv_system_2_present": false, - "pv_system_2_array_azimuth": 0, - "pv_system_2_array_tilt": 0, - "pv_system_2_max_power_output": 0, - "battery_present": false, "lighting_present": true, "lighting_interior_fraction_cfl": 0.4, "lighting_interior_fraction_lfl": 0.1, @@ -792,13 +608,6 @@ "lighting_garage_fraction_cfl": 0.4, "lighting_garage_fraction_lfl": 0.1, "lighting_garage_fraction_led": 0.25, - "holiday_lighting_present": false, - "dehumidifier_type": "none", - "dehumidifier_efficiency_type": "EnergyFactor", - "dehumidifier_efficiency": 0, - "dehumidifier_capacity": 0, - "dehumidifier_rh_setpoint": 0, - "dehumidifier_fraction_dehumidification_load_served": 0, "clothes_washer_present": true, "clothes_washer_location": "conditioned space", "clothes_washer_efficiency_type": "IntegratedModifiedEnergyFactor", @@ -827,8 +636,6 @@ "refrigerator_present": true, "refrigerator_location": "conditioned space", "refrigerator_rated_annual_kwh": 650, - "extra_refrigerator_present": false, - "freezer_present": false, "cooking_range_oven_present": true, "cooking_range_oven_location": "conditioned space", "cooking_range_oven_fuel_type": "electricity", @@ -840,21 +647,22 @@ "misc_plug_loads_other_annual_kwh": 2457, "misc_plug_loads_other_frac_sensible": 0.855, "misc_plug_loads_other_frac_latent": 0.045, - "misc_plug_loads_well_pump_present": false, - "misc_plug_loads_vehicle_present": false, - "misc_fuel_loads_grill_present": false, - "misc_fuel_loads_grill_fuel_type": "natural gas", - "misc_fuel_loads_lighting_present": false, - "misc_fuel_loads_lighting_fuel_type": "natural gas", - "misc_fuel_loads_fireplace_present": false, - "misc_fuel_loads_fireplace_fuel_type": "natural gas", - "pool_present": false, - "pool_heater_type": "none", - "permanent_spa_present": false, - "permanent_spa_heater_type": "none", "utility_bill_scenario_names": "Bills", "combine_like_surfaces": true }, + "sample_files/base-auto.xml": { + "parent_hpxml": "sample_files/base.xml", + "simulation_control_timestep": "auto", + "simulation_control_run_period_calendar_year": "auto", + "simulation_control_daylight_saving_enabled": "auto", + "simulation_control_temperature_capacitance_multiplier": "auto", + "site_type": "auto", + "site_shielding_of_home": "auto", + "site_soil_and_moisture_type": "auto", + "site_state_code": "auto", + "site_time_zone_utc_offset": "auto", + "site_elevation": "auto" + }, "sample_files/base-appliances-coal.xml": { "parent_hpxml": "sample_files/base-appliances-gas.xml", "clothes_dryer_fuel_type": "coal", @@ -863,6 +671,7 @@ "sample_files/base-appliances-dehumidifier.xml": { "parent_hpxml": "sample_files/base-location-dallas-tx.xml", "dehumidifier_type": "portable", + "dehumidifier_efficiency_type": "EnergyFactor", "dehumidifier_efficiency": 1.8, "dehumidifier_capacity": 40, "dehumidifier_rh_setpoint": 0.5, @@ -1013,14 +822,10 @@ "geometry_unit_cfa": 1800, "geometry_unit_aspect_ratio": 0.6667, "geometry_building_num_units": 3, - "window_front_wwr": 0.18, - "window_back_wwr": 0.18, - "window_left_wwr": 0.18, - "window_right_wwr": 0.18, - "window_area_front": 0, - "window_area_back": 0, - "window_area_left": 0, - "window_area_right": 0, + "window_area_front": 0.18, + "window_area_back": 0.18, + "window_area_left": 0.18, + "window_area_right": 0.18, "air_leakage_type": "unit exterior only", "heating_system_heating_capacity": 24000, "misc_plug_loads_other_annual_kwh": 1638 @@ -1058,14 +863,10 @@ "geometry_foundation_type": "AboveApartment", "geometry_attic_type": "BelowApartment", "geometry_unit_height_above_grade": 10, - "window_front_wwr": 0.18, - "window_back_wwr": 0.18, - "window_left_wwr": 0.18, - "window_right_wwr": 0.18, - "window_area_front": 0, - "window_area_back": 0, - "window_area_left": 0, - "window_area_right": 0, + "window_area_front": 0.18, + "window_area_back": 0.18, + "window_area_left": 0.18, + "window_area_right": 0.18, "door_area": 20, "air_leakage_type": "unit exterior only", "heating_system_heating_capacity": 12000, @@ -1438,12 +1239,21 @@ "sample_files/base-dhw-solar-fraction.xml": { "parent_hpxml": "sample_files/base.xml", "solar_thermal_system_type": "hot water", + "solar_thermal_collector_area": 0, + "solar_thermal_collector_loop_type": "liquid indirect", + "solar_thermal_collector_type": "single glazing black", + "solar_thermal_collector_azimuth": 0, + "solar_thermal_collector_tilt": 0, + "solar_thermal_collector_rated_optical_efficiency": 0, + "solar_thermal_collector_rated_thermal_losses": 0, "solar_thermal_solar_fraction": 0.65 }, "sample_files/base-dhw-solar-indirect-flat-plate.xml": { "parent_hpxml": "sample_files/base.xml", "solar_thermal_system_type": "hot water", "solar_thermal_collector_area": 40, + "solar_thermal_collector_loop_type": "liquid indirect", + "solar_thermal_collector_type": "single glazing black", "solar_thermal_collector_azimuth": 180, "solar_thermal_collector_tilt": 20, "solar_thermal_collector_rated_optical_efficiency": 0.77, @@ -1522,6 +1332,8 @@ "parent_hpxml": "sample_files/base-dhw-tank-heat-pump.xml", "solar_thermal_system_type": "hot water", "solar_thermal_collector_area": 40, + "solar_thermal_collector_loop_type": "liquid indirect", + "solar_thermal_collector_type": "single glazing black", "solar_thermal_collector_azimuth": 180, "solar_thermal_collector_tilt": 20, "solar_thermal_collector_rated_optical_efficiency": 0.77, @@ -1587,6 +1399,8 @@ "parent_hpxml": "sample_files/base-dhw-tankless-gas.xml", "solar_thermal_system_type": "hot water", "solar_thermal_collector_area": 40, + "solar_thermal_collector_loop_type": "liquid indirect", + "solar_thermal_collector_type": "single glazing black", "solar_thermal_collector_azimuth": 180, "solar_thermal_collector_tilt": 20, "solar_thermal_collector_rated_optical_efficiency": 0.77, @@ -1728,6 +1542,7 @@ "sample_files/base-enclosure-overhangs.xml": { "parent_hpxml": "sample_files/base.xml", "overhangs_back_depth": 2.5, + "overhangs_back_distance_to_top_of_window": 0, "overhangs_back_distance_to_bottom_of_window": 4, "overhangs_left_depth": 1.5, "overhangs_left_distance_to_top_of_window": 2, @@ -2323,6 +2138,7 @@ "heat_pump_cooling_efficiency": 13, "heat_pump_cooling_compressor_type": "single stage", "heat_pump_cooling_sensible_heat_fraction": 0.73, + "heat_pump_fraction_cool_load_served": 0, "heat_pump_heating_capacity": 36000, "heat_pump_heating_capacity_retention_fraction": 0.6, "heat_pump_heating_capacity_retention_temp": 17.0, @@ -2523,6 +2339,7 @@ "parent_hpxml": "sample_files/base-hvac-furnace-gas-only.xml", "heat_pump_type": "air-to-air", "heat_pump_heating_efficiency": 7.7, + "heat_pump_fraction_heat_load_served": 0, "heat_pump_cooling_efficiency": 13, "heat_pump_cooling_compressor_type": "single stage", "heat_pump_cooling_sensible_heat_fraction": 0.73, @@ -2530,7 +2347,8 @@ "heat_pump_heating_capacity_retention_fraction": 0.6, "heat_pump_heating_capacity_retention_temp": 17.0, "heat_pump_cooling_capacity": 36000, - "heat_pump_fraction_cool_load_served": 1 + "heat_pump_fraction_cool_load_served": 1, + "heat_pump_backup_type": "none" }, "sample_files/base-hvac-furnace-gas-room-ac.xml": { "parent_hpxml": "sample_files/base.xml", @@ -3406,6 +3224,7 @@ "solar_thermal_system_type": "hot water", "solar_thermal_collector_area": 40, "solar_thermal_collector_loop_type": "liquid direct", + "solar_thermal_collector_type": "single glazing black", "solar_thermal_collector_azimuth": 180, "solar_thermal_collector_tilt": 20, "solar_thermal_collector_rated_optical_efficiency": 0.77, @@ -3588,14 +3407,10 @@ "air_leakage_type": "unit exterior only", "air_leakage_units": "ACHnatural", "air_leakage_value": 0.375, - "window_front_wwr": 0.18, - "window_back_wwr": 0.18, - "window_left_wwr": 0.18, - "window_right_wwr": 0.18, - "window_area_front": 0, - "window_area_back": 0, - "window_area_left": 0, - "window_area_right": 0, + "window_area_front": 0.18, + "window_area_back": 0.18, + "window_area_left": 0.18, + "window_area_right": 0.18, "door_area": 20, "cooling_system_type": "room air conditioner", "cooling_system_cooling_efficiency_type": "EER", diff --git a/workflow/sample_files/base-auto.xml b/workflow/sample_files/base-auto.xml new file mode 100644 index 0000000000..37fd6c03f9 --- /dev/null +++ b/workflow/sample_files/base-auto.xml @@ -0,0 +1,541 @@ + + + + HPXML + tasks.rb + 2000-01-01T00:00:00-07:00 + create + + + + + + Bills + + + + + + + + proposed workscope + + + + + stand-alone + no units above or below + 180 + + electricity + natural gas + + + + single-family detached + 2.0 + 1.0 + 8.0 + 3 + 2 + 2700.0 + 21600.0 + + + + + 2006 + 5B + + + + USA_CO_Denver.Intl.AP.725650_TMY3 + + USA_CO_Denver.Intl.AP.725650_TMY3.epw + + + + + + + + 50.0 + + ACH + 3.0 + + 21600.0 + + + + + + + + false + + + false + + + + + + + + + + + true + + + + + + + + + + + attic - unvented + 1509.3 + asphalt or fiberglass shingles + 0.7 + 0.92 + 6.0 + + + 2.3 + + + + + + + outside + basement - conditioned + 115.6 + wood siding + 0.7 + 0.92 + + + 23.0 + + + + + + + outside + conditioned space + + + + 1200.0 + wood siding + 0.7 + 0.92 + + gypsum board + + + + 23.0 + + + + + outside + attic - unvented + gable + + + + 225.0 + wood siding + 0.7 + 0.92 + + + 4.0 + + + + + + + ground + basement - conditioned + 8.0 + 1200.0 + 8.0 + 7.0 + + gypsum board + + + + + continuous - exterior + 8.9 + 0.0 + 8.0 + + + continuous - interior + 0.0 + + + + + + + + attic - unvented + conditioned space + ceiling + + + + 1350.0 + + gypsum board + + + + 39.3 + + + + + + + basement - conditioned + 1350.0 + 4.0 + 150.0 + + + + 0.0 + 0.0 + + + + + + 0.0 + 0.0 + + + + 0.0 + 0.0 + + + + + + + 108.0 + 0 + 0.33 + 0.45 + + + 0.7 + 0.85 + + 0.67 + + + + + 72.0 + 90 + 0.33 + 0.45 + + + 0.7 + 0.85 + + 0.67 + + + + + 108.0 + 180 + 0.33 + 0.45 + + + 0.7 + 0.85 + + 0.67 + + + + + 72.0 + 270 + 0.33 + 0.45 + + + 0.7 + 0.85 + + 0.67 + + + + + + + + 40.0 + 180 + 4.4 + + + + + + + + + + + + + + + + + natural gas + 36000.0 + + AFUE + 0.92 + + 1.0 + + + + + central air conditioner + electricity + 24000.0 + single stage + 1.0 + + SEER + 13.0 + + 0.73 + + + + + 68.0 + 78.0 + + + + + + regular velocity + + supply + + CFM25 + 75.0 + to outside + + + + return + + CFM25 + 25.0 + to outside + + + + + supply + 4.0 + attic - unvented + 150.0 + + + + return + 0.0 + attic - unvented + 50.0 + + + + + + + + + electricity + storage water heater + conditioned space + 40.0 + 1.0 + 18767.0 + 0.95 + 125.0 + + + + + + 50.0 + + + + 0.0 + + + + + shower head + true + + + + faucet + false + + + + + + + conditioned space + 1.21 + 380.0 + 0.12 + 1.09 + 27.0 + 6.0 + 3.2 + + + + conditioned space + electricity + 3.73 + true + 150.0 + + + + conditioned space + 307.0 + 12 + 0.12 + 1.09 + 22.32 + 4.0 + + + + conditioned space + 650.0 + + + + conditioned space + electricity + false + + + + false + + + + + + interior + 0.4 + + + + + + + interior + 0.1 + + + + + + + interior + 0.25 + + + + + + + exterior + 0.4 + + + + + + + exterior + 0.1 + + + + + + + exterior + 0.25 + + + + + + + + + TV other + + kWh/year + 620.0 + + + + + other + + kWh/year + 2457.0 + + + 0.855 + 0.045 + + + + + + \ No newline at end of file diff --git a/workflow/template-build-and-run-hpxml-with-stochastic-occupancy.osw b/workflow/template-build-and-run-hpxml-with-stochastic-occupancy.osw index da3a974b27..c91ab11a0e 100644 --- a/workflow/template-build-and-run-hpxml-with-stochastic-occupancy.osw +++ b/workflow/template-build-and-run-hpxml-with-stochastic-occupancy.osw @@ -6,77 +6,81 @@ "steps": [ { "arguments": { - "air_leakage_house_pressure": 50, + "floor_type": "WoodFrame", + "wall_type": "WoodStud", + "heat_pump_type": "none", + "hot_water_distribution_system_type": "Standard", + "lighting_present": "true", + "clothes_washer_present": "true", + "clothes_dryer_present": "true", + "clothes_dryer_fuel_type": "natural gas", + "dishwasher_present": "true", + "refrigerator_present": "true", + "cooking_range_oven_present": "true", + "cooking_range_oven_fuel_type": "natural gas", + "ceiling_fan_present": "true", + "misc_plug_loads_television_present": "true", + "air_leakage_house_pressure": "50", "air_leakage_units": "ACH", - "air_leakage_value": 3, - "ceiling_assembly_r": 39.3, - "cooling_system_cooling_capacity": 24000.0, + "air_leakage_value": "3", + "ceiling_assembly_r": "39.3", + "cooling_system_cooling_capacity": "24000.0", "cooling_system_cooling_compressor_type": "single stage", - "cooling_system_cooling_efficiency": 13.0, + "cooling_system_cooling_efficiency": "13.0", "cooling_system_cooling_efficiency_type": "SEER", "cooling_system_type": "central air conditioner", - "door_area": 40.0, - "door_rvalue": 4.4, + "door_area": "40.0", + "door_rvalue": "4.4", "ducts_leakage_units": "CFM25", - "ducts_return_insulation_r": 0.0, - "ducts_return_leakage_to_outside_value": 25.0, + "ducts_return_insulation_r": "0.0", + "ducts_return_leakage_to_outside_value": "25.0", "ducts_return_location": "attic - unvented", - "ducts_return_surface_area": 50.0, - "ducts_supply_insulation_r": 4.0, - "ducts_supply_leakage_to_outside_value": 75.0, + "ducts_return_surface_area": "50.0", + "ducts_supply_insulation_r": "4.0", + "ducts_supply_leakage_to_outside_value": "75.0", "ducts_supply_location": "attic - unvented", - "ducts_supply_surface_area": 150.0, - "floor_over_foundation_assembly_r": 0, - "floor_over_garage_assembly_r": 0, - "foundation_wall_insulation_r": 8.9, + "ducts_supply_surface_area": "150.0", + "foundation_wall_insulation_r": "8.9", "geometry_attic_type": "UnventedAttic", - "geometry_average_ceiling_height": 8.0, - "geometry_eaves_depth": 0, - "geometry_foundation_height": 8.0, - "geometry_foundation_height_above_grade": 1.0, + "geometry_average_ceiling_height": "8.0", + "geometry_eaves_depth": "0", + "geometry_foundation_height": "8.0", + "geometry_foundation_height_above_grade": "1.0", "geometry_foundation_type": "ConditionedBasement", - "geometry_garage_width": 0.0, - "geometry_rim_joist_height": 9.25, + "geometry_rim_joist_height": "9.25", "geometry_roof_pitch": "6:12", "geometry_roof_type": "gable", - "geometry_unit_aspect_ratio": 1.5, - "geometry_unit_cfa": 2700.0, - "geometry_unit_num_bedrooms": 3, + "geometry_unit_aspect_ratio": "1.5", + "geometry_unit_cfa": "2700.0", + "geometry_unit_num_bedrooms": "3", "geometry_unit_num_floors_above_grade": 1, - "geometry_unit_orientation": 180.0, + "geometry_unit_orientation": "180.0", "geometry_unit_type": "single-family detached", - "geometry_unit_left_wall_is_adiabatic": false, - "geometry_unit_right_wall_is_adiabatic": false, - "geometry_unit_back_wall_is_adiabatic": false, "heating_system_fuel": "natural gas", - "heating_system_heating_capacity": 36000.0, - "heating_system_heating_efficiency": 0.92, + "heating_system_heating_capacity": "36000.0", + "heating_system_heating_efficiency": "0.92", "heating_system_type": "Furnace", "hpxml_path": "../built.xml", "hvac_control_cooling_weekday_setpoint": "78", "hvac_control_cooling_weekend_setpoint": "78", "hvac_control_heating_weekday_setpoint": "68", "hvac_control_heating_weekend_setpoint": "68", - "rim_joist_assembly_r": 23.0, - "roof_assembly_r": 2.3, - "wall_assembly_r": 23, - "water_heater_efficiency": 0.95, + "rim_joist_assembly_r": "23.0", + "roof_assembly_r": "2.3", + "wall_assembly_r": "23", + "water_heater_efficiency": "0.95", "water_heater_efficiency_type": "EnergyFactor", "water_heater_fuel_type": "electricity", - "water_heater_tank_volume": 40, + "water_heater_tank_volume": "40", "water_heater_type": "storage water heater", "weather_station_epw_filepath": "USA_CO_Denver.Intl.AP.725650_TMY3.epw", - "window_area_back": 108.0, - "window_area_front": 108.0, - "window_area_left": 72.0, - "window_area_right": 72.0, - "window_aspect_ratio": 1.333, - "window_back_wwr": 0, - "window_front_wwr": 0, - "window_left_wwr": 0, - "window_right_wwr": 0, - "window_shgc": 0.45, - "window_ufactor": 0.33 + "window_area_back": "108.0", + "window_area_front": "108.0", + "window_area_left": "72.0", + "window_area_right": "72.0", + "window_aspect_ratio": "1.333", + "window_shgc": "0.45", + "window_ufactor": "0.33" }, "measure_dir_name": "BuildResidentialHPXML" }, diff --git a/workflow/tests/base_results/results_simulations_bills.csv b/workflow/tests/base_results/results_simulations_bills.csv index efd5712afc..d4feb09148 100644 --- a/workflow/tests/base_results/results_simulations_bills.csv +++ b/workflow/tests/base_results/results_simulations_bills.csv @@ -19,6 +19,7 @@ base-atticroof-radiant-barrier-ceiling.xml,1602.07,144.0,1246.53,0.0,1390.53,144 base-atticroof-radiant-barrier.xml,1576.53,144.0,1231.15,0.0,1375.15,144.0,57.38,201.38,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, base-atticroof-unvented-insulated-roof.xml,1814.44,144.0,1281.56,0.0,1425.56,144.0,244.88,388.88,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, base-atticroof-vented.xml,1842.15,144.0,1298.13,0.0,1442.13,144.0,256.02,400.02,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +base-auto.xml,1840.44,144.0,1303.13,0.0,1447.13,144.0,249.31,393.31,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, base-battery-scheduled-power-outage.xml,1771.6,144.0,1234.07,0.0,1378.07,144.0,249.53,393.53,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, base-battery-scheduled.xml,1903.58,144.0,1366.27,0.0,1510.27,144.0,249.31,393.31,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, base-battery.xml,1840.44,144.0,1303.13,0.0,1447.13,144.0,249.31,393.31,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/workflow/tests/base_results/results_simulations_energy.csv b/workflow/tests/base_results/results_simulations_energy.csv index f231923ff7..b033a3c8fe 100644 --- a/workflow/tests/base_results/results_simulations_energy.csv +++ b/workflow/tests/base_results/results_simulations_energy.csv @@ -19,6 +19,7 @@ base-atticroof-radiant-barrier-ceiling.xml,38.571,38.571,33.491,33.491,5.08,0.0, base-atticroof-radiant-barrier.xml,37.394,37.394,33.078,33.078,4.316,0.0,0.0,0.0,0.0,0.0,0.0,0.029,0.0,0.0,9.645,1.592,6.71,0.0,0.0,2.646,0.0,0.238,0.0,0.0,0.0,0.0,2.186,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,4.192,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.316,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-atticroof-unvented-insulated-roof.xml,58.602,58.602,35.208,35.208,23.394,0.0,0.0,0.0,0.0,0.0,0.0,0.58,0.0,0.0,3.91,0.571,9.014,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.068,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,23.394,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-atticroof-vented.xml,60.12,60.12,35.663,35.663,24.457,0.0,0.0,0.0,0.0,0.0,0.0,0.607,0.0,0.0,4.121,0.611,9.189,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.07,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,24.457,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +base-auto.xml,59.617,59.617,35.801,35.801,23.816,0.0,0.0,0.0,0.0,0.0,0.0,0.591,0.0,0.0,4.398,0.662,9.013,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.072,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,23.816,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-battery-scheduled-power-outage.xml,57.741,57.741,33.903,33.903,23.837,0.0,0.0,0.0,0.0,0.0,0.0,0.591,0.0,0.0,3.406,0.484,8.4,0.0,0.0,4.2,0.0,0.311,0.0,0.0,0.0,0.0,1.882,0.0,0.0,0.292,0.335,1.386,1.401,0.0,1.94,7.686,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.587,23.837,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-battery-scheduled.xml,61.352,61.352,37.536,37.536,23.816,0.0,0.0,0.0,0.0,0.0,0.0,0.591,0.0,0.0,4.398,0.662,9.013,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.072,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.735,23.816,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-battery.xml,59.617,59.617,35.801,35.801,23.816,0.0,0.0,0.0,0.0,0.0,0.0,0.591,0.0,0.0,4.398,0.662,9.013,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.072,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,23.816,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 diff --git a/workflow/tests/base_results/results_simulations_hvac.csv b/workflow/tests/base_results/results_simulations_hvac.csv index 0377e4c151..08360b7800 100644 --- a/workflow/tests/base_results/results_simulations_hvac.csv +++ b/workflow/tests/base_results/results_simulations_hvac.csv @@ -19,6 +19,7 @@ base-atticroof-radiant-barrier-ceiling.xml,25.88,98.42,24000.0,24000.0,0.0,25447 base-atticroof-radiant-barrier.xml,25.88,98.42,24000.0,24000.0,0.0,25447.0,1422.0,5241.0,0.0,401.0,1535.0,0.0,0.0,8256.0,6846.0,1745.0,0.0,0.0,21691.0,68.0,7674.0,0.0,313.0,686.0,0.0,0.0,0.0,9065.0,565.0,0.0,3320.0,0.0,0.0,1628.0,438.0,391.0,0.0,800.0 base-atticroof-unvented-insulated-roof.xml,6.8,91.76,36000.0,24000.0,0.0,30459.0,4909.0,7508.0,0.0,575.0,6918.0,0.0,0.0,1738.0,4190.0,4620.0,0.0,0.0,19740.0,1908.0,7037.0,0.0,207.0,448.0,0.0,0.0,0.0,6198.0,622.0,0.0,3320.0,0.0,0.0,139.0,0.0,-661.0,0.0,800.0 base-atticroof-vented.xml,6.8,91.76,36000.0,24000.0,0.0,32239.0,8709.0,7508.0,0.0,575.0,6918.0,0.0,0.0,1738.0,2171.0,4620.0,0.0,0.0,16768.0,3872.0,7037.0,0.0,207.0,448.0,0.0,0.0,0.0,1263.0,622.0,0.0,3320.0,0.0,0.0,139.0,0.0,-661.0,0.0,800.0 +base-auto.xml,6.8,91.76,36000.0,24000.0,0.0,32239.0,8709.0,7508.0,0.0,575.0,6918.0,0.0,0.0,1738.0,2171.0,4620.0,0.0,0.0,20039.0,6112.0,7037.0,0.0,207.0,448.0,0.0,0.0,0.0,2293.0,622.0,0.0,3320.0,0.0,0.0,139.0,0.0,-661.0,0.0,800.0 base-battery-scheduled-power-outage.xml,6.8,91.76,36000.0,24000.0,0.0,32239.0,8709.0,7508.0,0.0,575.0,6918.0,0.0,0.0,1738.0,2171.0,4620.0,0.0,0.0,20039.0,6112.0,7037.0,0.0,207.0,448.0,0.0,0.0,0.0,2293.0,622.0,0.0,3320.0,0.0,0.0,139.0,0.0,-661.0,0.0,800.0 base-battery-scheduled.xml,6.8,91.76,36000.0,24000.0,0.0,32239.0,8709.0,7508.0,0.0,575.0,6918.0,0.0,0.0,1738.0,2171.0,4620.0,0.0,0.0,20039.0,6112.0,7037.0,0.0,207.0,448.0,0.0,0.0,0.0,2293.0,622.0,0.0,3320.0,0.0,0.0,139.0,0.0,-661.0,0.0,800.0 base-battery.xml,6.8,91.76,36000.0,24000.0,0.0,32239.0,8709.0,7508.0,0.0,575.0,6918.0,0.0,0.0,1738.0,2171.0,4620.0,0.0,0.0,20039.0,6112.0,7037.0,0.0,207.0,448.0,0.0,0.0,0.0,2293.0,622.0,0.0,3320.0,0.0,0.0,139.0,0.0,-661.0,0.0,800.0 diff --git a/workflow/tests/base_results/results_simulations_loads.csv b/workflow/tests/base_results/results_simulations_loads.csv index fe9e046176..e913f7dffc 100644 --- a/workflow/tests/base_results/results_simulations_loads.csv +++ b/workflow/tests/base_results/results_simulations_loads.csv @@ -19,6 +19,7 @@ base-atticroof-radiant-barrier-ceiling.xml,4.703,0.0,33.012,6.556,0.582,0.0,0.0, base-atticroof-radiant-barrier.xml,3.995,0.0,31.822,6.556,0.58,0.0,0.0,0.0,5.494,1.437,0.0,0.0,0.31,3.783,-5.118,0.0,0.0,0.0,0.394,-0.396,0.916,0.0,0.341,0.0,0.12,-2.733,-0.658,0.0,1.817,0.025,0.0,0.0,0.185,2.396,17.048,0.0,0.0,0.0,1.703,-0.388,-0.243,-2.191,-0.097,0.0,0.498,9.344,1.987 base-atticroof-unvented-insulated-roof.xml,22.088,0.0,11.602,9.07,0.616,0.0,0.0,0.0,5.962,3.919,0.55,7.488,0.688,10.883,-13.822,0.0,0.0,0.0,8.209,-0.152,5.312,0.0,0.782,0.0,3.295,-8.646,-2.713,0.0,-1.078,-0.097,-0.001,2.903,0.053,-0.355,10.586,0.0,0.0,0.0,-6.064,-0.144,-0.753,-3.638,-0.1,0.0,1.694,6.933,1.794 base-atticroof-vented.xml,23.106,0.0,12.576,9.07,0.804,0.0,0.0,0.0,4.166,3.889,0.546,7.55,0.685,10.788,-13.646,0.0,0.0,0.0,8.365,-0.121,5.571,0.0,0.772,0.0,5.047,-8.169,-2.681,0.0,-0.274,-0.164,-0.011,2.856,0.041,-0.552,10.762,0.0,0.0,0.0,-6.068,-0.117,-0.8,-3.794,-0.112,0.0,2.317,6.795,1.826 +base-auto.xml,22.503,0.0,13.745,9.07,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.571,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.837,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 base-battery-scheduled-power-outage.xml,22.523,0.0,10.137,8.445,0.582,0.0,0.0,0.0,3.818,3.882,0.545,7.57,0.682,10.754,-13.571,0.0,0.0,0.0,8.353,-0.113,5.216,0.0,0.841,0.0,5.327,-8.473,-2.662,0.0,0.009,-0.253,-0.023,2.661,0.018,-0.837,10.839,0.0,0.0,0.0,-6.39,-0.109,-0.914,-4.426,-0.121,0.0,2.268,5.989,1.538 base-battery-scheduled.xml,22.503,0.0,13.745,9.07,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.571,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.837,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 base-battery.xml,22.503,0.0,13.745,9.07,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.571,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.837,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 diff --git a/workflow/tests/base_results/results_simulations_misc.csv b/workflow/tests/base_results/results_simulations_misc.csv index a942301e78..f213ca4dd8 100644 --- a/workflow/tests/base_results/results_simulations_misc.csv +++ b/workflow/tests/base_results/results_simulations_misc.csv @@ -19,6 +19,7 @@ base-atticroof-radiant-barrier-ceiling.xml,0.0,0.0,1354.7,998.0,9789.3,2412.1,17 base-atticroof-radiant-barrier.xml,0.0,0.0,1354.7,998.0,9789.2,2412.1,1747.6,3433.3,3433.3,13.691,19.088,0.0 base-atticroof-unvented-insulated-roof.xml,0.0,0.0,1354.7,998.0,11171.6,2563.5,2069.5,3413.5,3413.5,20.537,14.701,0.0 base-atticroof-vented.xml,0.0,0.0,1354.7,998.0,11171.5,2563.5,2083.8,3399.5,3399.5,23.824,16.752,0.0 +base-auto.xml,0.0,0.0,1354.7,998.0,11171.6,2563.5,2082.5,3612.6,3612.6,23.71,18.744,0.0 base-battery-scheduled-power-outage.xml,0.0,5.0,1241.4,914.9,10291.7,2361.6,2088.5,6814.4,6814.4,23.712,21.153,1.337 base-battery-scheduled.xml,0.0,0.0,1354.7,998.0,11171.6,2563.5,2082.5,3612.6,3612.6,23.71,18.744,1.438 base-battery.xml,0.0,0.0,1354.7,998.0,11171.6,2563.5,2082.5,3612.6,3612.6,23.71,18.744,0.0