From c36b76c89c66f3da2771a82f9db0e5c26d36442c Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Tue, 3 Sep 2024 09:12:21 -0700 Subject: [PATCH] Squashed 'resources/hpxml-measures/' changes from 53efebbd9494..c2cec15fe48a 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 --- BuildResidentialHPXML/README.md | 39 ++ BuildResidentialHPXML/measure.rb | 32 +- BuildResidentialHPXML/measure.xml | 37 +- .../tests/test_build_residential_hpxml.rb | 3 + Changelog.md | 1 + HPXMLtoOpenStudio/measure.rb | 6 +- HPXMLtoOpenStudio/measure.xml | 26 +- HPXMLtoOpenStudio/resources/constructions.rb | 17 +- HPXMLtoOpenStudio/resources/hpxml.rb | 140 +++-- HPXMLtoOpenStudio/resources/hpxml_defaults.rb | 12 + .../resources/hpxml_schema/HPXML.xsd | 42 +- .../hpxml_schematron/EPvalidator.xml | 4 + HPXMLtoOpenStudio/resources/hvac_sizing.rb | 36 +- HPXMLtoOpenStudio/tests/test_defaults.rb | 26 +- HPXMLtoOpenStudio/tests/test_enclosure.rb | 45 +- HPXMLtoOpenStudio/tests/test_hvac_sizing.rb | 3 + HPXMLtoOpenStudio/tests/test_validation.rb | 6 +- docs/source/images/slab.png | Bin 14872 -> 150528 bytes docs/source/workflow_inputs.rst | 48 +- tasks.rb | 3 + workflow/hpxml_inputs.json | 9 + ...on-slab-exterior-horizontal-insulation.xml | 513 ++++++++++++++++++ .../results_simulations_bills.csv | 1 + .../results_simulations_energy.csv | 1 + .../base_results/results_simulations_hvac.csv | 3 +- .../results_simulations_loads.csv | 1 + .../base_results/results_simulations_misc.csv | 1 + 27 files changed, 927 insertions(+), 128 deletions(-) create mode 100644 workflow/sample_files/base-foundation-slab-exterior-horizontal-insulation.xml diff --git a/BuildResidentialHPXML/README.md b/BuildResidentialHPXML/README.md index 8cbc602027..7b954c3003 100644 --- a/BuildResidentialHPXML/README.md +++ b/BuildResidentialHPXML/README.md @@ -1020,6 +1020,45 @@ Depth from grade to bottom of vertical slab perimeter insulation. Applies to sla
+**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`` + +
+ +**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`` + +
+ +**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`` + +
+ **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. diff --git a/BuildResidentialHPXML/measure.rb b/BuildResidentialHPXML/measure.rb index b93287692c..497454c92d 100644 --- a/BuildResidentialHPXML/measure.rb +++ b/BuildResidentialHPXML/measure.rb @@ -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') @@ -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], @@ -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 diff --git a/BuildResidentialHPXML/measure.xml b/BuildResidentialHPXML/measure.xml index 2400cb5d3e..160cc7783d 100644 --- a/BuildResidentialHPXML/measure.xml +++ b/BuildResidentialHPXML/measure.xml @@ -3,8 +3,8 @@ 3.1 build_residential_hpxml a13a8983-2b01-4930-8af2-42030b6e4233 - 3852085e-1613-4c19-983f-3c5bcfdc19aa - 2024-08-28T13:49:31Z + cc583c34-5fa1-4ec6-8ce1-932fe6575ac3 + 2024-08-30T14:45:05Z 2C38F48B BuildResidentialHPXML HPXML Builder @@ -1412,6 +1412,33 @@ false 0 + + slab_exterior_horizontal_insulation_r + 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. + Double + h-ft^2-R/Btu + false + false + + + slab_exterior_horizontal_insulation_width + 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. + Double + ft + false + false + + + slab_exterior_horizontal_insulation_depth_below_grade + 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. + Double + ft + false + false + slab_under_insulation_r Slab: Under Slab Insulation Nominal R-value @@ -7389,7 +7416,7 @@ README.md md readme - F2662668 + 5533A263 README.md.erb @@ -7406,7 +7433,7 @@ measure.rb rb script - 55D502E8 + 6D3C7443 constants.rb @@ -7424,7 +7451,7 @@ test_build_residential_hpxml.rb rb test - BC30D013 + 3636F36A diff --git a/BuildResidentialHPXML/tests/test_build_residential_hpxml.rb b/BuildResidentialHPXML/tests/test_build_residential_hpxml.rb index 9d654cf9f3..f3350e2599 100644 --- a/BuildResidentialHPXML/tests/test_build_residential_hpxml.rb +++ b/BuildResidentialHPXML/tests/test_build_residential_hpxml.rb @@ -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 diff --git a/Changelog.md b/Changelog.md index e79e422a96..13aa5fdb0d 100644 --- a/Changelog.md +++ b/Changelog.md @@ -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: diff --git a/HPXMLtoOpenStudio/measure.rb b/HPXMLtoOpenStudio/measure.rb index e07df0006a..70628efa96 100644 --- a/HPXMLtoOpenStudio/measure.rb +++ b/HPXMLtoOpenStudio/measure.rb @@ -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 diff --git a/HPXMLtoOpenStudio/measure.xml b/HPXMLtoOpenStudio/measure.xml index abf815c5df..fc127d930a 100644 --- a/HPXMLtoOpenStudio/measure.xml +++ b/HPXMLtoOpenStudio/measure.xml @@ -3,8 +3,8 @@ 3.1 hpxm_lto_openstudio b1543b30-9465-45ff-ba04-1d1f85e763bc - 6f1b71cd-073a-4b20-bbc1-1e4d5ce1a151 - 2024-08-28T20:08:55Z + fe32292f-c2f6-4021-b408-5b0e5ac8f45a + 2024-08-30T15:02:13Z D8922A73 HPXMLtoOpenStudio HPXML to OpenStudio Translator @@ -183,7 +183,7 @@ measure.rb rb script - 6064F61F + 94AC624A airflow.rb @@ -213,7 +213,7 @@ constructions.rb rb resource - 7C326501 + F2B9F3E6 data/Xing_okstate_0664D_13659_Table_A-3.csv @@ -357,19 +357,19 @@ hpxml.rb rb resource - 9222D4D6 + AC825F6B hpxml_defaults.rb rb resource - 6EC55ED7 + 09FCBD16 hpxml_schema/HPXML.xsd xsd resource - 6C78351F + 2A412FE7 hpxml_schema/README.md @@ -381,7 +381,7 @@ hpxml_schematron/EPvalidator.xml xml resource - AE956548 + DB85E710 hpxml_schematron/iso-schematron.xsd @@ -399,7 +399,7 @@ hvac_sizing.rb rb resource - 4205705D + A15272FB lighting.rb @@ -657,13 +657,13 @@ test_defaults.rb rb test - CBD787A1 + C12A1863 test_enclosure.rb rb test - 45F2A863 + D4340A44 test_generator.rb @@ -687,7 +687,7 @@ test_hvac_sizing.rb rb test - 487BF287 + 3BA204D7 test_lighting.rb @@ -729,7 +729,7 @@ test_validation.rb rb test - 6EDC8C3A + ABE770EA test_water_heater.rb diff --git a/HPXMLtoOpenStudio/resources/constructions.rb b/HPXMLtoOpenStudio/resources/constructions.rb index b11b9f6261..c4ced8b388 100644 --- a/HPXMLtoOpenStudio/resources/constructions.rb +++ b/HPXMLtoOpenStudio/resources/constructions.rb @@ -1503,7 +1503,7 @@ 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? @@ -1511,7 +1511,7 @@ def self.apply_foundation_slab(model, surface, constr_name, # 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) @@ -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) @@ -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')) diff --git a/HPXMLtoOpenStudio/resources/hpxml.rb b/HPXMLtoOpenStudio/resources/hpxml.rb index e480c214cd..c50f3168ab 100644 --- a/HPXMLtoOpenStudio/resources/hpxml.rb +++ b/HPXMLtoOpenStudio/resources/hpxml.rb @@ -2159,6 +2159,7 @@ def collapse_enclosure_surfaces(surf_types_of_interest = nil) attrs_to_ignore = [:id, :insulation_id, :perimeter_insulation_id, + :exterior_horizontal_insulation_id, :under_slab_insulation_id, :area, :length, @@ -5267,25 +5268,30 @@ def from_doc(building) # Object for /HPXML/Building/BuildingDetails/Enclosure/Slabs/Slab. class Slab < BaseElement - ATTRS = [:id, # [String] SystemIdentifier/@id - :attached_to_space_idref, # [String] AttachedToSpace/@idref - :interior_adjacent_to, # [String] InteriorAdjacentTo (HPXML::LocationXXX) - :area, # [Double] Area (ft2) - :thickness, # [Double] Thickness (in) - :exposed_perimeter, # [Double] ExposedPerimeter (ft) - :depth_below_grade, # [Double] DepthBelowGrade (ft) - :perimeter_insulation_id, # [String] PerimeterInsulation/SystemIdentifier/@id - :perimeter_insulation_material, # [String] PerimeterInsulation/Layer/InsulationMaterial/* - :perimeter_insulation_r_value, # [Double] PerimeterInsulation/Layer/NominalRValue (F-ft2-hr/Btu) - :perimeter_insulation_depth, # [Double] PerimeterInsulation/Layer/InsulationDepth (ft) - :under_slab_insulation_id, # [String] UnderSlabInsulation/SystemIdentifier/@id - :under_slab_insulation_material, # [String] UnderSlabInsulation/Layer/InsulationMaterial/* - :under_slab_insulation_r_value, # [Double] UnderSlabInsulation/Layer/NominalRValue (F-ft2-hr/Btu) - :under_slab_insulation_width, # [Double] UnderSlabInsulation/Layer/InsulationWidth (ft) - :under_slab_insulation_spans_entire_slab, # [Boolean] UnderSlabInsulation/Layer/InsulationSpansEntireSlab - :gap_insulation_r_value, # [Double] extension/GapInsulationRValue (F-ft2-hr/Btu) - :carpet_fraction, # [Double] extension/CarpetFraction (frac) - :carpet_r_value] # [Double] extension/CarpetRValue (F-ft2-hr/Btu) + ATTRS = [:id, # [String] SystemIdentifier/@id + :attached_to_space_idref, # [String] AttachedToSpace/@idref + :interior_adjacent_to, # [String] InteriorAdjacentTo (HPXML::LocationXXX) + :area, # [Double] Area (ft2) + :thickness, # [Double] Thickness (in) + :exposed_perimeter, # [Double] ExposedPerimeter (ft) + :depth_below_grade, # [Double] DepthBelowGrade (ft) + :perimeter_insulation_id, # [String] PerimeterInsulation/SystemIdentifier/@id + :perimeter_insulation_material, # [String] PerimeterInsulation/Layer/InsulationMaterial/* + :perimeter_insulation_r_value, # [Double] PerimeterInsulation/Layer/NominalRValue (F-ft2-hr/Btu) + :perimeter_insulation_depth, # [Double] PerimeterInsulation/Layer/InsulationDepth (ft) + :exterior_horizontal_insulation_id, # [String] ExteriorHorizontalInsulation/SystemIdentifier/@id + :exterior_horizontal_insulation_material, # [String] ExteriorHorizontalInsulation/Layer/InsulationMaterial/* + :exterior_horizontal_insulation_r_value, # [Double] ExteriorHorizontalInsulation/Layer/NominalRValue (F-ft2-hr/Btu) + :exterior_horizontal_insulation_width, # [Double] ExteriorHorizontalInsulation/Layer/InsulationWidth (ft) + :exterior_horizontal_insulation_depth_below_grade, # [Double] ExteriorHorizontalInsulation/Layer/InsulationDepthBelowGrade (ft) + :under_slab_insulation_id, # [String] UnderSlabInsulation/SystemIdentifier/@id + :under_slab_insulation_material, # [String] UnderSlabInsulation/Layer/InsulationMaterial/* + :under_slab_insulation_r_value, # [Double] UnderSlabInsulation/Layer/NominalRValue (F-ft2-hr/Btu) + :under_slab_insulation_width, # [Double] UnderSlabInsulation/Layer/InsulationWidth (ft) + :under_slab_insulation_spans_entire_slab, # [Boolean] UnderSlabInsulation/Layer/InsulationSpansEntireSlab + :gap_insulation_r_value, # [Double] extension/GapInsulationRValue (F-ft2-hr/Btu) + :carpet_fraction, # [Double] extension/CarpetFraction (frac) + :carpet_r_value] # [Double] extension/CarpetRValue (F-ft2-hr/Btu) attr_accessor(*ATTRS) # Returns the space that the slab is attached to. @@ -5395,37 +5401,63 @@ def to_doc(building) XMLHelper.add_element(slab, 'Thickness', @thickness, :float, @thickness_isdefaulted) unless @thickness.nil? XMLHelper.add_element(slab, 'ExposedPerimeter', @exposed_perimeter, :float) unless @exposed_perimeter.nil? XMLHelper.add_element(slab, 'DepthBelowGrade', @depth_below_grade, :float, @depth_below_grade_isdefaulted) unless @depth_below_grade.nil? - insulation = XMLHelper.add_element(slab, 'PerimeterInsulation') - sys_id = XMLHelper.add_element(insulation, 'SystemIdentifier') - if not @perimeter_insulation_id.nil? - XMLHelper.add_attribute(sys_id, 'id', @perimeter_insulation_id) - else - XMLHelper.add_attribute(sys_id, 'id', @id + 'PerimeterInsulation') - end - layer = XMLHelper.add_element(insulation, 'Layer') - if not @perimeter_insulation_material.nil? - material = XMLHelper.add_element(layer, 'InsulationMaterial') - values = @perimeter_insulation_material.split('/') - XMLHelper.add_element(material, values[0], values[1], :string) + + if (not @perimeter_insulation_id.nil?) || (not @perimeter_insulation_r_value.nil?) || (not @perimeter_insulation_depth.nil?) + insulation = XMLHelper.add_element(slab, 'PerimeterInsulation') + sys_id = XMLHelper.add_element(insulation, 'SystemIdentifier') + if not @perimeter_insulation_id.nil? + XMLHelper.add_attribute(sys_id, 'id', @perimeter_insulation_id) + else + XMLHelper.add_attribute(sys_id, 'id', @id + 'PerimeterInsulation') + end + layer = XMLHelper.add_element(insulation, 'Layer') + if not @perimeter_insulation_material.nil? + material = XMLHelper.add_element(layer, 'InsulationMaterial') + values = @perimeter_insulation_material.split('/') + XMLHelper.add_element(material, values[0], values[1], :string) + end + XMLHelper.add_element(layer, 'NominalRValue', @perimeter_insulation_r_value, :float, @perimeter_insulation_r_value_isdefaulted) unless @perimeter_insulation_r_value.nil? + XMLHelper.add_element(layer, 'InsulationDepth', @perimeter_insulation_depth, :float, @perimeter_insulation_depth_isdefaulted) unless @perimeter_insulation_depth.nil? end - XMLHelper.add_element(layer, 'NominalRValue', @perimeter_insulation_r_value, :float) unless @perimeter_insulation_r_value.nil? - XMLHelper.add_element(layer, 'InsulationDepth', @perimeter_insulation_depth, :float) unless @perimeter_insulation_depth.nil? - insulation = XMLHelper.add_element(slab, 'UnderSlabInsulation') - sys_id = XMLHelper.add_element(insulation, 'SystemIdentifier') - if not @under_slab_insulation_id.nil? - XMLHelper.add_attribute(sys_id, 'id', @under_slab_insulation_id) - else - XMLHelper.add_attribute(sys_id, 'id', @id + 'UnderSlabInsulation') + + if (not @exterior_horizontal_insulation_id.nil?) || (not @exterior_horizontal_insulation_r_value.nil?) || (not @exterior_horizontal_insulation_width.nil?) || (not @exterior_horizontal_insulation_depth_below_grade.nil?) + insulation = XMLHelper.add_element(slab, 'ExteriorHorizontalInsulation') + sys_id = XMLHelper.add_element(insulation, 'SystemIdentifier') + if not @exterior_horizontal_insulation_id.nil? + XMLHelper.add_attribute(sys_id, 'id', @exterior_horizontal_insulation_id) + else + XMLHelper.add_attribute(sys_id, 'id', @id + 'ExteriorHorizontalInsulation') + end + layer = XMLHelper.add_element(insulation, 'Layer') + if not @exterior_horizontal_insulation_material.nil? + material = XMLHelper.add_element(layer, 'InsulationMaterial') + values = @exterior_horizontal_insulation_material.split('/') + XMLHelper.add_element(material, values[0], values[1], :string) + end + XMLHelper.add_element(layer, 'NominalRValue', @exterior_horizontal_insulation_r_value, :float, @exterior_horizontal_insulation_r_value_isdefaulted) unless @exterior_horizontal_insulation_r_value.nil? + XMLHelper.add_element(layer, 'InsulationWidth', @exterior_horizontal_insulation_width, :float, @exterior_horizontal_insulation_width_isdefaulted) unless @exterior_horizontal_insulation_width.nil? + XMLHelper.add_element(layer, 'InsulationDepthBelowGrade', @exterior_horizontal_insulation_depth_below_grade, :float, @exterior_horizontal_insulation_depth_below_grade_isdefaulted) unless @exterior_horizontal_insulation_depth_below_grade.nil? end - layer = XMLHelper.add_element(insulation, 'Layer') - if not @under_slab_insulation_material.nil? - material = XMLHelper.add_element(layer, 'InsulationMaterial') - values = @under_slab_insulation_material.split('/') - XMLHelper.add_element(material, values[0], values[1], :string) + + if (not @under_slab_insulation_id.nil?) || (not @under_slab_insulation_r_value.nil?) || (not @under_slab_insulation_width.nil?) || (not @under_slab_insulation_spans_entire_slab.nil?) + insulation = XMLHelper.add_element(slab, 'UnderSlabInsulation') + sys_id = XMLHelper.add_element(insulation, 'SystemIdentifier') + if not @under_slab_insulation_id.nil? + XMLHelper.add_attribute(sys_id, 'id', @under_slab_insulation_id) + else + XMLHelper.add_attribute(sys_id, 'id', @id + 'UnderSlabInsulation') + end + layer = XMLHelper.add_element(insulation, 'Layer') + if not @under_slab_insulation_material.nil? + material = XMLHelper.add_element(layer, 'InsulationMaterial') + values = @under_slab_insulation_material.split('/') + XMLHelper.add_element(material, values[0], values[1], :string) + end + XMLHelper.add_element(layer, 'NominalRValue', @under_slab_insulation_r_value, :float, @under_slab_insulation_r_value_isdefaulted) unless @under_slab_insulation_r_value.nil? + XMLHelper.add_element(layer, 'InsulationWidth', @under_slab_insulation_width, :float, @under_slab_insulation_width_isdefaulted) unless @under_slab_insulation_width.nil? + XMLHelper.add_element(layer, 'InsulationSpansEntireSlab', @under_slab_insulation_spans_entire_slab, :boolean, @under_slab_insulation_spans_entire_slab_isdefaulted) unless @under_slab_insulation_spans_entire_slab.nil? end - XMLHelper.add_element(layer, 'NominalRValue', @under_slab_insulation_r_value, :float) unless @under_slab_insulation_r_value.nil? - XMLHelper.add_element(layer, 'InsulationWidth', @under_slab_insulation_width, :float) unless @under_slab_insulation_width.nil? - XMLHelper.add_element(layer, 'InsulationSpansEntireSlab', @under_slab_insulation_spans_entire_slab, :boolean) unless @under_slab_insulation_spans_entire_slab.nil? + XMLHelper.add_extension(slab, 'GapInsulationRValue', @gap_insulation_r_value, :float, @gap_insulation_r_value_isdefaulted) unless @gap_insulation_r_value.nil? XMLHelper.add_extension(slab, 'CarpetFraction', @carpet_fraction, :float, @carpet_fraction_isdefaulted) unless @carpet_fraction.nil? XMLHelper.add_extension(slab, 'CarpetRValue', @carpet_r_value, :float, @carpet_r_value_isdefaulted) unless @carpet_r_value.nil? @@ -5455,6 +5487,20 @@ def from_doc(slab) @perimeter_insulation_r_value = XMLHelper.get_value(perimeter_insulation, 'Layer/NominalRValue', :float) @perimeter_insulation_depth = XMLHelper.get_value(perimeter_insulation, 'Layer/InsulationDepth', :float) end + + exterior_horizontal_insulation = XMLHelper.get_element(slab, 'ExteriorHorizontalInsulation') + if not exterior_horizontal_insulation.nil? + @exterior_horizontal_insulation_id = HPXML::get_id(exterior_horizontal_insulation) + @exterior_horizontal_insulation_material = XMLHelper.get_child_name(exterior_horizontal_insulation, 'Layer/InsulationMaterial') + if not @exterior_horizontal_insulation_material.nil? + material_type = XMLHelper.get_value(exterior_horizontal_insulation, "Layer/InsulationMaterial/#{@pexterior_horizontal_insulation_material}", :string) + @exterior_horizontal_insulation_material += "/#{material_type}" unless material_type.nil? + end + @exterior_horizontal_insulation_r_value = XMLHelper.get_value(exterior_horizontal_insulation, 'Layer/NominalRValue', :float) + @exterior_horizontal_insulation_width = XMLHelper.get_value(exterior_horizontal_insulation, 'Layer/InsulationWidth', :float) + @exterior_horizontal_insulation_depth_below_grade = XMLHelper.get_value(exterior_horizontal_insulation, 'Layer/InsulationDepthBelowGrade', :float) + end + under_slab_insulation = XMLHelper.get_element(slab, 'UnderSlabInsulation') if not under_slab_insulation.nil? @under_slab_insulation_id = HPXML::get_id(under_slab_insulation) diff --git a/HPXMLtoOpenStudio/resources/hpxml_defaults.rb b/HPXMLtoOpenStudio/resources/hpxml_defaults.rb index 9cd0fe6772..da3bdb7154 100644 --- a/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +++ b/HPXMLtoOpenStudio/resources/hpxml_defaults.rb @@ -1446,6 +1446,18 @@ def self.apply_slabs(hpxml_bldg) slab.depth_below_grade = nil # Ignore Slab/DepthBelowGrade; use values from adjacent foundation walls instead end end + if slab.exterior_horizontal_insulation_r_value.nil? + slab.exterior_horizontal_insulation_r_value = 0.0 + slab.exterior_horizontal_insulation_r_value_isdefaulted = true + end + if slab.exterior_horizontal_insulation_width.nil? + slab.exterior_horizontal_insulation_width = 0.0 + slab.exterior_horizontal_insulation_width_isdefaulted = true + end + if slab.exterior_horizontal_insulation_depth_below_grade.nil? + slab.exterior_horizontal_insulation_depth_below_grade = 0.0 + slab.exterior_horizontal_insulation_depth_below_grade_isdefaulted = true + end end end diff --git a/HPXMLtoOpenStudio/resources/hpxml_schema/HPXML.xsd b/HPXMLtoOpenStudio/resources/hpxml_schema/HPXML.xsd index 901814af56..dd00eb4d9d 100644 --- a/HPXMLtoOpenStudio/resources/hpxml_schema/HPXML.xsd +++ b/HPXMLtoOpenStudio/resources/hpxml_schema/HPXML.xsd @@ -278,6 +278,16 @@ + + + + + + + + + + @@ -352,6 +362,21 @@ + + + + + + + [ft] Width from stem wall outward of horizontal insulation + + + + + + + + @@ -1244,8 +1269,21 @@ - - + + + Vertical slab perimeter insulation along stem wall + + + + + Horizontal insulation extending outward from stem wall + + + + + Horizontal insulation under slab + + diff --git a/HPXMLtoOpenStudio/resources/hpxml_schematron/EPvalidator.xml b/HPXMLtoOpenStudio/resources/hpxml_schematron/EPvalidator.xml index e84dd53047..668521a678 100644 --- a/HPXMLtoOpenStudio/resources/hpxml_schematron/EPvalidator.xml +++ b/HPXMLtoOpenStudio/resources/hpxml_schematron/EPvalidator.xml @@ -819,6 +819,9 @@ Expected 0 or 1 element(s) for xpath: DepthBelowGrade Expected 1 element(s) for xpath: PerimeterInsulation/Layer/NominalRValue Expected 1 element(s) for xpath: PerimeterInsulation/Layer/InsulationDepth + Expected 0 or 1 element(s) for xpath: ExteriorHorizontalInsulation/Layer/NominalRValue + Expected 0 or 1 element(s) for xpath: ExteriorHorizontalInsulation/Layer/InsulationWidth + Expected 0 or 1 element(s) for xpath: ExteriorHorizontalInsulation/Layer/InsulationDepthBelowGrade Expected 1 element(s) for xpath: UnderSlabInsulation/Layer/NominalRValue Expected 1 element(s) for xpath: UnderSlabInsulation/Layer/InsulationWidth | UnderSlabInsulation/Layer/InsulationSpansEntireSlab[text()="true"] Expected 0 or 1 element(s) for xpath: extension/GapInsulationRValue @@ -831,6 +834,7 @@ Slab exposed perimeter is more than twice the slab area, this may indicate an input error. Thickness is less than 1 inch; this may indicate incorrect units. Thickness is greater than 12 inches; this may indicate incorrect units. + There is ExteriorHorizontalInsulation but no PerimeterInsulation, this may indicate an input error. diff --git a/HPXMLtoOpenStudio/resources/hvac_sizing.rb b/HPXMLtoOpenStudio/resources/hvac_sizing.rb index 3547f6d2da..aa1886eece 100644 --- a/HPXMLtoOpenStudio/resources/hvac_sizing.rb +++ b/HPXMLtoOpenStudio/resources/hvac_sizing.rb @@ -1390,9 +1390,14 @@ def self.process_load_slabs(mj, hpxml_bldg, all_zone_loads, all_space_loads) slab_is_insulated = false if slab.under_slab_insulation_width.to_f > 0 && slab.under_slab_insulation_r_value > 0 slab_is_insulated = true - elsif slab.perimeter_insulation_depth > 0 && slab.perimeter_insulation_r_value > 0 + end + if slab.perimeter_insulation_depth > 0 && slab.perimeter_insulation_r_value > 0 + slab_is_insulated = true + end + if slab.under_slab_insulation_spans_entire_slab && slab.under_slab_insulation_r_value > 0 slab_is_insulated = true - elsif slab.under_slab_insulation_spans_entire_slab && slab.under_slab_insulation_r_value > 0 + end + if slab.exterior_horizontal_insulation_width > 0 && slab.exterior_horizontal_insulation_r_value > 0 slab_is_insulated = true end @@ -4290,32 +4295,37 @@ def self.calc_slab_f_value(slab, ground_conductivity) u_effective = [] for radius in 0..path_radius spl = [Math::PI * radius - 1, 0].max # soil path length (SPL) - + r_ins = 0.0 # Concrete, gravel, and insulation if radius == 0 r_concrete = 0.0 r_gravel = 0.0 # No gravel on edge if slab.perimeter_insulation_depth > 0 r_ins = slab.perimeter_insulation_r_value # Insulation on edge - else - r_ins = 0.0 end else r_concrete = Material.Concrete(slab.thickness).rvalue r_gravel = [slab_r_gravel_per_inch * (12.0 - slab.thickness), 0].max if slab.under_slab_insulation_spans_entire_slab - r_ins = slab.under_slab_insulation_r_value - elsif radius <= slab.under_slab_insulation_width && radius <= slab.perimeter_insulation_depth - r_ins = slab.under_slab_insulation_r_value + slab.perimeter_insulation_r_value + r_ins += slab.under_slab_insulation_r_value elsif radius <= slab.under_slab_insulation_width - r_ins = slab.under_slab_insulation_r_value - elsif radius <= slab.perimeter_insulation_depth - r_ins = slab.perimeter_insulation_r_value - else - r_ins = 0.0 + r_ins += slab.under_slab_insulation_r_value + end + if radius <= slab.perimeter_insulation_depth + r_ins += slab.perimeter_insulation_r_value + end + if slab.exterior_horizontal_insulation_r_value > 0 + if radius >= slab.exterior_horizontal_insulation_depth_below_grade + hypotenuse = Math.sqrt(slab.exterior_horizontal_insulation_depth_below_grade**2 + slab.exterior_horizontal_insulation_width**2) + if radius <= hypotenuse + r_ins += slab.exterior_horizontal_insulation_r_value + end + end end end + + # Air Films = Indoor Finish + Indoor Air Film + Exposed Air Film (Figure A12-6 pg. 517) r_air_film = 0.05 + 0.92 + 0.17 diff --git a/HPXMLtoOpenStudio/tests/test_defaults.rb b/HPXMLtoOpenStudio/tests/test_defaults.rb index 5bbde06eb9..6088134e43 100644 --- a/HPXMLtoOpenStudio/tests/test_defaults.rb +++ b/HPXMLtoOpenStudio/tests/test_defaults.rb @@ -989,9 +989,12 @@ def test_slabs hpxml_bldg.slabs[0].carpet_fraction = 0.5 hpxml_bldg.slabs[0].depth_below_grade = 2.0 hpxml_bldg.slabs[0].gap_insulation_r_value = 10.0 + hpxml_bldg.slabs[0].exterior_horizontal_insulation_r_value = 9.9 + hpxml_bldg.slabs[0].exterior_horizontal_insulation_width = 8.8 + hpxml_bldg.slabs[0].exterior_horizontal_insulation_depth_below_grade = 7.7 XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_slab_values(default_hpxml_bldg.slabs[0], 7.0, 1.1, 0.5, nil, 10.0) + _test_default_slab_values(default_hpxml_bldg.slabs[0], 7.0, 1.1, 0.5, nil, 10.0, 9.9, 8.8, 7.7) # Test defaults w/ conditioned basement hpxml_bldg.slabs[0].thickness = nil @@ -999,9 +1002,12 @@ def test_slabs hpxml_bldg.slabs[0].carpet_fraction = nil hpxml_bldg.slabs[0].depth_below_grade = nil hpxml_bldg.slabs[0].gap_insulation_r_value = nil + hpxml_bldg.slabs[0].exterior_horizontal_insulation_r_value = nil + hpxml_bldg.slabs[0].exterior_horizontal_insulation_width = nil + hpxml_bldg.slabs[0].exterior_horizontal_insulation_depth_below_grade = nil XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_slab_values(default_hpxml_bldg.slabs[0], 4.0, 2.0, 0.8, nil, 0.0) + _test_default_slab_values(default_hpxml_bldg.slabs[0], 4.0, 2.0, 0.8, nil, 0.0, 0.0, 0.0, 0.0) # Test defaults w/ crawlspace hpxml, hpxml_bldg = _create_hpxml('base-foundation-unvented-crawlspace.xml') @@ -1010,9 +1016,12 @@ def test_slabs hpxml_bldg.slabs[0].carpet_fraction = nil hpxml_bldg.slabs[0].depth_below_grade = nil hpxml_bldg.slabs[0].gap_insulation_r_value = nil + hpxml_bldg.slabs[0].exterior_horizontal_insulation_r_value = nil + hpxml_bldg.slabs[0].exterior_horizontal_insulation_width = nil + hpxml_bldg.slabs[0].exterior_horizontal_insulation_depth_below_grade = nil XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_slab_values(default_hpxml_bldg.slabs[0], 0.0, 0.0, 0.0, nil, 0.0) + _test_default_slab_values(default_hpxml_bldg.slabs[0], 0.0, 0.0, 0.0, nil, 0.0, 0.0, 0.0, 0.0) # Test defaults w/ slab-on-grade hpxml, hpxml_bldg = _create_hpxml('base-foundation-slab.xml') @@ -1021,9 +1030,12 @@ def test_slabs hpxml_bldg.slabs[0].carpet_fraction = nil hpxml_bldg.slabs[0].depth_below_grade = nil hpxml_bldg.slabs[0].gap_insulation_r_value = nil + hpxml_bldg.slabs[0].exterior_horizontal_insulation_r_value = nil + hpxml_bldg.slabs[0].exterior_horizontal_insulation_width = nil + hpxml_bldg.slabs[0].exterior_horizontal_insulation_depth_below_grade = nil XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_slab_values(default_hpxml_bldg.slabs[0], 4.0, 2.0, 0.8, 0.0, 5.0) + _test_default_slab_values(default_hpxml_bldg.slabs[0], 4.0, 2.0, 0.8, 0.0, 5.0, 0.0, 0.0, 0.0) end def test_windows @@ -4586,7 +4598,8 @@ def _test_default_floor_values(floor, int_finish_type, int_finish_thickness) end end - def _test_default_slab_values(slab, thickness, carpet_r_value, carpet_fraction, depth_below_grade, gap_rvalue) + def _test_default_slab_values(slab, thickness, carpet_r_value, carpet_fraction, depth_below_grade, gap_rvalue, + ext_horiz_r, ext_horiz_width, ext_horiz_depth) assert_equal(thickness, slab.thickness) assert_equal(carpet_r_value, slab.carpet_r_value) assert_equal(carpet_fraction, slab.carpet_fraction) @@ -4596,6 +4609,9 @@ def _test_default_slab_values(slab, thickness, carpet_r_value, carpet_fraction, assert_equal(depth_below_grade, slab.depth_below_grade) end assert_equal(gap_rvalue, slab.gap_insulation_r_value) + assert_equal(ext_horiz_r, slab.exterior_horizontal_insulation_r_value) + assert_equal(ext_horiz_width, slab.exterior_horizontal_insulation_width) + assert_equal(ext_horiz_depth, slab.exterior_horizontal_insulation_depth_below_grade) end def _test_default_window_values(hpxml_bldg, ext_summer_sfs, ext_winter_sfs, int_summer_sfs, int_winter_sfs, fraction_operable, azimuths) diff --git a/HPXMLtoOpenStudio/tests/test_enclosure.rb b/HPXMLtoOpenStudio/tests/test_enclosure.rb index 587dfaac5d..61cb7fb079 100644 --- a/HPXMLtoOpenStudio/tests/test_enclosure.rb +++ b/HPXMLtoOpenStudio/tests/test_enclosure.rb @@ -516,21 +516,26 @@ def test_slabs args_hash['hpxml_path'] = File.absolute_path(@tmp_hpxml_path) # Slab - slabs_values = [{ perimeter_r: 0.0, under_r: 0.0, gap_r: nil, under_span: false, layer_names: ['concrete', 'floor covering'] }, - { perimeter_r: 0.0, under_r: 0.0, gap_r: 5.0, under_span: false, layer_names: ['concrete', 'floor covering', 'interior vertical ins'] }, - { perimeter_r: 5.0, under_r: 0.0, gap_r: nil, under_span: false, layer_names: ['concrete', 'floor covering', 'exterior vertical ins'] }, - { perimeter_r: 20.0, under_r: 0.0, gap_r: nil, under_span: false, layer_names: ['concrete', 'floor covering', 'exterior vertical ins'] }, - { perimeter_r: 0.0, under_r: 5.0, gap_r: nil, under_span: false, layer_names: ['concrete', 'floor covering', 'interior horizontal ins', 'interior vertical ins'] }, - { perimeter_r: 0.0, under_r: 20.0, gap_r: nil, under_span: false, layer_names: ['concrete', 'floor covering', 'interior horizontal ins', 'interior vertical ins'] }, - { perimeter_r: 0.0, under_r: 5.0, gap_r: nil, under_span: true, layer_names: ['slab rigid ins', 'concrete', 'floor covering', 'interior vertical ins'] }, - { perimeter_r: 0.0, under_r: 20.0, gap_r: nil, under_span: true, layer_names: ['slab rigid ins', 'concrete', 'floor covering', 'interior vertical ins'] }, - { perimeter_r: 5.0, under_r: 5.0, gap_r: nil, under_span: false, layer_names: ['concrete', 'floor covering', 'interior horizontal ins', 'interior vertical ins', 'exterior vertical ins'] }, - { perimeter_r: 20.0, under_r: 20.0, gap_r: 20.0, under_span: false, layer_names: ['concrete', 'floor covering', 'interior horizontal ins', 'interior vertical ins', 'exterior vertical ins'] }] + slabs_values = [{ perimeter_r: 0.0, under_r: 0.0, gap_r: nil, under_span: false, ext_horiz_r: 0.0, layer_names: ['concrete', 'floor covering'] }, + { perimeter_r: 0.0, under_r: 0.0, gap_r: 5.0, under_span: false, ext_horiz_r: 0.0, layer_names: ['concrete', 'floor covering', 'interior vertical ins'] }, + { perimeter_r: 5.0, under_r: 0.0, gap_r: nil, under_span: false, ext_horiz_r: 0.0, layer_names: ['concrete', 'floor covering', 'exterior vertical ins'] }, + { perimeter_r: 5.0, under_r: 0.0, gap_r: nil, under_span: false, ext_horiz_r: 5.0, layer_names: ['concrete', 'floor covering', 'exterior horizontal ins', 'exterior vertical ins'] }, + { perimeter_r: 20.0, under_r: 0.0, gap_r: nil, under_span: false, ext_horiz_r: 0.0, layer_names: ['concrete', 'floor covering', 'exterior vertical ins'] }, + { perimeter_r: 20.0, under_r: 0.0, gap_r: nil, under_span: false, ext_horiz_r: 20.0, layer_names: ['concrete', 'floor covering', 'exterior horizontal ins', 'exterior vertical ins'] }, + { perimeter_r: 0.0, under_r: 5.0, gap_r: nil, under_span: false, ext_horiz_r: 0.0, layer_names: ['concrete', 'floor covering', 'interior horizontal ins', 'interior vertical ins'] }, + { perimeter_r: 0.0, under_r: 20.0, gap_r: nil, under_span: false, ext_horiz_r: 0.0, layer_names: ['concrete', 'floor covering', 'interior horizontal ins', 'interior vertical ins'] }, + { perimeter_r: 0.0, under_r: 5.0, gap_r: nil, under_span: true, ext_horiz_r: 0.0, layer_names: ['slab rigid ins', 'concrete', 'floor covering', 'interior vertical ins'] }, + { perimeter_r: 0.0, under_r: 20.0, gap_r: nil, under_span: true, ext_horiz_r: 0.0, layer_names: ['slab rigid ins', 'concrete', 'floor covering', 'interior vertical ins'] }, + { perimeter_r: 5.0, under_r: 5.0, gap_r: nil, under_span: false, ext_horiz_r: 0.0, layer_names: ['concrete', 'floor covering', 'interior horizontal ins', 'interior vertical ins', 'exterior vertical ins'] }, + { perimeter_r: 5.0, under_r: 5.0, gap_r: nil, under_span: false, ext_horiz_r: 5.0, layer_names: ['concrete', 'floor covering', 'interior horizontal ins', 'exterior horizontal ins', 'interior vertical ins', 'exterior vertical ins'] }, + { perimeter_r: 20.0, under_r: 20.0, gap_r: 20.0, under_span: false, ext_horiz_r: 0.0, layer_names: ['concrete', 'floor covering', 'interior horizontal ins', 'interior vertical ins', 'exterior vertical ins'] }, + { perimeter_r: 20.0, under_r: 20.0, gap_r: 20.0, under_span: false, ext_horiz_r: 20.0, layer_names: ['concrete', 'floor covering', 'interior horizontal ins', 'exterior horizontal ins', 'interior vertical ins', 'exterior vertical ins'] }] hpxml, hpxml_bldg = _create_hpxml('base-foundation-slab.xml') slabs_values.each do |slab_values| hpxml_bldg.slabs[0].perimeter_insulation_r_value = slab_values[:perimeter_r] hpxml_bldg.slabs[0].perimeter_insulation_depth = 2.0 + hpxml_bldg.slabs[0].under_slab_insulation_r_value = slab_values[:under_r] if slab_values[:under_span] hpxml_bldg.slabs[0].under_slab_insulation_spans_entire_slab = true @@ -539,8 +544,13 @@ def test_slabs hpxml_bldg.slabs[0].under_slab_insulation_width = 2.0 hpxml_bldg.slabs[0].under_slab_insulation_spans_entire_slab = nil end + hpxml_bldg.slabs[0].gap_insulation_r_value = slab_values[:gap_r] + hpxml_bldg.slabs[0].exterior_horizontal_insulation_r_value = slab_values[:ext_horiz_r] + hpxml_bldg.slabs[0].exterior_horizontal_insulation_width = 2.0 + hpxml_bldg.slabs[0].exterior_horizontal_insulation_depth_below_grade = 2.0 + XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) model, hpxml, hpxml_bldg = _test_measure(args_hash) @@ -921,10 +931,20 @@ def split_surfaces(surfaces, should_collapse_surfaces) elsif [HPXML::FoundationWall].include? surf_class surfaces[-1].insulation_exterior_r_value += 0.01 * i elsif [HPXML::Slab].include? surf_class - if i < 4 + if i < 2 surfaces[-1].perimeter_insulation_depth += 0.01 * i - else + elsif i < 3 surfaces[-1].perimeter_insulation_r_value += 0.01 * i + elsif i < 4 + surfaces[-1].under_slab_insulation_r_value += 0.01 * i + elsif i < 5 + surfaces[-1].under_slab_insulation_width += 0.01 * i + elsif i < 6 + surfaces[-1].exterior_horizontal_insulation_r_value = surfaces[-1].exterior_horizontal_insulation_r_value.to_f + 0.01 * i + elsif i < 7 + surfaces[-1].exterior_horizontal_insulation_width = surfaces[-1].exterior_horizontal_insulation_width.to_f + 0.01 * i + else + surfaces[-1].exterior_horizontal_insulation_depth_below_grade = surfaces[-1].exterior_horizontal_insulation_depth_below_grade.to_f + 0.01 * i end elsif [HPXML::Window, HPXML::Skylight].include? surf_class if i < 3 @@ -1006,6 +1026,7 @@ def get_num_surfaces_by_type(hpxml_bldg) hpxml_bldg.slabs[i].id = "Slab#{i + 1}" hpxml_bldg.slabs[i].perimeter_insulation_id = "Slab#{i + 1}PerimeterInsulation" hpxml_bldg.slabs[i].under_slab_insulation_id = "Slab#{i + 1}UnderSlabInsulation" + hpxml_bldg.slabs[i].exterior_horizontal_insulation_id = "Slab#{i + 1}ExteriorHorizontalInsulation" hpxml_bldg.slabs[i].depth_below_grade = hpxml_bldg.foundation_walls[i].depth_below_grade * i / 3.0 end XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) diff --git a/HPXMLtoOpenStudio/tests/test_hvac_sizing.rb b/HPXMLtoOpenStudio/tests/test_hvac_sizing.rb index 23e56bdb01..54ec916169 100644 --- a/HPXMLtoOpenStudio/tests/test_hvac_sizing.rb +++ b/HPXMLtoOpenStudio/tests/test_hvac_sizing.rb @@ -1435,6 +1435,9 @@ def test_manual_j_slab_f_factor slab.under_slab_insulation_width = 0 slab.under_slab_insulation_spans_entire_slab = false slab.under_slab_insulation_r_value = 0 + slab.exterior_horizontal_insulation_r_value = 0 + slab.exterior_horizontal_insulation_width = 0 + slab.exterior_horizontal_insulation_depth_below_grade = 0 # 22A — No Edge Insulation, No insulation Below Floor, any Floor Cover assert_in_epsilon(1.358, HVACSizing.calc_slab_f_value(slab, high_soil_k), tol) diff --git a/HPXMLtoOpenStudio/tests/test_validation.rb b/HPXMLtoOpenStudio/tests/test_validation.rb index e27364940f..950dc37976 100644 --- a/HPXMLtoOpenStudio/tests/test_validation.rb +++ b/HPXMLtoOpenStudio/tests/test_validation.rb @@ -860,8 +860,9 @@ def test_schema_schematron_warning_messages 'plug-load-type-tv-crt' => ["Plug load type 'TV CRT' is not currently handled, the plug load will not be modeled."], 'plug-load-type-tv-plasma' => ["Plug load type 'TV plasma' is not currently handled, the plug load will not be modeled."], 'portable-spa' => ['Portable spa is not currently handled, the portable spa will not be modeled.'], - 'slab-zero-exposed-perimeter' => ['Slab has zero exposed perimeter, this may indicate an input error.'], + 'slab-ext-horiz-insul-without-perim-insul' => ['There is ExteriorHorizontalInsulation but no PerimeterInsulation, this may indicate an input error.'], 'slab-large-exposed-perimeter' => ['Slab exposed perimeter is more than twice the slab area, this may indicate an input error.'], + 'slab-zero-exposed-perimeter' => ['Slab has zero exposed perimeter, this may indicate an input error.'], 'unit-multiplier' => ['NumberofUnits is greater than 1, indicating that the HPXML Building represents multiple dwelling units; simulation outputs will reflect this unit multiplier.'], 'wrong-units' => ['Thickness is greater than 12 inches; this may indicate incorrect units.', 'Thickness is less than 1 inch; this may indicate incorrect units.', @@ -1009,6 +1010,9 @@ def test_schema_schematron_warning_messages elsif ['slab-zero-exposed-perimeter'].include? warning_case hpxml, hpxml_bldg = _create_hpxml('base.xml') hpxml_bldg.slabs[0].exposed_perimeter = 0 + elsif ['slab-ext-horiz-insul-without-perim-insul'].include? warning_case + hpxml, hpxml_bldg = _create_hpxml('base-foundation-slab-exterior-horizontal-insulation.xml') + hpxml_bldg.slabs[0].perimeter_insulation_r_value = 0 elsif ['slab-large-exposed-perimeter'].include? warning_case hpxml, hpxml_bldg = _create_hpxml('base.xml') hpxml_bldg.slabs[0].exposed_perimeter = hpxml_bldg.slabs[0].area * 2 + 1 diff --git a/docs/source/images/slab.png b/docs/source/images/slab.png index a674f11a011acfb5f36d1c8731b1913b2490178d..347cc4ee6647d30b556f61f16a95544fbb3da778 100644 GIT binary patch literal 150528 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

-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 aW^R$kbfdS!)srOrqjga4K$gboYySgQn-fz2 literal 14872 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 0 Yes Gross area - ``Thickness`` double in >= 0 No See [#]_ Thickness [#]_ - ``ExposedPerimeter`` double ft >= 0 Yes Perimeter exposed to ambient conditions [#]_ - ``DepthBelowGrade`` double ft >= 0 No See [#]_ Depth from the top of the slab surface to grade - ``PerimeterInsulation/SystemIdentifier`` id Yes Unique identifier - ``PerimeterInsulation/Layer/NominalRValue`` double F-ft2-hr/Btu >= 0 Yes R-value of vertical insulation (see figure below) - ``PerimeterInsulation/Layer/InsulationDepth`` double ft >= 0 Yes Depth from top of slab to bottom of vertical insulation - ``UnderSlabInsulation/SystemIdentifier`` id Yes Unique identifier - ``UnderSlabInsulation/Layer/NominalRValue`` double F-ft2-hr/Btu >= 0 Yes R-value of horizontal insulation (see figure below) - ``UnderSlabInsulation/Layer/InsulationWidth`` double ft >= 0 See [#]_ Width from slab edge inward of horizontal insulation - ``UnderSlabInsulation/Layer/InsulationSpansEntireSlab`` boolean See [#]_ Whether horizontal insulation spans entire slab - ``extension/GapInsulationRValue`` double F-ft2-hr/Btu >= 0 No See [#]_ R-value of gap insulation (see figure below) - ``extension/CarpetFraction`` double frac >= 0, <= 1 No See [#]_ Fraction of slab covered by carpet - ``extension/CarpetRValue`` double F-ft2-hr/Btu >= 0 No See [#]_ Carpet R-value - ======================================================= ======== ============ =========== ========= ======== ==================================================== + ================================================================== ======== ============ =========== ========= ======== =============================================================== + Element Type Units Constraints Required Default Notes + ================================================================== ======== ============ =========== ========= ======== =============================================================== + ``SystemIdentifier`` id Yes Unique identifier + ``AttachedToSpace`` idref See [#]_ See [#]_ ID of attached space + ``InteriorAdjacentTo`` string See [#]_ Yes Interior adjacent space type + ``Area`` double ft2 > 0 Yes Gross area + ``Thickness`` double in >= 0 No See [#]_ Thickness [#]_ + ``ExposedPerimeter`` double ft >= 0 Yes Perimeter exposed to ambient conditions [#]_ + ``DepthBelowGrade`` double ft >= 0 No See [#]_ Depth from the top of the slab surface to grade + ``PerimeterInsulation/SystemIdentifier`` id Yes Unique identifier + ``PerimeterInsulation/Layer/NominalRValue`` double F-ft2-hr/Btu >= 0 Yes R-value of vertical insulation (see figure below) + ``PerimeterInsulation/Layer/InsulationDepth`` double ft >= 0 Yes Depth from top of slab to bottom of vertical insulation + ``ExteriorHorizontalInsulation/SystemIdentifier`` id See [#]_ Unique identifier + ``ExteriorHorizontalInsulation/Layer/NominalRValue`` double F-ft2-hr/Btu >= 0 No 0 R-value of exterior horizontal insulation (see figure below) [#]_ + ``ExteriorHorizontalInsulation/Layer/InsulationWidth`` double ft >= 0 No 0 Width of exterior horizontal insulation from slab edge outward + ``ExteriorHorizontalInsulation/Layer/InsulationDepthBelowGrade`` double ft >= 0 No 0 Depth from grade to the top of exterior horizontal insulation + ``UnderSlabInsulation/SystemIdentifier`` id Yes Unique identifier + ``UnderSlabInsulation/Layer/NominalRValue`` double F-ft2-hr/Btu >= 0 Yes R-value of horizontal insulation (see figure below) + ``UnderSlabInsulation/Layer/InsulationWidth`` double ft >= 0 See [#]_ Width from slab edge inward of horizontal insulation + ``UnderSlabInsulation/Layer/InsulationSpansEntireSlab`` boolean See [#]_ Whether horizontal insulation spans entire slab + ``extension/GapInsulationRValue`` double F-ft2-hr/Btu >= 0 No See [#]_ R-value of gap insulation (see figure below) + ``extension/CarpetFraction`` double frac >= 0, <= 1 No See [#]_ Fraction of slab covered by carpet + ``extension/CarpetRValue`` double F-ft2-hr/Btu >= 0 No See [#]_ Carpet R-value + ================================================================== ======== ============ =========== ========= ======== =============================================================== .. [#] If AttachedToSpace provided, it must reference a ``Space`` (within a conditioned Zone). .. [#] Only required if zone-level and space-level HVAC design load calculations are desired (see :ref:`zones_spaces`) and the surface is adjacent to conditioned space. @@ -1482,6 +1486,8 @@ Each space type that borders the ground (i.e., basement, crawlspace, garage, and So a basement slab edge adjacent to a garage or crawlspace, for example, should not be included. .. [#] If DepthBelowGrade not provided, defaults to zero for foundation types without walls. For foundation types with walls, DepthBelowGrade is ignored as the slab's position relative to grade is determined by the ``FoundationWall/DepthBelowGrade`` value(s). + .. [#] SystemIdentifier only required if ExteriorHorizontalInsulation is provided. + .. [#] Exterior horizontal insulation (sometimes called wing or skirt insulation) is typically used `in colder regions with frost-susceptible soils to prevent the slab from heaving `_. .. [#] InsulationWidth only required if InsulationSpansEntireSlab=true is not provided. .. [#] InsulationSpansEntireSlab=true only required if InsulationWidth is not provided. .. [#] If GapInsulationRValue not provided, defaults to 5.0 if there is under slab (horizontal) insulation, otherwise 0.0. diff --git a/tasks.rb b/tasks.rb index 2ab5edb35c..cc120ad323 100644 --- a/tasks.rb +++ b/tasks.rb @@ -507,6 +507,9 @@ def apply_hpxml_modification_sample_files(hpxml_path, hpxml) if bg_surface.is_a? HPXML::Slab new_bg_surface.perimeter_insulation_id = "#{bg_surface.perimeter_insulation_id}#{bg_space.id}" new_bg_surface.under_slab_insulation_id = "#{bg_surface.under_slab_insulation_id}#{bg_space.id}" + if not new_bg_surface.exterior_horizontal_insulation_id.nil? + new_bg_surface.exterior_horizontal_insulation_id = "#{bg_surface.exterior_horizontal_insulation_id}#{bg_space.id}" + end else new_bg_surface.insulation_id = "#{bg_space.id}#{bg_surface.insulation_id}" end diff --git a/workflow/hpxml_inputs.json b/workflow/hpxml_inputs.json index 6a187a8187..9c73bfdc4a 100644 --- a/workflow/hpxml_inputs.json +++ b/workflow/hpxml_inputs.json @@ -35,6 +35,7 @@ "rim_joist_assembly_r": 5.01, "slab_perimeter_insulation_r": 0, "slab_perimeter_insulation_depth": 0, + "slab_perimeter_insulation_depth": 0, "slab_under_insulation_r": 0, "slab_under_insulation_width": 0, "slab_thickness": 4, @@ -640,6 +641,7 @@ "rim_joist_assembly_r": 23, "slab_perimeter_insulation_r": 0, "slab_perimeter_insulation_depth": 0, + "slab_perimeter_insulation_depth": 0, "slab_under_insulation_r": 0, "slab_under_insulation_width": 0, "slab_thickness": 4, @@ -1858,6 +1860,13 @@ "ducts_return_location": "under slab", "misc_plug_loads_other_annual_kwh": 1228.5 }, + "sample_files/base-foundation-slab-exterior-horizontal-insulation.xml": { + "parent_hpxml": "sample_files/base-foundation-slab.xml", + "slab_perimeter_insulation_r": 5.4, + "slab_exterior_horizontal_insulation_r": 5.4, + "slab_exterior_horizontal_insulation_width": 2.5, + "slab_exterior_horizontal_insulation_depth_below_grade": 1 + }, "sample_files/base-foundation-multiple.xml": { "parent_hpxml": "sample_files/base-foundation-unconditioned-basement.xml" }, diff --git a/workflow/sample_files/base-foundation-slab-exterior-horizontal-insulation.xml b/workflow/sample_files/base-foundation-slab-exterior-horizontal-insulation.xml new file mode 100644 index 0000000000..537684e88a --- /dev/null +++ b/workflow/sample_files/base-foundation-slab-exterior-horizontal-insulation.xml @@ -0,0 +1,513 @@ + + + + HPXML + tasks.rb + 2000-01-01T00:00:00-07:00 + create + + + + + 60 + + + + Bills + + + + + + + + +

+ CO +
+ + + proposed workscope + + + + + suburban + stand-alone + no units above or below + 180 + + electricity + natural gas + + + + single-family detached + 1.0 + 1.0 + 8.0 + 3 + 2 + 1350.0 + 10800.0 + + + + + 2006 + 5B + + + + USA_CO_Denver.Intl.AP.725650_TMY3 + + USA_CO_Denver.Intl.AP.725650_TMY3.epw + + + + + + + + 50.0 + + ACH + 3.0 + + 10800.0 + + + + + + + + false + + + false + + + + + + + + + + + + + + + + + + attic - unvented + 1509.3 + asphalt or fiberglass shingles + 0.7 + 0.92 + 6.0 + + + 2.3 + + + + + + + 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 + + + + + + + attic - unvented + conditioned space + ceiling + + + + 1350.0 + + gypsum board + + + + 39.3 + + + + + + + conditioned space + 1350.0 + 4.0 + 150.0 + + + + 5.4 + 0.0 + + + + + + 5.4 + 2.5 + 1.0 + + + + + + 5.0 + true + + + + 1.0 + 2.5 + + + + + + + 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 + under slab + 150.0 + + + + return + 0.0 + under slab + 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 + 1228.5 + + + 0.855 + 0.045 + + + + + + \ No newline at end of file diff --git a/workflow/tests/base_results/results_simulations_bills.csv b/workflow/tests/base_results/results_simulations_bills.csv index c8e8ce0887..2924e7fb14 100644 --- a/workflow/tests/base_results/results_simulations_bills.csv +++ b/workflow/tests/base_results/results_simulations_bills.csv @@ -173,6 +173,7 @@ base-foundation-conditioned-basement-slab-insulation.xml,1833.57,144.0,1310.1,0. base-foundation-conditioned-basement-wall-insulation.xml,1814.99,144.0,1286.65,0.0,1430.65,144.0,240.34,384.34,0.0,0.0,0.0,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-foundation-conditioned-crawlspace.xml,1530.37,144.0,1045.54,0.0,1189.54,144.0,196.83,340.83,0.0,0.0,0.0,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-foundation-multiple.xml,1496.86,144.0,1066.23,0.0,1210.23,144.0,142.63,286.63,0.0,0.0,0.0,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-foundation-slab-exterior-horizontal-insulation.xml,1456.43,144.0,1054.44,0.0,1198.44,144.0,113.99,257.99,0.0,0.0,0.0,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-foundation-slab.xml,1465.18,144.0,1059.9,0.0,1203.9,144.0,117.28,261.28,0.0,0.0,0.0,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-foundation-unconditioned-basement-above-grade.xml,1510.76,144.0,1069.29,0.0,1213.29,144.0,153.47,297.47,0.0,0.0,0.0,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-foundation-unconditioned-basement-assembly-r.xml,1467.22,144.0,1047.7,0.0,1191.7,144.0,131.52,275.52,0.0,0.0,0.0,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 c70844d606..574865b105 100644 --- a/workflow/tests/base_results/results_simulations_energy.csv +++ b/workflow/tests/base_results/results_simulations_energy.csv @@ -173,6 +173,7 @@ base-foundation-conditioned-basement-slab-insulation.xml,58.486,58.486,35.992,35 base-foundation-conditioned-basement-wall-insulation.xml,58.307,58.307,35.348,35.348,22.959,0.0,0.0,0.0,0.0,0.0,0.0,0.57,0.0,0.0,4.036,0.592,9.015,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.071,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,22.959,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,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-foundation-conditioned-crawlspace.xml,47.527,47.527,28.724,28.724,18.803,0.0,0.0,0.0,0.0,0.0,0.0,0.466,0.0,0.0,3.554,0.51,9.208,0.0,0.0,2.646,0.0,0.238,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,4.192,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,18.803,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,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-foundation-multiple.xml,42.918,42.918,29.293,29.293,13.625,0.0,0.0,0.0,0.0,0.0,0.0,0.338,0.0,0.0,4.391,0.661,9.18,0.0,0.0,2.646,0.0,0.238,0.0,0.0,0.0,0.0,1.807,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,13.625,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,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-foundation-slab-exterior-horizontal-insulation.xml,39.858,39.858,28.969,28.969,10.889,0.0,0.0,0.0,0.0,0.0,0.0,0.27,0.0,0.0,3.91,0.574,9.2,0.0,0.0,2.646,0.0,0.238,0.0,0.0,0.0,0.0,2.099,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,10.889,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,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-foundation-slab.xml,40.322,40.322,29.119,29.119,11.203,0.0,0.0,0.0,0.0,0.0,0.0,0.278,0.0,0.0,4.029,0.597,9.199,0.0,0.0,2.646,0.0,0.238,0.0,0.0,0.0,0.0,2.099,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,11.203,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,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-foundation-unconditioned-basement-above-grade.xml,44.038,44.038,29.377,29.377,14.661,0.0,0.0,0.0,0.0,0.0,0.0,0.364,0.0,0.0,4.477,0.677,9.197,0.0,0.0,2.646,0.0,0.238,0.0,0.0,0.0,0.0,1.746,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,14.661,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,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-foundation-unconditioned-basement-assembly-r.xml,41.347,41.347,28.783,28.783,12.564,0.0,0.0,0.0,0.0,0.0,0.0,0.312,0.0,0.0,4.018,0.591,9.196,0.0,0.0,2.646,0.0,0.238,0.0,0.0,0.0,0.0,1.75,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,12.564,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,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 a4da1da24c..81eef7ddd3 100644 --- a/workflow/tests/base_results/results_simulations_hvac.csv +++ b/workflow/tests/base_results/results_simulations_hvac.csv @@ -173,6 +173,7 @@ base-foundation-conditioned-basement-slab-insulation.xml,6.8,91.76,36000.0,24000 base-foundation-conditioned-basement-wall-insulation.xml,6.8,91.76,36000.0,24000.0,0.0,31451.0,8686.0,7508.0,0.0,575.0,6153.0,0.0,0.0,1738.0,2171.0,4620.0,0.0,0.0,20279.0,6137.0,7037.0,0.0,207.0,662.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-foundation-conditioned-crawlspace.xml,6.8,91.76,36000.0,24000.0,0.0,21371.0,0.0,7508.0,0.0,575.0,5290.0,0.0,0.0,2362.0,2171.0,3465.0,0.0,0.0,13772.0,0.0,7037.0,0.0,207.0,448.0,0.0,0.0,0.0,2293.0,467.0,0.0,3320.0,0.0,0.0,304.0,0.0,-496.0,0.0,800.0 base-foundation-multiple.xml,6.8,91.76,36000.0,24000.0,0.0,23269.0,4969.0,7508.0,0.0,575.0,2198.0,0.0,3538.0,0.0,2171.0,2310.0,0.0,0.0,14634.0,246.0,7037.0,0.0,207.0,281.0,0.0,938.0,0.0,2293.0,311.0,0.0,3320.0,0.0,0.0,469.0,0.0,-331.0,0.0,800.0 +base-foundation-slab-exterior-horizontal-insulation.xml,6.8,91.76,36000.0,24000.0,0.0,27987.0,1698.0,7508.0,0.0,575.0,2198.0,0.0,0.0,11527.0,2171.0,2310.0,0.0,0.0,13449.0,0.0,7037.0,0.0,207.0,281.0,0.0,0.0,0.0,2293.0,311.0,0.0,3320.0,0.0,0.0,469.0,0.0,-331.0,0.0,800.0 base-foundation-slab.xml,6.8,91.76,36000.0,24000.0,0.0,28288.0,1699.0,7508.0,0.0,575.0,2198.0,0.0,0.0,11827.0,2171.0,2310.0,0.0,0.0,13449.0,0.0,7037.0,0.0,207.0,281.0,0.0,0.0,0.0,2293.0,311.0,0.0,3320.0,0.0,0.0,469.0,0.0,-331.0,0.0,800.0 base-foundation-unconditioned-basement-above-grade.xml,6.8,91.76,36000.0,24000.0,0.0,23247.0,4978.0,7508.0,0.0,575.0,2198.0,0.0,3507.0,0.0,2171.0,2310.0,0.0,0.0,14636.0,256.0,7037.0,0.0,207.0,281.0,0.0,930.0,0.0,2293.0,311.0,0.0,3320.0,0.0,0.0,469.0,0.0,-331.0,0.0,800.0 base-foundation-unconditioned-basement-assembly-r.xml,6.8,91.76,36000.0,24000.0,0.0,21082.0,4916.0,7508.0,0.0,575.0,2198.0,0.0,1404.0,0.0,2171.0,2310.0,0.0,0.0,14086.0,264.0,7037.0,0.0,207.0,281.0,0.0,372.0,0.0,2293.0,311.0,0.0,3320.0,0.0,0.0,469.0,0.0,-331.0,0.0,800.0 @@ -474,5 +475,5 @@ house045.xml,-13.72,81.14,70000.0,30000.0,0.0,52712.0,0.0,8558.0,455.0,472.0,244 house046.xml,24.62,91.58,18000.0,18000.0,17065.0,16969.0,3903.0,1800.0,0.0,182.0,2847.0,0.0,0.0,0.0,1604.0,6633.0,0.0,0.0,15259.0,3713.0,2218.0,0.0,110.0,1595.0,0.0,0.0,0.0,1823.0,1399.0,0.0,2860.0,0.0,1540.0,2698.0,483.0,1815.0,0.0,400.0 house047.xml,19.22,86.72,20000.0,18000.0,0.0,7271.0,1053.0,1216.0,0.0,0.0,630.0,0.0,0.0,662.0,0.0,3710.0,0.0,0.0,4205.0,0.0,522.0,0.0,0.0,200.0,0.0,0.0,0.0,0.0,623.0,0.0,2860.0,0.0,0.0,1652.0,0.0,1252.0,0.0,400.0 house048.xml,25.88,98.42,63000.0,46500.0,0.0,51897.0,11933.0,4499.0,0.0,694.0,9939.0,828.0,63.0,10750.0,2249.0,7887.0,3053.0,0.0,31511.0,8098.0,4943.0,0.0,589.0,7960.0,547.0,57.0,0.0,1959.0,2188.0,1621.0,3550.0,0.0,0.0,4760.0,1126.0,1513.0,1121.0,1000.0 -house049.xml,33.26,106.16,39000.0,16000.0,0.0,19219.0,0.0,5635.0,0.0,0.0,5319.0,0.0,0.0,2446.0,1357.0,3370.0,1091.0,0.0,21829.0,0.0,7292.0,0.0,0.0,6460.0,0.0,0.0,0.0,2075.0,1986.0,926.0,3090.0,0.0,0.0,-351.0,0.0,-717.0,-233.0,600.0 +house049.xml,33.26,106.16,39000.0,16000.0,0.0,19031.0,0.0,5635.0,0.0,0.0,5319.0,0.0,0.0,2258.0,1357.0,3370.0,1091.0,0.0,21829.0,0.0,7292.0,0.0,0.0,6460.0,0.0,0.0,0.0,2075.0,1986.0,926.0,3090.0,0.0,0.0,-351.0,0.0,-717.0,-233.0,600.0 house050.xml,28.58,87.08,58000.0,29000.0,0.0,22123.0,7611.0,3277.0,0.0,949.0,3299.0,0.0,2075.0,0.0,1771.0,2150.0,991.0,0.0,20101.0,5095.0,5540.0,0.0,572.0,1304.0,0.0,605.0,0.0,1585.0,324.0,289.0,3320.0,0.0,1466.0,1243.0,110.0,88.0,245.0,800.0 diff --git a/workflow/tests/base_results/results_simulations_loads.csv b/workflow/tests/base_results/results_simulations_loads.csv index 3b162df0eb..b6a7021a19 100644 --- a/workflow/tests/base_results/results_simulations_loads.csv +++ b/workflow/tests/base_results/results_simulations_loads.csv @@ -173,6 +173,7 @@ base-foundation-conditioned-basement-slab-insulation.xml,21.252,0.0,14.498,9.071 base-foundation-conditioned-basement-wall-insulation.xml,21.692,0.0,12.247,9.071,0.615,0.0,0.0,0.0,3.896,3.946,0.554,6.333,0.695,10.933,-13.737,0.0,0.0,0.0,8.89,-0.17,5.314,0.0,0.782,0.0,5.174,-8.581,-2.695,0.0,0.128,-0.107,-0.003,1.448,0.052,-0.411,10.676,0.0,0.0,0.0,-6.448,-0.165,-0.779,-3.625,-0.103,0.0,2.881,7.0,1.812 base-foundation-conditioned-crawlspace.xml,17.752,0.0,10.388,9.178,0.616,0.0,0.0,0.0,4.115,3.879,0.545,5.201,0.683,10.579,-13.64,0.0,0.0,0.0,9.852,-0.141,3.728,0.0,0.78,0.0,0.0,-6.59,-1.583,0.0,0.209,-0.162,-0.01,1.937,0.042,-0.324,10.714,0.0,0.0,0.0,-3.832,-0.138,-0.585,-3.695,-0.106,0.0,0.0,5.406,1.062 base-foundation-multiple.xml,12.866,0.0,13.526,9.122,0.696,0.0,0.0,0.0,3.996,3.639,0.0,0.0,0.822,10.149,-9.933,0.0,0.0,4.484,0.0,-0.753,2.523,0.0,0.0,0.0,2.349,-3.446,-1.231,0.0,-0.342,-0.891,0.0,0.0,0.042,-0.726,14.035,0.0,0.0,-1.481,0.0,-0.75,-0.677,-3.119,0.0,0.0,1.992,4.365,1.415 +base-foundation-slab-exterior-horizontal-insulation.xml,10.28,0.0,11.677,9.178,0.607,0.0,0.0,0.0,4.049,3.701,0.0,0.0,0.769,10.178,-10.712,0.0,0.0,0.0,6.132,-0.503,2.112,0.0,0.729,0.0,0.336,-5.509,-1.304,0.0,-0.186,-0.647,0.0,0.0,0.063,-0.537,13.544,0.0,0.0,0.0,-3.74,-0.5,-0.463,-3.38,-0.207,0.0,0.13,6.507,1.342 base-foundation-slab.xml,10.577,0.0,12.163,9.178,0.607,0.0,0.0,0.0,4.055,3.706,0.0,0.0,0.766,10.177,-10.778,0.0,0.0,0.0,6.504,-0.494,2.118,0.0,0.732,0.0,0.345,-5.537,-1.313,0.0,-0.184,-0.646,0.0,0.0,0.058,-0.547,13.478,0.0,0.0,0.0,-3.094,-0.492,-0.46,-3.446,-0.203,0.0,0.135,6.479,1.333 base-foundation-unconditioned-basement-above-grade.xml,13.845,0.0,13.896,9.122,0.714,0.0,0.0,0.0,4.037,3.671,0.0,0.0,0.81,10.137,-10.206,0.0,0.0,5.23,0.0,-0.702,2.536,0.0,0.0,0.0,2.761,-3.477,-1.245,0.0,-0.283,-0.84,0.0,0.0,0.035,-0.785,13.763,0.0,0.0,-1.208,0.0,-0.698,-0.665,-3.103,0.0,0.0,2.246,4.334,1.401 base-foundation-unconditioned-basement-assembly-r.xml,11.864,0.0,11.993,9.122,0.713,0.0,0.0,0.0,3.985,3.603,0.0,0.0,0.812,10.077,-9.773,0.0,0.0,3.622,0.0,-0.781,2.5,0.0,0.0,0.0,2.126,-3.39,-1.202,0.0,-0.322,-0.848,0.0,0.0,0.071,-0.769,14.196,0.0,0.0,-2.907,0.0,-0.778,-0.697,-2.969,0.0,0.0,1.498,4.421,1.444 diff --git a/workflow/tests/base_results/results_simulations_misc.csv b/workflow/tests/base_results/results_simulations_misc.csv index 57dc82ced7..5b74cbbdf7 100644 --- a/workflow/tests/base_results/results_simulations_misc.csv +++ b/workflow/tests/base_results/results_simulations_misc.csv @@ -173,6 +173,7 @@ base-foundation-conditioned-basement-slab-insulation.xml,0.0,0.0,1354.7,998.0,11 base-foundation-conditioned-basement-wall-insulation.xml,0.0,0.0,1354.7,998.0,11171.5,2563.5,2085.8,3465.2,3465.2,23.904,18.554,0.0 base-foundation-conditioned-crawlspace.xml,0.0,0.0,1354.7,998.0,11171.5,2752.7,1696.0,2769.8,2769.8,16.152,11.732,0.0 base-foundation-multiple.xml,0.0,0.0,1354.7,998.0,11171.5,2652.8,1669.5,3019.3,3019.3,16.101,15.954,0.0 +base-foundation-slab-exterior-horizontal-insulation.xml,0.0,0.0,1354.7,998.0,11171.5,2752.7,1681.3,2864.0,2864.0,13.151,13.106,0.0 base-foundation-slab.xml,0.0,0.0,1354.7,998.0,11171.5,2752.7,1676.6,2751.3,2751.3,13.31,13.371,0.0 base-foundation-unconditioned-basement-above-grade.xml,0.0,0.0,1354.7,998.0,11171.5,2652.8,1667.0,3013.6,3013.6,17.348,16.837,0.0 base-foundation-unconditioned-basement-assembly-r.xml,0.0,0.0,1354.7,998.0,11171.5,2652.8,1674.5,2788.9,2788.9,15.54,14.692,0.0