Private Function ReplaceBlock(objectId As ObjectId) As ObjectId
Dim Tx As Transaction = Active.Database.TransactionManager.StartTransaction()
Dim blkDb As Database = New Database(False, True)
Try
Dim tmpblkref As BlockReference = Tx.GetObject(objectId, OpenMode.ForRead)
blkDb.ReadDwgFile("C:\VAULT WORKING FOLDER\Designs\Job\DRAWING FRAMES\" & tmpblkref.Name & ".dwg", System.IO.FileShare.Read, True, "")
Dim blockTable As BlockTable = Tx.GetObject(Active.Database.BlockTableId, OpenMode.ForRead, False, True)
Dim btrId As ObjectId = Active.Database.Insert(tmpblkref.Name, blkDb, True)
If btrId <> objectId.Null Then
Dim btr As BlockTableRecord = Tx.GetObject(btrId, OpenMode.ForRead, False, True)
Dim brefIds As ObjectIdCollection = btr.GetBlockReferenceIds(False, True)
For Each id As ObjectId In brefIds
Dim bref As BlockReference =
Tx.GetObject(id, OpenMode.ForWrite, False, True)
bref.RecordGraphicsModified(True)
Next
End If
Catch ex As Exception
Tx.Commit()
Tx.Dispose()
blkDb.Dispose()
End Try
End Function