On this page
- What AssetAtlas is
- Before you start
- Building the registry
- Finding assets
- Seeing the registry in space
- Placing an asset
- What sits on the asset record
- What AssetAtlas does not do
- Setup checklist
What AssetAtlas is
AssetAtlas is the asset registry for a project, with a position attached to every record. Each piece of equipment gets a record, and that record knows where it physically sits: on a floor plan, and inside the 360° capture. The registry is unified at the project level and spans every building in the project.
It opens from Project > Apps, in the Add-Ons section. It holds one asset table for the whole project, and each asset in that table carries a location and, once placed, a coordinate.
Facility and plant managers own the registry, operation engineers keep it current and place assets in space, and QA/QC, field and inspection roles read it.
The AssetAtlas table. Five surfaces do most of the work.
The numbers on the screen above:
- Category filter. Narrows the table to a category and everything under it.
- Text search. Matches asset Name and Description as you type.
- Actions menu. Add, export and delete, plus the bulk operations that need a selection.
- Column filters. One filter per data column, embedded in the header.
- Layout picker. Switches between the table and the viewer layouts.
What changed in this release
- Assets attach to the new built-world structure:
Project (= Facility) > { Site | Building > Level > Work Area }. - An embedded SiteView viewer shows the registry in 3D and on a 2D floor plan, in four layouts.
- Assets can be given a coordinate by pointing at them in the viewer, and the coordinate then decides the Work Area and Level.
- CSV import and export carry the location columns.
- Bulk edit changes location, Status and Category across a selection in one dialog.
Where AssetAtlas sits
AssetAtlas is where two separate setups meet. One defines what an asset is, the other defines where it can go, and neither is configured inside AssetAtlas itself. The rest of this article follows the diagram in order.
What an asset is, and where it can go, feeding the three steps.
Who can do what
AssetAtlas follows the standard Cupix permission grades. The rule is short:
A Guest (Read Only) loses every write action on the asset. In everything else a guest behaves as a Project Member.
- Super Admin, Team Admin, Project Admin, Project Member, Guest (Read & Write) can add, edit, update status, edit properties, attach files, import, export, delete, reposition and bulk-edit.
- Guest (Read Only) can view asset detail and status history, filter by category, text and column, select rows, switch layouts, and navigate between the table and the viewer.
- Export Selected to CSV is not available to a Read Only guest. Export is a download, and download sits inside the Read & Write definition.
- Comments are a write action, so a Read Only guest does not get them.
A user without execute permission on an action sees You do not have permission to {action} for this asset. For a Read Only guest the write controls are not drawn at all, so that message is a backstop rather than the normal path.
Before you start
Two setups happen outside AssetAtlas, and both have to exist before the first asset is created. Do them in this order.
Team Settings: what an asset is
Three objects, created at team level and shared across every project. They chain together, and the order matters because each one references the one before it.
1. Status Set - the statuses an asset can move through. Created under Templates > Status Sets.
- Statuses sit in three stage groups: Initiation Stage, Execution Stage and Finalization Stage.
- The order set here is the order the dropdown shows.
- Those stage groups are also what the asset table's Status filter groups by.
Status Set editor, with the statuses grouped under the three stages.
2. Form Template - the property fields an asset carries. Created under Templates > Forms, and held in a shared pool.
- Whatever fields are defined here are what appears on an asset's Properties tab.
- The Status Set attaches here, to the Form, not directly to the category. The boxed line in the Live Preview names which Status Set this Form is using.
Form Template editor. The Status Set the form carries is marked.
3. Asset Category - the classification tree. Created under Asset Categories.
- Each Asset Category Type holds one tree; the types are listed on the left.
- A category references one Form Template, and its child categories inherit it.
- The category then shows the result as its Effective Status Set.
Asset Categories in Team Settings: the type list, the tree, and the Form Template field on the Category Properties panel.
What the chain means in practice:
- An asset takes its statuses and its property fields from its category, never from the project. Two assets in different categories can offer different statuses and different fields.
- Status options come from the Status-Set-determining Form Template: the category's own template if it has one, otherwise the root category's own. A category resolves to a set of templates, and only one of them supplies the Status Set.
- Property fields are the category's effective set: its own template plus every ancestor's, cumulative to the root. They render one section per category layer, ancestor first. The same template used on two layers is two sections with separate answers, and two fields with the same name is a legal render, not a bug.
- An empty option list never blocks anything.
(Not set)is always offered, so a category with no statuses is guidance text rather than a locked dialog.
Project setup: where an asset can go
Built in the project Skeleton, once per project.
The built world.
- The Site - exactly one per project, fixed, and not addable.
- Buildings, each holding Levels, each holding Work Areas.
- Site and Building are peers under the project. Site is not the parent of Building, and an asset attaches to one or the other, never both.
The names matter more than they look.
- A CSV import matches Building, Level and Work Area by name, not by ID.
- Whatever is typed in the Skeleton is exactly what an import file has to carry.
LEVEL_01andLevel 1are two different levels as far as the import is concerned. - Settle the naming before anyone builds an import file. See Import a CSV file for what a mismatch looks like.
Captures and plans.
- The 3D viewer needs a SiteView capture for the selected Level.
- The 2D map needs a Reference Plan for that Level.
- With no Level selected, the viewer reads
Select a Level to load the viewer.
Pick the Asset Category Type
On a project with no Asset Category Type configured, AssetAtlas opens on a selection screen instead of the asset table. Select a type from the options configured in Team Settings and you land on the main page. Later visits skip the screen.
Once at least one asset exists under an Asset Category Type, the selector in the header becomes read-only and shows a lock icon. Hovering it explains why: Delete all assets to change Category Type. Changing the type then means deleting every asset under it first.
The Asset Category Type selector in the header, before any asset exists.
This is the one setup decision in AssetAtlas that cannot be walked back cheaply. Agree the customer's category taxonomy before the first import, not after.
Building the registry
Add one asset
The Actions menu at the top right of the table.
- Click Actions > Add New Asset.
- Answer Category, Name and Status. Fill the location - Building, Level, Work Area - if you know it. Description is optional.
- Leave Add another asset after saving selected to keep the dialog open for a run of entries.
- Click Save.
The Add New Asset dialog.
What "required" means here. Name, Category and Status require an answer, not a value. (Not set) is a legitimate answer and passes. Save is blocked on an untouched dropdown, never on an empty value.
-
Category lists
(Not set)first, then the header Asset Category Type tree. It is pre-filled with the header's active category, which counts as answered. With no active category the field opens unanswered. -
Status opens unanswered, with
(Not set)pinned above the stage groups. It is disabled and fixed at(Not set)when Category is(Not set)- no category means no Status Set, so there is no domain to choose from. -
Building is a single merged field:
(Not set), thenSite, then the project's Buildings. ChoosingSitedisables and clears Level and Work Area. - Level and Work Area are optional and cascade from Building.
Location is optional on purpose. A field tech registering equipment often does not yet know the level, and a value picked to escape a dialog is indistinguishable from one that was checked. (Not set) records "not known yet" honestly, and the (Not set) column filter keeps those assets findable. Assets with no location do not appear in the viewers; a Building-attached asset needs a Level to appear, and a Site-attached asset appears at the Site level.
Duplicate is the quiet third path. From a row's More options (⋮) menu it copies the asset's properties, category and location, but deliberately not its coordinate and not its attachments - which is also a useful way to explain why coordinates are per-asset.
Import a CSV file
CSV import is a four-step wizard: Import CSV > Assign Assets > Map Properties > Review Properties.
Step 1, upload the file.
Step 2, map CSV columns onto the levels of the category hierarchy.
Step 3, map CSV columns onto the asset fields.
Step 4, the validation summary before apply.
Columns are Name, Description, Category, Status, Building, Level, Work Area, and optionally Coordinate X, Y and Z.
The three things that trip people up.
-
Column count is checked at upload. The file must carry at least as many columns as the project's Asset Category Type is deep. A thinner file is rejected at step 1 and cannot reach step 2:
CSV requires at least {N} columns, but only {found} found. - File size. The upload step caps the file at 1 MB, which arrives sooner than customers expect on a several-thousand-row inventory. Split large inventories across files.
- Site and Building are separate columns in CSV, even though the interface merges them. A row carries one or the other, never both, and the import writes them into the merged field.
Two kinds of error, handled differently.
- Mapping problems at Map Properties block progress to Review Properties.
- Row-level validation problems at Review Properties do not. Invalid rows are excluded, the summary counts the valid ones, and you can go back and fix the file or proceed with what is valid.
Building, Level and Work Area are matched by name against the project Skeleton. A row whose level reads Level 1 against a Skeleton that says LEVEL_01 is rejected as an unrecognised level. Rejected rows are listed at Review and left out of the import - the rest still import, so it is easy to miss. Copy the Skeleton names straight out of the project before building the file.
What an empty cell becomes. An empty value, and a value that matches nothing, both import as (Not set). An unmapped Building column gives (Not set) and never Site. X, Y and Z are one unit: a supplied coordinate overrides the location columns, and the count of rows that happened to is reported at Review.
Export to CSV
Select the rows to export, then choose Actions > Export Selected to CSV; the menu shows the selected count beside it. The export carries the asset fields together with Building, Level, Work Area and Coordinate X, Y, Z.
Export Selected to CSV, with rows selected.
Delete assets
-
One asset. Row More options (⋮) > Delete, with a confirmation:
This will permanently delete [Asset Name]. This action cannot be undone. - A selection. Actions > Delete Selected, with the count in the confirmation.
- On a partial failure the successful deletions are committed and a toast reports the split. There is no per-asset result dialog.
Edit several assets at once
Actions > Edit Selected edits Building, Level, Work Area, Status and Category across the whole selection in one dialog. Coordinate is not offered here - it is set by clicking a viewer, and stays with Reposition.
How the dialog behaves:
- Every field starts empty, showing
Keep current value. An empty field is not written, not compared and not counted. The clear (×) returns a field to that state. -
(Not set)is a real value here, and it erases what the assets hold. - Only assets whose value actually changes cascade: Building resets Level, Work Area and Coordinate; Level resets Work Area and Coordinate. A value the user set explicitly in the same dialog beats a cascade reset.
- Status is locked while the selection spans more than one Category, until Category is set in the same dialog.
- Category is judged per (Category, Form Template) section - answers are kept or hidden, and Status resets only when the Status-Set-determining template changes.
(Not set)is not offered for Category.
While any field is set, the dialog shows a live summary - assets affected, work areas dropped to (Not set), coordinates removed - so the scale of the loss is visible before you commit. Discarding a committed coordinate always asks first. The confirmation and the result toast state the counts per field, never merged.
There is no undo on bulk edit. The counts before apply are the safety net.
- Edit 2 assets - the number of selected assets.
- Empty fields keep each asset's current value. - only filled fields change.
- Site / Building and Level - choose the building first; Level opens after it.
- Work area - opens once a level is chosen.
- New values - here Building 5, L3.
- Impact - how many assets change, per field.
- Warning - the coordinates and work areas that will be removed.
- Apply - commits the edit.
Finding assets
Filter by category
Filter from the CATEGORY column header, which opens the tree up to five levels, or from the Categories picker in the control bar, which is search-first. Both drive one shared selection.
- Picking a category includes everything under it.
- Each row's count includes its descendants, and does not move when other filters change.
- Categories with zero assets are always listed, and so is
(Not set). - The selection narrows both the table and the plan in the viewer.
Filter by text
Type in the search bar - Filter assets by name or description - and the table filters as you type, matching Name and Description.
Filter by column
Every one of the six data columns carries a filter, embedded in the column header:
- Name/Description
- Status - options grouped into the three stage buckets from the Status Set
- Site/Building - the merged column, a grouped filter with SITES and BUILDINGS, a search box and Clear all; selections union across the two groups
- Level
- Work Area
- Last Updated
Filters are client-side, and they combine: AND across columns, alongside the category filter and the text search. Active filters show through the column-header filter icons and the Categories picker badge, so there is no chip row to clear. The table reports what survived - Showing 12 of 84 assets - and an empty result reads No assets found.
Seeing the registry in space
The four layouts
The layout picker is the grid icon at the top right of the header; its tooltip reads Change layout. It opens a LAYOUT menu with four options:
- Table Only (the default)
- 3D View + Table
- 2D Map + Table
- 3D + 2D + Table
The layout menu.
In the combined layout the 2D Reference Plan sits on the left and the 3D viewer on the right, split 65/35 in the 3D viewer's favour, with a drag handle to rebalance them.
3D + 2D + Table: floor plan left, 360° capture right, asset table below.
Choosing the SiteView
The 3D viewer is a SiteView you choose. Switching into a 3D layout with no SiteView selected opens a Choose a SiteView dialog listing the project's SiteViews, and the SiteView chip in the context bar reopens it at any time, including from Table Only.
The Choose a SiteView dialog.
Inside the viewer, a chip shows the capture date with a See other dates link, and the context bar carries the project name with Building and Level selectors. The Building list is [Site] plus the project's Buildings; choosing Site loads the Site capture and disables Level and Work Area. The 2D map shows the Reference Plan for the selected Level.
What the markers show
Pins are Status Markers by default: colour encodes the asset's status, the pin shape is common to every asset, and the asset name appears on hover.
The embedded viewer's Settings panel carries an Assets category that governs them:
- Show on 2D Viewer (on by default). Turning it off hides the asset markers and the coincident-position count bubbles together. Note markers are unaffected.
- Show on 3D Viewer (on by default). Planned - the toggle is present, but the 3D viewer draws no asset markers yet, so nothing reads it. That is not a defect.
- Asset Display - Status (the default) or Category. On Category, the marker takes the category's icon and colour exactly as the table shows them, and an asset with no category keeps its Status Marker. The unplaced-asset list follows the same axis.
The setting belongs to the viewer session and is shared by every layout that embeds the viewer. It is not written to the asset record. A SiteView opened on its own draws no asset markers, so the category is not shown there.
Pins survive a re-capture. Coordinates are bound to the Level rather than to a capture version, so when the site is captured again the pins land in the same places. This is the reassurance owners want before they commit to placing a few thousand assets.
- Assets - the Settings category for asset markers.
- Show on 2D Viewer - asset markers on the map and reference plan.
- Show on 3D Viewer - asset markers in the virtual tour and dollhouse.
- Asset Display - marker by Status or by Category.
- Category - markers show the asset's category.
- Category markers - the category symbol instead of the status.
Moving between the table and the viewer
Navigation runs both ways.
- Click a row: the detail panel opens and the viewer navigates to that asset's pin. If the asset is on another Building or Level, the viewer switches to it.
- Click a pin: the matching row highlights, scrolls into view and opens the same panel.
- An asset with no coordinate reports
No coordinate assigned.
Filtering is one-directional. Changing the Level inside the embedded SiteView filters the table to that Level; the table does not drive the viewer back. Within the selected level, though, the plan does follow the table's text search, Category and Status filters - markers, the unplaced-asset chips and the no-pins banner all see them. The Site/Building filter is the exception: that axis belongs to the viewer.
Placing an asset
Placing an asset gives it a coordinate, so it shows at its actual point rather than at a representative point for its Work Area.
Reposition in the viewer
- Open the asset's detail panel and click Reposition (the crosshair icon in the panel header).
- A focus overlay fades the surrounding interface and a small panel appears over the viewer:
Click a point in the viewer to reposition this asset.withPress ESC to cancel.below it. - Click the asset's position in the viewer.
Reposition mode, with the surrounding interface dimmed.
What "the viewer" means depends on the layout:
- 3D + 2D + Table - the overlay covers both viewers, and whichever you click first commits the coordinate. The tool panel is drawn on the 3D viewer.
- 3D View + Table or 2D Map + Table - the overlay and the tool panel sit on that viewer.
- Table Only - the app switches to 3D + Table and gives you a navigate-then-Ready step first.
The click commits immediately; there is no separate confirm step. The confirmation toast names the count placed and the resulting Work Area, and carries Undo - one step only, reverting the coordinate and work area of everything that commit touched.
Placement is cancelled, with nothing committed and the previous coordinate kept, by ESC, the Cancel button, closing the detail panel, or switching layout. Clicking outside the viewer and changing the selection do not cancel.
What the coordinate decides
The coordinate is the source of truth for where an asset is. Reposition sets X, Y and Z, and the system then derives the Work Area and the Level from the point you clicked. There are three outcomes:
- The point is inside a Work Area - Work Area, Level and Building are all assigned.
- The point is outside every Work Area but the Building and Level are known - Work Area alone becomes
(Not set); Building and Level are kept. Assets legitimately sit outside every defined work area: yards, car parks, corridors. - The Building cannot be determined - all three become
(Not set).
Site is never assigned automatically when derivation fails. It is a positive claim the system has no basis for, since Buildings carry no geometry today.
The rule runs the other way too: on an asset that already has a coordinate, changing Work Area or Level by hand clears the coordinate, after a confirmation. The asset then stops being drawn and joins the unplaced-asset count. A Work Area lost through a Building or Level cascade is announced on save, because the user never looked at that field.
Coordinates can also be typed into the Overview tab or supplied in a CSV import. The asset model carries a coordinate only - there is no rotation field.
What sits on the asset record
Clicking a row opens a slide-in detail panel with three tabs: Overview, Properties and Attachments. Comments sit at the bottom of the panel and are reachable from every tab.
The asset detail panel, Overview tab.
Overview
Holds a thumbnail, Status, the Location group (Building, Level, Work Area, with their own Edit control), the Coordinate, and Status History. On an asset with no transitions yet, Status History reads No status changes recorded yet.
Properties
Holds the Form Template fields for that asset's category under a FORM FIELDS heading, in one section per category layer, ancestor first. Unset fields show a dash. Editing them is behind the Edit control.
Attachments
Takes photos and PDFs by drag and drop or Add File, with a stated limit of 100 MB per file. The list shows name, size, uploader and date.
Three details that come up often
- Status is always directly editable. It is not behind the Edit control that governs the Location group and the form fields.
-
Status History records every transition per asset, with timestamp, user, and old and new value - the audit trail QA/QC customers ask for. A status the system reset records why, rather than naming a person who never chose it:
{user} changed category to {category} - status reset to (Not set). - Concurrent edits resolve last-write-wins. There is no lock and no conflict dialog in this release.
What AssetAtlas does not do
- No observation linkage yet. Linking an observation to a specific asset is deferred to the SiteNote scope. Status History and comments are what exists today.
- No automation. Rules driven by observation status or asset condition are a separate future project.
- No work orders. The standalone Work Order module was removed.
Setup checklist
Work through this on a demo project.
- In Team Settings > Templates, confirm the Status Sets and Forms the categories will reference.
- In Team Settings > Asset Categories, confirm an Asset Category Type with a category structure, or import one from CSV.
- In the project Skeleton, confirm the Site exists and add the Buildings, Levels and Work Areas the assets will reference.
- Confirm a SiteView capture and a Reference Plan exist for at least one Level.
- Open Project > Apps > AssetAtlas and select the Asset Category Type.
- Add one asset by hand to see the merged Building dropdown and what
(Not set)does to Status. - Import a small CSV file and read the validation summary.
- Reposition one asset in the viewer, and watch the Work Area follow the coordinate.
- Switch to 3D + 2D + Table, pick a SiteView, click a row, then click a pin.
- Select a few rows and open Edit Selected to see the impact summary.
- Filter by Status, then clear the filter.
- Export the selected rows to CSV and open the file.
At the end of this you have a placed registry on a demo project, and have seen every surface a customer will ask about in a first session.