Skip To Content



Creates geoprocessing objects. The extra arguments can be used to specify additional requirements for the object creation such as the number of columns in the ValueTable object.



Instead of using CreateObject, it is simpler and more direct to use the equivalent ArcPy class. For instance, instead of arcpy.CreateObject("array"), use arcpy.Array().


CreateObject (name, {options})
ParameterExplanationData Type

Name of the object to be created (ArcSDESQLExecute, Array, Extent, FeatureSet, Field, FieldInfo, FieldMap, FieldMappings, Geometry, NetCDFFileProperties, Point, RecordSet, Result, SpatialReference, ValueTable).


Optional argument(s) depend on the object being created.

Return Value
Data TypeExplanation

The object returned depends on type of object specified in the first parameter.

Code sample

CreateObject example

Use value table to hold feature class names and ranks for the Union tool.

import arcpy

# Set the workspace. List all of the feature classes in the dataset
arcpy.env.workspace = "c:/data/landbase.gdb/wetlands"
fcs = arcpy.ListFeatureClasses()

# Create the value table for the Analysis Union tool with 2 columns
vtab = arcpy.CreateObject("valuetable", 2)

# Iterate through the list of feature classes
for fc in fcs:
    # Update the value table with a rank of 2 for each record, except
    #   for BigBog
    if fc.lower() != "bigbog":
        vtab.addRow(fc + " 2")
        vtab.addRow(fc + " 1")

# Union the wetlands feature classes with the land use feature class
# to create a single feature class with all of the wetlands and land
# use data
vtab.addRow("c:/data/landbase.gdb/land_use 2")
arcpy.Union_analysis(vtab, "c:/data/landbase.gdb/wetlands_use")

Related topics