Here is an example of C++ SDAI API usage that shows how to obtain collection of entities with "cartesian_point" type and iterate through them:
// Common ODA IFC SDK initialization partOdStaticRxObject<MyServices> svcs;odrxInitialize(&svcs);odStepInitialize(false /* No CDA */, false /* No geometry calculation needed */);// SDAI calls can be performed just after common initialization procedureSdaiSession session = sdaiOpenSession();// Preload schema which is used within c:\\file.stepSdaiString schemaFileName = "c:\\AP214E3_2010.exp";sdaiGetSchema(schemaFileName);SdaiRep repo = _sdaiCreateRepositoryFromFile(session, "c:\\file.step", "");SdaiRep repoOpened = sdaiOpenRepositoryBN(session, "c:\\file.step ");SdaiModel modelRO = sdaiAccessModelBN(repoOpened, "default", sdaiRO);SdaiSet cartesianPoints = sdaiGetEntityExtentBN(modelRO, "cartesian_point");SdaiIterator it = sdaiCreateIterator(cartesianPoints);for (sdaiBeginning(it); sdaiNext(it);){ SdaiAppInstance inst = nullptr; sdaiGetAggrByIterator(it, sdaiINSTANCE, &inst); ...}sdaiDeleteIterator(it);sdaiCloseSession(session);// Common ODA IFC SDK uninitialization partodStepUninitialize();odrxUninitialize();
exSDAISAS example which uses SDAI calls may be investigated additionally to get information of how to create modules which use SDAI.