Exporter les données d'une révision
post/api/v1/revisions/{revision_id}/exports
Scope requis : exports:read
Prépare une archive zip, un fichier par table (CSV par défaut, ou JSON avec format: json). Le jeu de données de la révision doit être terminé (409 sinon). Quand le job est COMPLETE, son result donne une URL de téléchargement signée valable une heure, renouvelée à chaque lecture du job ; l'archive est gardée 48 h. Une table en échec est absente de l'archive et nommée dans error (code EXPORT_PARTIAL).
Format des fichiers. CSV : UTF-8 sans BOM, séparateur |, chaque valeur entre guillemets, fin de ligne CRLF, une ligne d'en-tête. Les colonnes de jointure y figurent sous leurs deux noms (asset_id et AssetId, name et Name…), et RevisionId peut figurer deux fois, comme le lisent les modèles Power BI. JSON : un tableau d'objets, chaque colonne une seule fois, sous son nom en PascalCase. Dans les deux formats toute valeur est du texte (nombres, booléens true/false, dates) : la convertir avant de calculer ou de trier. Une table sans ligne pour la révision donne un fichier vide (en-tête seul, ou []).
Tables (nom dans tables → fichier de l'archive). AssetId est l'identifiant de l'objet dans le fichier IFC (#123) et relie les tables entre elles ; GlobalId est l'identifiant IFC stable d'une révision à l'autre.
assets (fichier assets), une ligne par objet : AssetId, GlobalId, AssetClass, AssetClassName, Name, Description, ObjectType, Tag, LongName, PredefinedType, AssetTypeId, IsAsset, HasGeometry, IsSpatialAsset, IsGroupAsset.
asset_types (fichier asset-types), une ligne par type d'objet : AssetTypeId, AssetTypeClass, AssetTypeClassName, AssetTypeGlobalId, AssetTypeName, AssetTypePredefinedType.
properties (fichier properties), une ligne par propriété d'un objet : AssetId, AssetClassName, PropertySetName, Name, Value, Unit, Source.
qto (fichier qto), une ligne par quantité d'un objet : AssetId, QuantitySetName, Name, Value, Unit, Formula.
classification (fichier classification), une ligne par classification d'un objet : AssetId, ClassificationSystem, ClassificationIdentification, ClassificationValue, ClassificationTitle.
materials (fichier materials), une ligne par matériau (couche, profil ou constituant) d'un objet : AssetId, MaterialName, MaterialCategory, MaterialLayerName, MaterialLayerThickness, MaterialConstituentName, MaterialConstituentFraction, Source.
spatial_relation (fichier asset-spatial-parents), une ligne par objet, avec son emplacement : AssetId, AssetName, SiteAssetName, BuildingAssetName, BuildingStoreyAssetName, SpaceAssetName, FirstSpatialParentAssetName.
asset_tree (fichier asset-relations), une ligne par lien parent → enfant de l'arborescence : AssetId, ChildAssetId, ParentAssetId, ParentAssetClassName, RelationClass, ParentAssetIsSpatial, ParentAssetIsGroup.
asset_logical (fichier asset-logical-parents), une ligne par objet, avec son système, sa zone, son groupe : AssetId, AssetName, SystemAssetName, ZoneAssetName, GroupAssetName.
asset_relations (fichier asset-relations-direct), une ligne par relation IFC d'un objet : AssetId, RelationId, RelationClass.
relations (fichier relations), une ligne par relation IFC : RelationId, RelationClass, RelationClassName, RelationGlobalId, RelationName.
space_boundary_relation (fichier space-boundary-relations), une ligne par limite d'un espace : AssetId, RelatingSpaceAssetId, RelatingSpaceAssetClassName, PhysicalOrVirtualBoundary, InternalOrExternalBoundary.
asset_placement (fichier asset-placement), une ligne par objet placé : AssetId, X, Y, Z, Unit, Xm, Ym, Zm (en mètres).
revisions (fichier revisions), une ligne par révision : Model Name, Schema, FileName, FileSize, NumberOfAssets, NumberOfSpaces, NumberOfProxies, NumberOfProperties, GlobalArea, SitePointX/Y/Z, adresse du bâtiment.
Chaque fichier commence par RevisionId. La liste complète des colonnes d'une table est l'en-tête de son fichier.
Paramètres
revision_id (path)string (uuid)requisIdentifiant de la révision (
latest_revision_idd'une maquette, ouidd'une révision).Idempotency-Key (header)stringClé d'idempotence, gardée 24 h par organisation.
Corps de la requêteExportCreate
tablesstring[]Tables à inclure ; toutes par défaut.
formatstringFormat des fichiers de l'archive.
Valeurs : csv · json
Réponses
- 202Traitement accepté ; suivre le job.Job
- 409Idempotency-Key déjà utilisée avec un autre corps, ou état incompatible.Problem
Erreurs communes :400401403404429500503(détail dans la section Erreurs)
curl -sS -X POST "$SEVEUP_API/api/v1/revisions/$REVISION_ID/exports" \
-H "Authorization: Bearer $SEVEUP_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"tables": [
"assets",
"properties",
"qto"
]
}'{
"id": "1f2e3d4c-5b6a-4978-8a1b-2c3d4e5f6a7b",
"type": "conversion",
"status": "QUEUED",
"percent_complete": 0,
"eta_seconds": null,
"target": {
"type": "revision",
"id": "4f6a1b2c-3d4e-4f50-8a6b-7c8d9e0f1a2b"
},
"result": null,
"error": null,
"created_at": "2026-10-21T07:58:00Z",
"started_at": null,
"completed_at": null
}