Hello,
I am creating Attribute Rules for some feature classes. I have been able to successfully create rules to calculate the X & Y of my point feature classes, but I have some polyline feature classes that need some geometry calculations performed. I need to be have an attribute rule(s) that would calculate the X & Y of both the start of the line and the end of the line. This rule would run on Insert and Update. I have four attribute fields (Upstream X, Upstream Y, Downstream X, & Downstream Y).
Thanks in advance for any assistance.
-Ben
// Calculation attribute rule on the line fc
// triggers: Insert, Update
// Field: empty
// get the $feature's geometry
var geom = Geometry($feature)
// null geometry -> abort
if(geom == null) { return }
// get start and end point
var p_start = geom.paths[0][0]
var p_end = geom.paths[-1][-1]
// return the x and y values of those points
return {
"result": {"attributes": {
"UpstreamX": p_start.x,
"UpstreamY": p_start.y,
"DownstreamX": p_end.x,
"DownstreamY": p_end.y
}}
}
Johannes,
When trying your expression, the expression validates fine, but when saving the attribute rule I get an Error 002941 "An expected Field was not found or could not be retrieved properly." The attribute field names match exact with my feature class attribute fields.
I've attached a screenshot.
Thanks
First thing that comes to mind: You have to use the actual field names, not the aliases. If you have spaces in lines 15-18, you're using aliases.
If that doesn't solve it, please post your code and a screenshot of the field view of your feature class.