60067


IJCAD2016でvb.bet(.net api)を使用して開発を行っています。

モデル以外のレイアウトを全て削除する機能を実装しています。  
今回のレイアウト削除にあたり対象図面は開かずにReadDwgFileでDatabaseを読み込み、裏で削除する必要があります。

現在、コーディングがわからずとりあえずLayout をErase（）しています。

[code]

    Using icdTrans As Transaction = db.TransactionManager.StartTransaction
        Try
            Dim ldic As DBDictionary = IcadTrans_GetObject(icdTrans, db.LayoutDictionaryId(), OpenMode.ForWrite)
            For Each dbObj As DBDictionaryEntry In ldic
    
                'レイアウト取得
                Dim icdLayout As Layout = IcadTrans_GetObject(icdTrans, ldic.GetAt(dbObj.Key), OpenMode.ForWrite)
                Dim btr As BlockTableRecord = IcadTrans_GetObject(icdTrans, icdLayout.BlockTableRecordId, OpenMode.ForWrite)
    
                'モデル空間は除外
                If UCase(btr.Name) = UCase(BlockTableRecord.ModelSpace) Then Continue For
    
                'レイアウト削除
                icdLayout.Erase()
    
    
                'レイアウト1を新規作成（未実装）
    
    
            Next
            icdTrans.Commit()
    
        Catch ex As System.Exception
            IcadExeptionTrace(ex)
            Return -1
        End Try
    
    End Using
    
[/code]

この時にIJCAD上でレイアウトタブの切り替えはできなくなっておりますが、タブ自体が残ってしまいます。

[![画像の説明をここに入力](https://i.stack.imgur.com/7nZ0J.png)](https://i.stack.imgur.com/7nZ0J.png)

図面を開かずにモデル以外のレイアウトを削除（タブも残さない）する方法をご教授願います。

別途質問ですが、LayoutManagerはカレント図面のみを対象としているのでしょうか？  
もし、LayoutManagerのDeleteLayoutが使用可能であればそちらで対応したいと考えております。


CC BY-SA 4.0
2019-10-29T02:13:23.860
60061
2019-10-29T07:34:41.510
34508
question
.net vb.net ijcad
図面を開かずにレイアウトを削除する方法を教えて下さい。


レイアウトはブロックテーブルレコードと関連付いている為、レイアウトの操作を行う場合はLayoutManagerクラスを使用してください。  
また、ペーパー空間のレイアウトは必ず一つは必要なので、モデル以外のレイアウトを全て削除することはできません。


CC BY-SA 4.0
2019-10-29T07:34:41.510
60067
2019-10-29T07:34:41.510
60061
answer