10 votos

Hacer ArcGIS Pro tareas de soporte de caja de herramientas de Python herramientas que operan en el Mapa Marcos?

Hacer ArcGIS Pro tareas de soporte de caja de herramientas de Python herramientas que operan en el Mapa Marcos?

La razón que pido es que estoy atascado al intentar hacer lo siguiente:

  1. Inicio De ArcGIS Pro 1.1.1
  2. Crear un nuevo proyecto - me llama la mina TestProject y puesto en C:\Temp
  3. Utilice el panel Proyecto para Agregar Conexión de Carpetas donde tengo un shapefile de los países del mundo Natural de la Tierra ()
  4. Arrastrar y soltar ne_10m_admin_0_countries.shp en el Mapa para crear una capa llamada ne_10m_admin_0_countries
  5. Insertar un nuevo Diseño - he utilizado A3 horizontal
  6. Insertar un nuevo Marco de Mapas en el Diseño
  7. En el panel Proyecto de crear una Nueva caja de herramientas de Python en el TestProject carpeta - me llama la mina TestPYT
  8. Haga clic derecho en TestPYT en el panel Proyecto para editarlo
  9. Reemplace el código con la de abajo a dar a la caja de herramientas de Python dos herramientas llamado Chile y Suiza
  10. Guardar la secuencia de comandos y la Actualización de la caja de herramientas de Python para ver las dos nuevas herramientas de
  11. Ejecute la herramienta de Chile para ver el mapa de marco en el diseño de zoom para Chile
  12. Ejecutar la Suiza herramienta para ver el mapa de marco en el diseño de zoom a Suiza
  13. Insertar un Nuevo Elemento de Tarea
  14. En el Elemento de Tarea 1 insertar una Nueva Tarea y llamar a Chile
  15. En el Chile de la tarea de insertar un Nuevo Paso y llamar a Acercar a Chile
  16. Para el Paso de Comportamiento de modo Automático, y Oculto
  17. En la ficha Acciones, trato de Comando set/Geoprocesamiento como una Herramienta de Geoprocesamiento la elección de la herramienta de Chile

enter image description here

  1. Parece pegarse a la hora de elegir OK

enter image description here

  1. Se parece a "perder" la herramienta cuando hago clic en Hecho

Específicamente, lo que estoy tratando de crear un flujo de trabajo con dos tareas que puedo hacer clic en Zoom a Chile o Zoom a Suiza, pero estoy atascado en el paso 19.

Lo que estoy tratando de hacer en general es encontrar un ArcPy (para ArcGIS Pro) equivalente a la de una serpiente Pitón de Complemento de la barra de herramientas en ArcPy (para ArcGIS 10.x de la arquitectura), con dos botones (Chile y Suiza) para acercar a esos países.

He corrido a través de este procedimiento un par de veces, y en una ocasión yo era capaz de conseguir el Chile y Suiza herramientas para el palo como de las tareas, pero que aun así, no parece interactuar con el Mapa de Marco (ningún error, simplemente no hay cambio a lo que se muestra en el Mapa de Marco cuando se toparon), aunque las herramientas cuando se ejecuta desde la caja de herramientas de Python continuó trabajando sin problema.

enter image description here

Este es el código para copiar/pegar en la caja de herramientas de Python (TestPYT).

import arcpy


class Toolbox(object):
    def __init__(self):
        """Define the toolbox (the name of the toolbox is the name of the
        .pyt file)."""
        self.label = "Toolbox"
        self.alias = ""

        # List of tool classes associated with this toolbox
        self.tools = [Slide1,Slide2]


class Slide1(object):
    def __init__(self):
        """Define the tool (tool name is the name of the class)."""
        self.label = "Chile"
        self.description = ""
        self.canRunInBackground = False

    def getParameterInfo(self):
        """Define parameter definitions"""
        params = None
        return params

    def isLicensed(self):
        """Set whether tool is licensed to execute."""
        return True

    def updateParameters(self, parameters):
        """Modify the values and properties of parameters before internal
        validation is performed.  This method is called whenever a parameter
        has been changed."""
        return

    def updateMessages(self, parameters):
        """Modify the messages created by internal validation for each tool
        parameter.  This method is called after internal validation."""
        return

    def execute(self, parameters, messages):
        """The source code of the tool."""
        aprx = arcpy.mp.ArcGISProject("CURRENT")
        mapx = aprx.listMaps()[0]
        lyt = aprx.listLayouts()[0]
        lyr = mapx.listLayers("ne_10m_admin_0_countries")[0]
        lyr.definitionQuery = '"ADMIN" = ' + "'Chile'"
        mFrame = lyt.listElements("MAPFRAME_ELEMENT")[0]
        mFrame.camera.setExtent(mFrame.getLayerExtent(lyr, False, True))
        lyr.definitionQuery = ""
        return

class Slide2(object):
    def __init__(self):
        """Define the tool (tool name is the name of the class)."""
        self.label = "Switzerland"
        self.description = ""
        self.canRunInBackground = False

    def getParameterInfo(self):
        """Define parameter definitions"""
        params = None
        return params

    def isLicensed(self):
        """Set whether tool is licensed to execute."""
        return True

    def updateParameters(self, parameters):
        """Modify the values and properties of parameters before internal
        validation is performed.  This method is called whenever a parameter
        has been changed."""
        return

    def updateMessages(self, parameters):
        """Modify the messages created by internal validation for each tool
        parameter.  This method is called after internal validation."""
        return

    def execute(self, parameters, messages):
        """The source code of the tool."""
        aprx = arcpy.mp.ArcGISProject("CURRENT")
        mapx = aprx.listMaps()[0]
        lyt = aprx.listLayouts()[0]
        lyr = mapx.listLayers("ne_10m_admin_0_countries")[0]
        lyr.definitionQuery = '"ADMIN" = ' + "'Switzerland'"
        mFrame = lyt.listElements("MAPFRAME_ELEMENT")[0]
        mFrame.camera.setExtent(mFrame.getLayerExtent(lyr, False, True))
        lyr.definitionQuery = ""
        return

4voto

Skipper Puntos 1

*.PYT cajas de herramientas no son compatibles para las tareas en la 1.0 y la 1.1. Serán compatibles en 1.2. Como solución pruebe a insertar la herramienta en un modelo de geoprocesamiento y, a continuación, utilizar una tarea paso a llamar a la modelo

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X