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.
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.
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.
Determines the minimal slope of the first and last edge segments with polyline edges. This feature is only available for the polyline routing style
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.
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.
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.