Aller au contenu

Types de nœuds et hiérarchie

Chaque ressource de l’API RealityConnect est adressée via une hiérarchie de contenu composée de nœuds typés. Cette page recense les 10 types de nœuds, les règles parent/enfant qui maintiennent cet arbre valide, et quels types peuvent être créés directement par rapport à ceux qui n’apparaissent qu’en résultat d’une autre action.


DataNodeType compte 10 valeurs. Seuls Division, Site et Folder sont créés directement via un point de terminaison de création de nœud ; tout autre type est produit comme effet secondaire d’une action spécifique à un domaine : un téléversement, la création d’un bundle, un traitement ou une opération de plateforme/administration.

TypeCe que c’estCréé par
OrganizationLa racine de l’arbre. Tout autre nœud en est un descendant. parentId vaut null.Provisionné à la création de l’organisation ; jamais via l’API
DivisionUn regroupement de premier niveau sous l’organisation (par ex. une unité commerciale ou une région).POST /v1/nodes/{parentId}/division
SiteUn emplacement physique sous une division. Contient des bundles de données et constitue l’unité adressée par les routes de twin et de recherche.POST /v1/nodes/{parentId}/site
FolderUn regroupement imbricable pour organiser le contenu sous un site ou un autre dossier.POST /v1/nodes/{parentId}/folder
ProjectUn RealityPlan Project (projet de conception).POST /v1/bundles/{bundleId}/create-project, une fois qu’un bundle de données possède un composant traité et visualisable
TwinLe descripteur d’espace 3D d’un site. Un twin est adressé par l’id de nœud de son site, il n’y a donc pas d’étape de création dédiée.Action de plateforme (publication d’un twin)
DataBundleUn jeu de données capturé (nuage de points, mesh, panoramas, etc.) et ses résultats de traitement.POST /v1/nodes/{parentId}/bundle, avec un dbuPath résolu
SiteFileUn fichier téléversé brut ne faisant pas partie d’un bundle de données.POST /v1/site-files (un flux de téléversement dédié, pas un point de terminaison de création de nœud)
ArtifactUne pièce jointe ou un artefact de sortie associé au contenu d’un twin.Action de plateforme/traitement
AssetLibraryUne bibliothèque de modèles réutilisables au niveau de l’organisation.Provisionnée au niveau de l’organisation ; jamais via l’API

Les trois types créables forment une ossature fixe, chacun n’acceptant qu’un seul type parent :

ParentAccepte le type enfantRoute
OrganizationDivisionPOST /v1/nodes/{parentId}/division
DivisionSitePOST /v1/nodes/{parentId}/site
Site ou FolderFolderPOST /v1/nodes/{parentId}/folder

Folder est le seul type qui s’imbrique sous son propre type, c’est donc le seul endroit où la profondeur peut croître arbitrairement à partir d’un seul appel API. Au-delà de cette ossature, la plateforme impose une profondeur de hiérarchie maximale ; elle ne publie pas de chiffre exact, mais les deux codes d’erreur suivants existent précisément pour intercepter une requête qui la dépasserait ou placerait un nœud au mauvais endroit :

  • MaxDepthExceeded (renvoyé par PATCH /v1/nodes/{nodeId}/move/{newParentId}) : la destination pousserait le nœud plus profond que ce que la plateforme autorise. Déplacez le nœud vers une position moins profonde plutôt que d’imbriquer les dossiers indéfiniment.
  • DoesNotMeetHierarchyConstraints (également renvoyé par le point de terminaison de déplacement) : le parent de destination n’accepte pas le type de ce nœud. Vérifiez le tableau ci-dessus (ou la position réelle du type, via le parcours) avant de le déplacer.

Créer un nœud sous le mauvais type de parent est rejeté de la même façon : POST /v1/nodes/{parentId}/site avec un parentId qui n’est pas une Division renvoie 409 { "error": "ParentTypeNotValid" }.

Consultez Codes d’erreur pour la structure complète des réponses et tous les autres codes de déplacement/suppression.

Les nœuds DataBundle sont créés sous un site ou un dossier, et les nœuds SiteFile sont créés sous un id parent transmis au flux de téléversement. Les deux acceptent en pratique les deux mêmes types de parent que Folder, mais via leurs propres points de terminaison spécifiques plutôt qu’une route générique de création de nœud. Les types restants (Twin, Artifact, AssetLibrary) sont positionnés par l’action de plateforme ou de traitement qui les produit ; parcourez donc l’arbre pour les trouver plutôt que de supposer un emplacement fixe.

GET /v1/nodes/{id}/browse et GET /v1/nodes/search renvoient tous deux les nœuds dans cette structure :

{
"id": "a6f75b3c-f261-4b27-9a2a-9a6cc1234c53",
"createdAt": "2026-06-01T10:00:00.000Z",
"updatedAt": "2026-06-01T10:00:00.000Z",
"name": "Building A",
"type": "Site",
"createdById": "8f0b9a2c-8f1b-4a10-9e1c-0b3a2d9a4b7d",
"parentId": "d2a1c4b7-3e10-4f2c-9a6b-7c1d8e2f3a45",
"childrenCount": 4,
"bytesStored": 15728640,
"thumbnailSignedUrl": null
}
ChampRemarques
typeUne des 10 valeurs DataNodeType ci-dessus
parentIdnull uniquement pour la racine Organization
childrenCountEnfants directs uniquement, pas tout le sous-arbre
bytesStoredTaille de stockage du sous-arbre en octets
thumbnailSignedUrlOptionnel. Présent uniquement si la requête l’active avec includeThumbnail=true, et seulement si une miniature existe

Les deux routes renvoient la même structure DataNode, mais répondent à des questions différentes et ont des limites différentes :

GET /v1/nodes/{id}/browseGET /v1/nodes/search
Répond à« Quels sont les enfants directs de ce nœud ? »« Trouve les nœuds correspondant à ces filtres, partout où j’ai accès »
PortéeEnfants directs d’un nœudTout l’arbre de l’organisation lié au jeton d’accès
limit1–201–50
limit par défaut2050
FiltrageAucun, pagination et tri uniquementNom, type, parent/ancêtre, créateur, horodatages, taille de stockage, nombre d’enfants

Pour la mécanique de résolution de votre premier id de nœud et l’appel à browse, voir Trouver vos IDs. Pour l’ensemble complet des paramètres de requête search, des combinaisons de filtres et des exemples, voir Rechercher des objets métier et des nœuds.

Les nœuds Twin, DataBundle et AssetLibrary apparaissent dans les résultats de parcours et de recherche comme n’importe quel autre nœud, mais une fois leur id obtenu, vous adressez leur contenu via une autre famille de routes plutôt que /v1/nodes :

Type de nœudAdressé par son id à
Twin/v1/twin/{contextId}/... (descripteur d’espace, recherche d’objets métier)
DataBundle/v1/bundles/{bundleId}/... (composants, traitements, options de traitement)
AssetLibrary/v1/asset-library/... (en tant que ownerContextId)