def startAnalysis(inputMxd, destLogFile): lyrName, lyrSavedName, brokenLayerName=r"Dataframe: Grouplayer\Layer; Datasource","\n\nSaved layer: ","\n\nBroken Links:" mxd = arcpy.mapping.MapDocument(inputMxd) for df in arcpy.mapping.ListDataFrames(mxd): # nacheinander alle Dataframes in Projekt verwenden for lyr in arcpy.mapping.ListLayers(mxd, "", df): # nacheinander alle Layer in Dataframe verwenden lyrName=lyrName + "\n" + df.name + ";" + lyr.longName try: lyrName=lyrName + ";" + lyr.dataSource # speichern des "Dataframes;(Grouplayer)/Layer" if blnSaveLayer.get(): lyr.saveACopy(lyr.name) lyrSavedName=lyrSavedName + "\n" + lyr.name except: pass brokenList=arcpy.mapping.ListBrokenDataSources (df) for brokenLyr in brokenList: arcpy.mapping.RemoveLayer(df, brokenLyr) try: brokenLayerName=brokenLayerName + "\n" + df.name + brokenLyr.longName + "; " + brokenLyr.dataSource except: print "Error: " +brokenLyr ouputMsg= lyrName + lyrSavedName + lyrNotSavedName + brokenLayerName f = open(destLogFile, "w") f.write(ouputMsg.encode("utf8")) f.close() mxd.saveACopy(os.path.splitext(inputMxd)[0]+"_WithoutBrokenLinks.mxd")
import arcpy path = "XXX" mxd = arcpy.mapping.MapDocument(path) for df in arcpy.mapping.ListDataFrames(mxd): for lyr in arcpy.mapping.ListBrokenDataSources(mxd): arcpy.mapping.RemoveLayer(df, lyr) newPath = "YYY" mxd.saveACopy(newPath)
I'm having the same problem in version 10.3.1. Did you ever figure out how to fix this problem?