BPMN diagram
How it draws, the auto-layout, and what the colours mean.
The BPMN diagram is the “correct notation” view, the one you use to present to other people — anyone who knows BPMN reads it straight away without an explanation.
Notation
| Shape | Meaning | Colour |
|---|---|---|
| Circle with a thin border | Start event | Green |
| Circle with a double border | End event | Red |
| Rounded rectangle | A task, with its time and cost | Blue |
| Diamond with ✕ | Exclusive gateway | Orange |
| Diamond with + | Parallel gateway | Yellow |
| Pink outline | On the critical path | Pink |
| Orange dashed line | Loop-back (rework) flow | Orange |
Viewing the diagram: zoom, pan, full screen
The toolbar above the diagram has controls used for both the BPMN diagram and the analysis chart:
| Action | How |
|---|---|
| Zoom in / out | The + / − buttons, or Ctrl + scroll wheel (the point under the cursor stays put) |
| Back to 100% | Click the percentage number |
| Fit to frame | The Fit to frame button, or double-click the diagram |
| Move around the diagram | Drag with the mouse, or scroll as usual |
| Full screen | The ⛶ button; leave with Esc |
| Change the frame height | Drag the bottom right corner of the frame |
“Fit to frame” fits by width and then scrolls vertically. A vertical diagram can be over two thousand pixels tall; forcing the height to fit too would push the zoom below 20% and turn the text into a blur.
Coordinates: keep the original drawing or lay it out automatically
If the uploaded file has coordinates for every step, the tool redraws exactly the layout you drew. Add a new step (which has no coordinates) and it switches to automatic layout for the whole diagram. The Original coordinates switch lets you choose deliberately.
The two are mutually exclusive: keeping the coordinates from the file means not laying it out again, so a Horizontal/Vertical direction has nothing to act on. When you pick a direction, the tool turns “Original coordinates” off for you and shows a line right under the toolbar. Turn it back on and you return to exactly the layout in the file.
The layout algorithm
When it lays out automatically, the tool uses the four-step Sugiyama method:
- Break cycles — a DFS marks back edges so that the graph is temporarily acyclic.
- Assign layers — by longest path; edges spanning several layers get dummy nodes inserted.
- Reduce crossings — several barycenter sweeps, then swap adjacent node pairs for as long as that keeps reducing crossings.
- Straighten — pull each node towards the average position of its neighbours; dummy nodes are straightened completely so that long edges do not zigzag.
for sweep in range(8):
downward = sweep % 2 == 0
neighbours = prev_of if downward else next_of
for level in levels:
keys.sort(key=barycenter) # sắp theo trọng tâm láng giềng
for level in range(max_layer): # hoán vị kề nếu bớt được giao cắt
while improved:
for index in range(len(lower) - 1):
current = crossings(upper, lower)
lower[index], lower[index + 1] = lower[index + 1], lower[index]
if crossings(upper, lower) >= current:
lower[index], lower[index + 1] = lower[index + 1], lower[index]
Display controls
- Horizontal / Vertical — the direction of flow.
- Fit to frame — shrink to fit the screen; turn it off to view at true size and scroll.
- Show Ids — print the step code on the shape, handy when cross-checking against the table.
Fine-tuning lanes
The Lanes… button on the diagram toolbar opens the list of existing lanes, with the step count of each. There you can rename a lane (renaming it for all the steps in it at once), delete a lane (the steps are not deleted, they simply become lane-less), and reorder the bands with the two ↑↓ buttons.
To assign a lane to a step, type straight into the Lane column on the Steps tab — typing a name that does not exist yet creates a new lane.