Aller au contenu

Développeurs

Exports

Export des données d'une révision.

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)requis

    Identifiant de la révision (latest_revision_id d'une maquette, ou id d'une révision).

  • Idempotency-Key (header)string

    Clé d'idempotence, gardée 24 h par organisation.

Corps de la requêteExportCreate

  • tablesstring[]

    Tables à inclure ; toutes par défaut.

  • formatstring

    Format 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"
  ]
}'
Exemple (202)
{
  "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
}