ObjectARX
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Adding layer filters to dwg.

3 REPLIES 3
Reply
Message 1 of 4
kevin.putnam
402 Views, 3 Replies

Adding layer filters to dwg.

How can I create layer filters programmatically using ObjectARX?

3 REPLIES 3
Message 2 of 4

More then ten years ago I wrote next test code:

 

static void LayerFilterAdd(void)
{
  Acad::ErrorStatus es;
  AcLyLayerFilterManager *pLFMan = aclyGetLayerFilterManager(acdbCurDwg());
  if (!pLFMan) return;
  AcLyLayerFilter *pRoot = NULL, *pCurrent = NULL;
  if ((es = pLFMan->getFilters(pRoot,pCurrent)) != Acad::eOk)  {
    acutPrintf(_T("\npLFMan->getFilters(pRoot,pCurrent)=%s"),acadErrorStatusText(es));
    return;
  }
  AcLyLayerGroup *pNew = new AcLyLayerGroup();
  pNew->setName(_T("My Filters Group"));
  // Adding 5 layers
  {
      AcDbLayerTablePointer pLT(acdbCurDwg()->layerTableId(),AcDb::kForWrite);
      for (int i=0; i < 5; i++) {
        AcDbLayerTableRecord *pLTR = new AcDbLayerTableRecord();
        ACHAR layerName[512]; acutSPrintf(layerName,_T("New Layer %d"),i);
        pLTR->setName(layerName);
        AcDbObjectId eid;
        if (pLT->add(eid,pLTR) != Acad::eOk) {
          pLT->getAt(layerName,eid);
        }
        if (!eid.isNull()) {
          pLTR->close();
          pNew->addLayerId(eid);
        } else {
          delete pLTR;
        }
      }
  }
  pRoot->addNested(pNew);
  if ((es = pLFMan->setFilters(pRoot,pNew)) != Acad::eOk)  {
    acutPrintf(_T("\npLFMan->setFilters(pRoot,pNew)=%s"),acadErrorStatusText(es));
    return;
  }
}

Maybe it will be useful for you.

Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"


Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Expert Elite Member

Message 3 of 4

Also this blog can be useful:

Creating and accessing layer filter information

Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"


Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Expert Elite Member

Message 4 of 4

Very good!

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report

”Boost