Здравствуйте!
Это можно сделать, используя CAA RADE.
В документации в разделе "Drafting" есть пример "Editing Generated Geometry in Generative Views" (модуль CAADraftingInterfaces.edu\CAADrwGeomAccess.m).
В этом примере в чертеже осуществляется доступ к генерированной геометрии вида сечения и изменяется её цвет.
Возможно, в Вашем случае можно по циклу пройтись по видам, и получить список объектов генерированной геометрии.
Каждый этот объект поддерживает интерфейс CATIDftGenGeom (в примере это CATIDftGenGeom * piGenGeom).
Из него можно получить Product следующим образом:
- Код: Выделить всё
#include "CATIProduct.h"
...
CATIDftGenGeom *piGenGeom = NULL;
// ... получение списка генерированной геометрии в примере, каждый объект - piGenGeom
// получение Product из piGenGeom:
CATIProduct *prod = NULL;
IUnknown *unc = NULL;
if (SUCCEEDED(piGenGeom->GetProduct(IID_CATIProduct, &unc)) && (unc != NULL))
{
if (SUCCEEDED(unc->QueryInterface(IID_CATIProduct, (void**) &prod)) && (prod != NULL))
{
// получение PartNumber
cout << "PartNumber: " << prod->GetPartNumber() << endl;
// ... работа с Product
}
}