ts What they are and what they tie to (Cameo System
Purpose: Give a quick, practical study guide on Ports in SysML (as used in Cameo Systems
Modeler) and how they connect to types, interfaces, and item flows.
Audience: Modelers who already create BDD/IBD diagrams and want a crisp reference for ports,
compatibility, and best practices.
Scope: Proxy ports, Full ports, legacy Flow ports/Flow specifications, Standard (UML) ports;
connectors, item flows, conjugation, and tool tips for Cameo.
© 2025 Study guide prepared for personal educational use.
1) Ports in SysML quick overview
Port = a typed interaction point on a Block. It exposes a set of features/flows that can be
connected via connectors.
Key kinds you ll see in modern SysML projects:
Proxy Port (SysML 1.3+): typed by an InterfaceBlock; exposes flow
properties/operations/requirements of that interface.
Full Port: typed by a Block (or ValueType); represents an internal part with its own
features.
Flow Port (legacy 1.2): typed by a FlowSpecification or item type; replaced by
InterfaceBlock + Proxy Port in 1.3+.
Standard Port (UML): provides/requires Interfaces; still encountered in older models.
What ports tie to: a Type (Block, InterfaceBlock, ValueType, FlowSpecification) that defines
the exposed features or flows.
Remember: in Cameo, the Type you select for a port dictates what it can legally connect to.
2) What Ports tie to (and how that affects connections)
Proxy Port typed by InterfaceBlock
InterfaceBlock contains flow properties (in/out/inout), operations, and signals. These
become the port s contract.
Use conjugation (~) to flip in/out directions so two ports can connect properly.
Full Port typed by Block (or ValueType)
Exposes the features of that Block (attributes, operations). Often used when the external
interface is literally a contained subsystem.
Compatibility is based on feature subsets: the provider must meet the consumer s needed
features.
Flow Port (legacy) typed by FlowSpecification or an Item Type
FlowSpecification lists flows and directions; deprecated in favor of InterfaceBlock+Proxy
Port.
Standard Port (UML) typed by Interfaces (provided/required)
Use InterfaceRealization to indicate provided interfaces; Required interfaces are needed
from the environment.
Tip: Prefer Proxy Ports + InterfaceBlocks for new work; reserve Full Ports for subsystem at the boundary patterns.
3) Connectors, Item Flows, and Directionality
Assembly Connectors link compatible ports/parts. Compatibility depends on features/flow
directions.
Item Flows specify WHAT travels across a connector (e.g., a ValueType like Watt, a Signal, or a
Block).
In Cameo, add an Item Flow to a connector and choose the conveyed classifier(s).
Directionality & Conjugation:
Proxy Port directions come from flow properties of the InterfaceBlock.
Conjugated ports (~) invert in/out so that two sides align.
Binding Connectors equate values (not for structural coupling); useful in parametric contexts.
Heuristic: if you re sending/receiving data/energy, add Item Flows; if you need equal values, use Binding.
4) Cameo Systems Modeler practical steps
Create a Proxy Port:
On an IBD, select the block part; add a port; in properties, set Kind to Proxy and
Type to an InterfaceBlock.
Define an InterfaceBlock on the BDD with flow properties (unit, quantity kind) and any
operations/signals.
For opposite direction, set Is Conjugated = true (~).
Create a Full Port:
Add a port; set Kind = Full; choose a Block as the type. That Block s features are now
exposed at the boundary.
Add an Item Flow on a Connector:
Select the connector New Item Flow set conveyed elements (ValueType/Signal/Block).
Validation:
Run model validation to catch incompatible ports, missing types, or untyped connectors
early.
Display options: In Cameo, use Smart Package and diagram display styles to show port types and item flows clearly.
5) Compatibility rules & common gotchas
Proxy ports connect if provided/required features (via InterfaceBlocks) are compatible; use
conjugation when needed.
Full ports connect if the exposed features of their types are compatible; avoid overexposing
internals accidentally.
Don t mix legacy Flow Ports and Proxy Ports on the same new interface pick one approach (prefer
Proxy Ports).
Keep units/quantity kinds consistent across flow properties to avoid semantic mismatches.
If nothing connects, check: (a) port type is set, (b) proxy vs full mismatch, (c) missing
conjugation, (d) item flow classifier not defined.
Rule of thumb: Model the contract first (InterfaceBlock/flows), then add ports/parts and hook them up.
Block A
Block B
Connector with ItemFlow: EnergyPacket
p1: ProxyPort q1 (conjugated)
(type:(type:
InterfaceBlock
InterfaceBlock
IB) IB~)
Assembly Connector (features compatible)
p2: FullPort
q2: FullPort
(type: Block
(type:Subsystem)
Block Subsystem)
Proxy port typed by IB
<<interfaceBlock>>
IB
in power: Watt
out status: Status
6) Cheat sheet
Port kind
Typed by
Ties to / conveys
Best for
Notes
conjugation (~) to
Flow properties, ops, Well-defined external Use
Proxy Port
InterfaceBlock
flip
in/out;
preferred
in
signals
via theofinterface
The
features
the contracts
Avoid
exposing
too much
SysML
1.3+
Subsystem-at-the-boundary
Full Port
Block (or ValueType) internal part
internals;
ensures
patterns
Deprecated
in favortype
of =
(attributes/ops)
internal
block
FlowSpecification
/
Item
Data/energy
with
Flow Port (legacy)
Maintaining older models
Proxy
Port +
Type
in/out/inout
Use
InterfaceRealization
InterfaceBlock
Interface
Provided/required
Standard Port (UML) (provided/required) operations
Older UML-centric models
to define provided
interfaces
Memorize this mapping; it answers 80% of port questions during reviews.
7) Practice tasks (10 15 minutes each)
Build an InterfaceBlock with two flow properties (in: Watt, out: Status). Connect two Blocks
with proxy ports and add an item flow of Watt.
Refactor a legacy Flow Port interface into a Proxy Port + InterfaceBlock. Validate
compatibility using conjugation.
Create a Full Port representing a Pluggable Power Module. Expose its status operation and
connect it to a monitoring block.
Add units/quantity kinds to all flow properties and show them in the diagram. Run validation
and resolve warnings.
Pro tip: Keep a small library diagram for common InterfaceBlocks you reuse across systems.