Skip to content

Conversation

@JacksonJ-KC
Copy link
Collaborator

@JacksonJ-KC JacksonJ-KC commented Oct 8, 2025

This new rule is for both 2019 and 2022

**Schema Version** 0.1.7
**Primary Rule:** True
**Rule ID:** 12-5
**Rule Description:** These loads shall always be included in simulations of the building. These loads shall be included when calculating the proposed building performance and the baseline building performance as required by Section G1.2.1.
Copy link
Collaborator

@claperle claperle Oct 24, 2025

Choose a reason for hiding this comment

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

Recommend replacing "these" with "receptacle" (at least in the first word) just so there is no confusion about what you're referring to in the rule description.

Another question, do we mean receptacle and process loads? I recommend that we be specific about what we are referring to in this rule.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Can you confirm that there's another rule that conducts the same check on the baseline? I recall a check that checks whether these are modeled identically across the baseline and proposed perhaps it's accomplished through that RDS.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Think we should also check baseline in this rule? I don't think this would be covered by B=P rule

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

The rule description does also mention the baseline so it makes sense to combine I think

Copy link
Collaborator

Choose a reason for hiding this comment

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

@JacksonJ-KC I think it is covered by 12-1, https://github.com/pnnl/ruleset-checking-tool/blob/develop/docs/section12/Rule12-1.md

Logic, does proposed have receptacles? Flags if there is a problem.
12-1 checks that baseline and proposed match so the check on the proposed would inherently be covered.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Ok so the power check is covered but not the end-use check for the baseline.

Copy link
Collaborator

Choose a reason for hiding this comment

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

That's true.

- End iteration early if a matching end use result is found: `if has_annual_energy_use: break`

- **Rule Assertion:**
- Case 1: If the proposed model has miscellaneous equipment loads and end use results: PASS `if loads_included and has_annual_energy_use:` PASS`
Copy link
Collaborator

Choose a reason for hiding this comment

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

So there's a pretty low bar to meeting this check in that as long as there is a single modeled miscellaneous load the project passes? I can't really think of an alternative because sometimes spaces don't have miscellaneous loads so we can't really evaluate this on a space method either.


**Notes:**
1. Agree on the MiscellaneousEquipment types that are included? MISC_EQUIPMENT, INDUSTRIAL_PROCESS, OFFICE_EQUIPMENT, COMPUTER_SERVERS, or COMMERCIAL_COOKING

Copy link
Collaborator

@claperle claperle Oct 27, 2025

Choose a reason for hiding this comment

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

I think this depends what we're targeting with this RDS. Are we targeting both receptacle and process loads? I assume we are. If that is the case, I think what you have included makes sense.

I was tempted to suggest we include refrigeration equipment but that is covered by another section so I think makes sense to exclude it here.


- **Rule Assertion:**
- Case 1: If the proposed model has miscellaneous equipment loads and end use results: PASS `if loads_included and has_annual_energy_use:` PASS`
- Case 2: Else: FAIL and let the user know which part(s) caused the failure: `else: outcome = FAIL and raise_message(f"{'No miscellaneous equipment loads are included. [power: ' + f'{misc_equipment_p.power}, sensible_fraction: {misc_equipment_p.sensible_fraction}, latent_fraction: {misc_equipment_p.latent_fraction}, schedule_eflh: {schedule_eflh}] ' if not loads_included else ''}{'No annual end use energy is reported for the relevant equipment types.' if not has_annual_energy_use else ''}")"`
Copy link
Collaborator

Choose a reason for hiding this comment

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

Recommend being consistent in the nomenclature. If this refers to receptacle and process equipment I recommend that we say this instead of miscellaneous equipment loads.

Copy link
Collaborator

Choose a reason for hiding this comment

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

I have a confusion on the message. For example, in this part (if not loads_included else ''), loads_included is a Boolean variable. So, did you mean that if loads_included is False print out False in the message?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

The rule can fail if either no loads are included, or no end-uses are included. The message is intended to tell the use which part(s) caused the failure.

when loads_included is False: 'No miscellaneous equipment loads are included. [power: misc_equipment_p.power, sensible_fraction: misc_equipment_p.sensible_fraction, latent_fraction: misc_equipment_p.latent_fraction, schedule_eflh: schedule_eflh]'

when has_annual_energy_use is False: 'No annual end use energy is reported for the relevant equipment types.'

@weilixu weilixu mentioned this pull request Nov 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants