SelectAtPoint Method (ActiveX)

Selects an object passing through a given point and places it into a selection set.

Supported platforms: Windows only

Signature

VBA:

object.SelectAtPoint Point, FilterType, FilterData
object

Type: SelectionSet

The object this method applies to.

Point

Access: Input-only

Type: Variant (three-element array of doubles)

The 3D UCS coordinates specifying the point to use for the selection.

FilterType

Access: Input-only; optional

Type: Variant

A DXF group code specifying the type of filter to use.

FilterData

Access: Input-only; optional

Type: Variant

The value to filter on.

Return Value (RetVal)

No return value.

Remarks

This method supports the filtering mechanism.

The PICKBOX system variable affects object selection.

For more selection mode options, see the Select, SelectByPolygon, and SelectOnScreen methods.

Examples

VBA:

Sub Example_SelectAtPoint()
    ' This example adds objects to a selection set by identifying a point.
    ' At first all objects at the point are added to the selection set. Then
    ' only circle objects at the point are added to the selection set.
    
    ' Create the selection set
    Dim ssetObj As AcadSelectionSet
    Set ssetObj = ThisDrawing.SelectionSets.Add("TEST_SSET1")
   
    ' Add to the selection set all the objects that lie at point(6.8,9.4,0) 
    Dim point(0 To 2) As Double
    point(0) = 6.8: point(1) = 9.4: point(2) = 0
    ssetObj.SelectAtPoint point
    
    ' Add to the selection set all the Circles that lie at point (6.8,9.4,0) 
    Dim gpCode(0) As Integer
    Dim dataValue(0) As Variant
    gpCode(0) = 0
    dataValue(0) = "Circle"
    
    Dim groupCode As Variant, dataCode As Variant
    groupCode = gpCode
    dataCode = dataValue
    
    ssetObj.SelectAtPoint point, groupCode, dataCode
    
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_SelectAtPoint()
    ;; This example adds objects to a selection set by identifying a point.
    ;; At first all objects at the point are added to the selection set. Then
    ;; only circle objects at the point are added to the selection set.
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
    
    ;; Create the selection set
    (setq ssetObj (vla-Add (vla-get-SelectionSets doc) "TEST_SSET1"))
   
    ;; Add to the selection set all the objects that lie at point(6.8,9.4,0)
    (setq point (vlax-3d-point 6.8 9.4 0))
    (vla-SelectAtPoint ssetObj point)
  
    (alert (strcat "Objects selected: " (itoa (vla-get-Count ssetObj))))
    (vla-Clear ssetObj)
    
    ;; Add to the selection set all the Circles that lie at point (6.8,9.4,0)
    (setq gpCode (vlax-make-safearray vlax-vbInteger '(0 . 0)))
    (vlax-safearray-put-element gpCode 0 0)
    (setq dataValue (vlax-make-safearray vlax-vbVariant '(0 . 0)))
    (vlax-safearray-put-element dataValue 0 "Circle")
    
    (vla-SelectAtPoint ssetObj point gpCode dataValue)
    (alert (strcat "Objects selected: " (itoa (vla-get-Count ssetObj))))

    (vla-Delete ssetObj)
)