current_mxd = arcpy.mapping.MapDocument ("CURRENT") df = arcpy.mapping.ListDataFrames (current_mxd) for dataframes in df: print "DATAFRAME = " + dataframes.name + "\n" + "LAYERS: " lyrs = arcpy.mapping.ListLayers (dataframes) for layers in lyrs: print " " + layers.name for broken in arcpy.mapping.ListBrokenDataSources (dataframes): print broken.name + " source is missing" if broken.dataSource == r"C:\Student\MapScripting10_0\Maps\PlainsView.gdb\East_Timort": broken.replaceDataSource (r"C:\Student\MapScripting10_0\PlainsView.gdb","FILEGDB_WORKSPACE","East_Timor", False) del broken del layers del dataframes del mxd arcpy.RefreshTOC()import arcpy, os start = r"C:\Student\MapScripting10_0\Maps" for root, dirs, files in os.walk(start): for mapDoc in files: if mapDoc.endswith(".mxd"): path = os.path.abspath(os.path.join(root,mapDoc)) mxd = arcpy.mapping.MapDocument(path) print "\n" + "Map Document = " + path df = arcpy.mapping.ListDataFrames (mxd) for dataframes in df: print " DATAFRAME = " + dataframes.name + "\n" + "LAYERS: " lyrs = arcpy.mapping.ListLayers (dataframes) for layers in lyrs: print " " + layers.name del layers for broken in arcpy.mapping.ListBrokenDataSources (dataframes): print broken.name + " source is missing" print " Original source = " + broken.dataSource if broken.dataSource == r"C:\Student\MapScripting10_0\Maps\PlainsView.gdb\East_Timort": print " Found. Attempting to fix." osource = r"C:\Student\MapScripting10_0\Maps\PlainsView.gdb" nsource = "Timor" broken.replaceDataSource (osource,"FILEGDB_WORKSPACE",nsource, False) del broken del layers del dataframes del df del mxd # mxd.saveACopy(os.getcwd() + "\\" + mapDoc[:-4] + "_new.mxd") del mapDoc del root del dirs del files arcpy.RefreshTOC() arcpy.RefreshActiveView()Solved! Go to Solution.
import arcpy, os
from arcpy import da
ws = r'D:\test'
workspace = arcpy.env.workspace = ws
arcpy.env.overwriteOutput = True
start = "D:\\test"
for root, dirs, files in os.walk(start):
for mapDoc in files:
if mapDoc.endswith(".mxd"):
path = os.path.abspath(os.path.join(root,mapDoc))
mxd = arcpy.mapping.MapDocument(path)
print "\n" + "Map Document = " + path
df = arcpy.mapping.ListDataFrames(mxd)
for dataframes in df:
print " DATAFRAME = " + dataframes.name + "\n" + "LAYERS: "
# lyrs = arcpy.mapping.ListLayers(dataframes)
# for layers in lyrs:
# print " " + layers.name
for broken in arcpy.mapping.ListBrokenDataSources(dataframes):
if broken.supports("DATASOURCE"):
print broken.name + " source is missing"
print " Original source = " + broken.dataSource
if broken.dataSource == r"D:\esri_data.gdb\WasteSites\WasteSitesLine":
print " Found. Attempting to fix."
broken.replaceDataSource(r'\\mcflight01\MCFlightData\HGIS\Data\WCH.gdb',"FILEGDB_WORKSPACE","WasteSitesLine", False)
mxd.save()
del dataframes
del df
del mxd
# mxd.saveACopy(os.getcwd() + "\\" + mapDoc[:-4] + "_new.mxd")
del mapDoc
if broken.dataSource == r"C:\Student\MapScripting10_0\Maps\PlainsView.gdb\East_Timort": print " Found. Attempting to fix." osource = r"C:\Student\MapScripting10_0\Maps\PlainsView.gdb" nsource = "Timor"
import arcpy, os
from arcpy import da
ws = r'D:\test'
workspace = arcpy.env.workspace = ws
arcpy.env.overwriteOutput = True
start = "D:\\test"
for root, dirs, files in os.walk(start):
for mapDoc in files:
if mapDoc.endswith(".mxd"):
path = os.path.abspath(os.path.join(root,mapDoc))
mxd = arcpy.mapping.MapDocument(path)
print "\n" + "Map Document = " + path
df = arcpy.mapping.ListDataFrames(mxd)
for dataframes in df:
print " DATAFRAME = " + dataframes.name + "\n" + "LAYERS: "
# lyrs = arcpy.mapping.ListLayers(dataframes)
# for layers in lyrs:
# print " " + layers.name
for broken in arcpy.mapping.ListBrokenDataSources(dataframes):
if broken.supports("DATASOURCE"):
print broken.name + " source is missing"
print " Original source = " + broken.dataSource
if broken.dataSource == r"D:\esri_data.gdb\WasteSites\WasteSitesLine":
print " Found. Attempting to fix."
broken.replaceDataSource(r'\\mcflight01\MCFlightData\HGIS\Data\WCH.gdb',"FILEGDB_WORKSPACE","WasteSitesLine", False)
mxd.save()
del dataframes
del df
del mxd
# mxd.saveACopy(os.getcwd() + "\\" + mapDoc[:-4] + "_new.mxd")
del mapDoc
if broken.dataSource == r"C:\Student\MapScripting10_0\Maps\PlainsView.gdb\East_Timort": print " Found. Attempting to fix." osource = r"C:\Student\MapScripting10_0\Maps\PlainsView.gdb" nsource = "Timor"