import arcpy inMXD = r'c:\test.mxd' outMXD = r'c:\test1.mxd' rLayer = 'test3' #Name of reference layer mLayer = 'test4' #Name of layer to be replaced and moved lyrFile = arcpy.mapping.Layer(r'c:\Test4.lyr') #Layer file used to replace layer mxd = arcpy.mapping.MapDocument(inMXD) for df in arcpy.mapping.ListDataFrames(mxd): #loop data frames for lyr in arcpy.mapping.ListLayers(mxd,"",df): #loop layers if lyr.isGroupLayer == 1: #Is layer a group layer for glyr in arcpy.mapping.ListLayers(lyr): #loop layer in group layer if glyr != lyr: #Not Group Layer Name if glyr.name.lower() == mLayer: #Layer to be replaced and moved arcpy.mapping.RemoveLayer(df, glyr) #Remove the layer arcpy.mapping.AddLayer(df, lyrFile) #Add layer based on Layer File if glyr.name.lower() == rLayer: #Layer to be used to reference position of move layer refLayer = glyr #Set ref layer #Have to loop through layers again as layer is added outside the group layer for lyr in arcpy.mapping.ListLayers(mxd,"",df): #Start new loop of layers if lyr.name.lower() == mLayer: #Is move layer moveLyr = glyr #Set move layer #Move layer to required position arcpy.mapping.MoveLayer(df, refLayer, moveLyr, "BEFORE") mxd.saveACopy(outMXD) del mxd
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registriere ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.