Attribuer un domaine à un champ (Gestion des données)

Synthèse

Définit le domaine d'un champ particulier et éventuellement d'un sous-type. Si aucun sous-type n'est précisé, le domaine est attribué uniquement au champ spécifié.

Utilisation

  • La gestion de domaine comprend les étapes suivantes :

    1. Créer le domaine à l'aide de l'outil Créer un domaine.
    2. Ajouter des valeurs ou définir la plage de valeurs pour le domaine à l'aide de l'outil Ajouter une valeur codée à un domaine ou de l'outil Définir les valeurs d'un domaine par plage.
    3. Associer le domaine à une classe d'entités à l'aide de cet outil.
  • Lorsqu'un domaine attributaire est associé à une table ou une classe d'entités, une règle de validation attributaire est créée dans la base de données. Cette règle de validation attributaire décrit et impose les valeurs valides d'un type de champ.

  • Un domaine attributaire peut être associé à plusieurs champs dans la même table, classe d'entités ou dans le même sous-type, ainsi que dans plusieurs tables et classes d'entités.

  • Le paramètre Table en entrée accepte des couches d'entités ou des vues tabulaires.

Paramètres

ÉtiquetteExplicationType de données
Table en entrée

Nom de la table ou classe d'entités contenant le champ auquel un domaine sera attribué.

Table View
Nom de champ

Nom du champ auquel un domaine sera attribué.

Field
Nom du domaine

Nom d'un domaine de géodatabase à attribuer au nom du champ. Les domaines disponibles sont chargés automatiquement.

String
Sous-type
(Facultatif)

Code de sous-type à attribuer à un domaine.

String

Sortie obtenue

ÉtiquetteExplicationType de données
Table en entrée actualisée

Table en entrée mise à jour.

Vue tabulaire

arcpy.management.AssignDomainToField(in_table, field_name, domain_name, {subtype_code})
NomExplicationType de données
in_table

Nom de la table ou classe d'entités contenant le champ auquel un domaine sera attribué.

Table View
field_name

Nom du champ auquel un domaine sera attribué.

Field
domain_name

Nom d'un domaine de géodatabase à attribuer au nom du champ. Les domaines disponibles sont chargés automatiquement.

String
subtype_code
[subtype_code,...]
(Facultatif)

Code de sous-type à attribuer à un domaine.

String

Sortie obtenue

NomExplicationType de données
out_table

Table en entrée mise à jour.

Vue tabulaire

Exemple de code

Exemple d’utilisation de l’outil AssignDomainToField (fenêtre Python)

Le script de fenêtre Python ci-dessous illustre l'utilisation de la fonction AssignDomainToField en mode immédiat.

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.AssignDomainToField_management("montgomery.gdb/Landbase/Parcels", 
                                     "ZONING_S", "ZoningFields", "1: government")
Exemple 2 d’utilisation de l’outil AssignDomainToField (script autonome)

Le script suivant utilise la fonction AssignDomainToField dans le cadre d’un processus visant à créer un domaine attributaire, affecter des valeurs au domaine et affecter le domaine à un champ.

# Name: MakeDomain.py
# Description: Create an attribute domain to constrain pipe material values
 
# Import system modules
import arcpy
# 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)

Rubriques connexes