Split(Layer,Int64,Geometry) Method
Split a feature where the intersects it.
Edit Operation Cut Features
var select = MapView.Active.SelectFeatures(clipPoly);
var cutFeatures = new EditOperation() { Name = "Cut Features" };
cutFeatures.Split(featureLayer, oid, cutLine);
//Cut all the selected features in the active view
//Select using a polygon (for example)
//at 2.x - var kvps = MapView.Active.SelectFeatures(polygon).Select(
// k => new KeyValuePair<MapMember, List<long>>(k.Key as MapMember, k.Value));
//cutFeatures.Split(kvps, cutLine);
var sset = MapView.Active.SelectFeatures(polygon);
cutFeatures.Split(sset, cutLine);
//Execute to execute the operation
//Must be called within QueuedTask.Run
if (!cutFeatures.IsEmpty)
{
var result = cutFeatures.Execute(); //Execute and ExecuteAsync will return true if the operation was successful and false if not
}
//or use async flavor
//await cutFeatures.ExecuteAsync();
Order edits sequentially
// perform an edit and then a split as one operation.
QueuedTask.Run(() =>
{
var queryFilter = new QueryFilter() { WhereClause = "OBJECTID = " + oid.ToString() };
// create an edit operation and name.
var op = new EditOperation() { Name = "modify followed by split" };
// set the ExecuteMode
op.ExecuteMode = ExecuteModeType.Sequential;
using (var rowCursor = fc.Search(queryFilter, false))
{
while (rowCursor.MoveNext())
{
using (var feature = rowCursor.Current as Feature)
{
op.Modify(feature, "NAME", newName);
}
}
}
op.Split(layer, oid, splitLine);
if (!op.IsEmpty)
{
bool result = op.Execute();
}
// else
// The operation doesn't make any changes to the database so if executed it will fail
});
Target Platforms: Windows 11, Windows 10
ArcGIS Pro version: 3 or higher.