---
description: >-
  L’API de ligne de commande Simplebim® peut être utilisée pour importer IFC,
  appliquer un modèle et exporter IFC.
---

# Simplebim Commandes API - Méthode 1

L’API de ligne de commande Simplebim® peut être utilisée pour importer IFC, appliquer un modèle et exporter IFC. Le nombre et l’ordre des paramètres de ligne de commande sont significatifs. Si les noms de dossiers ou de fichiers contiennent des espaces, le nom doit être placé entre guillemets.

## Description de la méthode

Pour cette méthode, nous aurons besoin de 2 fichiers :

* un fichier \*.BAT qui permettra d’exécuter le process
* un fichier \*.SBS contenant le script avec les commandes à appliquer.

## Le fichier \*.bat

Ce fichier contient plusieurs choses, voici un exemple :

```bash
"C:\Program Files\Datacubist\Simplebim 9\Simplebim9.exe" "Sample-Script.sbs"
pause
```

1. tout d’abord, entre guillemets, l’adresse vers le fichier EXE de Simplebim qui sera utilisé, ici Simplebim9
2. sur la même ligne, séparé d’un espace, entre guillemets, le nom du fichier Script au format SBS Ce fichier sera enregistrer à côté du fichier BAT
3. Second et dernière ligne, “pause” qui permettra d’interrompt le traitement du programme

## le fichier \*.sbs

{% hint style="info" %}
L’extension de fichier du fichier de script est .sbs (Simplebim script). Le fichier est un simple fichier ASCII avec une commande sur chaque ligne. Les commandes sont traitées dans l’ordre dans lequel elles apparaissent dans le fichier. Pour s’exécuter en mode silencieux, le fichier de script doit se terminer par une commande Fermer. Le caractère # au début d’une ligne indique un commentaire.
{% endhint %}

### Exemple de fichier \*.sbs

```bash
Import=%SCRIPT_PATH%\GettingStarted.ifc
Run=Calculate Basic Quantities|SHADOW_AREAS=OFF
Apply=%SCRIPT_PATH%\Sample-Template.xlsx
Export=%SCRIPT_PATH%\GettingStarted (Ground Floor only).ifc
Close
```

1. La notion de `%SCRIPT_PATH%` permet de récupérer l’adresse de l’emplacement du script idéalement on place les fichiers BAT et SBS à côté des IFC à traiter, ou dans un dossier “supérieur” a celui des IFC
2. <mark style="color:blue;">**Import**</mark> ⇒ désigne l’ IFC à ouvrir
3. <mark style="color:blue;">**Run**</mark> ⇒ lance l’outil “Calculate Basic Quantites” avec l’option “<mark style="color:blue;">**SHADOW\_AREAS**</mark>” sur Off
4. <mark style="color:blue;">**Apply**</mark> ⇒ permet d’appliquer un Template simplebim
5. <mark style="color:blue;">**Export**</mark>, génèrera un nouvelle export après le traitement ci-dessus.
6. Close ⇒ finira la procédure

### Commandes disponibles

<table data-header-hidden><thead><tr><th width="150"></th><th width="461"></th></tr></thead><tbody><tr><td>Variable=</td><td><p>Vous pouvez définir n’importe quel nombre de variables constituées d’un nom et d’une valeur de variable. Lorsque le script est analysé et que le nom de la variable au format %NAME% se trouve n’importe où dans le script, il est remplacé par la valeur que vous avez définie. Les noms de variables sont sensibles à la casse. L’utilisation de variables facilite l’adaptation de votre script à de nouvelles situations, par exemple un nouveau projet.<br></p><p><code>Variable=NAME=valeur</code></p><p><br>La variable %SCRIPT_PATH% est toujours définie automatiquement et a le chemin d’accès complet du fichier de script que vous exécutez comme valeur.</p></td></tr><tr><td>Setting=</td><td><p>Vous pouvez définir les paramètres prédéfinis suivants</p><p><code>TempFolder=</code><br></p><p>Redirigez les fichiers temporaires vers un autre dossier que le dossier temporaire par défaut. Cela peut être utile avec les grands modèles si la taille du dossier temporaire par défaut est limitée. <br>Exemple : <code>Setting=TempFolder=C:\Temp</code></p></td></tr><tr><td>Import=</td><td>Le fichier IFC (avec chemin d’accès complet) à importer</td></tr><tr><td>Open=</td><td>Le fichier Cube (avec le chemin d’accès complet) à ouvrir</td></tr><tr><td>Apply=</td><td><p>Le template Simplebim (avec chemin d’accès complet) à appliquer au modèle IFC importé</p><p>Remarque : Vous pouvez appliquer plusieurs templates dans l’ordre au même modèle</p><p>Vous pouvez définir des variables qui sont transmises au template que vous appliquez en utilisant la même syntaxe que lorsque vous exécutez des outils. Dans le template, utilisez la syntaxe %NAME% n’importe où et le nom du paramètre est remplacé par la valeur du paramètre. Cela réduit le nombre de fichiers de modèle que vous devez créer car vous pouvez créer un modèle générique que vous configurez avec des paramètres.</p></td></tr><tr><td>Run=</td><td><p>GUID ou nom de l’outil à exécuter. L’outil peut éventuellement être configuré à l’aide de la syntaxe suivante<br></p><p><code>Run=ToolNameOrGuid|key1|key2=value2|key3=value</code></p></td></tr></tbody></table>

#### Commande “Merge=”

Fichier IFC (avec chemin d’accès complet) à fusionner avec le modèle déjà importé ou ouvert. La fusion peut éventuellement être configurée à l’aide de la syntaxe suivante

\*\*`Merge=File**|key1|key2=value2|key3=value3`

Vous pouvez utiliser des caractères génériques dans le paramètre File. Par exemple, `C:\Script Files\*.ifc` Lorsque le script est analysé, le répertoire spécifié dans le paramètre File est analysé à la recherche de fichiers qui correspondent au modèle et une commande distincte est automatiquement créée pour chaque fichier. Cela facilite la réutilisation des fichiers de script avec différentes combinaisons de fichiers qui doivent être fusionnés.

Les configurations prises en charge sont les suivantes :

| Clé                                     | Valeur(s)                                                          | Description                                                                                                                                                                     |
| --------------------------------------- | ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| MERGE\_TYPE                             | <p>FULL (par défaut)<br>CREATELOCATIONPRISMSREADLOCATIONPRISMS</p> | Fusionnez le modèle complet, créez des prismes d’emplacement 3D à partir d’empreintes ou lisez uniquement des prismes d’emplacement 3D à partir du modèle.                      |
| MERGE\_SITES                            | n/a                                                                | Fusionner des sites                                                                                                                                                             |
| MERGE\_SITES\_BY\_NAME                  | <p>ON<br>OFF (par défaut)</p>                                      | <p>Fusionner les sites par leur nom<br><mark style="color:green;">Le modèle résultant n’a qu’un seul site</mark></p>                                                            |
| MERGE\_BUILDINGS                        | n/a                                                                | Fusionner des bâtiments                                                                                                                                                         |
| MERGE\_BUILDINGS\_BY\_NAME              | <p>ON<br>OFF (par défaut)</p>                                      | <p>Fusionnez les bâtiments au sein de chaque site par le nom du bâtiment.<br><mark style="color:green;">Le modèle résultant n’a qu’un seul bâtiment sur chaque site.</mark></p> |
| MERGE\_BUILDING\_STOREYS\_BY\_NAME      | n/a                                                                | <p>Fusionnez les étages des bâtiments par leur nom. Ne peut être utilisé qu’avec MERGE_BUILDINGS.<br><br>Peut être utilisé avec MERGE_BUILDING_STOREYS_BY_ELEVATION</p>         |
| MERGE\_BUILDING\_STOREYS\_BY\_ELEVATION | n/a                                                                | <p>Fusionner les étages des bâtiments par élévation.<br><br>Ne peut être utilisé qu’avec MERGE_BUILDINGS.<br>Peut être utilisé avec MERGE_BUILDING_STOREYS_BY_NAME</p>          |
| BY\_BUILDINGSTOREYS                     | <p>ON<br>OFF (par défaut)</p>                                      | Uniquement pertinent avec CREATELOCATIONPRISMS. Créez un prisme d’emplacement distinct pour chaque étage du bâtiment.                                                           |
| EXTEND\_LOWEST\_BUILDINGSTOREY          | <p>ON (par défaut)<br>OFF</p>                                      | Uniquement pertinent avec CREATELOCATIONPRISMS. Étend le prisme d’emplacement le plus bas jusqu’à l’élévation inférieure de l’élément de construction le plus bas.              |

### Commande disponibles (suite)

| Export=   | Fichier (avec chemin d’accès complet) du fichier IFC exporté.                                                                                                                                                                                                                                                                   |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Save=     | Le fichier (avec le chemin d’accès complet) du fichier Cube enregistré                                                                                                                                                                                                                                                          |
| Save=     | Fichier (avec chemin d’accès complet) du fichier à supprimer. L’utilisateur ne sera pas invité à confirmer l’opération de suppression.                                                                                                                                                                                          |
| StartLog= | <p>Le fichier (avec le chemin d’accès complet) du fichier journal<br><br>StartLog peut apparaître n’importe où après la première importation et la fermeture finale. Vous pouvez écrire un journal distinct pour chaque opération, un journal pour l’ensemble du script ou pour toute séquence d’opérations entre les deux.</p> |
| SaveLog=  | Enregistre le journal dans le fichier journal spécifié dans StartLog                                                                                                                                                                                                                                                            |
| Close=    | Fichier (avec le chemin d’accès complet) du fichier journal en cas de blocage de l’application. Si l’application ne se bloque pas, le fichier journal n’est pas écrit. Close peut également être utilisé sans valeur                                                                                                            |

## Exemple de script avancé

```bash
# This is a comment
Variable=PATH=C:\My Files
Import=%PATH%\test1.ifc
Merge=%PATH%\location_prisms.ifc|MERGE_TYPE=READLOCATIONPRISMS
Run=Split Geometries|SPLIT_TYPE=ALL|SMART_SPLIT=OFF
Save=%PATH%\test1.cube
StartLog=%PATH%\test1_out1.log
Apply=%PATH%\test1.xlsx
Run=Basic Quantities
SaveLog Export=%PATH%\test1_out1.ifc
Open=%PATH%\test1.cube
StartLog=%PATH%\test1_out2.log
Apply=%PATH%\test2.xlsx
Apply=%PATH%\test3.xlsx
SaveLog
Export=%PATH%\test1_out2.ifc
Delete=%PATH%\test1.cube
Close=%PATH%\test1_fail.log/p>
```

L’exemple de script ci-dessus effectue les opérations suivantes.

1. Ligne de commentaire qui ne fait rien
2. Définit la variable PATH avec la valeur C:\MyFiles
3. Importe un modèle à partir d’un fichier IFC (test1.ifc))
4. Fusionne les prismes d’emplacement d’un autre fichier IFC (location\_prisms.ifc)
5. Résout les emplacements et fractionne les objets si nécessaire en exécutant l’outil **Fractionner les géométries**
6. Enregistre le modèle importé dans un fichier binaire (test1.cube). Ceci est fait parce qu’il est plus rapide plus tard d’ouvrir le fichier binaire que de réimporter le fichier IFC
7. Commence à écrire le journal pour appliquer un modèle (test1\_out1.log)
8. Applique un modèle (test1.xlsx)
9. Enregistre le journal pour l’application du modèle (dans test1\_out1.log)
10. Exporte le modèle modifié dans un nouveau fichier IFC (test1\_out1.ifc)
11. Ouvre le modèle à partir du fichier binaire (test1.cube) enregistré à l’étape 2. Ceci est fait afin d’obtenir un modèle propre pour l’application des modèles suivants.
12. Commence à écrire le journal pour appliquer les modèles suivants (test1\_out2.log)
13. Applique le premier modèle (test2.xlsx)
14. Applique le deuxième modèle (test3.xlsx)
15. Enregistre le journal pour l’application du premier et du deuxième modèle (dans test1\_out2.log)
16. Exporte le modèle modifié dans un nouveau fichier IFC (test1\_out2.ifc)
17. Supprime le fichier binaire (test1.cube)
18. Ferme l’application. Si l’application se bloque au cours de l’une des étapes ci-dessus, la raison du blocage sera écrite dans le fichier spécifié (test1\_fail.log)

Variable existante :&#x20;

<table data-header-hidden><thead><tr><th width="171">Nom de la variable</th><th width="280">description</th><th>exemple</th></tr></thead><tbody><tr><td><strong>MODEL_FILE</strong></td><td>Chemin complet avec le nom du fichier</td><td>C:\MyFiles\Scripts\Sample.ifc</td></tr><tr><td><strong>MODEL_PATH</strong></td><td>Chemin du fichier dans "\" à la fin</td><td>C:\MyFiles\Scripts</td></tr><tr><td><strong>MODEL_NAME</strong></td><td>Nom du fichier sans l'extension</td><td>Sample</td></tr><tr><td><strong>MODEL_EXT</strong></td><td>Extension du fichier</td><td>ifc</td></tr></tbody></table>
