私はこれをかなり簡単な方法で行う方法を考え出しました。多数のFeatureLayerを追加し、各レイヤーのIDフィールドを選択する複数値パラメーターを作成したいと思いました。機能しましたが、フィールドをドロップダウンリストにする方法を実行できなかったため、ユーザーはフィールド名を手動で入力する必要があります。これがインターフェースです:
誰かがこの問題を解決できた場合、またはESRIの指導者が私たちに知識を与えてくれた場合、2番目の列(サイトID)をドロップダウンにして、特定のフィールドをリストする方法を見つけたいと思います。この例を確認したい場合は、TINの作成ツールをご覧ください。
とにかく、このインターフェイスを作成するには、スクリプトツールを作成し、フィーチャレイヤータイプのパラメーターを追加して、以下に示すように複数の値に設定します。
次に、上部の[検証]タブをクリックし、[編集]ボタンをクリックしました。このパラメーターはスクリプトツールの6番目のパラメーターなので、次のコードを更新しました。
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
これにより、インターフェイスが希望する複数列のテーブルにリセットされます。GetParameterAsTextを使用すると、私の例を使用して以下が返されます。
pipeline pid;Dredging did
さらに調査を行い、Pythonツールボックスを使用してツールを作成しました。これは非常にうまく機能しますが、戻って別のIDを選択すると制限があります。こちらのコードをGeoNetに投稿しました。