Skip to main content

Apply Smart Tree Layout (Network Diagram Tools)

Summary

Arranges diagram features hierarchically and places them in a smart tree.

Learn more about the Smart Tree layout algorithm

Caution:

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 arranges the diagram features hierarchically and places them in a smart tree according to the direction and spacing distances specified. By default, the tree branches are ordered according to their relative positions to each other that they have before the layout applies. Starting with ArcGIS Pro 3.6 and ArcGIS Enterprise 12.0, the tree branches can also be ordered according to attribute values on the branches; that is, according to an attribute existing on the lines or on the extremity junctions of the branches.

  • When a root junction is specified in the diagram, the Smart Tree layout algorithm builds a smart tree starting from that junction.

    When several root junctions are specified in the diagram, those root junctions are aligned along the same axis perpendicular to the tree direction and appear as different start points for a tree branch of the diagram.

    If no root junction is specified, the algorithm identifies the diagram junction associated with the smallest network topology index and uses this junction as the root junction.

  • Consider applying the layout in asynchronous mode on the server when working on very large diagrams.

Parameters

Label Explanation Data type

Input Network Diagram Layer

The network diagram to which the layout will be applied.

Diagram Layer

Preserve container layout

(Optional)

Specifies how the layout algorithm will process containers.

  • CheckedThe layout algorithm will apply to the top graph of the diagram so container layouts are preserved.

  • UncheckedThe layout algorithm will apply to both content and noncontent features in the diagram. This is the default.

Boolean

Tree Direction

(Optional)

Specifies the direction the tree will be drawn.

  • From left to rightThe tree will be drawn from left to right. This is the default.

  • From right to leftThe tree will be drawn from right to left.

  • From bottom to topThe tree will be drawn from bottom to top.

  • From top to bottomThe tree will be drawn from top to bottom.

String

Spacing values interpreted as absolute units in the diagram coordinate system

(Optional)

Specifies how parameters representing distances will be interpreted.

  • CheckedThe layout algorithm will interpret distance values as linear units.

  • UncheckedThe layout algorithm will interpret distance values as relative units to an estimation of the average of the junction sizes in the current diagram extent. This is the default.

Boolean

Between Subtrees

(Optional)

The spacing that will be used between two neighboring subtrees—that is, the spacing between diagram junctions that are displayed perpendicular to the smart tree direction and belong to a different subtree. The default is in the units of the diagram's coordinate system. This parameter can only be used with absolute units.

Linear Unit

Between Subtrees

(Optional)

The spacing that will be used between two neighboring subtrees—that is, the spacing between diagram junctions that are displayed perpendicular to the smart tree direction and belong to a different subtree. The default is 2. This parameter can only be used with proportional units.

Double

Between Junctions Perpendicular to the Direction

(Optional)

The spacing that will be used between diagram junctions that are displayed perpendicular to the smart tree direction and belong to the same subtree level. The default is 2 in the units of the diagram's coordinate system. This parameter can only be used with absolute units.

Linear Unit

Between Junctions Perpendicular to the Direction

(Optional)

The spacing that will be used between diagram junctions that are displayed perpendicular to the smart tree direction and belong to the same subtree level. The default is 2. This parameter can only be used with proportional units.

Double

Between Junctions Along the Direction

(Optional)

The spacing that will be used between diagram junctions that are displayed along the smart tree direction. The default is 2 in the units of the diagram's coordinate system. This parameter can only be used with absolute units.

Linear Unit

Between Junctions Along the Direction

(Optional)

The spacing that will be used between diagram junctions that are displayed along the smart tree direction. The default is 2. This parameter can only be used with proportional units.

Double

Between Disjoined Graphs

(Optional)

The minimum spacing that will separate features belonging to disjoined graphs when the diagram contains such graphs. This parameter is used with absolute units. The default is 4 in the units of the diagram's coordinate system.

Linear Unit

Between Disjoined Graphs

(Optional)

The minimum spacing that will separate features belonging to disjoined graphs when the diagram contains such graphs. This parameter is used with proportional units. The default is 4.

Double

Orthogonally display edges

(Optional)

Specifies how diagram edges that are related to the tree branches will display.

Legacy:

This parameter is deprecated at ArcGIS Pro 3.6. The display of tree branches is now controlled using the Edge Display Type parameter.

  • CheckedAll diagram edges related to the tree branches will display with right angles.

  • UncheckedAll diagram edges related to the tree branches will not display with right angles. This is the default.

Boolean

Break Point Relative Position (%)

(Optional)

The relative position of the break point that will be inserted along the diagram edges when Edge Display Type is set to Regular edges (edge_display_type = "REGULAR_EDGES" in Python) or Edge Display Type is set to Orthogonal edges (edge_display_type = "ORTHOGONAL_EDGES" in Python). It is a percentage between 0 and 100.

  • With a Break Point Relative Position (%) value of 0, the break point is positioned at the x-coordinate of the edge's from junction and at the y-coordinate of the edge's to junction for a horizontal tree. It is positioned at the y-coordinate of the edge's from junction and at the x-coordinate of the edge's to junction for a vertical tree.

  • With a Break Point Relative Position (%) value of 100, there is no break point inserted on the diagram edges; each diagram edge directly connects its from and to junctions.

  • With a Break Point Relative Position (%) value of N between 0 and 100, the break point is positioned at N% of the length of the [XY] segment, 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. It is positioned at N% of the length of the [YX] 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 relative position of the two inflection points that will be inserted along the diagram edges to compute the curved edges geometry when Edge Display Type is set to Curved edges (edge_display_type = "CURVED_EDGES" in Python). It is a percentage between 15 and 40. With a Break Point Relative Position (%) value of N between 15 and 40:

  • 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 inflection point will be positioned at N% of the length of the [XY] segment.

    • The second inflection 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 inflection point will be positioned at N% of the length of the [YX] segment.

    • The second inflection 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 has nothing to do with the real topology of the edge feature or edge object in the network.

Double

Edge Display Type

(Optional)

Specifies the type of display for the diagram edges related to the tree branches.

  • Regular edgesAll diagram edges related to the tree branches will not display with right angles. This is the default.

  • Orthogonal edgesAll diagram edges related to the tree branches will display with right angles.

  • Curved edgesAll diagram edges related to the tree branches will be curved.

String

Run in asynchronous mode on the server

(Optional)

Specifies whether the layout algorithm will run asynchronously or synchronously on the server.

  • CheckedThe 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).

  • UncheckedThe 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

Absolute Offset

(Optional)

The offset that will be used to separate overlapping segments when using absolute units and Edge Display Type is set to Orthogonal edges. The value cannot exceed 10 percent of the smallest value specified for the other spacing parameters. The default is 0.

Linear Unit

Proportional Offset

(Optional)

The offset that will be used to separate overlapping segments when using proportional units and Edge Display Type is set to Orthogonal edges. It is a double value that cannot exceed 10 percent of the smallest value specified for the other spacing parameters. The default is 0.

Double

Order tree branches according to an attribute

(Optional)

Specifies whether the tree branches will be ordered according to an attribute.

  • CheckedThe tree branches will be ordered according to the current positions of the branch extremity junctions at the moment the layout applies. This is the default. For example, considering the tree direction, any branch ending with junction A is placed above the branch ending with junction B when branch A already showed above branch B in the diagram before applying the layout.

  • UncheckedThe tree branches will be ordered according to an attribute.

Boolean

Attribute Availability

(Optional)

Specifies whether the attribute to consider is available on diagram junctions or diagram edges.

  • Search the attribute on junctionsThe attribute to consider is available on diagram junctions. This is the default.

  • Search the attribute on edgesThe attribute to consider is available on diagram edges.

String

Attribute Name

(Optional)

The name or alias of the attribute field that will be used to order the tree branches when this field exists. When the Attribute Availability parameter value is Search the attribute on junctions, this order attribute will be queried on the branch extremity junctions. When the Attribute Availability parameter value is Search the attribute on edges, this order attribute will be queried on the branch extremity edges.

String

Attribute Sort Order

(Optional)

The sort order that will be used for positioning the branches of the tree layout.

Sorting always applies from the first branch on the left to the last branch on the right for vertical tree layouts, that is, when the Tree Direction parameter value is From top to bottom or From bottom to top. For horizontal tree layouts, sorting applies from the first branch at the top to the last branch at the bottom, that is, when the Tree Direction parameter value is From left to right or From right to left.

  • AscendingThe tree branches will be sorted based on the attribute field values in ascending order. This is the default.

  • DescendingThe tree branches will be sorted based on the attribute field values in descending order.

String

Derived output

Label Explanation Data type

Output Network Diagram

The updated network diagram layer.

Diagram Layer

Environments

This tool does not use any geoprocessing environments.

Licensing information

  • Basic: No
  • Standard: Yes
  • Advanced: Yes