Domäne zu Feld zuweisen (Data Management)
Zusammenfassung
Legt die Domäne für ein bestimmtes Feld und optional für einen Subtype fest. Wenn kein Subtype angegeben ist, wird die Domäne nur dem angegebenen Feld zugewiesen.
Verwendung
-
Die Verwaltung von Domänen umfasst folgende Schritte:
- Erstellen Sie die Domäne mit dem Werkzeug Domäne erstellen.
- Fügen Sie der Domäne Werte hinzu, oder legen Sie den Wertebereich fest. Verwenden Sie hierfür das Werkzeug Codierten Wert zu Domäne hinzufügen oder das Werkzeug Wert für Bereichsdomäne festlegen.
- Ordnen Sie der Domäne mithilfe dieses Werkzeugs eine Feature-Class zu.
-
Wenn eine Attributdomäne mit einer Feature-Class oder Tabelle verbunden ist, wird eine Attributvalidierungsregel in der Datenbank erstellt. Diese Attributvalidierungsregel beschreibt und beschränkt die gültigen Werte für einen Feldtyp.
-
Eine Attributdomäne kann mehreren Feldern in derselben Tabelle, Feature-Class oder demselben Subtype und mehreren Feldern in mehreren Tabellen und Feature-Classes zugeordnet sein.
-
Der Parameter Eingabetabelle nimmt Feature-Layer oder Tabellensichten an.
-
Sie können Workspace-Domänen auch in ArcCatalog oder dem Fenster Katalog verwalten. Domänen werden im Dialogfeld Eigenschaften: Datenbank auf der Registerkarte Domänen erstellt und bearbeitet.
-
Die Schaltfläche Wert hinzufügen des Parameters Subtype wird nur in ModelBuilder verwendet. Der Parameter "Subtype" ist in ModelBuilder nicht mit Werten gefüllt, wenn das vorherige Werkzeug nicht ausgeführt wurde oder die abgeleiteten Daten nicht vorhanden sind. Mit der Schaltfläche "Wert hinzufügen" können Sie die erwarteten Werte hinzufügen, damit Sie das Dialogfeld Domäne zu Feld zuweisen abschließen und mit der Erstellung Ihres Modells fortfahren können.
Syntax
Parameter | Erläuterung | Datentyp |
in_table |
Der Name der Tabelle oder Feature-Class mit dem Feld, dem eine Domäne zugewiesen wird | Table View |
field_name |
Der Name des Feldes, dem eine Domäne zugewiesen wird | Field |
domain_name |
Der Name einer Geodatabase-Domäne, die dem Feldnamen zugewiesen wird. Alle verfügbaren Domänen werden automatisch geladen. | String |
subtype_code [subtype_code,...] (optional) | Der Subtype-Code, dem eine Domäne zugewiesen wird. | String |
Codebeispiel
Das folgende Skript im Python-Fenster zeigt, wie die Funktion "AssignDomainToField" im unmittelbaren Modus verwendet wird.
import arcpy from arcpy import env env.workspace = "C:/data" arcpy.AssignDomainToField_management("montgomery.gdb/Landbase/Parcels", "ZONING_S", "ZoningFields", "1: government")
Im folgenden Skript wird die Funktion "AssignDomainToField" als Teil eines Workflows verwendet, um eine Attributdomäne zu erstellen, dieser Werte zuzuweisen und die Domäne einem Feld zuzuweisen.
# 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