Resources
Resources are the Project's named items and organizing branches. In the fictional Product Atlas demo, Markets, Products, and Features are independent Classes. A product can reference market or feature Values without moving them into its own branch.
Resource kinds
| Kind | Meaning |
|---|---|
| Resource group | Structural organizer with no Class at or above it. It cannot own Fields or snapshots. |
| Class | The explicitly designated data-bearing branch root. It can occur at any tree depth. |
| Value group | A resource below a Class that has children. It can own data. |
| Value | A leaf below a Class. It can own data. |
A completed root-to-leaf branch contains exactly one Class. A branch without one is temporarily incomplete; more than one on a path is rejected. A Class is not necessarily a top-level resource. The current UI does not require a separate Category between a Class and its Values.
Browse and inspect
Select a row to focus Details. Selecting a collapsed branch opens it; its marker can collapse it explicitly, even when a descendant is selected. Use Expand all resources or Collapse all resources for a larger tree.
In Normal mode, rows summarize direct field counts and conditions across snapshots. Hover the count area to see fields and conditions grouped with snapshot labels, including disabled conditions. Select an entry to open Details at the relevant field, condition, and snapshot. These summaries are hidden in Edit and Table modes.
Project-wide property-family entries appear in Normal mode. Selecting one opens its General and Connections view rather than a resource. They are not movable tree nodes or draggable View-axis resources. See Properties.
Use the pane's local resource search to highlight or filter labels without searching field contents.
Add resources
Prerequisite: Editor or higher Project access. For global structure work, choose All data.
- Open Add resource in Normal mode.
- Choose Add root element for a new root, or select a canonical parent and choose Add at position for its child.
- Enter a nonempty label and select Add.
- Wait for the new selected row and check for any error.
The new item starts as a non-Class resource. If it begins a data-bearing branch, enable Class in General before adding Fields. A child added below an existing Class is already within that Class's branch.
You cannot add children beneath an Alias or a linked occurrence. A linked occurrence is not a destination parent.
General settings and Class designation
Select a canonical resource and use Details > General to change its label or icon. A Class also has a color picker; descendant markers inherit their Class's color. The explicit no-icon and no-color choices remove the icon or use neutral Class styling. Save these drafts with the pane-level Save.
The Class switch opens Set as Class or Remove Class confirmation. This is a structural change, not just a visual badge. The app checks the branch and dependencies; incompatible changes can be rejected. Do not add a second Class below an existing one to create a subgroup. Add a normal resource instead.
Inactive versus deleted
Use Inactive, then Save, to retain a resource while excluding it from active references and calculations. Inactive items can still be inspected in the tree and found by local label search. An inactive Class excludes its branch from active calculations without losing its designation.
Deletion removes the resource and its owned data. It is not the same as making it inactive.
Customize Class row display
- On a canonical Class pill, open Configure displayed property values.
- Check single-value property families used in its descendant branch.
- Drag checked families into the desired display order.
- Optionally enable Hide normal label, then select Save in the popover.
Eligible current, unconditional All data values appear after the row label, or replace it when requested. Missing values and occurrences with conditions are skipped. If no display value is available, the ordinary resource label remains visible. This is shared Class display configuration, not a Layer-specific effective-value report, and does not rename resources.
Linked resources
Links show an existing resource under another canonical resource in the same Project. They do not copy its data or move its original location. A linked row uses the original's current identity and data, but is terminal: it does not automatically show the original's children.
Add a link
- Select the destination canonical resource in Normal mode.
- Choose Add linked record.
- Select a source resource and selector scope.
- Choose Current selection or Keep updated, then save.
Current selection captures the selected membership once. Later additions under the source do not join automatically; moving an existing original does not remove that static membership. Keep updated resolves its source selector against the changing tree and respects explicit removals. This choice is unrelated to time snapshots.
Scopes are Selected resource, Selected + direct children, Direct children only, Selected + all descendants, and Leaf descendants only. See Properties for their precise meanings.
The same original is shown once under a destination even if multiple links contribute it; it may appear under several different destinations. Inactive originals are hidden from linked membership without discarding the static selection.
Inspect or remove a link
Selecting a linked row opens read-only Details. Choose Open original to work with its canonical resource, subject to your permissions. You cannot use a linked occurrence as a link source or destination, convert it to an Alias, or make a chain of links through it.
To remove a linked occurrence, select it, choose the deletion action, and confirm Remove link. The original and its data remain. For Keep updated membership, removal records an exclusion so the same item does not immediately reappear. Deleting the original removes its memberships too.
Contextual Views can use the destination path while reading the original's data. Read-only status is preserved when selecting a linked result from a View.
Aliases
An Alias makes a canonical leaf stand for its one property in data-definition contexts such as condition operands and View fields. In structural navigation, references, and links it remains the same resource.
- Select a canonical leaf that is a Class or belongs below one.
- In General, enable Alias.
- If it has no property, complete the property dialog to create the bound property. If it has exactly one, that property can be bound.
- Check the Alias marker and datatype/reference icon in the tree, and the Alias property badge on its field.
An Alias cannot have structural or linked children, or more than one owned property. Only one Alias can bind a given project-wide property family. Linked occurrences cannot become Aliases. The resource label and family label remain independent.
Disabling Alias preserves the property and its authored values, conditions, and snapshots. Alias is not a duplicate resource or a shortcut to another resource.
Edit mode: select, update, and move
Open Edit mode in Resources. Checkboxes select eligible canonical items individually, not whole subtrees. Clicking a row still focuses Details independently. Shift-click extends the checked or unchecked state through eligible visible rows; Select all visible resources excludes hidden rows. Already checked items remain selected when collapsed or filtered out.
With multiple resources checked, Details becomes a bulk General editor. It supports label, icon, and an explicit Inactive choice of unchanged, active, or inactive. Class, Alias, and Class color remain single-resource operations. Only touched fields are submitted.
For labels, choose Replace, Prepend, Append, or Delete and review the preview before Save. Prepend and Append do not invent spaces: include a separator in the text yourself. Delete removes exact occurrences of the supplied text and normalizes remaining whitespace; it does not delete resources.
Move resources
Drag an eligible row's handle in Edit mode to move it before, after, or inside a valid parent. With no checked items, a hovered row exposes a handle for a single move. With a checked selection, handles apply to checked rows; dragging a checked row moves the selected highest roots as an ordered block.
Alternatively, use the move action to choose Destination parent, Placement (First, Last, Before, After), and Relative to when needed.
If both an ancestor and its descendant are checked, movement handles the descendant through the ancestor only once. You cannot move a resource inside itself, into its own subtree, beneath an Alias, or into a Class arrangement that violates branch rules. Linked occurrences cannot be checked or moved, though they can act as ordering boundaries. The entire operation is rejected if validation fails; review the error before trying another destination.
Closing Edit mode clears its checked selection and bulk drafts. Selection is not a saved Project setting.
Delete resources
In Normal mode, select the resource and use Delete selected resource. In Edit mode, use the selected-resource deletion action. Review the dialog, then confirm only when the removal is intended.
Deleting a canonical ancestor includes its full subtree and owned snapshots, properties, values, and conditions. A separately checked descendant is deleted only once with its selected ancestor. Dialogs warn that the operation cannot be undone. Prefer Inactive when you need to retain authored data.
Table mode
Open Table mode to compare and edit resources in a grid. The resource tree becomes the frozen first column; property families form the other columns. Collapse/expand the tree to control rows. This authoring grid is distinct from a saved Table View.
Columns combine the families used by visible resources with locally pinned columns. Add property column can pin an existing family or create a new family. Creating or pinning a column alone does not add that property to every resource. Resize columns by their header edges; header menus offer Edit family, Reset width, and Remove pinned column where applicable.
Column filters include property presence, availability, empty/set, and type-specific comparisons. Sorting is datatype-aware and puts empty cells last. Combined filters must all match. Widths, pinned columns, scroll position, and mode are remembered locally for this Project; filters and sorting are session-only.
Edit a cell
- Select a writable canonical-resource cell; double-click or use Enter to open its editor.
- Change the value and select Save. Clear empties the draft; save it to apply.
- Wait for pending indicators to clear and check errors.
Changed drafts also save when the editor closes normally. Use Escape to cancel instead. Arrow keys and Tab navigate cells when the cell control has focus.
Saving can create a missing property assignment and, for a resource with no snapshots, an initial Default snapshot. If snapshots already exist but none is current, the cell is read-only. Empty, missing property, unavailable, loading, and no-current-snapshot states are different; inspect Details before assuming a blank cell is an empty value.
Remove property deletes the assignment from that resource, including all its snapshot values and conditions; it does not delete the family or assignments elsewhere. It is more destructive than Clear.
Grid restrictions
- Resource groups and linked/read-only occurrences cannot be authored in the grid.
- File cells are read-only; use Details file controls instead.
- Aliases expose only their bound family.
- Inactive canonical resources remain editable but are visually muted.
- Project Editors can author data; Layer-only Editors are restricted to permitted contextual edits, not structural changes.
- With a Layer active, saving a reference cell stores the complete edited contextual reference set. Do not expect it to preserve the same incremental behavior as a hand-authored Change condition.
See Properties, Layers, and Troubleshooting before editing missing or contextual values.
Last reviewed: 2026-10-01