The following diagram layout algorithms are available:
- Autoselect: several algorithms can be available for each diagram type. This option analyzes internal information of each algorithm, and selects the one that best suits the current diagram type. If autoselect: Each of the layout algorithms contains internal information about the types of diagrams it will work with and the numeric characteristics for the final quality of the produced layout when applied to each applicable diagram type. Several algorithms can be available for the same diagram type. The autoselect option uses such internal information and picks the best algorithm for the current diagram type.
- Hierarchical: this type of algorithm is most suitable to analyze hierarchical structure (for example study inheritance relationships). The Hierarchical algorithm originates from the Sugiyama algorithm. The algorithm draws the UML diagram hierarchically according to the preferences that you select.
- Standard: algorithm applicable to all types of diagrams.
- Tree: the algorithm draws a tree diagram in a tree layout. The algorithm draws the given graph in a tree layout according to its maximum spanning tree.
- Orthogonal: simple structural algorithm is used when hierarchy is not important. The Orthogonal algorithm uses heuristics to distribute diagram nodes among a lattice.
- Spring Embedder: Spring Embedder are force-directed layout algorithms that model the input graph as a system of forces and try to find a minimum energy configuration of this system. All edges are drawn as straight lines. This type of layout is especially suitable for projects with numerous diagram elements based on large amount of source code. When you lay out a graph according to the Spring Embedder layout algorithm, the program will simulate the graph as a physical model (masses and springs) and subject it to physical forces. The unnecessarily-long edges will be the most tense, and will try to contract the most. When the nodes and edges have been balanced, you will have a geometric representation of the graph.