Main Content


Add ports to architecture



ports = addPort(arch,portNames,portTypes) adds a set of ports with specified names portNames and types portTypes. The addPort function adds ports to the architecture of a component or the root architecture of the model. Use <component>.Architecture to access the architecture of a component.

To remove a port, use the destroy function.

ports = addPort(arch,portNames,portTypes,stereotypes) also applies stereotypes specified in stereotypes to a set of new ports.


collapse all

Create a model, get the root architecture, add a component, and add a port.

model = systemcomposer.createModel("archModel");
rootArch = get(model,"Architecture");
newComponent = addComponent(rootArch,"NewComponent");
newPort = addPort(newComponent.Architecture,"NewCompPort","in")
newPort = 

  ArchitecturePort with properties:

                 Parent: [1×1 systemcomposer.arch.Architecture]
                   Name: 'NewCompPort'
              Direction: Input
          InterfaceName: ''
              Interface: [0×0 systemcomposer.interface.DataInterface]
             Connectors: [0×0 systemcomposer.arch.Connector]
              Connected: 0
                  Model: [1×1 systemcomposer.arch.Model]
         SimulinkHandle: 57.0018
    SimulinkModelHandle: 10.0018
                   UUID: 'f3dd03e1-af14-47ed-88c8-0ce301b2da5f'
            ExternalUID: ''

Input Arguments

collapse all

Architecture, specified as a systemcomposer.arch.Architecture object.

Names of ports, specified as a cell array of character vectors or an array of strings. If necessary, System Composer™ appends a number to the port name to ensure uniqueness.

Data Types: char | string

Port types, specified as a cell array of character vectors or an array of strings. Available port types follow:

  • "in"

  • "out"

  • "physical"

  • "client" for software architectures

  • "server" for software architectures

An array of port types gets applied 1:1 with the array of port names.

Data Types: char | string

Stereotypes to apply to ports, specified as an array of strings in the form "<profile>.<stereotype>". Specify one stereotype that gets applied to all ports or an array of stereotypes that gets applied 1:1 with the array of port names.

Data Types: string

Output Arguments

collapse all

Created ports, returned as an array of systemcomposer.arch.ArchitecturePort objects.

More About

collapse all


TermDefinitionApplicationMore Information

A System Composer architecture represents a system of components and how they interface with each other structurally and behaviorally.

Different types of architectures describe different aspects of systems. You can use views to visualize a subset of components in an architecture. You can define parameters on the architecture level using the Parameter Editor.


The root is at the top of an architecture hierarchy. A root architecture has a boundary defined by its architecture ports surrounding the system of interest.

The root architecture has a system boundary surrounding your architecture model. You can add architecture ports that define interfaces across the boundary.

Compose Architectures Visually


A System Composer model is the file that contains architectural information, such as components, ports, connectors, interfaces, and behaviors.

Perform operations on a model:

  • Extract root-level architecture.

  • Apply profiles.

  • Attach interface data dictionaries.

  • Generate instances from model architecture.

A System Composer model is stored as an SLX file.

Create Architecture Model with Interfaces and Requirement Links

A component is a replaceable part of a system that fulfills a clear function in the context of an architecture. A component defines an architectural element, such as a function, another system, hardware, software, or other conceptual entity. A component can also be a subsystem or subfunction.

Represented as a block, a component is a part of an architecture model that can be separated into reusable artifacts. Transfer information between components with:

Compose Architectures Visually


A port is a node on a component or architecture that represents a point of interaction with its environment. A port permits the flow of information to and from other components or systems.

  • Component ports are interaction points on the component to other components.

  • Architecture ports are ports on the boundary of the system, whether the boundary is within a component or the overall architecture model. The root architecture has a boundary defined by its ports.

Compose Architectures Visually


Connectors are lines that provide connections between ports. Connectors describe how information flows between components or architectures.

A connector allows two components to interact without defining the nature of the interaction. Set an interface on a port to define how the components interact.

Compose Architectures Visually

TermDefinitionApplicationMore Information
physical subsystem

A physical subsystem is a Simulink® subsystem with Simscape™ connections.

A physical subsystem with Simscape connections uses a physical network approach suited for simulating systems with real physical components and represents a mathematical model.

Implement Component Behavior Using Simscape
physical port

A physical port represents a Simscape physical modeling connector port called a Connection Port (Simscape).

Use physical ports to connect components in an architecture model or to enable physical systems in a Simulink subsystem.

Define Physical Ports on Component
physical connector

A physical connector can represent a nondirectional conserving connection of a specific physical domain. Connectors can also represent physical signals.

Use physical connectors to connect physical components that represent features of a system to simulate mathematically.

Architecture Model with Simscape Behavior for a DC Motor
physical interface

A physical interface defines the kind of information that flows through a physical port. The same interface can be assigned to multiple ports. A physical interface is a composite interface equivalent to a Simulink.ConnectionBus object that specifies a number of Simulink.ConnectionElement objects.

Use a physical interface to bundle physical elements to describe a physical model using at least one physical domain.

Specify Physical Interfaces on Ports
physical element

A physical element describes the decomposition of a physical interface. A physical element is equivalent to a Simulink.ConnectionElement object.

Define the Type of a physical element as a physical domain to enable use of that domain in a physical model.

Describe Component Behavior Using Simscape

TermDefinitionApplicationMore Information

Stereotypes provide a mechanism to extend the core language elements and add domain-specific metadata.

Apply stereotypes to core element types. An element can have multiple stereotypes. Stereotypes allow you to style different elements. Stereotypes provide elements with a common set of properties, such as mass, cost, and power.


A property is a field in a stereotype. You can specify property values for each element to which the stereotype is applied.

Use properties to store quantitative characteristics, such as weight or speed, that are associated with a model element. Properties can also be descriptive or represent a status. You can view and edit the properties of each element in the architecture model using the Property Inspector.


A profile is a package of stereotypes.

You can use profiles to create a domain of specialized element types. Author profiles and apply profiles to a model using the Profile Editor. You can store stereotypes for a project in one or several profiles. When you save profiles, they are stored in XML files.

Version History

Introduced in R2019a