Browse · Help archive
Getting Started
Account & Security
Billing & Plans
Organization & Roles
QA-QC
Project Matrix
File Management
Project Members
Access Requests
Project Setup
Attribute Extract
Attribute Import
Scheduled Jobs
Power BI Analytics
Foreman Assistant
Permissions Graph

Draft · This article is being updated. Content may change.

  1. Archive
  2. /
  3. QA-QC
  4. /
  5. Composite Attribute Mapping (Combine Values)

Composite Attribute Mapping (Combine Values)

Learn how to create composite attribute mappings by combining multiple source values and text to form custom outputs in the push dialog mapping table.

What is a composite mapping?

Most attributes in the push dialog get their value from one source — a single zone extract, or one filename segment, or a carryover. A composite lets you build a value out of several sources strung together with literal text.

Common uses:

  • Compose a display name from zone values: A204 + - + Rev CA204 - Rev C
  • Stitch the discipline code from a filename segment with the drawing number from a PDF zone
  • Add a fixed prefix (e.g. WIP_) to a carryover value

The composite editor is a small modal that lives off the Source dropdown of any mapping row.

How to open it

In the push dialog's mapping table:

  1. Find the row for the destination attribute you want to compose.
  2. In the Source dropdown, pick Combine values….
  3. The row collapses to a single button that says either Compose… (no parts yet) or N parts — edit.
  4. Click the button to open the Compose value for "attribute name" modal.

Hover the button at any time to see a tooltip with the current composition (e.g. Composition: Zone:DrawingNumber + " - " + FilenameSegment:Rev). The live-resolved value is always visible in the rightmost preview column.

The composition canvas

The modal shows your composition as a row of chips — one per part:

  • Token chip (blue) — pulls a value from a source (zone, filename segment, carryover, file name slice, etc.)
  • Literal chip (white, with editable text) — exact text written as typed

Underneath the chip row, two buttons add new parts:

  • + Insert token — opens the token picker (source value + optional split / segment)
  • + Insert text — appends an editable literal chip you can type into directly

Reordering chips

Each chip has and buttons to move it earlier / later. Buttons disable themselves at the ends of the row, so you can't accidentally move past the boundaries. There's no drag-and-drop — just click ‹ or › until the chip is where you want it.

Editing chips

  • Token chip — click the chip's label to reopen the token picker for that part. Pick a different source or change the split.
  • Literal chip — type directly into the chip; it grows as you type.
  • Backspace on a focused token chip removes it.
  • × on the right of any chip removes that part.

Live preview

The push dialog's preview column updates as you compose. The preview is rendered against the highlighted file in the file list above the mapping table — click another row to switch which file the composition is rendered against. That's the easiest way to confirm a composition produces sensible values across different files.

Source tokens

A composite token can pull from any source already available to that file:

Source category Examples
Zone values Zone:DrawingNumber, Zone:RevisionStamp — extracted text from named PDF zones
Filename segments FilenameSegment:Rev (named via filename mapping) or Filename split by _ → segment 3 (unnamed)
Carryover Carryover:DrawingNumber — the existing value on the source ACC version (same-cloud copies only)
File name FileName (with extension), FileName (without extension), FileExtension

Each token can be split with a separator + segment picker (All / First / Last / Specific), exactly like the non-composite case. So you can compose Zone:DrawingNumber + - + FilenameSegment:Rev split by . segment Last to take just the trailing dot-segment of the revision.

Tokens that don't resolve on a given file produce empty values. The push still uploads — the composition just collapses where the token is missing.

Display name composition + extension

Composite has special handling on the built-in File name (display name) row (__displayName__):

  • The original file extension is always re-appended automatically at upload time, regardless of what you compose. You don't need a .pdf literal at the end.
  • A green banner inside the modal reminds you of this when you're composing the display name: The file extension is added automatically. Whatever you compose here becomes the file's name; the original extension (.pdf) is appended on upload.
  • Cleanup of forbidden characters (per-cloud) runs on the resolved name — see filename sanitization warnings.
  • The duplicate-name preflight runs against the composed names — if your composition produces the same name for two different files, you'll see the warning before pushing.

This means a composition like Zone:DrawingNumber + - + Zone:Rev produces A204 - C across all three clouds, with .pdf (or whatever the source extension is) added on upload.

How composites are stored in presets

When you save a mapping as a preset, composite definitions are captured in full. The JSON shape is:

"__displayName__": {
  "selectedSourceToken": "composite",
  "include": true,
  "parts": [
    { "kind": "token",   "sourceToken": "Zone:DrawingNumber" },
    { "kind": "literal", "literalText": " - " },
    { "kind": "token",   "sourceToken": "FilenameSegment:Rev" }
  ]
}

Apply the preset on a different folder and the composite re-resolves against that folder's available tokens. Tokens that don't exist on the new folder are silently skipped on a per-file basis at push time.

Worked examples

"Drawing Number - Revision" display name

Step Action
1 In the File name (display name) row, pick Combine values…
2 Click Compose…
3 + Insert token → Source: Zone:DrawingNumber → confirm
4 + Insert text → type -
5 + Insert token → Source: FilenameSegment:Rev → confirm
6 Close the modal
Result Display name preview: A204 - C. Upload name: A204 - C.pdf.

Prefixed carryover

Step Action
1 In the Status row, pick Combine values…
2 + Insert text → type WIP_
3 + Insert token → Source: Carryover:Status → confirm
Result If carryover is Approved, the resolved value becomes WIP_Approved for every file.

Multi-segment compose from one filename

Step Action
1 In the Drawing Code row, pick Combine values…
2 + Insert token → Source: Filename split by _ segment 1 (Originator)
3 + Insert text → type -
4 + Insert token → Source: Filename split by _ segment 4 (Type)
5 + Insert text → type -
6 + Insert token → Source: Filename split by _ segment 6 (Number)
Result A filename ACE_PRJ_ZZ_DR_A_0001 produces ACE-DR-0001.

Limits and gotchas

  • The composite editor is only available when the file has at least one source value (zone / filename / carryover). The dropdown shows Combine values… as disabled if no source is available.
  • Token chips reference source-side names (zone field name, filename segment key, carryover attribute name). If you rename a zone in the template, presets that reference the old name will silently skip that token.
  • Literal chips are written exactly as typed — leading and trailing spaces are preserved.
  • The composition is applied to every file in the push, not just the selected file. The selected file is only used to render a live preview.

Next steps

You're offline — some actions may not work.

Connection lost

Attempting to reconnect to Foreman...

Connection lost

Retrying in --s Attempt - of -

Connection interrupted

Retrying in --s Attempt - of -