Tengo alrededor de 50 mxd con todas las capas rotas por las que he estado pasando y restableciendo manualmente.
Los datos se movieron de otra computadora y se modificó la estructura de carpetas, por lo que no es solo un simple proceso de cambio (ejemplo):
"F: \ Data \ Rivers.shp" a "C: \ Data \ Rivers.shp"
es más como:
"F: \ Data \ Rivers.shp" a C: \ Data \ Park \ Water \ Rivers.shp
y así sucesivamente para todo tipo de datos (límites, cobertura vegetal, carreteras, etc.) cada uno en su propia subcarpeta.
Quiero crear un script que pueda ejecutar repetidamente cada vez que abra uno de estos mxd que al menos repare algunas de las capas más comunes que se encuentran en la mayoría de mis mxd, y luego puedo reparar manualmente el resto. De esa manera al menos puedo ahorrarme algo de tiempo.
He estado usando algo en la línea de:
import arcpy
mxd = arcpy.mapping.MapDocument("CURRENT")
for lyr in arcpy.mapping.ListLayers(mxd):
if lyr == "Rivers": #Should this be the layner name in TOC or FC name?
lyr.replaceDataSource(r"C:\Data\Park\Water", "SHAPEFILE_WORKSPACE", "Rivers")
Entonces, la idea sería agregar de alguna manera múltiples scripts de "reemplazo" en lo anterior para otras capas comunes que están en mi mxd.
Sin embargo, el script anterior ni siquiera repara la capa de Rivers.
¿Cómo puedo hacer que funcione y también agregar otras capas para reparar que tengan diferentes rutas de archivo?
fuente