Getting items from collections |
Top Previous Next |
You often want to get hold of items in various collections within Inventor objects. You can often use get_Item to do this.
CComPtr<PlanarSketch> pSketch = NULL; hRes = piPartCompDef->Sketches->get_Item(CComVariant(_T("BaseCircles")), &pSketch);
The above code looks inside the list of sketches to find the one called "BaseCircles".
Sometimes you can simply pass an index:
CComPtr<DrawingView> pThisView ; hRes = pViews->get_Item(1,&pThisView) ;
Another way of getting an item from a collection uses get_Item with an cast index:
for (int j = 1 ; j <= ikNumConstraints ; j++) { CComPtr<AssemblyConstraint> pConstraint; pConstraintList->get_Item(CComVariant(j),&pConstraint) ; TRACE ("Got constraint %d\n"),j); }
In the example above the index is passed as a CComVariant, CComVariant(j).
Here are some other ways of using get_Item:
get_Item(COleVariant(CGID)...
get_Item(CComVariant(j),... // i is an integer
get_Item(_variant_t(3L, VT_I4),... // 3 as a VT_I4
When using integer indices they always start from 1 (not 0). |
Text, images and diagrams © 2021 Owen F. Ransen. All rights reserved. (But copy the source code as much as you want!)