Hierarchical is a layout style that portraits the precedence relation of directed graphs. It is ideal for many application areas, especially for
Use Hierarchical layout style to highlight the main direction or flow within a directed graph. Cyclic dependencies of nodes will be automatically detected and resolved. Nodes will be placed in hierarchically arranged layers. Additionally the ordering of the nodes within each layer is chosen in such a way that the number of line (or edge) crossings is small.
Incremental hierarchical layout is an interactive variant of the classic hierarchic layout described above. Compared to the "normal" layout algorithm which computes an all-new, fresh graph layout each time it is invoked, the main advantage of the incremental layout is that distinct parts of a graph can be rearranged while the remainder of the graph is not, or only slightly, changed.
Especially in an interactive environment, where a user modifies a graph (i.e. adds, deletes, moves, or resizes graph elements), this technique makes it possible to maintain the user's so-called "mental map" over a course of subsequent graph layouts.
If enabled, the selected nodes or edges will be automatically integrated into the current layout. The existing layout will only be slightly adjusted.
If enabled, the current drawing will be interpreted as a sketch of the resulting hierarchical layout. Note that the 'From Sketch' settings located in the 'Layers' tab can be used to fine-tune sketch parsing.
Determines the main layout orientation. The algorithm tries to arrange nodes in such a way that all edges point in the main layout direction.
Determines whether the components of a graph should be processed separately.
If a graph consists of multiple overlapping components, then these overlaps
are resolved.
This can be undesirable, especially if the current layout should be used as
sketch to calculate a new arrangement.
When in interactive mode, this feature should be disabled to provide more
control about the arrangement of separate graph components.
Determines whether possible symmetries in the placement should be detected and obeyed. This option increases computation time.
Determines the type of the nodes. Types are used as a subordinate criterion during the sequencing of nodes within their layer. More precisely, the sequencing algorithm prefers to place nodes of the same type next to each other if this does not induce additional crossings or conflicts with other constraints (like node groups or swimlanes).
Specifies a preferred time limit (in seconds) for the layout algorithm. Note that restricting the maximal duration may reduce the overall layout quality. Furthermore, the actual runtime may exceed the maximal duration because the layout algorithm still has to find a valid solution.
Determines the minimal distance between adjacent nodes that reside in the same layer.
Determines the distance between horizontal edge segments and nodes.
Determines the distance between adjacent pairs of horizontal edge segments.
Determines the minimal distance between nodes that reside in adjacent layers.
If enabled, all edges that do not point in the main layout direction will be routed as backloops.
If enabled, the layout algorithm will group edges at either source or target node to create bus-style edge path routings that will result in a more space-efficient layout. Edges are grouped in such a way that no ambiguous paths are created.
If enabled, the layout algorithm will automatically define so-called bus structures consisting of a root node and a set of successor/predecessor nodes of the root. All bus nodes are arranged in a very compact way above or below the root and the edges from the root node to/from the bus nodes are routed using a common bus segment in the middle. The bus-like arrangement is especially suitable when there are star structures (i.e. a node with a high in- or out-degree) which can otherwise consume a lot of area and make the layout less compact. The automatic selection of buses detects star structures and other structures where a bus-like arrangement is likely to lead to more compact results.
Determines the minimal length of the first edge segment.
Determines the minimal length of the last edge segment.
Determines the minimal length of an edge.
Determines the distance between adjacent pairs of horizontal edge segments.
If enabled, edges will be allowed to connect to all sides of a node if the number of edge crossings can be reduced this way.
Determines the minimal slope of the first and last edge segments with polyline edges. In addition, this value influences the steepness for edges with curved routing style.
The Curve Connection Style specifies how edges routed using a curved style connect at the respective source and target node.
Specifies how symmetric u-turn parts of curved routes should preferably be. If this property is greater than zero, the algorithm tries to achieve a more symmetric path for 180-degree turns (u-turns) by specifically handling them. The value of this property must be between zero and one, where a higher value indicates more emphasis on symmetry and lower values that symmetry is not important.
If enabled, the thickness of edges will be considered for minimum distance computations. Otherwise, minimum distances might be violated or overlaps between edges and other graph elements can occur when having thick edges.
If enabled, the arrowheads will be used to derive the direction of edges. An edge with an arrow at one end is considered to be directed; the layout algorithm will try to draw the edge such that the arrow points into the main layout orientation (e.g. downwards for orientation "Top to Bottom"). An edge without arrows or with arrows at both ends is considered to be undirected, which means that its direction is not important.
If this feature is disabled, all edges will be treated as directed, hierarchic edges, regardless of the specified visual arrowhead.
The algorithm puts each node in a horizontal layer together with other nodes. The number of the layer where a node resides is also called node rank.
Determines the alignment of nodes within one layer.
If enabled, nodes are placed in a more compact, stacked style. The layout algorithm will place the nodes of a layer horizontally interleaving in an upper and lower sub-layer. While this setting may decrease the width of the layout, it will increase the required layout height.
These settings influence the strategy used to assign nodes to certain layers when the options 'Use Drawing As Sketch', 'Selected Elements Incrementally' or 'Rank Assignment - From Sketch' are set. The standard strategy assigns two nodes to the same layer if there exists a horizontal line that crosses through both of their bounding boxes.
Artificially scales the nodes by the given factor before the rank assignment is performed. The bigger the value to more likely that nodes will be assigned to the same layer.
Artificially enlarges the nodes by the given value before the rank assignment is performed. The bigger the value to more likely that nodes will be assigned to the same layer.
Nodes smaller than the given value will be enlarged to match the given size before the rank assignment is performed. The bigger the value to more likely that nodes will be assigned to the same layer.
Nodes larger than the given value will be shrinked to match the given size before the rank assignment is performed. The smaller the value to more likely that nodes will be assigned to different layers.
Options in this tab determine the labeling strategy used by this layouter.
Determines whether node labels should be considered in the layout process.
Determines which positions will be available for the edge labels.
This tab can be used to configure the behavior of the layout algorithm if used on nested/grouped graphs.
Determines the basic policy for the layout process.
Determines whether the number of layers shall be small.
Determines the layer for nodes that are adjacent to group nodes whose contents span multiple layers. If the nodes can be placed into more than one of these layers, then 'vertical alignment' determines their actual layer.
Determines the level of group node compactness.
Determines whether the algorithm should try to obtain a uniform port assignment for edges incident to the top/bottom side of a group node (for layout orientation "Top to Bottom" or "Bottom to Top"). When orientation "Left to Right" or "Right to Left" is chosen, the edges incident to the left/right side are affected. Note that for a specific group such an assignment is only possible if there are no edges that cross the group's border (i.e. connect a node inside the group with a node outside the group) and if there are no self-loops on the top/bottom side.
If enabled, top level group nodes will be interpreted as swimlanes. In this case, the placement policy for these nodes is no longer strictly hierarchical but rather these groups (and their content) are placed horizontally next to each other for layout orientations "Top to Bottom" and "Bottom to Top" and vertically next to each other for layout orientations "Left to Right" and "Right to Left".
If enabled, the prelayout position of top level groups that are treated as swimlanes determines the swimlane ordering for the algorithm. If disabled, the swimlane odering is determined in a way that tries to minimize edge crossings.
Specifies the minimum distance between top level groups that are treated as swimlanes.
If grid is enabled, the layouter will place nodes and bends on grid coordinates. The anchor point of the nodes depends on the 'vertical alignment' within layers which is described above. In case the nodes are centered, the anchor point is located in the center of the node. When the nodes are top or bottom aligned the anchor point is at the node's top or bottom border.
Specifies the spacing between two grid coordinates.
Determines the way in which edge ports are distributed at the nodes.