If you have an open edit session, you must save your edits prior to running this tool. This ensures that the diagram reflects the latest changes made to the network topology in the database. If you fail to save your edits, the edits will not be reflected in the diagram.
License:
The active portal account must be assigned a license with the ArcGIS Advanced Editing user type extension to use this tool in an enterprise deployment.
Note:
Each layout algorithm includes default parameter values. The default parameter values will be used unless otherwise specified. If the input network diagram is based on a template for which this layout has been configured with a different parameter value, that value will be used instead.
Usage
This tool is not supported when working with a database connection to a utility network or trace network in an enterprise geodatabase. You must use either the related published utility network or trace network service, or a utility network or trace network in a file or mobile geodatabase.
The input network diagram layer must be from either a utility network or a trace network in a file or mobile geodatabase. or a network diagram service.
This layout algorithm uses a physical analogy to draw graphs by identifying a force system in which it tries to locally minimize the energy. It searches for an equilibrium state of the force system—a position for each diagram junction where the total force on each junction is zero.
Because this algorithm has a tendency to emphasize loops contained in a network diagram, it is often used by operators who manage highly meshed networks, such as water, wastewater, or gas.
The network diagram to which the layout will be applied.
Diagram Layer
Preserve container layout
(Optional)
Specifies how the layout algorithm will process containers.
Checked—The layout algorithm will apply to the top graph of the diagram so container layouts are preserved.
Unchecked—The layout algorithm will apply to both content and noncontent features in the diagram. This is the default.
Boolean
Number of Iterations
(Optional)
The number of iterations to process. The default is 20.
Long
Repel Factor
(Optional)
Adds distance between diagram junctions that are close together. The larger the repel factor, the greater the distance that will be added between nearly overlapping diagram junctions. The default is 1.
Double
Degree of Freedom
(Optional)
Specifies the area used to move the diagram junctions during each algorithm iteration.
Low—The area used to move the diagram junctions will be limited. This is the default.
High—The area used to move the diagram junctions will be large.
Medium—The area used to move the diagram junctions will be moderate.
String
Break Point Relative Position (%)
(Optional)
The relative position of the two inflexion points that will be inserted along the diagram edges to compute the curved edges geometry when Edge Display Type is set to Curved edges (edges_display_type = "CURVED_EDGES" in Python). It is a percentage between 15 and 40; the default is 30. For example, with a Break Point Relative Position (%) parameter value of N between 15 and 40, the following is true:
X being the x-coordinate of the edge's from junction and Y being the y-coordinate of the edge's to junction for a horizontal tree:
The first inflexion point will be positioned at N% of the length of the [XY] segment
The second inflexion point will be positioned at (100 - N)% of the length of the [XY] segment
Y being the y-coordinate of the edge's from junction and X being the x-coordinate of the edge's to junction for a vertical tree:
The first inflexion point will be positioned at N% of the length of the [YX] segment
The second inflexion point will be positioned at (100 - N)% of the length of the [XY] segment
Note:
The concept of the from and to junctions above is relative to the tree direction; it is not related to the topology of the network feature or object edge.
This parameter is ignored when the Edge Display Type parameter is set to Regular edges (edges_display_type = "REGULAR_EDGES" in Python).
Double
Edge Display Type
(Optional)
Specifies the type of display for the diagram edges.
Regular edges—All diagram edges display as straight lines. This is the default.
Curved edges—All diagram edges are curved.
String
Run in asynchronous mode on the server
(Optional)
Specifies whether the layout algorithm will run asynchronously or synchronously on the server.
Checked—The layout algorithm will run asynchronously on the server. This option dedicates server resources to run the layout algorithm with a longer time-out. Running asynchronously is recommended for layouts that are time consuming and may exceed the server time-out (for example, Partial Overlapping Edges) and applying to large diagrams (more than 25,000 features).
Unchecked—The layout algorithm will run synchronously on the server. It can fail without completion if it exceeds the service default time-out value of 600 seconds. This is the default.
The network diagram to which the layout will be applied.
Diagram Layer
are_containers_preserved
(Optional)
Specifies how the layout algorithm will process containers.
PRESERVE_CONTAINERS—The layout algorithm will apply to the top graph of the diagram so container layouts are preserved.
IGNORE_CONTAINERS—The layout algorithm will apply to both content and noncontent features in the diagram. This is the default.
Boolean
iterations_number
(Optional)
The number of iterations to process. The default is 20.
Long
repel_factor
(Optional)
Adds distance between diagram junctions that are close together. The larger the repel factor, the greater the distance that will be added between nearly overlapping diagram junctions. The default is 1.
Double
degree_freedom
(Optional)
Specifies the area used to move the diagram junctions during each algorithm iteration.
LOW—The area used to move the diagram junctions will be limited. This is the default.
HIGH—The area used to move the diagram junctions will be large.
MEDIUM—The area used to move the diagram junctions will be moderate.
String
breakpoint_position
(Optional)
The relative position of the two inflexion points that will be inserted along the diagram edges to compute the curved edges geometry when Edge Display Type is set to Curved edges (edges_display_type = "CURVED_EDGES" in Python). It is a percentage between 15 and 40; the default is 30. For example, with a Break Point Relative Position (%) parameter value of N between 15 and 40, the following is true:
X being the x-coordinate of the edge's from junction and Y being the y-coordinate of the edge's to junction for a horizontal tree:
The first inflexion point will be positioned at N% of the length of the [XY] segment
The second inflexion point will be positioned at (100 - N)% of the length of the [XY] segment
Y being the y-coordinate of the edge's from junction and X being the x-coordinate of the edge's to junction for a vertical tree:
The first inflexion point will be positioned at N% of the length of the [YX] segment
The second inflexion point will be positioned at (100 - N)% of the length of the [XY] segment
Note:
The concept of the from and to junctions above is relative to the tree direction; it is not related to the topology of the network feature or object edge.
This parameter is ignored when the Edge Display Type parameter is set to Regular edges (edges_display_type = "REGULAR_EDGES" in Python).
Double
edge_display_type
(Optional)
Specifies the type of display for the diagram edges.
REGULAR_EDGES—All diagram edges display as straight lines. This is the default.
CURVED_EDGES—All diagram edges are curved.
String
run_async
(Optional)
Specifies whether the layout algorithm will run asynchronously or synchronously on the server.
RUN_ASYNCHRONOUSLY—The layout algorithm will run asynchronously on the server. This option dedicates server resources to run the layout algorithm with a longer time-out. Running asynchronously is recommended for layouts that are time consuming and may exceed the server time-out (for example, Partial Overlapping Edges) and applying to large diagrams (more than 25,000 features).
RUN_SYNCHRONOUSLY—The layout algorithm will run synchronously on the server. It can fail without completion if it exceeds the service default time-out value of 600 seconds. This is the default.
Boolean
Derived output
Name
Explanation
Data type
out_network_diagram_layer
The updated network diagram layer.
Diagram Layer
Code sample
ApplyForceDirectedLayout example (Python window)
Apply the Force Directed Layout algorithm to the diagram called Temporary Diagram.