Skip to content

Standard229

Weili Xu edited this page May 31, 2024 · 1 revision

About ASHRAE 229P

ASHRAE Standard 229P is a proposed standard entitled, "Protocols for Evaluating Ruleset Implementation in Building Performance Modeling Software". To learn more about the title/scope/purpose and status of the proposed standard development visit the standards project committee site at ASHRAE SPC 229.

Introduction

The Ruleset Checking Tool (RCT) is a Python package providing a command line tool for evaluating whether the Building Energy Models (BEM) meet the requirements of a ruleset. The current available ruleset includes ANSI/ASHRAE/IES Standard 90.1-2019 Appendix G (ashrae9012019). The tool accepts Ruleset Project Description (RPD) files as inputs and generates output reports describing the RPD evaluation.

ASHRAE Standard 229P Workflows

The RCT can be used for two different workflows within ASHRAE Standard 229P. The first workflow is the Project Testing Workflow. This workflow is used to evaluate RPDs for a design project to determine whether a ruleset is applied correctly in a building energy model. The second workflow is the Software Testing Workflow. This workflow consists of validation and verification software tests that ensure an RCT correctly evaluates the ruleset.

Project Testing Workflow

A project RPD is evaluated by running the evaluate command in the RCT. RPD file paths are provided as the input arguments to the evaluate command. The output of this command is a JSON report defining the outcome of the rule evaluation.

rct229 evaluate -f user_rmr.json -f baseline_rmr.json -f proposed_rmr.json -rs ashrae9012019

RPD Schema

The RCT data model used by the RCT is based on the RPD schema. All RPDs must comply with the version of the Ruleset evaluation schema (RES) corresponding to the RCT. The RES files used by the RCT are located within the rct229/schema directory.

Rule Definition Strategy

The definition of each of the individual rules contained with the RCT is documented in Rule Definition Strategy (RDS) documents. The purpose of the RDS is to act as a bridge between the narrative form of the ruleset document and the logical form of a programming language, allowing non-programmers to evaluate how the rules are implemented in the Python programming language. The RDS documents describe the specific interpretation of a rule coded into the RCT. In addition to the description of each rule, the RDS describes how data from ruleset tables are handled and defines frequently used functions.

Rule Definition

The core functionality of the RCT is the evaluation of logic defining each rule within a ruleset. The rules are defined within the RCT by a Rule Definition. The Rule Definition is a Python class that contains the logic necessary to evaluate the rule within the context of the RES. The Rule Definition files are in the rct229/rulesets directory.

Software Testing Workflow

The RCT validation and verification software test suite uses the test command. This command composes a set of RPDs for each of the Rule Tests and then evaluates each RPD set for the corresponding Rule Definition using the same rule engine as the Project Testing Workflow. A report is provided that details any Rule Tests that provided unexpected results.

Rule Tests

The test cases for the Software Testing Workflow are defined in the Rule Test JSON files. These files are in the rct229/ruletest_engine/ruletest_jsons directory. The Rule Tests are contained within JSON files that define the related Rule Definition, the RPD transformation to apply, and the expected outcome of the test evaluation. The JSON files can be generated using an Excel spreadsheet and Python scripts. This process is described in the Rule Test JSON Generation Guide.