THE CAPITAL BRANCH
Teamcenter → Capital, in One Command
The oldest of the three downstream branches, and the one the other two were modelled on. A live Teamcenter read becomes an importable Capital Systems Architect project — deterministic, dependency-free, no LLM anywhere in the path, and safe to run inside an air-gapped Dispatcher pipeline.
Running it
Three input modes, one output. The mode a Teamcenter Dispatcher module uses is --occ-tree, because the native extract runs server-side where the occurrence and connectivity services actually return ports and wires. On the bench, --live does the whole thing in one process.
$ node bin/forward-translate.mjs --live 041908 \
--project "Inverted Flight Fuel System" \
--out out/capital/InvertedFlight.platform.xml
forward-translate ok {"out":"out/capital/InvertedFlight.platform.xml","bytes":524073,
"components":12,"pathways":11,"pathways_skipped":0,"functions":16,"signals":6,
"carriers":0,"allocations":0,"normalized":true,
"project":"Inverted Flight Fuel System"}
Four stages, only the first of which touches a network:
| Stage | Function | Pure? |
|---|---|---|
| 0 | fetchOccurrenceTree — live BOM/occurrence read through an injected client | live I/O |
| 1 | occurrenceTreeToTcGraph — occurrence tree to a normalized graph | pure |
| 2 | tcGraphToExchange — graph to the neutral exchange bundle | pure |
| 3 | generate — exchange to Capital's importable project XML | pure |
Stages 1–3 have no I/O, no clock and no randomness, which is why the whole engine is testable end to end without a tier and why the same input yields byte-identical output.
The result, in Capital

FuelSystem correctly shows no pathway line: it is the composite whole, not a connector endpoint.
PWY1 through PWY11.Behaviour travels too
The first push of this model landed a single function. After the model was reworked — one monolithic SupplyFuelToEngine activity decomposed into four real functions, each with its own swimlanes and parameter pins, orchestrated by a top-level activity — the same pipeline landed 16: eleven leaf call-behaviour targets, four mid-level functions and one orchestrator, all as distinct Teamcenter Functionality objects, all listed by name in Capital's own Functions tree. Signals went from five to six.
That is the useful property of a deterministic transform: the delta in the output is exactly the delta in the model, and nothing else.
allocations comes back empty. The functions arrive and the components arrive, but the binding between them does not. In this model the binding is expressed as swimlane partitions (ActivityPartition.represents) rather than «Allocate» relations — a deliberate correctness choice in the SysML — and no allocation lands in Teamcenter as a result. This is the single highest-value gap in the whole forward transform, because it is what would let a reliability or safety tool say which part performs which function. See the status board.What maps to what
| Cameo / SysML | Teamcenter | Capital |
|---|---|---|
| Block, System, Subsystem | Fnd0LogicalBlock | Component |
| Proxy / full port | Fnd0LogicIntrfce | Port, folded onto its component |
| Connector | Fnd0LogicConn | Pathway — the port-to-port physical route |
| Item flow | Seg0ItemFlowExchanges | Carrier — rides a pathway, carries the signal by identity |
| Interface block | Seg0Interface | port typing, via Seg0Implements |
| Activity | Functionality | Function |
| Signal | Seg0IntfSpec | Signal — one identity, referenced by both layers |
The complete contract, including the reverse direction and the field-level decisions behind it, is on the Teamcenter data-model page.
How this relates to the bi-directional plugin
Two different things share this site and are easy to confuse:
| The forward transform (this page) | The Capital ⇄ Teamcenter plugin | |
|---|---|---|
| Direction | Teamcenter → Capital, one way | Both ways, live during design |
| Runs | Node CLI, or a Dispatcher module server-side | Inside Capital, as a plugin with menus and panels |
| Input | whatever the architect pushed from Cameo | whatever the engineer is drawing right now |
| Purpose | fan one master model out to three tools | keep one shared logical structure current across seats |
| Documented on | this page | Capital Integration, Hanging on the Spine, Operations |
They meet in Teamcenter, which is the point. The plugin keeps the shared structure alive while people work; the forward transform takes a settled architecture and hands it to whichever discipline needs to draw it next.