Menerapkan Parameter MultiValue dengan Banyak Kolom dengan Python dan ArcGIS Desktop?


10

Saya sedang mengerjakan skrip Python ArcGIS (9.3). Salah satu input adalah daftar fitur. Untuk setiap fitur, saya harus memilih bidang yang sesuai. Mengatur parameter ke MultiValue memberikan tabel yang bagus di UI untuk semua fitur yang sedang diproses. Bagaimana cara menambahkan kolom lain ke tabel MultiValue untuk memilih bidang untuk setiap fitur?

Diposting silang: http://forums.arcgis.com/threads/30907-MultiValue-Parameter-with-Multiple-Columns

Jawaban Esri dari forum ArcGIS:

Sayangnya, solusi untuk ini diimplementasikan baru-baru ini untuk 10.1 dengan input ValueTable untuk alat skrip. Anda harus memiliki dua parameter multinilai dengan beberapa validasi khusus untuk membuat ini berfungsi untuk 9.3.1.


Jika ini adalah generasi daftar pilihan multinilai yang Anda minati - Saya telah melihat posting blog Esri ini baru-baru ini, mungkin akan membantu.
Alex Tereshenkov

Jawaban:


1

Saya telah bekerja bagaimana melakukan ini walaupun dengan cara yang cukup sederhana. Saya ingin membuat parameter multinilai di mana saya menambahkan banyak FeatureLayers dan kemudian memilih bidang ID untuk setiap lapisan. Saya membuatnya berfungsi tetapi saya tidak dapat bekerja bagaimana membuat bidang daftar drop down, sehingga pengguna harus memasukkan nama bidang secara manual. Inilah antarmuka:

Contoh antarmuka

Jika ada yang berhasil memecahkan masalah ini atau beberapa guru dari ESRI memberkati kita dengan pengetahuan mereka, saya akan senang mengetahui bagaimana mengubah kolom kedua saya (ID Situs) menjadi drop down, daftar bidang tertentu. Jika Anda ingin melihat contohnya, lihat alat Create TIN .

Pokoknya untuk membuat antarmuka ini saya membuat alat skrip dan menambahkan parameter tipe layer fitur dan mengaturnya ke multivalue seperti yang ditunjukkan di bawah ini.

Pengaturan antarmuka awal

Saya kemudian mengklik tab Validasi di bagian atas dan kemudian tombol Edit. Karena parameter ini adalah parameter ke-6 dalam alat skrip saya, saya memperbarui kode berikut:

def initializeParameters(self):
    """Refine the properties of a tool's parameters.  This method is
    called when the tool is opened."""

    # Get the 6th parameter
    param = self.params[6]
    param.datatype = "Value Table"
    param.columns = [["Feature Layer","Activity Layer"],["Field","Site ID"]]    
    return

Ini me-reset antarmuka ke tabel multi-kolom yang saya inginkan. Saat Anda menggunakan GetParameterAsText, ia mengembalikan yang berikut menggunakan contoh saya:

pipeline pid;Dredging did


Saya telah melakukan beberapa penelitian lebih lanjut dan telah membuat alat menggunakan kotak alat python. Ini bekerja dengan sangat baik tetapi memiliki batasan jika Anda kembali dan memilih ID lain. Saya telah memposting kode di GeoNet di sini .


0

jika Anda mencari daftar turun bawah untuk parameter ID Situs, Anda dapat menggunakan kode sebagai berikut:

 param.filters[1].list = ['pid', 'id']

Jadi, Anda dapat membuat kursor atau menggunakan metode lain untuk membaca semua bidang FC dan meneruskannya, sebagai daftar, ke kalimat sebelumnya

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.