The Metamodeler can be used to customize the configuration of tracked and shared model packages in Enterprise Studio. These are the model packages that have their metamodel included, and they are stored in a user's personal storage or on the Team Server.
On this page:
The following types of customizations can be made to a metamodel using in the Metamodeler:
- custom profiles
- custom documentation fields
- custom data types
- custom viewpoint definitions (only ArchiMate® models)
- custom menu definition (only ArchiMate® models)
- custom navigation controls
- changes to translations of existing custom profiles and data types
The elements of a model like objects, relations, diagrams, and views have properties that can be filled. These properties together form the profile of an element.
Example of profiles for an object
Besides the default "Basic" profile, which is assigned to all elements (with properties like "name"), other profiles can be added. This makes it possible to assign specific properties to elements, for example, properties needed in certain analyses.
Additional profiles can be added by defining your own profiles using the Metamodeler.
Custom documentation fields
Enterprise Studio offers extensive possibilities to document elements and to link to other documents or intranet sites. All elements in a model, like objects, relations, diagrams and views and even the model itself, can be provided with documentation text. This documentation is defined in the Documentation window that is available for the elements.
Example of documentation for an object
By default, the Documentation pane contains one tab with a standard name in which you can enter your documentation. It is possible to add additional documentation fields with their own specific tab names, and in which you can define your own specific information.
Additional tabs can be added by defining your own documentation fields in the Metamodeler. It can be done for objects, relations, diagrams, and views.
Custom data types
A data type defines the type of data used for an element, like money values or dates. In addition to the standard data types available in the Metamodeler, you can define custom data types. To create them, a number of basic data types is available like enumeration, struct, list, set, and alias.
Custom viewpoint definitions (only ArchiMate models)
Each metamodel has different types of views that can be used for modeling. These views are defined using viewpoint definitions. Viewpoint definitions define which type of objects can occur on a certain type of view and also define the graphic appearance of the objects. In addition to the standard views available in the metamodel, you can create your own types of views by defining custom viewpoint definitions for them.
Custom menu definition (only ArchiMate models)
The New context menu for adding views to a model can be customized to make your custom views available and hide views that you do not need in your organization.
Other types of customizations, like defining your own object types and relation types, are NOT supported by the Metamodeler. You need to directly edit the Enterprise Studio configuration folder for these types of customizations.
Custom navigation controls
Custom navigation controls can be defined for objects in a model to link one or more other objects and to navigate to these linked objects. A custom navigation control can be configured to refer to a single object or to multiple objects.
Approach for customizations
Once models have been created, it becomes more difficult to change a metamodel as the models may not be consistent anymore with the new version of the metamodel.
In order for changes in a metamodel to become effective, existing model packages have to be migrated. Therefore, it is advised to carefully design the metamodels for your organization upfront and to limit later changes as much as possible to extensions.
There are a few restrictions with respect to customizing the configuration and migrating your model packages. If you want to be able to migrate your model packages to your customized metamodel(s), please take note of the following.
- Removing profiles or profile attributes, or changing the type of an attribute in the configuration is not allowed. However, this can be handled by making elements deprecated.
- Removing data types (enumerations and literals, structs and members, lists, sets, and aliases) or changing their name (identifier) is not allowed. Also, changing the type of a list member is not allowed.
- Removing viewpoint definitions in the configuration or removing elements from a viewpoint definition is not allowed. However, this can be handled by making viewpoint definitions deprecated or making elements in them non-creatable.
- A model package that is to be migrated cannot have uncommitted changes.
Restrictions in type naming
There are some restrictions to the naming of types, profile names, and properties:
- All type definition and profile definition names should be unique.
- All profile names in all profile definitions should be unique.
- A type definition name cannot be equal to a profile definition name.
- A profile internal name cannot contain spaces or special punctuation marks.
Available data types
The properties defined in a profile and defined data types have a type, which defines the type of data used for the element. For example, a property "price" is of the type "money", indicating that a monetary value should be entered when the property is set.
Standard data types
The Metamodeler has the following standard data types available that can be used:
String (regular text)
True or False
A unique value ("Globally Unique IDentifier")
An amount of money (in various currencies)
A real number
String in Rich Text Format
String (regular text)
In the metamodel package, the standard data types are in the Default profiles container of the builtins foundation metamodel.
Custom data types
In addition, several custom data types can be defined. For creating custom data types, the data types mentioned at the available elements for modeling can be used.
Metamodels have two version identifiers: a base version and an optional custom version. Initially, a metamodel only has a base version defined. When customizing your metamodel you have the opportunity to assign an additional custom version. That can be done before implementing the customizations.
ArchiMate® is a registered trademark of The Open Group.