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