Apply Geo Positions Layout (Network Diagram)


Moves each diagram junction and edge feature so they match the geographical positions of the associated network features.


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.


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.


  • 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 moves each diagram junction and edge feature to match the geographical positions of the associated network features in the map view.

  • The geometry of features in the diagram that do not exist in the network is not modified.

  • Reduced edges, which are network diagram-specific features, are displayed as straight lines between the junctions to which they connect.

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


arcpy.nd.ApplyGeoPositionsLayout(in_network_diagram_layer, {restore_edges_geo_positions}, {run_async})
ParameterExplanationData Type

The network diagram to which the layout will be applied.

Diagram Layer

Indicates whether or not diagram edges will be restored to the geographic position of their vertices:

  • RESTORE_EDGES_GEO_POSITIONSVertices along diagram edges will be restored when possible, moving them to match the geographic positions of the network features. This is the default.
  • DO_NOT_RESTORE_EDGES_GEO_POSITIONSVertices along diagram edges will not be restored. They will appear as straight lines between their connecting junctions.

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

  • RUN_ASYNCHRONOUSLYThe 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 when executing 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_SYNCHRONOUSLYThe layout algorithm will run synchronously on the server. It can fail without completion if its execution exceeds the service time-out: 600 seconds by default. This is the default.

Derived Output

NameExplanationData Type

The updated network diagram layer.

Diagram Layer

Code sample

ApplyGeoPositionsLayout example (Python window)

Apply the Geo Positions Layout algorithm to the diagram called Temporary Diagram.

import arcpy
arcpy.ApplyGeoPositionsLayout_nd('Temporary Diagram', 


This tool does not use any geoprocessing environments.

Licensing information

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

Related topics