Delete ObjectData Record from Palette

Delete ObjectData Record from Palette

Sgear
Advocate Advocate
507 Views
1 Reply
Message 1 of 2

Delete ObjectData Record from Palette

Sgear
Advocate
Advocate

Hi

 

I am try to Delete Objectdata record from Palette ToolStrip Button but I get error and Autocad crash

 

Can anyone help me with this Please, Thanks

 

Sgear

 

 

 

 

Get Object Handle from Listview
          
        HandletoObjectID(Listv.SelectedItems.Item(0).SubItems(0).Text)
		
	
	
	    Public Function HandletoObjectID(ByVal Hndl As String) As ObjectId

        Dim ed As Editor = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor
        Dim trans As Transaction = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Database.TransactionManager.StartTransaction
        Dim db As Database = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Database

        Try

            Dim strHand As [String] = Hndl.ToString()
            Dim ln As Long = Convert.ToInt64(strHand, 16)
            Dim hand As New Handle(ln)
            Dim id As ObjectId = db.GetObjectId(False, hand, 0)

              Delete_record(id)

        Catch ex As System.Exception
		
            Return Nothing
        End Try
    End Function
	
    Public Sub Delete_record(stid As ObjectId)

        Dim doc As Document = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument
        Dim db As Database = doc.Database
        Dim ed As Editor = doc.Editor

     
        Dim tr As Transaction = db.TransactionManager.StartTransaction()

        Using doclock As DocumentLock = doc.LockDocument
            Using tr

                Try

                    Dim odTables As Autodesk.Gis.Map.ObjectData.Tables
                    odTables = HostMapApplicationServices.Application.ActiveProject.ODTables

                    Dim dbObj = tr.GetObject(stid, Autodesk.AutoCAD.DatabaseServices.OpenMode.ForWrite)

                    Dim myTable As Autodesk.Gis.Map.ObjectData.Table = odTables("Table_name")

                    Using recs As Records = myTable.GetObjectTableRecords(0, dbObj, Constants.OpenMode.OpenForWrite, True)
                        Dim ie As IEnumerator = recs.GetEnumerator()
                        Do While ie.MoveNext()
                            recs.RemoveRecord()
                        Loop
                    End Using
                    tr.Commit()

                Catch ex As System.Exception
                    ed.WriteMessage(ex.ToString & vbCr)
                    MsgBox(ex.ToString)
                End Try

            End Using
        End Using

    End Sub
	
	

 

0 Likes
Accepted solutions (1)
508 Views
1 Reply
Reply (1)
Message 2 of 2

Sgear
Advocate
Advocate
Accepted solution

 

 

Finish to fix this

 

this URL help we with this  

http://forums.autodesk.com/t5/net/wblock-crashing-in-net/td-p/3704648

 

 

       Dim ed As Editor = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor
        Dim acDoc As Document = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument
        Dim db As Database = acDoc.Database
        Dim acTransMgr As Autodesk.AutoCAD.DatabaseServices.TransactionManager
        acTransMgr = db.TransactionManager

 

 

0 Likes