4.4 Drawing Boxes

A box is a line around one part of the chart. It can be used to add textual comments, group a set of arrows or describe alternative behavior. In their simplest form they only contain text, but they can also encompass arrows. A box spans between two entities, or alternatively around only one.

ex21_cshex21

The line around boxes can be dotted, dashed and double line, too, by using ‘..’, ‘++’ or ‘==’ instead of ‘--’. Boxes can also be used to group a set of arrows. To do this, simply insert the arrow definitions enclosed in curled braces just before the semicolon terminating the definition of the box.

ex22_cshex22

When a box contains arrows, it is not necessary to specify which entities it shall span between, it will be calculated automatically. Also boxes can be nested arbitrarily deep.

ex23_cshex23

You can shade boxes, by specifying the color attribute. For a full list of box attributes and color definitions, See Boxes, and see Specifying Colors. It is also possible to make a box ‘weak’ or ‘strong’.

ex24_cshex24

A number of box contours are available via the ‘line.corner’ attribute.

ex65_cshex65

Boxes can express alternatives. To do this, simply concatenate multiple box definition without adding semicolons. These will be drawn with no spaces between. Changing the line style in subsequent boxes impacts the line separating the boxes, otherwise all attributes of the first box are inherited by the subsequent ones.

ex25_cshex25

You can use tags to label boxes (both standalone or in a series). This can be used to indicate alternatives, loops or optional parts of the sequence.

ex99_cshex99

You can observe in the previous example that the ‘\#’ sequence inserts a ‘#’ character into a label. The ‘\’ is needed to differentiate from a comment.

Finally, similar to entity groups, boxes can also be collapsed, if they are not empty. Standalone boxes can be collapsed to an empty box or block arrow by specifying the ‘collapsed’ attribute (or via the GUI on Windows). This feature is useful to hide or summarize irrelevant parts of the chart and enables quick working with large processes.

ex72_cshex72