Crear una herramienta de add-in
Una herramienta es muy similar a un botón. Sin embargo, la herramienta requiere primero la interacción del usuario con la pantalla de la aplicación de escritorio y, dependiendo de esa interacción, ejecuta alguna lógica de negocios. La herramienta Acercar de ArcMap es un buen ejemplo. Requiere que usted haga clic o arrastre un rectángulo por el mapa para que se vuelva a dibujar la pantalla mostrando el contenido del mapa con mayor detalle para el área especificada.
Este tema le guía a través del proceso de creación de una herramienta en una nueva barra de herramientas mediante el Asistente de add-in de Python. Antes de comenzar este flujo de trabajo, asegúrese de haber creado un proyecto add-in de ArcMap y de haber especificado la configuración del proyecto. Para obtener más información, consulte Crear un proyecto de add-in. Si bien este flujo de trabajo muestra cómo crear una herramienta para ArcMap, puede utilizar este proceso para agregar una herramienta a cualquier aplicación ArcGIS for Desktop . Este tema analiza el proceso de creación de una herramienta simple Crear red. A continuación se examina con mayor detalle la clase de Python creada por el Asistente de add-in de Python para explorar las propiedades y métodos que proporcionan funcionalidad a su herramienta.
La creación de una herramienta de add-in consta de los siguientes pasos:
- Crear una barra de herramientas.
Haga clic en la pestaña Contenido de add-in y empiece manifestando la personalización de los add-in. Una herramienta puede situarse en una barra de herramientas, pero no en un menú. Consulte Crear una barra de herramientas de add-in para ver los pasos necesarios para crear su propia barra de herramientas.
- Crear la herramienta.
Haga clic con el botón derecho en la nueva barra de herramientas y elija Nueva herramienta.
La herramienta tiene gran cantidad de propiedades que usted debe introducir. La siguiente es una lista de todas las propiedades con una explicación para cada una. Estas propiedades se almacenan en el archivoconfig.xml del proyecto.
Propiedad Descripción Título (necesario)
Define el título de la herramienta. La siguiente ilustración muestra el título utilizado en el Administrado de add-in de ArcGIS para ayudar a identificar los diferentes tipos de personalizaciones disponibles (el tipo de add-in se identifica entre paréntesis):
La siguiente ilustración muestra el título utilizado como texto para identificar la herramienta en la barra de herramientas:
Clase(necesaria)
La clase de Python que representa a su herramienta. La clase de Python es donde usted escribe su lógica de negocios para la herramienta. Esta clase es importante porque se ejecuta cuando se hace clic sobre la herramienta en una aplicación de escritorio. Utilice la convención de nombres de Python cuando construya su clase. Las clases de Python utilizan la notación de palabras mayúsculas. En este ejemplo, se ha creado una clase denominada CrearFishnet.
Id.(necesario)
El nombre particular utilizado para identificar su herramienta. Es posible crear más de una herramienta para un determinado proyecto y este Id. se utiliza para distinguir entre las diferentes herramientas. Lo ideal sería que usted sustituyera el ID predeterminado con un valor más significativo. El Id. no debe tener espacios. Puede utilizar guiones bajos para unir palabras. No debe utilizar palabras clave de Python. Consulte la documentación de Python en relación a las palabras reservadas.
Información sobre herramientas (opcional)
Una breve descripción que aparece cuando detiene el puntero del ratón sobre la herramienta en una aplicación de escritorio.
Mensaje (opcional)
Una descripción más detallada de la herramienta que describe lo que hace la herramienta. Idéntica a la información sobre herramientas, el mensaje aparece, junto con la información sobre herramientas, cuando se detiene el puntero del ratón en la herramienta
Imagen (opcional)
Debería ser una imagen de 16 x 16 píxeles utilizada para simbolizar su herramienta. El formato de imagen sólo puede ser uno de los siguientes: .png, .gif, or .bmp). La imagen se copiará a la carpeta de imágenes creada en su proyecto de add-in.
La parte final de la herramienta es el título y el contenido de Ayuda. Estas propiedades le permiten proporcionar la información que aparecerá cuando un usuario inicie la ayuda contextual. Estos son temas emergentes que permanecen en pantalla hasta que el usuario haga clic en otro lugar.
Las siguientes propiedades conforman la sección de ayuda contextual:
Propiedad Descripción Encabezamiento (opcional)
Indica de qué trata el contenido de la ayuda
Contenido (opcional)
El contenido de la ayuda para la herramienta.
Una vez que haya terminado de introducir las propiedades, haga clic en Guardar en la parte inferior del asistente. Todos los archivos y carpetas necesarios se crean dentro de su carpeta de trabajo.
- Editar la secuencia de comandos de Python y actualizar la clase de Python para incluir la funcionalidad de crear una red de polígonos.
Un área de interés se define arrastrando el ratón para crear un rectángulo. El tamaño de la red está establecido en 10 filas por 10 columnas. Para agregar la funcionalidad a la herramienta personalizada, realice los siguientes pasos:
- Edite la secuencia de comandos de Python en la carpeta Instalar que se encuentra en la carpeta de trabajo que usted creó sirviéndose del asistente.
Existirá una clase con el mismo nombre que el que se introdujo a través del asistente. No cambie el nombre de esta clase, ya que se hace referencia al nombre de la clase en config. xml. Para obtener más información sobre la explicación de cada función y la propiedad de la clase, consulte el tema Clase de herramienta.
- Actualice las funciones tal y como se muestra a continuación.
Este código proporciona la funcionalidad de crear una red de polígonos con 10 filas y 10 columnas.
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
- Guarde la secuencia de comandos.
- Edite la secuencia de comandos de Python en la carpeta Instalar que se encuentra en la carpeta de trabajo que usted creó sirviéndose del asistente.
- Probar la herramienta
Una vez que haya creado la herramienta y haya agregado su código de la secuencia de comandos, es importante hacer el archivo add-in y probar el add-in antes de compartirla. Para más información sobre estos pasos, consulte Probando un add-in.
- Implemente y comparta el add-in.
Para obtener más información sobre los pasos necesarios para implementar y compartir el add-in, consulte Compartir add-in.