Hi All,
I need to rename some blocks in my drawing with a number extension.
This is not a problem because, my code below does it good.
But when I purge my drawing, all the renamed blocks are disappear.
I don't know if I use the "DeepClone" method properly.
Could someone help me to fix this issue.
All suggestions are welcome.
Thank you in advance.
My code :
<CommandMethod("test")>
Public Sub test()
Dim zDoc As Document = Application.DocumentManager.MdiActiveDocument
Dim zDb As Database = zDoc.Database
Dim zEd As Editor = zDoc.Editor
Using mTrans As Transaction = zDb.TransactionManager.StartTransaction()
Try
Dim mBlkTbl As BlockTable = mTrans.GetObject(zDb.BlockTableId, OpenMode.ForWrite)
Dim zBlkTblRec As BlockTableRecord = mTrans.GetObject(mBlkTbl("test"), OpenMode.ForWrite)
Dim i As Integer
For Each zBlkTableRecId As ObjectId In zBlkTblRec.GetBlockReferenceIds(True, False)
Dim BlkRef As BlockReference = mTrans.GetObject(zBlkTableRecId, OpenMode.ForWrite)
Dim zMap As New IdMapping
Dim newzBlkTblRec As BlockTableRecord = zBlkTblRec.DeepClone(mBlkTbl, zMap, True)
newzBlkTblRec.Name = zBlkTblRec.Name & i
BlkRef.BlockTableRecord = mBlkTbl.Add(newzBlkTblRec)
mTrans.AddNewlyCreatedDBObject(newzBlkTblRec, True)
i = i + 1
Next
Catch ex As SystemException
MsgBox(ex.Message.ToString, MsgBoxStyle.Critical, "Rename block.")
End Try
mTrans.Commit()
End Using
End Sub