Summary
Adds a value to a domain's coded value list.
Usage
Domain management involves the following steps:
- Create the domain using the Create Domain tool.
- Add values to or set the range of values for the domain using this tool or the Set Value For Range Domain tool.
- Associate the domain with a feature class using the Assign Domain To Field tool.
The coded value domain includes both the actual value that is stored in the database (for example, 1 for pavement) and a description of what the code value means (for example, pavement).
A coded value domain which specifies a valid set of values for an attribute can apply to any type of attribute—text, numeric, date, and so on. For example, a coded value list for a text attribute might include valid pipe material values: CL - cast iron pipe; DL - ductile iron pipe; ACP - asbestos concrete pipe, or a coded value list might include the numeric values representing valid pipe diameters: .75–3/4"; 2–2"; 24–24"; and 30–30".
Syntax
AddCodedValueToDomain(in_workspace, domain_name, code, code_description)
Parameter | Explanation | Data Type |
in_workspace | The geodatabase containing the domain to be updated. | Workspace |
domain_name | The name of the attribute domain that will have a value added to its coded value list. | String |
code | The value to be added to the specified domain's coded value list. | String |
code_description | A description of what the coded value represents. | String |
Derived Output
Name | Explanation | Data Type |
out_workspace | The updated workspace | Workspace |
Code sample
The following Python window script demonstrates how to use the AddCodedValueToDomain function in immediate mode.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.AddCodedValueToDomain_management("montgomery.gdb", "material", "1", "PVC")
This stand-alone script uses the AddCodedValueToDomain function as part of a workflow to create an attribute domain and give it values.
# Name: MakeDomain.py
# Description: Create an attribute domain to constrain pipe material values
# Import system modules
import arcpy
# 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)
Environments
Licensing information
- Basic: Yes
- Standard: Yes
- Advanced: Yes