logo

BPMN 2.0 Layout Improver

BPMN 2.0 Layout Improver

The feature „Process Layout” aims at correcting depiction problems in process models. It does not completely layout the diagram but supports you in unifying the alignment of and distances between elements as well as in solving connection deficiencies.

The feature is comprised of four functions each of which is described in the subsequent sections. For each menu a configuration dialog provides one option which determines the horizontal distance between elements assigned by the distribution function.

Using the Functionality in Visio 2010

All functions as well as the configuration option can be accessed via the Ribbon “BPMN” through the drop-down menu in the Group “Layout”.

Using the Functionality in Visio 2007

All functions as well as the configuration option can be accessed via the Menu “Process / Process Layout” the drop-down menu in the Group “Layout”.

Scope

The functions basically affect the current page of a diagram. It is also possible to further restrict the scope by creating a selection of elements. Please note that only related elements/relations are considered. E.g. a message flow will only be straightened, if it is selected together with its source and target.

Align Elements (Vertical Centered)

This function supports you in aligning the flow elements of the process (vertically centered alignment). The alignment is basically performed up- and downwards only. Notice that the affiliation to pools and lanes is not considered. However, the behavior of the function is designed in a way that will normally not lead to excessive layout alterations. Data (Data Objects and Stores) and groups are not considered either.

In simplified terms, the program follows all paths (sequence flows) of the active diagram and adjusts the vertical position of each element with respect to its predecessor. However, the adjustment happens within a certain range of tolerance only and is subject to diverse special cases. The general behavior and the most important cases are described more precisely hereinafter.

Sequence Flows in General: Each element’s vertical position is adjusted to its predecessor’s position (vertically centers)  provided that the vertical deviation is less than the height of the predecessor. This tolerance range prevents the distortion of deliberate deviations, in particular flows between different lanes. Within certain partial flows also previous positions are reconsidered, thus, in some cases successors are aligned to the element prior to the shift of lanes.

Splitting Sequences (e.g. Gateways): Elements with only one incoming but multiple outgoing sequence flows are aligned with respect to their predecessor. If the splitting element follows on a simple (not branched) sequence flow from the process start and has exactly two or three outgoing sequence flows, it will be aligned with respect to its successors first (according to the minimal vertical distance) whilst the prior simple flow is aligned to the splitting element. Within a range of tolerance, though.

Merging Sequences (e.g. Gateways): Elements with multiple incoming sequence flows are adjusted with respect to their predecessors as well but with a smaller range of tolerance. In addition, there may be an alignment with respect to a prior splitting sequence as described below.

Adjustment of Split and Re-joint Paths: The function tries to find a merging element for each splitting element (e.g. all outgoing sequence flows of a gateway are predecessors of another). On success, the merging element is aligned with respect to the splitting element. Actually, this alignment may be altered in the overall process.

Unifying Distance (between flow elements)

This function supports you in unifying the distance between flow elements. The distance (horizontal gap) is configurable.

Unwanted effects may be particularly expected if elements of different paths (alternative, parallel or independent paths) are next to each other (i.e. same vertical position). This may lead to overlaps, because the movement logic considers only direct relations.

 

Functionality in general: Similar to the alignment function this one follows all paths of the process and adjusts the horizontal distance of each element to its predecessor as configured (in millimetres). The function only considers flows from left to right, thus, successors to the left will keep their position.

If an element is approximately centred horizontally above or below its predecessor, the horizontal gap is not enforced but it is precisely aligned horizontally below or above the predecessor.

Merging sequences: As a matter of course, elements with more than one incoming sequence flow orient themselves with the rightmost predecessor. However, the position will not change, if the rightmost element is on the right of the merging element.

Pools and lanes: The function also changes the width of pools and lanes according the contained flow elements. Their position is not changed, though they are only expanded to the right. The width of lanes on top of one another are harmonized according to the broadest one. Pools containing the lanes are adjusted to the lanes too.

Expanded Container Elements (e.g. subprocesses) are excluded from this functionality.

Straightening Message Flows

This function solves a couple of problems occurring occasionally in the context of message flows. Message flows are straightened, if possible, and distributed on the border of the elements they connect. The function is oriented towards vertical connections (up- and downward).

Distribution of Flow Elements: Incoming and outgoing message flows of flow elements are spread to the available connection points, depending on the number of message flows (a single message flow will be centered).

Side Connections: Message flows connected to the side of an element are switched to the top or bottom, if the connected element is positioned distinctly below or above and there are enough available connection points at the targeted border.

Message Flows on Pools: If the source or target of the message flow is left or right of the pool, the message flow is kept untouched.

Straightening and Normalisation of Message Flows: If a message flow can be drawn straight, all intermediate geometry points of the line are deleted. Otherwise some geometry points will removed: those which are outside the horizontal range between the start and end point of the message flow.

Adjusting Connection Points

This function changes the points at which sequence flows connect to flow elements in certain cases.

Connections in General: If elements lie side by side and are connected by a sequence flow at their top or bottom border, the connection point is switched to the side border. After the same principle side connections are switched to the top or bottom border, if the elements are on top of each other (horizontal centered).

Gateway Connections: Lines which are not exactly connected to a corner of a gateway are glued to one of the two closest corners (depending on the target of the sequence or its source respectively).

Event Connections: Conform to the same principle as gateway connections, connection points on events are changes whereby the checks correspond to the center points of the horizontal or vertical axis respectively. In case of boundary events, the outer connection points (most distant from the activity) are preferred.

Activity Connections: There are two checks performed for connections with activity elements: First, sequence flows between horizontally or vertically centered activities are straightened; second, sequence flows are centered, if the affected border does not have more than one connected sequence flow.

0 found this helpful