Summary
Arranges the diagram features in a network diagram around a main ring.
Learn more about the Main Ring 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.
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 is 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 geodatabase.
The input network diagram layer must be from either a utility network or a trace network in a file geodatabase or a network diagram service.
This layout algorithm arranges the diagram features around the main ring and hierarchically lays out the subset of diagram features that connect to each diagram junction placed along the main ring.
The main ring is the loop formed by the largest number of edges in the network diagram.
If the network diagram contains no loops, the Main Ring layout algorithm execution has no effect.
This layout algorithm is typically used in the telecommunications industry.
When barriers are specified on diagram features, the Main Ring Layout algorithm identifies the main ring that will exclude these flagged features.
Consider applying the layout in asynchronous mode on the server when working on very large diagrams.
Syntax
arcpy.nd.ApplyMainRingLayout(in_network_diagram_layer, {are_containers_preserved}, {ring_type}, {is_unit_absolute}, {ring_width_absolute}, {ring_width_proportional}, {ring_height_absolute}, {ring_height_proportional}, {tree_type}, {perpendicular_absolute}, {perpendicular_proportional}, {along_absolute}, {along_proportional}, {breakpoint_position}, {edge_display_type}, {run_async}, {offset_absolute}, {offset_proportional})
Parameter | Explanation | Data Type |
in_network_diagram_layer | The network diagram to which the layout will be applied. | Diagram Layer |
are_containers_preserved (Optional) | Specifies how the algorithm will process containers.
| Boolean |
ring_type (Optional) | Specifies the type of ring.
| String |
is_unit_absolute (Optional) | Specifies how parameters representing distances will be interpreted.
| Boolean |
ring_width_absolute (Optional) | The width of the ring. The default is in the units of the diagram's coordinate system. This parameter can only be used with absolute units. | Linear Unit |
ring_width_proportional (Optional) | The width of the ring. The default is 50. This parameter can only be used with proportional units. | Double |
ring_height_absolute (Optional) | The height of the ring. The default is in the units of the diagram's coordinate system. This parameter can only be used with absolute units. | Linear Unit |
ring_height_proportional (Optional) | The height of the ring. The default is 20. This parameter can only be used with proportional units. | Double |
tree_type (Optional) | Specifies how the trees coming out of the main ring's junctions will be positioned.
| String |
perpendicular_absolute (Optional) | The spacing between diagram junctions that are displayed perpendicular to the 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 |
perpendicular_proportional (Optional) | The spacing between diagram junctions that are displayed perpendicular to the tree direction and belong to the same subtree level. The default is 2. This parameter can only be used with proportional units. | Double |
along_absolute (Optional) | The spacing between diagram junctions that are displayed along the 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 |
along_proportional (Optional) | The spacing between diagram junctions that are displayed along the tree direction. The default is 2. This parameter can only be used with proportional units. | Double |
breakpoint_position (Optional) | The relative position of the break point that will be inserted along the diagram edges when Edge Display Type is Regular edges (edge_display_type = "REGULAR_EDGES" in Python) or Edge Display Type is Orthogonal edges (edge_display_type = "ORTHOGONAL_EDGES" in Python). It is a percentage between 0 and 100.
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 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:
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.
| String |
run_async (Optional) | Specifies whether the layout algorithm will run asynchronously or synchronously on the server.
| Boolean |
offset_absolute (Optional) | The offset used to separate overlapping segments when is_unit_absolute = "ABSOLUTE_UNIT" and edge_display_type = "ORTHOGONAL_EDGES". The value cannot exceed 10 percent of the smallest value specified for the other spacing parameters. The default is 0. | Linear Unit |
offset_proportional (Optional) | The offset used to separate overlapping segments when is_unit_absolute = "PROPORTIONAL_UNIT" and edge_display_type = "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 |
Derived Output
Name | Explanation | Data Type |
out_network_diagram_layer | The updated network diagram layer. | Diagram Layer |
Code sample
This sample applies the Main Ring Layout algorithm to the diagram called Temporary Diagram.
import arcpy
arcpy.ApplyMainRingLayout_nd("Temporary Diagram", "PRESERVE_CONTAINERS",
"ELLIPSE", "PROPORTIONAL_UNIT", "", 50, "", 20,
"SMART_TREE", "", 2, "", 2, 25, "CURVED_EDGES",
"RUN_SYNCHRONOUSLY")
Environments
Licensing information
- Basic: No
- Standard: Yes
- Advanced: Yes