Comment utiliser une variable dans Sélectionner une couche par attribut dans Model Builder

Sep 30 2020

J'ai une variable Types(plusieurs chaînes) dans mon modèle et j'aimerais utiliser la variable avec l'outil Select Layer By Attributeet une clause where TYPE IN (%Types%).

Cependant, %Types%est une ;chaîne séparée par des points-virgules ( ), par exemple, 'Type1;Type2'mais ce dont j'ai besoin est une liste de chaînes (à laquelle je me serais attendu étant donné que c'est une variable avec plusieurs valeurs).

ArcGIS Pro dispose-t-il d'une fonction intégrée pour utiliser la variable Typesdans ce cas d'utilisation, ou dois-je écrire un script Python pour ce faire?

Je n'ai rien trouvé dans la référence SQL sur la page d'aide d'ArcGIS Pro: https://pro.arcgis.com/en/pro-app/help/mapping/navigation/sql-reference-for-elements-used-in-query-expressions.htm

Réponses

2 KHibma Sep 30 2020 at 01:27

Vous aurez besoin d'écrire un peu de Python.

Vous pouvez ajouter Calculer la valeur à partir du menu Utilitaires de ModelBuilder.

Vous n'avez pas besoin d'écrire une fonction complète, vous pouvez fournir ce qui suit comme expression: str(tuple(%Types%.split(";")))

Cela suppose que vous disposez d'un paramètre nommé Types comme vous l'avez mentionné dans votre question.

Contribution: "foo;bar;foo2;bar2"

Production: ('foo', 'bar', 'foo2', 'bar2')

Sinon, si vous n'avez PAS le "" dans la chaîne d'entrée (c'est-à-dire. foo;bar;foo2;bar2) Vous pouvez utiliser l'expression suivante avec les guillemets enveloppant Types:str(tuple("%Types%".split(";")))