Main Content

Programmatically Specify Block Parameters and Properties

Block parameters typically define model dynamics and mathematics. They also let you configure the appearance of the block. Whether a block has parameters that you can set and the nature of those parameters is specific to each block.

Block properties typically describe fundamental block characteristics and help determine when the block executes. Block properties include block annotations, callbacks that execute when a block event occurs, execution order priority, and tags that help identify the block.

To write scripts that create and modify models, use the get_param and set_param functions to query and modify block property and parameter values. For example, suppose you have a Gain block in a model named mymodel.

  • This command sets the Gain parameter of the Gain block to 2.

    set_param("mymodel/Gain",Gain="2")
  • This command orients the Gain block to the left. By default, the block faces the opposite direction.

    set_param("mymodel/Gain",Orientation="left")
    
  • This command associates an OpenFcn callback with the Gain block.

    set_param("mymodel/Gain",OpenFcn="my_open_cb")
    
  • This command sets the Position property of the Gain block. The block is 75 pixels wide by 25 pixels high.

    set_param("mymodel/Gain",Position=[50 250 125 275])
    

For background information on programmatic modeling, see Programmatic Modeling Basics.

For information about how to specify paths that contain multiline names or special characters, see Specify Paths That Contain Multiline Names and Special Characters.

Block-Specific Parameters

Most block-specific parameters are documented on the page that documents the block. For example, the parameters of the Gain block are documented on the Gain block reference page. For programmatic information on a parameter, expand the corresponding parameter entry on the block reference page.

For a script that gets and sets the values of the block-specific parameters, select a block and open the Property Inspector. In the Property Inspector, click Script Reference. The script gets the parameter values with the get_param function and sets the parameter values with the set_param function. If you change the value of a parameter, the script updates to reflect the new value.

Script Reference section of the Property Inspector for a Gain block

To get a list of programmatic block parameters, select a block. Then, query one of these properties with the get_param function.

  • DialogParameters — Block-specific parameters for an unmasked block, or mask parameters for a masked block.

  • IntrinsicDialogParameters — Block-specific parameters for masked or unmasked blocks.

  • ObjectParameters — Block-specific parameters and common block properties.

Some of the returned parameters and properties can be for internal use only. When a block property or parameter is undocumented, consider that parameter to be for internal use only.

Common Block Properties

A common property of Simulink® objects is the read-only Type property. For blocks, this property returns 'block'.

Each block has a block type. For some blocks, the block type is the same as the block name in the Library Browser. For example, the block type of a Gain block is Gain. For other blocks, the block type differs from the block name in the Library Browser. For example, the block type of an Add block is Sum.

  • To get the block type for blocks without a mask, query the read-only BlockType property with the get_param function.

  • To get the block type for blocks with a mask, query the MaskType property with the get_param function. Typically, masked blocks have a BlockType of SubSystem.

For information about the properties of a masked block, see Mask Parameters.

For information about block callback properties, see Block Callbacks.

These tables list additional properties common to Simulink blocks.

Common Block Properties: Names and Handles

PropertyDescriptionValues

Handle (read-only)

Numeric block handle.

Assign the handle to a variable and use that variable name to specify the block. The handle applies to only the current MATLAB® session.

double number

InputSignalNames (read-only)

Names of input signals.

cell array

LineHandles (read-only)

Handles of lines connected to block.

Assign a line handle to a variable and use that variable name to specify the line. The handle applies to only the current MATLAB session.

structure

Name

Block or signal name.

To specify a signal name, use the corresponding port or line handle.

ports = get_param(gcb,"PortHandles");
out1 = ports.Outport(1);
set_param(out1,Name="NewName");

To propagate the signal name, compile the model.

set_param(gcs,SimulationCommand="update");

Alternatively, to name an output signal of a block, use SignalNameFromLabel.

character vector

OutputSignalNames (read-only)

Names of output signals.

cell array

Parent (read-only)

Name of the system that owns the block.

character vector

PortHandles (read-only)

Handles of the block ports.

Assign a port handle to a variable and use that variable name to specify the port. The handle applies to only the current MATLAB session.

The structure has these fields:

  • Inport — Handles of the input ports

  • Outport — Handles of the output ports

  • Enable — Handle of the enable port

  • Trigger — Handle of the trigger port

  • State — Handle of the state port

  • LConn — Handles of the left connection ports for blocks that support physical modeling tools

  • RConn — Handles of the right connection ports for blocks that support physical modeling tools

  • Ifaction — Handle of the action port

  • Reset — Handle of the reset port

  • Event — Handles of the subsystem reinitialize event ports

structure array

Common Block Properties: Ports

PropertyDescriptionValues

CompiledBusType (read-only)

Returns whether the port connects to a virtual bus or nonvirtual bus.

To get compiled information about the port, use the corresponding port or line handle and compile the model.

ports = get_param(gcb,"PortHandles");
out1 = ports.Outport;
feval(gcs,[],[],[],"compile");
bt = get_param(out1,"CompiledBusType")
feval(gcs,[],[],[],"term");

See Display Bus Information.

'NOT_BUS' | 'VIRTUAL_BUS' | 'NON_VIRTUAL_BUS'

CompiledPortComplexSignals (read-only)

Complexity of port signals after updating diagram.

To get compiled information about the ports, compile the model.

feval(gcs,[],[],[],"compile");
cs = get_param(gcb,"CompiledPortComplexSignals")
feval(gcs,[],[],[],"term");
structure array

CompiledPortDataTypes (read-only)

Data types of port signals after updating diagram.

To get compiled information about the ports, compile the model.

feval(gcs,[],[],[],"compile");
dt = get_param(gcb,"CompiledPortDataTypes")
feval(gcs,[],[],[],"term");
structure array

CompiledPortDesignMin (read-only)

Design minimum of port signals after updating diagram.

To get compiled information about the port, use the corresponding port or line handle and compile the model.

ports = get_param(gcb,"PortHandles");
out1 = ports.Outport;
feval(gcs,[],[],[],"compile");
min = get_param(out1,"CompiledPortDesignMin")
feval(gcs,[],[],[],"term");
structure array

CompiledPortDesignMax (read-only)

Design maximum of port signals at compile time.

To get compiled information about the port, use the corresponding port or line handle and compile the model.

ports = get_param(gcb,"PortHandles");
out1 = ports.Outport;
feval(gcs,[],[],[],"compile");
max = get_param(out1,"CompiledPortDesignMax")
feval(gcs,[],[],[],"term");
structure array

CompiledPortDimensions (read-only)

Dimensions of port signals after updating diagram.

To get compiled information about the port, use the corresponding port or line handle and compile the model.

ports = get_param(gcb,"PortHandles");
out1 = ports.Outport;
feval(gcs,[],[],[],"compile");
d = get_param(out1,"CompiledPortDimensions")
feval(gcs,[],[],[],"term");

For details, see Get Compiled Port Dimensions.

numeric array

CompiledPortDimensionsMode (read-only)

Indication of whether the port signal has a variable size after updating diagram. 0 indicates the signal does not have a variable size. 1 indicates the signal has a variable size.

To get compiled information about the port, use the corresponding port or line handle and compile the model.

ports = get_param(gcb,"PortHandles");
out1 = ports.Outport;
feval(gcs,[],[],[],"compile");
dm = get_param(out1,"CompiledPortDimensionsMode")
feval(gcs,[],[],[],"term");

See Determine Whether Signal Line Has Variable Size.

double number

CompiledPortFrameData (read-only)

Frame mode of port signals after updating diagram.

To get compiled information about the port, use the corresponding port or line handle and compile the model.

ports = get_param(gcb,"PortHandles");
out1 = ports.Outport;
feval(gcs,[],[],[],"compile");
fd = get_param(out1,"CompiledPortFrameData")
feval(gcs,[],[],[],"term");
structure array

CompiledPortUnits (read-only)

Structure array of block port units after updating diagram.

To get compiled information about the port, compile the model.

feval(gcs,[],[],[],"compile");
units = get_param(gcb,"CompiledPortUnits")
feval(gcs,[],[],[],"term");
structure array

CompiledPortWidths (read-only)

Structure of port widths after updating diagram.

To get compiled information about the port, compile the model.

feval(gcs,[],[],[],"compile");
units = get_param(gcb,"CompiledPortWidths")
feval(gcs,[],[],[],"term");
structure array

IOSignalStrings

Block paths to objects that are connected to the Viewers and Generators Manager. The software saves these paths when the model is saved.

list

PortConnectivity (read-only)

Array of structures, each of which describes one of the block input or output ports. Each port structure has these fields:

  • Type — Port type, port number, or both. The value can be:

    • n, where n is the number of the port for data ports

    • 'enable' if the port is an enable port

    • 'trigger' if the port is a trigger port

    • 'state' for state ports

    • 'ifaction' for action ports

    • 'LConn#' for a left connection port where # is the port number

    • 'RConn#' for a right connection port where # is the port number

    • 'event' for reinitialize event ports of subsystems

  • Position — A two-element vector, [x y], that specifies the port position.

  • SrcBlock — Handle of the block connected to this port. For output ports, the value is []. For unconnected input ports, the value is -1. The SrcBlock property is a valid source handle for Variant Subsystem blocks.

  • SrcPort — Number of the port connected to this port, starting at zero. For both output ports and unconnected input ports, the value is [].

  • DstBlock — Handle of the block to which this port is connected. For input ports, the value is []. For unconnected output ports, the value is a 1-by-0 empty matrix.

  • DstPort — Number of the port to which this port is connected, starting at zero. For input ports, the value is []. For unconnected output ports, the value is a 1-by-0 empty matrix. For Simscape™ blocks, the value is port handles.

structure array

PortRotationType (read-only)

Type of port rotation used by this block.

'default' | 'physical'

Ports (read-only)

Number of each kind of port this block has.

The order of the elements in the returned vector corresponds to these port types:

  • Inport — Input port

  • Outport — Output port

  • Enable — Enable port

  • Trigger — Trigger port

  • State — State port

  • LConn — Left connection port

  • RConn — Right connection port

  • Ifaction — Action port

  • Reset — Reset event port

  • Event — Reinitialize event port

vector

SignalHierarchy (read-only)

If the signal is a bus, returns the name and hierarchy of the elements in the bus.

To get the signal hierarchy, use the corresponding port or line handle and compile the model.

ports = get_param(gcb,"PortHandles");
out1 = ports.Outport;
feval(gcs,[],[],[],"compile");
sh = get_param(out1,"SignalHierarchy")
feval(gcs,[],[],[],"term");

See Display Bus Information.

values that reflect the structure of the signal

Common Block Properties: Behavior

PropertyDescriptionValues
CommentedExclude block from simulation.

'off' (default) | 'on' | 'through'

CompiledIsActive (read-only)

Specifies whether the block status is active at compile time.

CompiledIsActive returns off if any one of these conditions is true at compile time:

  • Block is an inactive path of an inline variant.

  • Block is an inactive choice of a variant subsystem.

  • Block is in a subsystem that is commented out.

  • Block is inactive due to a condition propagated from a variant subsystem.

CompiledisActive returns off for inactive choices and returns on for active choices of a variant subsystem.

'off' | 'on'

CompiledSampleTime (read-only)

Block sample time after updating diagram.

To get the sample time, compile the model.

feval(gcs,[],[],[],"compile");
ts = get_param(gcb,"CompiledSampleTime")
feval(gcs,[],[],[],"term");

vector or cell array of sample time and offset time, respectively

IsStateOwnerBlock (read-only)

Indicates whether the block is a supported state owner block that can be used with the State Reader and State Writer blocks.

'off' | 'on'

ExtModeLoggingSupported (read-only)

Enable a block to support uploading of signal data in external mode, for example, with a scope block.

'off' (default) | 'on'

ExtModeLoggingTrig

Enable a block to act as the trigger block for external mode signal uploading.

'off' (default) | 'on'

ExtModeUploadOptionEnable a block to upload signal data in external mode when the Select all check box on the External Signal & Triggering dialog box is not selected. A value of log indicates the block uploads signals. A value of none indicates the block does not upload signals. The value monitor is currently not in use. If the Select all check box on the External Signal & Triggering dialog box is selected, it overrides this parameter setting.'none' (default) | 'log' | 'monitor'

Selected

Status of whether or not block is selected.

'on' (default) | 'off'

StatePerturbationForJacobian

State perturbation size to use during linearization. For details, see Change Perturbation Level of Blocks Perturbed During Linearization (Simulink Control Design).

character vector

Priority

Specifies the block order of execution relative to other blocks in the same model. Set by the Priority field on the General pane of the Block Properties dialog box.

'' (default) | character vector

Common Block Properties: Appearance

PropertyDescriptionValues

BackgroundColor

Block background color.

'black' | 'white' | 'red' | 'green' | 'blue' | 'cyan' | 'magenta' | 'yellow' | 'gray' | 'lightBlue' | 'orange' | 'darkGreen' | '[r,g,b]' | '[r,g,b,a]', where r, g, and b are the red, green, and blue values of the color in the range 0.0 to 1.0. If specified, the alpha value (a) is ignored.

BlockMirrorBlock mirror.

'off' (default) | 'on'

BlockRotation

Block rotation angle.

For 0 degrees rotation, the value is 0. For 270 degree rotation, the value is 270.

double number

DropShadow

Display drop shadow.

'off' (default) | 'on'

FontAngle

Font angle.

'auto' (default) | 'normal' | 'italic' | 'oblique'

FontName

Font name.

character array

FontSize

Font size.

A value of -1 specifies that this block inherits the font size specified by the DefaultBlockFontSize model parameter.

'-1' (default) | real

FontWeight

Font weight.

'auto' (default) | 'light' | 'normal' | 'demi' | 'bold'

ForegroundColor

Foreground color of block icon.

The value changes if it is too similar to the canvas color specified by the ScreenColor parameter. To get the actual value, use the get_param function.

'black' | 'white' | 'red' | 'green' | 'blue' | 'cyan' | 'magenta' | 'yellow' | 'gray' | 'lightBlue' | 'orange' | 'darkGreen' | '[r,g,b]' | '[r,g,b,a]', where r, g, and b are the red, green, and blue values of the color in the range 0.0 to 1.0. If specified, the alpha value (a) is ignored.

HideAutomaticName

Specify whether the block name given automatically by the Simulink Editor displays in the model.

For information on using this parameter, see Hide or Display Block Names.

'on' (default) | 'off'

NamePlacement

Position of block name.

'normal' (default) | 'alternate'

Orientation

Direction block faces.

'right' (default) | 'left' | 'up' | 'down'

Position

Position of block in model window.

The origin is the upper-left corner of the Simulink Editor canvas before any canvas resizing. Supported coordinates are between -1073740824 and 1073740823, inclusive. Positive values are to the right of and down from the origin. Negative values are to the left of and up from the origin.

To help with block alignment, the position you set can differ from the actual block position by a few pixels. To return the actual position, use the get_param function.

vector of coordinates, in pixels: [left top right bottom]

ShowName

Display or hide block name.

For information on using this parameter, see Hide or Display Block Names.

'on' (default) | 'off'

Common Block Properties: Metadata

PropertyDescriptionValues

AttributesFormatString

Block annotation text that corresponds to block properties.

character vector

BlockDescription (read-only)

Block description shown at the top of the block parameters dialog box or property inspector.

character array

Description

Description of block. Set by the Description field in the General pane of the Block Properties dialog box.

text and tokens

RTWData

User specified data, used by Simulink Coder™ software. Intended only for use with user written S-functions. For details, see S-Function RTWdata (Simulink Coder).

structure of character vectors

Tag

Text that appears in the block label that Simulink software generates. Set by the Tag field on the General pane of the Block Properties dialog box.

'' (default) | character vector

UserData

User-specified data that can have any MATLAB data type.

'[]' (default)

UserDataPersistent

Status of whether or not UserData will be saved in the model file.

'off' (default) | 'on'

Common Block Properties: Libraries

PropertyDescriptionValues

AncestorBlock

Name of the library block that the block is linked to for blocks with a disabled link.

character vector

BlockKeywords

Associates one or more keywords with a custom library block.

character vector | string scalar | string array

LibraryVersion

For a linked block, the initial value of this property is the ModelVersion of the library at the time the link was created. The value updates with increments in the model version of the library.

'1.1' (default) | character vector

LinkData

Array of details about changes to the blocks inside the link that differ between a parameterized link and its library, listing the block names and parameter values. Use [] to reset to deparameterized, for example, set_param(gcb,'linkData',[]).

cell array

LinkStatus

Link status of block. Updates out-of-date linked blocks when queried using the get_param function.

See Control Linked Blocks Programmatically.

'none' | 'resolved' | 'unresolved' | 'implicit' | 'inactive' | 'restore' | 'propagate' | 'propagateHierarchy' | 'restoreHierarchy'

ReferenceBlock

Name of the library block to which this block links.

'' (default) | character vector

StaticLinkStatus (read-only)

Link status of block. Does not update out-of-date linked blocks when queried using the get_param function. See also LinkStatus.

'none' | 'resolved' | 'unresolved' | 'implicit' | 'inactive' | 'restore' | 'propagate' | 'propagateHierarchy' | 'restoreHierarchy'

Some common block properties are for internal use only. For example, these properties are for internal use only:

  • DataTypeOverride_Compiled

  • Diagnostics

  • HiliteAncestors

  • IOType

  • MinMaxOverflowLogging_Compiled

  • ModelParamTableInfo

  • RequirementInfo

Maximum Size Limits for Block Parameter Values

For block parameters that accept array values, the number of elements in the array cannot exceed what int_T can represent. This limitation applies to both simulation and Simulink Coder code generation.

The maximum number of characters that a parameter edit field can contain is 49,000.

See Also

|

Related Topics