To copy multiple objects, use the CopyObjects method or create an array of objects to use with the Copy method. (To copy the objects in a selection set, iterate through the selection set and save the objects into an array.) Iterate through the array, copying each object individually, and collect the newly created objects in a second array.

To copy multiple objects to a different drawing, use the CopyObjects method and set the Owner parameter to the drawing's model space.

Copy two Circle objects

This example creates two Circle objects and uses the CopyObjects method to make a copy of the circles.

```Sub Ch4_CopyCircleObjects()
```
```	Dim DOC1 As AcadDocument
```
```	Dim circleObj1 As AcadCircle
```
```	Dim circleObj2 As AcadCircle
```
```	Dim circleObj1Copy As AcadCircle
```
```	Dim circleObj2Copy As AcadCircle
```
```	Dim centerPoint(0 To 2) As Double
```
```	Dim radius1 As Double
```
```	Dim radius2 As Double
```
```	Dim radius1Copy As Double
```
```	Dim radius2Copy As Double
```
```	Dim objCollection(0 To 1) As Object
```
```	Dim retObjects As Variant
```

```	' Define the Circle object
```
```	centerPoint(0) = 0: centerPoint(1) = 0: centerPoint(2) = 0
```
```	radius1 = 5#: radius2 = 7#
```
```	radius1Copy = 1#: radius2Copy = 2#
```

```	 ' Create a new drawing
```
```	Set DOC1 = ThisDrawing.Application.Documents.Add
```

```	' Add two circles to the drawing
```
```	Set circleObj1 = DOC1.ModelSpace.AddCircle _
```
```					 (centerPoint, radius1)
```
```	Set circleObj2 = DOC1.ModelSpace.AddCircle _
```
```					 (centerPoint, radius2)
```
```	ZoomAll
```

```	' Put the objects to be copied into a form
```
```	' compatible with CopyObjects
```
```	Set objCollection(0) = circleObj1
```
```	Set objCollection(1) = circleObj2
```

```	' Copy object and get back a collection of
```
```	' the new objects (copies)
```
```	retObjects = DOC1.CopyObjects(objCollection)
```

```	' Get newly created object and apply
```
```	' new properties to the copies
```
```	Set circleObj1Copy = retObjects(0)
```
```	Set circleObj2Copy = retObjects(1)
```

```	circleObj1Copy.radius = radius1Copy
```
```	circleObj1Copy.Color = acRed
```
```	circleObj2Copy.radius = radius2Copy
```
```	circleObj2Copy.Color = acRed
```

```	ZoomAll
```
```End Sub
```

Copy objects to another drawing

This example creates Circle objects, then uses the CopyObjects method to copy the circles into a new drawing.

```Sub Ch4_Copy_to_New_Drawing()
```
```	Dim DOC0 As AcadDocument
```
```	Dim circleObj1 As AcadCircle, circleObj2 As AcadCircle
```
```	Dim centerPoint(0 To 2) As Double
```
```	Dim radius1 As Double, radius2 As Double
```
```	Dim radius1Copy As Double, radius2Copy As Double
```
```	Dim objCollection(0 To 1) As Object
```
```	Dim retObjects As Variant
```

```	' Define the Circle object
```
```	centerPoint(0) = 0: centerPoint(1) = 0: centerPoint(2) = 0
```
```	radius1 = 5#: radius2 = 7#
```
```	radius1Copy = 1#: radius2Copy = 2#
```

```	' Add two circles to the current drawing
```
```	Set circleObj1 = ThisDrawing.ModelSpace.AddCircle _
```
```					(centerPoint, radius1)
```
```	Set circleObj2 = ThisDrawing.ModelSpace.AddCircle _
```
```					(centerPoint, radius2)
```
```	ThisDrawing.Application.ZoomAll
```

```	' Save pointer to the current drawing
```
```	Set DOC0 = ThisDrawing.Application.ActiveDocument
```

```	' Copy objects
```
```	'
```
```	' First put the objects to be copied into a form compatible
```
```	' with CopyObjects
```
```	Set objCollection(0) = circleObj1
```
```	Set objCollection(1) = circleObj2
```

```	' Create a new drawing and point to its model space
```
```	Dim Doc1MSpace As AcadModelSpace
```
```	Dim DOC1 As AcadDocument
```

```	Set DOC1 = Documents.Add
```
```	Set Doc1MSpace = DOC1.ModelSpace
```

```	' Copy the objects into the model space of the new drawing. A
```
```	' collection of the new (copied) objects is returned.
```
```	retObjects = DOC0.CopyObjects(objCollection, Doc1MSpace)
```

```	Dim circleObj1Copy As AcadCircle, circleObj2Copy As AcadCircle
```

```	' Get the newly created object collection and apply new
```
```	' properties to the copies.
```
```	Set circleObj1Copy = retObjects(0)
```
```	Set circleObj2Copy = retObjects(1)
```

```	circleObj1Copy.radius = radius1Copy
```
```	circleObj1Copy.Color = acRed
```
```	circleObj2Copy.radius = radius2Copy
```
```	circleObj2Copy.Color = acRed
```

```	ThisDrawing.Application.ZoomAll
```

```	MsgBox "Circles copied."
```
```End Sub
```