Créer un domaine (Gestion des données)

Niveau de licence :De baseStandardAvancé

Récapitulatif

Crée un domaine attributaire dans l'espace de travail spécifié.

Utilisation

Syntaxe

CreateDomain_management (in_workspace, domain_name, domain_description, field_type, {domain_type}, {split_policy}, {merge_policy})
ParamètreExplicationType de données
in_workspace

Géodatabase contenant le nouveau domaine.

Workspace
domain_name

Nom du domaine à créer.

String
domain_description

Description du domaine à créer.

String
field_type

Type de domaine attributaire à créer. Les domaines attributaires représentent des règles qui décrivent les valeurs autorisées pour un type de champ. Spécifiez un type de champ qui correspond au type de données du champ auquel le domaine attributaire sera assigné.

  • SHORTValeurs numériques sans fractions appartenant à une plage particulière ; valeurs précodées.
  • LONGValeurs numériques sans fractions appartenant à une plage particulière.
  • FLOATValeurs numériques avec des fractions appartenant à une plage particulière.
  • DOUBLEValeurs numériques avec des fractions appartenant à une plage particulière.
  • TEXTNoms ou autres qualités textuelles.
  • DATEDate et/ou heure.
String
domain_type
(Facultatif)

Type de domaine à créer :

  • CODEDPrécise un ensemble de valeurs valides pour un attribut. Par exemple, un domaine de valeurs précodées peut spécifier les valeurs valides des matériaux des canalisations : CL - canalisation en fonte, DL - canalisation en fonte ductile ou ACP - canalisation en amiante-béton.
  • RANGESpécifie une plage de valeurs valides pour un attribut numérique. Par exemple, si les conduites d'eau de distribution ont une pression comprise entre 50 et 75 psi, un domaine par plage précise ces valeurs minimale et maximale.
String
split_policy
(Facultatif)

Règle de division du domaine créé. Le comportement des valeurs d'un attribut lors du fractionnement d'une entité est contrôlé par sa règle de division.

  • DEFAUTLes attributs des deux entités résultantes héritent de la valeur attributaire par défaut de la classe d'entités ou du sous-type considéré.
  • DUPLICATEL'attribut des deux entités résultantes hérite d'une copie de la valeur attributaire de l'objet d'origine.
  • GEOMETRY_RATIOLes attributs des entités résultantes représentent un ratio de la valeur de l'entité d'origine. Ce ratio est basé sur la proportion dans laquelle la géométrie d'origine est divisée. Si la géométrie est divisée de manière égale, l'attribut de chaque nouvelle entité hérite de la moitié de la valeur attributaire de l'objet d'origine. La règle de ratio géométrique ne s'applique qu'aux domaines par plage.
String
merge_policy
(Facultatif)

Règle de combinaison du domaine créé. Lors de la fusion de deux entités en une seule, les règles de combinaison contrôlent les valeurs attributaires de la nouvelle entité.

  • DEFAUTL'attribut de l'entité résultante hérite de la valeur attributaire par défaut de la classe d'entités ou du sous-type considéré. Il s'agit de la seule règle de combinaison qui s'applique à des champs non numériques et à des domaines à valeur précodée.
  • SUM_VALUESL'attribut de l'entité résultante hérite de la somme des valeurs attributaires de l'entité d'origine. Cette règle ne s'applique qu'aux domaines par plage.
  • AREA_WEIGHTEDL'attribut de l'entité résultante est la moyenne pondérée des valeurs attributaires des entités d'origine. Cette moyenne repose sur la géométrie des entités de départ. Cette règle ne s'applique qu'aux domaines par plage.
String

Exemple de code

Exemple d'utilisation de l'outil CreateDomain (fenêtre Python)

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

import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.CreateDomain_management("montgomery.gdb", "Materials", "Valid pipe materials", "TEXT", "CODED")
Exemple 2 d'utilisation de l'outil CreateDomain (script autonome)

Ce script autonome utilise la fonction CreateDomain dans le cadre d'un workflow pour créer un domaine attributaire, lui affecter des valeurs et affecter le domaine à un champ dans une classe d'entités.

# 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

Environnements

Thèmes connexes

Informations de licence

ArcGIS for Desktop Basic : Oui
ArcGIS for Desktop Standard : Oui
ArcGIS for Desktop Advanced : Oui
9/12/2013