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

Allow simulating whole SFA/MF buildings #1456

Merged
merged 271 commits into from
Nov 1, 2023

Conversation

shorowit
Copy link
Contributor

@shorowit shorowit commented Aug 1, 2023

Pull Request Description

Closes #1376. Closes #1450 and closes #1492.

If an HPXML file is submitted where there are multiple Building elements, each representing an individual dwelling unit, you can now tell OS-HPXML that you want to run ALL units, which creates a single combined OS/E+ model. The ability to just run one of the Building IDs is also still available.

Also allows dwelling unit multipliers via BuildingConstruction/NumberofUnits (as described here) for runtime performance reasons. When provided, simulation outputs will reflect this multiplier. When modeling individual dwelling units, there isn't that much of a benefit since all the OS-HPXML outputs could simply be multiplied by this value by the end user/software during a post-processing. But when modeling whole SFA/MF buildings, different units in the building may have different multipliers, so it cannot be performed during a post-processing step.

Breaking change: Multiple elements move from SoftwareInfo/extension to BuildingDetails/BuildingSummary/extension to allow variation across MF dwelling units:
- HVACSizingControl
- ShadingControl
- SchedulesFilePath
- NaturalVentilationAvailabilityDaysperWeek

Finally, the HPXML class has been updated to support multiple buildings. Previously:

hpxml = HPXML.new(...)
hpxml.windows.each do |window|
   ...
end

Now it will look like:

hpxml = HPXML.new(...)
hpxml_bldg = hpxml.buildings[0]
hpxml_bldg.windows.each do |window|
   ...
end

TODO:

  • Update HPXML class to support multiple Buildings. Follow this example.
  • Update code so that in.xml echoes the entire HPXML.
  • Update ReportSimOutput measure where code uses the HPXML object
  • Add simulation tests for NumberofUnits=X (compare results (annual and timeseries) to NumberofUnits=1)
  • Provide a warning when unit multipliers used
  • Add error-checking if OSM unique objects differ across unit models
  • Improve docs
  • Address FIXMEs
  • Add base-multiple-units.xml sample file

Checklist

PR Author: Check these when they're done. Not all may apply. strikethrough and check any that do not apply.

PR Reviewer: Verify each has been completed.

  • Schematron validator (EPvalidator.xml) has been updated
  • Sample files have been added/updated (via tasks.rb)
  • Tests have been added/updated (e.g., HPXMLtoOpenStudio/tests and/or workflow/tests/hpxml_translator_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

shorowit and others added 14 commits July 27, 2023 16:03
…HPXML into whole_sfa_mf_models_unit_multiplier

# Conflicts:
#	HPXMLtoOpenStudio/measure.rb
#	HPXMLtoOpenStudio/measure.xml
#	HPXMLtoOpenStudio/resources/battery.rb
#	HPXMLtoOpenStudio/resources/geometry.rb
#	HPXMLtoOpenStudio/resources/hotwater_appliances.rb
#	HPXMLtoOpenStudio/resources/hvac.rb
#	HPXMLtoOpenStudio/resources/waterheater.rb
#	ReportSimulationOutput/measure.rb
#	ReportSimulationOutput/measure.xml
@shorowit shorowit self-assigned this Aug 1, 2023
shorowit and others added 17 commits October 23, 2023 15:36
…o whole_sfa_mf_models_unit_multiplier

# Conflicts:
#	HPXMLtoOpenStudio/measure.xml
#	HPXMLtoOpenStudio/resources/hotwater_appliances.rb
#	HPXMLtoOpenStudio/resources/hpxml_defaults.rb
#	HPXMLtoOpenStudio/tests/test_defaults.rb
#	tasks.rb
#	workflow/tests/base_results/results.csv
#	workflow/tests/base_results/results_bills.csv
…o whole_sfa_mf_models_unit_multiplier

# Conflicts:
#	HPXMLtoOpenStudio/measure.xml
…dings.xml to base-multiple-sfd-buildings.xml for clarity. Fix CI tests.
@shorowit shorowit marked this pull request as ready for review October 31, 2023 23:18
@shorowit shorowit merged commit 4d63456 into master Nov 1, 2023
@shorowit shorowit deleted the whole_sfa_mf_models_unit_multiplier branch November 1, 2023 16:16
shorowit added a commit that referenced this pull request Nov 3, 2023
… Adds error-checking to prevent this going forward. Some other minor misc cleanup.
This was referenced Nov 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
2 participants