図面を開かずにレイアウトを削除する方法を教えて下さい。
IJCAD2016でvb.bet(.net api)を使用して開発を行っています。
モデル以外のレイアウトを全て削除する機能を実装しています。
今回のレイアウト削除にあたり対象図面は開かずにReadDwgFileでDatabaseを読み込み、裏で削除する必要があります。
現在、コーディングがわからずとりあえずLayout をErase()しています。
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
この時にIJCAD上でレイアウトタブの切り替えはできなくなっておりますが、タブ自体が残ってしまいます。
図面を開かずにモデル以外のレイアウトを削除(タブも残さない)する方法をご教授願います。
別途質問ですが、LayoutManagerはカレント図面のみを対象としているのでしょうか?
もし、LayoutManagerのDeleteLayoutが使用可能であればそちらで対応したいと考えております。