Using Domains and Subtypes for Smart Data Collection

If you’re using Collector for ArcGIS, or thinking about using it, you’ll have considered which fields you need to collect information. You could just use free text and type information into each field. I don’t know about you, but I have clumsy thumbs and there would be spelling mistakes everywhere. If you have access to ArcGIS for Desktop, you should consider using domains and subtypes.

A domain is a rule which controls the values that can be used in a field. In Collector, this will create a drop-down list of options to choose from. This is ideal from a data quality perspective because it eliminates human error (i.e. my clumsy thumbs).

Subtypes are essentially a grouping technique. To see how they can help lets follow an example – I’m a Park Manager collecting information on the different types and species of plant in the park. There will be trees, shrubs, flowers and all kinds of greenery. I could use domains to manage this, so when I come across a nice Birch tree, I can select Tree from a list of plant types. Now I want to select the species in my next field. If I used a domain containing all species of plant, I’m going to have a huge list of options to choose from. My clumsy thumbs are going to get tired scrolling through all these choices! Here’s where subtypes come in…

Instead of having the plant type as a domain, I can set this as my subtype. I can then have a species domain for each subtype. In this scenario, when I come across that Birch, I can place a Tree point on my map. I can then fill in the Species field and have a shorter list of options containing only tree species. When I then find a fancy-looking orchid, I can place a Flower point on the map and this will limit my choices in the Species field to species of flower. You’re welcome, thumbs!

Let’s look at how it can be done…

In ArcGIS Pro, I’ve created a point feature class called ‘Plants’ and added two fields: ‘Plant Type’ and ‘Species’. Plant Type is a SHORT field (subtypes need to be an integer) and Species is a TEXT field. In the Subtypes ribbon I can create and manage my subtypes. I can choose my subtype field, Plant Type, and fill in some choices. Only the Code needs to be a number; the Description can be text and this is what I’ll see in Collector. Check out the example below:

I can then create my species domains for Trees, Flowers, Grasses and Shrubs (Useful tip: if you have a long list of values for your domains, you can add them using the Table To Domain geoprocessing tool). I’ve set up my domains as in the image below:

Finally, I can associate each species domain with their subtype. You can also set default values – handy! See the result below:

Now all I need to do is share this to my ArcGIS Online account and add it to a web map. Finally, I can open my map in Collector and start surveying the park. When I collect a new feature, I have my four plant types as options. When I choose Tree, I then only have tree species to choose from in the Species field.

If I choose Flower at the next stop in my survey, I only see options for flower species in the Species field.

By setting up domains and subtypes for my Collector task, I’ve not only removed the human error involved in data collection, but also streamlined the collection process - for a smarter, more data-driven experience.

This is just a simple scenario. And you can learn more about domains and subtypes in ArcGIS Pro here. If you are using ArcMap, the workflow will be a little different, but you can still set up domains and subtypes to use with Collector.