.NET
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic to the Top
- Bookmark
- Subscribe
- Printer Friendly Page
Deleting Wipeouts
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Is this correct?
namespace BCCDELWIPOUT
{
public class DraftingTools
{
[CommandMethod("BCC:WOUT")]
public static void BCCDELETEWIPOUT()
{
Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
Transaction tr = db.TransactionManager.StartTransaction();
using (tr)
{
BlockTable bt = tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;
foreach (ObjectId objId in bt)
{
BlockTableRecord btr = objId.GetObject(OpenMode.ForRead) as BlockTableRecord;
foreach (ObjectId btrObjId in btr)
{
Entity ent = btrObjId.GetObject(OpenMode.ForRead) as Entity;
if (ent is Wipeout)
{
ent.UpgradeOpen();
{
ent.Erase();
}
}
}
}
}
tr.Commit();
}
}
}
"Very funny, Scotty. Now beam down my clothes."
Solved! Go to Solution.
Re: Deleting Wipeouts
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
No,
Wipeout is nothing but closed lwpolyline
with number of verices more than 3 items,
with every bulged segments,
so you can check all these properties to make
sure if you select wipeout
C6309D9E0751D165D0934D0621DFF27919
Re: Deleting Wipeouts
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Thanks again buddy!
"Very funny, Scotty. Now beam down my clothes."
Re: Deleting Wipeouts
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Hallex wrote:
Wipeout is nothing but closed lwpolylinewith number of verices more than 3 items,
with every bulged segments,
so you can check all these properties to make
sure if you select wipeout
Oleg! Are you sure??? Wipeout is Wipeout:
Re: Deleting Wipeouts
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Thanks Alexander. Don't think this was always exposed to the API, correct? Might be why the suggestion. I'm using 2012 Civil 3D... think it will work...
I just don't know the right way to collect the Wipeouts... as you can see in my code... I'm doing something wrong but not sure what. One thing is I don't think I have to ent.UpgradeOpen, I think I can just ent.erase but I'm crashing so there must be something else wrong.
"Very funny, Scotty. Now beam down my clothes."
Re: Deleting Wipeouts
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
bcinnv wrote:
...Don't think this was always exposed to the API, correct?...
IMHO class Wipeout is exposed with AutoCAD .NET API since AutoCAD 2008.
bcinnv wrote:
I just don't know the right way to collect the Wipeouts... as you can see in my code... I'm doing something wrong but not sure what. One thing is I don't think I have to ent.UpgradeOpen, I think I can just ent.erase but I'm crashing so there must be something else wrong.
Try replace code:
using (tr)
{
//.......
}
tr.Commit();
with:
using (tr)
{
//.......
tr.Commit();
}
Re: Deleting Wipeouts
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
I knew that thanks
But why this way it's not working this way?
(ssget "_X" '(( 0 . "wipeout")))
C6309D9E0751D165D0934D0621DFF27919
Re: Deleting Wipeouts
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Thanks Alexander you were correct! The placement of the TR was the problem. Updated code below:
// delete wipeouts
namespace BCCDELWIPOUT
{
public class DraftingTools
{
[CommandMethod("BCC:WOUT")]
public static void BCCDELETEWIPOUT()
{
Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
Transaction tr = db.TransactionManager.StartTransaction();
using (tr)
{
BlockTable bt = tr.GetObject(db.BlockTableId, OpenMode.ForWrite) as BlockTable;
foreach (ObjectId objId in bt)
{
BlockTableRecord btr = objId.GetObject(OpenMode.ForWrite) as BlockTableRecord;
foreach (ObjectId btrObjId in btr)
{
Entity ent = btrObjId.GetObject(OpenMode.ForWrite) as Entity;
if (ent is Wipeout)
{
ent.Erase();
}
}
} tr.Commit();
}
}
}
}
"Very funny, Scotty. Now beam down my clothes."
Re: Deleting Wipeouts
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Thanks! That was the way I did it in Lisp. I have decided to convert 10 years of lisp routines I've collected / created into C#, somewhat to learn, but also because I like the better performance with .net. There is such little material about C# out there than there was .lsp it's considerably harder, but always enjoy a challenge ![]()
Thanks for the help Hallex! Always appreciated.
"Very funny, Scotty. Now beam down my clothes."




