Skip to main content
Skip table of contents

Copies of System Blocks

Copy Function

Block reusability is possible with the use of the “Copy” function.

To copy a Block and all its Valis, right-click on the Block and select the "Copy" button as in the Video Creating a Block Copy.

Creating a Block Copy

A replica of the Block with the same name but with a numerical suffix. Once the Block is copied, the copy’s name can be changed and it can be moved anywhere within the Blocks tree in the same Project or to another Project entirely.

Copy & Connect

If you just copy a Block (as mentioned above), any modifications made to the original Block will not be reflected in its copy.

By creating Connected Copies a two-way synch will be setup where changes to a Block’s struture and Valis will be reflected in the other as well and vice-versa.

To create a connected copy, click the "Copy & Connect" button. All changes made to these Blocks' (properties, Valis, sub-systems, etc.) will reflect all of its Connected Copies. Connected Copies can be identified by the chain icon on the Block's cube symbol, as in the Video Creating Block Connected Copies.

Creating Block Connected Copies

Connected Blocks can be traced through the “Connected Copies” field (2) in the Block’s Info field (1) as shown in the Figure Block Info Tab.

image-20240409-145053.png

Block Info Tab

Disconnecting Blocks and Valis

Blocks and Valis can be disconnected. This is done by right-clicking on the Block and subsequently clicking the "Disconnect” option. For a Vali, it is done by clicking the connected symbol on the right side of the screen. Disconnecting specific Valis allows for the creation unique Valis in a connected copy of a Block. All other Valis of the same Block will still be connected as in the Video Disconnecting Blocks.

Disconnecting Blocks

Disconnected Blocks cannot be reconnected, disconnected Valis can be reconnected as long as their Connected Block remains connected.

To disconnect a Vali in a Block (Video Disconnecting and Reconnecting a Vali) click on the three dot icon in the “Actions” column and click “Disconnect”. To reconnect it follow the same procedure and click on the “Reconnect” option.

Disconnecting and Reconnecting a Vali.

The Connected Copy property is not an intrinsic property of Blocks or Vali, it is its own object accessible through the “/instances/component/” and “instances/vali/” endpoints, respectively. These endpoints will return a list of dictionaries, each a grouping of connected copies.

Connected Copy Logic

The following section is meant as a look-up if you would like to know how the System Design Module behaves in edge cases before you apply the change.

A short in-depth overview of the connected-copy behaviour for advanced users.

Blocks:

  • If you create a copy of a Block, the two Blocks and all of their Valis are connected

  • If the Block has child Blocks, these are also copied and connected

  • If you disconnect a Block, all of its Valis are also disconnected

Valis:

  • If the value of a Vali is changed, all connected Valis will be updated with the same value

  • Self-references (a Vali referencing another Vali of its own connected Block) are maintained for connected Valis (they will also reference another Vali of their own Block)

Disconnecting Valis:

  • If a Vali is disconnected, no change is applied to its value

  • If you had three Valis which were connected and you disconnect one, the other Valis still are connected

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.