Specifies the translation of any contained object IDs during deepClone or wblockClone operations.
Supported platforms: Windows only
Read-only: No
Type: Boolean
No additional remarks.
VBA:
Sub Example_TranslateIDs() ' This example creates a new XRecord if one doesn't exist, ' and toggles the setting for TranslateIDs Dim TrackingDictionary As AcadDictionary, TrackingXRecord As AcadXRecord Dim XRecordDataType As Variant, XRecordData As Variant Dim ArraySize As Long, iCount As Long Dim DataType As Integer, Data As String, msg As String ' Unique identifiers to distinguish our XRecordData from other XRecordData Const TYPE_STRING = 1 Const TAG_DICTIONARY_NAME = "ObjectTrackerDictionary" Const TAG_XRECORD_NAME = "ObjectTrackerXRecord" ' Connect to the dictionary we store the XRecord in On Error GoTo CREATE Set TrackingDictionary = ThisDrawing.Dictionaries(TAG_DICTIONARY_NAME) Set TrackingXRecord = TrackingDictionary.GetObject(TAG_XRECORD_NAME) On Error GoTo 0 ' Get current XRecordData TrackingXRecord.GetXRecordData XRecordDataType, XRecordData ' If we don't have an array already then create one If VarType(XRecordDataType) And vbArray = vbArray Then ArraySize = UBound(XRecordDataType) + 1 ' Get the size of the data elements returned ArraySize = ArraySize + 1 ' Increase to hold new data ReDim Preserve XRecordDataType(0 To ArraySize) ReDim Preserve XRecordData(0 To ArraySize) Else ArraySize = 0 ReDim XRecordDataType(0 To ArraySize) As Integer ReDim XRecordData(0 To ArraySize) As Variant End If ' Find the current value of TranslateIDs Dim currXlate As Boolean currXlate = TrackingXRecord.TranslateIDs MsgBox "The current setting of the TranslateIDs is " & currXlate ' Toggle the setting TrackingXRecord.TranslateIDs = Not currXlate MsgBox "The new setting for the TranslateIDs is " & TrackingXRecord.TranslateIDs ' Reset the value TrackingXRecord.TranslateIDs = currXlate MsgBox "TranslateIDs has been reset to " & TrackingXRecord.TranslateIDs Exit Sub CREATE: ' Create the entities that hold our XRecordData If TrackingDictionary Is Nothing Then ' Make sure we have our tracking object Set TrackingDictionary = ThisDrawing.Dictionaries.Add(TAG_DICTIONARY_NAME) Set TrackingXRecord = TrackingDictionary.AddXRecord(TAG_XRECORD_NAME) End If Resume End Sub
Visual LISP:
(vl-load-com) (defun c:Example_TranslateIDs() ;; This example creates a new XRecord if one doesn't exist, ;; and toggles the setting for TranslateIDs (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) ;; Unique identifiers to distinguish our XRecordData from other XRecordData (setq TYPE_STRING 1 TAG_DICTIONARY_NAME "ObjectTrackerDictionary" TAG_XRECORD_NAME "ObjectTrackerXRecord") ;; Connect to the dictionary we store the XRecord in (setq dictionaries (vla-get-Dictionaries doc)) (setq TrackingDictionary (vl-catch-all-apply 'vla-Item (list dictionaries TAG_DICTIONARY_NAME))) ;; (= (vl-catch-all-error-message TrackingDictionary) "Automation Error. Key not found") (if (= (type TrackingDictionary) 'VLA-OBJECT) (setq TrackingXRecord (vla-GetObject TrackingDictionary TAG_XRECORD_NAME)) (progn ;; Create the objects that hold this XRecordData (setq TrackingDictionary (vla-Add dictionaries TAG_DICTIONARY_NAME)) (setq TrackingXRecord (vla-AddXRecord TrackingDictionary TAG_XRECORD_NAME)) ) ) ;; Get current XRecordData (vla-GetXRecordData TrackingXRecord 'temp-XRecordDataType 'temp-XRecordData) ;; If we don't have an array already then create one (setq ArraySize 0) (if (/= temp-XRecordDataType nil) (progn (setq ArraySize (vlax-safearray-get-u-bound temp-XRecordDataType 1)) (setq XRecordDataType (vlax-make-safearray vlax-vbInteger (cons 0 (1+ ArraySize)))) (setq XRecordData (vlax-make-safearray vlax-vbVariant (cons 0 (1+ ArraySize)))) (setq iCount 0) (while (>= ArraySize iCount) ;; Get information for this element (setq DataType (vlax-safearray-get-element temp-XRecordDataType iCount)) (setq Data (vlax-variant-value (vlax-safearray-get-element temp-XRecordData iCount))) (vlax-safearray-put-element XRecordDataType iCount DataType) (vlax-safearray-put-element XRecordData iCount Data) (setq iCount (1+ iCount)) ) ) (progn (setq XRecordDataType (vlax-make-safearray vlax-vbInteger '(0 . 0))) (setq XRecordData (vlax-make-safearray vlax-vbVariant '(0 . 0))) ) ) ;; Find the current value of TranslateIDs (setq currXlate (vla-get-TranslateIDs TrackingXRecord)) (alert (strcat "The current setting of the TranslateIDs is " (if (= currXlate :vlax-true) "True" "False"))) ;; Toggle the setting (vla-put-TranslateIDs TrackingXRecord (if (= currXlate :vlax-true) :vlax-false :vlax-true)) (alert (strcat "The new setting for the TranslateIDs is " (if (= (vla-get-TranslateIDs TrackingXRecord) :vlax-true) "True" "False"))) ;; Reset the value (vla-put-TranslateIDs TrackingXRecord currXlate) (alert (strcat "TranslateIDs has been reset to " (if (= (vla-get-TranslateIDs TrackingXRecord) :vlax-true) "True" "False"))) )