Te recomiendo que completar la Construcción de los complementos de ArcGIS Desktop a pie-a través de, a continuación, mirar algunos de los fragmentos de código que están disponibles en developoers.
A la dirección de su pregunta; primero es necesario aislar la geometría de la función que desea utilizar para hacer la selección, localizar y establecer el destino de clase de entidad, crear un filtro espacial establecer la característica inicial de la geometría y el uso de la distribución espacial característica para hacer la selección. Por último yo tendrá que llamar al método refresh del sorteo de la selección en el mapa.
Aquí está un ejemplo similar (VB.NET) yo uso para seleccionar las características de una capa específica en un evento OnMouseUp. En este caso en lugar de utilizar una función de la geometría para hacer la selección, el filtro espacial geometría de entrada se crea a partir de la ubicación del ratón punto (en el caso de un solo clic) o un rectángulo dibujado con el ratón en la pantalla. El procedimiento para la selección de características en una capa en particular sería similar en su caso - el uso de un filtro espacial del objeto.
Protected Overrides Sub OnMouseUp(ByVal arg As ESRI.ArcGIS.Desktop.AddIns.Tool.MouseEventArgs)
On Error GoTo Trap
Dim mxDoc As ESRI.ArcGIS.ArcMapUI.IMxDocument = My.ArcMap.Document
If arg.Button = Windows.Forms.MouseButtons.Left Then
Dim pEnv As ESRI.ArcGIS.Geometry.IEnvelope = New ESRI.ArcGIS.Geometry.Envelope
'Dim pGeoFeatureLayer As ESRI.ArcGIS.Carto.IGeoFeatureLayer
Dim pFeatureSelection As ESRI.ArcGIS.Carto.IFeatureSelection
Dim pSpatialFilter As ESRI.ArcGIS.Geodatabase.ISpatialFilter = New ESRI.ArcGIS.Geodatabase.SpatialFilter
Dim pLayer As ESRI.ArcGIS.Carto.ILayer = Nothing
Dim pFeatureLayer As ESRI.ArcGIS.Carto.IFeatureLayer = Nothing
Dim point As ESRI.ArcGIS.Geometry.IPoint = TryCast(m_focusMap.ScreenDisplay.DisplayTransformation.ToMapPoint(arg.X, arg.Y), ESRI.ArcGIS.Geometry.IPoint)
Dim bFull As Boolean
pLayer = mxDoc.SelectedLayer
pFeatureLayer = pLayer
If Not pFeatureLayer.Selectable Then pFeatureLayer.Selectable = True 'override default selectibility to true
If (Not pLayer Is Nothing And TypeOf pLayer Is ESRI.ArcGIS.Carto.IGeoFeatureLayer) Or _
(Not pLayer Is Nothing And TypeOf pLayer Is ESRI.ArcGIS.Carto.IAnnotationLayer) Then
pFeatureSelection = pFeatureLayer
If Not m_pFeedbackEnv Is Nothing Then
pEnv = TryCast(m_pFeedbackEnv.Stop(), ESRI.ArcGIS.Geometry.IEnvelope)
With pSpatialFilter
.GeometryField = pFeatureLayer.FeatureClass.ShapeFieldName
If (Not pEnv Is Nothing) And (pEnv.IsEmpty = False) Then
.Geometry = pEnv
Else
.Geometry = point
End If
.SpatialRel = 1
End With
Else
With pSpatialFilter
.GeometryField = pFeatureLayer.FeatureClass.ShapeFieldName
.Geometry = point
.SpatialRel = 1
End With
End If
If Not arg.Shift Then
If pFeatureLayer.FeatureClass.FeatureCount(pSpatialFilter) > 0 Then
pFeatureSelection.SelectFeatures(TryCast(pSpatialFilter, ESRI.ArcGIS.Geodatabase.ISpatialFilter), 0, False)
Else
My.ArcMap.Document.FocusMap.ClearSelection()
''bFull = True
End If
Else
pFeatureSelection.SelectFeatures(TryCast(pSpatialFilter, ESRI.ArcGIS.Geodatabase.ISpatialFilter), 1, False)
End If
'Refresh the selections
m_lineFeedback.Stop() 'stop line feedback
m_lineFeedback = Nothing
m_pFeedbackEnv = Nothing 'MUST CANCEL FEEDBACK BEFORE REFRES ELSE CRASH WILL OCCUR
m_isMouseDown = False
'm_focusMap.PartialRefresh(ESRI.ArcGIS.Carto.esriViewDrawPhase.esriViewGeoSelection, mxDoc.SelectedLayer, mxDoc.ActiveView.Extent.Envelope)
m_focusMap.Refresh()
Else
'if Layer is not selected or not a golayer use default selection across all layers
If m_pFeedbackEnv IsNot Nothing Then
pEnv = m_pFeedbackEnv.Stop()
If pEnv IsNot Nothing Then
With My.ArcMap.Document.FocusMap
.ClearSelection() 'clear previous selection before making new
.SelectByShape(pEnv, Nothing, False)
End With
End If
End If
m_lineFeedback.Stop() 'stop line feedback
m_lineFeedback = Nothing
m_pFeedbackEnv = Nothing
m_isMouseDown = False
'm_focusMap.PartialRefresh(ESRI.ArcGIS.Carto.esriViewDrawPhase.esriViewGeoSelection, mxDoc.SelectedLayer, mxDoc.ActiveView.Extent.Envelope)
m_focusMap.Refresh()
End If
End If
Exit Sub
Trap:
'MsgBox(Err.Description)
m_isMouseDown = False
m_lineFeedback = Nothing
m_pFeedbackEnv = Nothing
End Sub