Holarch

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.

How to use it →

On this page
  1. Overview
  2. Concepts
    1. Conduit
    2. Input/Output (item)
    3. Interface requirements
    4. Ports and interface blocks
    5. Capacity check
    6. Item flow direction
  3. How to use it
    1. When and why
    2. Define an interface on an Internal Block Diagram
    3. Review all interfaces in the register
    4. Produce an Interface Control Document
    5. Check interfaces from the functional side
    6. Worked example: the CubeSat EO-1 payload interface
    7. Tips and good practice
    8. How it connects to other features
  4. Interface Register
    1. Top bar
    2. Status cards
    3. Table
  5. Interface panel in the inspector
    1. Port panel
  6. Interface Control Diagram
    1. Toolbar
    2. Palette
    3. Editing on the canvas
    4. View ▾
    5. ICD Table (CSV) columns
    6. ICD Document (Word) contents
  7. Interface Register dialog
  8. Physical I/O Diagram
    1. Line warnings
  9. N² and I² Diagrams
  10. Items & I/O
  11. Shortcuts
  12. Messages
  13. Limits
  14. Related

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:

PageWhat it shows
Interface RegisterEvery Conduit with endpoints, status, owner, TBD/TBR, item count, requirement count and capacity check.
ICDsThe Interface Control Diagrams in the project (the Diagrams list filtered to that type).
N² DiagramsThe N² Diagrams in the project: functions on the diagonal, the Input/Outputs they exchange in the cells.
Items & I/OThe 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:

AttributeMeaning
Capacity and UnitsThe most the conduit can carry, e.g. 400 Mbps or 15 W. Used by the capacity check.
LatencyDelay across the conduit (a duration).
Connector/PinsConnector type and pin assignment at each end.
MediumPhysical medium, e.g. copper, fibre, RF link, pipe.
OwnerPerson or team responsible for the interface definition.
Interface StatusMaturity of the definition: Draft, Proposed, Agreed or Baselined.
TBD/TBROpen 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:

AttributeMeaning
Size and UnitsAmount per item, e.g. 2.5 GB. Counted by the capacity check when no Data Rate is set.
Data Rate and Data Rate UnitsRate at which the item is conveyed, e.g. 480 Mbps or 6 W. The capacity check sums it.
Protocol/FormatProtocol, encoding or physical format.
Message/Data DefinitionFields, 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:

ResultRegister textMeaning
Within capacityOKThe total load fits.
Over capacityOver capacityThe total load exceeds Capacity.
Unit mismatchUnit mismatchAt least one item's units do not convert to the Conduit's units; that item is left out of the total.
No capacityNo capacityThe 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

  1. Open Architecture → Block Diagrams, open the system's Internal Block Diagram (or create one with + Create Diagram and choose the block).
  2. 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.
  3. 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.
  4. Set Interface Status, Owner and TBD/TBR in the same panel.
  5. Under Interface Requirements, click + Link Requirement… and pick or create the requirement.
  6. 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

  1. Open Interfaces → Interface Register.
  2. 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.
  3. Type in Filter by name or endpoint to narrow the list.
  4. Click a row to open the Conduit in the inspector; edit attributes there.
  5. Look down the Capacity column for Over capacity and Unit mismatch (both shown in red).
  6. 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

  1. 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.
  2. 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.
  3. 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.
  4. Drag from a child conduit to a child asset (or the reverse) and choose connects to to wire the endpoints.
  5. Select a child conduit and complete its interface panel in the inspector, as on the IBD.
  6. Click Export ICD Document for the Word ICD, or Export ICD Table for the CSV.

Check interfaces from the functional side

  1. 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.
  2. 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>.
  3. 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.
  4. 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:

  1. Open Interfaces → Interface Register. The cards read 2 Draft, 2 Proposed, 16 Agreed, 6 Baselined and 0 Not set.
  2. 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%).
  3. Click the row. The inspector shows the Conduit: Capacity 400 Mbps, 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).
  4. 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.
  5. 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).
  6. 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.
  7. 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 Mbps on a conduit whose Units are W. 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

ControlAction
Export CSVDownloads Interface Register - <project>.csv: Number, Interface, Endpoints, Status, Owner, TBD/TBR, Items, Requirements, Capacity Check (the full check text), then a Status/Count summary.
ICDsOpens 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

ColumnContent
InterfaceNumber and name; the link opens the Entity View.
EndpointsThe two connected entities, A ↔ B, or Not connected.
StatusInterface Status, or Not set.
OwnerOwner attribute.
TBD/TBRTBD or TBR; blank for None.
ItemsNumber of conveyed items, including child conduits' items.
RequirementsNumber of linked interface requirements.
CapacityOK, 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 Camera or 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

ControlAction
Left: <asset> / Left Parent Asset is unselectedChoose the left parent asset. The root conduit connects to it; a previous left parent is unlinked.
Right: <asset> / Right Parent Asset is unselectedChoose the right parent asset.
Export ICD TableDownloads ICD - <name>.csv, one row per child conduit and item (see below).
Export ICD DocumentDownloads ICD - <name>.docx (see below).
Interface RegisterOpens 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

ItemWhere to drop itResult
AssetA parent asset bandA child asset of that parent (decomposed by). Otherwise: Drop into a parent asset band.
ConduitThe centre conduit boxA child conduit of the root. Otherwise: Drop onto the centre conduit box.
Input/OutputA child conduitThe 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 ▾

OptionHides
Unit WarningsThe orange tag colour and the ⚠ Input/Outputs' Unit Warning banner shown when an item's units differ from its conduit's.
I/OThe item tags.
Latency & CapacityThe latency and capacity labels on the centre box and child conduits.
Child AssetsThe 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

  1. Title Interface Control Document: <root>, a line naming the two parent assets and the generation date, and the root's description.
  2. Interface Register: Interface, Endpoints, Status, Owner, TBD/TBR, Items, Capacity for the root and each child conduit.
  3. Status Summary: count per status.
  4. 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

LevelMessage
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² DiagramI² Diagram
RootAn ActionAn Asset
DiagonalChild ActionsChild Assets
CellsInput/Outputs: row generates, column receivesConduits: row is the origin end, column the other end
Top rowExternal Inputs (received, generated by nothing in the matrix)To (one-ended conduits into the column)
Right columnExternal 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> or From <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>.csv or I2 - <root>.csv with 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

KeyWhereAction
Enter / SpaceInterface Register rowShow the interface in the inspector
↑ / ↓Interface RegisterMove between rows
EscInterface Register, N²/I²Clear the selection
Delete / BackspaceICD, N²/I², Physical I/ORemove or delete the selection

Messages

MessageMeaning 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.

Last updated October 7, 2026