Simple Filters
This section introduces structural filtering — selecting the right objects before any validation happens.
Every DAQS rule starts with a filter. The filter defines the scope: which elements does this rule apply to? Getting the scope right is the first skill to master.
The filters in this section are intentionally simple: direct conditions, no variables where avoidable, one concept at a time. They are easy to read, easy to debug — and easy to get wrong if the underlying model structure is misunderstood.
Most common mistake here: a rule that misses elements. In almost all cases, the filter is too strict or the data lives on a different object type than expected.
What you will learn
- How to select
FamilySymbolobjects and expose their data for validation - How to narrow the scope to a specific Revit category
- How to combine multiple categories using
orand theinoperator - How to build inclusion lists for scalable category filtering
- How to build exclusion lists and when that is the right approach
Pages in this section
Filter by Family Symbol
How to select FamilySymbol objects and add domain data — like Assembly Code — to the filter output for validation.
Filter by Category
How to restrict a filter to a specific Revit category using category.label. Explains why label must always be used instead of name.
Filter by Multiple Categories (OR)
How to combine multiple category conditions with or, and why parentheses are required to get the logic right.
Filter by Category — Inclusion List
How to define a list of allowed categories and use the in operator. The preferred approach when a rule applies to more than one or two categories.
Filter by Category — Exclusion List
How to exclude specific categories using $not(... in ...). Explains when exclusion is the right choice and when it is dangerous.
Prerequisites
You should already understand:
- The difference between
FamilySymbolandFamilyInstance— see Revit Object Hierarchy - Why
category.labelis used instead ofcategory.name— see category.name vs category.label - The separation between filters and validators — see Filtering vs Validation