Attribute Rules: Functional equivalency to Attribute Assistant

2512
6
02-27-2020 11:15 AM
Status: Open
Labels (1)
AlexSainz
New Contributor III

Attribute Rules (AR) is the widely promoted replacement for the Attribute Assistant (AA) tool used in ArcMap. Attribute Rules are designed for use across the ArcGIS platform, using Arcade expressions to apply calculation, constraint, and validation rules to feature classes and feature layers.

 

Attribute Assistant has proven to be an extremely valuable data integrity and editing tool for many Esri users throughout the years. However, AR has not achieved functional equivalency to AA as of the ArcGIS Pro 2.5 release. For example, AR does not currently have an equivalent to INTERSECTING_FEATURE from AA.

 

As with most things Esri, the best way to gain attention from the development team is for customers to chime in regarding the need for this functionality and how it will help/impact their business needs.

 

Improved AR documentation and functionality will greatly improve the user experience of ArcGIS Pro for day-to-day editing and data integrity. I am optimistic other users - especially AA users - will chime in and offer their input for improving AR in future releases of ArcGIS Pro. For those using Arcade expressions in AGOL, I am sure AR improvements will help you as well. If there are any other specific AA rules you would like to see implemented for AR, I look forward to seeing the feedback from my fellow AA users.

 

For the community's reference, there is currently a bug associated with this item, originally reported at the ArcGIS Pro 2.4.2 release (#BUG-000127290).

6 Comments
KoryKramer

I think intersecting feature can be done: arcade-expressions/CopyValueIntersectingFeature.md at master · Esri/arcade-expressions · GitHub 

That is one of many examples provided here: GitHub - Esri/arcade-expressions: ArcGIS Arcade expression templates for all supported profiles in t... 

Hopefully that helps at least a little bit.

AlexSainz

I will test the expression at my earliest convenience and provide feedback on the thread. If this provides a solution for INTERSECTING_FEATURE, that would be a huge win.

AlexSainz

The following expression has been tested successfully on a number field and text field to provide functionality similar to INTERSECTING_FEATURE in Attribute Assistant. I still need to test the example provided from GitHub.

Kudos to Adam on the Technical Support team for researching and providing the Arcade expression for testing.

Arcade Expression:

var FCB= FeatureSetByName($datastore,"FeatureclassB")
var fset = Intersects(FCB, $feature)
for (var f in fset){ return (f.FIELDNAME)}

Screenshot of Arcade expression for Attribute Rule tested to match INTERSECTING_FEATURE functionality from Attribute Assistant.

In AA terms, "FeatureclassB" and "FIELDNAME" are the feature class name and field name you would enter in the VALUEINFO field in the Dynamic Value table.

As a user who is still in the early stages of testing AR, I prefer the GP tool interface for Add Attribute Rule over the Attribute Rule View accessed via the Contents Pane (right-click feature class, Design, Attribute Rules). Help documentation links for both provided below. I may come around to the Attribute Rules view as I become more proficient with AR and Arcade.

Create an Attribute Rule documentation

Add Attribute Rule (GP tool)

ChelseaRozek

I was looking for an idea like this to upvote. I keep trying to use Attribute Rules, but they fall short for everything I need to do.

1) Main example: I'm trying to autopopulate the municipality name on a point layer. I'm not going to have multiple copies of the municipalities layer floating out there on multiple databases. This leads to confusion among users as to which is the most up to date. Are they all being updated? Do they differ in some way? So I want to use the production layer of municipalities that lives on our production (read-only) database against the point layer on our editing database. Can't do intersect across databases with Attribute Rules.

2) Calculating Lat/Long isn't possible. I only ever need it in WGS84 decimal degrees, but Arcade only gives the XY value in the layer's coordinate system. No built in re-projection capabilities. While someone has figured out custom code to convert web mercator to WGS84, that doesn't help with any of our editing because we edit in our local coordinate system to be more accurate. Attribute Assistant had a built in expression for it, making it super easy.

AlexSainz

Great comment, Chelsea. I have not played with Attribute Rules (AR) for a while, but those are great points. It would be very helpful to Calculate Lat/Long in WGS84 decimal degrees.

Regarding your main example with autopopulating the municipality name on a point layer. Attribute Assistant (AA) would use the feature class in the current map (ArcMap) or project (ArcGIS Pro). I am not sure how it works in Attribute Rules, but it would be useful to configure such a rule to point directly to a production feature class. As long as all editors have access to this read-only layer, this should be a straight-forward rule to configure. 

If anyone from the community or the Esri team has any updates regarding the Attribute Rules capabilities, it would be great to learn more.

TomKukitz

Attribute Rules (AR) are not as good as Attribute Assistant. In arcmap AA is so easy to configure for a fc, AR on the other hand is complicated and does not work with data edited in arcpro from AGO. Which is a huge drawback for AR. So I do all my editing in arcmap then copy and paste all the data to AGO. PITA, but AA does so much for me when editing it super hard to give it up. So until AR works with AGO editing data, I will stick with arcmap and AA until it all goes away, which I think will be a long time yet, because pro has a ton of issues. Viva La ArcMap! And AA!

I put in a request to create syntax for AR like AA so it becomes easier to use, but it still needs to work in AGO before I completely switch.

Pro is great for making paper maps, but editing in pro is 10x slower than arcmap!