Referenced dictionaries in System Composer™ may be useful when multiple models need to share some, but not all, interface definitions. and to allow communication between the models. A data dictionary can reference one or more other data dictionaries. The interface definitions in the referenced dictionaries are visible in the parent dictionary and can be used by a model that is linked to the parent dictionary.
For interfaces terminology, see Define Port Interfaces Between Components.
To create a data dictionary from interfaces in a model dictionary, see Manage Interfaces with Data Dictionaries.
To add a dictionary reference, open the Model Explorer by clicking , or by navigating to Modeling > Design > Model Explorer.
On the right side of the Model Explorer window, click Add, then select the file name of the data dictionary to add as a referenced dictionary. To remove a dictionary reference, highlight the referenced dictionary, then click Remove.
The Interface Editor shows all interfaces accessible to a model, grouped based on their
data dictionary files. In this example,
myDictionary.sldd is the data
dictionary linked to the model, and
otherDictionary.sldd is a referenced
The model can use any of the interfaces listed. However, you cannot modify the contents of the referenced dictionaries from the model.
Referenced dictionaries can reference other data dictionaries. A model that links to a dictionary has access to all interface definitions in referenced dictionaries, including indirectly referenced dictionaries.
A project may contain multiple models, and it may be useful for the models to share interface definitions that are relevant to data flows and other communications between models. For more information, see Organize System Composer Files in a Project,
At the same time, each model may have interface definitions that are relevant only to its internal operations. For example, different components of a system may be represented by different models, with different teams or different suppliers working on each model, with a system integrator working on the "top" model that incorporates the various components. Referenced data dictionaries provide a way for models to share some but not all interface definitions.
In such a multiple-team project, set up a "shared artifacts" data dictionary to store interface definitions that will be shared by different teams, then set up a data dictionary for each model within the project to store its own interface definitions. Each data dictionary can then add the shared data dictionary as a referenced data dictionary. Alternatively, if a model does not need its own interface definitions, that model can link directly to the shared data dictionary.
The above diagram depicts a project with three models. The model
mSystem.slx represents a system integration model, and
mSuppierB.slx represent supplier
models. The data dictionary
dShared.sldd contains interface definitions
shared by all the models. The system integration model is linked to the data dictionary
dSystem.sldd, and the Supplier A model is linked to the data dictionary
dSupplierA.sldd; each data dictionary contains interface definitions
relevant to the corresponding model's internal workflow. The data dictionaries
dSupplierA.sldd both reference the
dShared.sldd. The Supplier B model, by contrast, is
linked directly to the shared dictionary
dShared.sldd. In this way, all
three models have access to the interface definitions in
The following diagrams show the system integration model
along with the Interface Editor. Interface definitions contained in the referenced
dShared are associated with the ports used to communicate
between the models
mSupplierB and the
rest of the system integration model.
The following diagrams show the supplier model
mSupplierA, along with
the Interface Editor. Interface definitions contained in the referenced dictionary
dShared are associated with the ports used to communicate externally,
while interface definitions in the private dictionary
associated with ports whose use is internal to the