This is 2026.9 preview documentation. Coverage here is incremental: a page exists only where
2026.9 differs or is newly documented.
What stays the same
Checks, thresholds, plan caps, BCF export, and result history follow the current guides: Authoring still uses a scope and a check. In 2026.9 the editor shows those as short sentences. A rule can also include a related object.Project standards
2026.9 does not include Project standards. The Data Validation sidebar shows Run check and Checks only. You cannot create, import, or spawn checks from a project standard. Reuse across the workspace is planned later as a rollup from Checks into workspace standards. That flow is not available yet. Until it is, author and save checks.Default object scope
In the current product, a new check starts with a global filter that keeps connector BIM objects and drops proxy and geometry noise. In 2026.9, a new check starts with an empty global scope. The version already contains user-facing objects only, so that starting filter is not needed. Do not follow the current Default scope guidance on a 2026.9 version. Leave the global scope empty, then narrow with category, type, or parameter filters inWHERE when you need a tighter rule.
Unsaved drafts that still carry the old default are cleared when you reopen the editor. Saved
checks keep their stored rules. After save, you can edit name and description only.
Checks against related objects
In the current product, a rule looks at properties on one object. In 2026.9 you can also check that object against something it is related to, because those relationships are in the published version. Use Add related object on the rule. The editor adds a binding row. The name on the left (@host, @room, @connected) is how later conditions address that object. Pick a
relationship from the list the version actually carries. Friendly labels include Host
element, Sub-elements, Room, Bounded room, Assembly, and Connected
element.
Then choose a property on that related object from the path picker. Related paths show as
@host · Fire Rating in the sentence pills.
Add condition adds a scope filter above the check. It does not turn the existing check into a
filter.
Rules display as short sentences, for example category is Doors. Select a sentence to edit
it.
Add related object is disabled when the preview version has no relationship data. The tooltip
reads This model has no relationship data — re-publish with a current connector to use
related-object rules. Publish a new version after the project uses the 2026.9 data format.
Direction, all versus any, and narrowing
The arrow on the binding follows the relation forward (for example a door toward its host wall) or backward (a wall toward the elements hosted on it). Click the arrow to reverse it. all (default) means every related object must satisfy the check. any means one related object is enough. That setting applies to the check only. A scope filter on a related path still keeps a subject when at least one related object matches, regardless of all or any. Open where and select Narrow related objects to keep only some related objects, for example hosts whose category is Walls. Those filters run on the related object. They do not use@ prefixes.
When there is no related object
A subject with no related object fails a check that reads that binding. If a door with no host should be not applicable instead of a fail, add a scope condition that the related path exists (for example@host is present) before the check.
Examples you can author:
- A door’s fire rating must match the wall that hosts it
- If the host wall is fire-rated, the door must be rated. Unrated walls are not applicable, not a fail (scope on the host rating, then check the door)
- Every door must be hosted on a wall
- Every wall that bounds a room carries a rating (all), or at least one of them does (any)
- A door can be checked against a room reached through the host wall: add a second related
object, set of to
@hostinstead of this element, and pick Bounded room or Room
@name, or while a later binding
chains from it. Update those references first.
Map labels before you compare
When a check compares two properties (Equals property), 2026.9 can map each side’s raw labels onto shared values before it compares them. This is how60 MIN and 1 HR become the
same rating, and how a 2 HR wall can require a door of at least 90 MIN.
Select Equals property, pick the other path, then open the comparison control beside it. The
control shows = until you add a mapping or change the comparison.
Set Compare to = equals, ≥ at least, or ≤ at most. Under This value maps and
Other value maps, select Add mapping, pick a raw value from the list, and set what it
maps to. Unmapped values stay as they are.
Map both sides to the same numbers when the labels should count as equal. Map the other side to a
required minimum and use ≥ at least when one side must be stricter than the other.
The same mapping works when the other path is on a related object, such as a host wall.
Match a property wherever it sits
A Fire Rating parameter is not always on the same path. Click the path-matching control next to the path to cycle modes:- Exact (
=) — the full path from the picker - Suffix (
*.x) — every property whose path ends with that segment, for example Fire Rating. Every matching value must pass - Regex (
.*) — a regular expression over the full path
Property paths
Always pick property paths from the path picker after a preview model loads. Paths in the current Checks examples, such asparameters.Width.value and baseline.length, come from the previous data format and may not
exist on a 2026.9 version.
Typical Revit parameters now sit under properties.Parameters (for example type Width under
properties.Parameters.Type Parameters.Dimensions.Width). Use the picker for the paths that
exist on your model.
Versions you can run against
Data Validation preview and saved-check runs need a version in the 2026.9 data format. If preview does not load, publish a new version after the project has moved to 2026.9. See Speckle’s data model is changing.FAQ
Where did Project standards go?
Where did Project standards go?
They are not in 2026.9. Author and save checks instead. A later step is a rollup from Checks
into workspace standards. That is not available yet. If you already built Project standards,
email [email protected]. See Project
standards.
Why does my existing check show 0 objects after the project moves to 2026.9?
Why does my existing check show 0 objects after the project moves to 2026.9?
The saved rule still uses the previous-format object filter. That filter is not shown in the
2026.9 check editor, and saved checks cannot change rules in place. Create a new check, run
preview, then save. See Default object scope.
Should I still drop DataObject to widen scope?
Should I still drop DataObject to widen scope?
No. That step is for the current product. In 2026.9 the object set is already the user-facing
elements. An empty global scope is the correct starting point. Narrow with category, type, or
parameter filters in
WHERE when you need a tighter rule.What is the difference between all and any?
What is the difference between all and any?
all requires every related object to satisfy the check. any requires one. Scope filters
on related paths still keep a subject when at least one related object matches. See Direction,
all versus any, and narrowing.
How do I check a door against the wall that hosts it?
How do I check a door against the wall that hosts it?
On the door rule, select Add related object, choose Host element, then compare the
door’s fire rating to the host’s fire rating with Equals property. Map labels if one side
uses minutes and the other uses hours. See Map labels before you
compare.
How do I treat 60 MIN and 1 HR as the same rating?
How do I treat 60 MIN and 1 HR as the same rating?
On an Equals property comparison, open the comparison control beside the other path. Under
This value maps and Other value maps, add a mapping so both labels map to the same
number, such as
60. Unmapped values stay as they are. See Map labels before you
compare.How do I match Fire Rating on every path it appears?
How do I match Fire Rating on every path it appears?
Click the path-matching control until it shows suffix (
*.x), and set the path to Fire
Rating. Every matching value must pass. Click again for regex over the full path. Path
matching is not available on Equals property. See Match a property wherever it
sits.Do I rewrite every property path in every check?
Do I rewrite every property path in every check?
Only when a path no longer exists on the new version. Load preview, pick the replacement from
the path picker, and save a new check. Saved checks cannot change rules in place.