Création d'un outil de complément Python

Création d'un outil de complément

Un outil est très similaire à un bouton. Un outil nécessite toutefois une interaction de l'utilisateur avec l'affichage de l'application bureautique dans un premier temps, puis, en fonction de cette interaction, il exécute une logique métier. L'outil Zoom avant Zoom avant d'ArcMap est un bon exemple : il nécessite que vous cliquiez ou déplaciez un rectangle sur une carte pour que l'affichage soit redessiné et affiche le contenu de la carte avec davantage de détails pour la zone spécifiée.

Cette rubrique vous guide dans le processus de création d'un outil sur une nouvelle barre d'outils à l'aide de l'assistant de complément Python. Avant de commencer ce workflow, vérifiez que vous avez créé un projet de complément ArcMap et spécifié des paramètres de projet. Pour plus d'informations, reportez-vous à la rubrique Création d'un projet de complément. Ce workflow explique comment créer un outil pour ArcMap, mais vous pouvez utiliser cette procédure pour ajouter un outil à toute application d'ArcGIS for Desktop. Cette rubrique présente la procédure de création d'un simple outil Créer un quadrillage. La classe Python créée par l'Assistant de compléments sera ensuite examinée afin d'étudier les propriétés et méthodes qui fournissent des fonctionnalités à l'outil.

La création d'un outil de complément est un processus impliquant les étapes suivantes :

Etapes :
  1. Création d'une barre d'outils.

    Cliquez sur l'onglet Contenu des compléments et commencez à déclarer vos personnalisations de complément. Un outil peut se trouver sur une barre d'outils, mais pas dans un menu. Reportez-vous à la rubrique Création d'une barre d'outils de compléments pour connaître la procédure de création de votre propre barre d'outils.

  2. Créez l'outil.

    Cliquez avec le bouton droit sur la nouvelle barre d'outil et sélectionnez Nouvel outil.

    Création d'un outil de complément

    Un outil possède un certain nombre de propriétés que vous devez définir. La liste ci-dessous répertorie toutes les propriétés et en donne une explication. Ces propriétés sont enregistrées dans le fichier config.xml du projet.

    Propriété

    Description

    Caption (requise)

    Définit la légende de l'outil. L'illustration suivante présente la légende utilisée dans le Gestionnaire de compléments ArcGIS pour identifier les différents types de personnalisations disponibles (le type de complément est identifié entre parenthèses) :

    Propriétés de l'outil Quadrillage dans le Gestionnaire de compléments

    L'illustration suivante présente la légende utilisée comme texte pour identifier l'outil sur la barre d'outils :

    Outil de complément Créer un quadrillage dans ArcMap

    Class (requise)

    Classe Python représentant votre outil. La classe Python est l'endroit où vous écrivez la logique métier de l'outil. Cette classe est importante car elle est exécutée à chaque fois que l'utilisateur clique sur l'outil dans une application bureautique. Utilisez la convention d'attribution de noms Python lorsque vous construisez la classe. Les classes Python utilisent la notation avec majuscules. Dans cet exemple nous allons créer une classe nommée CréerQuadrillage.

    ID (requise)

    Nom unique utilisé pour identifier l'outil. Vous pouvez créer plusieurs outils pour un projet donné ; cet ID permet de distinguer les différents outils. Dans l'idéal, vous devriez remplacer l'ID par défaut par une valeur plus explicite. Cet ID ne doit pas contenir d'espace. Vous pouvez utiliser des traits de soulignement pour lier les mots. N'utilisez pas de mots-clés Python. Consultez la documentation Python pour connaître les mots réservés.

    Tooltip (facultative)

    Brève description qui s'affiche lorsque le pointeur de la souris s'immobilise au-dessus de l'outil dans une application bureautique.

    Message (facultative)

    Description plus détaillée de l'outil décrivant ce qu'il fait. Identique à l'info-bulle, le message apparaît lorsque vous le pointeur de la souris s'immobilise sur l'outil en conjonction avec l'info-bulle.

    Image (facultative)

    Image 16 x 16 pixels destinée à symboliser l'outil. Le format d'image peut être l'un des formats suivants : .png, .gif ou .bmp). L'image sera copiée dans le dossier Images créé dans le projet de complément.

    La dernière section de l'outil est constituée de l'en-tête et du contenu de l'Aide. Ces propriétés vous permettent de fournir des informations qui s'affichent lorsqu'un utilisateur appelle l'aide contextuelle. Ce sont des rubriques qui restent visibles à l'écran jusqu'à ce que l'utilisateur clique ailleurs.

    Les propriétés suivantes comprennent cette section d'Aide contextuelle :

    Propriété

    Description

    Heading (facultative)

    Indique la nature du contenu de l'aide.

    Content (facultative)

    Contenu de l'Aide pour l'outil.

    Lorsque vous avez terminé de saisir les propriétés, cliquez sur Enregistrer dans le bas de l'Assistant. Tous les fichiers et dossiers nécessaires sont alors créés dans le dossier de travail.

  3. Modifiez le script Python et mettez à jour la classe Python de manière à inclure les fonctionnalités pour la création d'un quadrillage de polygones.

    Vous pouvez définir une zone d'intérêt en faisant glisser la souris pour créer un rectangle. La taille du quadrillage est définie à 10 lignes par 10 colonnes. Pour ajouter des fonctionnalités à l'outil personnalisé, procédez de la manière suivante :

    1. Modifiez le script Python dans le dossier Install contenu dans le dossier de travail que vous avez créé grâce à l'Assistant.

      Une classe portant le nom que vous avez saisi dans l'Assistant existe. Ne la renommez pas, car son nom est référencé dans le fichier config.xml. Pour une présentation des fonctions et propriétés de la classe, reportez-vous à la rubrique classe Outil.

    2. Mettez à jour les fonctions comme illustré ci-dessous :

      Ce code fournit les fonctionnalités permettant de créer un quadrillage de polygones de 10 lignes par 10 colonnes.

      def __init__(self):
          self.enabled = True
          self.cursor = 3
          self.shape = 'Rectangle'
          
      def onRectangle(self, rectangle_geometry):
          """Occurs when the rectangle is drawn and the mouse button is released.
          The rectangle is a extent object."""
      
          extent = rectangle_geometry
          # Create a fishnet with 10 rows and 10 columns.
          if arcpy.Exists(r'in_memory\fishnet'):
              arcpy.Delete_management(r'in_memory\fishnet')
          fishnet = arcpy.CreateFishnet_management(r'in_memory\fishnet',
                                  '%f %f' %(extent.XMin, extent.YMin),
                                  '%f %f' %(extent.XMin, extent.YMax),
                                  0, 0, 10, 10,
                                  '%f %f' %(extent.XMax, extent.YMax),'NO_LABELS',
                                  '%f %f %f %f' %(extent.XMin, extent.YMin, extent.XMax, extent.YMax), 'POLYGON')
          arcpy.RefreshActiveView()
          return fishnet
      
    3. Enregistrez le script.
  4. Test de l'outil

    Une fois que l'outil est créé et que le code est ajouté, il est important de créer le fichier de complément et de le tester avant de le partager. La procédure correspondante est indiquée à la rubrique Test d'un complément.

  5. Déployez et partagez le complément.

    La procédure de déploiement et de partage du complément est présentée à la rubrique Partage de compléments.

Thèmes connexes

5/10/2014