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 for 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

Help

  • Home
  • Get Started
  • Map
  • Analyze
  • Manage Data
  • Tools
  • More...

Working with multivalue inputs

  • As a list
  • As a string
  • With ValueTable

Many geoprocessing tools have input parameters that accept multiple values. When you view the tool's reference page or its usage in the Python window, whenever you see the parameter enclosed in brackets [ ], you know it can take a list of values. For example, the Delete Field tool takes a list of fields to delete and the parameter usage displays as [drop_field, ...]. Some parameters, such as the input_features parameter of the Union tool, take a list-of-lists. Its usage displays as [[in_features, {Rank}], ...].

Any parameter that accepts a list of values (or a list of list of values) is a multivalue parameter; it accepts one or more values. There are three ways to specify a multivalue parameter:

  1. As a list, where each value is an element in the list
  2. As a string, where values are separated by semicolons
  3. As a ValueTable, where values are stored in a virtual table of rows and columns

Below are examples of each.

As a list

In a script, multivalue inputs can be passed as a list. A list is enclosed in brackets and is a flexible Python type.

DeleteFields using a Python list for the drop_field parameter

import arcpy 

arcpy.env.workspace = 'C:/base/county.gdb'
arcpy.DeleteField_management('roads', ['STREET_NAM', 'LABEL', 'CLASS'])

Union using a Python list for the in_features parameter

import arcpy

arcpy.env.workspace = 'C:/base/data/gdb' 
arcpy.Union_analysis([['counties', 2],['parcels', 1]], 'state_landinfo')

As a string

Your script may have to use a multivalue string in some cases, because one may be returned as an output value of a tool or passed as an input parameter for your script.

DeleteFields using a multivalue string for the drop_field parameter.

import arcpy 

arcpy.env.workspace = 'C:/base/county.gdb'
arcpy.DeleteField_management('roads', 'STREET_NAM;LABEL;CLASS')

Union using a multivalue string for the in_features parameter

import arcpy 

arcpy.env.workspace = 'C:/base/data/gdb' 
arcpy.Union_analysis('counties 2;parcels 1', 'state_landinfo')

With ValueTable

A ValueTable allows you to organize values into a virtual table of rows and columns. You specify the number of columns when you create a value table. The default is a single column.

DeleteFields using a ValueTable for the drop_field parameter

import arcpy 

arcpy.env.workspace = 'C:/base/county.gdb'

vt = arcpy.ValueTable()
vt.addRow('STREET_NAM')
vt.addRow('LABEL')
vt.addRow('CLASS')

arcpy.DeleteField_management('roads', vt)

Union using a ValueTable for the in_features parameter

import arcpy 

arcpy.env.workspace = 'C:/base/data/gdb' 

vt = arcpy.ValueTable(2)
vt.addRow('counties 2')
vt.addRow('parcels 1')

arcpy.Union_analysis(vt, 'state_landinfo')

Related topics

  • Using the multivalue parameter control

ArcGIS Desktop

  • Home
  • Documentation
  • Support

ArcGIS Platform

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

About Esri

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