Add Unlisted Values in Arcade-driven symbology

863
4
10-11-2023 09:26 AM
Status: Open
Labels (1)
MErikReedAugusta
Frequent Contributor

Maybe I'm missing something, but it doesn't seem possible to define symbology for a given result of an Arcade expression until that result actually occurs in your map/dataset.

The Example Case:

  • I'm setting up a centralized project [EDIT: In ArcGIS Pro] for editing Assets in our database, to streamline things.  This will need to handle both Assets I already have existing in the Feature Class, as well as Assets that are defined and expected, but haven't occurred, yet.
  • I'm trying to symbolize my Assets by two things: The combination of their Subtype & Asset Type fields, and their Status.  All three fields involved have Domains assigned.
    • For context: Subtype has 3 options, Asset Type has 25 options, and Status has 6 options.  Combined all the way down, there should be 24 final classes; Status dictates color of the symbol, and Subtype/Asset Type dictates the shape of the symbol.
  • Altering the schema of my data to address this need is not currently an option.

The Problem:

If I symbolize by any one of those fields, the symbology detects all possible options in the Domains, and I can go ahead and set that symbology.  This is not the behavior of either using more than one field or of using an Arcade expression to define my classes.

The Current Work-arounds:

At this point, I have three options, all of which are not great (at best).

  1. Select all three fields the old-fashioned way, click 'Add unlisted values' and manually create the missing label classes.    Depending on how I define & enter, this is either 150 or 450 line items that need to be added, and then manually merged down to the final 24.
  2. Create my classes via an Arcade script, which does the work in a few lines, but does not allow me to manually add unlisted values.  So this means I need to create "dummy Assets" in my Feature Class temporarily just to set up the symbology, and then delete them.  Not the most clean of approaches.
  3. Create my classes via an Arcade script, and just accept that I'm going to be missing most of my potential symbology classes.  Turn on 'Show all other values' so I know when I run into one, and then just create them down the road when they actually happen.  This is a bad approach if I'm building this for others in my team to use.

Preferred Solution Options:

  1. Give us an option to have ArcGIS auto-detect all possible results of an Arcade expression or combination of fields based on the Domains assigned to those fields.  (Preferred option).
  2. Give us a way in Arcade to specify in code all possible combinations based on the Domains assigned.
  3. Give us the option to manually 'Add unlisted values' when using an Arcade script (Least-preferred option, but brute-force acceptable)

 

[EDIT/Sidenote: Every time I've tried to post an Idea to this board using only the WYSIWYG editor and nothing else, I get an error that invalid HTML was found in the message body.  It only happens when first posting the Idea, and hitting post a second time without changing anything always goes through.  ESRI might want to review their back-end code for these forums.]

4 Comments
jcarlson

You may have more success using ArcGIS Pro to configure the symbology. You can find the map in the Portal section of your Catalog, choose "Add and Open". Make changes to the symbology there, then under the "Sharing" section of the ribbon, choose "Save Web Map". For complex symbology, it's often easier to work with in Pro, then save that configuration to the web.

MErikReedAugusta

For clarification: I'm currently working in ArcGIS Pro, not ArcGIS Online.

The case-study and behavior described are for Pro.

JohnnyBeavers

@MErikReedAugusta This is an issue the ArcGIS Pro Topographic Mapping team experiences as well, on an even greater scale; we have around 1,000 unique symbols in several of our products. Our current workaround is to create what we refer to as a OneForOne database that contains a feature for every possible symbol (though not every possible attribution combination that could lead to each unique symbol). This allows us to directly symbolize everything in the Arcade and rebuild layers as needed.

Having spoken directly with the teams responsible for this functionality, it's definitely a firm limitation for now, though conversations are ongoing for what different workarounds could look like.

(Just to get ahead of this question: our method is not polished or published, it's not an exact science and requires lots of testing - it would not be of great help to users unless they were handling hundreds of unique symbols, though we do occasionally work with customers in which we consider employing them.)

MErikReedAugusta

Unfortunately, that sounds essentially like what I ultimately had to do, which was decidedly a bummer.  Within an edit session, I created a dummy asset for every possible symbology result, set my symbology, and discarded the edit session without recording any assets.  Thankfully, I only had 24 cases to consider, but it's still an odd mess to face.

I get why Solutions 1 & 2 might face limitations in the software, but Solution 3 not being viable is baffling to me (unless it is viable and I just misread your post).  That functionality is currently available for symbology that's generated either from a single field or from multiple fields—just not when generated from Arcade.