Conditions
Conditions give a field a different value when a rule matches the current calculation context. They do not create another resource or replace the field definition. The same rule builder is used for property conditions, Layers, and View filters, but these uses have different effects:
| Where you use a rule | Result |
|---|---|
| A condition under a property | Supplies override values for that property in the selected snapshot. |
| A Layer | Establishes a shared working context; it can also restrict visible resources. |
| A View filter | Restricts the calculated result without changing stored defaults. |
This manual uses the fictional Product Atlas training fixture. Products contains Lumen devices (Aster Mini and Aster Pro) and Orbit devices (Orbit Dock and Orbit Hub). Markets contains Northland and Westhaven under Europe, and Eastreach under America. Features contains Wireless sync and Compact chassis under Essentials, and Offline mode and Extended battery under Advanced. Product fields include List price, Launch tags, Launch ready, Available markets, and Included features.
In the fixture's Scale snapshot, Aster Pro's default price is 249. Northland launch price sets 229, and its Launch campaign child sets 219 when Launch tags contains Launch. Westhaven list price sets 259. The following authoring exercises add further example conditions; they are not instructions to recreate those existing rows.
Before You Start
- You need access to the project or the selected Layer to inspect its permitted data.
- Global data authoring requires Project Editor or higher. A Layer Editor can author allowed Layer-scoped conditions, not arbitrary global changes.
- Select an original, editable resource. Linked occurrences and shared read-only resources cannot be edited in Details; use Open original where available.
- Select the intended snapshot before adding a condition. Conditions belong to the field's value row in that snapshot, not to every snapshot of the resource.
- Check the header Layer selector. All data means global authoring. With a Layer active, edits include that Layer's rule.
See Snapshots for date validity and Pivot Tables for inspecting effective results.
Defaults And Effective Values
The Default input in a property card shows authored default data, not a universal preview of every context. Calculated Views evaluate defaults and matching conditions together. With a Layer active, that input is contextual: saving it creates or updates a Layer-conditioned override rather than modifying the global default.
Conditions are evaluated in their stored order. For scalar fields, later matching conditions override earlier matching values. A child condition additionally requires its parent rule and all ancestor rules to match. Disabling a condition in stored data excludes it from evaluation; the current condition-row menu does not provide a general enable/disable control.
Changing a rule and changing its override are separate actions. Rule dialogs submit the rule when you choose Add condition or Save changes. Ordinary override inputs are drafts until the Details pane's Save action. Formatted-text editing has its own immediate Save behavior.
Add A Scalar Override
- Open Product Atlas, choose All data, and select Aster Mini under Lumen devices.
- In Details, choose Scale as the snapshot that should own the override.
- Expand the List price property card and choose Add condition.
- In the rule builder, choose Class, select Markets, choose any, and select Northland with the scope for that Value only.
- Submit Add condition.
- Enter
139in the new condition's override input. Leave the global Default at149. - Use the Details pane's Save action and wait for the write to complete.
- Open a Table with Aster Mini as a row, Northland and Westhaven as columns, and List price as Cell content. Use an as-of date in Scale, such as October 1, 2026.
Expected result: Aster Mini / Northland displays 139 and Aster Mini / Westhaven displays 149, provided no later matching condition changes the result. The global default remains 149. The rule is effective only when Scale is effective at the View's as-of date.
This is a contextual value, not a price formula or a new currency-conversion rule.
Build Rules
Use an AND group when every child rule must match. Use OR when at least one child must match. Groups can be nested, for example:
Markets any Northland AND (Launch tags contains any Launch OR Launch ready is true)
Complete every required operand before submitting. The builder offers operators appropriate to the selected field's datatype and multiplicity.
| Field kind | Available comparisons |
|---|---|
| Single-value text-like fields | Equals, does not equal, contains, does not contain, starts with, ends with, is empty, is set. |
| Number or Currency | Equality, greater/less than, inclusive thresholds, between, is empty, is set. |
| Date, Time, Timestamp | Equality, before/after, inclusive boundaries, between, is empty, is set. |
| Boolean | Is true, is false, is empty, is set. |
| Multi-value fields and references | Contains any/all/none, is exactly, is empty, is set. |
| Geolocation | Is set or is empty only. |
| Class | Any, all, or none against a Value/Value-group selector. |
Formatted text is compared as visible plain text, not its formatting markup. User and File comparisons use the selected records' identities, not merely a typed display name or filename.
Class Rules And Selector Scopes
A Class rule selects a Value or Value group below the Class; the Class itself is not a valid target. Scope choices mean:
| Scope | Selected set |
|---|---|
| Self | The selected resource only. |
| Children | Its immediate children only. |
| Self or children | The resource and immediate children. |
| Descendants | Every resource below it, at any depth. |
| Self or descendants | The resource and its entire descendant branch. |
Selectors follow current eligible resource membership. Adding or inactivating a Value can therefore change future evaluations without editing the rule.
Any requires at least one matching Class occurrence in the calculation context. All requires at least one occurrence and requires every occurrence to match. None requires no matching occurrence. Structural Value-group ancestors are not counted as separate Class occurrences; the deepest Value in each contiguous Class occurrence is used.
Property Rules, Within, And Comparisons
Property rules select a project-wide property family. A family can occur on several resources. Renaming it does not disconnect the rule.
By default, the rule searches the current calculation path/context. Use Limit where the property is found to add Within, select a resource, and choose its scope. For example, limit Launch ready to Aster Mini / Self when a calculation contains several products with that family.
For scalar families, any means at least one participating value must satisfy the comparison. All requires a nonempty participating set and every value to satisfy it. The quantifier control appears for applicable multi-resource Within scopes or an existing all rule; it is not a general control for set-valued fields.
Use Compare with another property instead of a fixed value when appropriate. The other family must have a compatible complete signature, including datatype, multiplicity, and reference configuration. Cyclic property dependencies are rejected. A comparison is not an unrestricted formula editor.
Add A Nested Override
- On Aster Mini's new Northland price condition from the exercise above, open Condition options.
- Choose Add sub-condition.
- Set
Launch tags contains any Launchand submit Add sub-condition. - Enter
129for the child override and save the Details drafts. - Inspect a Table intersection whose context includes Aster Mini and Northland.
Expected result: the child applies only when Northland matches and Aster Mini's Launch tags contains Launch, producing 129. Without that tag, the Northland result retains the parent's 139 unless another matching condition wins. Westhaven retains 149. A child cannot bypass an unmatched parent. The fixture's existing Aster Pro Launch campaign uses the same parent-plus-tag pattern.
To change a rule, choose Edit condition and submit Save changes. To change precedence, use the condition drag handles in All data. Moving a condition into a parent changes its required context as well as its position. Reordering is disabled while a Layer is active.
Reference Overrides: Replace And Change
References accumulate in order, starting with the default reference set.
- Replace discards the accumulated set and uses this condition's reference selections.
- Change applies additions and subtractions to the accumulated set. An item without an explicit action is an addition.
- Selector scopes expand eligible targets at evaluation time; selecting a Value group can cover more than that one resource.
Product Atlas Example
Aster Pro's default Included features references Wireless sync and Extended battery. Its existing Northland condition adds Offline mode; its Westhaven condition subtracts Extended battery. Inspect those conditions first. The following is an additional Eastreach exercise.
- In Aster Pro's Scale snapshot, add a condition for
Markets any Eastreachunder Included features. - Choose Change.
- Add Extended battery as a Subtract item and Compact chassis as an Add item, using Self for each.
- Save, then inspect the Eastreach context.
Expected result: Eastreach has Wireless sync and Compact chassis. Northland retains its seeded Wireless sync, Extended battery, and Offline mode; Westhaven retains Wireless sync. If you choose Replace with Compact chassis instead, Eastreach has only Compact chassis. A later matching Replace can supersede the entire earlier accumulated set.
The editor highlights questionable duplicate additions and subtractions of unavailable inherited targets. Check selector scope before changing an action. Neither mode moves or deletes the referenced resources.
See Onepager for contextual reference drops, which use these same semantics.
Create A Condition List
Add condition list is a shortcut for creating a packaged set of explicit conditions, also called fanned values.
- In an independent exercise, expand Aster Mini's List price in Scale and choose Add condition list. Avoid adding duplicate Northland rows if you already completed the earlier exercise.
- Select Europe under Markets with Children scope.
- Check Northland and Westhaven; uncheck resources that should not receive a row.
- Submit the creation action, then enter a price for each generated row and save.
Expected result: each checked resource receives its own explicit Class-based condition row. The package is displayed together and can be reconfigured from its list controls.
This is a static row set. Eastreach does not receive a row simply because it is another Market. Reopen the list configuration to include it. Adding another Market later also does not create a condition automatically. This differs from a dynamic selector used inside one ordinary rule or reference.
Layers And Administration
With a Layer active, the application composes the saved Layer rule with the condition's visible residual rule. You may see only the relevant part in Details. Changing or deleting the Layer later does not rewrite existing conditions: they retain the rule captured when authored.
Property labels, types, multiplicity, and reference anchors remain global definitions even while working in a Layer. Treat metadata changes as project-wide changes, not private Layer customization. Layer-only access does not grant unrestricted structural project authoring or an All data option.
Administrators should agree on overlapping override precedence and test representative contexts. Rules are validated on save; malformed rules, incompatible operands, dependency cycles, stale revisions, and out-of-scope writes are rejected rather than silently accepted.
Troubleshooting And Limits
| Symptom | Check or action |
|---|---|
| Override is absent | Check snapshot date validity, Active status, active Layer, View filter, and whether the required Class context exists. |
| Another value appears | Inspect later matching conditions and parent/child ordering. Use Table Explain values to inspect contributing facts. |
| A rule reads another product's Launch ready | Add a Within resource and scope to disambiguate the property family. |
| Save is unavailable | Complete the rule's operands and confirm write access on the original resource. |
| Save reports a conflict | Refresh and review authoritative values before attempting a new edit. Do not assume the draft was committed. |
| A condition list misses a new Value | Reconfigure the static list; it does not acquire future rows automatically. |
The current condition-row menu exposes Edit condition and Add sub-condition. Do not expect a universal row Delete, Enable, or Disable action there simply because the underlying data supports those states. Conditions are not general formulas, scheduled jobs, permission grants, or a replacement for snapshot validity. Undo is available only when a supported transaction returns a valid receipt; see Undo.
Last reviewed: 2026-10-01