Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Room by room calculations #1578

Merged
merged 180 commits into from
May 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
180 commits
Select commit Hold shift + click to select a range
8fd7989
bugfix for long residence window specification, added test file for r…
yzhou601 Dec 22, 2023
5e2de8c
change attachedtospace to be idref format
yzhou601 Dec 22, 2023
013ea16
changed space to be named by id, removed window double specification
yzhou601 Dec 22, 2023
29e3aae
Add basic EPvalidator rules
yzhou601 Dec 22, 2023
1e27eff
Merge branch 'misc_mj8' of https://github.com/NREL/OpenStudio-HPXML i…
yzhou601 Jan 3, 2024
137cef7
hpxml class structure for zone, space and space idrefs
yzhou601 Jan 3, 2024
c12ef3d
sizing, roof and wall first cut
yzhou601 Jan 3, 2024
4b0b540
Merge branch 'misc_mj8' of https://github.com/NREL/OpenStudio-HPXML i…
shorowit Jan 18, 2024
2d1736a
Latest results.
Jan 18, 2024
e4858ef
First pass on CSV/HPXML outputs for room design loads.
shorowit Jan 18, 2024
5809c67
Merge branch 'room-by-room-sizing' of https://github.com/NREL/OpenStu…
shorowit Jan 18, 2024
6c53c7e
Merge branch 'misc_mj8' of https://github.com/NREL/OpenStudio-HPXML i…
yzhou601 Feb 5, 2024
ef3ffb0
a few conflicts
yzhou601 Feb 5, 2024
b6c23a6
doors
yzhou601 Feb 5, 2024
bc656b7
remove print statement
yzhou601 Feb 5, 2024
7a785be
added validation tests, cleanups, added war and infiltration calculat…
yzhou601 Feb 13, 2024
4a4ee41
update measures
yzhou601 Feb 13, 2024
389a1a5
First pass.
shorowit Feb 27, 2024
c88079b
Update comments.
shorowit Feb 27, 2024
066fc6f
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
shorowit Feb 28, 2024
79766f7
Merge branch 'room-by-room-sizing' of https://github.com/NREL/OpenStu…
shorowit Feb 28, 2024
f123313
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
shorowit Feb 28, 2024
415a1f6
Merge branch 'room-by-room-sizing' of https://github.com/NREL/OpenStu…
shorowit Feb 28, 2024
bfd0dc9
Bugfix for walls.
shorowit Feb 28, 2024
34d5991
Fix merge.
shorowit Feb 28, 2024
4be082a
Latest results.
Feb 28, 2024
39bef5a
windows + internal gains
yzhou601 Feb 29, 2024
d10d49b
bugfix
yzhou601 Feb 29, 2024
ee2d8d4
Apply automatic formatting to ACCA example HPXMLs.
shorowit Feb 29, 2024
a2e7a34
fix hpxml file load reporting
yzhou601 Mar 1, 2024
8461928
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Mar 1, 2024
de52e18
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
shorowit Mar 7, 2024
8e19e10
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
shorowit Mar 7, 2024
0a71bcc
this should be the right fix for hpxml load reporting
yzhou601 Mar 13, 2024
3e35f32
update measures
yzhou601 Mar 13, 2024
a0c1dfe
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Mar 13, 2024
ee1d073
Merge branch 'room-by-room-sizing' of https://github.com/NREL/OpenStu…
shorowit Mar 15, 2024
5f55f1d
Add AED curve outputs.
shorowit Mar 15, 2024
5161150
Disaggregate AED excursion from windows cooling sensible design load.
shorowit Mar 15, 2024
7583d95
Disaggregate infiltration and ventilation design loads.
shorowit Mar 15, 2024
8a1f98a
Latest results.
Mar 15, 2024
219c7f7
Merge pull request #1632 from NREL/mj8_reporting
shorowit Mar 15, 2024
3bedb23
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
shorowit Mar 15, 2024
4805d64
Update Changelog.md [ci skip]
shorowit Mar 15, 2024
b78f425
Latest results.
Mar 15, 2024
d9eafba
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Mar 18, 2024
2108471
Latest results.
Mar 18, 2024
ee4ad79
fenestration load procedure first cut
yzhou601 Mar 18, 2024
1c2b6b7
Merge branch 'room-by-room-sizing' of https://github.com/NREL/OpenStu…
yzhou601 Mar 18, 2024
444a31e
bugfixes
yzhou601 Mar 19, 2024
08544b0
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Mar 19, 2024
48c3b14
added unit test for user provided room by room sizing inputs
yzhou601 Mar 19, 2024
63d9622
add long residence unit test, fix typo
yzhou601 Mar 20, 2024
46be2b8
relative error tests added, excluding two known items.
yzhou601 Mar 20, 2024
68f442c
Some refactoring to clarify wall groups. No diffs expected.
shorowit Mar 20, 2024
0fab55d
remove delta check because epsilon looks sufficient for room by room …
yzhou601 Mar 20, 2024
83433b5
relax further
yzhou601 Mar 20, 2024
6095714
Relax HPXML constraints so that it can have any number of conditioned…
shorowit Mar 21, 2024
d9a00d2
Fix CI test.
shorowit Mar 21, 2024
4d2e450
Latest results.
Mar 21, 2024
e9c6175
Light refactor to avoid using a global variable for space design loads.
shorowit Mar 21, 2024
da58894
Merge branch 'room-by-room-sizing' of https://github.com/NREL/OpenStu…
shorowit Mar 21, 2024
336c691
Allow filename and output format (csv vs json) for the detailed desig…
shorowit Mar 26, 2024
e785bd3
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
shorowit Mar 26, 2024
8ff3f70
Latest results.
Mar 26, 2024
a50037b
Smith_Residence with Room by room specification
yzhou601 Mar 26, 2024
a6aa2f3
Merge branch 'room-by-room-sizing' of https://github.com/NREL/OpenStu…
yzhou601 Mar 26, 2024
e692fdb
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Mar 26, 2024
3a0775d
update hpxmls
yzhou601 Mar 27, 2024
df7f2fb
fixed slab ExposedPerimeter in Smith and added room by room specs in …
yzhou601 Mar 27, 2024
b816f4f
cobb
yzhou601 Mar 28, 2024
0c2ed08
Bell_Residence.xml
yzhou601 Mar 28, 2024
49e1775
revert roof assignments
yzhou601 Mar 28, 2024
ef990d9
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
shorowit Mar 29, 2024
29ddea2
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
shorowit Mar 29, 2024
44d9efd
Write the HVAC design loads/capacities into the annual results CSV ev…
shorowit Apr 1, 2024
f61f7d5
Fix tests.
shorowit Apr 2, 2024
90e3510
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Apr 8, 2024
05f3076
Latest results.
Apr 9, 2024
15bac5d
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Apr 10, 2024
150c30c
Merge branch 'room-by-room-sizing' of https://github.com/NREL/OpenStu…
yzhou601 Apr 10, 2024
3bb03f6
fix north wall diff
yzhou601 Apr 10, 2024
4d715e5
Latest results.
Apr 10, 2024
a466ac4
Latest results.
Apr 10, 2024
2dc012c
add room load unit tests for other template homes, still debugging
yzhou601 Apr 10, 2024
ec2c143
Merge branch 'room-by-room-sizing' of https://github.com/NREL/OpenStu…
yzhou601 Apr 10, 2024
391d0c8
internal gains for other template homes
yzhou601 Apr 10, 2024
0ef451a
Fix missing foundation walls in results_design_load_details.csv.
shorowit Apr 10, 2024
250f976
Run update_measures
shorowit Apr 10, 2024
2a62379
Update HPXMLs
shorowit Apr 10, 2024
9e91f97
some changes to Smith configuration for foundation
yzhou601 Apr 12, 2024
727a1dd
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Apr 12, 2024
b6c5b41
remove unconditioned spaces and surface references
yzhou601 Apr 12, 2024
c270589
Fix basement shortest side calculation. Improve handling of window IS…
shorowit Apr 15, 2024
65380ef
Fix/update tests.
shorowit Apr 15, 2024
7899313
Handle whole MF buildings (with multiple HPXML Building elements) in …
shorowit Apr 15, 2024
cd79e17
Update test.
shorowit Apr 15, 2024
23fcff8
Latest results.
Apr 15, 2024
15c641d
Handle hydronic radiant floors too.
shorowit Apr 15, 2024
0a4a6f9
Add clarification for bay/garden windows. [ci skip]
shorowit Apr 16, 2024
1f267ca
added aed curve unit tests
yzhou601 Apr 19, 2024
1a7f210
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Apr 19, 2024
b177447
rounding
yzhou601 Apr 19, 2024
a4d42e9
fixed last hour aed curve for peak procedure
yzhou601 Apr 22, 2024
345f28e
Light code refactoring/simplification.
shorowit Apr 22, 2024
2e10f5c
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Apr 25, 2024
4504ffc
add attached to zone input
yzhou601 Apr 25, 2024
9651eda
Latest results.
Apr 26, 2024
60c930a
proposed space duct load
yzhou601 Apr 26, 2024
897f4cf
Merge branch 'room-by-room-sizing' of https://github.com/NREL/OpenStu…
yzhou601 Apr 26, 2024
3bdfb4f
Bugfix/cleanup. Add more tests.
shorowit Apr 29, 2024
27526d3
add errorchecking for attachedtozone, small cleanup and refactor for …
yzhou601 Apr 29, 2024
53cebc6
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Apr 29, 2024
3cf445b
update measures
yzhou601 Apr 29, 2024
245bc51
simplify EPvalidator.xml
yzhou601 Apr 30, 2024
c10d13d
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Apr 30, 2024
e523c5d
update hpxmls
yzhou601 Apr 30, 2024
d28b8e5
fix unit tests
yzhou601 May 1, 2024
203b71a
changed the unit test sizing results (newly added by pulling master)
yzhou601 May 1, 2024
63a020b
Latest results.
May 1, 2024
e434cf4
Initial progress.
shorowit May 1, 2024
af06dc6
Calculate block design loads at the HPXML Zone level. If no HPXML Zon…
shorowit May 2, 2024
0b26d0d
Bugfix.
shorowit May 2, 2024
1a6e423
Another bugfix.
shorowit May 2, 2024
b62a3bd
Another pass.
shorowit May 2, 2024
ac4500a
Latest results.
May 2, 2024
587fdea
Update outputs; design loads now created on each in.xml Zone element …
shorowit May 3, 2024
b4f98d1
Merge branch 'zone_design_loads' of https://github.com/NREL/OpenStudi…
shorowit May 3, 2024
b8c9f8a
Simplify code. Address buildings without cooling/heating.
shorowit May 3, 2024
cca9076
More robust logic for AttachedToSpace/AttachedToZone elements. Start …
shorowit May 3, 2024
91f97a3
Fix CI failure.
shorowit May 3, 2024
52294e6
Need to exclude HVAC Zone Design Load too.
shorowit May 4, 2024
fcaedce
Latest results.
May 4, 2024
a7e7bfc
Small changes. [ci skip]
shorowit May 6, 2024
b2fd3f5
Update docs, etc.
shorowit May 6, 2024
983f695
Document AttachedToSpace/AttachedToZone.
shorowit May 6, 2024
e243895
Update error checking and add validation tests.
shorowit May 6, 2024
4a2e930
Address regressions for e.g. partial HVAC systems.
shorowit May 7, 2024
897cef4
Latest results.
May 7, 2024
048d93b
Update changelog [ci skip]
shorowit May 7, 2024
0013816
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 May 7, 2024
28f4ecf
allow garage and non freezing space as exposed?
yzhou601 May 7, 2024
6c60390
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 May 8, 2024
bcf0377
fix bugs in merging
yzhou601 May 8, 2024
148bc90
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 May 8, 2024
b5c4c2c
rim joist
yzhou601 May 8, 2024
ba4236a
one more update from pulling master
yzhou601 May 8, 2024
520cb58
Latest results.
May 8, 2024
8a05f4b
Merge branch 'room-by-room-sizing' of https://github.com/NREL/OpenStu…
shorowit May 9, 2024
192034b
Merge branch 'zone_design_loads' of https://github.com/NREL/OpenStudi…
shorowit May 9, 2024
6dcbe10
Fix HP supplemental load served when the HP's fraction heat load serv…
shorowit May 9, 2024
87fd89f
Oops.
shorowit May 9, 2024
ade22b6
Latest results.
May 9, 2024
4eef071
Bugfixes.
shorowit May 9, 2024
6ba7944
Merge branch 'room-by-room-sizing' of https://github.com/NREL/OpenStu…
shorowit May 9, 2024
a73e3a7
revert cobb east wall exterior adjacent to based on manual J description
yzhou601 May 14, 2024
308715b
Merge branch 'room-by-room-sizing' of https://github.com/NREL/OpenStu…
yzhou601 May 14, 2024
e17fa5c
Merge branch 'room-by-room-sizing' of https://github.com/NREL/OpenStu…
yzhou601 May 14, 2024
371eb7d
Latest results.
May 14, 2024
fad7a6b
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
shorowit May 14, 2024
08a26bf
Remove obsolete files
shorowit May 14, 2024
97dec98
Merge branch 'room-by-room-sizing' of https://github.com/NREL/OpenStu…
shorowit May 14, 2024
c2de286
Add sample file and unit tests. Fix zone AED curves.
shorowit May 15, 2024
3f446f8
Latest results.
May 15, 2024
0b3df9b
Revert change to WAR; should be gross wall area, not net wall area. M…
shorowit May 15, 2024
dfbeb5f
Merge branch 'zone_design_loads' of https://github.com/NREL/OpenStudi…
shorowit May 15, 2024
21cb116
Fixed duct load apportioning.
shorowit May 15, 2024
c4d0228
Latest results.
May 15, 2024
161f2ef
minor cleanup for window, no diff expected
yzhou601 May 15, 2024
3f3c2a8
Add a warning if a skylight is not connected to conditioned space. Fi…
shorowit May 15, 2024
9d3237a
Rename attributes to be more consistent w/ HPXML. Minor refactor. No …
shorowit May 15, 2024
a2d89a2
Bugfix.
shorowit May 15, 2024
c54e7d9
Latest results.
May 15, 2024
c70466f
Merge branch 'zone_design_loads' of https://github.com/NREL/OpenStudi…
shorowit May 15, 2024
c00e1b7
Oops, missed these two.
shorowit May 15, 2024
a7798ec
Address review comments.
shorowit May 15, 2024
90bddbf
I like this better.
shorowit May 15, 2024
1470350
Merge branch 'zone_design_loads' of https://github.com/NREL/OpenStudi…
shorowit May 15, 2024
1206d19
Merge pull request #1713 from NREL/hpxml_subsurface_attrs
shorowit May 15, 2024
32f5187
Merge pull request #1705 from NREL/zone_design_loads
shorowit May 15, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
106 changes: 50 additions & 56 deletions BuildResidentialHPXML/measure.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4954,7 +4954,7 @@ def self.set_windows(hpxml_bldg, model, args, sorted_subsurfaces)
exterior_shading_factor_winter: args[:window_exterior_shading_winter],
exterior_shading_factor_summer: args[:window_exterior_shading_summer],
fraction_operable: args[:window_fraction_operable],
wall_idref: wall_idref)
attached_to_wall_idref: wall_idref)
end
end

Expand All @@ -4970,13 +4970,21 @@ def self.set_skylights(hpxml_bldg, args, sorted_subsurfaces)
roof_idref = @surface_ids[surface.name.to_s]
next if roof_idref.nil?

roof = hpxml_bldg.roofs.find { |roof| roof.id == roof_idref }
if roof.interior_adjacent_to != HPXML::LocationConditionedSpace
# This is the roof of an attic, so the skylight must have a shaft; attach it to the attic floor as well.
floor = hpxml_bldg.floors.find { |floor| floor.interior_adjacent_to == HPXML::LocationConditionedSpace && floor.exterior_adjacent_to == roof.interior_adjacent_to }
floor_idref = floor.id
end

hpxml_bldg.skylights.add(id: "Skylight#{hpxml_bldg.skylights.size + 1}",
area: UnitConversions.convert(sub_surface.grossArea, 'm^2', 'ft^2'),
azimuth: azimuth,
ufactor: args[:skylight_ufactor],
shgc: args[:skylight_shgc],
storm_type: args[:skylight_storm_type],
roof_idref: roof_idref)
attached_to_roof_idref: roof_idref,
attached_to_floor_idref: floor_idref)
end
end

Expand All @@ -4997,7 +5005,7 @@ def self.set_doors(hpxml_bldg, model, args, sorted_subsurfaces)
next if wall_idref.nil?

hpxml_bldg.doors.add(id: "Door#{hpxml_bldg.doors.size + 1}",
wall_idref: wall_idref,
attached_to_wall_idref: wall_idref,
area: UnitConversions.convert(sub_surface.grossArea, 'm^2', 'ft^2'),
azimuth: args[:geometry_unit_orientation],
r_value: args[:door_rvalue])
Expand Down Expand Up @@ -6554,72 +6562,58 @@ def self.collapse_surfaces(hpxml_bldg, args)
end

# After surfaces are collapsed, round all areas
(hpxml_bldg.roofs +
hpxml_bldg.rim_joists +
hpxml_bldg.walls +
hpxml_bldg.foundation_walls +
hpxml_bldg.floors +
hpxml_bldg.slabs +
hpxml_bldg.windows +
hpxml_bldg.skylights +
hpxml_bldg.doors).each do |s|
(hpxml_bldg.surfaces + hpxml_bldg.subsurfaces).each do |s|
s.area = s.area.round(1)
end
end

def self.renumber_hpxml_ids(hpxml_bldg)
# Renumber surfaces
{ hpxml_bldg.walls => 'Wall',
hpxml_bldg.foundation_walls => 'FoundationWall',
hpxml_bldg.rim_joists => 'RimJoist',
hpxml_bldg.floors => 'Floor',
hpxml_bldg.roofs => 'Roof',
hpxml_bldg.slabs => 'Slab',
hpxml_bldg.windows => 'Window',
hpxml_bldg.doors => 'Door',
hpxml_bldg.skylights => 'Skylight' }.each do |surfs, surf_name|
surfs.each_with_index do |surf, i|
(hpxml_bldg.attics + hpxml_bldg.foundations).each do |attic_or_fnd|
if attic_or_fnd.respond_to?(:attached_to_roof_idrefs) && !attic_or_fnd.attached_to_roof_idrefs.nil? && !attic_or_fnd.attached_to_roof_idrefs.delete(surf.id).nil?
attic_or_fnd.attached_to_roof_idrefs << "#{surf_name}#{i + 1}"
end
if attic_or_fnd.respond_to?(:attached_to_wall_idrefs) && !attic_or_fnd.attached_to_wall_idrefs.nil? && !attic_or_fnd.attached_to_wall_idrefs.delete(surf.id).nil?
attic_or_fnd.attached_to_wall_idrefs << "#{surf_name}#{i + 1}"
end
if attic_or_fnd.respond_to?(:attached_to_rim_joist_idrefs) && !attic_or_fnd.attached_to_rim_joist_idrefs.nil? && !attic_or_fnd.attached_to_rim_joist_idrefs.delete(surf.id).nil?
attic_or_fnd.attached_to_rim_joist_idrefs << "#{surf_name}#{i + 1}"
end
if attic_or_fnd.respond_to?(:attached_to_floor_idrefs) && !attic_or_fnd.attached_to_floor_idrefs.nil? && !attic_or_fnd.attached_to_floor_idrefs.delete(surf.id).nil?
attic_or_fnd.attached_to_floor_idrefs << "#{surf_name}#{i + 1}"
end
if attic_or_fnd.respond_to?(:attached_to_slab_idrefs) && !attic_or_fnd.attached_to_slab_idrefs.nil? && !attic_or_fnd.attached_to_slab_idrefs.delete(surf.id).nil?
attic_or_fnd.attached_to_slab_idrefs << "#{surf_name}#{i + 1}"
end
if attic_or_fnd.respond_to?(:attached_to_foundation_wall_idrefs) && !attic_or_fnd.attached_to_foundation_wall_idrefs.nil? && !attic_or_fnd.attached_to_foundation_wall_idrefs.delete(surf.id).nil?
attic_or_fnd.attached_to_foundation_wall_idrefs << "#{surf_name}#{i + 1}"
end
indexes = {}
(hpxml_bldg.surfaces + hpxml_bldg.subsurfaces).each do |surf|
surf_name = surf.class.to_s.gsub('HPXML::', '')
indexes[surf_name] = 0 if indexes[surf_name].nil?
indexes[surf_name] += 1
(hpxml_bldg.attics + hpxml_bldg.foundations).each do |attic_or_fnd|
if attic_or_fnd.respond_to?(:attached_to_roof_idrefs) && !attic_or_fnd.attached_to_roof_idrefs.nil? && !attic_or_fnd.attached_to_roof_idrefs.delete(surf.id).nil?
attic_or_fnd.attached_to_roof_idrefs << "#{surf_name}#{indexes[surf_name]}"
end
(hpxml_bldg.windows + hpxml_bldg.doors).each do |subsurf|
if subsurf.respond_to?(:wall_idref) && (subsurf.wall_idref == surf.id)
subsurf.wall_idref = "#{surf_name}#{i + 1}"
end
if attic_or_fnd.respond_to?(:attached_to_wall_idrefs) && !attic_or_fnd.attached_to_wall_idrefs.nil? && !attic_or_fnd.attached_to_wall_idrefs.delete(surf.id).nil?
attic_or_fnd.attached_to_wall_idrefs << "#{surf_name}#{indexes[surf_name]}"
end
hpxml_bldg.skylights.each do |subsurf|
if subsurf.respond_to?(:roof_idref) && (subsurf.roof_idref == surf.id)
subsurf.roof_idref = "#{surf_name}#{i + 1}"
end
if attic_or_fnd.respond_to?(:attached_to_rim_joist_idrefs) && !attic_or_fnd.attached_to_rim_joist_idrefs.nil? && !attic_or_fnd.attached_to_rim_joist_idrefs.delete(surf.id).nil?
attic_or_fnd.attached_to_rim_joist_idrefs << "#{surf_name}#{indexes[surf_name]}"
end
if attic_or_fnd.respond_to?(:attached_to_floor_idrefs) && !attic_or_fnd.attached_to_floor_idrefs.nil? && !attic_or_fnd.attached_to_floor_idrefs.delete(surf.id).nil?
attic_or_fnd.attached_to_floor_idrefs << "#{surf_name}#{indexes[surf_name]}"
end
surf.id = "#{surf_name}#{i + 1}"
if surf.respond_to? :insulation_id
surf.insulation_id = "#{surf_name}#{i + 1}Insulation"
if attic_or_fnd.respond_to?(:attached_to_slab_idrefs) && !attic_or_fnd.attached_to_slab_idrefs.nil? && !attic_or_fnd.attached_to_slab_idrefs.delete(surf.id).nil?
attic_or_fnd.attached_to_slab_idrefs << "#{surf_name}#{indexes[surf_name]}"
end
if surf.respond_to? :perimeter_insulation_id
surf.perimeter_insulation_id = "#{surf_name}#{i + 1}PerimeterInsulation"
if attic_or_fnd.respond_to?(:attached_to_foundation_wall_idrefs) && !attic_or_fnd.attached_to_foundation_wall_idrefs.nil? && !attic_or_fnd.attached_to_foundation_wall_idrefs.delete(surf.id).nil?
attic_or_fnd.attached_to_foundation_wall_idrefs << "#{surf_name}#{indexes[surf_name]}"
end
end
(hpxml_bldg.windows + hpxml_bldg.doors).each do |subsurf|
if subsurf.respond_to?(:attached_to_wall_idref) && (subsurf.attached_to_wall_idref == surf.id)
subsurf.attached_to_wall_idref = "#{surf_name}#{indexes[surf_name]}"
end
if surf.respond_to? :under_slab_insulation_id
surf.under_slab_insulation_id = "#{surf_name}#{i + 1}UnderSlabInsulation"
end
hpxml_bldg.skylights.each do |subsurf|
if subsurf.respond_to?(:attached_to_roof_idref) && (subsurf.attached_to_roof_idref == surf.id)
subsurf.attached_to_roof_idref = "#{surf_name}#{indexes[surf_name]}"
end
end
surf.id = "#{surf_name}#{indexes[surf_name]}"
if surf.respond_to? :insulation_id
surf.insulation_id = "#{surf_name}#{indexes[surf_name]}Insulation"
end
if surf.respond_to? :perimeter_insulation_id
surf.perimeter_insulation_id = "#{surf_name}#{indexes[surf_name]}PerimeterInsulation"
end
if surf.respond_to? :under_slab_insulation_id
surf.under_slab_insulation_id = "#{surf_name}#{indexes[surf_name]}UnderSlabInsulation"
end
end
end
end
Expand Down
6 changes: 3 additions & 3 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>b0604dc5-b6a6-4e72-b423-b3c4e25ae1fc</version_id>
<version_modified>2024-05-07T13:37:00Z</version_modified>
<version_id>89391782-f408-4b0e-9801-b5f67d0f8241</version_id>
<version_modified>2024-05-15T20:26:57Z</version_modified>
<xml_checksum>2C38F48B</xml_checksum>
<class_name>BuildResidentialHPXML</class_name>
<display_name>HPXML Builder</display_name>
Expand Down Expand Up @@ -7342,7 +7342,7 @@
<filename>measure.rb</filename>
<filetype>rb</filetype>
<usage_type>script</usage_type>
<checksum>58EF2442</checksum>
<checksum>8BEED0CA</checksum>
</file>
<file>
<filename>geometry.rb</filename>
Expand Down
9 changes: 7 additions & 2 deletions Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ __New Features__
- Allows optional ground diffusivity input.
- Updates to using G-Functions from the [G-Function Library for Modeling Vertical Bore Ground Heat Exchanger](https://gdr.openei.org/submissions/1325).
- Updated heating/cooling performance curves to reflect newer equipment.
- Skylights with shafts or sun tunnels should include the `Skylight/AttachedToFloor` element.
- Allows optional `Ducts/DuctShape` and `Ducts/DuctFractionRectangular` inputs, which affect duct effective R-value used for modeling.
- Allows optional `HeatingAutosizingFactor`, `CoolingAutosizingFactor`, `BackupHeatingAutosizingFactor` inputs to scale HVAC capacities for autosized equipment.
- Allows optional `HeatingAutosizingLimit`, `CoolingAutosizingLimit`, `BackupHeatingAutosizingLimit` inputs to set maximum HVAC capacities ceiling for autosized equipment.
Expand All @@ -48,8 +49,12 @@ __New Features__
- Add soil and moisture type arguments (for determining ground conductivity and diffusivity) and optional geothermal loop arguments for ground source heat pumps.
- The "Geometry: Building Number of Units" input is now written to the HPXML `NumberofUnitsInBuilding` element.
- Adds a blower fan efficiency input for specifying fan power W/cfm at maximum speed.
- Manual J design load calculations:
- Allow additional outdoor design condition inputs: `DailyTemperatureRange` and `HumidityDifference`.
- HVAC Manual J design load calculations:
- **Breaking change**: Outputs for "Infiltration/Ventilation" category disaggregated into "Infiltration" and "Ventilation".
- **Breaking change**: Outputs for "Windows" category no longer includes AED excursion; now a separate "AED Excursion" category.
- Allows optional zone-level and space-level design load calculations using HPXML `Zones/Zone[ZoneType="conditioned"]/Spaces/Space` elements.
- Allows additional outdoor design condition inputs: `DailyTemperatureRange` and `HumidityDifference`.
- Adds a new detailed output file with block/space load details by surface, AED curves, etc.
- Miscellaneous improvements.
- Improves heating/cooling component loads; for timesteps where there is no heating/cooling load, assigns heat transfer to heating or cooling by comparing indoor temperature to the average of heating/cooling setpoints.
- Adds net energy and net electricity timeseries output columns even when there is no PV or generator.
Expand Down
51 changes: 43 additions & 8 deletions HPXMLtoOpenStudio/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,36 @@ Absolute/relative path for the output files directory.

<br/>

**Debug Mode?**
**Output Format**

If true: 1) Writes in.osm file, 2) Generates additional log output, and 3) Creates all EnergyPlus output files.
The file format of the HVAC design load details output.

- **Name:** ``debug``
- **Type:** ``Boolean``
- **Name:** ``output_format``
- **Type:** ``Choice``

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

- **Choices:** `csv`, `json`, `msgpack`

<br/>

**Annual Output File Name**

The name of the file w/ HVAC design loads and capacities. If not provided, defaults to 'results_annual.csv' (or 'results_annual.json' or 'results_annual.msgpack').

- **Name:** ``annual_output_file_name``
- **Type:** ``String``

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

<br/>

**Design Load Details Output File Name**

The name of the file w/ additional HVAC design load details. If not provided, defaults to 'results_design_load_details.csv' (or 'results_design_load_details.json' or 'results_design_load_details.msgpack').

- **Name:** ``design_load_details_output_file_name``
- **Type:** ``String``

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

Expand All @@ -55,6 +79,17 @@ If true, adds the calculation of heating/cooling component loads (not enabled by

<br/>

**BuildingID**

The ID of the HPXML Building. Only required if the HPXML has multiple Building elements and WholeSFAorMFBuildingSimulation is not true.

- **Name:** ``building_id``
- **Type:** ``String``

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

<br/>

**Skip Validation?**

If true, bypasses HPXML input validation for faster performance. WARNING: This should only be used if the supplied HPXML file has already been validated against the Schema & Schematron documents.
Expand All @@ -66,12 +101,12 @@ If true, bypasses HPXML input validation for faster performance. WARNING: This s

<br/>

**BuildingID**
**Debug Mode?**

The ID of the HPXML Building. Only required if the HPXML has multiple Building elements and WholeSFAorMFBuildingSimulation is not true.
If true: 1) Writes in.osm file, 2) Generates additional log output, and 3) Creates all EnergyPlus output files.

- **Name:** ``building_id``
- **Type:** ``String``
- **Name:** ``debug``
- **Type:** ``Boolean``

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

Expand Down