Suite

Comment obtenir et créer des classes d'entités dans les boîtes à outils Python ?


J'écris ma première boîte à outils python. Je sais qu'il existe un moyen de le faire dans le traitement par lots, mais pour la preuve de concept, je souhaite écrire cet outil pyt pour appeler l'outil Clip et ajouter les classes d'entités résultantes à la carte.

D'après la documentation, voici comment vous êtes censé appeler l'outil Clip :

arcpy.Clip_analysis('input_feature', 'clip_feature', 'output_feature')

Les paramètres que j'ai définis pour mon outil sont deux "Couche d'entités" que l'utilisateur peut sélectionner, puis un paramètre dérivé qui est une couche d'entités et une sortie.

Une fois les paramètres définis, la seule partie du code qui fait quoi que ce soit est la fonction d'exécution. Je veux juste appeler Clip_analysis avec les noms des couches d'entités que l'utilisateur a définies, puis sortir vers la couche d'entités en sortie dérivée.

Il semble que l'appel de Clip_analysis avec ces paramètres sera affiché dans le gdb dans lequel je travaille, mais il n'apparaîtra pas dans la couche actuelle dans arcmap. Comment puis-je résoudre cela ?


Vous voudrez utiliser AddLayer dans ArcPy. Quelque chose du genre de ce code devrait faire ce que vous demandez :

mxd = arcpy.mapping.MapDocument("CURRENT") df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0] arcpy.Clip_analysis('input_feature', 'clip_feature', 'output_feature') arcpy.mapping.AddLayer (df, addLayer, "AUTO_ARRANGE")

Le demandeur a fourni cette réponse dans sa question, elle a donc été copiée/collée ici :

J'ai compris quel était le problème. Je le laissais fonctionner en tant que programme d'arrière-plan, il n'avait donc aucune idée de l'espace de travail actuel.


Voir la vidéo: La Programmation Orientée Objet en Python - 311 - Création de classe et dobjets (Octobre 2021).