Grouping in Block Diagram

Learn about the improved logic in Block Diagram, which will be rolled out across other views over time.

Written by Kristine Marhilevica
Updated over a week ago

# How to Add Grouping Rules

Grouping rules can be added in the grouping dialog found in the Perspectives menu.

1. Click on the eye icon (π) on the left hand side under the workspace navigator to access the Perspectives menu.

2. Select Manage and navigate to the Groups tab.

# Types of grouping rules

There are two sets of grouping rules: simple grouping and groups which use components to build a group.

The simple grouping rules are attribute base including:

• By Workspace

• By Component Types

• By Field

• By Tag

The grouping rules which use components to build groups are:

• By Reference

• By Parent

• By Parent All

## Simple Grouping Rules

This is an example of a simple grouping rule:
β

Which for example results in this diagram:
β

These simple rules can be nested, for example:

with this result:
β

The order of the rules in the dialog matter, they are processed in order.
β

## Grouping with components

A bit more complex are the grouping rules using components as groups. But they all work in the same way. Basically a group is built by a reference type.

All components which are connected to another component by the selected reference type are grouped into the referenced component.

This works in both direction, either incoming or outgoing. An example is having capabilities organized by their domains and subdomains (parent hierarchy):

with this grouping rule:

will get displayed like this:

These groupings with components only work with components which are already in the view, the grouping rule doesn't add any additional components. So it is crucial to configure the view so that the components we would like to use for the grouping are included in the view. Without grouping, the above view would look like this:

# Duplicating Components and References by Grouping Rules

Duplicating components or references is a very common result of grouping. Let's consider this small family tree:
β

With this grouping rule

we get this result:

The duplicated children make perfectly sense here, each child has two parents. Similar situations are e.g. very common with capabilities realizing applications.

If there are duplication a small info dialog is displayed explaining the situation. If you feel this is just noise you can click the checkbox at the bottom and you will no longer get these kind of dialogs.

The grouping also works the other way around with a flipped direction:

Here the group labels don't make much sense. They can be changed here:

so we get this result:
β

# Grouping Errors

Grouping errors occur basically only with groups using components. The main rule is that a component cannot be used as a group if the component is already grouped by some other grouping rule. It looks typically like this:
β

# Collapsing groups

Each group in Block Diagram has an expand/collapse button. Collapsing a group will hide the nodes inside that group, and display a count of all descendent nodes and groups next to the group label.

The references inside a collapse groups will also be aggregated to their parent, as long as they are distinct by label, reference type, and URL field values. A count of aggregated references will be displayed over the reference.

Below is a Block Diagram of Applications, People, and Departments, grouped by Component Type, with all groups collapsed.

Expanding the "Departments" group in the above diagram produces the diagram below. Note how references from individual departments are still aggregated, due to the fact that the Applications group is collapsed.

# Expand and Collapse All

For convenience, two buttons on the view toolbar are provided to expand or collapse all groups in the view.

After clicking this button, this setting will persist in the view until a group is manually collapsed or expanded. If "Collapse All" is enabled, then all groups will remain collapsed even when changing the context or changing the grouping rules.

# Progressive Layout and the Optimize Layout Button

Collapsing and expanding groups results in a progressive layout where graph elements are biased to remain close to their previous positions. This is so human eyes can easily follow the transition when a group's collapsed state changes.

However, this may not produce the most optimal layout for the new state of the graph, since the size of the collapsed or expanded group has changed. Furthermore, when saving to view to a presentation, it will use a reset and optmized layout, which may not match the current one.

Clicking the Optimize layout button (near the zoom controls in the upper-right corner of the view) will rebuild the graph with the most optimal use of the available space, while retaining the state of collapsed and expanded groups, and produce the same layout that would appear in a presentation slide.