:(
Создание custom complex entity - занятие не для слабонервных.... ( я уже близок к истерике )
Захотел я значит сделать custom complex entity - типа entity - прицепить к ней массив других entities и все от главной энтити - делигировать subentities-ам...
Значит мля выясняю такую весч -
- во первых AcDbEntity можно привентить только к AcDbBlockTableRecord - типа присобачить через механизм ownership к любому другому объекту - это дохлый номер. (Выясняю что polyline, reference, mesh etc - это комплексные entity - НО!!! AcDbAttribute AcDbPolylyneVertex2d и etc - это унаследованные от AcDbObject-а классы...)
- во вторых, можно сделать новый AcDbBlockTableRecord - приаттачиить туда список subentities и AcDbBlockTableRecord - через AcDnHardOwnershipId привентить к создаваемой complex entity. Но тогда начинаются другие проблемы - типа если в вспомогательный блок вставить блокреференс на другой блок их SymbolTabla - то по графу ownership-инга - до одних и тех же объектов можно дойти двумя путями - и акад нчинаят настойчиво предупреждать что куча объектов имеют многих владельцев - типа это не хорошо...
Пока нашел только такой вариант - аттачить subentities к тому блоку в котором есть их custom complex entity и их делать инвизибл. Когда отрисовывается custom complex entity - ставить setvisible, draw, setinvisible.
- В третьих Куча гемора с draggingom и grippengom custom complex entity - т.к. осторожно приходится отслеживать чтобы временная копия не модифицировала subentities - а брала их копии и уже над ними выполняла все безобразие.
- В четвертых - AcEdJig для комплексных entity не подходит. В хелпе написано - мол не юзайте... - Тоже нашел решение как справиться в данном конкретном случае...
Еще предстоит разобраться со всекими методами типа GetGsMarkerSubentityPath и etc...
Короче еще раз осознал что модель ObjectARX выстроена совсем не лучшим из возможных способов.