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 auf der Registerkarte Domänen im Dialogfeld Eigenschaften: Datenbank erstellt und geändert.
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
AssignDomainToField_management (in_table, field_name, domain_name, {subtype_code})
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 |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
out_table |
Codebeispiel
Assign Domain to Field – Beispiel (Python-Fenster)
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")
Assign Domain to Field – Beispiel 2 (eigenständiges Skript)
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
#Import system modules
import arcpy
try:
# Set the workspace (to avoid having to type in the full path to the data every time)
arcpy.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 as err:
print(err.args[0])
Umgebungen
Lizenzinformationen
- ArcGIS Desktop Basic: Ja
- ArcGIS Desktop Standard: Ja
- ArcGIS Desktop Advanced: Ja