Attribute Rules: Functional equivalency to Attribute Assistant

762
4
02-27-2020 11:15 AM
Status: Open
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).

4 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.