In the article, you will learn:

  • How to review the block parameters of one block in your model
  • How to review the block parameters of every block in your model

Get the Parameters of a Single Block

If you want to review a Simulink model, you will probably want to access some of the properties of the blocks of your model so that you can write them down somewhere (e.g. in a Word file).

  • Get all block parameters: you can access any field of a Simulink block by using its handle:
    % gcb gives you the path of the block you clicked on 
    pathBlock = gcb;
    % get the handle of the block 
    blockHandle = get_param(pathBlock, 'Handle');
    % get the structure of the desired block with every field 
    block = get(blockHandle)
  • Get a specific block parameter: you can then  access the different fields of your block:
    % get the name of your block
    block.Name
    % get the BlockType of your block
    block.BlockType
    % get the parent of your block
    block.Parent
    % get the LinkStatus of your block
    block.LinkStatus

    The variable “block” of this example is a structure in which every field represents one of the parameters of the block that you clicked on.

Review the Parameters of Every Block

To review your model, all you have to do is apply this to every block:

function getModelInfo(model)
 
% find all the paths of the blocks in your model
blocks = find_system(model, 'LookUnderMasks', 'on', ...
'FollowLinks', 'on', 'LoadFullyIfNeeded', 'on', 'Variants', 'allVariants');
for i = 1:numel(blocks)
    % get the handle of the block
    blockHandle = get_param(blocks{i}, 'Handle');
    % get the structure of the desired block with every field
    block = get(blockHandle)
 
    % get the name of your block
    block.Name
    % get the parent of your block
    block.Parent
end
 
end

The function find_system finds every block of your model. The arguments used in the code above are:

  • LookUnderMasks set to on to find blocks in a subsystem with a mask
  • FollowLinks set to on to find blocks inside library blocks
  • LoadFullyIfNeeded set to on to find blocks in subsystems partially loaded
  • Variants set to allVariants to find blocks in subsystem variants

If you want to learn more about the tools that helped me stop wasting time doing mindless work (such as generating Excel reports, Word documents, or creating clean and simple user interfaces) I wrote a small reference book about it: