Interfaces
Interfaces
Define interfaces as Conduits, record what flows across them, check capacity, track interface maturity in the Interface Register, and produce ICDs, N² and I² matrices.
On this page
Overview
In Holarch an interface is a Conduit: a model entity that connects to two assets (or ports) and transfers the Input/Output items that cross it. Every Conduit in the project is an interface, wherever it was drawn: on an Internal Block Diagram, a Physical I/O Diagram, an Interface Control Diagram, an I² Diagram or in the Database.
The Interfaces group in the navigation rail holds four pages:
| Page | What it shows |
|---|---|
| Interface Register | Every Conduit with endpoints, status, owner, TBD/TBR, item count, requirement count and capacity check. |
| ICDs | The Interface Control Diagrams in the project (the Diagrams list filtered to that type). |
| N² Diagrams | The N² Diagrams in the project: functions on the diagonal, the Input/Outputs they exchange in the cells. |
| Items & I/O | The Database filtered to the Input/Output class. |
Concepts
Conduit
A Conduit is the physical or logical path between two assets: a cable, a bus, an RF link, a pipe, a network connection. It links to its endpoints with connects to (seen from the asset: connected by). A Conduit can be decomposed into child Conduits; a parent Conduit then acts as a bundle and conveys everything its children convey.
Holarch adds these interface attributes to every Conduit:
| Attribute | Meaning |
|---|---|
| Capacity and Units | The most the conduit can carry, e.g. 400 Mbps or 15 W. Used by the capacity check. |
| Latency | Delay across the conduit (a duration). |
| Connector/Pins | Connector type and pin assignment at each end. |
| Medium | Physical medium, e.g. copper, fibre, RF link, pipe. |
| Owner | Person or team responsible for the interface definition. |
| Interface Status | Maturity of the definition: Draft, Proposed, Agreed or Baselined. |
| TBD/TBR | Open items: None, TBD (to be determined) or TBR (to be reviewed). |
Input/Output (item)
An Input/Output is what crosses the interface: data, power, fluid, force, a signal. It is generated by the Action that produces it, received by the Action that consumes it, and transferred by the Conduits that carry it. Holarch adds these attributes:
| Attribute | Meaning |
|---|---|
| Size and Units | Amount per item, e.g. 2.5 GB. Counted by the capacity check when no Data Rate is set. |
| Data Rate and Data Rate Units | Rate at which the item is conveyed, e.g. 480 Mbps or 6 W. The capacity check sums it. |
| Protocol/Format | Protocol, encoding or physical format. |
| Message/Data Definition | Fields, ranges and meaning of the data the item carries. |
Interface requirements
A requirement on an interface is linked to the Conduit with traced from (the Conduit is traced from the requirement). Requirements the Conduit satisfies are listed too. A requirement created from the interface's requirement picker gets the Interface Requirement label.
Ports and interface blocks
On block diagrams an endpoint can be a Port of a block instead of the block itself. A port can be typed by an Interface Block (an Asset labeled Interface Block that describes the items and flows an interaction point supports) or by an Input/Output. A Conjugated port uses its type with every flow direction reversed and is shown as ~Type.
Capacity check
For each Conduit, Holarch sums the load of every conveyed item (each item's Data Rate, or its Size when no rate is set), converts it to the Conduit's Units, and compares the total with Capacity. Items of a bundle's child conduits count toward the bundle. The result is one of:
| Result | Register text | Meaning |
|---|---|---|
| Within capacity | OK | The total load fits. |
| Over capacity | Over capacity | The total load exceeds Capacity. |
| Unit mismatch | Unit mismatch | At least one item's units do not convert to the Conduit's units; that item is left out of the total. |
| No capacity | No capacity | The Conduit has items but no Capacity, so the load is not checked. |
| Empty | — | The Conduit conveys no items. |
Units are converted with the same unit system as budgets (see Units and quantities), so kbps, Mbps, Gbps, B/s, kW and W mix freely within one kind.
Item flow direction
On an IBD connector each item shows an arrow. The direction comes from, in order: the Actions performed on each side (the side whose Action generates the item sends it), the port Direction attributes (In, Out, In and Out), and finally the connector's own Item Flow setting.
How to use it
When and why
Interface definition follows architecture decomposition and runs alongside functional allocation. Once the system is broken into subsystems and the functions are allocated to them, every function-to-function exchange that crosses a subsystem boundary needs a physical path. Interface management answers four questions:
- What crosses each boundary? The conveyed items, with their rates, formats and data definitions.
- Can the path carry it? The capacity check.
- Who owns it, and is it settled? Owner, Interface Status and TBD/TBR.
- Which requirements govern it, and what do we hand to the other team? Interface requirements and the ICD document.
Typical cadence: draft interfaces at the system requirements review, agree them between owning teams before preliminary design review, and baseline them before critical design review.
Define an interface on an Internal Block Diagram
- Open Architecture → Block Diagrams, open the system's Internal Block Diagram (or create one with + Create Diagram and choose the block).
- Drag one part's edge handle onto another part or port. Choose Connect, Connect To Block or Create Port in the drop menu. The result is a connector, which is a Conduit.
- Select the connector. In the inspector, under Conveyed Items (Item Flows):
- Click a suggestion button such as + Image Strip under Exchanged by the ends: to convey an item the two ends' Actions already exchange, or
- Click + Add Item ▾ and choose Existing Input/Output… or New Input/Output…. The item's name appears in green on the connector with its direction arrow.
- Set Interface Status, Owner and TBD/TBR in the same panel.
- Under Interface Requirements, click + Link Requirement… and pick or create the requirement.
- In the entity attributes, set the Conduit's Capacity and Units, and on each item its Data Rate and Data Rate Units (or Size and Units). The Capacity Check box updates at once.
Result: the connector label shows the status in brackets, e.g. Payload Interface [Agreed]; it turns red with ⚠ over capacity when the load is too high, and orange with ⚠ unit mismatch when units do not convert.
Review all interfaces in the register
- Open Interfaces → Interface Register.
- Read the status cards: Draft, Proposed, Agreed, Baselined, Not set. Click a card to show only those interfaces; click it again, or the Status: … × chip, to show all.
- Type in Filter by name or endpoint to narrow the list.
- Click a row to open the Conduit in the inspector; edit attributes there.
- Look down the Capacity column for Over capacity and Unit mismatch (both shown in red).
- Click Export CSV for a spreadsheet of the register, or ICD on a row for that interface's Word document.
Produce an Interface Control Document
- Open Interfaces → ICDs and click + Create Diagram, or open an existing Interface Control Diagram. Its root is a Conduit that represents the whole interface between two parent assets.
- Click Left Parent Asset is unselected and pick the first parent asset; click Right Parent Asset is unselected and pick the second. Each band then lists that asset's child assets.
- Drag Conduit from the palette onto the centre box to add a child conduit for each physical link. Drag Input/Output onto a child conduit to add an item it carries. Drag Asset into a parent band to add a child asset there.
- Drag from a child conduit to a child asset (or the reverse) and choose connects to to wire the endpoints.
- Select a child conduit and complete its interface panel in the inspector, as on the IBD.
- Click Export ICD Document for the Word ICD, or Export ICD Table for the CSV.
Check interfaces from the functional side
- On a parent Action, open its N² Diagram (Interfaces → N² Diagrams). Child Actions sit on the diagonal; a cell in row A, column B lists the items A generates and B receives.
- Drag a diagonal box into a cell of its row or column and choose New Input/Output, or drag Input/Output from the palette onto an off-diagonal cell. A new item is named after its cell, in the form
<row action> To <column action>. - On the parent Asset, open its Physical I/O Diagram and click Check Model. Every item that flows between two assets but has no Conduit to carry it is listed.
- Fix each warning with 🔧 Repair Line…, or by adding the item to a Conduit on the IBD or ICD.
Worked example: the CubeSat EO-1 payload interface
Create the demo with Manage Projects → Project Files ▾ → Create Demo Project, then:
- Open Interfaces → Interface Register. The cards read 2 Draft, 2 Proposed, 16 Agreed, 6 Baselined and 0 Not set.
- Find IF-05 Payload Interface (C&DH ↔ Payload Camera). Its Capacity column shows Over capacity. Point at it: Over capacity: 480.02 of 400 Mbps (120%).
- Click the row. The inspector shows the Conduit: Capacity
400Mbps, Owner Payload Lead, Medium LVDS twisted pairs plus SPI, Connector/Pins J5 (Micro-D 25). It conveys Command Schedule (0.02 Mbps) and Image Strip (480 Mbps). - The payload's raw strip rate exceeds the LVDS link. Fix it one of three ways:
- Raise the Conduit's Capacity to the link's real rating, e.g.
600. The register then reads OK. - Lower Image Strip's Data Rate after adding on-board compression.
- Record the decision: set TBD/TBR to TBR and link a new requirement with + Link Requirement… on the IBD or ICD.
- Raise the Conduit's Capacity to the link's real rating, e.g.
- Compare IF-12 S-band Downlink: Within capacity: 9.6 of 10 Mbps (96%). It passes but has little margin; it is a candidate for a TPM (the demo tracks it as TPM-3 Payload Downlink Rate, see Budgets & TPMs).
- Open Interfaces → ICDs → IF-10 Space-to-Ground Link. Its left and right parents are the spacecraft and the ground segment; the child conduits are IF-11 UHF Command Uplink (9.6 kbps, Baselined) and IF-12 S-band Downlink (10 Mbps, Baselined). Click Export ICD Document. The Word file opens with the interface register for the three conduits, a status summary, and one section per conduit with its endpoints, attributes, conveyed items (with direction), linked requirements (5.1, 5.2 and 5.3) and capacity check.
- Open the EPS Internal Block Diagram. The 12 V Bus port is typed by the interface block IFB-1 12 V Power Interface; the payload's 12 V In port uses the same type, conjugated, so it reads
12 V In : ~12 V Power Interface.
Tips and good practice
- Name Conduits as nouns (Payload Interface, S-band Downlink) and give each a number (
IF-05). Model Checks flag unnamed, unnumbered and non-noun conduits. - Put the rate on the item, not the conduit: the conduit holds the capacity, the items hold the load. Then one item conveyed by several conduits is checked on each.
- Use a bundle conduit for a harness or link group and child conduits for each line. The ICD diagram is built around this structure.
- Set Interface Status on every conduit. The Not set card should be zero before a design review.
- Reference the interface standard: an Artifact labeled Standard that the conduit and both assets reference. Model check Conduit.7 looks for it.
- Common mistake: an item with Data Rate in
Mbpson a conduit whose Units areW. The register shows Unit mismatch and the item is not counted. Fix the units on whichever side is wrong. - Common mistake: a conduit with only one endpoint. It shows Not connected or one name in Endpoints; connect the second asset with connects to.
How it connects to other features
- Fed by: the architecture (Assets, Blocks and their decomposition), functional analysis (Actions that generate and receive Input/Outputs) and requirements (interface requirements).
- Feeds: the RVTM (interface requirements are verified like any other, see Verification); Model Checks (Conduit.1–9 and IO.1–10); budgets and TPMs (rate margins); review packages and baselines.
- Suggestions: the IBD suggests items to convey from the Actions each end performs, so functional allocation and physical interfaces stay consistent.
Interface Register
The page lists every Conduit in the project. It updates live as the model changes.
Top bar
| Control | Action |
|---|---|
| Export CSV | Downloads Interface Register - <project>.csv: Number, Interface, Endpoints, Status, Owner, TBD/TBR, Items, Requirements, Capacity Check (the full check text), then a Status/Count summary. |
| ICDs | Opens the list of Interface Control Diagrams. |
Status cards
One card per status (Draft, Proposed, Agreed, Baselined) plus Not set, each with its count. Agreed and Baselined cards are green; Not set is amber. Click a card to filter; the chip Status: <status> × clears it. The address interfaces?status=<status> opens the page filtered.
Table
| Column | Content |
|---|---|
| Interface | Number and name; the link opens the Entity View. |
| Endpoints | The two connected entities, A ↔ B, or Not connected. |
| Status | Interface Status, or Not set. |
| Owner | Owner attribute. |
| TBD/TBR | TBD or TBR; blank for None. |
| Items | Number of conveyed items, including child conduits' items. |
| Requirements | Number of linked interface requirements. |
| Capacity | OK, Over capacity, Unit mismatch, No capacity or —. Point at it for the full text. |
| (button) | ICD exports that interface's ICD document (Word). |
Click a row, or focus it and press Enter or Space, to show the Conduit in the inspector. ↑ and ↓ move between rows. Esc clears the selection.
Interface panel in the inspector
When you select a connector on an Internal Block Diagram, or a child conduit or the centre box on an Interface Control Diagram, the inspector shows an interface panel above the entity's attributes:
- Item Flow (IBD only): Undirected, Directed, Reverse or Bidirectional. Used for the item arrows when neither Actions nor port directions decide.
- Conveyed Items (Item Flows): each item with its direction (
EPS → Payload Cameraor both ways). Items from child conduits are marked (child conduit). × stops conveying an item (the item itself stays). With no items: No items. Add the Input/Outputs this connector carries. - Exchanged by the ends: one + <item> button for each item that an Action on one end generates and an Action on the other end receives, but which the conduit does not convey yet.
- + Add Item ▾: Existing Input/Output… (pick one) or New Input/Output… (name it; default New Item).
- Interface Status, Owner (placeholder Person or team) and TBD/TBR.
- Interface Requirements: each linked requirement with traced from or satisfies; × unlinks it. + Link Requirement… opens the picker; a requirement you create there gets the Interface Requirement label. With none: None linked.
- Capacity Check: the check text, red when over capacity.
Port panel
Selecting a port on a block diagram adds:
- Type: the typing Interface Block or Input/Output, or Untyped; Set Type… / Change… opens Port Type (Interface Block or Input/Output); Clear removes it. Typing a port with an Asset adds the Interface Block label to that Asset.
- Conjugated (reverse the type's flows; shown as ~Type).
A typed port reads name : Type; a conjugated one name : ~Type.
Interface Control Diagram
The root of an Interface Control Diagram is a Conduit. The canvas shows the left parent asset band, the right parent asset band, and between them the centre box (the root conduit) with its child conduits as horizontal bars and their items as green tags.
Toolbar
| Control | Action |
|---|---|
| Left: <asset> / Left Parent Asset is unselected | Choose the left parent asset. The root conduit connects to it; a previous left parent is unlinked. |
| Right: <asset> / Right Parent Asset is unselected | Choose the right parent asset. |
| Export ICD Table | Downloads ICD - <name>.csv, one row per child conduit and item (see below). |
| Export ICD Document | Downloads ICD - <name>.docx (see below). |
| Interface Register | Opens a dialog with the register for the root and its child conduits. |
When no parents are saved, the first two assets the root connects to are used.
Palette
| Item | Where to drop it | Result |
|---|---|---|
| Asset | A parent asset band | A child asset of that parent (decomposed by). Otherwise: Drop into a parent asset band. |
| Conduit | The centre conduit box | A child conduit of the root. Otherwise: Drop onto the centre conduit box. |
| Input/Output | A child conduit | The conduit transfers the item. Otherwise: Drop onto a child conduit. |
Existing Assets, Conduits and Input/Outputs can be dragged from the palette's existing-entity list the same way. Anything else: That entity has no place on this diagram.
Editing on the canvas
- Drag from a child conduit to a child asset and choose connects to. Other pairs are refused with Connect a child conduit to a child asset.
- Drag a child asset into the other band to move it to that parent. Drag an item onto another child conduit to move it there.
- Delete on a selection offers to remove it from the diagram (unlink) or delete the entity. Removing a parent band unlinks that parent.
View ▾
| Option | Hides |
|---|---|
| Unit Warnings | The orange tag colour and the ⚠ Input/Outputs' Unit Warning banner shown when an item's units differ from its conduit's. |
| I/O | The item tags. |
| Latency & Capacity | The latency and capacity labels on the centre box and child conduits. |
| Child Assets | The child assets in the bands and their connection lines. |
Each child conduit label shows its status in brackets and Latency: … · Capacity: …, with · over (120%) or · unit mismatch when the capacity check fails; the bar turns red or orange.
ICD Table (CSV) columns
Child Conduit, From Asset, To Asset, I/O, Units, Latency, Capacity, Interface Status, Owner, TBD/TBR, Connector/Pins, Medium, Direction (From → To, To → From or Both), Size, Data Rate, Data Rate Units, Protocol/Format, Message/Data Definition, Requirements, Capacity Check, then one column per custom Conduit attribute (Conduit: <name>) and per custom Input/Output attribute (I/O: <name>).
ICD Document (Word) contents
- Title Interface Control Document: <root>, a line naming the two parent assets and the generation date, and the root's description.
- Interface Register: Interface, Endpoints, Status, Owner, TBD/TBR, Items, Capacity for the root and each child conduit.
- Status Summary: count per status.
- One section per conduit: a table of Endpoints, Status, Owner, TBD/TBR, Connector/Pins, Medium, Latency, Capacity and any custom attributes; Conveyed Items (Item, Direction, Size, Data Rate, Protocol/Format, Message/Data Definition, plus custom I/O attributes); Requirements (Number, Requirement, Statement); Capacity Check.
The ICD button on an Interface Register row produces the same document for that one conduit and its children.
Interface Register dialog
The Interface Register button on the ICD and IBD toolbars opens Interface Register: <name> with the conduits of that diagram: status tags, a table (Interface, Endpoints, Status, Owner, TBD/TBR, Items, Requirements, Capacity) and the option All Conduits in the project. Buttons: Export CSV, Export ICD Document (ICD only) and Close. Empty: No Conduits. Add Conduits to the diagram to list them here.
Physical I/O Diagram
The Physical I/O Diagram of an Asset shows its child assets and draws one line per Input/Output that flows between them, derived from the model: the Actions each asset performs (generates → receives) and the Conduits that connect them. A line with no item (dashed) is a Conduit that carries nothing.
- Roll-up: Actions performed by, and Conduits connected to, any descendant of a shown asset (children, grandchildren, ports) count as that asset's own.
- Externals: assets outside the parent that exchange items with it are drawn in a separate row, marked external.
- Toolbar: Check Model, 🔧 Repair Line (rebuild the selected line), Mark Internal, Mark External (needs a selected asset: Select an asset first.). View ▾: Externals, Warnings.
- Create a line: drag from one asset to another and choose New Input/Output. The Create Input/Output dialog has rows for Input/Output (optional), Conduit, Source Action and Target Action, each with Create, Existing Entity, Edit and Remove, plus Select Directionality and Select Origin (None, A → B, B → A, Bidirectional). Create is enabled once a Conduit and both Actions are set. Toasts: Input/Output line created, Line repaired, Set a Conduit and both Actions first.
Line warnings
| Level | Message |
|---|---|
| Warning | <item> flows between A and B, but no Conduit links them to carry it. |
| Warning | <item> flows between A and B, but none of the Conduits linking A and B carries it. |
| Warning | <item> flows between A and B, but no Action produces or consumes it there. |
| Error | <item> flows between A and B in a direction the connecting Conduit does not allow. |
| Info | <conduit> links A and B but carries no Input/Outputs. |
Warning lines are amber, error lines red. Check Model lists them in Model Check Results; click one to select its line. With none: Check Model found no problems.
N² and I² Diagrams
Both are square matrices built from the root's children.
| N² Diagram | I² Diagram | |
|---|---|---|
| Root | An Action | An Asset |
| Diagonal | Child Actions | Child Assets |
| Cells | Input/Outputs: row generates, column receives | Conduits: row is the origin end, column the other end |
| Top row | External Inputs (received, generated by nothing in the matrix) | To (one-ended conduits into the column) |
| Right column | External Outputs (generated, received by nothing in the matrix) | From (one-ended conduits out of the row) |
| Toolbar | + Action, Delete, Export CSV | + Asset, Delete, Export CSV |
- Add a diagonal element: + Action / + Asset, or drag it from the palette anywhere.
- Add a cell entry: drag a diagonal box into a cell of its own row or column and choose New Input/Output / New Conduit; or drag Input/Output / Conduit from the palette onto an off-diagonal cell. Names that are still the default become
<row> To <column>,To <column>orFrom <row>. - Move an entry: drag its name to another cell; the relationships are rewritten.
- Open: double-click a diagonal box or an entry to open its Entity View.
- Delete: select and press Delete or Backspace, or click Delete: remove from the matrix (unlink) or delete the entity.
- A cell lists up to nine names per column, then two columns, then +N more.
- Export CSV writes
N2 - <root>.csvorI2 - <root>.csvwith the full grid. - Layout tab of the palette: Refresh.
- Errors: Drop onto a cell, Drop onto an off-diagonal cell.
Items & I/O
Interfaces → Items & I/O opens the Database with the query class:"Input/Output". Use it to edit Data Rate, Size, Protocol/Format and Message/Data Definition in bulk, and to find items no conduit carries.
Shortcuts
| Key | Where | Action |
|---|---|---|
| Enter / Space | Interface Register row | Show the interface in the inspector |
| ↑ / ↓ | Interface Register | Move between rows |
| Esc | Interface Register, N²/I² | Clear the selection |
| Delete / Backspace | ICD, N²/I², Physical I/O | Remove or delete the selection |
Messages
| Message | Meaning and fix |
|---|---|
| This project has no interfaces. Add Conduits on an IBD, Physical I/O or ICD diagram to list them here. | No Conduits yet. Draw a connector or add a Conduit. |
| No interface matches this filter. Clear the filter to show every interface. | The text or status filter hides every row. |
| No Capacity set; the load is not checked. | Set Capacity and Units on the Conduit. |
| No conveyed items. | The conduit transfers nothing. Add items. |
| Over capacity: X of Y <unit> (N%). | Raise Capacity, lower item rates, or split the load. |
| N items not counted: units "…" (<item>) do not convert to "<unit>". | Correct the item's or the conduit's units. |
| Document export is not available in this build. | The Word exporter did not load. Reload the page. |
Limits
- The capacity check compares sums of Data Rate (or Size) only; it does not model protocol overhead or duty cycle. Enter effective rates.
- A Conduit is point-to-point; more than two endpoints is flagged by model check Conduit.5.
- An item's Data Rate is counted once per conduit that conveys it, including through a bundle.
Related
- Verification — verify interface requirements and track coverage.
- Budgets & TPMs — units, quantities and margins.
- SysML diagrams — Internal Block Diagrams, ports and connectors.
- Functional Analysis — the Actions and Input/Outputs that interfaces carry.
- Help: Interface Register, Interfaces, Conduits and ICDs, Build the Architecture and Produce an ICD, Internal Block Diagram, Interface Control Diagram, N² Diagram, I² Diagram, Physical I/O Diagram, Model Checks.
Last updated October 7, 2026