Skip to content

Commit

Permalink
Squashed 'resources/hpxml-measures/' changes from 53efebbd9494..c2cec…
Browse files Browse the repository at this point in the history
…15fe48a

c2cec15fe48a Merge pull request #1749 from NREL/slab_wing_insulation
fec6dc8d7299 Latest results.
535b72801bd4 Misc bugfixes and cleanup.
3944b04da96c Merge branch 'master' into slab_wing_insulation
c5ef7c66cae6 Latest results.
368f10612854 Debug attempt to address nil comparison and Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into slab_wing_insulation
a9e37ff37b70 Removing redundant statement in line 4334 of hvac_sizing.rb.
2ec49599cbd0 Adding further conditions to utilizing exterior horizontal insulation in ACCA Manual J calculations for HVAC sizing, and adjusting the conditions to independently account for insulations encountered in the soil path.
383a9ff6e55f Adding exterior horizontal insulation R-value to the total soil path R-value for HVAC sizing calculations.
1c6a574ac061 Merge branch 'slab_wing_insulation' of https://github.com/NREL/OpenStudio-HPXML into slab_wing_insulation
738e135a3c72 Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into slab_wing_insulation
b05daf0da0f4 Merge branch 'master' into slab_wing_insulation
4be66fdaf6c0 Test commit.
584eff2d03df Changelog updated.
3d1c454e8737 Latest results.
9de6227d3c7c Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into slab_wing_insulation
29f81af2be94 Debug commit: object name fixed for test_validation.rb line 1012
32574cc549ea _hpxml_bldg changed to hpxml_bldg in test_validation.rb line 1011
55b98ee665cc Temporary commit.
035413a8d203 Temporary commit.
3f2f20804a53 Merge branch 'master' into slab_wing_insulation
635a0fb024bf Debug commit.
a022f4bfb5a5 Temporary commit
9d938da36dde Latest results.
ce9f2db44256 Revert additional HPXML changes.
d2f37f369be9 Remove empty elements from sample HPXML files and misc cleanup.
8b6aec152d3e Change measure arguments to be optional.
faa903a0a2ef Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into slab_wing_insulation
c013b49cc107 Fix tests and docs.
bbb825dd7bd0 Merge branch 'master' into slab_wing_insulation
0044ff9a4a73 Temporary commit.
dce6d0fec1bc Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into slab_wing_insulation
8d61af234ab5 Documentation comment added per review comment.
2b7c80f3815d Comments added with TODO identifying added parameters.
b91866fa685d Merge branch 'master' into slab_wing_insulation
321669751114 Merge branch 'slab_wing_insulation' of https://github.com/NREL/OpenStudio-HPXML into slab_wing_insulation
4635e7e30272 Partially addressed review comments. test_slabs modification remaining.
7d23178aa6a2 Update BuildResidentialHPXML/measure.rb
4cbb7b05e61f Temporary commit.
c0b9d48656db Fix bad merge conflict resolution.
39a00a9a1113 Debug commit.
6071e6de0bc4 Update measure.xml
ee3ae7f35479 Merge branch 'master' into slab_wing_insulation
8d014a6cc1eb Documentation updated.
a757bfe90873 Latest results.
edf286cfa12c Fix docs error.
9cbf3b1780f3 Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into slab_wing_insulation
12a824d1c2c8 Fix CI failures.
f351532fdc4d Debug commit.
abd82e106b37 Merge branch 'master' into slab_wing_insulation
68151b4cf7b8 Merged latest master.
e0dc8f8d1d61 Debug commit.
8a227a06f334 Updates.
1f6118eb143b Debug commit.
1a82461cf24f Documentation image update. Debug ongoing.
d79922c8aaf6 debug commit
5f5353397fe9 temporary commit
8053f3b9c0e3 Merge branch 'master' into slab_wing_insulation
699ef040eee5 temporary commit
3ffbadbfc98f Schema update

git-subtree-dir: resources/hpxml-measures
git-subtree-split: c2cec15fe48a61ed2d78a504bb758f4028d2833f
  • Loading branch information
joseph-robertson committed Sep 3, 2024
1 parent b01646b commit c36b76c
Show file tree
Hide file tree
Showing 27 changed files with 927 additions and 128 deletions.
39 changes: 39 additions & 0 deletions BuildResidentialHPXML/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -1020,6 +1020,45 @@ Depth from grade to bottom of vertical slab perimeter insulation. Applies to sla

<br/>

**Slab: Exterior Horizontal Insulation Nominal R-value**

Nominal R-value of the slab exterior horizontal insulation. Applies to slab-on-grade foundations and basement/crawlspace floors.

- **Name:** ``slab_exterior_horizontal_insulation_r``
- **Type:** ``Double``

- **Units:** ``h-ft^2-R/Btu``

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

<br/>

**Slab: Exterior Horizontal Insulation Width**

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.

- **Name:** ``slab_exterior_horizontal_insulation_width``
- **Type:** ``Double``

- **Units:** ``ft``

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

<br/>

**Slab: Exterior Horizontal Insulation Depth Below Grade**

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.

- **Name:** ``slab_exterior_horizontal_insulation_depth_below_grade``
- **Type:** ``Double``

- **Units:** ``ft``

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

<br/>

**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.
Expand Down
32 changes: 28 additions & 4 deletions BuildResidentialHPXML/measure.rb
Original file line number Diff line number Diff line change
Expand Up @@ -634,6 +634,24 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
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')
Expand Down Expand Up @@ -5163,9 +5181,12 @@ def self.set_slabs(hpxml_bldg, model, args, sorted_surfaces)
area: UnitConversions.convert(surface.grossArea, 'm^2', 'ft^2'),
thickness: args[:slab_thickness],
exposed_perimeter: exposed_perimeter,
perimeter_insulation_r_value: args[:slab_perimeter_insulation_r],
perimeter_insulation_depth: args[:slab_perimeter_insulation_depth],
exterior_horizontal_insulation_r_value: args[:slab_exterior_horizontal_insulation_r],
exterior_horizontal_insulation_width: args[:slab_exterior_horizontal_insulation_width],
exterior_horizontal_insulation_depth_below_grade: args[:slab_exterior_horizontal_insulation_depth_below_grade],
under_slab_insulation_width: under_slab_insulation_width,
perimeter_insulation_r_value: args[:slab_perimeter_insulation_r],
under_slab_insulation_r_value: args[:slab_under_insulation_r],
under_slab_insulation_spans_entire_slab: under_slab_insulation_spans_entire_slab,
carpet_fraction: args[:slab_carpet_fraction],
Expand Down Expand Up @@ -7319,13 +7340,16 @@ def self.renumber_hpxml_ids(hpxml_bldg)
end
end
surf.id = "#{surf_name}#{indexes[surf_name]}"
if surf.respond_to? :insulation_id
if surf.respond_to?(:insulation_id) && (not surf.insulation_id.nil?)
surf.insulation_id = "#{surf_name}#{indexes[surf_name]}Insulation"
end
if surf.respond_to? :perimeter_insulation_id
if surf.respond_to?(:perimeter_insulation_id) && (not surf.perimeter_insulation_id.nil?)
surf.perimeter_insulation_id = "#{surf_name}#{indexes[surf_name]}PerimeterInsulation"
end
if surf.respond_to? :under_slab_insulation_id
if surf.respond_to?(:exterior_horizontal_insulation_id) && (not surf.exterior_horizontal_insulation_id.nil?)
surf.exterior_horizontal_insulation_id = "#{surf_name}#{indexes[surf_name]}ExteriorHorizontalInsulation"
end
if surf.respond_to?(:under_slab_insulation_id) && (not surf.under_slab_insulation_id.nil?)
surf.under_slab_insulation_id = "#{surf_name}#{indexes[surf_name]}UnderSlabInsulation"
end
end
Expand Down
37 changes: 32 additions & 5 deletions BuildResidentialHPXML/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_residential_hpxml</name>
<uid>a13a8983-2b01-4930-8af2-42030b6e4233</uid>
<version_id>3852085e-1613-4c19-983f-3c5bcfdc19aa</version_id>
<version_modified>2024-08-28T13:49:31Z</version_modified>
<version_id>cc583c34-5fa1-4ec6-8ce1-932fe6575ac3</version_id>
<version_modified>2024-08-30T14:45:05Z</version_modified>
<xml_checksum>2C38F48B</xml_checksum>
<class_name>BuildResidentialHPXML</class_name>
<display_name>HPXML Builder</display_name>
Expand Down Expand Up @@ -1412,6 +1412,33 @@
<model_dependent>false</model_dependent>
<default_value>0</default_value>
</argument>
<argument>
<name>slab_exterior_horizontal_insulation_r</name>
<display_name>Slab: Exterior Horizontal Insulation Nominal R-value</display_name>
<description>Nominal R-value of the slab exterior horizontal insulation. Applies to slab-on-grade foundations and basement/crawlspace floors.</description>
<type>Double</type>
<units>h-ft^2-R/Btu</units>
<required>false</required>
<model_dependent>false</model_dependent>
</argument>
<argument>
<name>slab_exterior_horizontal_insulation_width</name>
<display_name>Slab: Exterior Horizontal Insulation Width</display_name>
<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.</description>
<type>Double</type>
<units>ft</units>
<required>false</required>
<model_dependent>false</model_dependent>
</argument>
<argument>
<name>slab_exterior_horizontal_insulation_depth_below_grade</name>
<display_name>Slab: Exterior Horizontal Insulation Depth Below Grade</display_name>
<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.</description>
<type>Double</type>
<units>ft</units>
<required>false</required>
<model_dependent>false</model_dependent>
</argument>
<argument>
<name>slab_under_insulation_r</name>
<display_name>Slab: Under Slab Insulation Nominal R-value</display_name>
Expand Down Expand Up @@ -7389,7 +7416,7 @@
<filename>README.md</filename>
<filetype>md</filetype>
<usage_type>readme</usage_type>
<checksum>F2662668</checksum>
<checksum>5533A263</checksum>
</file>
<file>
<filename>README.md.erb</filename>
Expand All @@ -7406,7 +7433,7 @@
<filename>measure.rb</filename>
<filetype>rb</filetype>
<usage_type>script</usage_type>
<checksum>55D502E8</checksum>
<checksum>6D3C7443</checksum>
</file>
<file>
<filename>constants.rb</filename>
Expand All @@ -7424,7 +7451,7 @@
<filename>test_build_residential_hpxml.rb</filename>
<filetype>rb</filetype>
<usage_type>test</usage_type>
<checksum>BC30D013</checksum>
<checksum>3636F36A</checksum>
</file>
</files>
</measure>
3 changes: 3 additions & 0 deletions BuildResidentialHPXML/tests/test_build_residential_hpxml.rb
Original file line number Diff line number Diff line change
Expand Up @@ -433,6 +433,9 @@ def _set_measure_argument_values(hpxml_file, args)
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
Expand Down
1 change: 1 addition & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
__New Features__
- Updates to HPXML v4.0 final release.
- Adds inputs for modeling skylight curbs and/or shafts.
- Allows modeling exterior horizontal insulation for a slab-on-grade foundation (or basement/crawlspace floor).
- Allows alternative infiltration input `AirInfiltrationMeasurement/LeakinessDescription`, in which the infiltration level is estimated using age of home, climate zone, foundation type, etc.
- Updates hot water end uses for operational calculations (i.e., when `NumberofResidents` provided) based on FSEC study.
- Central Fan Integrated Supply (CFIS) mechanical ventilation enhancements:
Expand Down
6 changes: 5 additions & 1 deletion HPXMLtoOpenStudio/measure.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1321,10 +1321,14 @@ def add_foundation_slab(model, weather, spaces, slab, z_origin, exposed_length,
end
soil_k_in = UnitConversions.convert(@hpxml_bldg.site.ground_conductivity, 'ft', 'in')

ext_horiz_r = slab.exterior_horizontal_insulation_r_value
ext_horiz_width = slab.exterior_horizontal_insulation_width
ext_horiz_depth = slab.exterior_horizontal_insulation_depth_below_grade

Constructions.apply_foundation_slab(model, surface, "#{slab.id} construction",
slab_under_r, slab_under_width, slab_gap_r, slab_perim_r,
slab_perim_depth, slab_whole_r, slab.thickness,
exposed_length, mat_carpet, soil_k_in, kiva_foundation)
exposed_length, mat_carpet, soil_k_in, kiva_foundation, ext_horiz_r, ext_horiz_width, ext_horiz_depth)

kiva_foundation = surface.adjacentFoundation.get

Expand Down
26 changes: 13 additions & 13 deletions HPXMLtoOpenStudio/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>hpxm_lto_openstudio</name>
<uid>b1543b30-9465-45ff-ba04-1d1f85e763bc</uid>
<version_id>6f1b71cd-073a-4b20-bbc1-1e4d5ce1a151</version_id>
<version_modified>2024-08-28T20:08:55Z</version_modified>
<version_id>fe32292f-c2f6-4021-b408-5b0e5ac8f45a</version_id>
<version_modified>2024-08-30T15:02:13Z</version_modified>
<xml_checksum>D8922A73</xml_checksum>
<class_name>HPXMLtoOpenStudio</class_name>
<display_name>HPXML to OpenStudio Translator</display_name>
Expand Down Expand Up @@ -183,7 +183,7 @@
<filename>measure.rb</filename>
<filetype>rb</filetype>
<usage_type>script</usage_type>
<checksum>6064F61F</checksum>
<checksum>94AC624A</checksum>
</file>
<file>
<filename>airflow.rb</filename>
Expand Down Expand Up @@ -213,7 +213,7 @@
<filename>constructions.rb</filename>
<filetype>rb</filetype>
<usage_type>resource</usage_type>
<checksum>7C326501</checksum>
<checksum>F2B9F3E6</checksum>
</file>
<file>
<filename>data/Xing_okstate_0664D_13659_Table_A-3.csv</filename>
Expand Down Expand Up @@ -357,19 +357,19 @@
<filename>hpxml.rb</filename>
<filetype>rb</filetype>
<usage_type>resource</usage_type>
<checksum>9222D4D6</checksum>
<checksum>AC825F6B</checksum>
</file>
<file>
<filename>hpxml_defaults.rb</filename>
<filetype>rb</filetype>
<usage_type>resource</usage_type>
<checksum>6EC55ED7</checksum>
<checksum>09FCBD16</checksum>
</file>
<file>
<filename>hpxml_schema/HPXML.xsd</filename>
<filetype>xsd</filetype>
<usage_type>resource</usage_type>
<checksum>6C78351F</checksum>
<checksum>2A412FE7</checksum>
</file>
<file>
<filename>hpxml_schema/README.md</filename>
Expand All @@ -381,7 +381,7 @@
<filename>hpxml_schematron/EPvalidator.xml</filename>
<filetype>xml</filetype>
<usage_type>resource</usage_type>
<checksum>AE956548</checksum>
<checksum>DB85E710</checksum>
</file>
<file>
<filename>hpxml_schematron/iso-schematron.xsd</filename>
Expand All @@ -399,7 +399,7 @@
<filename>hvac_sizing.rb</filename>
<filetype>rb</filetype>
<usage_type>resource</usage_type>
<checksum>4205705D</checksum>
<checksum>A15272FB</checksum>
</file>
<file>
<filename>lighting.rb</filename>
Expand Down Expand Up @@ -657,13 +657,13 @@
<filename>test_defaults.rb</filename>
<filetype>rb</filetype>
<usage_type>test</usage_type>
<checksum>CBD787A1</checksum>
<checksum>C12A1863</checksum>
</file>
<file>
<filename>test_enclosure.rb</filename>
<filetype>rb</filetype>
<usage_type>test</usage_type>
<checksum>45F2A863</checksum>
<checksum>D4340A44</checksum>
</file>
<file>
<filename>test_generator.rb</filename>
Expand All @@ -687,7 +687,7 @@
<filename>test_hvac_sizing.rb</filename>
<filetype>rb</filetype>
<usage_type>test</usage_type>
<checksum>487BF287</checksum>
<checksum>3BA204D7</checksum>
</file>
<file>
<filename>test_lighting.rb</filename>
Expand Down Expand Up @@ -729,7 +729,7 @@
<filename>test_validation.rb</filename>
<filetype>rb</filetype>
<usage_type>test</usage_type>
<checksum>6EDC8C3A</checksum>
<checksum>ABE770EA</checksum>
</file>
<file>
<filename>test_water_heater.rb</filename>
Expand Down
17 changes: 14 additions & 3 deletions HPXMLtoOpenStudio/resources/constructions.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1503,15 +1503,15 @@ def self.apply_foundation_slab(model, surface, constr_name,
under_r, under_width, gap_r,
perimeter_r, perimeter_depth,
whole_r, concrete_thick_in, exposed_perimeter,
mat_carpet, soil_k_in, foundation)
mat_carpet, soil_k_in, foundation, ext_horiz_r, ext_horiz_width, ext_horiz_depth)

return if surface.nil?

if foundation.nil?
# Create Kiva foundation for slab
foundation = create_kiva_slab_foundation(model, under_r, under_width,
gap_r, perimeter_r, perimeter_depth,
concrete_thick_in, soil_k_in)
concrete_thick_in, soil_k_in, ext_horiz_r, ext_horiz_width, ext_horiz_depth)
else
# Kiva foundation (for crawlspace/basement) exists
if (under_r > 0) && (under_width > 0)
Expand Down Expand Up @@ -2003,9 +2003,12 @@ def self.get_gap_factor(install_grade, framing_factor, cavity_r)
# @param ext_vert_depth [TODO] TODO
# @param concrete_thick_in [TODO] TODO
# @param soil_k_in [TODO] TODO
# @param ext_horiz_r [TODO] TODO
# @param ext_horiz_width [TODO] TODO
# @param ext_horiz_depth [TODO] TODO
# @return [TODO] TODO
def self.create_kiva_slab_foundation(model, int_horiz_r, int_horiz_width, int_vert_r,
ext_vert_r, ext_vert_depth, concrete_thick_in, soil_k_in)
ext_vert_r, ext_vert_depth, concrete_thick_in, soil_k_in, ext_horiz_r, ext_horiz_width, ext_horiz_depth)

# Create the Foundation:Kiva object for slab foundations
foundation = OpenStudio::Model::FoundationKiva.new(model)
Expand All @@ -2032,6 +2035,14 @@ def self.create_kiva_slab_foundation(model, int_horiz_r, int_horiz_width, int_ve
foundation.setExteriorVerticalInsulationDepth(UnitConversions.convert(ext_vert_depth, 'ft', 'm'))
end

# Exterior horizontal insulation
if (ext_horiz_r > 0) && (ext_horiz_width > 0)
ext_horiz_mat = create_insulation_material(model, 'exterior horizontal ins', ext_horiz_r)
foundation.setExteriorHorizontalInsulationMaterial(ext_horiz_mat)
foundation.setExteriorHorizontalInsulationDepth(UnitConversions.convert(ext_horiz_depth, 'ft', 'm'))
foundation.setExteriorHorizontalInsulationWidth(UnitConversions.convert(ext_horiz_width, 'ft', 'm'))
end

foundation.setWallHeightAboveGrade(UnitConversions.convert(concrete_thick_in, 'in', 'm'))
foundation.setWallDepthBelowSlab(UnitConversions.convert(8.0, 'in', 'm'))

Expand Down
Loading

0 comments on commit c36b76c

Please sign in to comment.