Hierarchy, Nesting and WBS
TX1 stores estimates as trees. Any item can have children, and any breakdown can have children. Understanding the rules keeps your estimate tidy.
Parent / Child Rules
| Object | Max indent levels | Notes |
|---|---|---|
| Direct Cost Item | 0–6 (7 levels total) | Clamped; the engine refuses levels > 6 to prevent ghost rows. |
| Direct Cost Breakdown | 0–4 (5 levels total) | Also clamped. |
| Overhead | 0–6 | Same rules as direct costs. |
| Overhead Breakdown | 0–4 | Same as DC breakdown. |
| Resource Folder | Unlimited | Only the root folder determines the type (Labour, Material, etc.). |
| Code Set | 0–6 | Standard cost-coding depth. |
Indenting Items
Indenting a row sets its ParentId to the previous same-or-higher-level item.
| Action | UI | Effect |
|---|---|---|
| Indent | Tab or toolbar ➡ | IndentLevel + 1; picks nearest previous row as parent. |
| Outdent | Shift+Tab | IndentLevel − 1; parent moves up. |
| Move up / down | Alt+↑ / ↓ | Swaps SortOrder among siblings. |
WBS Codes
The WBS field is a free-text code (e.g. 3.2.4.1) independent of indent level. You can keep them in sync manually or let a custom workflow generate them.
Totals Roll Up
Every item has two important totals:
- DirectTotal — just this line (= Qty × Rate, or the sum of its own breakdowns).
- TotalWithChildren — DirectTotal plus every child's
TotalWithChildren, recursively.
This is how parent rows show a rolled-up subtotal while still having their own (usually zero) direct quantity.
Parent Can Own a Quantity or Be a Header
A parent item can either:
- Be a header — Quantity = 0, Rate = 0. It simply sums its children.
- Carry its own line — Quantity > 0 with its own rate, plus child detail. The rolled-up total adds both.
Use Rate Only or Not Contributing pricing modes (see 04.5) if you want the children visible but only the parent to count.
Collapsing the Tree
Click the chevron on any parent row to collapse/expand. The expand state is persisted in the DirectCostHierarchyStateJson field on the project so it survives app restarts.
Warning: Don't Over-Nest
Estimates that go deeper than four levels are hard to read and hard to apportion. Use breakdowns (which are their own tree inside an item) rather than stacking indents.