Active Contributor
27 Posts
2 Kudos
Registered: ‎12-21-2009
Post 1 of 4

Set CurrentLayout

337 Views, 3 Replies
01-07-2013 05:16 AM

Can someone please tell me why I get an 'esetfailed' error?  I must be missing something simple.  Just before this sub I call another sub that changes the active document. ?? This is in AutioCAD 2011 w/ 64bit environment.


    Public Shared Sub ActiveLayout(ByVal name As String)
        Dim acDoc As Document = AcApp.DocumentManager.MdiActiveDocument
        Dim Db As Database = HostApplicationServices.WorkingDatabase
        Dim tdoclock As DocumentLock = acDoc.LockDocument
        Dim layMgr As LayoutManager = LayoutManager.Current
        Using acTrans As Transaction = Db.TransactionManager.StartTransaction()
                If Not Regex.Match(layMgr.CurrentLayout, name).Success() Then
                    layMgr.CurrentLayout = name
                End If
            Catch ex As Autodesk.AutoCAD.Runtime.Exception
                Autodesk.AutoCAD.ApplicationServices.Application.ShowAlertDialog(ex.Message & vbCr & ex.HelpLink & vbCr & ex.StackTrace)
                tdoclock = Nothing
            End Try
        End Using
    End Sub


Any help is greatly appreciated.


*Expert Elite*
2,142 Posts
255 Kudos
Registered: ‎04-29-2006
Post 2 of 4

Re : Set CurrentLayout

01-07-2013 08:34 AM in reply to: mpalan2009



eSetFailed is probably due to the fact the 'name' Layout does not exist in the drawing and no need to complicate so much.

This works for me:

        Public Shared Sub ActiveLayout(ByVal name As String)
                LayoutManager.Current.CurrentLayout = name
                MsgBox(String.Format("Layout '{0}' not found", name))
            End Try
        End Sub


Gilles Chanteau
Active Contributor
27 Posts
2 Kudos
Registered: ‎12-21-2009
Post 3 of 4

Re : Set CurrentLayout

01-07-2013 10:30 AM in reply to: _gile

I would like to change the question.  Why does that code not work for Drawing1.dwg and Layout1?  It does work with other drawings I have.  I don't have a reason to operate on that drawing, So I will exclude it from the forms listbox.




*Expert Elite*
1,569 Posts
171 Kudos
Registered: ‎10-08-2008
Post 4 of 4

Re : Set CurrentLayout

01-07-2013 01:33 PM in reply to: mpalan2009

Delete "acTrans.Dispose" from Finally code block

and try again

Post to the Community

Have questions about Autodesk products? Ask the community.

New Post
Are you interested in helping shape the future of the Autodesk Community? To participate in this brief usability study, please click here. Your time and input is greatly appreciated!