> For the complete documentation index, see [llms.txt](https://help.socinformatique.fr/justbim/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.socinformatique.fr/justbim/lintelligence-artificielle-dans-vos-projets/editeur-sql.md).

# Editeur sql

Chaque sélection produite par l'Assistant Chat s'appuie sur une **requête SQL** générée par le Selection agent. L'éditeur SQL vous permet d'inspecter, de modifier et de ré-exécuter cette requête.

### Accéder à l'éditeur

À côté du résultat d'une sélection dans la conversation, cliquez sur l'**icône d'éditeur SQL** (petit bouton à droite du message).

*Exemple de requête générée par le Selection agent*

### Ce que vous pouvez faire dans l'éditeur

* **Consulter** la requête générée — utile pour comprendre comment l'IA a interprété votre demande.
* **Modifier** manuellement la requête (ajouter une clause `WHERE`, changer l'ordre, joindre une table…).
* **Ré-exécuter** la requête modifiée pour mettre à jour la sélection courante dans JustBIM.

#### Exemple de requête générée

```sql
SELECT DISTINCT p.Id
FROM (SELECT Id FROM IfcWallStandardCase
      UNION
      SELECT Id FROM IfcWall) AS p
LEFT JOIN CompositionAssignment AS ca ON ca.ObjectId = p.Id
WHERE ca.CompositionId IS NULL;
```

> Cette requête sélectionne tous les murs (`IfcWall` + `IfcWallStandardCase`) auxquels **aucune composition** n'est encore affectée. C'est l'équivalent SQL d'une commande en langage naturel du type *« Sélectionne les murs qui n'ont pas de composition »*.

### Évolution à venir

{% hint style="info" %}
Dans une prochaine version, vous pourrez **enregistrer une requête SQL comme règle de sélection** réutilisable d'un projet à l'autre et partageable entre utilisateurs de l'agence.
{% endhint %}

### Connaissances requises

L'éditeur SQL s'adresse aux utilisateurs **avancés**. Une connaissance de base de SQL et du schéma de données IFC est nécessaire pour des modifications fines.

### Principales tables utilisables

| Table SQL                        | Classe IFC correspondante | Description                              |
| -------------------------------- | ------------------------- | ---------------------------------------- |
| `IfcWall`, `IfcWallStandardCase` | Mur                       | Murs standards et non standards          |
| `IfcSlab`                        | Dalle                     | Dalles, planchers, toitures plates       |
| `IfcBeam`                        | Poutre                    | Poutres                                  |
| `IfcColumn`                      | Poteau                    | Poteaux                                  |
| `IfcDoor`                        | Porte                     | Portes                                   |
| `IfcWindow`                      | Fenêtre                   | Fenêtres                                 |
| `IfcSpace`                       | Pièce                     | Espaces, locaux                          |
| `IfcBuildingStorey`              | Étage                     | Niveaux du bâtiment                      |
| `CompositionAssignmen`           |                           | Table de liaison **objet ↔ composition** |

### Bonnes pratiques

* **Sauvegardez votre projet** avant de ré-exécuter une requête SQL modifiée.
* **Testez sur une copie** si vous modifiez une requête qui sera utilisée pour appliquer des compositions à grande échelle.
