How can I create layer filters programmatically using ObjectARX?
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
Also this blog can be useful:
Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | 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