Ajouter une valeur codée à un domaine (Gestion des données)
Récapitulatif
Ajoute une valeur à une liste de valeurs précodées d'un domaine.
Utilisation
-
La gestion de domaine comprend les étapes suivantes :
- Créer le domaine à l'aide de l'outil Créer un domaine.
- Ajouter des valeurs ou définir la plage de valeurs pour le domaine à l'aide de cet outil ou de l'outil Définir les valeurs d'un domaine par plage.
- Associer le domaine à une classe d'entités à l'aide de l'outil Attribuer un domaine à un champ.
-
Le domaine de valeurs précodées inclut la valeur réelle stockée dans la base de données (par exemple, 1 pour la chaussée) et une description de la signification de la valeur du code (par exemple, chaussée).
-
Un domaine de valeurs précodées qui spécifie un ensemble valide de valeurs pour un attribut peut s'appliquer à tout type d'attribut - texte, numérique, date, etc. Par exemple, une liste de valeurs précodées pour un attribut de texte peut comprendre les valeurs valides des matériaux des canalisations : CL – canalisation en fonte, DL – canalisation en fonte ductile ou ACP – canalisation en amiante-béton. Une liste de valeurs précodées peut aussi comprendre les valeurs numériques qui représentent les diamètres de canalisation valides : .75–3/4" ; 2–2" ; 24–24" et 30–30".
-
Les domaines d'espace de travail peuvent également être gérés dans ArcCatalog ou la fenêtre Catalogue. Les domaines peuvent être créés et modifiés dans l'onglet Domaines de la boîte de dialogue Propriétés de la base de données.
Syntaxe
Paramètre | Explication | Type de données |
in_workspace |
Géodatabase contenant le domaine à mettre à jour. | Workspace |
domain_name |
Nom du domaine attributaire dont la liste de valeurs précodées se voit ajouter une valeur. | String |
code |
Valeur à ajouter à la liste de valeurs précodées du domaine spécifié. | String |
code_description |
Description de ce que la valeur précodée représente. | String |
Exemple de code
Le script de fenêtre Python ci-dessous illustre l'utilisation de la fonction AddCodedValueToDomain en mode immédiat.
import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.AddCodedValueToDomain_management("montgomery.gdb", "material", "1", "PVC")
Ce script autonome utilise la fonction AddCodedValueToDomain dans le cadre d'un workflow pour créer un domaine attributaire et lui donner des valeurs.
# 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