# Layout Options

The following layout options are available in ELK:

Layout Options | Identifier
--- | ---
Activate Inside Self Loops | `org.eclipse.elk.insideSelfLoops.activate`
Adapt Port Positions | `org.eclipse.elk.graphviz.adaptPortPositions`
Add Unnecessary Bendpoints | `org.eclipse.elk.layered.unnecessaryBendpoints`
Additional Port Space | `org.eclipse.elk.spacing.portsSurrounding`
Additional Wrapped Edges Spacing | `org.eclipse.elk.layered.wrapping.additionalEdgeSpacing`
Alignment | `org.eclipse.elk.alignment`
Animate | `org.eclipse.elk.animate`
Animation Time Factor | `org.eclipse.elk.animTimeFactor`
Annulus Wedge Criteria | `org.eclipse.elk.radial.wedgeCriteria`
Aspect Ratio | `org.eclipse.elk.aspectRatio`
BK Edge Straightening | `org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening`
BK Fixed Alignment | `org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment`
Bend Points | `org.eclipse.elk.bendPoints`
Box Layout Mode | `org.eclipse.elk.box.packingMode`
Comment Box | `org.eclipse.elk.commentBox`
Compact Rows | `org.eclipse.elk.rectpacking.rowCompaction`
Compaction | `org.eclipse.elk.radial.compactor`
Compaction Step Size | `org.eclipse.elk.radial.compactionStepSize`
Compaction Strategy | `org.eclipse.elk.compaction.compactionStrategy`
Components Spacing | `org.eclipse.elk.spacing.componentComponent`
Concentrate Edges | `org.eclipse.elk.graphviz.concentrate`
Connected Components Compaction | `org.eclipse.elk.layered.compaction.connectedComponents`
Connected Components Compaction Strategy | `org.eclipse.elk.disco.componentCompaction.strategy`
Connected Components Layout Algorithm | `org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm`
Content Alignment | `org.eclipse.elk.layered.contentAlignment`
Correction Factor for Wrapping | `org.eclipse.elk.layered.wrapping.correctionFactor`
Cost Function for Spanning Tree | `org.eclipse.elk.processingOrder.spanningTreeCostFunction`
Crossing Minimization Strategy | `org.eclipse.elk.layered.crossingMinimization.strategy`
Current position of a node in the order of nodes | `org.eclipse.elk.rectpacking.currentPosition`
Cutting Strategy | `org.eclipse.elk.layered.wrapping.cutting.strategy`
Cycle Breaking Strategy | `org.eclipse.elk.layered.cycleBreaking.strategy`
DCGraph | `org.eclipse.elk.disco.debug.discoGraph`
Debug Mode | `org.eclipse.elk.debugMode`
Desired Edge Length | `org.eclipse.elk.stress.desiredEdgeLength`
Desired index of node | `org.eclipse.elk.rectpacking.desiredPosition`
Direction | `org.eclipse.elk.direction`
Direction Congruency | `org.eclipse.elk.layered.directionCongruency`
Direction Priority | `org.eclipse.elk.layered.priority.direction`
Distance Model | `org.eclipse.elk.graphviz.neatoModel`
Distance Penalty When Improving Cuts | `org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty`
Eades Repulsion | `org.eclipse.elk.force.repulsion`
Edge Center Label Placement Strategy | `org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy`
Edge Edge Between Layer Spacing | `org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers`
Edge Label Placement | `org.eclipse.elk.edgeLabels.placement`
Edge Label Side Selection | `org.eclipse.elk.layered.edgeLabels.sideSelection`
Edge Label Spacing | `org.eclipse.elk.spacing.edgeLabel`
Edge Node Between Layers Spacing | `org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers`
Edge Node Spacing | `org.eclipse.elk.spacing.edgeNode`
Edge Routing | `org.eclipse.elk.edgeRouting`
Edge Spacing | `org.eclipse.elk.spacing.edgeEdge`
Edge Thickness | `org.eclipse.elk.edge.thickness`
Edge Type | `org.eclipse.elk.edge.type`
Epsilon | `org.eclipse.elk.graphviz.epsilon`
Expand Nodes | `org.eclipse.elk.expandNodes`
FR Temperature | `org.eclipse.elk.force.temperature`
Favor Straight Edges Over Balancing | `org.eclipse.elk.layered.nodePlacement.favorStraightEdges`
Feedback Edges | `org.eclipse.elk.layered.feedbackEdges`
Fill Polyominoes | `org.eclipse.elk.polyomino.fill`
Fit Aspect Ratio | `org.eclipse.elk.rectpacking.expandToAspectRatio`
Fixed Graph Size | `org.eclipse.elk.nodeSize.fixedGraphSize`
Fixed Position | `org.eclipse.elk.stress.fixed`
Font Name | `org.eclipse.elk.font.name`
Font Size | `org.eclipse.elk.font.size`
Force Model | `org.eclipse.elk.force.model`
Graph Wrapping Strategy | `org.eclipse.elk.layered.wrapping.strategy`
Greedy Switch Activation Threshold | `org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold`
Greedy Switch Crossing Minimization | `org.eclipse.elk.layered.crossingMinimization.greedySwitch.type`
Hierarchical Sweepiness | `org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness`
Hierarchy Handling | `org.eclipse.elk.hierarchyHandling`
Hierarchy Handling (Dot) | `org.eclipse.elk.hierarchyHandling`
High Degree Node Maximum Tree Height | `org.eclipse.elk.layered.highDegreeNodes.treeHeight`
High Degree Node Threshold | `org.eclipse.elk.layered.highDegreeNodes.threshold`
High Degree Node Treatment | `org.eclipse.elk.layered.highDegreeNodes.treatment`
Hypernode | `org.eclipse.elk.hypernode`
Improve Cuts | `org.eclipse.elk.layered.wrapping.multiEdge.improveCuts`
Improve Wrapped Edges | `org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges`
Individual Spacing Override | `org.eclipse.elk.spacing.individualOverride`
Individual Spacing Override (ELK Layered) | `org.eclipse.elk.spacing.individualOverride`
Inline Edge Labels | `org.eclipse.elk.edgeLabels.inline`
Inside Self Loop | `org.eclipse.elk.insideSelfLoops.yo`
Interactive | `org.eclipse.elk.interactive`
Interactive Reference Point | `org.eclipse.elk.layered.interactiveReferencePoint`
Iteration Limit | `org.eclipse.elk.stress.iterationLimit`
Iterations | `org.eclipse.elk.force.iterations`
Iterations Factor | `org.eclipse.elk.graphviz.iterationsFactor`
Junction Points | `org.eclipse.elk.junctionPoints`
Label Angle | `org.eclipse.elk.graphviz.labelAngle`
Label Distance | `org.eclipse.elk.graphviz.labelDistance`
Label Manager | `org.eclipse.elk.labelManager`
Label Manager | `org.eclipse.elk.labels.labelManager`
Label Node Spacing | `org.eclipse.elk.spacing.labelNode`
Label Port Spacing | `org.eclipse.elk.spacing.labelPort`
Label Spacing | `org.eclipse.elk.spacing.labelLabel`
Layer Bound | `org.eclipse.elk.layered.layering.coffmanGraham.layerBound`
Layer Choice Constraint | `org.eclipse.elk.layered.layering.layerChoiceConstraint`
Layer Constraint | `org.eclipse.elk.layered.layering.layerConstraint`
Layer ID | `org.eclipse.elk.layered.layering.layerID`
Layer Spacing Factor | `org.eclipse.elk.graphviz.layerSpacingFactor`
Layout Algorithm | `org.eclipse.elk.algorithm`
Layout Ancestors | `org.eclipse.elk.layoutAncestors`
Layout Dimension | `org.eclipse.elk.stress.dimension`
Layout Partition | `org.eclipse.elk.partitioning.partition`
Layout Partitioning | `org.eclipse.elk.partitioning.activate`
Linear Segments Deflection Dampening | `org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening`
List of Polyominoes | `org.eclipse.elk.disco.debug.discoPolys`
MSD Freedom | `org.eclipse.elk.layered.wrapping.cutting.msd.freedom`
Manually Specified Cuts | `org.eclipse.elk.layered.wrapping.cutting.cuts`
Margins | `org.eclipse.elk.margins`
Max Node Promotion Iterations | `org.eclipse.elk.layered.layering.nodePromotion.maxIterations`
Max. Iterations | `org.eclipse.elk.graphviz.maxiter`
Maximal Animation Time | `org.eclipse.elk.maxAnimTime`
Merge Edges | `org.eclipse.elk.layered.mergeEdges`
Merge Hierarchy-Crossing Edges | `org.eclipse.elk.layered.mergeHierarchyEdges`
Minimal Animation Time | `org.eclipse.elk.minAnimTime`
No Layout | `org.eclipse.elk.noLayout`
Node Flexibility | `org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility`
Node Flexibility Default | `org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default`
Node Label Padding | `org.eclipse.elk.nodeLabels.padding`
Node Label Placement | `org.eclipse.elk.nodeLabels.placement`
Node Layering Strategy | `org.eclipse.elk.layered.layering.strategy`
Node Node Between Layers Spacing | `org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers`
Node Placement Strategy | `org.eclipse.elk.layered.nodePlacement.strategy`
Node Promotion Strategy | `org.eclipse.elk.layered.layering.nodePromotion.strategy`
Node Self Loop Spacing | `org.eclipse.elk.spacing.nodeSelfLoop`
Node Size Constraints | `org.eclipse.elk.nodeSize.constraints`
Node Size Minimum | `org.eclipse.elk.nodeSize.minimum`
Node Size Options | `org.eclipse.elk.nodeSize.options`
Node Spacing | `org.eclipse.elk.spacing.nodeNode`
North or South Port | `org.eclipse.elk.layered.northOrSouthPort`
Only Area Approximation | `org.eclipse.elk.rectpacking.onlyFirstIteration`
Optimization Goal | `org.eclipse.elk.rectpacking.optimizationGoal`
Order ID | `org.eclipse.elk.radial.orderId`
Orthogonal Compaction | `org.eclipse.elk.compaction.orthogonal`
Overlap Removal | `org.eclipse.elk.graphviz.overlapMode`
Padding | `org.eclipse.elk.padding`
Polyomino Primary Sorting Criterion | `org.eclipse.elk.polyomino.highLevelSort`
Polyomino Secondary Sorting Criterion | `org.eclipse.elk.polyomino.lowLevelSort`
Polyomino Traversal Strategy | `org.eclipse.elk.polyomino.traversalStrategy`
Port Alignment | `org.eclipse.elk.portAlignment.default`
Port Alignment (East) | `org.eclipse.elk.portAlignment.east`
Port Alignment (North) | `org.eclipse.elk.portAlignment.north`
Port Alignment (South) | `org.eclipse.elk.portAlignment.south`
Port Alignment (West) | `org.eclipse.elk.portAlignment.west`
Port Anchor Offset | `org.eclipse.elk.port.anchor`
Port Border Offset | `org.eclipse.elk.port.borderOffset`
Port Constraints | `org.eclipse.elk.portConstraints`
Port Index | `org.eclipse.elk.port.index`
Port Label Placement | `org.eclipse.elk.portLabels.placement`
Port Labels Next to Port | `org.eclipse.elk.portLabels.nextToPortIfPossible`
Port Side | `org.eclipse.elk.port.side`
Port Sorting Strategy | `org.eclipse.elk.layered.portSortingStrategy`
Port Spacing | `org.eclipse.elk.spacing.portPort`
Position | `org.eclipse.elk.position`
Position Choice Constraint | `org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint`
Position ID | `org.eclipse.elk.layered.crossingMinimization.positionID`
Post Compaction Constraint Calculation | `org.eclipse.elk.layered.compaction.postCompaction.constraints`
Post Compaction Strategy | `org.eclipse.elk.layered.compaction.postCompaction.strategy`
Priority | `org.eclipse.elk.priority`
Priority (Box Layout) | `org.eclipse.elk.priority`
Priority (ELK Force) | `org.eclipse.elk.priority`
Priority (ELK Layered) | `org.eclipse.elk.priority`
Priority (ELK Mr. Tree) | `org.eclipse.elk.priority`
Progress Bar | `org.eclipse.elk.progressBar`
Radius | `org.eclipse.elk.radial.radius`
Randomization Seed | `org.eclipse.elk.randomSeed`
Repulsive Power | `org.eclipse.elk.force.repulsivePower`
Resolved Layout Algorithm | `org.eclipse.elk.resolvedAlgorithm`
Root node for spanning tree construction | `org.eclipse.elk.processingOrder.preferredRoot`
Root selection for spanning tree | `org.eclipse.elk.processingOrder.rootSelection`
Scale Factor | `org.eclipse.elk.scaleFactor`
Search Order | `org.eclipse.elk.mrtree.searchOrder`
Self-Loop Distribution | `org.eclipse.elk.layered.edgeRouting.selfLoopDistribution`
Self-Loop Ordering | `org.eclipse.elk.layered.edgeRouting.selfLoopOrdering`
Semi-Interactive Crossing Minimization | `org.eclipse.elk.layered.crossingMinimization.semiInteractive`
Separate Connected Components | `org.eclipse.elk.separateConnectedComponents`
Shift Last Placed. | `org.eclipse.elk.rectpacking.lastPlaceShift`
Shortness Priority | `org.eclipse.elk.layered.priority.shortness`
Shortness Priority (ELK Layered) | `org.eclipse.elk.layered.priority.shortness`
Sloped Edge Zone Width | `org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth`
Sloppy Spline Layer Spacing Factor | `org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor`
Sorter | `org.eclipse.elk.radial.sorter`
Spline Routing Mode | `org.eclipse.elk.layered.edgeRouting.splines.mode`
Straightness Priority | `org.eclipse.elk.layered.priority.straightness`
Stress Epsilon | `org.eclipse.elk.stress.epsilon`
Structure Extraction Strategy | `org.eclipse.elk.structure.structureExtractionStrategy`
Thoroughness | `org.eclipse.elk.layered.thoroughness`
Translation Optimization | `org.eclipse.elk.radial.optimizationCriteria`
Treat Port Labels as Group | `org.eclipse.elk.portLabels.treatAsGroup`
Tree Construction Strategy | `org.eclipse.elk.processingOrder.treeConstruction`
Underlying Layout Algorithm | `org.eclipse.elk.underlyingLayoutAlgorithm`
Upper Bound On Width [MinWidth Layerer] | `org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth`
Upper Layer Estimation Scaling Factor [MinWidth Layerer] | `org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor`
Upper limit for iterations of overlap removal | `org.eclipse.elk.overlapRemoval.maxIterations`
Valid Indices for Wrapping | `org.eclipse.elk.layered.wrapping.validify.forbiddenIndices`
Validate Graph | `org.eclipse.elk.validateGraph`
Validate Options | `org.eclipse.elk.validateOptions`
Validification Strategy | `org.eclipse.elk.layered.wrapping.validify.strategy`
Weighting of Nodes | `org.eclipse.elk.mrtree.weighting`
Whether to run a supplementary scanline overlap check. | `org.eclipse.elk.overlapRemoval.runScanline`
Wide Nodes on Multiple Layers | `org.eclipse.elk.layered.layering.wideNodesOnMultipleLayers`
Zoom to Fit | `org.eclipse.elk.zoomToFit`
interactive Layout | `org.eclipse.elk.interactiveLayout`

- Algorithms
- Box Layout
- Circo
- Dot
- Draw2D Layout
- ELK DisCo
- ELK Force
- ELK Layered
- ELK Mr. Tree
- ELK Radial
- ELK SPOrE Compaction
- ELK SPOrE Overlap Removal
- ELK Stress
- FDP
- Fixed Layout
- Neato
- Randomizer
- Rectangle Packing
- Twopi
- Layout Options
- Activate Inside Self Loops
- Adapt Port Positions
- Add Unnecessary Bendpoints
- Additional Port Space
- Additional Wrapped Edges Spacing
- Alignment
- Animate
- Animation Time Factor
- Annulus Wedge Criteria
- Aspect Ratio
- BK Edge Straightening
- BK Fixed Alignment
- Bend Points
- Box Layout Mode
- Comment Box
- Compact Rows
- Compaction
- Compaction Step Size
- Compaction Strategy
- Components Spacing
- Concentrate Edges
- Connected Components Compaction
- Connected Components Compaction Strategy
- Connected Components Layout Algorithm
- Content Alignment
- Correction Factor for Wrapping
- Cost Function for Spanning Tree
- Crossing Minimization Strategy
- 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 Label Placement
- Edge Label Side Selection
- Edge Label Spacing
- Edge Node Between Layers Spacing
- Edge Node Spacing
- Edge Routing
- Edge Spacing
- Edge Thickness
- Edge Type
- Epsilon
- Expand Nodes
- FR Temperature
- Favor Straight Edges Over Balancing
- Feedback Edges
- Fill Polyominoes
- Fit Aspect Ratio
- Fixed Graph Size
- Fixed Position
- Font Name
- Font Size
- Force Model
- Graph Wrapping Strategy
- Greedy Switch Activation Threshold
- Greedy Switch Crossing Minimization
- Hierarchical Sweepiness
- Hierarchy Handling
- Hierarchy Handling (Dot)
- High Degree Node Maximum Tree Height
- High Degree Node Threshold
- High Degree Node Treatment
- Hypernode
- Improve Cuts
- Improve Wrapped Edges
- Individual Spacing Override
- Individual Spacing Override (ELK Layered)
- Inline Edge Labels
- Inside Self Loop
- Interactive
- Interactive Reference Point
- Iteration Limit
- Iterations
- Iterations Factor
- Junction Points
- Label Angle
- Label Distance
- Label Manager
- Label Manager
- Label Node Spacing
- Label Port 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
- MSD Freedom
- Manually Specified Cuts
- Margins
- Max Node Promotion Iterations
- Max. Iterations
- Maximal Animation Time
- Merge Edges
- Merge Hierarchy-Crossing Edges
- Minimal Animation Time
- No Layout
- 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
- North or South Port
- Only Area Approximation
- Optimization Goal
- Order ID
- Orthogonal Compaction
- Overlap Removal
- Padding
- 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 Index
- Port Label Placement
- Port Labels Next to Port
- Port Side
- Port Sorting Strategy
- Port Spacing
- Position
- Position Choice Constraint
- Position ID
- Post Compaction Constraint Calculation
- Post Compaction Strategy
- Priority
- Priority (Box Layout)
- Priority (ELK Force)
- Priority (ELK Layered)
- Priority (ELK Mr. Tree)
- Progress Bar
- Radius
- Randomization Seed
- Repulsive Power
- Resolved Layout Algorithm
- Root node for spanning tree construction
- Root selection for spanning tree
- Scale Factor
- Search Order
- Self-Loop Distribution
- Self-Loop Ordering
- Semi-Interactive Crossing Minimization
- Separate Connected Components
- Shift Last Placed.
- Shortness Priority
- Shortness Priority (ELK Layered)
- Sloped Edge Zone Width
- Sloppy Spline Layer Spacing Factor
- Sorter
- Spline Routing Mode
- Straightness Priority
- Stress Epsilon
- Structure Extraction Strategy
- Thoroughness
- Translation Optimization
- Treat Port Labels as Group
- Tree Construction Strategy
- 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
- Weighting of Nodes
- Whether to run a supplementary scanline overlap check.
- Wide Nodes on Multiple Layers
- Zoom to Fit
- interactive Layout
- Layout Option Groups
- box
- compaction
- compaction
- compaction.postCompaction
- componentCompaction
- crossingMinimization
- crossingMinimization.greedySwitch
- cycleBreaking
- debug
- edge
- edgeLabels
- edgeLabels
- edgeRouting
- edgeRouting.polyline
- edgeRouting.splines
- edgeRouting.splines.sloppy
- font
- highDegreeNodes
- insideSelfLoops
- layering
- layering.coffmanGraham
- layering.minWidth
- layering.nodePromotion
- nodeLabels
- nodePlacement
- nodePlacement.bk
- nodePlacement.linearSegments
- nodePlacement.networkSimplex
- nodePlacement.networkSimplex.nodeFlexibility
- nodeSize
- overlapRemoval
- partitioning
- polyomino
- port
- portAlignment
- portLabels
- priority
- processingOrder
- spacing
- spacing
- structure
- wrapping
- wrapping.cutting
- wrapping.cutting.msd
- wrapping.multiEdge
- wrapping.singleEdge
- wrapping.validify