Saya memiliki beberapa kode Python yang diluncurkan dari dalam proyek ArcMap. Setiap gabungan yang mungkin dibuat pengguna dalam proyek harus dihapus agar kode saya dapat berjalan. Sayangnya, kode yang menghapus join… arcpy.RemoveJoin_management ("layer1", "layer2") ... juga memecah beberapa properti layer yang sangat penting untuk aplikasi saya (bidang yang disorot, bidang yang hanya dapat dibaca, dll).
Jika bergabung dihapus dengan mengklik kanan layer di ArcMap dan memilih "Hapus Bergabung" properti layer dibiarkan utuh.
Jika saya dapat mendeteksi adanya gabungan dari dalam kode saya, saya hanya akan keluar dari kode dan menampilkan pesan bahwa pengguna harus secara manual menghapus gabungan mereka sebelum mencoba menjalankan kode. Jadi ... Bisakah Bergabung terdeteksi secara program?
sumber
Jawaban:
Sayang sekali tidak ada properti hasJoin di kelas arcpy.Layer . Saya pikir Anda dapat menguji untuk bergabung dengan melihat nama bidang. Berikut bukti konsep sederhana untuk data dalam file geodatabase:
sumber
Saya pikir Anda akan menemukan bahwa tidak ada cara antipeluru untuk melakukan ini dengan objek GP, Anda harus menggunakan ArcObjects dan comtypes. Berikut ini beberapa diskusi dari forum ESRI tentang kesulitan dalam memeriksa bergabung dengan alat / objek GP standar: https://geonet.esri.com/thread/20317
sumber