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
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.