CopyObjects Example

Using Programming Languages other than VBA

Sub Example_CopyObjects()
	' This example creates a Circle object and uses the CopyObjects
	' method to make a copy of the new Circle.

	Dim DOC1 As AcadDocument
	Dim circleObj1 As AcadCircle, circleObj2 As AcadCircle
	Dim circleObj1Copy As AcadCircle, circleObj2Copy 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#

	' Create a new drawing
	Set DOC1 = Documents.Add

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

	' Copy objects
	' First 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
	circleObj2Copy.radius = radius2Copy

	MsgBox "Circles copied."
End Sub