MoveLayer (arcpy.mapping)

Summary

Provides the ability to move a layer to a specific location within a data frame or group layer in a map document (.mxd).

Discussion

MoveLayer will move a layer within a data frame and also within group layers in the same data frame. The moved_layer and reference_layer must reside within the same data frame. A layer cannot be moved from one data frame to a different data frame even within the same map document. Add_Layer, Insert_Layer, and RemoveLayer functions can be used to accomplish this requirement.

Syntax

MoveLayer (data_frame, reference_layer, move_layer, {insert_position})
ParameterExplanationData Type
data_frame

A reference to a DataFrame object within which the layer will be moved.

DataFrame
reference_layer

A reference to a Layer object representing an existing layer that determines the location in relation to where the layer will be moved.

Layer
move_layer

A reference to a Layer object representing the layer to be moved.

Layer
insert_position

A constant that determines the placement of the moved layer relative to the referenced layer.

  • AFTERInserts the new layer after or below the referenced layer
  • BEFOREInserts the new layer before or above the referenced layer

(The default value is BEFORE)

String

Code Sample

MoveLayer example:

The following script will move a layer called Rivers above a reference layer called Lakes. Both layers are in a data frame called County Maps.

import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
df = arcpy.mapping.ListDataFrames(mxd, "County Maps")[0]
for lyr in arcpy.mapping.ListLayers(mxd, "", df):
    if lyr.name.lower() == "rivers":
        moveLayer = lyr
    if lyr.name.lower() == "lakes":
        refLayer = lyr
arcpy.mapping.MoveLayer(df, refLayer, moveLayer, "BEFORE")
mxd.saveACopy(r"C:\Project\Project2.mxd")
del mxd
3/3/2014