Logical models

As explained in Working with fragmented models, DevOps Model RealTime enables a model to be split into model files (.emx) and fragment files (.efx). Fragment files are used when a containment hierarchy has to be split on multiple files. The model file contains the root element in the containment hierarchy, typically a package. Elements that are contained in the root element, for example classes, can be stored in separate fragment files. This applies recursively so that elements that are roots of fragment files might in turn contain other elements that are stored in separate fragment files. A set of files that store a model element and its (directly or indirectly) contained elements is called a logical model.

To maintain the consistency between the files in a logical model, some operations that normally work on a file-by-file basis in Model RealTime must apply to all files in the same logical model. A typical example is Save. If you have made a modification that only affects one fragment file, the entire logical model is considered modified and the root element of the enclosing model file is marked as modified (indicated by an asterisk after its name in the Project Explorer). You cannot invoke the Save command only on the modified fragment file. When you do Save, the entire logical model is saved. However, if Model RealTime detects that it is only a single fragment file that actually has been modified, the other files in the logical model are not modified in the file system.

Another example is Merge. To ensure model consistency, merge logical models (one or multiple) rather than individual files. Read more about merge here.