ฉันมีประมาณ 50 mxd ด้วยเลเยอร์ที่ชำรุดทั้งหมดที่ฉันได้ผ่านและรีเซ็ตด้วยตนเอง
ข้อมูลถูกย้ายจากคอมพิวเตอร์เครื่องอื่นและโครงสร้างของโฟลเดอร์เปลี่ยนไปดังนั้นจึงไม่ใช่เพียงแค่กระบวนการเปลี่ยนแปลงอย่างง่าย (ตัวอย่าง):
"F: \ Data \ 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 ของฉัน
อย่างไรก็ตามสคริปต์ด้านบนไม่ได้แก้ไขเลเยอร์แม่น้ำ
ฉันจะทำให้มันใช้งานได้และเพิ่มเลเยอร์อื่น ๆ เพื่อซ่อมแซมที่มีเส้นทางไฟล์ต่างกันได้อย่างไร