# Layout Option Groups

The following layout algorithms are available in ELK:

Layout Option Groups | Identifier
--- | ---
box | `org.eclipse.elk.box`
compaction | `org.eclipse.elk.compaction`
compaction | `org.eclipse.elk.layered.compaction`
compaction.postCompaction | `org.eclipse.elk.layered.compaction.postCompaction`
componentCompaction | `org.eclipse.elk.disco.componentCompaction`
considerModelOrder | `org.eclipse.elk.layered.considerModelOrder`
crossingMinimization | `org.eclipse.elk.layered.crossingMinimization`
crossingMinimization.greedySwitch | `org.eclipse.elk.layered.crossingMinimization.greedySwitch`
crossingMinimization.greedySwitchHierarchical | `org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical`
cycleBreaking | `org.eclipse.elk.layered.cycleBreaking`
debug | `org.eclipse.elk.disco.debug`
edge | `org.eclipse.elk.edge`
edgeLabels | `org.eclipse.elk.edgeLabels`
edgeLabels | `org.eclipse.elk.layered.edgeLabels`
edgeRouting | `org.eclipse.elk.layered.edgeRouting`
edgeRouting.polyline | `org.eclipse.elk.layered.edgeRouting.polyline`
edgeRouting.splines | `org.eclipse.elk.layered.edgeRouting.splines`
edgeRouting.splines.sloppy | `org.eclipse.elk.layered.edgeRouting.splines.sloppy`
font | `org.eclipse.elk.font`
highDegreeNodes | `org.eclipse.elk.layered.highDegreeNodes`
insideSelfLoops | `org.eclipse.elk.insideSelfLoops`
layering | `org.eclipse.elk.layered.layering`
layering.coffmanGraham | `org.eclipse.elk.layered.layering.coffmanGraham`
layering.minWidth | `org.eclipse.elk.layered.layering.minWidth`
layering.nodePromotion | `org.eclipse.elk.layered.layering.nodePromotion`
nodeArrangement | `org.eclipse.elk.topdownpacking.nodeArrangement`
nodeLabels | `org.eclipse.elk.nodeLabels`
nodePlacement | `org.eclipse.elk.layered.nodePlacement`
nodePlacement.bk | `org.eclipse.elk.layered.nodePlacement.bk`
nodePlacement.linearSegments | `org.eclipse.elk.layered.nodePlacement.linearSegments`
nodePlacement.networkSimplex | `org.eclipse.elk.layered.nodePlacement.networkSimplex`
nodePlacement.networkSimplex.nodeFlexibility | `org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility`
nodeSize | `org.eclipse.elk.nodeSize`
overlapRemoval | `org.eclipse.elk.overlapRemoval`
packing | `org.eclipse.elk.packing`
packing.compaction | `org.eclipse.elk.rectpacking.packing.compaction`
partitioning | `org.eclipse.elk.partitioning`
polyomino | `org.eclipse.elk.polyomino`
port | `org.eclipse.elk.port`
portAlignment | `org.eclipse.elk.portAlignment`
portLabels | `org.eclipse.elk.portLabels`
priority | `org.eclipse.elk.layered.priority`
processingOrder | `org.eclipse.elk.processingOrder`
rotation | `org.eclipse.elk.radial.rotation`
spacing | `org.eclipse.elk.layered.spacing`
spacing | `org.eclipse.elk.spacing`
structure | `org.eclipse.elk.structure`
topdown | `org.eclipse.elk.topdown`
whiteSpaceElimination | `org.eclipse.elk.rectpacking.whiteSpaceElimination`
whitespaceElimination | `org.eclipse.elk.topdownpacking.whitespaceElimination`
widthApproximation | `org.eclipse.elk.rectpacking.widthApproximation`
wrapping | `org.eclipse.elk.layered.wrapping`
wrapping.cutting | `org.eclipse.elk.layered.wrapping.cutting`
wrapping.cutting.msd | `org.eclipse.elk.layered.wrapping.cutting.msd`
wrapping.multiEdge | `org.eclipse.elk.layered.wrapping.multiEdge`
wrapping.singleEdge | `org.eclipse.elk.layered.wrapping.singleEdge`
wrapping.validify | `org.eclipse.elk.layered.wrapping.validify`

- Algorithms
- Draw2D Layout
- ELK Box
- ELK DisCo
- ELK Fixed
- ELK Force
- ELK Layered
- ELK Mr. Tree
- ELK Radial
- ELK Randomizer
- ELK Rectangle Packing
- ELK SPOrE Compaction
- ELK SPOrE Overlap Removal
- ELK Stress
- ELK Top-down Packing
- Graphviz Circo
- Graphviz Dot
- Graphviz FDP
- Graphviz Neato
- Graphviz Twopi
- Libavoid
- Layout Options
- Activate Inside Self Loops
- Adapt Port Positions
- Add Unnecessary Bendpoints
- Additional Port Space
- Additional Wedge Space
- Additional Wrapped Edges Spacing
- Alignment
- Allow Non-Flow Ports To Switch Sides
- Angle Penalty
- Animate
- Animation Time Factor
- Annulus Wedge Criteria
- Aspect Ratio
- Bend Points
- BK Edge Straightening
- BK Fixed Alignment
- Box Layout Mode
- Center On Root
- Child Area Height
- Child Area Width
- Cluster Crossing Penalty
- Comment Box
- Comment Comment Spacing
- Comment Node Spacing
- Compaction
- Compaction iterations
- Compaction Step Size
- Compaction Strategy
- Compaction Strategy
- Components Spacing
- Concentrate Edges
- Connected Components Compaction
- Connected Components Compaction Strategy
- Connected Components Layout Algorithm
- Consider Model Order
- Consider Model Order for Components
- Consider Port Order
- Content Alignment
- Correction Factor for Wrapping
- Cost Function for Spanning Tree
- Crossing Counter Node Order Influence
- Crossing Counter Port Order Influence
- Crossing Minimization Strategy
- Crossing Penalty
- Current position of a node in the order of nodes
- Cutting Strategy
- Cycle Breaking Strategy
- DCGraph
- Debug Mode
- Desired Edge Length
- Desired index of node
- Direction
- Direction Congruency
- Direction Priority
- Distance Model
- Distance Penalty When Improving Cuts
- Eades Repulsion
- Edge Center Label Placement Strategy
- Edge Edge Between Layer Spacing
- Edge End Texture Length
- Edge Label Placement
- Edge Label Side Selection
- Edge Label Spacing
- Edge Node Between Layers Spacing
- Edge Node Spacing
- Edge Routing
- Edge Routing Mode
- Edge Spacing
- Edge Thickness
- Edge Type
- Enable Hyperedges From Common Source
- Epsilon
- Expand Nodes
- Favor Straight Edges Over Balancing
- Feedback Edges
- Fill Polyominoes
- Fixed Graph Size
- Fixed Position
- Fixed Shared Path Penalty
- Font Name
- Font Size
- Force Model
- Force Node Model Order
- FR Temperature
- Generate Position and Layer IDs
- Graph Wrapping Strategy
- Greedy Switch Activation Threshold
- Greedy Switch Crossing Minimization
- Greedy Switch Crossing Minimization (hierarchical)
- Hierarchical Sweepiness
- Hierarchy Handling
- Hierarchy Handling (Graphviz Dot)
- High Degree Node Maximum Tree Height
- High Degree Node Threshold
- High Degree Node Treatment
- Horizontal spacing between Label and Port
- Hypernode
- Ideal Nudging Distance
- Improve Cuts
- Improve Hyperedge Routes
- Improve Hyperedge Routes Add/Delete
- Improve Wrapped Edges
- In Layer Predecessor of
- In Layer Successor of
- In new Row
- Individual Spacing
- Individual Spacing (ELK Layered)
- Inline Edge Labels
- Inside Self Loop
- Interactive
- interactive Layout
- Interactive Reference Point
- Iteration Limit
- Iterations
- Iterations Factor
- Junction Points
- Label Angle
- Label Distance
- Label Manager
- Label Manager
- Label Node Spacing
- Label Spacing
- Layer Bound
- Layer Choice Constraint
- Layer Constraint
- Layer ID
- Layer Spacing Factor
- Layout Algorithm
- Layout Ancestors
- Layout Dimension
- Layout Partition
- Layout Partitioning
- Linear Segments Deflection Dampening
- List of Polyominoes
- Long Edge Ordering Strategy
- Manually Specified Cuts
- Margins
- Marks a node as a cluster
- Max Node Promotion Iterations
- Max. Iterations
- Maximal Animation Time
- Merge Edges
- Merge Hierarchy-Crossing Edges
- Minimal Animation Time
- MSD Freedom
- No Layout
- No Model Order
- Node arrangement strategy
- Node Flexibility
- Node Flexibility Default
- Node Label Padding
- Node Label Placement
- Node Layering Strategy
- Node Node Between Layers Spacing
- Node Placement Strategy
- Node Promotion Strategy
- Node Self Loop Spacing
- Node Size Constraints
- Node Size Minimum
- Node Size Options
- Node Spacing
- Nudge Orthogonal Segments
- Nudge Orthogonal Touching Colinear Segments
- Nudge Shared Paths With Common Endpoint
- Omit Node Micro Layout
- Optimization Goal
- Order ID
- Orthogonal Compaction
- Outgoing Edge Angles
- Overlap Removal
- Padding
- Penalise Orthogonal Shared Paths
- Perform Unifying Nudging Preprocessing
- Polyomino Primary Sorting Criterion
- Polyomino Secondary Sorting Criterion
- Polyomino Traversal Strategy
- Port Alignment
- Port Alignment (East)
- Port Alignment (North)
- Port Alignment (South)
- Port Alignment (West)
- Port Anchor Offset
- Port Border Offset
- Port Constraints
- Port Direction Penalty
- Port Index
- Port Label Placement
- Port Labels Next to Port
- Port Side
- Port Sorting Strategy
- Port Spacing
- Position
- Position Choice Constraint
- Position Constraint
- Position Constraint
- Position ID
- Post Compaction Constraint Calculation
- Post Compaction Strategy
- Priority
- Priority (ELK Box)
- Priority (ELK Force)
- Priority (ELK Layered)
- Priority (ELK Mr. Tree)
- Progress Bar
- Radius
- Randomization Seed
- Repulsive Power
- Resolved Layout Algorithm
- Reverse Direction Penalty
- Root node for spanning tree construction
- Root selection for spanning tree
- Rotate
- Row Height Reevaluation
- Scale Factor
- Search Order
- Segment Penalty
- Self-Loop Distribution
- Self-Loop Ordering
- Semi-Interactive Crossing Minimization
- Separate Connected Components
- Shape Buffer Distance
- Shift Last Placed.
- Shortness Priority
- Shortness Priority (ELK Layered)
- Sloped Edge Zone Width
- Sloppy Spline Layer Spacing Factor
- Sorter
- Spacing Base Value
- Spline Routing Mode
- Straightness Priority
- Stress Epsilon
- Structure Extraction Strategy
- Target Angle
- Target Width
- Thoroughness
- Topdown Hierarchical Node Aspect Ratio
- Topdown Hierarchical Node Width
- Topdown Layout
- Topdown Node Type
- Topdown Scale Cap
- Topdown Scale Factor
- Topdown Size Approximator
- Translation Optimization
- Treat Port Labels as Group
- Tree Construction Strategy
- Tree Level
- Try box layout first
- Underlying Layout Algorithm
- Upper Bound On Width [MinWidth Layerer]
- Upper Layer Estimation Scaling Factor [MinWidth Layerer]
- Upper limit for iterations of overlap removal
- Valid Indices for Wrapping
- Validate Graph
- Validate Options
- Validification Strategy
- Vertical spacing between Label and Port
- Weighting of Nodes
- Whether to run a supplementary scanline overlap check.
- White Space Approximation Strategy
- Whitespace elimination strategy
- Width Approximation Strategy
- Zoom to Fit
- Layout Option Groups
- box
- compaction
- compaction
- compaction.postCompaction
- componentCompaction
- considerModelOrder
- crossingMinimization
- crossingMinimization.greedySwitch
- crossingMinimization.greedySwitchHierarchical
- cycleBreaking
- debug
- edge
- edgeLabels
- edgeLabels
- edgeRouting
- edgeRouting.polyline
- edgeRouting.splines
- edgeRouting.splines.sloppy
- font
- highDegreeNodes
- insideSelfLoops
- layering
- layering.coffmanGraham
- layering.minWidth
- layering.nodePromotion
- nodeArrangement
- nodeLabels
- nodePlacement
- nodePlacement.bk
- nodePlacement.linearSegments
- nodePlacement.networkSimplex
- nodePlacement.networkSimplex.nodeFlexibility
- nodeSize
- overlapRemoval
- packing
- packing.compaction
- partitioning
- polyomino
- port
- portAlignment
- portLabels
- priority
- processingOrder
- rotation
- spacing
- spacing
- structure
- topdown
- whiteSpaceElimination
- whitespaceElimination
- widthApproximation
- wrapping
- wrapping.cutting
- wrapping.cutting.msd
- wrapping.multiEdge
- wrapping.singleEdge
- wrapping.validify