Add Coded Value To Domain (Data Management)


Adds a value to a domain's coded value list.


  • Domain management involves the following steps:

    1. Create the domain using the Create Domain tool.
    2. Add values to or set the range of values for the domain using this tool or the Set Value For Range Domain tool.
    3. 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".


AddCodedValueToDomain(in_workspace, domain_name, code, code_description)
ParameterExplanationData Type

The geodatabase containing the domain to be updated.


The name of the attribute domain that will have a value added to its coded value list.


The value to be added to the specified domain's coded value list.


A description of what the coded value represents.


Derived Output

NameExplanationData Type

The updated workspace


Code sample

AddCodedValueToDomain example 1 (Python window)

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")
AddCodedValueToDomain example 2 (stand-alone script)

This stand-alone script uses the AddCodedValueToDomain function as part of a workflow to create an attribute domain and give it values.

# Name:
# 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)

Licensing information

  • Basic: Yes
  • Standard: Yes
  • Advanced: Yes

Related topics