Main Content


Add variant components to architecture



variants = addVariantComponent(arch,variantComponents) adds a set of variant components specified by the array of names.

To remove a variant component, use the destroy function.

variants = addVariantComponent(___,'Position',position) creates variant components in the architecture at a given position.


collapse all

Create a model, get its root architecture, and create two variant components.

model = systemcomposer.createModel("archModel");
arch = get(model,"Architecture");
names = ["Component1","Component2"];
variantComps = addVariantComponent(arch,names)
variantComps=1×2 VariantComponent array with properties:

Input Arguments

collapse all

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

Names of variant components, specified as a cell array of character vectors or an array of strings.

Data Types: char | string

Vector that specifies location of top corner and bottom corner of component, specified as a 1x4 numeric array. The array denotes the top corner in terms of its x and y coordinates followed by the x and y coordinates of the bottom corner. When adding more than one variant component, a matrix of size [Nx4] may be specified where N is the number of variant components being added.

Data Types: double

Output Arguments

collapse all

Variant components, returned as an array of systemcomposer.arch.VariantComponent objects. This array is the same size as variantComponents.

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

A variant is one of many structural or behavioral choices in a variant component.

Use variants to quickly swap different architectural designs for a component while performing analysis.

Create Variants
variant control

A variant control is a string that controls the active variant choice.

Set the variant control programmatically to control which variant is active.

Set Variant Control Condition

Version History

Introduced in R2019a