# How to initialize ODA STEP SDK for using SDAI API ?

 1. [FAQ](/faq)
2. »
3. [STEP](/faq/step)

### The main initialization procedure is the same as for STEP SDK C++ API usage:

```


 
```

```

<span style="background:white"><span style="font-size:10pt"><span style="background:white"><span style="font-family:"Courier New""><code style="font-family:"Courier New""><span lang="EN-US" style="font-family:Consolas"><span style="color:#212529">// Common ODA IFC SDK initialization part</span></span></code></span></span></span></span>
```

```

<span style="background:white"><span style="font-size:10pt"><span style="background:white"><span style="font-family:"Courier New""><code style="font-family:"Courier New""><span lang="EN-US" style="font-family:Consolas"><span style="color:#212529">OdStaticRxObject<MyServices> svcs;</span></span></code></span></span></span></span>
```

```

<span style="background:white"><span style="font-size:10pt"><span style="background:white"><span style="font-family:"Courier New""><code style="font-family:"Courier New""><span lang="EN-US" style="font-family:Consolas"><span style="color:#212529">odrxInitialize(&svcs);</span></span></code></span></span></span></span>
```

```

<span style="background:white"><span style="font-size:10pt"><span style="background:white"><span style="font-family:"Courier New""><code style="font-family:"Courier New""><span lang="EN-US" style="font-family:Consolas"><span style="color:#212529">odStepInitialize(false /* No CDA */, false /* No geometry calculation needed */);</span></span></code></span></span></span></span>
```

```


 
```

```

<span style="background:white"><span style="font-size:10pt"><span style="background:white"><span style="font-family:"Courier New""><code style="font-family:"Courier New""><span lang="EN-US" style="font-family:Consolas"><span style="color:#212529">// SDAI calls can be performed just after common initialization procedure</span></span></code></span></span></span></span>
```

```

<span style="background:white"><span style="font-size:10pt"><span style="background:white"><span style="font-family:"Courier New""><code style="font-family:"Courier New""><span lang="EN-US" style="font-family:Consolas"><span style="color:#212529">SdaiSession session = sdaiOpenSession();</span></span></code></span></span></span></span>
```

```


 
```

```

<span style="background:white"><span style="font-size:10pt"><span style="background:white"><span style="font-family:"Courier New""><code style="font-family:"Courier New""><span lang="EN-US" style="font-family:Consolas"><span style="color:#212529">// Preload schema which is used within c:\\file.step</span></span></code></span></span></span></span>
```

```

<span style="background:white"><span style="font-size:10pt"><span style="background:white"><span style="font-family:"Courier New""><code style="font-family:"Courier New""><span lang="EN-US" style="font-family:Consolas"><span style="color:#212529">SdaiString schemaFileName = "c:\\AP214E3_2010.exp";</span></span></code></span></span></span></span>
```

```

<span style="background:white"><span style="font-size:10pt"><span style="background:white"><span style="font-family:"Courier New""><code style="font-family:"Courier New""><span lang="EN-US" style="font-family:Consolas"><span style="color:#212529">sdaiGetSchema(schemaFileName);</span></span></code></span></span></span></span>
```

```


 
```

```

<span style="background:white"><span style="font-size:10pt"><span style="background:white"><span style="font-family:"Courier New""><code style="font-family:"Courier New""><span lang="EN-US" style="font-family:Consolas"><span style="color:#212529">SdaiRep repo = _sdaiCreateRepositoryFromFile(session, "c:\\file.step", "");</span></span></code></span></span></span></span>
```

```

<span style="background:white"><span style="font-size:10pt"><span style="background:white"><span style="font-family:"Courier New""><code style="font-family:"Courier New""><span lang="EN-US" style="font-family:Consolas"><span style="color:#212529">SdaiRep repoOpened = sdaiOpenRepositoryBN(session, "c:\\file.step ");</span></span></code></span></span></span></span>
```

```

<span style="background:white"><span style="font-size:10pt"><span style="background:white"><span style="font-family:"Courier New""><code style="font-family:"Courier New""><span lang="EN-US" style="font-family:Consolas"><span style="color:#212529">SdaiModel modelRO = sdaiAccessModelBN(repoOpened, "default", sdaiRO);</span></span></code></span></span></span></span>
```

```

<span style="background:white"><span style="font-size:10pt"><span style="background:white"><span style="font-family:"Courier New""><code style="font-family:"Courier New""><span lang="EN-US" style="font-family:Consolas"><span style="color:#212529">SdaiSet cartesianPoints = sdaiGetEntityExtentBN(modelRO, "cartesian_point");</span></span></code></span></span></span></span>
```

```

<span style="background:white"><span style="font-size:10pt"><span style="background:white"><span style="font-family:"Courier New""><code style="font-family:"Courier New""><span lang="EN-US" style="font-family:Consolas"><span style="color:#212529">SdaiIterator it = sdaiCreateIterator(cartesianPoints);</span></span></code></span></span></span></span>
```

```

<span style="background:white"><span style="font-size:10pt"><span style="background:white"><span style="font-family:"Courier New""><code style="font-family:"Courier New""><span lang="EN-US" style="font-family:Consolas"><span style="color:#212529">for (sdaiBeginning(it); sdaiNext(it);)</span></span></code></span></span></span></span>
```

```

<span style="background:white"><span style="font-size:10pt"><span style="background:white"><span style="font-family:"Courier New""><code style="font-family:"Courier New""><span lang="EN-US" style="font-family:Consolas"><span style="color:#212529">{</span></span></code></span></span></span></span>
```

```

<span style="background:white"><span style="font-size:10pt"><span style="background:white"><span style="font-family:"Courier New""><code style="font-family:"Courier New""><span lang="EN-US" style="font-family:Consolas"><span style="color:#212529">  SdaiAppInstance inst = nullptr;</span></span></code></span></span></span></span>
```

```

<span style="background:white"><span style="font-size:10pt"><span style="background:white"><span style="font-family:"Courier New""><code style="font-family:"Courier New""><span lang="EN-US" style="font-family:Consolas"><span style="color:#212529">  sdaiGetAggrByIterator(it, sdaiINSTANCE, &inst);</span></span></code></span></span></span></span>
```

```

<span style="background:white"><span style="font-size:10pt"><span style="background:white"><span style="font-family:"Courier New""><code style="font-family:"Courier New""><span lang="EN-US" style="font-family:Consolas"><span style="color:#212529">  ...</span></span></code></span></span></span></span>
```

```

<span style="background:white"><span style="font-size:10pt"><span style="background:white"><span style="font-family:"Courier New""><code style="font-family:"Courier New""><span lang="EN-US" style="font-family:Consolas"><span style="color:#212529">}</span></span></code></span></span></span></span>
```

```

<span style="background:white"><span style="font-size:10pt"><span style="background:white"><span style="font-family:"Courier New""><code style="font-family:"Courier New""><span lang="EN-US" style="font-family:Consolas"><span style="color:#212529">sdaiDeleteIterator(it);</span></span></code></span></span></span></span>
```

```

<span style="background:white"><span style="font-size:10pt"><span style="background:white"><span style="font-family:"Courier New""><code style="font-family:"Courier New""><span lang="EN-US" style="font-family:Consolas"><span style="color:#212529">sdaiCloseSession(session);</span></span></code></span></span></span></span>
```

```


 
```

```

<span style="background:white"><span style="font-size:10pt"><span style="background:white"><span style="font-family:"Courier New""><code style="font-family:"Courier New""><span lang="EN-US" style="font-family:Consolas"><span style="color:#212529">// Common ODA IFC SDK uninitialization part</span></span></code></span></span></span></span>
```

```

<span style="background:white"><span style="font-size:10pt"><span style="background:white"><span style="font-family:"Courier New""><code style="font-family:"Courier New""><span lang="EN-US" style="font-family:Consolas"><span style="color:#212529">odStepUninitialize();</span></span></code></span></span></span></span>
```

```

<span style="background:white"><span style="font-size:10pt"><span style="background:white"><span style="font-family:"Courier New""><code style="font-family:"Courier New""><span lang="EN-US" style="font-family:Consolas"><span style="color:#212529">odrxUninitialize();</span></span></code></span></span></span></span>
```

exSDAISAS example which uses SDAI calls may be investigated additionally to get information of how to create modules which use SDAI.
