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

Whole building Common Spaces #1850

Draft
wants to merge 5 commits into
base: master
Choose a base branch
from
Draft

Conversation

yzhou601
Copy link
Collaborator

@yzhou601 yzhou601 commented Oct 4, 2024

Pull Request Description

  • Allow specifying unconditioned common spaces in a multi-family building as separate Building elements.
  • Allow modeling interzonal surface heat transfer between conditioned and unconditioned spaces using sameas attribute.

Checklist

Not all may apply:

  • Schematron validator (EPvalidator.xml) has been updated
  • Sample files have been added/updated (openstudio tasks.rb update_hpxmls)
  • Tests have been added/updated (e.g., HPXMLtoOpenStudio/tests/test*.rb and/or workflow/tests/test*.rb)
  • Documentation has been updated
  • Changelog has been updated
  • openstudio tasks.rb update_measures has been run
  • No unexpected changes to simulation results of sample files

@yzhou601 yzhou601 self-assigned this Oct 4, 2024
@@ -779,21 +779,38 @@ def self.merge_unit_models(model, hpxml_osm_map)
end
end

hpxml_osm_map.values.each_with_index do |unit_model, unit_number|
unit_surface_to_obj_index_map = {} # map of unit model surface handle to whole building model object index
Copy link
Collaborator Author

@yzhou601 yzhou601 Oct 4, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@shorowit Sadly that there's not a better solution to keep the surface-to-surface mapping information while knowing the handles after merging unit models (and I cannot do it in front, by assigning a surface in another model space as adjacent surface). The only solution I can think of here is to use the indexes after calling model.addObjects. OS source codes specifically call out that the order will be kept, so it's fine for now, but we need to be careful if this is called more than once in the future.
Tried a hundred times and this one seems to be working, still pretty promising!

Copy link
Contributor

@shorowit shorowit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great to see some progress! A couple initial questions/thoughts.

HPXMLtoOpenStudio/resources/geometry.rb Outdated Show resolved Hide resolved
Comment on lines +836 to +837
# Need to set the same construction to make OS working
adjacent_surface.setConstruction(surface.construction.get)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I forget, did we discuss a plan for ensuring constructions are identical for the two walls that point to each other?

For shared boilers, I was proposing that one would describe the shared boiler once (in the first dwelling unit attached to it, e.g. here), and then every other dwelling unit would have a boiler with the sameas attribute where no additional details would be provided (e.g., here) so as to prevent inconsistency. If we went that path, ideally we could enforce it via the Schematron validation. Is that the path you're going to go? Or did you have another idea in mind?

Copy link
Collaborator Author

@yzhou601 yzhou601 Oct 4, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes that's what I think, add more error-checking in EPvalidator to make sure there's no inconsistent construction, did you disallow the boiler inputs when using sameas? I can do the same restriction or I can check the constructions are exactly the same.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don’t remember if I got that far with the shared boiler implementation, but I would favor disallowing the inputs.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Checked the links, it seems that you disallowed additional inputs, I'm going to do the same.

@yzhou601
Copy link
Collaborator Author

yzhou601 commented Oct 4, 2024

The approach seems working! 🎉 Going to make this PR more concrete next.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Triage
Development

Successfully merging this pull request may close these issues.

2 participants