Eu tenho cerca de 50 mxd's com todas as camadas quebradas pelas quais andei passando e redefinindo manualmente.
Os dados foram movidos de outro computador e a estrutura da pasta foi alterada; portanto, não é apenas um processo simples de alteração (exemplo):
"F: \ Data \ Rivers.shp" para "C: \ Data \ Rivers.shp"
é mais como:
"F: \ Data \ Rivers.shp" para C: \ Data \ Park \ Water \ Rivers.shp
e assim por diante, para todos os tipos de dados (limites, cobertura vegetal, estradas, etc.), cada um em sua própria subpasta.
Quero criar um script que possa ser executado repetidamente sempre que abrir um desses mxds que consertaria pelo menos algumas das camadas mais comuns encontradas na maioria dos meus mxds e, em seguida, posso reparar manualmente o restante. Dessa forma, eu posso pelo menos me poupar algum tempo.
Eu tenho usado algo ao longo das linhas 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")
A idéia seria, de alguma forma, adicionar vários scripts de "substituição" acima para outras camadas comuns que estão nos meus mxd's.
No entanto, o script acima nem corrige a camada Rivers.
Como posso fazê-lo funcionar e também adicionar outras camadas a serem reparadas com caminhos de arquivo diferentes?
fonte