Skip to main content
Filters let you focus on specific parts of your data. This page covers filter levels, operators, and property behaviour. Chart and table widgets drive both page-level filters and optional widget-level filters. In this section:

Page-level filters

When you apply a filter from a widget (for example by clicking a value in a chart), it becomes a page-level filter that affects all widgets on the dashboard.
  • Multiple filters can be active at once
  • Active filters appear at the top of the dashboard as chips; click the X on a chip to remove it
  • Individual widgets can opt out of page-level filters in their settings

Widget-level filters

Many widgets have local filters that affect only that widget. Use them to focus a single widget on a subset of data without changing the rest of the dashboard.

Filter levels

Page-level (data-source-level) filters affect what data is used across the dashboard. They apply to all widgets unless a widget opts out. Use page-level filters when you want the whole dashboard to focus on the same subset (e.g. one category, one floor). Widget-level filters affect only the displayed results in that widget. They do not change the data sent to other widgets or the model viewer. Use widget-level filters when one chart or table should show a different slice of the same data.

How page-level filters interact

Clicking a value in a chart or table adds a page-level filter (shown as a chip at the top of the dashboard). How filters combine:
  • Within one filter (one chip): If you select multiple values for the same property (e.g. Category = Walls and Floors), they combine as OR—objects matching any of those values are included.
  • Across filters (multiple chips): Each chip is a separate filter (e.g. one for Category, one for Level). Multiple chips combine as AND—only objects that match every active filter are included.
Example: a chip “Category: Walls, Floors” and a chip “Level: 01” together show only elements that are (Walls or Floors) and on Level 01. Widget-level filters apply on top of page-level filters for that widget only.
Use page filters when you want to focus the entire dashboard on specific data. Use widget filters when you want one widget to show different data than the rest of the dashboard.
Filters are part of the dashboard state. When you save or share a dashboard, the active filters are saved with it.
The widget may be set to opt out of page-level filters. Check the widget settings for “Apply page filters.”
Yes. The filter applies only to objects that have that property; objects without it are excluded.
Yes, but only via the filter UI, not by clicking a chart. Use Does not contain, Not equal to, or Not in list in a widget’s filter settings to exclude values (e.g. “Category Not equal to Walls”). Chart-triggered filters (clicking a value in a chart to add a chip) are always inclusive—they restrict to the clicked value(s). You cannot click a chart slice to exclude it; use the filter UI for “show everything except X.”
No. Remove each filter chip with the X on the chip. There is no “clear all” action for page-level filters in the current UI.

Operators and data types

The operators available depend on the property’s data type. Use the filter UI on a widget to choose a property and operator.

Text operators

OperatorDescription
ContainsValue contains the given text
Does not containValue does not contain the text
Matches patternValue matches a pattern (see below)
Begins withValue starts with the given text
Ends withValue ends with the given text
Equal toExact match
Not equal toExclude exact matches

Numeric operators

OperatorDescription
Equal toExact match
Not equal toExclude exact matches
Greater thanValue above the threshold
Less thanValue below the threshold
In rangeValue between two numbers

List operators

OperatorDescription
In listValue matches any in a comma-separated list
Not in listValue does not match any in the list

Special operators

OperatorDescription
ExistsThe property is present on the object
Has valueThe property is not empty
Is true / Is falseFor boolean properties

Matches pattern

Matches pattern (sometimes shown as “Is like”) supports two modes: wildcard matching and regex matching.
Wildcard mode (default)
Use SQL-style wildcards for simple pattern matching:
  • % — matches any sequence of characters (including none)
  • _ — matches a single character (when supported)
Examples:
  • door% — matches “door_01”, “door_a”, “doorway”
  • %window% — matches any value containing “window”
  • Wall% — matches values that start with “Wall”
Regex mode
Wrap your pattern in forward slashes to use full regular expression matching:
  • /pattern/ — treats the content between slashes as a regular expression
Examples:
  • /^D\d{3}$/ — matches “D001”, “D123” (exactly D followed by three digits)
  • /^(Wall|Door)/ — matches values starting with “Wall” or “Door”
  • /\d{4}-\d{2}-\d{2}/ — matches date format “YYYY-MM-DD”
Matching is case-insensitive in both modes. Use pattern matching when you need to match a family of values (e.g. all doors, all elements on a level) without listing each one.
To use regex mode, the pattern value must start and end with /. Without the slashes, the value is treated as a wildcard pattern with % and _ placeholders.

Operator availability by data type

  • Text: Contains, Does not contain, Matches pattern, Begins with, Ends with, Equal to, Not equal to
  • Number: Equal to, Not equal to, Greater than, Less than, In range
  • List: In list, Not in list
  • Boolean: Is true, Is false, Equal to
  • Any: Exists, Has value
The filter UI may restrict operators based on the selected property so you only see options that apply.

Properties and the data model

Nested properties: You can filter on nested or computed fields when the widget exposes them (e.g. a path like element.material.name). Select the property from the widget’s filter dropdown; the exact path depends on how the model and widget expose properties. If a property does not exist on some objects, those objects are excluded when the filter is applied. Type coercion: Values are compared using the property type. If a number is stored as a string, the filter may treat it as text (e.g. “Contains”, “Equal to” for the string). For numeric comparisons (Greater than, Less than, Range), the value is interpreted as a number when possible. Boolean properties use Is true / Is false. List-based filters: “In list” and “Not in list” expect comma-separated values. List filters apply to the current property only; they do not filter by multiple properties in one rule. Add multiple rules if you need to combine conditions.
When filtering becomes rules: If you need reusable rules, pass/fail checks, or rulesets (e.g. “all doors must have a fire rating”), use the Property Checker or Model Validation widgets and define rules in the widget or in a ruleset. For rule syntax, rulesets, and automated validation, see Data Validation.