পাইথন ব্যবহার করে আর্কম্যাপ থেকে স্তর মুছুন


9

সমস্যা:

  • আমি নামযুক্ত স্তরের সন্ধানে আমার সমস্ত স্তরটি লুপ করার চেষ্টা করছি "CADAnnotation"
  • লেয়ারটি যদি বিদ্যমান থাকে তবে এমএক্সডি থেকে স্তরটি সরিয়ে ফেলুন

মন্তব্য:

  • একা একা স্ক্রিপ্ট থেকে চলমান (অর্থাত্ আর্কেম্যাপের মধ্যে নয়)
  • "CADAnnotation" ডেটা টাইপ হ'ল একটি সিএডি এনোটেশন ফিচার ক্লাস
  • "CADAnnotation" জিওডাটাবেজে নেই, এটি একটি অটোক্যাড .ডাব্লুজি থেকে তৈরি
  • "CADAnnotation" নামের একটি গ্রুপ স্তরের মধ্যে রয়েছে "ACAD"
  • গ্রুপ স্তরটি যদি "ACAD"মুছে ফেলা "CADAnnotation"যায় তবে এটি দুর্দান্ত হয়ে যায়।

এখন পর্যন্ত কোড:

for item in mxds:
    print (item)
    mxd = arcpy.mapping.MapDocument(item)
    df=arcpy.mapping.ListDataFrames(mxd,"Project Area")[0]
    for lyr in arcpy.mapping.ListLayers(mxd, "*",df):
        if lyr.name == "CADAnnotation":
            print(lyr.dataSource)
            arcpy.Delete_management("CADAnnotation")
            print("Layer Deleted")
        else:
            pass

কোড নোট:

  • আমি কোন সমস্যা খুঁজে পেতে পারেন
  • লাইন arcpy.Delete_management("CADAnnotation")কাজ করে না ত্রুটি ছুঁড়েছে।

প্রশ্ন:

  • আমি কীভাবে "CADAnnotation"এবং / অথবা "ACAD"গ্রুপ স্তর সরিয়ে ফেলব ?

উত্তর:


17

আপনি কি আসলে জিওডাটাবেস থেকে স্তরটি মুছতে চান বা এমএক্সডি থেকে সরাতে চান?

যদি আপনি কেবল আপনার এমএক্সডি থেকে স্তরটি সরাতে চান তবে এর arcpy.Delete_management("CADAnnotation")সাথে প্রতিস্থাপন করুনarcpy.mapping.RemoveLayer(df, lyr)

আপনি যদি ডেটা উত্স মুছতে চান তবে আপনি এটি করতে পারেন।

for item in mxds:
   print (item)
   mxd = arcpy.mapping.MapDocument(item)
   df=arcpy.mapping.ListDataFrames(mxd,"Project Area")[0]
   for lyr in arcpy.mapping.ListLayers(mxd, "*",df):
      if lyr.name == "CADAnnotation":
         arcpy.mapping.RemoveLayer(df, lyr)
         print(lyr.dataSource)
         arcpy.Delete_management(lyr.dataSource)
         print("Layer Deleted")
      else:
         pass
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.