Add letters to distinguish between layers - archimatetool/archi GitHub Wiki

This page is based on issue 870, issue 907 and this forum discussion.

Some examples shown into the ArchiMate specification show a custom notation with a letter on the top left corner. This letter is used to indicate from which layer the element comes from.

Here's an example:

The letter notation is not official but an example of some method to remove ambiguity when custom colors are used or when people are color blind. It is not implemented in Archi and (in most cases) is not even needed:

  • A good architecture diagram should not need such thing to distinguish between layers as there should be no ambiguity in 90% of the cases (the viewpoint used, the view title and the legend should be enough). One would even argue that if there is ambiguity, then this is an issue with the view itself, not the person who tries to understand it. Furthermore, color is not normative in ArchiMate, thus you are free to use whatever color make sense, and choose them to avoid such issue as much as possible. Some online resources can help check in advance if chosen color are "safe" or not for color blind people.
  • In 90% of the remaining 10%, you can most of the time work around the issue by nesting the behavior inside its active structure, which is unambiguous.
  • For views that mix elements from multiple layers and for which such hint is needed (thus the remaining 1% from previous points), then a label expression should do the trick. Setting such label expression on all elements from a view is as simple as: select all elements, then edit the label once and for all. Should you know people who can't remember the label to put, then a simple script can also do it. Using ${name}\n(${type}) can make the element type explicit. There's also a (slightly more complex) way to only add a single letter based on the layer through label expressions (it involves creating model properties whose name are the ArchiMate element types, and value are the associated letters. Then ${name}\n$model{property:${type}} does the trick).