Create(MapMember,Inspector) Method
Creates a new row with the given inspector.
Parameters
- mapMember
- The layer or standalone table to create the new row in.
- inspector
- The inspector containing the attribute values to assign to the new row.
Return Value
A
RowToken object that represents the row to be created.
Edit Operation Duplicate Features
{
var duplicateFeatures = new EditOperation();
duplicateFeatures.Name = "Duplicate Features";
//Duplicate with an X and Y offset of 500 map units
//At 2.x duplicateFeatures.Duplicate(featureLayer, oid, 500.0, 500.0, 0.0);
//Execute to execute the operation
//Must be called within QueuedTask.Run
var insp2 = new Inspector();
insp2.Load(featureLayer, oid);
var geom = insp2["SHAPE"] as Geometry;
var rtoken = duplicateFeatures.Create(insp2.MapMember, insp2.ToDictionary(a => a.FieldName, a => a.CurrentValue));
if (!duplicateFeatures.IsEmpty)
{
if (duplicateFeatures.Execute())//Execute and ExecuteAsync will return true if the operation was successful and false if not
{
var modifyOp = duplicateFeatures.CreateChainedOperation();
modifyOp.Modify(featureLayer, (long)rtoken.ObjectID, GeometryEngine.Instance.Move(geom, 500.0, 500.0));
if (!modifyOp.IsEmpty)
{
var result = modifyOp.Execute();
}
}
}
}
Programmatically Create an Annotation Feature
await QueuedTask.Run(() =>
{
// annoLayer is ~your~ Annotation layer...
// pnt is ~your~ Annotation geometry ...
var op = new EditOperation();
// Use the inspector
var insp = new Inspector();
insp.LoadSchema(annoLayer);
// get the annotation properties from the inspector
AnnotationProperties annoProperties = insp.GetAnnotationProperties();
// change the annotation text
annoProperties.TextString = DateTime.Now.ToLongTimeString();
// change font color to green
annoProperties.Color = ColorFactory.Instance.GreenRGB;
// change the horizontal alignment
annoProperties.HorizontalAlignment = HorizontalAlignment.Center;
annoProperties.Shape = pnt;
// set the annotation properties back on the inspector
insp.SetAnnotationProperties(annoProperties);
// create the annotation
op.Create(annoLayer, insp);
if (!op.IsEmpty)
{
var result = op.Execute(); //Execute and ExecuteAsync will return true if the operation was successful and false if not
}
});
Target Platforms: Windows 11, Windows 10
ArcGIS Pro version: 3 or higher.