Detach Method (ActiveX)

Detaches an external reference (xref) from a drawing.

Supported platforms: Windows only

Signature

VBA:

object.Detach
object

Type: Block

The object this method applies to.

Return Value (RetVal)

No return value.

Remarks

Detaching an xref removes the xref from the current drawing. All copies of the xref are erased, and the xref definition is deleted. All xref-dependent symbol table information (such as layers and linetypes) is deleted from the current drawing.

You cannot detach an xref that contains other xrefs.

Examples

VBA:

Sub Example_Detach()
    On Error GoTo ERRORHANDLER
                          
    ' Define external reference to be inserted
    Dim xrefHome As AcadBlock
    Dim xrefInserted As AcadExternalReference
    Dim insertionPnt(0 To 2) As Double
    Dim PathName As String
    insertionPnt(0) = 1
    insertionPnt(1) = 1
    insertionPnt(2) = 0
    PathName = "c:/AutoCAD/sample/City map.dwg"
    
    ' Add the external reference
    Set xrefInserted = ThisDrawing.ModelSpace. _
            AttachExternalReference(PathName, "XREF_IMAGE", _
            insertionPnt, 1, 1, 1, 0, False)
    ZoomAll
    MsgBox "The external reference is attached."
    
    ' Detach the external reference definition
    Dim name As String
    name = xrefInserted.name
    ThisDrawing.Blocks.Item(name).Detach
    MsgBox "The external reference is detached."
    Exit Sub

ERRORHANDLER:
    MsgBox Err.Description
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_Detach()
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
  
    ;; Define external reference to be inserted
    (setq insertionPnt (vlax-3d-point 1 1 0)
          pathName (findfile ".\\Sample\\Sheet Sets\\Architectural\\Res\\STAIR1.dwg"))
    
    ;; Add the external reference
    (setq modelSpace (vla-get-ModelSpace doc))  
    (setq xrefInserted (vla-AttachExternalReference modelSpace pathName "XREF_IMAGE" insertionPnt 1 1 1 0 :vlax-false))
    (vla-ZoomAll acadObj)
  
    (alert "The external reference is attached.")
    
    ;; Detach the external reference definition
    (setq name (vla-get-Name xrefInserted))
    (vla-Detach (vla-Item (vla-get-Blocks doc) name))
    (alert "The external reference is detached.")
)