Skip to content

[{Object}, Reference] in SWH #349

Closed
Closed
@KarenWGard

Description

@KarenWGard

Allowing both an ServiceWaterHeatingUse and References in the BuildingSegment.service_water_heating_uses and Space.service_water_heating_uses adds a layer of complexity without signficiant benefit.

We would like to suggest some limitations to the [{Object}, Reference] approach with regards to service water heating uses

First, some background

In order to evaluate many of the rules, we need to evaluate the amount of energy required to heat each ServiceWaterHeatingUse. In order to do this calculation there are some conventions that have been established regarding the applicability and meaning of the service water heating uses when those service water heating uses are assigned at the building segment level. These convetions for ServiceWaterHeatingUses assigned at the Building Segment level are:

  1. A ServiceWaterHeatingUse that has one of the following unit types: [POWER_PER_PERSON, POWER_PER_AREA, VOLUME_PER_PERSON, VOLUME PER AREA] AND has not been explicitly referenced by any spaces is assumed to apply to each space in the building segment.

  2. A ServiceWaterHeatingUse that is referenced by one or more spaces will be applied only to those spaces.

  3. A ServiceWaterHeatingUse with units POWER, VOLUME, or OTHER will be applied only once to the entire building segment.

This function (get_energy_required_to_heat_swh_use) is used by 3 other functions, is directly used by one rule and is either directly or indirectly used in all section 11 rules.

Under the old structure, the function only needs a ServiceWaterHeatingUse and an RMD as inputs in order to complete the calculation. All of the work of figuring out which spaces to apply the ServiceWaterHeatingUse is done in a single function.

With the current [{Object}, Reference] structure, it is impossible for get_energy_required_to_heat_swh_use to know which building segment or spaces that reference the ServiceWaterHeatingUse are intended. The only way to remedy this without modifying the schema is to externalize and duplicate a lot of the work that is currently cleanly encapsulated in get_energy_required_to_heat_swh_use. This is an achievable development task, but it leaves a lot of room for future errors and misinterpretation both on the development side and from UI developper and end-user perspective.

We suggest the following changes:

  1. BuildingSegment.service_water_heating_uses - allow only ServiceWaterHeatingUse, and not References.
  2. Update the description for BuildingSegment.service_water_heating_uses to include the following text from Test swap to pipenv #1, Update schema #2, & Thermal blocks is missing a name/ID #3, above.
  3. Space.service_water_heating_uses - allow [{ServiceWaterHeatingUse}, Reference], but with the following restrictions
  • References must refer to a ServiceWaterHeatingUse at the BuildingSegment level and that BuildingSegment must be the BuildingSegment to which this space belongs
  • ServiceWaterHeatingUses stored at the space level may only be used for this space and may not be referenced by other spaces.

These changes would vastly improve quality, efficiency and accuracy.

Thanks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    nextone of the next items to work on

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions