Specifies the current value for the property, or the object ID of the newly created cloned object.
Supported platforms: Windows only
VBA:
object.Value
Type: DynamicBlockReferenceProperty, IDPair
The object this property applies to.
Read-only: No (DynamicBlockReferenceProperty), Yes (IDPair)
Type: Variant (DynamicBlockReferenceProperty), Long_PTR (IDPair)
DynamicBlockReferenceProperty: The current value for the property.
IDPair: The object ID of the newly created cloned object in the CopyObjects operation.
DynamicBlockReferenceProperty: No error is returned if the specified property value could not be set. For example, if the property has a list of allowable values or a minimum-maximum range, and the value provided is not in the list or is out of range, no error is returned.
IDPair: Use the Key property to get the object ID of the source object.
VBA:
Sub Example_Value() ' This example creates two Circle objects and uses the CopyObjects ' method to copy them. It then returns the object IDs ' of the new objects using the Value property and uses the ' object IDs to remove the new (target) objects 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 Dim IDPairs As Variant Dim TargetObject As AcadObject ' 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 drawing Set circleObj1 = ThisDrawing.ModelSpace.AddCircle(centerPoint, radius1) Set circleObj2 = ThisDrawing.ModelSpace.AddCircle(centerPoint, radius2) ThisDrawing.Application.ZoomAll ' 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 = ThisDrawing.CopyObjects(objCollection, , IDPairs) ' 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 ThisDrawing.Application.ZoomAll ThisDrawing.Regen acAllViewports ' Display the object IDs of the source objects used for the copy MsgBox "The first target object ID is: " & IDPairs(0).Value & vbCrLf & _ "The second target object ID is: " & IDPairs(1).Value ' This key can be used with objectIDtoObject to reference the source objects, ' which is useful if the user manually selected the source objects. ' ' Here we delete the source objects from the ID obtained Set TargetObject = ThisDrawing.ObjectIdToObject(IDPairs(0).Value) TargetObject.Delete Set TargetObject = ThisDrawing.ObjectIdToObject(IDPairs(1).Value) TargetObject.Delete ThisDrawing.Regen acAllViewports MsgBox "The target objects have been deleted!", vbInformation End Sub
Visual LISP:
(vl-load-com) (defun c:Example_Value() ;; This example creates two Circle objects and uses the CopyObjects ;; method to copy them. It then returns the object IDs ;; of the new objects using the Value property and uses the ;; object IDs to remove the new (target) objects (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) ;; Define the Circle object (setq centerPoint (vlax-3d-point 0 0 0) radius1 5 radius2 7 radius1Copy 1 radius2Copy 2) ;; Add two circles to the drawing (setq modelSpace (vla-get-ModelSpace doc)) (setq circleObj1 (vla-AddCircle modelSpace centerPoint radius1)) (setq circleObj2 (vla-AddCircle modelSpace centerPoint radius2)) (vla-ZoomAll acadObj) ;; Copy objects ;; ;; First put the objects to be copied into a form compatible with CopyObjects (setq objCollection (vlax-make-safearray vlax-vbObject '(0 . 1))) (vlax-safearray-put-element objCollection 0 circleObj1) (vlax-safearray-put-element objCollection 1 circleObj2) ;; Copy object and get back a collection of the new objects (copies) (setq retObjects (vlax-variant-value (vla-CopyObjects doc objCollection nil 'IDPairs))) ;; Get newly created object and apply new properties to the copies (setq circleObj1Copy (vlax-safearray-get-element retObjects 0)) (setq circleObj2Copy (vlax-safearray-get-element retObjects 1)) (vla-put-Radius circleObj1Copy radius1Copy) (vla-put-Radius circleObj2Copy radius2Copy) (vla-ZoomAll acadObj) (vla-Regen doc acAllViewports) ;; Display the object IDs of the source objects used for the copy (alert (strcat "The first target object ID is: " (itoa (vla-get-Value (vlax-safearray-get-element IDPairs 0))) "\nThe second target object ID is: " (itoa (vla-get-Value (vlax-safearray-get-element IDPairs 1))))) ;; This key can be used with objectIDtoObject to reference the source objects, ;; which is useful if the user manually selected the source objects. ;; ;; Here we delete the source objects from the ID obtained (setq TargetObject (vla-ObjectIdToObject doc (vla-get-Value (vlax-safearray-get-element IDPairs 0)))) (vla-Delete TargetObject) (setq TargetObject (vla-ObjectIdToObject doc (vla-get-Value (vlax-safearray-get-element IDPairs 1)))) (vla-Delete TargetObject) (vla-Regen doc acAllViewports) (alert "The target objects have been deleted!") )