У мене є близько 50 mxd з усіма розбитими шарами, які я переживав і вручну скидав.
Дані було переміщено з іншого комп'ютера, і структура папки була змінена, так що це не просто простий процес зміни (приклад):
"F: \ Дані \ Rivers.shp" до "C: \ Data \ Rivers.shp"
це більше схоже на:
"F: \ Data \ Rivers.shp" до C: \ Data \ Park \ Water \ Rivers.shp
і так далі для всіх видів даних (межі, покриття veg, дороги тощо), кожен у своїй підпапці.
Я хочу зробити сценарій, який я можу запускати повторно кожного разу, коли я відкриваю один з цих mxd, який би принаймні відремонтував деякі більш поширені шари, які знаходяться в більшості моїх mxd, і тоді я можу вручну відремонтувати решту. Таким чином , я можу принаймні зберегти себе деякий час.
Я використовую щось за принципом:
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")
Ідеєю тоді було б якось додати декілька сценаріїв "заміни" у вищезазначені для інших загальних шарів, які знаходяться в моєму mxd.
Однак вищезазначений сценарій навіть не фіксує шар Річки.
Як я можу змусити його працювати, а також додати до ремонту інших шарів, які мають різні шляхи до файлів?