<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Erasing Layouts in .NET Forum</title>
    <link>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/2990630#M65765</link>
    <description>&lt;P&gt;i'm trying to deal with the same thing....in C#&lt;/P&gt;&lt;P&gt;not much luck yet....&lt;/P&gt;</description>
    <pubDate>Fri, 15 Apr 2011 02:13:29 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2011-04-15T02:13:29Z</dc:date>
    <item>
      <title>Erasing Layouts</title>
      <link>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/2669032#M65764</link>
      <description>Does anyone have an example of how to properly remove a layout? I'm writing a routine to strip down drawings to an optimized (and standardized) format, but I'm having trouble with this one bit of code:&lt;BR /&gt;
&lt;BR /&gt;
{code}&lt;BR /&gt;
&lt;BR /&gt;
        Protected Friend Shared Sub RemoveLayouts(ByVal dbAcad As Database)&lt;BR /&gt;
            Dim edCmdLine As Editor = AcApp.Application.DocumentManager.MdiActiveDocument.Editor&lt;BR /&gt;
            Dim alLayouts As ArrayList = New ArrayList()&lt;BR /&gt;
            Dim lmAcad As LayoutManager = LayoutManager.Current&lt;BR /&gt;
            Dim oiTemp As ObjectId&lt;BR /&gt;
&lt;BR /&gt;
            Try&lt;BR /&gt;
                ' Create empty layout to satisfy one minimum layout requirement&lt;BR /&gt;
                oiTemp = lmAcad.CreateLayout("Some-Random-Name")&lt;BR /&gt;
&lt;BR /&gt;
                Using trAcad As Transaction = dbAcad.TransactionManager.StartTransaction()&lt;BR /&gt;
                    Dim deItem As DictionaryEntry&lt;BR /&gt;
                    Dim dicLayouts As DBDictionary = DirectCast(trAcad.GetObject(dbAcad.LayoutDictionaryId, OpenMode.ForRead), DBDictionary)&lt;BR /&gt;
                    Dim intI As Integer&lt;BR /&gt;
                    Dim lItem As Layout&lt;BR /&gt;
                    Dim oiBlock As ObjectId&lt;BR /&gt;
                    Dim oicViewports As ObjectIdCollection&lt;BR /&gt;
                    Dim vItem As Viewport&lt;BR /&gt;
&lt;BR /&gt;
                    ' Get the list of layouts&lt;BR /&gt;
                    For Each deItem In dicLayouts&lt;BR /&gt;
                        alLayouts.Add(DirectCast(trAcad.GetObject(CType(deItem.Value, ObjectId), OpenMode.ForRead), Layout).LayoutName)&lt;BR /&gt;
                    Next&lt;BR /&gt;
&lt;BR /&gt;
                    ' Cycle through the layouts, deleting all but model space and one layout&lt;BR /&gt;
                    For intI = 0 To alLayouts.Count - 1&lt;BR /&gt;
                        If alLayouts(intI) &amp;lt;&amp;gt; "Model" And alLayouts(intI) &amp;lt;&amp;gt; "Some-Random-Name" Then&lt;BR /&gt;
                            Try&lt;BR /&gt;
                                lItem = DirectCast(trAcad.GetObject(lmAcad.GetLayoutId(alLayouts(intI)), OpenMode.ForWrite), Layout)&lt;BR /&gt;
                                oiBlock = lItem.BlockTableRecordId&lt;BR /&gt;
&lt;BR /&gt;
                                ' Deals with viewports&lt;BR /&gt;
                                oicViewports = lItem.GetViewports()&lt;BR /&gt;
                                For Each oiViewport In oicViewports&lt;BR /&gt;
                                    vItem = DirectCast(trAcad.GetObject(oiViewport, OpenMode.ForWrite), Viewport)&lt;BR /&gt;
                                    vItem.Erase()&lt;BR /&gt;
                                Next&lt;BR /&gt;
&lt;BR /&gt;
                                lmAcad.DeleteLayout(lItem.LayoutName)&lt;BR /&gt;
                            Catch ex As Exception&lt;BR /&gt;
                            End Try&lt;BR /&gt;
                        End If&lt;BR /&gt;
                    Next&lt;BR /&gt;
&lt;BR /&gt;
                    trAcad.Commit()&lt;BR /&gt;
                End Using&lt;BR /&gt;
&lt;BR /&gt;
                Using trAcad As Transaction = dbAcad.TransactionManager.StartTransaction()&lt;BR /&gt;
                    Dim lItem As Layout&lt;BR /&gt;
&lt;BR /&gt;
                    lItem = DirectCast(trAcad.GetObject(oiTemp, OpenMode.ForWrite), Layout)&lt;BR /&gt;
                    lItem.Initialize()&lt;BR /&gt;
                    lItem.LayoutName = "Layout1"&lt;BR /&gt;
&lt;BR /&gt;
                    trAcad.Commit()&lt;BR /&gt;
                End Using&lt;BR /&gt;
            Catch ex As Exception&lt;BR /&gt;
            End Try&lt;BR /&gt;
        End Sub&lt;BR /&gt;
{code}&lt;BR /&gt;
&lt;BR /&gt;
If I don't remove the viewports "manually", I get drawing corruption. If the layout to be removed contains a block with attribute definitions, that too causes corruption. If I get the BlockTableRecord from the layout, and erase it instead, I don't get corruption, but the drawing crashes when I switch layout tabs.</description>
      <pubDate>Mon, 19 Apr 2010 16:42:57 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/2669032#M65764</guid>
      <dc:creator>s.jabs</dc:creator>
      <dc:date>2010-04-19T16:42:57Z</dc:date>
    </item>
    <item>
      <title>Re: Erasing Layouts</title>
      <link>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/2990630#M65765</link>
      <description>&lt;P&gt;i'm trying to deal with the same thing....in C#&lt;/P&gt;&lt;P&gt;not much luck yet....&lt;/P&gt;</description>
      <pubDate>Fri, 15 Apr 2011 02:13:29 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/2990630#M65765</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2011-04-15T02:13:29Z</dc:date>
    </item>
    <item>
      <title>Re: Erasing Layouts</title>
      <link>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3166950#M65766</link>
      <description>&lt;P&gt;To erase a layout you can use the current LayoutManager's DeleteLayout() method. It will safely delete a layout including all contents.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best of all, if you use this to erase the last remaining paper space layout, a new default paper space layout will automatically be generated by AutoCAD.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Note: If you try and delete the Model layout an exception will be thrown.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is a C#&amp;nbsp;sample to erase all paper space layouts...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;[&lt;FONT color="#3366ff"&gt;CommandMethod&lt;/FONT&gt;(&lt;FONT color="#800000"&gt;"EraseAllLayouts"&lt;/FONT&gt;)]&lt;BR /&gt;&lt;FONT color="#0000ff"&gt;public static void&lt;/FONT&gt; EraseAllLayouts() {&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;FONT color="#3366ff"&gt;Document&lt;/FONT&gt; doc = &lt;FONT color="#3366ff"&gt;Application&lt;/FONT&gt;.DocumentManager.MdiActiveDocument;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;FONT color="#3366ff"&gt;Database&lt;/FONT&gt; db = doc.Database;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;FONT color="#3366ff"&gt;Editor&lt;/FONT&gt; ed = doc.Editor;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;FONT color="#0000ff"&gt;using&lt;/FONT&gt; (&lt;FONT color="#3366ff"&gt;Transaction&lt;/FONT&gt; tr = db.TransactionManager.StartTransaction()) {&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color="#008000"&gt; // ACAD_LAYOUT dictionary.&lt;/FONT&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color="#3366ff"&gt;DBDictionary&lt;/FONT&gt; layoutDict = tr.GetObject(db.LayoutDictionaryId, &lt;FONT color="#3366ff"&gt;OpenMode&lt;/FONT&gt;.ForRead) as &lt;FONT color="#3366ff"&gt;DBDictionary&lt;/FONT&gt;;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color="#008000"&gt;// Iterate dictionary entries.&lt;/FONT&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color="#0000ff"&gt;foreach&lt;/FONT&gt; (&lt;FONT color="#3366ff"&gt;DBDictionaryEntry&lt;/FONT&gt; de &lt;FONT color="#0000ff"&gt;in&lt;/FONT&gt; layoutDict) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color="#0000ff"&gt;string&lt;/FONT&gt; layoutName = de.Key;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color="#0000ff"&gt;if&lt;/FONT&gt; (layoutName != &lt;FONT color="#800000"&gt;"Model"&lt;/FONT&gt;) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color="#3366ff"&gt;LayoutManager&lt;/FONT&gt;.Current.DeleteLayout(layoutName);&amp;nbsp;&lt;FONT color="#008000"&gt;// Delete layout.&lt;/FONT&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; ed.Regen();&amp;nbsp;&amp;nbsp; &lt;FONT color="#008000"&gt;// Updates AutoCAD GUI to relect changes.&lt;/FONT&gt;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hope this helps.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Art&lt;/P&gt;</description>
      <pubDate>Thu, 22 Sep 2011 09:32:16 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3166950#M65766</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2011-09-22T09:32:16Z</dc:date>
    </item>
    <item>
      <title>Re: Erasing Layouts</title>
      <link>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3167512#M65767</link>
      <description>&lt;P&gt;Be careful with dictionary entries.&amp;nbsp; I got caught doing the same thing.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You are using Dim deItem As DictionaryEntry to iterate through a &lt;STRONG&gt;&lt;U&gt;DB&lt;/U&gt;&lt;/STRONG&gt;Dicitionary.&amp;nbsp; You should use Dim deItem As &lt;STRONG&gt;&lt;U&gt;DB&lt;/U&gt;&lt;/STRONG&gt;DictionaryEntry.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I got diffrerent results when I&amp;nbsp;made that change.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 22 Sep 2011 15:42:59 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3167512#M65767</guid>
      <dc:creator>fieldguy</dc:creator>
      <dc:date>2011-09-22T15:42:59Z</dc:date>
    </item>
    <item>
      <title>Re: Erasing Layouts</title>
      <link>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3406005#M65768</link>
      <description>&lt;P&gt;This is a great example, thanks. I am finding that the drawing regens throughout the process with "Regenerating model - caching viewports". Regenauto doesn't affect. Does anyone have a way to prevent the screen flashing etc? Also, sometimes the new default layout is the next number, ie "Layout 10". I haven't been able to resolve these small niggles but am really appreciative of the sample. Regards, Dale&lt;/P&gt;</description>
      <pubDate>Tue, 10 Apr 2012 06:23:22 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3406005#M65768</guid>
      <dc:creator>Dale.Bartlett</dc:creator>
      <dc:date>2012-04-10T06:23:22Z</dc:date>
    </item>
    <item>
      <title>Re: Erasing Layouts</title>
      <link>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3406101#M65769</link>
      <description>&lt;P&gt;Update: I had already removed&amp;nbsp;the ed.Regen() line. Dale&lt;/P&gt;</description>
      <pubDate>Tue, 10 Apr 2012 08:05:01 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3406101#M65769</guid>
      <dc:creator>Dale.Bartlett</dc:creator>
      <dc:date>2012-04-10T08:05:01Z</dc:date>
    </item>
    <item>
      <title>Re: Erasing Layouts</title>
      <link>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3407073#M65770</link>
      <description>&lt;P&gt;Hi Dale,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The command line output can be temporarily suppressed by setting the NOMUTT system variable. A word of caution though, this can get a little complicated.&amp;nbsp;You need to watch out for happens if the user enters UNDO. You don't want to accidentally leave the user with NOMUTT set to 1 (i.e. if exception is thrown). Refer to the following links for details on this:&lt;/P&gt;&lt;P&gt;&lt;A target="_self" href="http://through-the-interface.typepad.com/through_the_interface/2008/09/no-muttering-at.html"&gt;http://through-the-interface.typepad.com/through_the_interface/2008/09/no-muttering-at.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A target="_self" href="http://through-the-interface.typepad.com/through_the_interface/2008/09/more-quiet-comm.html"&gt;http://through-the-interface.typepad.com/through_the_interface/2008/09/more-quiet-comm.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I think the flashing is caused because this is what happens if you were to do this manually in the AutoCAD UI, it just happens fast. You could set the current layout to model space first, i.e.:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; LayoutManager.Current.CurrentLayout = "Model";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;See what you mean by it being named "Layout10". Seems to happens when you are replacing a Layout1. Only thing I can think of is to manually rename it to whatever you want using the RenameLayout() method, i.e.:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; DBDictionary layoutDict = tr.GetObject(db.LayoutDictionaryId, OpenMode.ForRead) as DBDictionary;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (layoutDict.Count == 1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;foreach (DBDictionaryEntry de in layoutDict)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string layoutName = de.Key;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (layoutName != "Model")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LayoutManager.Current.RenameLayout(layoutName, "NewLayoutName");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hope this helps,&lt;BR /&gt;Art&lt;/P&gt;</description>
      <pubDate>Tue, 10 Apr 2012 17:06:55 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3407073#M65770</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2012-04-10T17:06:55Z</dc:date>
    </item>
    <item>
      <title>Re: Erasing Layouts</title>
      <link>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3599106#M65771</link>
      <description>&lt;P&gt;Thank you ArtVegas, discussion groups are really valuable.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I had this code to erase a layout:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Function DeleteLayout(ByVal LayoutNameToDelete As String) As Boolean&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim bReturnValue As Boolean = True&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim oLayoutIDToRename As ObjectId = Nothing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim ed As Editor = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim Db As Database = ed.Document.Database()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim acDoc As Document = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oLayoutIDToRename = GetLayoutByName(LayoutNameToDelete)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Try&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Using doclock As DocumentLock = acDoc.LockDocument&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Using tm1 As Transaction = Db.TransactionManager.StartTransaction()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim oLayoutToRename As Layout = tm1.GetObject(oLayoutIDToRename, OpenMode.ForWrite)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oLayoutToRename.Erase()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tm1.Commit()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oLayoutToRename = Nothing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Using&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Using&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor.Regen()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Catch ex As Exception&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ed.WriteMessage("\nImpossible de supprimer la présentation " &amp;amp; LayoutNameToDelete &amp;amp; ": " &amp;amp; ex.Message)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bReturnValue = False&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Try&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return bReturnValue&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here the function GetLayoutByName:&lt;/P&gt;&lt;P&gt;Public Function GetLayoutByName(ByVal layoutName As String) As ObjectId&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim oReturnValue As ObjectId = Nothing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim ed As Editor = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim CurrentDb As Database = ed.Document.Database()&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Try&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ''Create a variable to store the list oflayout identifiers&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim tm As Autodesk.AutoCAD.DatabaseServices.TransactionManager = CurrentDb.TransactionManager&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Using myT As Transaction = tm.StartTransaction&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ''Open the layout dictionary&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim layoutDic As DBDictionary = myT.GetObject(CurrentDb.LayoutDictionaryId, OpenMode.ForRead, False)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '' Check each layout in the layout table&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim Entry As DBDictionaryEntry = Nothing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each Entry In layoutDic&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim layoutId As ObjectId = Entry.Value&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim objLayout As Layout = myT.GetObject(layoutId, OpenMode.ForRead, False)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If objLayout.LayoutName.ToUpper = layoutName.ToUpper Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oReturnValue = objLayout.ObjectId&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myT.Commit()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Using&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Catch ex As Autodesk.AutoCAD.Runtime.Exception&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oReturnValue = Nothing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Try&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return oReturnValue&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The layout is deleted but AutoCAD become unstable. When I close AutoCAD, it freeze. I don't know why. Now I replace my function by yours (converted in VB .Net and 3 modifications) and it works perfectly.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim bReturnValue As Boolean = True&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim ed As Editor = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim Db As Database = ed.Document.Database()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim acDoc As Document = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Try&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color="#FF0000"&gt;Using doclock As DocumentLock = acDoc.LockDocument&lt;/FONT&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Using tr As Transaction = &lt;FONT color="#000000"&gt;Db.TransactionManager.StartTransaction&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'ACAD_LAYOUT dictionary.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim layoutDict As DBDictionary = tr.GetObject(Db.LayoutDictionaryId, OpenMode.&lt;FONT color="#FF0000"&gt;ForWrite&lt;/FONT&gt;)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Iterate dictionary entries.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each de As DBDictionaryEntry In layoutDict&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim layoutName As String = de.Key&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If layoutName.ToUpper = LayoutNameToDelete.ToUpper Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LayoutManager.Current.DeleteLayout(LayoutNameToDelete)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color="#FF0000"&gt; tr.Commit()&lt;/FONT&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ed.Regen()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Using&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color="#FF0000"&gt;End Using&lt;/FONT&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Catch ex As Exception&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ed.WriteMessage("\nImpossible de supprimer la présentation " &amp;amp; LayoutNameToDelete &amp;amp; ": " &amp;amp; ex.Message)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bReturnValue = False&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Try&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return bReturnValue&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;I had to make three adjustements. First I replace the openmode to ForWrite and second commit the transaction. Third I also have to lock the document. All the transaction is embed in&amp;nbsp; a try statement for more security.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hope this help for vb programmer.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;André&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 29 Aug 2012 01:21:42 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3599106#M65771</guid>
      <dc:creator>andre_adc-dao</dc:creator>
      <dc:date>2012-08-29T01:21:42Z</dc:date>
    </item>
    <item>
      <title>Re: Erasing Layouts</title>
      <link>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3601446#M65772</link>
      <description>&lt;P&gt;Hi ArtVegas,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a question for you. I have a routine to rename a layout and now a good routine to delete layout. I want to rename a layout sequence order. I already have a routine inserting a layout (ex. insert layout 003, the existing layout 003 is rename to 004 and all subsequent layout). My problem is when I delete a layout. I want to do the same thing in reverse order (ex. delete layout 003, renaming layout 004 to 003, etc.).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When I delete layout, i'm using LayoutToBeRemoved to do some processing when I delete a layout, but when I want to rename a layout I have an error saying "Layout already exist". It is ok, because at this event occurs the layout is not deleted. I tried the same thing with LayoutRemoved event, but I have the same problem. But at this stage the layout is supposed to be removed.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Do you have any idea?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;André&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 30 Aug 2012 13:21:15 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3601446#M65772</guid>
      <dc:creator>andre_adc-dao</dc:creator>
      <dc:date>2012-08-30T13:21:15Z</dc:date>
    </item>
    <item>
      <title>Re: Erasing Layouts</title>
      <link>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3602846#M65773</link>
      <description>&lt;P&gt;Hi Andre, I'm not exactly sure what you are trying to do. But it sounds as if AutoCAD is complaining that you are trying to rename a layout to a name that is already being used by another layout, which you wouldn't want to do. Perhaps if you post some&amp;nbsp;simple code that shows the problem&amp;nbsp;I'd get a better understanding and might be able to help.&lt;/P&gt;</description>
      <pubDate>Fri, 31 Aug 2012 12:08:21 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3602846#M65773</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2012-08-31T12:08:21Z</dc:date>
    </item>
    <item>
      <title>Re: Erasing Layouts</title>
      <link>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3602958#M65774</link>
      <description>&lt;P&gt;Hi ArtVegas,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I will try to better explain my question. I have a drawing with layout named SEQ001, SEQ002, SEQ003, SEQ004, ... I develop a palette with some buttons. On that palette I have a button to add a new layout. If the user add a layout number 3, I actually rename layout SEQ004 to SEQ005, SEQ003 to SEQ004 and insert a new layout named SEQ003. On the same palette I have another button to delete a layout. The current layout is delete and the subsequent layout are rename. Ex. suppressing SEQ003, SEQ004 is rename to SEQ003 and SEQ005 rename to SEQ004. Hera you will find the sub to rename sequences:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color="#0000FF"&gt;Private Sub RenameSequence(ByVal SequenceNo As String, Optional ByVal Decrement As Boolean = False)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim n As Integer = 0&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim i As Integer = 0&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim objSequence As PlanGeneration.RinsePath.Sequence = Nothing&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim strNewLayoutName As String = ""&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n = m_Sequences.SequenceList.Count ' &lt;FONT color="#FF0000"&gt;m_sequences is a member variable containing information about layout&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Decrement = False Then&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For i = n - 1 To 0 Step -1&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objSequence = m_Sequences.SequenceList(i)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strNewLayoutName = "SEQ" &amp;amp; String.Format("{0:d3}", (CInt(objSequence.SeqNo.Substring(3)) + 1))&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RenameLayout(objSequence.SeqNo, strNewLayoutName)&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '&lt;FONT color="#FF0000"&gt;I also rename some layers&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RenameLayer(objSequence.SeqNo &amp;amp; "-BORNE", strNewLayoutName &amp;amp; "-BORNE")&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RenameLayer(objSequence.SeqNo &amp;amp; "-ROUTE", strNewLayoutName &amp;amp; "-ROUTE")&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RenameLayer(objSequence.SeqNo &amp;amp; "-VANNE_OUVERTE", strNewLayoutName &amp;amp; "-VANNE_OUVERTE")&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RenameLayer(objSequence.SeqNo &amp;amp; "-VANNE_FERMEE", strNewLayoutName &amp;amp; "-VANNE_FERMEE")&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If objSequence.SeqNo.ToUpper = SequenceNo.ToUpper Then&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit For&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next i&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim j As Integer = GetSequenceOrder(SequenceNo)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For i = j To n - 1&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objSequence = m_Sequences.SequenceList(i)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strNewLayoutName = "SEQ" &amp;amp; String.Format("{0:d3}", (CInt(objSequence.SeqNo.Substring(3)) - 1))&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RenameLayout(objSequence.SeqNo, strNewLayoutName)&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;'&lt;FONT color="#FF0000"&gt;I also rename some layers&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RenameLayer(objSequence.SeqNo &amp;amp; "-BORNE", strNewLayoutName &amp;amp; "-BORNE")&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RenameLayer(objSequence.SeqNo &amp;amp; "-ROUTE", strNewLayoutName &amp;amp; "-ROUTE")&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RenameLayer(objSequence.SeqNo &amp;amp; "-VANNE_OUVERTE", strNewLayoutName &amp;amp; "-VANNE_OUVERTE")&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RenameLayer(objSequence.SeqNo &amp;amp; "-VANNE_FERMEE", strNewLayoutName &amp;amp; "-VANNE_FERMEE")&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objSequence.SeqNo = strNewLayoutName&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;'Now the function to rename layout&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Function RenameLayout(ByVal oldLayoutName As String, ByVal NewLayoutName As String) As Boolean&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim bReturnValue As Boolean = True&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim oLayoutIDToRename As ObjectId = Nothing&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim ed As Editor = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor()&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim Db As Database = ed.Document.Database()&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim acDoc As Document = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oLayoutIDToRename = GetLayoutByName(oldLayoutName)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Try&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Using doclock As DocumentLock = acDoc.LockDocument&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Using tm1 As Transaction = Db.TransactionManager.StartTransaction()&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim oLayoutToRename As Layout = tm1.GetObject(oLayoutIDToRename, OpenMode.ForWrite)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oLayoutToRename.LayoutName = NewLayoutName&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tm1.Commit()&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oLayoutToRename = Nothing&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Using&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Using&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Catch ex As Exception&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ed.WriteMessage("\nImpossible de renommer la présentation " &amp;amp; oldLayoutName &amp;amp; " à " &amp;amp; NewLayoutName &amp;amp; ": " &amp;amp; ex.Message)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bReturnValue = False&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Try&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return bReturnValue&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When I use the button all is working well. But if the user delete manually the layout I want to use an event and rename the sequence too.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;First I used this event:&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&amp;lt;CommandMethod("AddLayoutToBeRemoved")&amp;gt; _&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Sub AddLayoutToBeRemoved()&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddHandler LayoutManager.Current.LayoutToBeRemoved, _&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddressOf onLayoutToBeRemoved&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub onLayoutToBeRemoved(ByVal senderObj As Object, _&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ByVal docLayoutEvtArgs As Autodesk.AutoCAD.DatabaseServices.LayoutEventArgs)&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim strNextLayoutName As String = ""&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim bRenameLayout As Boolean = False&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If docLayoutEvtArgs.Name.ToUpper.StartsWith("SEQ") Then&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If GetLayoutList.Count &amp;gt; 1 Then&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'If m_CurrentSequencePosition &amp;lt; m_Sequences.SequenceList.Count - 1 Then&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; strNextLayoutName = m_Sequences.SequenceList(m_CurrentSequencePosition + 1).SeqNo&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; bRenameLayout = True&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'End If&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Delete layers associated&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If DeleteLayer(m_Sequences.SequenceList(m_CurrentSequencePosition).SeqNo &amp;amp; "-BORNE", True) = False Then bRenameLayout = False&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If DeleteLayer(m_Sequences.SequenceList(m_CurrentSequencePosition).SeqNo &amp;amp; "-ROUTE", True) = False Then bRenameLayout = False&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If DeleteLayer(m_Sequences.SequenceList(m_CurrentSequencePosition).SeqNo &amp;amp; "-VANNE_OUVERTE", True) = False Then bRenameLayout = False&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If DeleteLayer(m_Sequences.SequenceList(m_CurrentSequencePosition).SeqNo &amp;amp; "-VANNE_FERMEE", True) = False Then bRenameLayout = False&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_Sequences.SequenceList.RemoveAt(m_CurrentSequencePosition)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If m_CurrentSequencePosition &amp;gt; m_Sequences.SequenceList.Count - 1 Then&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_CurrentSequencePosition = m_Sequences.SequenceList.Count - 1&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If m_CurrentSequencePosition &amp;lt; 0 Then&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetCurrentLayoutTab("Model")&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetCurrentLayoutTab(m_Sequences.SequenceList(m_CurrentSequencePosition).SeqNo)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'If bRenameLayout = True Then&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; RenameSequence(strNextLayoutName, True)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; SetCurrentLayoutTab(m_Sequences.SequenceList(m_CurrentSequencePosition).SeqNo)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'End If&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;I realized this event occur before the layout is really deleted, so I understand why renaming my sequence doesn't work. I put some code in comments because it doesn't work. So I found this other event:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&amp;lt;CommandMethod("AddLayoutRemoved")&amp;gt; _&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Sub AddLayoutRemoved()&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddHandler LayoutManager.Current.LayoutRemoved, _&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddressOf onLayoutRemoved&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub onLayoutRemoved(ByVal senderObj As Object, _&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ByVal docLayoutEvtArgs As Autodesk.AutoCAD.DatabaseServices.LayoutEventArgs)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim strNextLayoutName As String = ""&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If docLayoutEvtArgs.Name.ToUpper.StartsWith("SEQ") Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If GetLayoutList.Count &amp;gt; 1 Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If m_CurrentSequencePosition &amp;lt; m_Sequences.SequenceList.Count - 1 Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor.Regen()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strNextLayoutName = m_Sequences.SequenceList(m_CurrentSequencePosition).SeqNo&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RenameSequence(strNextLayoutName, True)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetCurrentLayoutTab(m_Sequences.SequenceList(m_CurrentSequencePosition).SeqNo)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;FONT color="#000000"&gt;But I have the same error. When this event occurs the layout does't seem to be deleted too. So I don't know which event to use.&lt;BR /&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;FONT color="#000000"&gt;So actually, my user must absolutely use the delete layout button. If not, the sequence will be interrupt. If I don't find a solution, I will add another button to correct the sequence but it is not the way I preferred.&lt;BR /&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;FONT color="#000000"&gt;Thank you very much for your help.&lt;BR /&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;FONT color="#000000"&gt;Regards,&lt;BR /&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;FONT color="#000000"&gt;André&lt;BR /&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 31 Aug 2012 12:53:42 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3602958#M65774</guid>
      <dc:creator>andre_adc-dao</dc:creator>
      <dc:date>2012-08-31T12:53:42Z</dc:date>
    </item>
    <item>
      <title>Re: Erasing Layouts</title>
      <link>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3603478#M65775</link>
      <description>&lt;P&gt;Hi Andre,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I noticed that your RenameSequence() function's "for-loop"&amp;nbsp;seems to rename layouts from the largest number to the smallest (i.e. SEQ005 first, then SEQ004, then SEQ003, etc).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Lets say&amp;nbsp;your user deletes SEQ003. Then the first thing your code appears to do is try to rename SEQ005 to SEQ004, but you can't because SEQ004 already exists. Perhaps this is the problem?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What you should do is&amp;nbsp;get the number of the layout that is removed (say SEQ003), next rename SEQ004 to SEQ003, then rename SEQ005 to SEQ004, then SEQ006 to SEQ005, etc.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It's different when you add a layout. Say you're going to add a layout which will become SEQ003.&amp;nbsp;In that case you should start at the biggest number (as per your for-loop). Here you would&amp;nbsp;rename SEQ005 to SEQ006, then SEQ004 to SEQ005, then SEQ003 to SEQ004 and then add the new SEQ003.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You get what I mean?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Art&lt;/P&gt;</description>
      <pubDate>Fri, 31 Aug 2012 17:12:09 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3603478#M65775</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2012-08-31T17:12:09Z</dc:date>
    </item>
    <item>
      <title>Re: Erasing Layouts</title>
      <link>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3603502#M65776</link>
      <description>&lt;P&gt;Hi Art,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In my RenameSequence I have an argument Decrement and I have two loops depending of the state of this argument. When I add a layout, Decrement is false, so I begin with the higher sequence number and add 1 to the name. If I delete a layout, Decrement is set to true. I delete the layout and the next sequence is lower by 1 and so on. This routine is working well when I used your function to explicitly delete the layout. But when I start this function from the LayoutRemoved or LayoutToBeRemoved event, it doesn'work because, I don't know why, the layout is not already deleted so when I try to rename SEQ004 to SEQ003 (the one I deleted manually using AutoCAD command) SEQ003 already exist.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The problem is with the event. Maybe it is a bug in AutoCAD API.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;André&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 31 Aug 2012 17:29:41 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3603502#M65776</guid>
      <dc:creator>andre_adc-dao</dc:creator>
      <dc:date>2012-08-31T17:29:41Z</dc:date>
    </item>
    <item>
      <title>Re: Erasing Layouts</title>
      <link>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3603526#M65777</link>
      <description>&lt;P&gt;Sorry I didn't notice the decrement argument.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I created a simple test in C# for the LayoutRemoved event below. For simplicity this is based on layout names being numbers only, i.e. 001, 002, 003, 004, 005, etc.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is not "well-coded" as it&amp;nbsp;assumes that the order of the layouts in the layout-dictionary is sequential which may not always be the case, but this could easily be accounted for with a bit more work.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This worked for me when I tested it. So I don't think it's an AutoCAD bug. Could it be something else in&amp;nbsp;your program?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;// Command.
[CommandMethod("RegisterLayoutRemoved")]
static public void RegisterLayoutRemoved()
{
	// Register layout removed event.
	LayoutManager.Current.LayoutRemoved
		+= new LayoutEventHandler(Current_LayoutRemoved);
}

// Layout removed event handler.
static void Current_LayoutRemoved(object sender, LayoutEventArgs e)
{
	Document doc = Application.DocumentManager.MdiActiveDocument;
	Database db = doc.Database;
	Editor ed = doc.Editor;

	// Get removed layout number from layout name.
	int removedNum;
	if (!Int32.TryParse(e.Name, out removedNum))
	{
		throw new System.Exception("Could not obtain layout number...");
	}

	using (Transaction tr = db.TransactionManager.StartTransaction())
	{
		// Iterate layout dictionary.
		DBDictionary layoutDict = (DBDictionary)tr.GetObject(
			db.LayoutDictionaryId, OpenMode.ForRead, true);
		foreach (DBDictionaryEntry item in layoutDict)
		{
			// Layout (for read).
			Layout layout
				= (Layout)tr.GetObject(item.Value, OpenMode.ForRead);

			// Try get layout number.
			int i;
			if (Int32.TryParse(layout.LayoutName, out i))
			{
				// If layout number is greater than for layout removed.
				if (i &amp;gt; removedNum)
				{
					// Then decrement layout number.
					layout.UpgradeOpen();
					layout.LayoutName
						= String.Format("{0:D3}", (i - 1));
				}
			}
		}

		tr.Commit();
	}
}&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 31 Aug 2012 17:42:42 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3603526#M65777</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2012-08-31T17:42:42Z</dc:date>
    </item>
    <item>
      <title>Re: Erasing Layouts</title>
      <link>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3603536#M65778</link>
      <description>&lt;P&gt;Thank you very much Art,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I will try that and I will give you some feedback.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Have a good day,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;André&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 31 Aug 2012 17:48:34 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3603536#M65778</guid>
      <dc:creator>andre_adc-dao</dc:creator>
      <dc:date>2012-08-31T17:48:34Z</dc:date>
    </item>
    <item>
      <title>Re: Erasing Layouts</title>
      <link>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3603812#M65779</link>
      <description>&lt;P&gt;Below is a partial of a routine that I use in VBA to remane layouts.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You should first remane the layouts, so you don't have have a conflict about remaning layout to existing layouts.&lt;/P&gt;&lt;P&gt;I first added temp to the layout name.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Then I use the TabOrder property of the layout to get the order of the layouts.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now you can reanme the layout to a sequence of names based on the TabOrder of the layouts.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.theswamp.org/index.php?action=search2" target="_blank"&gt;http://www.theswamp.org/index.php?action=search2&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;**************** vba routine not vb.net *****************************&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For Each objLayout In objLayouts&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lngCnt = lngCnt + 1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strLayoutName = objLayout.Name&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If strLayoutName &amp;lt;&amp;gt; "Model" Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lngTabOrder = objLayouts(objLayout.Name).TabOrder&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lngTabOrder = lngTabOrder + (formRenumber.TxtBoxStartNumber.Value - 1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objLayout.Name = "tempLayout" &amp;amp; lngTabOrder&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DoEvents&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call ProgUpdate(lngCnt)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DoEvents&lt;/P&gt;&lt;P&gt;Next&lt;/P&gt;&lt;P&gt;Call ProgSetup(objLayouts.Count)&lt;/P&gt;&lt;P&gt;formProgRenumLay.Caption = " Re-Naming objLayouts "&lt;/P&gt;&lt;P&gt;lngCnt = 0&lt;BR /&gt;For Each objLayout In objLayouts&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lngCnt = lngCnt + 1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strLayoutName = objLayout.Name&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If strLayoutName &amp;lt;&amp;gt; "Model" Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objLayout.Name = formRenumber.txtBoxLayName &amp;amp; _&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CStr(Mid$(strLayoutName, 11, (Len(strLayoutName) - 10))) ' Rename and renumber objLayout&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DoEvents&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/P&gt;</description>
      <pubDate>Fri, 31 Aug 2012 20:39:24 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/3603812#M65779</guid>
      <dc:creator>fxcastil</dc:creator>
      <dc:date>2012-08-31T20:39:24Z</dc:date>
    </item>
    <item>
      <title>Re: Erasing Layouts</title>
      <link>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/5350215#M65780</link>
      <description>&lt;P&gt;There is a flaw with this code:&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3366ff;"&gt;DBDictionary&lt;/SPAN&gt; layoutDict = tr.GetObject(db.LayoutDictionaryId, &lt;SPAN style="color: #3366ff;"&gt;OpenMode&lt;/SPAN&gt;.ForRead) as &lt;SPAN style="color: #3366ff;"&gt;DBDictionary&lt;/SPAN&gt;;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #008000;"&gt;// Iterate dictionary entries.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;foreach&lt;/SPAN&gt; (&lt;SPAN style="color: #3366ff;"&gt;DBDictionaryEntry&lt;/SPAN&gt; de &lt;SPAN style="color: #0000ff;"&gt;in&lt;/SPAN&gt; layoutDict)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;string&lt;/SPAN&gt; layoutName = de.Key;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;if&lt;/SPAN&gt; (layoutName != &lt;SPAN style="color: #800000;"&gt;"Model"&lt;/SPAN&gt;)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #3366ff;"&gt;LayoutManager&lt;/SPAN&gt;.Current.DeleteLayout(layoutName);&amp;nbsp;&lt;SPAN style="color: #008000;"&gt;// Delete layout.&lt;/SPAN&gt;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;An item is being deleted from a list that is being interated. I fall into this trap over and over...&lt;/P&gt;&lt;P&gt;A list of names should be collected and iterated instead.&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #008000; font-family: Consolas; font-size: small;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff; font-family: Consolas; font-size: small;"&gt;&lt;SPAN style="color: #0000ff; font-family: Consolas; font-size: small;"&gt;&lt;SPAN style="color: #0000ff; font-family: Consolas; font-size: small;"&gt;string&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas; font-size: small;"&gt;&lt;SPAN style="font-family: Consolas; font-size: small;"&gt;[] layouts = GetLayoutNames();&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff; font-family: Consolas; font-size: small;"&gt;&lt;SPAN style="color: #0000ff; font-family: Consolas; font-size: small;"&gt;&lt;SPAN style="color: #0000ff; font-family: Consolas; font-size: small;"&gt;foreach&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas; font-size: small;"&gt;&lt;SPAN style="font-family: Consolas; font-size: small;"&gt; (&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-family: Consolas; font-size: small;"&gt;&lt;SPAN style="color: #0000ff; font-family: Consolas; font-size: small;"&gt;&lt;SPAN style="color: #0000ff; font-family: Consolas; font-size: small;"&gt;string&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas; font-size: small;"&gt;&lt;SPAN style="font-family: Consolas; font-size: small;"&gt; LayoutName &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-family: Consolas; font-size: small;"&gt;&lt;SPAN style="color: #0000ff; font-family: Consolas; font-size: small;"&gt;&lt;SPAN style="color: #0000ff; font-family: Consolas; font-size: small;"&gt;in&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas; font-size: small;"&gt;&lt;SPAN style="font-family: Consolas; font-size: small;"&gt; layouts)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff; font-family: Consolas; font-size: small;"&gt;&lt;SPAN style="color: #0000ff; font-family: Consolas; font-size: small;"&gt;&lt;SPAN style="color: #0000ff; font-family: Consolas; font-size: small;"&gt;if&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas; font-size: small;"&gt;&lt;SPAN style="font-family: Consolas; font-size: small;"&gt; (LayoutName.ToUpper() != &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #a31515; font-family: Consolas; font-size: small;"&gt;&lt;SPAN style="color: #a31515; font-family: Consolas; font-size: small;"&gt;&lt;SPAN style="color: #a31515; font-family: Consolas; font-size: small;"&gt;"MODEL"&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas; font-size: small;"&gt;&lt;SPAN style="font-family: Consolas; font-size: small;"&gt; || LayoutName.ToUpper() != pstrLayoutToKeep.ToUpper())&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #2b91af; font-family: Consolas; font-size: small;"&gt;&lt;SPAN style="color: #2b91af; font-family: Consolas; font-size: small;"&gt;&lt;SPAN style="color: #2b91af; font-family: Consolas; font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LayoutManager&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas; font-size: small;"&gt;&lt;SPAN style="font-family: Consolas; font-size: small;"&gt;.Current.DeleteLayout(LayoutName);&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I had been using the first code but results were unreliable, particularly when I attempt to rename Layout1 (which it thinks still exists).&lt;/P&gt;&lt;P&gt;Dale&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 21 Oct 2014 08:36:07 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/5350215#M65780</guid>
      <dc:creator>Dale.Bartlett</dc:creator>
      <dc:date>2014-10-21T08:36:07Z</dc:date>
    </item>
    <item>
      <title>Re: Erasing Layouts</title>
      <link>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/5801135#M65781</link>
      <description>&lt;P&gt;I had to add a tr.Commit(); for this to work.&lt;/P&gt;</description>
      <pubDate>Thu, 03 Sep 2015 07:30:05 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/5801135#M65781</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2015-09-03T07:30:05Z</dc:date>
    </item>
    <item>
      <title>Re: Erasing Layouts</title>
      <link>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/5801177#M65782</link>
      <description>&lt;P&gt;For the first solution, of course, being in a transaction.&lt;BR /&gt;But pay attension to his warning: " do not alter collections in a loop unless casted to a list.&lt;BR /&gt;&lt;BR /&gt;Delete layout's using the LayoutManager doesn't require a Commit. A Regen may be required to see the results.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 03 Sep 2015 08:35:01 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/5801177#M65782</guid>
      <dc:creator>SENL1362</dc:creator>
      <dc:date>2015-09-03T08:35:01Z</dc:date>
    </item>
    <item>
      <title>Re: Erasing Layouts</title>
      <link>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/5801180#M65783</link>
      <description>&lt;P&gt;Without the tr.Commit(); I do not see any results, layouts are not erased, with the tr.Commit();, they are.&lt;/P&gt;</description>
      <pubDate>Thu, 03 Sep 2015 08:36:59 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/erasing-layouts/m-p/5801180#M65783</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2015-09-03T08:36:59Z</dc:date>
    </item>
  </channel>
</rss>

