Verifiquei as outras respostas aqui e nenhuma delas funcionou para mim ...
É uma questão "simples" de encontrar uma camada pelo nome em um mapa e alterar sua fonte de dados.
Aqui está o meu script:
#-- New Source
newSource = os.path.join(currDir, lyrZones + "_Dep" + dirNum + ".shp")
#-- Validation
if arcpy.Exists(newSource):
print "The new source exists!"
else:
print "Not found!"
#-- Find the layer and change its source
for lyr in arcpy.mapping.ListLayers(mxd):
if lyr.name == lyrZones:
print "Layer found!"
print layers.dataSource
print " Replacing source..."
lyr.replaceDataSource(currDir, "SHAPEFILE_WORKSPACE", newSource)
print lyr.dataSource
Eu o executo a partir de um script python fora do ArcGIS.
Você pode ver que a fonte existe, a camada foi encontrada, eu posso acessar sua fonte de dados imprimindo-a, mas o lyr.replaceDataSource causa um erro (erro inesperado ... não ajuda muito ...)
Estou trabalhando há 4-5 horas e estou com poucas soluções para tentar. Alguma idéia do que pode causar o acidente?
D:\test
e veja se isso funciona.