Add multi-select to Collector for ArcGIS dropdowns

11381
20
06-07-2013 02:36 PM
Status: Open
JohnGillham
New Contributor II

The Collector for ArcGIS app supports dropdowns through the use of domains, but currently only allows for a standard single-selection dropdown in the app. Some data collection efforts  require the user to choose multiple items to add to the record's field (as comma separated items within a single field). It would be very useful to allow for a way to allow either a multi-select dropdown or a checkbox list for certain data fields displayed in the Collector app.

20 Comments
BenWilder

Hi Scott,

How do I PM you? I tried to Send Message on GeoNet, but I can’t because you aren’t a connection. Can’t find an e-mail for you either.

By the way, I am following you, so you could Message me back, if you like.

Thanks,

Ben

deleted-user-cjKSaKqSSkVd

We need this same functionality too, for cataloging the presence or absence of many different possible hazard conditions when performing visual pest surveys for potentially infested trees. If any of a dozen or so possible conditions exist that would make the tree too hazardous for the climbing teams to make a follow-up inspection of the canopy, we need to be able to indicate all of them and it is entirely too cumbersome to have a separate boolean / checkbox field for each one.  Survey123 is not going to meet our needs. We need this critical functionality added to Collector. Amazing that people have been asking for it for this long and it still has not yet been added. If the real problem is you don't support it as a geodatabase field type in ArcGIS desktop, then you should fix that and support it there too. It would be a very useful feature there as well.

DamonEisenach

We need the same, our crews use collector to record maintenance on related records

for sign maintenance we need to be able to select multiple and it needs to stay related to the original sign, we have it set so our related record isn't a table but a related point layer so we can visualize the record as well.

I don't see how survey123 could work for this, its function is limited compared to Collector.

KelseyBoyd

We need this functionality as well, and Survey 123 does not meet our needs. We would like to be able to select multiple plant or animal species from a list rather than have the same question 10+ times to account for each species present within a given area.  

HeatherFollis

We need this functionality as well and Survey123 only works on point data. We need this functionality for lines and polygons too. Our example is for park trails where we document their multiple uses under one field. We are using a domain for this field but need the select multiple option similar to the way it works in Survey123 for points.

JohnMDye

Jeff Shaner‌ & Kelly Gerrow so, for the first time ever, I actually ran into a legit need for multi-select in Collector as well as the rest of the ArcGIS Platform (specifically WAB's SmartEditor widget and the basic MapViewer popup configuration for editing). It took me a while, but I'm finally here and agree that this needs to be given some thought.

It seems to me that this should at least be doable for hosted feature layers, as domains on those are implemented via a simple json key-value list. So in the case of a multi-select, one thought is to use that same data structure with some different logic. 

Take the following domain specification for the 'PAYMENT_FORMS' field I created:

{
 "name" : "PAYMENT_FORMS", 
 "type" : "esriFieldTypeString", 
 "alias" : "Accepted forms of payment", 
 "sqlType" : "sqlTypeOther", 
 "length" : 50, 
 "nullable" : false, 
 "editable" : true, 
 "visible" : true, 
 "domain" : 
 {
 "type" : "codedValue", 
 "name" : "Point layer_PAYMENT_FORMS_8ff94d6b-7b8c-4f0e-8838-2fb72098a535", 
 "codedValues" : [
 {
 "name" : "Cash", 
 "code" : "CASH"
 }, 
 {
 "name" : "Check", 
 "code" : "CHECK"
 }, 
 {
 "name" : "Credit", 
 "code" : "CREDIT"
 }, 
 {
 "name" : "Money Order", 
 "code" : "MNY_ORDER"
 }, 
 {
 "name" : "Certified/Cashier's Check", 
 "code" : "CERT_CHECK"
 }, 
 {
 "name" : "Debit", 
 "code" : "DEBIT"
 }, 
 {
 "name" : "Wire Transfer", 
 "code" : "WIRE_XFER"
 }, 
 {
 "name" : "Apple Pay", 
 "code" : "APPLE_PAY"
 }, 
 {
 "name" : "Google Pay", 
 "code" : "GOOGLE_PAY"
 }, 
 {
 "name" : "Venmo", 
 "code" : "VENMO"
 }, 
 {
 "name" : "Zelle", 
 "code" : "ZELLE"
 }
 ]
 }, 
 "defaultValue" : "CASH", 
 "description" : "null"
 }‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

Clearly, I do not want to have to create a list of domain values with every possible combination so that the user could indicate all forms of payment accepted.

I would think think the codedValue definition could be updated to include an 'isSelected' key for each value. We'll call this new definition type 'codedValueMultiSelect'.

{
 "name" : "PAYMENT_FORMS", 
 "type" : "esriFieldTypeString", 
 "alias" : "Accepted forms of payment", 
 "sqlType" : "sqlTypeOther", 
 "length" : 50, 
 "nullable" : false, 
 "editable" : true, 
 "visible" : true, 
 "domain" : 
 {
 "type" : "codedValueMultiSelect", 
 "name" : "Point layer_PAYMENT_FORMS_8ff94d6b-7b8c-4f0e-8838-2fb72098a535", 
 "codedValues" : [
 {
 "name" : "Cash", 
 "code" : "CASH",
 "isSelected" : true
 }, 
 {
 "name" : "Check", 
 "code" : "CHECK",
 "isSelected" : true
 }, 
 {
 "name" : "Credit", 
 "code" : "CREDIT",
 "isSelected" : true
 }, 
 {
 "name" : "Money Order", 
 "code" : "MNY_ORDER",
 "isSelected" : false
 }, 
 {
 "name" : "Certified/Cashier's Check", 
 "code" : "CERT_CHECK",
 "isSelected" : false
 }, 
 {
 "name" : "Debit", 
 "code" : "DEBIT",
 "isSelected" : True
 }, 
 {
 "name" : "Wire Transfer", 
 "code" : "WIRE_XFER",
 "isSelected" : false
 }, 
 {
 "name" : "Apple Pay", 
 "code" : "APPLE_PAY",
 "isSelected" : true
 }, 
 {
 "name" : "Google Pay", 
 "code" : "GOOGLE_PAY",
 "isSelected" : true
 }, 
 {
 "name" : "Venmo", 
 "code" : "VENMO",
 "isSelected" : false
 }, 
 {
 "name" : "Zelle", 
 "code" : "ZELLE"
 "isSelected" : true
 }
 ]
 }, 
 "defaultValue" : "CASH", 
 "description" : "null",
 "isSelected" : true
 }‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

From there, all that would need to be done is to present each value in a checkbox array when editing. That would allow users to update the 'isSelected' key for each value. App Devs could determine based on the value of that key whether or not to show all values with a checkbox as 'checked' or 'unchecked' depending on the 'isSelected' key's value or they could simply only show values with where 'isSelected' == true.

Clearly, this would need to be supported by all other apps in the ArcGIS Platform as well, but I think Collector and WebApp Builder would be excellent places to start.

I've added a separate idea to add a new coded value domain type for hosted feature services: https://community.esri.com/ideas/16529 

by Anonymous User

Survey 123 does not meet the majority of collector's user needs, collector is crying out for some of the functionality built into survey 123 such as multi select drop downs as per this post and branch logic.

It would be nice if ESRI stopped trying to direct users to survey 123 when it does not meet the requirements of most asset collection workflows and start listening to their customers and enhance collector. This has dragged on for some years now.

KevinColgan

I am building a database to be used by several field crews working a nine county region simultaneously. Each crew needs to be able to easily select multiple items from the same dropdown such as different personnel that performed a task at a specific point, or different species types, without creating a new field. We need to remain map-centric and Survey 123 does not meet other needs as well. 

I am on standby for this fix and just wanted to add my specific need while waiting and hoping. This is a huge time-eater for our workflow and not an efficient issue to fix with scripting the night away.

JohnMDye

We're still waiting Jeff Shaner‌. I saw your blog post about Collector and big announcements forthcoming. Might I see multi-select capabilities coming down the pipeline? I know this isn't a Collector specific issue but you probably have a really big influence in terms of getting this supported across the platform. 

MarianaCalabrese

Any progress on this? Yes, it is possible to select multiple in Survey123. And yes, it is possible to link Collector to Survey123. But why should I have to configure two apps instead of one? Often with multiple surveys to one map, just for the sake of having the very obviously useful function of selecting multiple items in a dropdown.