Тема: итерации по базе

пытаюсь определить количествао примитивов на чертеже. Делаю так:

void test()
 {
    long i;
    AcDbBlockTable *pBlockTable;
    acdbHostApplicationServices()->workingDatabase()
    ->getSymbolTable(pBlockTable, AcDb::kForRead);
    AcDbBlockTableIterator *pBLKItr;
    pBlockTable->newIterator(pBLKItr);
    i=0;
    while (!pBLKItr->done())
      {
      AcString pName;
      AcDbBlockTableRecord *pRecord;
      pBLKItr->getRecord(pRecord, AcDb::kForRead);
      pBlockTable->getAt(ACDB_MODEL_SPACE, pRecord, AcDb::kForRead);
      pRecord->getName(pName);
      pRecord->close();
      pBLKItr->step();
      i=i++;
      }
     pBlockTable->close();
     delete pBLKItr;
     acutPrintf(_T("количество примитивов в базе чертежа %i"),i);
 }

в пустом чертеже выдает 3 блока , далее провожу линию, выполняю команду, опять 3 блока. 4 блока выдается только тогда, когда эту линию делаю отдельным блоком. Получается что не все линии отрисовываемые пользователем вносятса в AcDbBlockTable? а где они тогда хранятся?
с уважением

Re: итерации по базе

Написана полная ерунда. Ты проходишься по таблице блоков и подсчитываешь блоки. А должен пройтись по MODEL_SPACE и подсчитать количество примитивов в нем.

Re: итерации по базе

спс щас буду разбираться тогда :)). А я почему то думал что MODEL_SPACE это и есть таблица блоков... :)

Re: итерации по базе

> giena
MODEL_SPACE - это пространство модели - специальный блок.