ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Ayuda
  • Sign Out
ArcGIS Desktop

ArcGIS Online

La plataforma de representación cartográfica para tu organización

ArcGIS Desktop

Un completo SIG profesional

ArcGIS Enterprise

SIG en tu empresa

ArcGIS Developers

Herramientas para crear aplicaciones basadas en la ubicación

ArcGIS Solutions

Plantillas de aplicaciones y mapas gratuitas para tu sector

ArcGIS Marketplace

Obtén aplicaciones y datos para tu organización.

  • Documentación
  • Soporte
Esri
  • Iniciar sesión
user
  • Mi perfil
  • Cerrar sesión

ArcMap

  • Inicio
  • Introducción
  • Cartografiar
  • Analizar
  • Administrar datos
  • Herramientas
  • Extensiones

ToolValidator para Agregar campo

Este ejemplo simula la validación de la herramienta Agregar campo. Dado que Agregar campo es una herramienta incorporada, no tiene una clase ToolValidator. Pero si la tuviera, sería algo parecido a esto.

A modo de revisión, a continuación presentamos los parámetros para Agregar campo y sus tipos de datos:

  • 0 - Tabla de entrada: tipo de datos compuesto, incluye todas las tablas
  • 1 - Nombre del campo: Cadena de caracteres
  • 2 - Tipo del campo: cadena de texto (LONG, SHORT, DOUBLE y así sucesivamente)
  • 3 - Precisión del campo: largo
  • 4 - Escala del campo: largo
  • 5 - Longitud del campo: largo
  • 6 - Alias del campo: Cadena de caracteres
  • 7 - Permitir campos nulos: Booleano
  • 8 - Campo necesario en la tabla: Booleano
  • 9 - Dominio del campo: Cadena de caracteres
  • 0 - Tabla de salida: salida derivada, obtenida del parámetro 0

Este ejemplo simula la validación de la herramienta Agregar campo

class ToolValidator:      def __init__(self):         import arcpy          self.params = arcpy.GetParameterInfo()      def initializeParameters(self):         # The derived output is a clone (copy) of the input         #         self.params[10].parameterDependencies = [0]         self.params[10].schema.clone = True          # Set up the field type list         #         self.params[2].filter.list = ["TEXT", "FLOAT", "DOUBLE",                                       "SHORT", "LONG", "DATE",                                       "BLOB", "RASTER"]          # The default field type is LONG         #         self.params[2].value = "LONG"          # Field scale & Length are disabled for LONG types         #         self.params[4].enabled = False         self.params[5].enabled = False          # Set the Boolean filters for IsNullable and IsRequired and         #  their default values         #         self.params[7].filter.list = ["NULLABLE", "NON_NULLABLE"]         self.params[7].value = "NULLABLE"                  self.params[8].filter.list = ["REQUIRED", "NON_REQUIRED"]         self.params[8].value = "NON_REQUIRED"          return      def updateParameters(self):         # Set the default field type value unless the user altered it         #         if not self.params[2].altered:             self.params[2].value = "LONG"          # Enable/Disable parameters based on field type         #         fieldType = self.params[2].value.upper()         if fieldType in ["TEXT", "BLOB"]:             self.params[3].enabled = False             self.params[4].enabled = False             self.params[5].enabled = True         elif fieldType in ["FLOAT", "DOUBLE"]:             self.params[3].enabled = True             self.params[4].enabled = True             self.params[5].enabled = False         elif fieldType in ["SHORT", "LONG"]:             self.params[3].enabled = True             self.params[4].enabled = False             self.params[5].enabled = False         elif fieldType in ["DATE", "RASTER"]:             self.params[3].enabled = False             self.params[4].enabled = False             self.params[5].enabled = False         else:             # Unknown field type.  Internal validation will catch this             #  and show an error. We might as well return here and let             #  internal validation do its work.             #             return                  # Update the output schema with the new field. Don't do anything         #  unless we have an input value and a field name         #         if self.params[0].value and self.params[1].value:             newField = arcpy.Field()             newField.name = self.params[1].value             newField.type = self.params[2].value              # Set up the field properties based on type of field             #             if self.params[3].value and self.params[3].enabled:                 newField.precision = self.params[3].value             if self.params[4].value and self.params[4].enabled:                 newField.scale = self.params[4].value             if self.params[5].value and self.params[5].enabled:                 newField.length = self.params[5].value                              if self.params[6].value:                 newField.aliasName = self.params[6].value                              newField.isNullable = self.params[7].value              # Note: IsRequired is not a property on a field object -- it's             #  handled internally by the Add Field system tool.             #              if self.params[9].value:                 newField.domain = self.params[9].value              # Set the additional field on the output schema             #             self.params[10].schema.additionalFields = [newField]      def updateMessages(self):         return

ArcGIS Desktop

  • Inicio
  • Documentación
  • Soporte

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Acerca de Esri

  • Quiénes somos
  • Empleo
  • Blog de Esri
  • Conferencia de usuarios
  • Cumbre de desarrolladores
Esri
Díganos su opinión.
Copyright © 2021 Esri. | Privacidad | Legal