Main Content


Group blocks into functional subsystems, create model hierarchy

As a model increases in size and complexity, you can simplify it by grouping blocks into subsystems. A subsystem is a set of blocks that you group into a single Subsystem block.

Using subsystems:

  • Establishes a hierarchical block diagram, where a Subsystem block is on one layer and the blocks that make up the subsystem are on another.

  • Keeps functionally related blocks together.

  • Helps reduce the number of blocks displayed in your model window.

  • Establishes an interface with inputs and outputs.

When you make a copy of a subsystem, that copy is independent of the source subsystem. To reuse the contents of a subsystem across a model or across models, consider referenced subsystems, referenced models, or subsystems linked to a block in a custom library. For more information, see Choose Among Types of Model Components.

A subsystem can be virtual or nonvirtual. A virtual subsystem provides graphical hierarchy in a model. A nonvirtual subsystem provides graphical hierarchy and executes as a unit within a model.


SubsystemGroup blocks to create model hierarchy


expand all

Simulink.BlockDiagram.createSubsystemCreate subsystem containing specified set of blocks
Simulink.BlockDiagram.copyContentsToSubsystemCopy graphical contents from system to empty subsystem
Simulink.BlockDiagram.expandSubsystemReplace subsystem with subsystem contents
Simulink.SubSystem.convertToModelReferenceConvert subsystem to model reference
Simulink.SubSystem.copyContentsToBlockDiagramCopy graphical contents from subsystem to empty system
Simulink.SubSystem.deleteContentsDelete contents of subsystem
convertAllSubsystemReferenceBlockToSubsystemConverts all subsystem reference blocks to regular Subsystem blocks
convertSubsystemReferenceBlockToSubsystemConverts a subsystem reference block to a regular Subsystem block
convertSubsystemToSubsystemReferenceConverts a Subsystem block to subsystem reference
getActiveInstancesReturns all the active instances of subsystem references
getAllDirtyInstancesReturns child Subsystem block diagrams that are referred in the given block diagram and are also being edited
getAllInstances Returns all subsystem reference blocks inside a block diagram
getAllReferencedSubsystemBlockDiagrams Returns all the child Subsystem block diagrams for a given block diagram
getNearestParentSubsystemReferenceBlock Returns the nearest parent subsystem reference for a block
getSystemOwningTheLockReturns the system that has acquired the lock for editing
isSystemLocked Checks if the system is locked due to an edit or update to the subsystem reference
Simulink.SubsystemReference.generateSignaturesGenerate unit test signatures of subsystem file
Simulink.SubsystemReference.getUnitTestNamesReturn names of unit tests of subsystem file
Simulink.SubsystemReference.removeSignaturesRemove previously generated unit test signatures of subsystem file
Simulink.SubsystemReference.showSignatureDiffDialogForSSOpen dialog to show difference in signatures of two subsystem blocks
Simulink.SubsystemReference.showSignatureDiffDialogForUnitTestsOpen dialog to show difference in signatures of subsystem reference instance with unit test signatures


Model Reference Conversion AdvisorConvert subsystems to referenced models
Referenced Files PaneView, save, and close referenced subsystems and models



Subsystem References