ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Help
  • Sign Out
ArcGIS Desktop

ArcGIS Online

The mapping platform for your organization

ArcGIS Desktop

A complete professional GIS

ArcGIS Enterprise

GIS in your enterprise

ArcGIS Developers

Tools to build location-aware apps

ArcGIS Solutions

Free template maps and apps for your industry

ArcGIS Marketplace

Get apps and data for your organization

  • Documentation
  • Support
Esri
  • Sign In
user
  • My Profile
  • Sign Out

ArcMap

  • Home
  • Get Started
  • Map
  • Analyze
  • Manage Data
  • Tools
  • Extensions

Schema

  • Summary
  • Discussion
  • Properties
  • Code sample

Summary

The schema of a dataset.

Discussion

Every output parameter that is of feature class, table, raster, or workspace type has a schema object.

Properties

PropertyExplanationData Type
additionalChildren
(Read and Write)

Python list of datasets to add to a workspace schema.

String
additionalFields
(Read and Write)

Indicates additional fields for the fields property. Besides the fields that are added by the application of the fieldsRule, you can add additional fields to the output.

Field
cellSize
(Read and Write)

Set this to the cell size to use when cellSizeRule is AsSpecified.

Double
cellSizeRule
(Read and Write)

Determines the cell size of output rasters or grids.

  • AsSpecified —The output cell size is specified in the cellSize property.
  • FirstDependency —The cell size is calculated from the first dependent parameter. If the dependent parameter is a raster, then its cell size is used. For other types of dependent parameters, such as feature classes or feature datasets, the extent of the data is used to calculate a cell size. If the first dependent parameter is a multivalue (a list of values), the first value in the multivalue list is used.
  • Max —The largest cell size of the dependent parameters.
  • Min —The smallest cell size of the dependent parameters.
  • Environment —The cell size is calculated based on the cell size environment setting.
String
clone
(Read and Write)

If True, make an exact copy (clone) of the description in the first dependent parameter. The default value is False.

Boolean
extent
(Read and Write)

Set this to the extent to use when extentRule is AsSpecified. You can either set the extent with a space-delimited string or a Python list object with four values. The sequence is xmin, ymin, xmax, ymax.

Extent
extentRule
(Read and Write)

Indicates how the extent property is to be managed.

  • AsSpecified —The output extent will be specified in the Extent property.
  • FirstDependency —The output extent is the same as the first dependent parameter. If the first dependent parameter is a multivalue (a list of values), the first value in the multivalue list is used.
  • Intersection —The output extent will be the geometric intersection of all dependent parameters.
  • Union —The output extent will be the geometric union of all dependent parameters.
  • Environment —The output extent will be calculated based on the output extent environment setting.
String
featureType
(Read and Write)

When the featureTypeRule is AsSpecified, the value in FeatureType is used to specify the feature type of the output.

  • Simple —The output will contain simple features. The geometry type of the features is specified with geometryTypeRule.
  • Annotation —The output will contain annotation features.
  • Dimension —The output will contain dimension features.
String
featureTypeRule
(Read and Write)

This setting determines the feature type of the output feature class. This rule has no effect on output rasters or tables.

  • AsSpecified —The feature type will be determined by the featureType property.
  • FirstDependency —The feature type will be the same as the first parameter in the dependencies. If the first dependent parameter is a multivalue (a list of values), the first value in the multivalue list is used.
String
fieldsRule
(Read and Write)

Determines what fields will exist on the output feature class or table.

  • None —No fields will be output except for the object ID.
  • FirstDependency —Output fields will be the same as the first dependent parameter. If the first dependent parameter is a multivalue (a list of values), the first value in the multivalue list is used.
  • FirstDependencyFIDs —Only the ObjectID of the first dependent input will be written to the output.
  • All —All fields in the list of dependent parameters will be output.
  • AllNoFIDs —All fields except for the ObjectIDs will be written to the output.
  • AllFIDsOnly —All ObjectID fields are written to the output, but no other fields from the inputs will be written.
String
geometryType
(Read and Write)

Set this to the geometry type to use (either Point, Multipoint, Polyline, or Polygon) when geometryTypeRule is AsSpecified.

String
geometryTypeRule
(Read and Write)

This setting determines the geometry type (such as point or polygon) of the output feature class.

  • Unknown —This is the default setting. Typically, you should be able to determine the geometry type in updateParameters() based on the values of other parameters. You'd only set the rule to Unknown if you don't have enough information to determine the geometry type, such as in initializeParameters().
  • FirstDependency —The geometry type is the same as the first dependent parameter. If the first dependent parameter is a multivalue (a list of values), the first value in the multivalue list is used.
  • Max —Examines the geometries of all dependent parameters and sets the output geometry type to the maximum type found.
  • Min —Examines the geometries of all dependent parameters and sets the output geometry type to the minimum type found.
  • AsSpecified —The geometry type will be determined by the value of the geometryType property.
String
rasterFormatRule
(Read and Write)

This determines the output raster format, either GRID or Img. The default is Img, which is ERDAS IMAGINE format.

String
rasterRule
(Read and Write)

This determines the data type—integer or float—contained in the output raster.

  • FirstDependency —The data type (integer or float) is the same as the first dependent parameter. If the first dependent parameter is a multivalue (a list of values), the first value in the multivalue list is used.
  • Max —If there are dependant parameters that include integers and floats, Max creates a float output.
  • Min —If there are dependant parameters that include integers and floats, Min creates an integer output.
  • Integer —The output raster contains integers.
  • Float —The output raster contains floats.
String
type
(Read Only)

The schema type: Feature, Table, Raster, or Container (for workspaces and feature datasets).

String

Code sample

Schema example in a ToolValidator class

Set the schema of the output parameter to the first input parameter.

def initializeParameters(self):
    # Set the dependencies for the output and its schema properties
    #  The two input parameters are feature classes.
    self.params[2].parameterDependencies = [0, 1]

    # Feature type, geometry type, and fields all come from the first
    #  dependency (parameter 0), the input features
    self.params[2].schema.featureTypeRule = "FirstDependency"
    self.params[2].schema.geometryTypeRule = "FirstDependency"
    self.params[2].schema.fieldsRule = "FirstDependency"

    # The extent of the output is the intersection of the input features
    #  and the clip features (parameter 1)
    self.params[2].schema.extentRule = "Intersection"

    return
Schema example in a ToolValidator class

Interrogate the schema of a specific tool parameter

import arcpy

toolname = "Buffer_analysis"
parameter = 1

# Get the schema of the tool parameter
schema = arcpy.GetParameterInfo(toolname)[parameter].schema

properties = ['additionalChildren', 'additionalFields', 'cellSize',
              'cellSizeRule', 'clone', 'extent', 'extentRule',
              'featureType', 'featureTypeRule', 'fieldsRule',
              'geometryType', 'geometryTypeRule', 'rasterFormatRule',
              'rasterRule', 'type']

# Walk through all schema property and print out the value
for property in properties:
    try:
        print("{0} : {1}".format(property, eval("schema." + property)))
    except NameError:
        print property

Related topics

  • Setting script tool parameters
  • Value
  • Filter
  • Parameter
  • Customizing script tool behavior

ArcGIS Desktop

  • Home
  • Documentation
  • Support

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

About Esri

  • About Us
  • Careers
  • Esri Blog
  • User Conference
  • Developer Summit
Esri
Tell us what you think.
Copyright © 2021 Esri. | Privacy | Legal