ObjectDBX
Home Products Services VBA for ADT

ObjectDBX

 The Code

Registering the ObjectDBX environment

 

Sub regObjectDBX()
    Shell "REGSVR32 /s " + Chr$(34) + Tools.findfile("AXDB15.DLL", True) + Chr$(34), 0
End Sub

Opening a drawing with ObjectDBX

 

Function dbxOpen(fn As String) As AXDB15Lib.AxDbDocument
    If Dir(fn) <> "" Then
        Dim dwgX As New AXDB15Lib.AxDbDocument
        dwgX.Open (fn)
       
        If Err.Number <> 0 Then
            If Err.Number <> -2147467259 Then 'Invalid filename
                regObjectDBX
                dwgX.Open (fn)
            End If
        End If
        Set dbxOpen = dwgX
    End If
End Function

Importing a Layout using ObjectDBX

 

Function ListLayoutDBX(fn As String) As Variant
    Dim dwgX As New AXDB15Lib.AxDbDocument, lst(), cnt As Long, ly As AcadLayout
   
    Set dwgX = dbxOpen(fn)
    cnt = 0
   
    For Each ly In dwgX.Layouts
        If StrComp("Model", ly.Name, 1) <> 0 Then
            ReDim Preserve lst(cnt)
            lst(cnt) = ly.Name
            cnt = cnt + 1
        End If
    Next
    Set dwgX = Nothing
    ListLayoutDBX = lst
End Function
 

Sub ImportLayout(ByVal lyName As String, ByVal fn As String)
    Dim cmdName As String
    cmdName = Join(Split(fn, "\", , 1), "/")
    cmdName = "(command ""._Layout"" ""_T"" """ & cmdName & """ """ & lyName & """) "
    ThisDrawing.SendCommand cmdName
End Sub