Set Subtype Field (Data Management)


Defines the field in the input table or feature class that stores the subtype codes.



SetSubtypeField_management (in_table, field)
ParameterExplanationData Type

The input table or feature class which contains the field to set as a subtype field.

Table View

An integer field that will store the subtype codes.


Code Sample

Set Subtype Field Example (Python Window)

The following Python window script demonstrates how to use the SetSubtypeField function in immediate mode.

import arcpy
from arcpy import env
env.workspace = "C:/data/Montgomery.gdb"
arcpy.SetSubtypeField_management("water/fittings", "TYPECODE")
Set Subtype Field Example 2 (Stand-alone Script)

The following stand-alone script demonstrates how to use the SetSubtypeField function as part of a workflow to add subtypes to a field.

# Name:
# Purpose: Create a subtype definition
# Author: ESRI

# Import system modules
import arcpy
from arcpy import env
    # Set the workspace (to avoid having to type in the full path to the data every time)
    env.workspace =  "C:/data/Montgomery.gdb"
    # Set local parameters
    inFeatures = "water/fittings"
    # Process: Set Subtype Field...
    arcpy.SetSubtypeField_management(inFeatures, "TYPECODE")
    # Process: Add Subtypes...
    # Store all the suptype values in a dictionary with the subtype code as the "key" and the 
    # subtype description as the "value" (stypeDict[code])
    stypeDict = {"0": "Unknown", "1": "Bend", "2": "Cap", "3": "Cross", "4": "Coupling",\
                 "5": "Expansion joint", "6": "Offset", "7":"Plug", "8": "Reducer",\
                 "9": "Saddle", "10": "Sleeve", "11": "Tap", "12": "Tee", "13": "Weld", "14": "Riser"} 
    # use a for loop to cycle through the dictionary
    for code in stypeDict:
        arcpy.AddSubtype_management(inFeatures, code, stypeDict[code])     
    # Process: Set Default Subtype...
    arcpy.SetDefaultSubtype_management(inFeatures, "4")
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


Related Topics

Licensing Information

ArcView: Yes
ArcEditor: Yes
ArcInfo: Yes