Find all elements with property value
Find Elements Using Query Programmatic Interfaces
Use functions in the System Composer™ query package to filter elements in a model.
Import the package that contains all of the System Composer queries.
Load the model and the profile.
sysModel = systemcomposer.loadModel('mBasicModel'); basicProfile = systemcomposer.loadProfile('mProfile');
Find all components in the model.
allComps = findElementsOfType(sysModel,"Component")
allComps=1×10 object 1x10 Component array with properties: IsAdapterComponent Architecture ReferenceName Name Parent Ports OwnedPorts OwnedArchitecture Parameters Position Model SimulinkHandle SimulinkModelHandle UUID ExternalUID
Find all ports in the model.
allPorts = findElementsOfType(sysModel,"Port")
allPorts=1×19 object 1x19 ComponentPort array with properties: Parent ArchitecturePort Name Direction InterfaceName Interface InheritsInterface Connectors Connected Model SimulinkHandle SimulinkModelHandle UUID ExternalUID
Find all stereotypes in the model.
allStereotypes = findElementsOfType(basicProfile,"Stereotype")
allStereotypes=1×10 object 1x10 Stereotype array with properties: Name Description Parent AppliesTo Abstract Icon ComponentHeaderColor ConnectorLineColor ConnectorLineStyle FullyQualifiedName Profile OwnedProperties Properties
Find all interfaces in the model.
allInterfaces = findElementsOfType(sysModel,"Interface")
allInterfaces=1×7 object 1x7 heterogeneous Interface (ValueType, PhysicalInterface, DataInterface) array with properties: UUID ExternalUID
Find components in the model with a name containing
nameComponents = findElementsWithProperty(sysModel,"Component","Name","c1","contains")
nameComponents=1×2 object 1x2 Component array with properties: IsAdapterComponent Architecture ReferenceName Name Parent Ports OwnedPorts OwnedArchitecture Parameters Position Model SimulinkHandle SimulinkModelHandle UUID ExternalUID
Find all stereotypes in the profile with a name containing
basePortStereotype = findElementsWithProperty(basicProfile,"Stereotype","Name","BasePort","eq")
basePortStereotype = Stereotype with properties: Name: 'BasePort' Description: '' Parent: [0x0 systemcomposer.profile.Stereotype] AppliesTo: 'Port' Abstract: 1 Icon: '' ComponentHeaderColor: [210 210 210] ConnectorLineColor: [168 168 168] ConnectorLineStyle: 'Default' FullyQualifiedName: 'mProfile.BasePort' Profile: [1x1 systemcomposer.profile.Profile] OwnedProperties: [0x0 systemcomposer.profile.Property] Properties: [0x0 systemcomposer.profile.Property]
Find all components in the model using the stereotype
basePorts = findElementsWithStereotype(sysModel,"Port",basePortStereotype)
basePorts=1×18 object 1x18 ComponentPort array with properties: Parent ArchitecturePort Name Direction InterfaceName Interface InheritsInterface Connectors Connected Model SimulinkHandle SimulinkModelHandle UUID ExternalUID
Find all elements using the first two found interfaces.
portsUsingInterfaces = findElementsWithInterface(sysModel,"Port",[allInterfaces(1) allInterfaces(2)])
portsUsingInterfaces=1×2 object 1x2 ComponentPort array with properties: Parent ArchitecturePort Name Direction InterfaceName Interface InheritsInterface Connectors Connected Model SimulinkHandle SimulinkModelHandle UUID ExternalUID
kind — Element type
Element type, specified as one of these options:
propertyName — Property name
Property name, specified as a string.
propertyValue — Property value
numeric | string | logical | value object
Property value, specified as a numeric, string, logical, or
Specify optional pairs of arguments as
the argument name and
Value is the corresponding value.
Name-value arguments must appear after other arguments, but the order of the
pairs does not matter.
Before R2021a, use commas to separate each name and value, and enclose
Name in quotes.
NegateResult — Whether to negate query result
false or 0 (default) |
true or 1
Whether to negate query result, specified as a logical.
IncludeReferences — Option to search through reference architectures
true or 1 (default) |
false or 0
Option to search through reference architectures, specified as a logical.
UseEvaluatedValue — Whether to evaluate value
true or 1 (default) |
false or 0
Whether to evaluate value, specified as a logical.
elements — Elements found
array of component objects | array of port objects | array of connector objects | array of data interface objects | array of data element objects | array of stereotype objects
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.
A System Composer model is the file that contains architectural information, including components, ports, connectors, interfaces, and behaviors.
Perform operations on a model:
A System Composer model is stored as an SLX file.
|Create Architecture Model with Interfaces and Requirement Links|
A component is a nontrivial, nearly independent, and 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, a 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:
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.
These are different types of ports:
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.
A view shows a customizable subset of elements in a model. Views can be filtered based on stereotypes or names of components, ports, and interfaces, along with the name, type, or units of an interface element. Create views by adding elements manually. Views create a simplified way to work with complex architectures by focusing on certain parts of the architectural design.
You can use different types of views to represent the system. Switch between a component diagram, component hierarchy, or architecture hierarchy. For software architectures, you can switch to a class diagram view.
A viewpoint represents a stakeholder perspective that specifies the contents of the view.
An element group is a grouping of components in a view.
Use element groups to programmatically populate a view.
A query is a specification that describes certain constraints or criteria to be satisfied by model elements.
Use queries to search elements with constraint criteria and to filter views.
|Find Elements in Model Using Queries|
A component diagram represents a view with components, ports, and connectors based on how the model is structured.
Component diagrams allow you to programmatically or manually add and remove components from the view.
|Inspect Components in Custom Architecture Views|
You can visualize a hierarchy diagram as a view with components, ports, reference types, component stereotypes, and stereotype properties.
There are two types of hierarchy diagrams:
|Display Component Hierarchy and Architecture Hierarchy Using Views|
Introduced in R2023a