約50のmxdがあり、すべての壊れたレイヤーを通過し、手動でリセットしました。
データは別のコンピューターから移動され、フォルダー構造が変更されたため、単なる変更プロセスではありません(例)。
「F:\ Data \ Rivers.shp」から「C:\ Data \ Rivers.shp」
それは次のようなものです:
「F:\ Data \ Rivers.shp」からC:\ Data \ Park \ Water \ Rivers.shpへ
すべての種類のデータ(境界、野菜の覆い、道路など)について、それぞれ独自のサブフォルダーに保存します。
私は、これらの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にある他の一般的なレイヤーの上記の複数の「置換」スクリプトを何らかの方法で追加することです。
ただし、上記のスクリプトではRiversレイヤーも修正されません。
どうすればそれを機能させることができますか?また、異なるファイルパスを持つ他の修復するレイヤーを追加できますか?