Skip to content

Starter Test Model Checklist

A reliable test model is small, deliberate, and contains elements that cover both passing and failing cases for every rule you want to test.

Use this checklist when building or reviewing a test model.


Minimum elements per rule

For each rule, the test model must contain:

  • [ ] At least one element that should pass — correct data, in scope
  • [ ] At least one element that should fail — missing or invalid data, in scope
  • [ ] At least one element that is out of scope — correct type or category exclusion

The out-of-scope element confirms the rule does not flag things it should not touch.


For parameter-based rules

  • [ ] An element with the parameter present and correctly filled
  • [ ] An element with the parameter present but empty (hasValue = false)
  • [ ] An element where the parameter key is missing entirely (not bound)
  • [ ] An element with a value outside the allowed list (if applicable)

For category-based rules

  • [ ] At least one element per category in the inclusion list
  • [ ] At least one element of a category not in the inclusion list — to confirm it is excluded
  • [ ] If using an exclusion list: at least one element of an excluded category

For two-step filters (instance via symbol)

  • [ ] At least two symbols of the target category (singleton issue prevention)
  • [ ] Instances linked to each symbol
  • [ ] At least one symbol with correct type data
  • [ ] At least one symbol with missing or invalid type data

Having only one symbol means the in check operates on a single ID — see Singleton vs Array Issues.


For shared parameter rules

  • [ ] An element where the shared parameter is bound and has a value
  • [ ] An element where the parameter is bound but empty
  • [ ] An element of a type where the parameter is not bound at all
  • [ ] Confirm the parameter GUID in the test data matches the GUID in the rule

For editable family rules

  • [ ] At least one loadable family (isEditable = true)
  • [ ] At least one system family or in-place family to confirm it is excluded

Getting real test data

The fastest way to get a representative dataset is to export it from the DAQS Assist plugin:

  1. Set ResultsOutput.Enabled: true in appsettings.json in the DAQS Assist directory
  2. Run an analysis in Revit
  3. Retrieve Assist_AllData.json from the configured output path

See Prerequisites for the full setup.


Final check before publishing

  • [ ] Rule returns zero errors on a fully compliant model
  • [ ] Rule returns errors for all known-bad elements
  • [ ] Error messages show the correct placeholder values
  • [ ] Rule has been tested with exactly one matching element (singleton check)