import arcpy from arcpy import env # Set overwrite option arcpy.env.overwriteOutput = True # Gather user input parameters TargetFile = arcpy.GetParameterAsText(0) if TargetFile > "": arcpy.AddMessage("Target File is True") # from current open mxd, save base data layer file to disk LayerFile = "./Base_Layer" arcpy.SaveToLayerFile_management("Base_Data_Group",LayerFile,"RELATIVE") arcpy.AddMessage("Base Data Saved as "+ LayerFile) mxd = arcpy.mapping.MapDocument(TargetFile) df = arcpy.mapping.ListDataFrames(mxd) lyr_list = arcpy.mapping.ListLayers(mxd) for lyr in lyr_list: if 'Base_Data' in lyr.name: arcpy.mapping.RemoveLayer(df,lyr) arcpy.AddMessage(lyr) path = LayerFile + '.lyr' arcpy.AddMessage("adding layer") addLayer = arcpy.mapping.Layer(path) arcpy.mapping.AddLayer(df, addLayer, "BOTTOM") TargetFile.arcpy.save()
Solved! Go to Solution.
mxd = arcpy.mapping.MapDocument(TargetFile) for df in arcpy.mapping.ListDataFrames(mxd): for lyr in arcpy.mapping.ListLayers(mxd, "", df): if 'Base_Data' in lyr.name: arcpy.mapping.RemoveLayer(df,lyr) arcpy.AddMessage(lyr)
mxd = arcpy.mapping.MapDocument(TargetFile) for df in arcpy.mapping.ListDataFrames(mxd): for lyr in arcpy.mapping.ListLayers(mxd, "", df): if 'Base_Data' in lyr.name: arcpy.mapping.RemoveLayer(df,lyr) arcpy.AddMessage(lyr)
mxd = arcpy.mapping.MapDocument(TargetFile) ... mxd.save()
# loop through all layers in a specific data frame: mxd = arcpy.mapping.MapDocument(TargetFile) df = arcpy.mapping.ListDataFrames(mxd, "MyDataFrameName")[0] for lyr in arcpy.mapping.ListLayers(mxd, data_frame=df): print lyr.name
mxd.save()