Failed to Create Leader Line by Attribute Rules

290
0
01-31-2023 02:15 AM
MatsHardy
Occasional Contributor

I have a junction feature class A, a feature-linked annotation B and a leader line feature class C. Now, I have implemented a attribute rule on B to auto-create leader line on C but failed. "Failed to create Connection......" is prompted after creating new point.

MatsHardy_0-1675159755147.png

Below is the code of attribute rule:

var anno_geom = Geometry($feature)
var parent_gid = $feature.FeatureGlobalID
var anno_gid = $feature.GlobalID

if (IsEmpty(parent_gid))
return parent_gid

parent_gid = Upper(parent_gid)
anno_gid = Upper(anno_gid)

var parent_fc = FeatureSetByName($datastore, "A",["GLOBALID","PS"],false)
var line_fc = FeatureSetByName($datastore, "C",["GLOBALID","ANNOGLOBALID","PS"],false)
var parent_rec = Filter(parent_fc, "GLOBALID = @parent_gid")
var line_rec = Filter(line_fc, "ANNOGLOBALID = @anno_gid")

var parent = First(parent_rec)

var parent_geom = Geometry(parent)

if (IsEmpty(parent_geom))
return null

var parent_ps = parent.PS

var parent_ext = Extent(parent_geom)
var anno_ext = Extent(anno_geom)


var endX = anno_ext['xMin']
var endY = anno_ext['yMin']
var startx = parent_ext['xMax']
var starty = parent_ext['yMax']

var maxLength = 1;

console(startx)
console(starty)
var leaderline = Polyline({
paths:[
[
[startX,startY,0],
[endX, endY,0]
]
],
hasZ: true,
"spatialReference": Geometry($feature)["spatialReference"]
})


var att = {
"PS": parent_ps
}

var line = First(line_rec)
if (IsEmpty(line)) {
return {
"result":{
"geometry":anno_geom,
"attributes": att
},
"edit": [{
"className": "C",
"adds": [{
"attributes": {
"AnnoGlobalID": anno_gid,
"PS": parent_ps
},
"geometry": leaderline
}]
}]
}
}
else {
var linegid = line.GlobalID

return {
"result":{
"geometry":anno_geom,
"attributes": att
},
"edit": [{
"className": "C",
"updates": [{
"globalID": linegid,
"attributes": {
"AnnoGlobalID": anno_gid,
"PS": parent_ps
},
"geometry": leaderline
}]
}]
}
}

0 Kudos
0 Replies