NREL/buildstockbatch

Validate that no op characteristics isn't attempted to be updated

rajeee opened this issue · 2 comments

rajeee commented

Is your feature request related to a problem? Please describe.

Recently, we uncovered an error where LARGEEE team was upgrading "HVAC Heating Type And Fuel" in lieu of "Heating Fuel" to upgrade from one heating fuel to another. However, HVAC Heating Type And Fuel is a no op (no operation) characteristics since it doesn't pass any arguments to measures.
so, the fuel wasn't getting updated. Heating Fuel should be used instead.

This request is for the yaml validator to warn/error-out when upgrading no op characteristics.

Describe the solution you'd like
Throw an error if upgrading no op characteristics.

Describe alternatives you've considered
A better long term solution for the current issue would be to refactor our TSV structures so that it leaves no room for conflicting information. Since Heating Type and Heating Fuel information is already contained in other TSV, in order to eliminate the possibility of conflicts, we can get rid of "Heating Type and Fuel" TSV altogether. Regardless, raising error/warnings about upgrading no ops characteristics can still be useful.

Another alternatives is to replace all no op characteristics with their wildcard equivalents, making use of the recent wildcard capability in buildstockbatch - that way, it won't be possible to attempt to upgrade no-ops characteristics.

Additional context
Add any other context or screenshots about the feature request here.

From @ekpresent : In validation possibly validate that the entire upgrade logic must change an argument. Throw an error if not changing anything.

If one option in an upgrade doesn't change an argument, then throw a warning.

Can BSB perform that kind of validation? It might need to exist in ResStock's ApplyUpgrade measure.