Le module pythonaddins
Le module pythonaddins contient les fonctions destinées à prendre en charge les compléments Python.
Le module pythonaddins peut uniquement être utilisé au sein d'un complément Python. Il ne peut pas être utilisé dans des scripts autonomes ou des outils de script de géotraitement.
Fonction | Explication |
---|---|
OpenDialog({title}, {multiple_selection}, {starting_location}, {button_caption}) | Ouvre une boîte de dialogue permettant de sélectionner un ou plusieurs jeux de données SIG. Cette fonction renvoie le chemin complet du jeu de données choisi. Si plusieurs jeux de données sont choisis, elle renvoie une liste de chemins complets. Aucun filtrage n'a lieu sur les jeux de données en entrée (par exemple, filtrer uniquement les classes d'entités points.
|
SaveDialog({title}, {name_text}, {starting_location}) | Ouvre une boîte de dialogue permettant d'enregistrer les données. Cette fonction renvoie le chemin complet du jeu de données à enregistrer.
|
GPToolDialog(toolbox, tool_name) | Ouvre une boîte de dialogue de l'outil de géotraitement.
|
MessageBox(message, title, {mb_type}) | Afficher une zone de message. Cette fonction renvoie une valeur de chaîne représentant le bouton de message enfoncé.
|
GetSelectedTOCLayerOrDataFrame() | Renvoie la couche ou le bloc de données sélectionné de la table des matières. |
Code mb_type | Type de zone de message |
---|---|
0 | OK uniquement |
1 | OK/Annuler |
2 | Annuler/Réessayer/Ignorer |
3 | Oui/Non/Annuler |
4 | Oui/Non |
5 | Réessayer/Annuler |
6 | Annuler/Réessayer/Continuer |
Ce bouton de complément fait appel à la fonction OpenDialog() pour sélectionner un jeu de fichiers de couches et ajoute chaque couche au bloc de données sélectionné.
import arcpy
import pythonaddins
class AddLayers(object):
def __init__(self):
self.enabled = True
self.checked = False
def onClick(self):
layer_files = pythonaddins.OpenDialog('Select Layers', True, r'C:\GISData', 'Add')
mxd = arcpy.mapping.MapDocument('current')
df = pythonaddins.GetSelectedTOCLayerOrDataFrame()
if not isinstance(df, arcpy.mapping.Layer):
for layer_file in layer_files:
layer = arcpy.mapping.Layer(layer_file)
arcpy.mapping.AddLayer(df, layer)
else:
pythonaddins.MessageBox('Select a data frame', 'INFO', 0)
Ce bouton de complément ouvre un outil de géotraitement.
import arcpy
import pythonaddins
class OpenGPTool(object):
def __init__(self):
self.enabled = True
self.checked = False
def onClick(self):
pythonaddins.GPToolDialog(r'C:\MyTools\WaterStudy.tbx', 'GroundWaterYield')