如何初始化ODA IFC SDK以使用SDAI API

  1. FAQ
  2. »
  3. IFC


主要初始化流程与使用IFC SDK C++ API相同:


// Common ODA IFC SDK initialization part
OdStaticRxObject<MyServices> svcs;
odrxInitialize(&svcs);
odIfcInitialize(false /* No CDA */, false /* No geometry calculation needed */);

// SDAI calls can be performed just after common initialization procedure
SdaiSession session = sdaiOpenSession();
SdaiRep repo = _sdaiCreateRepositoryFromFile(session, "c:\\file.ifcXML", "");
SdaiRep repoOpened = sdaiOpenRepositoryBN(session, "c:\\file.ifcXML");
SdaiModel modelRO = sdaiAccessModelBN(repoOpened, "default", sdaiRO);
SdaiSet cartesianPoints = sdaiGetEntityExtentBN(modelRO, "IfcCartesianPoint");
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 part
odIfcUninitialize();
odrxUninitialize();

可参考使用SDAI调用的exSDAISAS示例,该示例展示了如何创建使用SDAI的模块。