ブロック参照を分解すると例外(eCannotExplodeEntity)発生
あるブロック参照を分解しようとすると例外(eCannotExplodeEntity)が発生します。
その当該ブロック参照のブロック定義のプロパティ(BlockTableRecordのExplodable)を確認しても分解可能状態(Explodable=True)でした。
例外が発生する原因について情報提供いただけると助かります。
以下はブロック分解のソースコードです。
Dim retIds As New ObjectIdCollection()
If blkRefId = ObjectId.Null Then Return retIds
'挿入図形を分解、削除する
Using trans As Transaction = blkRefId.Database.TransactionManager.StartTransaction()
Try
Dim blkRef As BlockReference = TryCast(trans.GetObject(blkRefId, OpenMode.ForWrite), BlockReference)
If blkRef IsNot Nothing Then
Dim mdlSpcId As ObjectId = SymbolUtilityServices.GetBlockModelSpaceId(blkRefId.Database)
Dim modelSpace As BlockTableRecord = trans.GetObject(mdlSpcId, OpenMode.ForWrite)
Dim entitySet As New DBObjectCollection()
blkRef.Explode(entitySet)'-->ここで例外発生
'分解後の要素を取得
For Each dbObj As DBObject In entitySet
Dim ent As Entity = dbObj
retIds.Add(modelSpace.AppendEntity(ent))
trans.AddNewlyCreatedDBObject(ent, True)
Next
End If
trans.Commit()
Catch ex As System.Exception
trans.Abort()
Return New ObjectIdCollection()
End Try
End Using
'ブロック参照は削除
IcadEntity_Delete(blkRefId)
Return retIds
開発環境はVisual Staudio VB.net、IJCAD2016です。