Parameters
- source
- The source mapMember.
- sourceOID
- The source feature (or row)'s OID
- target
- The target mapMember
- targetOID
- The target feature (or row)'s OID
- expression
- The override expression to assign values to target fields.
If the expression is set to null, then the application field mapping stored for the source and target mapMembers will be used to transfer attributes.
If the expression is set to the empty string, then only the attributes in the source feature that auto-match (based on name) with attributes in the target feature will be transferred.
A custom expression that provides a simple field mapping between source and target features should look similar to the following
return {
"ADDRESS" : $sourceFeature['ADDRESS'],
"IMAGE" : $sourceFeature['IMAGE'],
"PRECINCT" : $sourceFeature['PRECINCT'],
"WEBSITE" : $sourceFeature['WEBSITE'],
"ZIP" : $sourceFeature['ZIP']
}
A more complex custom expression that uses Arcade functions to transfer attributes is as follows
return {
"NAME" : $sourceFeature['FIRST_NAME'] + ' ' + $sourceFeature['LAST_NAME'],
"PERCENT" : Round($sourceFeature['POPULATION'] * 100, 2)
}
Additional Arcade information can be found here.
// Transfers attributes from a source feature to a target feature between specified layers. await QueuedTask.Run(() => { var targetOID = 12345; // object ID of the target feature in the destination layer var transferAttributes = new EditOperation() { Name = "Transfer Attributes" }; // transfer attributes using the stored field mapping transferAttributes.TransferAttributes(featureLayer, objectId, destinationLayer, targetOID); //Execute to execute the operation //Must be called within QueuedTask.Run if (!transferAttributes.IsEmpty) { //Execute and ExecuteAsync will return true if the operation was successful and false if not var result = transferAttributes.Execute(); //or use async flavor //await transferAttributes.ExecuteAsync(); } }); // Transfers attributes from a source feature to a target feature between specified layers. await QueuedTask.Run(() => { var targetOID = 12345; // object ID of the target feature in the destination layer var transferAttributes = new EditOperation() { Name = "Transfer Attributes" }; // transfer attributes using an auto-match on the attributes transferAttributes.TransferAttributes(featureLayer, objectId, destinationLayer, targetOID, ""); //Execute to execute the operation //Must be called within QueuedTask.Run if (!transferAttributes.IsEmpty) { //Execute and ExecuteAsync will return true if the operation was successful and false if not var result = transferAttributes.Execute(); //or use async flavor //await transferAttributes.ExecuteAsync(); } }); // Transfers attributes from a source feature to a target feature in a specified destination layer. await QueuedTask.Run(() => { var targetOID = 12345; // object ID of the target feature in the destination layer var transferAttributes = new EditOperation() { Name = "Transfer Attributes" }; // transfer attributes using a specified set of field mappings // dictionary key is the field name in the destination layer, dictionary value is the field name in the source layer Dictionary<string, string> fldMapping = new() { { "NAME", "SURNAME" }, { "ADDRESS", "ADDRESS" } }; transferAttributes.TransferAttributes(featureLayer, objectId, destinationLayer, targetOID, fldMapping); //Execute to execute the operation //Must be called within QueuedTask.Run if (!transferAttributes.IsEmpty) { //Execute and ExecuteAsync will return true if the operation was successful and false if not var result = transferAttributes.Execute(); //or use async flavor //await transferAttributes.ExecuteAsync(); } }); // Transfers attributes from a source feature to a target feature in a specified destination layer. await QueuedTask.Run(() => { var targetOID = 12345; // object ID of the target feature in the destination layer var transferAttributes = new EditOperation() { Name = "Transfer Attributes" }; // transfer attributes using a custom field mapping expression string expression = "return {\r\n " + "\"ADDRESS\" : $sourceFeature['ADDRESS'],\r\n " + "\"IMAGE\" : $sourceFeature['IMAGE'],\r\n + " + "\"PRECINCT\" : $sourceFeature['PRECINCT'],\r\n " + "\"WEBSITE\" : $sourceFeature['WEBSITE'],\r\n " + "\"ZIP\" : $sourceFeature['ZIP']\r\n " + "}"; transferAttributes.TransferAttributes(featureLayer, objectId, destinationLayer, targetOID, expression); //Execute to execute the operation //Must be called within QueuedTask.Run if (!transferAttributes.IsEmpty) { //Execute and ExecuteAsync will return true if the operation was successful and false if not var result = transferAttributes.Execute(); //or use async flavor //await transferAttributes.ExecuteAsync(); } });
Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)