AppendItems Method (ActiveX)

Appends one or more entities to the specified group.

Supported platforms: Windows only

Signature

VBA:

object.AppendItems Objects
object

Type: Group

The object this method applies to.

Objects

Access: Input-only

Type: Variant (array of any drawing objects)

An array of objects to append. The array can consist of any drawing objects.

Return Value (RetVal)

No return value.

Remarks

To query items in a group, use the Item method.

To remove individual items from a group, use the RemoveItems method.

Examples

VBA:

Sub Example_AppendItems()
    ' This example creates a group and several objects.
    ' It then appends the objects to the group.
    
    ' Create the new group
    Dim groupObj As AcadGroup
    Set groupObj = ThisDrawing.Groups.Add("TEST_GROUP")
            
    ' Create a Ray object in model space
    Dim rayObj As AcadRay
    Dim basePoint(0 To 2) As Double
    Dim SecondPoint(0 To 2) As Double
    basePoint(0) = 3#: basePoint(1) = 3#: basePoint(2) = 0#
    SecondPoint(0) = 1#: SecondPoint(1) = 3#: SecondPoint(2) = 0#
    Set rayObj = ThisDrawing.ModelSpace.AddRay(basePoint, SecondPoint)
    
    ' Create a polyline object in model space
    Dim plineObj As AcadLWPolyline
    Dim points(0 To 5) As Double
    points(0) = 3: points(1) = 7
    points(2) = 9: points(3) = 2
    points(4) = 3: points(5) = 5
    Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
    plineObj.Closed = True

    ' Create a line object in model space
    Dim lineObj As AcadLine
    Dim startPoint(0 To 2) As Double
    Dim endPoint(0 To 2) As Double
    startPoint(0) = 0: startPoint(1) = 0: startPoint(2) = 0
    endPoint(0) = 2: endPoint(1) = 2: endPoint(2) = 0
    Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint)
    
    ' Create a circle object in model space
    Dim circObj As AcadCircle
    Dim centerPt(0 To 2) As Double
    Dim radius As Double
    centerPt(0) = 20: centerPt(1) = 30: centerPt(2) = 0
    radius = 3
    Set circObj = ThisDrawing.ModelSpace.AddCircle(centerPt, radius)

    ' Create an ellipse object in model space
    Dim ellObj As AcadEllipse
    Dim majAxis(0 To 2) As Double
    Dim center(0 To 2) As Double
    Dim radRatio As Double
    center(0) = 5#: center(1) = 5#: center(2) = 0#
    majAxis(0) = 10: majAxis(1) = 20#: majAxis(2) = 0#
    radRatio = 0.3
    Set ellObj = ThisDrawing.ModelSpace.AddEllipse(center, majAxis, radRatio)

    ZoomAll
    
    ' Iterate through the model space collection.
    ' Collect the objects found into an array of objects
    ' to be added to the group.
    ReDim appendObjs(0 To ThisDrawing.ModelSpace.count - 1) As AcadEntity
    Dim I As Integer
    For I = 0 To ThisDrawing.ModelSpace.count - 1
        Set appendObjs(I) = ThisDrawing.ModelSpace.Item(I)
    Next
    
    ' Add the array of objects to the group
    groupObj.AppendItems appendObjs
    
    ThisDrawing.Regen acActiveViewport
    
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_AppendItems()
    ;; This example creates a group and several objects.
    ;; It then appends the objects to the group.
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
  
    ;; Create the new group
    (setq groupObj (vla-Add (vla-get-Groups doc) "TEST_GROUP"))
            
    ;; Create a Ray object in model space
    (setq basePoint (vlax-3d-point 3 3 0)
          secondPoint (vlax-3d-point 1 3 0))

    (setq modelSpace (vla-get-ModelSpace doc))  
    (setq rayObj (vla-AddRay modelSpace basePoint SecondPoint))
    
    ;; Create a polyline object in model space
    (setq points (vlax-make-safearray vlax-vbDouble '(0 . 5)))
    (vlax-safearray-fill points '(3 7
                                  9 2
                                  3 5
                                 )
    )

    (setq plineObj (vla-AddLightWeightPolyline modelSpace points))
    (vla-put-Closed plineObj :vlax-true)

    ;; Create a line object in model space
    (setq startPoint (vlax-3d-point 0 0 0)
          endPoint (vlax-3d-point 2 2 0))
    (setq lineObj (vla-AddLine modelSpace startPoint endPoint))
    
    ;; Create a circle object in model space
    (setq centerPt (vlax-3d-point 20 30 0)
          radius 3)
    (setq circObj (vla-AddCircle modelSpace centerPt radius))

    ;; Create an ellipse object in model space
    (setq center (vlax-3d-point 5 5 0)
          majAxis (vlax-3d-point 10 20 0)
          radRatio 0.3)
    (setq ellObj (vla-AddEllipse modelSpace center majAxis radRatio))

    (vla-ZoomAll acadObj)
    
    ;; Iterate through the model space collection.
    ;; Collect the objects found into an array of objects
    ;; to be added to the group.
    (setq I 0
	         totalObjs (vla-get-Count modelSpace))
    (setq appendObjs (vlax-make-safearray vlax-vbObject (cons 0 (- totalObjs 1))))
    (while (>= (- totalObjs 1) I)
        (vlax-safearray-put-element appendObjs I (vla-Item modelSpace I))
        (setq I (1+ I))
    )
    
    ;; Add the array of objects to the group
    (vla-AppendItems groupObj appendObjs)
    
    (vla-Regen doc acActiveViewport)
)