Select to view content in your preferred language

Help with Attribute driven Complex Symbology

510
7
06-26-2024 01:14 PM
JonJones1
Frequent Contributor

I'm trying to create a complex symbology in ArcGIS Pro and I'm stuck. Here's what I'm working with:

I have a layer with multiple fields, including:

MSHA_CURRENT_CONTROLLER_NAME
SITE_WE_SERVICE (values are YES or NO)


I've created a unique value symbology based on MSHA_CURRENT_CONTROLLER_NAME. For example:

"COMPANY A" is a hollow square
"COMPANY B" is a hollow circle


What I want to achieve:

If "SITE_WE_SERVICE" is YES, the hollow square symbol should be filled with blue
If it's NO, the symbol should remain hollow.

Any thoughts on how to do this? 

I don't want to use two different layers. I need to keep everything in a single layer because I want to share it on ArcGIS Online. Having it split into two layers will cause confusion.

EDIT: I'm running late for dinner, but I figured it out and wanted to share in case anyone else runs into the same issue. I'll explain it better tomorrow, but this image is the solution.FINAL.png

7 Replies
TheRrrr42
Occasional Contributor
0 Kudos
JonJones1
Frequent Contributor

Hey friend! I figured it out—check out the edit I posted above. Hopefully, I can re-edit tomorrow and explain it more clearly to help any poor lost souls who might stumble upon this post.

0 Kudos
jcarlson
MVP Esteemed Contributor

In Pro, you can't really have two categorical fields be used for symbology in this way. The best you can do is use an expression to combine the fields, like

`${$feature['MSHA_CURRENT_CONTROLLER_NAME']} - ${$feature['SITE_WE_SERVICE']}`

This will give you a "YES" and "NO" variant of every unique value in the controller name field. Your legend would have entries like "COMPANY A - YES" and "COMPANY A - NO". Tediously, you would need to configure each symbol separately. But you could set it up to where your symbology could convey the two fields together.

- Josh Carlson
Kendall County GIS
jcarlson
MVP Esteemed Contributor

This also translates over to AGOL without issue. @TheRrrr42 's suggestion of a Dictionary Symbology is excellent, but only if you're keeping everything in Pro.

- Josh Carlson
Kendall County GIS
JonJones1
Frequent Contributor

Thank you so much for your time and thoughtfulness in responding. Honestly, you are a lifesaver!

Good news: I figured out a way to keep only one version of each company in my legend, instead of having a "Company A - Yes" and "Company A - No." Check out my edit above. Hopefully, I can explain it better tomorrow and will re-edit my post to help anyone else who might be in the same situation.

jcarlson
MVP Esteemed Contributor

Just beware, that kind of attribute-linked symbology is not going to translate over to AGOL.

- Josh Carlson
Kendall County GIS
JonJones1
Frequent Contributor

You are absolutely right! I didn't fully grasp this limitation until I tried to implement it. As of June 26, 2024, I've thoroughly explored options in ArcGIS Online (AGOL) and found that it can't replicate the single-layer, dynamic symbology we achieved in ArcGIS Pro. The only viable solution in AGOL requires creating separate symbols for each combination (filled and unfilled), which effectively doubles the legend entries.

Alternative approaches, like using multiple layers with masking, are possible but stray from the desired single-layer solution. For anyone reading this, be aware that as of this date, AGOL doesn't support using Arcade expressions to dynamically fill point symbols based on attributes within a single layer.

I do have a side question: If I wasn't using AGOL and was publishing this to ArcGIS Enterprise instead, would it handle this point fill level expression stuff better than AGOL? It has to, right? Any info on that?