Hi
I want to create a program witch delete blocks (Block defitions and block refrence) in multiple drawings.
Here is my code:
Code:
Public Class Form1
Function GetTopLevelBlocks(ByVal DatabaseIn As Database) As List(Of String)
Dim myList As New List(Of String)
Using myTrans As Transaction = DatabaseIn.TransactionManager.StartTransaction
Dim myBT As BlockTable = DatabaseIn.BlockTableId.GetObject(OpenMode.ForRead)
For Each myBTRid As ObjectId In myBT
Dim myBTR As BlockTableRecord = myBTRid.GetObject(OpenMode.ForRead)
If myBTR.IsAnonymous = False And myBTR.IsLayout = False And _
myBTR.IsFromExternalReference = False And _
myBTR.IsDependent = False Then
myList.Add(myBTR.Name)
End If
Next
End Using
Return myList
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim myOFD As New OpenFileDialog("Select DWG", "", "dwg", "Select DWG", _
OpenFileDialog.OpenFileDialogFlags.AllowMultiple)
If myOFD.ShowDialog = System.Windows.Forms.DialogResult.OK Then
For Each myFileName As String In myOFD.GetFilenames
'Debug.Print("***EXPORT FOR " & myFileName)
Dim myDB As New Database(False, True)
myDB.ReadDwgFile(myFileName, FileOpenMode.OpenForReadAndAllShare, True, "")
Using mytrans As Transaction = myDB.TransactionManager.StartTransaction
For Each myBlockName As String In GetTopLevelBlocks(myDB)
Debug.WriteLine(myBlockName)
Lblokova.Items.Add(myBlockName)
Next
End Using
myDB.Dispose()
Next
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
For i As Integer = 0 To Lblokova.SelectedItems.Count - 1
Next
End Sub
End Class
How I delete Block table selected in Listbox Lblokova, and all its references???
Please help !!!!