Crear dominio (Administración de datos)
Resumen
Crea un dominio de atributo en el espacio de trabajo especificado.
Uso
-
La administración de dominios comprende los siguientes pasos:
- Cree el dominio utilizando esta herramienta.
- Agregue valores o establezca el rango de valores para el dominio utilizando la herramienta Agregar valor codificado al dominio o la herramienta Establecer valor para dominio de rango.
- Asocie el dominio con una clase de entidad utilizando la herramienta Asignar dominio al campo.
-
Los dominios de valor codificado admiten únicamente políticas de división duplicada y de valor predeterminado y políticas de fusionado de valor predeterminado.
-
Los dominios de rango admiten todas las políticas de división y de fusionado. Después de la operación de división o fusionado, los valores de atributo de las entidades de salida se calculan basados en los valores numéricos de las entidades de entrada y la política de división o de fusionado especificada.
-
Los dominios del espacio de trabajo también se pueden administrar en ArcCatalog o en la ventana Catálogo. Los dominios se pueden crear y modificar a través de la ficha Dominios en el cuadro de diálogo Propiedades de la base de datos.
Sintaxis
Parámetro | Explicación | Tipo de datos |
in_workspace |
La geodatabase que contendrá el dominio nuevo. | Workspace |
domain_name |
El nombre del dominio que se creará. | String |
domain_description |
La descripción del dominio que se creará. | String |
field_type |
El tipo de dominio de atributo que se creará. Los dominios de atributo son reglas que describen los valores legales de un tipo de campo. Especifique un tipo de campo que coincida con el tipo de datos del campo al que se asignará el dominio de atributo.
| String |
domain_type (Opcional) |
El tipo de dominio que se creará:
| String |
split_policy (Opcional) |
La política de división del dominio creado. El comportamiento de los valores de un atributo cuando una entidad dividida está bajo el control de su política de división.
| String |
merge_policy (Opcional) |
La política de fusionado del dominio creado. Cuando se fusionan dos entidades para crear una única entidad, las políticas de fusionado controlan los valores de atributo en la nueva entidad.
| String |
Ejemplo de código
La siguiente secuencia de comandos de la ventana de Python demuestra cómo utilizar la función CreateDomain en el modo inmediato.
import arcpy from arcpy import env env.workspace = "C:/data" arcpy.CreateDomain_management("montgomery.gdb", "Materials", "Valid pipe materials", "TEXT", "CODED")
Esta secuencia de comandos independiente utilizó la función CreateDomain como parte de un flujo de trabajo para crear un dominio de atributo, asignarle valores y asignar el dominio a un campo en una clase de entidad.
# Name: MakeDomain.py # Description: Create an attribute domain to constrain pipe material values # Author: ESRI #Import system modules import arcpy from arcpy import env try: # Set the workspace (to avoid having to type in the full path to the data every time) env.workspace = "C:/data" # Set local parameters domName = "Material4" gdb = "montgomery.gdb" inFeatures = "Montgomery.gdb/Water/Distribmains" inField = "Material" # Process: Create the coded value domain arcpy.CreateDomain_management("montgomery.gdb", domName, "Valid pipe materials", "TEXT", "CODED") #Store all the domain values in a dictionary with the domain code as the "key" and the #domain description as the "value" (domDict[code]) domDict = {"CI":"Cast iron", "DI": "Ductile iron", "PVC": "PVC", \ "ACP": "Asbestos concrete", "COP": "Copper"} # Process: Add valid material types to the domain #use a for loop to cycle through all the domain codes in the dictionary for code in domDict: arcpy.AddCodedValueToDomain_management(gdb, domName, code, domDict[code]) # Process: Constrain the material value of distribution mains arcpy.AssignDomainToField_management(inFeatures, inField, domName) except Exception, e: # If an error occurred, print line number and error message import traceback, sys tb = sys.exc_info()[2] print "Line %i" % tb.tb_lineno print e.message