Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Assign above-grade height for apartment units #1304

Merged
merged 20 commits into from
Nov 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions docs/read_the_docs/source/changelog/changelog_dev.rst
Original file line number Diff line number Diff line change
Expand Up @@ -110,3 +110,17 @@ Development Changelog
resstock-estimation: `pull request 416 <https://github.com/NREL/resstock-estimation/pull/416>`_

Assignees: Joe Robertson


.. change::
:tags: workflow, hvac, feature
:pullreq: 1304
:tickets: 1303

**Date**: 2024-11-14

Title:
Assign above-grade height for apartment units

Description:
The purpose of this PR is to set a value in ResStockArguments for apartment units based on the type/size of MF building and where the unit is located (lower, middle, or upper story).
12 changes: 0 additions & 12 deletions docs/read_the_docs/source/workflow_inputs/characteristics.rst
Original file line number Diff line number Diff line change
Expand Up @@ -36439,12 +36439,6 @@ Arguments
- Double
-
- Average distance from the floor to the ceiling.
* - ``geometry_unit_height_above_grade``
- false
- ft
- Double
- auto
- 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 <https://openstudio-hpxml.readthedocs.io/en/v1.8.1/workflow_inputs.html#hpxml-building-construction>`_) is used.

Options
*******
Expand All @@ -36461,38 +36455,32 @@ From ``project_national`` the list of options, option stock sturation, and optio
- ``geometry_unit_type``
- ``geometry_unit_aspect_ratio``
- ``geometry_average_ceiling_height``
- ``geometry_unit_height_above_grade``

* - Mobile Home
- 6.2%
- manufactured home
- 1.8
- 8
- auto
* - Multi-Family with 2 - 4 Units
- 8%
- apartment unit
- 0.5556
- 8
- auto
* - Multi-Family with 5+ Units
- 18%
- apartment unit
- 0.5556
- 8
- auto
* - Single-Family Attached
- 5.9%
- single-family attached
- 0.5556
- 8
- auto
* - Single-Family Detached
- 61%
- single-family detached
- 1.8
- 8
- auto

.. _geometry_floor_area:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ build_existing_model.weather_file_latitude,Latitude from the EPW weather file.
build_existing_model.weather_file_longitude,Longitude from the EPW weather file.
build_existing_model.heating_unavailable_period,Heating unavailable period.
build_existing_model.cooling_unavailable_period,Cooling unavailable period.
build_existing_model.unit_height_above_grade,Height of the lowest conditioned floor above grade for the unit.
apply_upgrade.applicable,The measure was applied to the workflow.
apply_upgrade.upgrade_name,User-specificed name that describes the upgrade.
apply_upgrade.reference_scenario,The upgrade_name which should act as a reference to this upgrade to calculate savings.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,20 @@ Weather: Wind Speed,weather__wind_speed__mph,mph,"Weather file data including ou
Weather: Diffuse Solar Radiation,weather__diffuse_solar_radiation__btu/(hr*ft^2),Btu/(hr*ft^2),"Weather file data including outdoor temperatures, relative humidity, wind speed, and solar."
Weather: Direct Solar Radiation,weather__direct_solar_radiation__btu/(hr*ft^2),Btu/(hr*ft^2),"Weather file data including outdoor temperatures, relative humidity, wind speed, and solar."
Zone People Occupant Count: Conditioned Space,zone_people_occupant_count__conditioned_space,,User-requested EnergyPlus output variable.
,schedules_ceiling_fan,frac,Ceiling fan energy use schedule.
,schedules_clothes_dryer,frac,Clothes dryer energy use schedule.
,schedules_clothes_washer,frac,Clothes washer energy use schedule.
,schedules_cooking_range,frac,Cooking range & oven energy use schedule.
,schedules_dishwasher,frac,Dishwasher energy use schedule.
,schedules_hot_water_clothes_washer,frac,Clothes washer hot water use schedule.
,schedules_hot_water_dishwasher,frac,Dishwasher hot water use schedule.
,schedules_hot_water_fixtures,frac,"Fixtures (sinks, showers, baths) hot water use schedule."
,schedules_lighting_garage,frac,Garage lighting energy use schedule.
,schedules_lighting_interior,frac,Interior lighting energy use schedule.
,schedules_no_space_cooling,,Unavailable period.
,schedules_no_space_heating,,Unavailable period.
,schedules_occupants,frac,Occupant heat gain schedule.
,schedules_plug_loads_other,frac,Other plug load energy use schedule.
,schedules_plug_loads_tv,frac,Television plug load energy use schedule.
,schedules_power_outage,,Unavailable period.
,schedules_vacancy,,Unavailable period.
6 changes: 5 additions & 1 deletion measures/BuildExistingModel/measure.rb
Original file line number Diff line number Diff line change
Expand Up @@ -772,7 +772,7 @@ def run(model, runner, user_arguments)
end
end

# Report some additional location and model characteristics
# Report additional characteristics
if File.exist?(hpxml_path)
hpxml = HPXML.new(hpxml_path: hpxml_path)
else
Expand All @@ -782,6 +782,10 @@ def run(model, runner, user_arguments)

hpxml_bldg = hpxml.buildings[0]

# height above grade
unit_height_above_grade = hpxml_bldg.building_construction.unit_height_above_grade
register_value(runner, 'unit_height_above_grade', unit_height_above_grade)

# infiltration
air_infiltration_measurement = hpxml_bldg.air_infiltration_measurements[0]
a_ext = 1.0
Expand Down
6 changes: 3 additions & 3 deletions measures/BuildExistingModel/measure.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
<schema_version>3.1</schema_version>
<name>build_existing_model</name>
<uid>dedf59bb-3b88-4f16-8755-2c1ff5519cbf</uid>
<version_id>a901b49d-d749-45b2-94fc-d5122935fd30</version_id>
<version_modified>2024-10-04T15:40:23Z</version_modified>
<version_id>0e78d978-0224-4cf4-a57b-9c0cb5b7c5b4</version_id>
<version_modified>2024-11-08T15:53:00Z</version_modified>
<xml_checksum>2C38F48B</xml_checksum>
<class_name>BuildExistingModel</class_name>
<display_name>Build Existing Model</display_name>
Expand Down Expand Up @@ -349,7 +349,7 @@
<filename>measure.rb</filename>
<filetype>rb</filetype>
<usage_type>script</usage_type>
<checksum>E660DFB7</checksum>
<checksum>9AE772B3</checksum>
</file>
</files>
</measure>
11 changes: 0 additions & 11 deletions measures/ResStockArguments/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -297,17 +297,6 @@ Average distance from the floor to the ceiling.

<br/>

**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.8.1/workflow_inputs.html#hpxml-building-construction'>HPXML Building Construction</a>) is used.

- **Name:** ``geometry_unit_height_above_grade``
- **Type:** ``String``

- **Required:** ``false``

<br/>

**Geometry: Garage Width**

The width of the garage. Enter zero for no garage. Only applies to single-family detached units.
Expand Down
16 changes: 16 additions & 0 deletions measures/ResStockArguments/measure.rb
Original file line number Diff line number Diff line change
Expand Up @@ -799,6 +799,22 @@ def run(model, runner, user_arguments)
end
end

# Height Above Grade
if args[:geometry_unit_type] == HPXML::ResidentialTypeApartment
n_floors = Float(args[:geometry_num_floors_above_grade])
avg_ceiling_height = args[:geometry_average_ceiling_height]

if args[:geometry_unit_level] == 'Top'
args[:geometry_unit_height_above_grade] = (n_floors - 1) * avg_ceiling_height
elsif args[:geometry_unit_level] == 'Middle'
args[:geometry_unit_height_above_grade] = (n_floors - 1) / 2.0 * avg_ceiling_height
elsif args[:geometry_unit_level] == 'Bottom'
args[:geometry_unit_height_above_grade] = Constants::Auto
end
else
args[:geometry_unit_height_above_grade] = Constants::Auto
end

# Wall Assembly R-Value
args[:wall_assembly_r] += args[:exterior_finish_r]

Expand Down
19 changes: 5 additions & 14 deletions measures/ResStockArguments/measure.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
<schema_version>3.1</schema_version>
<name>res_stock_arguments</name>
<uid>c984bb9e-4ac4-4930-a399-9d23f8f6936a</uid>
<version_id>52dee2c0-3ac8-4c59-a25b-1e77d0983b1d</version_id>
<version_modified>2024-10-25T22:51:52Z</version_modified>
<version_id>34d420bd-393b-4bb8-9671-5a919054d3e2</version_id>
<version_modified>2024-11-08T15:53:02Z</version_modified>
<xml_checksum>2C38F48B</xml_checksum>
<class_name>ResStockArguments</class_name>
<display_name>ResStock Arguments</display_name>
Expand Down Expand Up @@ -673,15 +673,6 @@
<model_dependent>false</model_dependent>
<default_value>8</default_value>
</argument>
<argument>
<name>geometry_unit_height_above_grade</name>
<display_name>Geometry: Unit Height Above Grade</display_name>
<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. If not provided, the OS-HPXML default (see &lt;a href='https://openstudio-hpxml.readthedocs.io/en/v1.8.1/workflow_inputs.html#hpxml-building-construction'&gt;HPXML Building Construction&lt;/a&gt;) is used.</description>
<type>String</type>
<units>ft</units>
<required>false</required>
<model_dependent>false</model_dependent>
</argument>
<argument>
<name>geometry_garage_width</name>
<display_name>Geometry: Garage Width</display_name>
Expand Down Expand Up @@ -7693,7 +7684,7 @@
<filename>README.md</filename>
<filetype>md</filetype>
<usage_type>readme</usage_type>
<checksum>B8A69924</checksum>
<checksum>44A63A00</checksum>
</file>
<file>
<filename>README.md.erb</filename>
Expand All @@ -7710,13 +7701,13 @@
<filename>measure.rb</filename>
<filetype>rb</filetype>
<usage_type>script</usage_type>
<checksum>65EE211F</checksum>
<checksum>C85AA9D8</checksum>
</file>
<file>
<filename>constants.rb</filename>
<filetype>rb</filetype>
<usage_type>resource</usage_type>
<checksum>F035A1F3</checksum>
<checksum>67C6AB5F</checksum>
</file>
<file>
<filename>resstock_arguments_test.rb</filename>
Expand Down
1 change: 1 addition & 0 deletions measures/ResStockArguments/resources/constants.rb
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ module Constants
'simulation_control_onoff_thermostat_deadband',
'simulation_control_heat_pump_backup_heating_capacity_increment',
'unit_multiplier',
'geometry_unit_height_above_grade',
'geometry_unit_left_wall_is_adiabatic',
'geometry_unit_right_wall_is_adiabatic',
'geometry_unit_front_wall_is_adiabatic',
Expand Down
46 changes: 44 additions & 2 deletions measures/UpgradeCosts/measure.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
<schema_version>3.1</schema_version>
<name>upgrade_costs</name>
<uid>ef51212c-acc4-48d7-9b29-cf2a5c6c4449</uid>
<version_id>7204a97f-58e6-4b3f-a5cf-f09f70cc9833</version_id>
<version_modified>2024-08-22T14:52:49Z</version_modified>
<version_id>bf069249-d884-4cfd-8579-3b5bc1ff55e5</version_id>
<version_modified>2024-11-08T15:53:04Z</version_modified>
<xml_checksum>B1F14CB4</xml_checksum>
<class_name>UpgradeCosts</class_name>
<display_name>Upgrade Costs</display_name>
Expand Down Expand Up @@ -137,6 +137,12 @@
<usage_type>test</usage_type>
<checksum>F6EDB94F</checksum>
</file>
<file>
<filename>SFD_1story_FB_UA_GRG_MSHP_FuelTanklessWH.xml</filename>
<filetype>xml</filetype>
<usage_type>test</usage_type>
<checksum>042AD716</checksum>
</file>
<file>
<filename>SFD_1story_FB_UA_GRG_RoomAC_ElecBoiler_FuelTanklessWH.osw</filename>
<filetype>osw</filetype>
Expand All @@ -161,12 +167,24 @@
<usage_type>test</usage_type>
<checksum>D2426054</checksum>
</file>
<file>
<filename>SFD_1story_UB_UA_GRG_ACV_FuelFurnace_PortableHeater_HPWH.xml</filename>
<filetype>xml</filetype>
<usage_type>test</usage_type>
<checksum>90472515</checksum>
</file>
<file>
<filename>SFD_2story_CS_UA_AC2_FuelBoiler_FuelTankWH.osw</filename>
<filetype>osw</filetype>
<usage_type>test</usage_type>
<checksum>A32DA75D</checksum>
</file>
<file>
<filename>SFD_2story_CS_UA_AC2_FuelBoiler_FuelTankWH.xml</filename>
<filetype>xml</filetype>
<usage_type>test</usage_type>
<checksum>1A1A2554</checksum>
</file>
<file>
<filename>SFD_2story_CS_UA_GRG_ASHPV_FuelTanklessWH.osw</filename>
<filetype>osw</filetype>
Expand All @@ -179,6 +197,12 @@
<usage_type>test</usage_type>
<checksum>DB92211A</checksum>
</file>
<file>
<filename>SFD_2story_FB_UA_GRG_AC1_ElecBaseboard_FuelTankWH.xml</filename>
<filetype>xml</filetype>
<usage_type>test</usage_type>
<checksum>6F563BAF</checksum>
</file>
<file>
<filename>SFD_2story_FB_UA_GRG_AC1_UnitHeater_FuelTankWH.osw</filename>
<filetype>osw</filetype>
Expand Down Expand Up @@ -215,6 +239,24 @@
<usage_type>test</usage_type>
<checksum>083B023F</checksum>
</file>
<file>
<filename>in.epw</filename>
<filetype>epw</filetype>
<usage_type>test</usage_type>
<checksum>E23378AA</checksum>
</file>
<file>
<filename>in.osm</filename>
<filetype>osm</filetype>
<usage_type>test</usage_type>
<checksum>92AA6A08</checksum>
</file>
<file>
<filename>in.xml</filename>
<filetype>xml</filetype>
<usage_type>test</usage_type>
<checksum>72608A61</checksum>
</file>
<file>
<filename>upgrade_costs_test.rb</filename>
<filetype>rb</filetype>
Expand Down
1 change: 1 addition & 0 deletions resources/data/dictionary/inputs.csv
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,7 @@ build_existing_model.weather_file_latitude,Latitude from the EPW weather file.
build_existing_model.weather_file_longitude,Longitude from the EPW weather file.
build_existing_model.heating_unavailable_period,Heating unavailable period.
build_existing_model.cooling_unavailable_period,Cooling unavailable period.
build_existing_model.unit_height_above_grade,Height of the lowest conditioned floor above grade for the unit.
apply_upgrade.applicable,The measure was applied to the workflow.
apply_upgrade.upgrade_name,User-specificed name that describes the upgrade.
apply_upgrade.reference_scenario,The upgrade_name which should act as a reference to this upgrade to calculate savings.
Expand Down
17 changes: 17 additions & 0 deletions resources/data/dictionary/outputs.csv
Original file line number Diff line number Diff line change
Expand Up @@ -490,3 +490,20 @@ Row Index,Sums To,Annual Name,Annual Units,Timeseries ResStock Name,Timeseries B
489,,,,Weather: Diffuse Solar Radiation,weather__diffuse_solar_radiation__btu/(hr*ft^2),Btu/(hr*ft^2),"Weather file data including outdoor temperatures, relative humidity, wind speed, and solar."
490,,,,Weather: Direct Solar Radiation,weather__direct_solar_radiation__btu/(hr*ft^2),Btu/(hr*ft^2),"Weather file data including outdoor temperatures, relative humidity, wind speed, and solar."
491,,,,Zone People Occupant Count: Conditioned Space,zone_people_occupant_count__conditioned_space,,User-requested EnergyPlus output variable.
492,,,,,schedules_ceiling_fan,frac,Ceiling fan energy use schedule.
493,,,,,schedules_clothes_dryer,frac,Clothes dryer energy use schedule.
494,,,,,schedules_clothes_washer,frac,Clothes washer energy use schedule.
495,,,,,schedules_cooking_range,frac,Cooking range & oven energy use schedule.
496,,,,,schedules_dishwasher,frac,Dishwasher energy use schedule.
497,,,,,schedules_hot_water_clothes_washer,frac,Clothes washer hot water use schedule.
498,,,,,schedules_hot_water_dishwasher,frac,Dishwasher hot water use schedule.
499,,,,,schedules_hot_water_fixtures,frac,"Fixtures (sinks, showers, baths) hot water use schedule."
500,,,,,schedules_lighting_garage,frac,Garage lighting energy use schedule.
501,,,,,schedules_lighting_interior,frac,Interior lighting energy use schedule.
502,,,,,schedules_no_space_cooling,,Unavailable period.
503,,,,,schedules_no_space_heating,,Unavailable period.
504,,,,,schedules_occupants,frac,Occupant heat gain schedule.
505,,,,,schedules_plug_loads_other,frac,Other plug load energy use schedule.
506,,,,,schedules_plug_loads_tv,frac,Television plug load energy use schedule.
507,,,,,schedules_power_outage,,Unavailable period.
508,,,,,schedules_vacancy,,Unavailable period.
10 changes: 5 additions & 5 deletions resources/options_lookup.tsv
Original file line number Diff line number Diff line change
Expand Up @@ -9370,11 +9370,11 @@ Geometry Building Type Height Mobile Home
Geometry Building Type Height Multifamily with 2-4 Units
Geometry Building Type Height Single-Family Attached
Geometry Building Type Height Single-Family Detached
Geometry Building Type RECS Mobile Home ResStockArguments geometry_unit_type=manufactured home geometry_average_ceiling_height=8 geometry_unit_aspect_ratio=1.8 geometry_unit_height_above_grade=auto
Geometry Building Type RECS Multi-Family with 2 - 4 Units ResStockArguments geometry_unit_type=apartment unit geometry_average_ceiling_height=8 geometry_unit_aspect_ratio=0.5556 geometry_unit_height_above_grade=auto
Geometry Building Type RECS Multi-Family with 5+ Units ResStockArguments geometry_unit_type=apartment unit geometry_average_ceiling_height=8 geometry_unit_aspect_ratio=0.5556 geometry_unit_height_above_grade=auto
Geometry Building Type RECS Single-Family Attached ResStockArguments geometry_unit_type=single-family attached geometry_average_ceiling_height=8 geometry_unit_aspect_ratio=0.5556 geometry_unit_height_above_grade=auto
Geometry Building Type RECS Single-Family Detached ResStockArguments geometry_unit_type=single-family detached geometry_average_ceiling_height=8 geometry_unit_aspect_ratio=1.8 geometry_unit_height_above_grade=auto
Geometry Building Type RECS Mobile Home ResStockArguments geometry_unit_type=manufactured home geometry_average_ceiling_height=8 geometry_unit_aspect_ratio=1.8
Geometry Building Type RECS Multi-Family with 2 - 4 Units ResStockArguments geometry_unit_type=apartment unit geometry_average_ceiling_height=8 geometry_unit_aspect_ratio=0.5556
Geometry Building Type RECS Multi-Family with 5+ Units ResStockArguments geometry_unit_type=apartment unit geometry_average_ceiling_height=8 geometry_unit_aspect_ratio=0.5556
Geometry Building Type RECS Single-Family Attached ResStockArguments geometry_unit_type=single-family attached geometry_average_ceiling_height=8 geometry_unit_aspect_ratio=0.5556
Geometry Building Type RECS Single-Family Detached ResStockArguments geometry_unit_type=single-family detached geometry_average_ceiling_height=8 geometry_unit_aspect_ratio=1.8
Geometry Floor Area 0-499 ResStockArguments geometry_unit_cfa_bin=0-499 geometry_unit_cfa=auto geometry_garage_protrusion=0.72
Geometry Floor Area 1000-1499 ResStockArguments geometry_unit_cfa_bin=1000-1499 geometry_unit_cfa=auto geometry_garage_protrusion=0.5
Geometry Floor Area 1500-1999 ResStockArguments geometry_unit_cfa_bin=1500-1999 geometry_unit_cfa=auto geometry_garage_protrusion=0.5
Expand Down
Loading