Collector: use related layer to symbolise feature

34963
51
Jump to solution
09-04-2015 10:40 AM
ShaunGibbins2
New Contributor III

In the post below it describes using ArcGIS Collector to carry out inspections of assets by creating a relationship to an inspection table. This works really well and is a good way to separate asset edits from maintenance operations, however I cannot work out how to update the symbology to display when an asset has had an inspection.

Related Tables – Exploring New Ways to use Collector for ArcGIS | ArcGIS Blog

If you have a large number of assets then you need a method for the field works to keep track of what has been inspected and what is still due, I originally thought of having a 'inspection_status' field that would be set at the start of the season to 'Due' and would have a default setting of 'Not Due' so that every time an inspection took place the field value would automatically change from 'Due' to 'Not Due' without the field worker having to do anything other than fill in their inspection form.

I was then going use the icons below depending on which value the feature had for 'inspection_status' The only problem is that this field is in the inspection table and not accessible from the feature class to use to set the symbology!!!! Arrrgh

YellowEmpty.png Due

Yellow.png Not Due

Does anyone know another way to achieve the same result please or could this be considered for a future enhancement.

51 Replies
ShaunGibbins2
New Contributor III

I didn't find a solution and gave up, I would definitely share here if I ever find a way to achieve it. 

0 Kudos
AndresCastillo
MVP Regular Contributor

At this time, I have found a solution that works.

See my branched thread:

https://community.esri.com/message/773010-symbolizing-feature-class-using-related-table-values

SueJohnston
New Contributor III

Hi Jerry,

I'm doing this, but when i try to access my map in Collector, it's only symbolizing for the last record that I 'completed'.

Have you experienced this at all?

Thanks,
Sue

0 Kudos
KyleWikstrom
Occasional Contributor II

We have managed to symbolize features based on related record field values when we set up the service. Perhaps this will offer a little hope, This is done by setting up definition queries on map document layers.

So, You Want to Color Features Based On Related Inspection Records? - Pro-West & Associates WordPres...

ArcGIS Online: Using Related Tables to Symbolize Features - YouTube 

deleted-user-JzIjmzC7H6Ko
New Contributor III

Kyle I need to do something similar for a project and ran into this old thread. And your suggestion got me thinking. Am I right in assuming the basic concept is to have a feature to feature relationship class (1:m) with the definition query on the "many" side based on something like the the most recent date of inspection to pull in the latest and then symbolize of some other field you want on that same many side? Another question. How would you handle the scenario of "resetting" the map (such as after a flooding event and the inspections are over), but you don't want to delete the data. You just don't want them displayed when the next even starts?

0 Kudos
KyleWikstrom
Occasional Contributor II

Hi Devin,

In the simplest case, there is a relationship class between a feature class and a table. In ArcMap, add the feature class and set up a definition query on that layer. The definition query filters features where the foreign key in a related table equals the primary key in the feature class AND any other queries. To use multiple symbol styles, we found that the same layer had to be added for each style of symbol and then the definition query filtered the features based on what we wanted to symbolize. Then publish a service.

For retaining old data when a new event occurs, these are just some ideas that I would consider: the definition query could filter based on a more recent date OR create an attribute field that serves as an event identifier and include these in any definition query.

I confess that this method is not the prettiest and is only a workaround. We have not tested with the latest versions of ArcGIS Server, and I imagine one day this more advanced definition query could be parsed out.

Kyle

0 Kudos
deleted-user-JzIjmzC7H6Ko
New Contributor III

Kyle - I have tried to do as you suggested, however I cannot get Arcmap to "see" the inspection table inside the SQL query editor for the definition query without actually joining the two tables together (ArcGIS online doesn't support uploading joined tables together, so I'm stuck). I've tried this in both ArcMap and Pro. I would have thought having the 1:M relationship class present would be enough, but it doesn't appear to be. The relationship class is working just fine and keeping the records straight when I'm adding things - I just can't seem to get the parent layer I want to symbolize to reference or see the inspection table in the definition query with just relying on the relationship class. Is there some kind of trick or SQL syntax or something I'm missing? This is in a file geodatabase. See below for screenshots. The only difference between is the top doesn't have a join and the bottom does.

pic1.gif

pic2.gif

0 Kudos
KyleWikstrom
Occasional Contributor II

Here is an updated blog on the definition query we used to set this up.

Update on Symbolizing Features by Related Record Values in ArcGIS

0 Kudos
PMGIS
by
New Contributor

Hey Kyle,

I am trying to achieve the same thing here. I read the update to your previous article. The SQL statement makes sense. However, I noticed that Devin above needed to apply a join first in ArcPro before it would work. And like Devin, my data is is an AGOL hosted feature, not on ArcServer. Are you writing that SQL statement in ArcGIS software(AGOL, ArcMap, etc..), or is it and SDE layer that you are accessing through SQL Studio?

0 Kudos
yaserkhouja1
New Contributor III

I tried this, and it works for me;

I joined the feature layer with the related table, and add the query to get the related values only. Then publish them as a services in GIS Server or AGOL. After that, apply the map service, and enable the pop up. This will show the related tables points only. Also, you can make many copies, and filter by attributes if you want. However, I couldn't able to make it happen with the feature service. After the join, I only got a table as a feature access. It's only work as a map service for me. 

Thanks,

0 Kudos