Resumen
Establece el dominio para un campo particular y, de manera opcional, para un subtipo. Si no se especifica un subtipo, el dominio sólo se asigna al campo especificado.
Uso
La administración de dominios comprende los siguientes pasos:
- Cree el dominio utilizando la herramienta Crear dominio.
- 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.
- Utilice esta herramienta para asociar el dominio a una clase de entidad.
Cuando se asocia un dominio de tributo con una tabla o clase de entidad, se crea una regla de validación de atributo en la base de datos. Esta regla de validación de atributo describe y restringe los valores válidos de un tipo de campo.
Un dominio de atributo se puede asociar a varios campos de la misma tabla, clase de entidad o subtipo, así como también a varias tablas y clases de entidad.
El parámetro Tabla de entrada acepta capas de entidades o vistas de tabla.
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 pestaña Dominios en el cuadro de diálogo Propiedades de la base de datos.
El botón Agregar valor del parámetro Subtipo se utiliza sólo en ModelBuilder. En ModelBuilder, donde no se ejecutó la herramienta anterior, o sus datos derivados no existen, es probable que el parámetro Subtipo no se complete con valores. El botón Agregar valor le permite agregar valores esperados para poder completar el cuadro de diálogo Asignar dominio al campo y continuar construyendo el modelo.
Sintaxis
AssignDomainToField_management (in_table, field_name, domain_name, {subtype_code})
Parámetro | Explicación | Tipo de datos |
in_table | Nombre de la tabla o clase de entidad que contiene el campo al que se asignará un dominio. | Table View |
field_name | Nombre del campo al que se asignará un dominio. | Field |
domain_name | Nombre de un dominio de geodatabase que se asignará al nombre de campo. Los dominios disponibles se cargarán automáticamente. | String |
subtype_code [subtype_code,...] (Opcional) | El código de subtipo al que se asignará un dominio. | String |
Salida derivada
Nombre | Explicación | Tipo de datos |
out_table |
Muestra de código
Ejemplo de Asignar dominio al campo (ventana de Python)
La siguiente secuencia de comandos de la ventana de Python demuestra cómo utilizar la función AssignDomainToField en el modo inmediato.
import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.AssignDomainToField_management("montgomery.gdb/Landbase/Parcels", "ZONING_S", "ZoningFields", "1: government")
Ejemplo 2 de Asignar dominio al campo (secuencia de comandos independiente)
La siguiente secuencia de comandos utiliza la función AssignDomainToField como parte de un flujo de trabajo para crear un dominio de atributo, asignar valores al dominio y asignar el dominio a un campo.
# Name: MakeDomain.py
# Description: Create an attribute domain to constrain pipe material values
#Import system modules
import arcpy
try:
# Set the workspace (to avoid having to type in the full path to the data every time)
arcpy.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 as err:
print(err.args[0])
Entornos
Información sobre licencias
- ArcGIS Desktop Basic: Sí
- ArcGIS Desktop Standard: Sí
- ArcGIS Desktop Advanced: Sí