Sorry, I was mistaken.
The issue is not fixed in R17. Perhaps they don't see it
as an issue, and if that's the case, I strongly disagree.
The change that was made was to the iterator, which
will skip erased records. You use the iterator when you
use foreach() on the symbol table.
It looks like they didn't fix it, but rather screwed it up
even more.
This kind of API design leaves me with serious questions
about Autodesk's sincerity with regards publicly consumable
APIs, and seems to be another aspect of the "looks good
on paper" mentality.
--
http://www.caddzone.com
AcadXTabs: MDI Document Tabs for AutoCAD 2004/2005/2006/2007
http://www.acadxtabs.com
"perry"
wrote in message news:5173604@discussion.autodesk.com...
Tony Tanzillo wrote:
> This is a result of a bug in the API, where the default indexer
> for the SymbolTable class (the base class of the BlockTable),
> returns erased entries.
>
> The only way around it in 2006, is to iterate the entire
> table manually, open each entry that's not erased, and
> then at the Name property.
>
> This was addressed in 2007, BTW.
I tried the code in 2007 and am still getting erased records.
not sure yet if this function is returning erased records....
Btr = (BlockTableRecord)trans.GetObject(bt["MYNEWBLOCKDEF"], OpenMode.ForRead, false);
but I know this one is
if (bt.Has("MYNEWBLOCKDEF"))
and my code is hitting that first. This is a major hassle that didnt happen with Arx.
If I delete a block def, then recreate it, is there some way to tell the database to
update flags concerning erased records?
Has anyone made custom wrappers for the (pBlkTable->has()) pBlkTable->getAt() arx
functions?