Message 1 of 2
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
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
Solved! Go to Solution.