Supprimer un domaine d'un champ (Gestion des données)
Récapitulatif
Supprime une association de domaine attributaire d'un champ de classe d'entités ou de table.
Utilisation
-
Cet outil effectue l'opération inverse de la fonction Attribuer un domaine à un champ. La suppression d'un domaine d'un champ supprime l'association entre un champ et un domaine attributaire.
-
Lorsqu'un domaine est supprimé d'un champ, la règle de validation attributaire pour ce champ est supprimée de la base de données.
-
Un même domaine attributaire peut être associé à plusieurs champs d'une même table, classe d'entités ou sous-type, ainsi qu'à des tables et des classes d'entité différentes. La suppression d'un domaine d'un champ n'affectera pas d'autres associations de domaine.
-
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.
-
Les couches courantes peuvent permettre de définir la table en entrée.
-
Le bouton Ajouter une valeur du paramètre Sous-type est utilisé uniquement dans ModelBuilder. Dans ModelBuilder, si l'outil précédent n'a pas été exécuté ou si ses données dérivées n'existent pas, il se peut qu'aucune valeur ne soit renseignée dans le paramètre Sous-type. Le bouton Ajouter une valeur vous permet d'ajouter des valeurs prévues pour terminer la boîte de dialogue Supprimer un domaine d'un champ et poursuivre la création du modèle.
Syntaxe
Paramètre | Explication | Type de données |
in_table |
Table en entrée contenant le domaine attributaire qui doit être supprimé. | Table View |
field_name |
Champ qui ne sera plus associé à un domaine attributaire. | Field |
subtype_code [subtype_code,...] (Facultatif) | Sélectionne le ou les codes de sous-type qui ne seront plus associés à un domaine attributaire. | String |
Exemple de code
Le script de fenêtre Python suivant illustre l'utilisation de l'outil RemoveDomainFromField en mode immédiat.
import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.RemoveDomainFromField_management("montgomery.gdb/water/distribmains", "DIAMETER")
Ce script autonome utilise la fonction RemoveDomainFromField dans le cadre d'un workflow pour modifier un domaine.
# Name: RemoveDomainsExample.py
# Purpose: Update an attribute domain to constrain valid pipe material values
# Author: ESRI
# Import system modules
import arcpy, os
from arcpy import env
try:
# Set the workspace (to avoid having to type in the full path to the data every time)
env.workspace = "data"
# set local parameters
inFeatures = "Montgomery.gdb/Water/DistribMains"
inField = "MATERIAL"
dWorkspace = "Montgomery.gdb"
domName = "Material"
codedValue = "ACP: Asbestos concrete"
codeField = "TYPE"
descField = "DESRIPT"
# Process: Remove the constraint from the material field
arcpy.RemoveDomainFromField_management(inFeatures, inField)
# Edit the domain values
# Process: Remove a coded value from the domain
arcpy.DeleteCodedValueFromDomain_management(dWorkspace, domName, codedValue)
# Process: Create a table from the domain to edit it with ArcMap editing tools
arcpy.DomainToTable_management(dWorkspace, domname, dWorkspace + os.sep + domname , codeField, descField)
# Process: Delete the domain
arcpy.DeleteDomain_management(dWorkspace, domName)
# Edit the domain table outside of geoprocessing
# and then bring the domain back in with the TableToDomain process
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