Replaces an item in the dictionary by a given item.
Supported platforms: Windows only
VBA:
object.Replace Name, NewObject
Type: Dictionary
The object this method applies to.
Access: Input-only
Type: String
The name (keyword) of the object to be replaced.
Access: Input-only
Type: Object
The new object.
No return value.
For example, "FirstKeyword," in the following dictionary:
has a new object, "NewObject," attached to it:
VBA:
Sub Example_Replace() ' This example creates a dictionary and adds ' a custom object to that dictionary. It then ' replaces the object in the dictionary. Dim dictObj As AcadDictionary Set dictObj = ThisDrawing.Dictionaries.Add("TEST_DICTIONARY") ' Load the ObjectARX application that defines the custom object. ' Note: The application listed here does not exist and ' will cause an error when run. Change the application name ' to the path and name of your ObjectARX application. ThisDrawing.Application.LoadArx "MyARXApp.dll" ' Create the custom object in the dictionary Dim keyName As String Dim className As String Dim customObj As AcadObject keyName = "OBJ1" className = "CAsdkDictObject" Set customObj = dictObj.AddObject(keyName, className) ' Replace the object from the dictionary with a different object Dim newCustomObject As AcadObject dictObj.Replace keyName, newCustomObject End Sub
Visual LISP:
(vl-load-com) (defun c:Example_Replace() ;; This example creates a dictionary and adds ;; a custom object to that dictionary. It then ;; replaces the object in the dictionary. (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) (setq dictionaries (vla-get-Dictionaries doc)) (setq dictObj (vla-Add dictionaries "TEST_DICTIONARY")) ;; Load the ObjectARX application that defines the custom object. ;; Note: The application listed here does not exist and ;; will cause an error when run. Change the application name ;; to the path and name of your ObjectARX application. (vla-LoadArx acadObj "MyARXApp.dll") ;; Create the custom object in the dictionary (setq keyName "OBJ1") (setq className "CAsdkDictObject") (setq customObj (vla-AddObject dictObj keyName className)) ;; Replace the object from the dictionary with a different object (setq newCustomObject (vlax-make-variant)) (vlax-variant-type newCustomObject vlax-vbObject) (vla-Replace dictObj keyName newCustomObject) )