Pular para o conteúdo

Tipos de nó e hierarquia

Todo recurso da API RealityConnect é endereçado por meio de uma hierarquia de conteúdo formada por nós tipados. Esta página cataloga os 10 tipos de nó, as regras de pai/filho que mantêm essa árvore válida, e quais tipos podem ser criados diretamente em comparação aos que só aparecem como resultado de outra ação.


DataNodeType tem 10 valores. Apenas Division, Site e Folder são criados diretamente por um endpoint de criação de nó; qualquer outro tipo é produzido como efeito colateral de uma ação específica de domínio: um upload, a criação de um bundle, um processamento ou uma operação de plataforma/administração.

TipoO que éCriado por
OrganizationA raiz da árvore. Todos os demais nós são seus descendentes. parentId é null.Provisionado na criação da organização; nunca pela API
DivisionUm agrupamento de nível superior sob a organização (por exemplo, uma unidade de negócio ou região).POST /v1/nodes/{parentId}/division
SiteUm local físico sob uma divisão. Contém data bundles e é a unidade endereçada pelas rotas de twin e busca.POST /v1/nodes/{parentId}/site
FolderUm agrupamento aninhável para organizar conteúdo sob um site ou outra pasta.POST /v1/nodes/{parentId}/folder
ProjectUm RealityPlan Project.POST /v1/bundles/{bundleId}/create-project, assim que um data bundle tiver um componente processado e visualizável
TwinO descritor de espaço 3D de um site. Um twin é endereçado pelo id de nó do seu site, portanto não há uma etapa de criação própria.Ação de plataforma (publicação de um twin)
DataBundleUm conjunto de dados capturado (nuvem de pontos, malha, panoramas etc.) e seus resultados de processamento.POST /v1/nodes/{parentId}/bundle, com um dbuPath resolvido
SiteFileUm arquivo enviado em bruto que não faz parte de um data bundle.POST /v1/site-files (um fluxo de upload dedicado, não um endpoint de criação de nó)
ArtifactUm anexo ou artefato de saída associado ao conteúdo de um twin.Ação de plataforma/processamento
AssetLibraryUma biblioteca de modelos reutilizáveis no nível da organização.Provisionada no nível da organização; nunca pela API

Os três tipos criáveis formam uma estrutura fixa, cada um aceitando exatamente um tipo pai:

PaiAceita o tipo filhoRota
OrganizationDivisionPOST /v1/nodes/{parentId}/division
DivisionSitePOST /v1/nodes/{parentId}/site
Site ou FolderFolderPOST /v1/nodes/{parentId}/folder

Folder é o único tipo que se aninha sob seu próprio tipo, então é o único lugar onde a profundidade pode crescer arbitrariamente a partir de uma única chamada de API. Além dessa estrutura, a plataforma impõe uma profundidade máxima de hierarquia; ela não publica um número exato, mas os dois códigos de erro abaixo existem justamente para capturar uma requisição que a excederia ou posicionaria um nó no lugar errado:

  • MaxDepthExceeded (retornado por PATCH /v1/nodes/{nodeId}/move/{newParentId}): o destino deixaria o nó mais profundo do que a plataforma permite. Mova o nó para uma posição mais rasa em vez de aninhar pastas indefinidamente.
  • DoesNotMeetHierarchyConstraints (também retornado pelo endpoint de movimentação): o pai de destino não aceita o tipo deste nó. Verifique a tabela acima (ou a posição real do tipo, via navegação) antes de movê-lo.

Criar um nó sob o tipo de pai errado é rejeitado da mesma forma: POST /v1/nodes/{parentId}/site com um parentId que não seja uma Division retorna 409 { "error": "ParentTypeNotValid" }.

Consulte Códigos de erro para a estrutura completa da resposta e todos os demais códigos de movimentação/exclusão.

Os nós DataBundle são criados sob um site ou pasta, e os nós SiteFile são criados sob um id pai passado ao fluxo de upload. Ambos aceitam, na prática, os mesmos dois tipos de pai que Folder, mas por meio de seus próprios endpoints específicos de domínio em vez de uma rota genérica de criação de nó. Os tipos restantes (Twin, Artifact, AssetLibrary) são posicionados pela ação de plataforma ou processamento que os produz, portanto navegue pela árvore para encontrá-los em vez de presumir uma posição fixa.

GET /v1/nodes/{id}/browse e GET /v1/nodes/search retornam os nós nesta estrutura:

{
"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
}
CampoObservações
typeUm dos 10 valores de DataNodeType acima
parentIdnull apenas para a raiz Organization
childrenCountApenas filhos diretos, não a subárvore inteira
bytesStoredTamanho de armazenamento da subárvore em bytes
thumbnailSignedUrlOpcional. Presente apenas quando a requisição opta por isso com includeThumbnail=true, e apenas quando existe uma miniatura

Ambas as rotas retornam a mesma estrutura DataNode, mas respondem a perguntas diferentes e têm limites diferentes:

GET /v1/nodes/{id}/browseGET /v1/nodes/search
Responde”Quais são os filhos diretos deste nó?""Encontre nós que correspondam a estes filtros, em qualquer lugar onde eu tenha acesso”
EscopoFilhos diretos de um nóToda a árvore da organização vinculada ao token de acesso
limit1–201–50
limit padrão2050
FiltragemNenhuma, apenas paginação e ordenaçãoNome, tipo, pai/ancestral, criador, timestamps, tamanho de armazenamento, número de filhos

Para a mecânica de resolver seu primeiro id de nó e chamar o browse, veja Encontrando seus IDs. Para o conjunto completo de parâmetros de consulta do search, combinações de filtros e exemplos, veja Pesquisando objetos de negócio e nós.

Os nós Twin, DataBundle e AssetLibrary aparecem em resultados de navegação e pesquisa como qualquer outro nó, mas, uma vez obtido o id, você endereça seu conteúdo por meio de outra família de rotas em vez de /v1/nodes:

Tipo de nóEndereçado pelo id em
Twin/v1/twin/{contextId}/... (descritor de espaço, pesquisa de objetos de negócio)
DataBundle/v1/bundles/{bundleId}/... (componentes, processamentos, opções de processamento)
AssetLibrary/v1/asset-library/... (como ownerContextId)