+1 for just adding in the UsePickSet into the command method
'Autodesk
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.EditorInput
Imports Autodesk.AutoCAD.Runtime
Public Class Class1
''' <summary>
''' preselect with filter
''' </summary>
''' <remarks></remarks>
<CommandMethod("PF1", CommandFlags.Modal + CommandFlags.UsePickSet)> _
Public Shared Sub PICKFIRST1()
Dim doc As Document = Application.DocumentManager.MdiActiveDocument
Dim ed As Editor = doc.Editor
Dim db As database = doc.Database
Dim result As PromptSelectionResult = ed.GetSelection()
If result.Status = PromptStatus.OK Then
ed.WriteMessage(String.Format("{0} entities selected", result.Value.Count.ToString))
End If
End Sub
''' <summary>
''' preselect with filter
''' </summary>
''' <remarks></remarks>
<CommandMethod("PF2", CommandFlags.Modal + CommandFlags.UsePickSet)> _
Public Shared Sub PICKFIRST2()
Dim doc As Document = Application.DocumentManager.MdiActiveDocument
Dim ed As Editor = doc.Editor
Dim db As Database = doc.Database
Dim filter As New SelectionFilter(New TypedValue() {New TypedValue(DxfCode.Start, "TEXT")})
Dim result As PromptSelectionResult = ed.GetSelection(filter)
If result.Status = PromptStatus.OK Then
ed.WriteMessage(String.Format("{0} entities selected", result.Value.Count.ToString))
End If
End Sub
''' <summary>
''' no preselect
''' </summary>
''' <remarks></remarks>
<CommandMethod("PF3", CommandFlags.Modal)> _
Public Shared Sub PICKFIRST3()
Dim doc As Document = Application.DocumentManager.MdiActiveDocument
Dim ed As Editor = doc.Editor
Dim db As Database = doc.Database
Dim result As PromptSelectionResult = ed.GetSelection()
If result.Status = PromptStatus.OK Then
ed.WriteMessage(String.Format("{0} entities selected", result.Value.Count.ToString))
End If
End Sub
End Class