This document is archived and information here might be outdated. Recommended version. |
Provides access to members that control the behavior of the field mapping tools.
Name | Description | |
---|---|---|
DeleteFieldMap | Delete an individual field map (source or destination). | |
FieldMap | Enum of field maps. | |
GetSourceField | The source field for the provided target field. | |
GetTargetField | The target field for the provided source field. | |
IsEmpty | Indicates if any field mappings have been set. | |
SetFieldMap | Establishes a field mapping between the source and target fields. | |
SourceClass | Source class (required) for field mapping. | |
TargetClass | Target class (required) for field mapping. |
Classes | Description |
---|---|
FieldMap (esriEditorExt) | The Field map object defines how attributes will get transfered. |
A FieldMap contains a number source and target fields for use in attribute transfer.
To create a new FieldMap, instantiate a new FieldMap object then set its source and target feature class via the SourceClass and TargetClass properties. Next set each source and target pair via the SetFieldMap method.
Source/Target field pairs can be can be queried via the FieldMap property, which returns an IEnumFieldMap object containing the field pairs.
A source/target field pair can be removed from a FieldMap by using the DeleteFieldMap method. Only the source field is specified.
private void setUpFieldMap(IFeatureLayer sourceFeatureLayer, IFeatureLayer targetFeatureLayer)
{
//get editor extension
UID editorUID = new UIDClass();
editorUID.Value = "esriEditor.Editor";
IEditor editor = m_application.FindExtensionByCLSID(editorUID) as IEditor;
IAttributeTransferType attributeTransferType = editor as IAttributeTransferType;
IAttributeTransfer attributeTransfer = attributeTransferType.AttributeTransfer;
IFieldMap fieldMap = new FieldMapClass();
fieldMap.SourceClass = sourceFeatureLayer.FeatureClass;
fieldMap.TargetClass = targetFeatureLayer.FeatureClass;
int souceFieldID = sourceFeatureLayer.FeatureClass.Fields.FindField("test");
int tagetFieldID = targetFeatureLayer.FeatureClass.Fields.FindField("test");
IField sourceField = sourceFeatureLayer.FeatureClass.Fields.get_Field(souceFieldID);
IField targetField = targetFeatureLayer.FeatureClass.Fields.get_Field(tagetFieldID);
fieldMap.SetFieldMap(sourceField, targetField);
attributeTransfer.FieldMap = fieldMap;
}