AutoCAD Map 3D Developer
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic to the Top
- Bookmark
- Subscribe
- Printer Friendly Page
vb.net: erase all queried objects
Options
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
463 Views, 3 Replies
11-18-2009 05:56 PM
Hi All, can you help me figure out why I cant' get the enties for WRITE mode with this code. It crashes if I try to open the entity for write?
Dim doc As Document = Autodesk.AutoCAD.ApplicationServices.Application.D ocumentManager.MdiActiveDocument
Dim db As Database = doc.Database
Dim ed As Editor = doc.Editor
Dim psr As PromptSelectionResult = ed.SelectAll()
Dim tr As Transaction = db.TransactionManager.StartTransaction()
Using tr
For Each id As ObjectId In psr.Value.GetObjectIds()
Dim ent As Entity = DirectCast(tr.GetObject(id, OpenMode.ForWrite), Entity)
ent.UpgradeOpen()
ent.Erase()
ent.Dispose()
Next
tr.Commit()
End Using
Dim doc As Document = Autodesk.AutoCAD.ApplicationServices.Application.D
Dim db As Database = doc.Database
Dim ed As Editor = doc.Editor
Dim psr As PromptSelectionResult = ed.SelectAll()
Dim tr As Transaction = db.TransactionManager.StartTransaction()
Using tr
For Each id As ObjectId In psr.Value.GetObjectIds()
Dim ent As Entity = DirectCast(tr.GetObject(id, OpenMode.ForWrite), Entity)
ent.UpgradeOpen()
ent.Erase()
ent.Dispose()
Next
tr.Commit()
End Using
Re: vb.net: erase all queried objects
Options
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
12-14-2009 07:02 PM in reply to:
gluckett
so the issue was the prompt ("Save Back to Source Drawing")... just turn it off.
dim mapApi as MapApplication = HostMapApplicationServices.Application
dim proj as ProjectModel = mapApi.ActiveProject
proj.Options.MarkObjectsForEditingWithoutPrompting = true
dim mapApi as MapApplication = HostMapApplicationServices.Application
dim proj as ProjectModel = mapApi.ActiveProject
proj.Options.MarkObjectsForEditingWithoutPrompting = true
Re: vb.net: erase all queried objects
Options
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
04-23-2012 10:06 AM in reply to:
gluckett
This works - thank you. But, it is far slower than close without saving changes, especially if there are thousands of objects.
In 64 bit MAP 3D 2011
I am trying to figure out how to code "closeandiscard" but cannot get past the "drawing busy" error. I have already cloned the queried objects to the dwg file I want to save and detached the drawing set. Now I want the user to be left with a blank "drawing1".
From my reading it looks as if I need to give the active document a name before I can discard it? It's confusing.
Re: vb.net: erase all queried objects
Options
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
04-23-2012 12:25 PM in reply to:
fieldguy
Commandflags.session was the answer. This leaves the user with a blank Drawing2 (or higher).
<CommandMethod("q4", CommandFlags.Session)> _
Sub q_4()
Dim templatepath As String = "map2diso.dwt"
Dim acdocmgr As acapp.DocumentCollection = acapp.Application.DocumentManager
Dim acdoc As acapp.Document = acdocmgr.MdiActiveDocument
'query
'save
'detach
acdoc.CloseAndDiscard()
acdoc = acdocmgr.Add(templatepath)
acdocmgr.MdiActiveDocument = acdoc
End Sub
