curl --request POST \
--url https://{cluster}.cognitedata.com/api/v1/projects/{project}/3d/contextualization/cad \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"items": [
{
"asset": {
"instanceId": {
"space": "<string>",
"externalId": "<string>"
}
},
"nodeId": 1003
}
],
"dmsContextualizationConfig": {
"object3DSpace": "<string>",
"contextualizationSpace": "<string>",
"revision": {
"instanceId": {
"space": "<string>",
"externalId": "<string>"
}
}
}
}
'import requests
url = "https://{cluster}.cognitedata.com/api/v1/projects/{project}/3d/contextualization/cad"
payload = {
"items": [
{
"asset": { "instanceId": {
"space": "<string>",
"externalId": "<string>"
} },
"nodeId": 1003
}
],
"dmsContextualizationConfig": {
"object3DSpace": "<string>",
"contextualizationSpace": "<string>",
"revision": { "instanceId": {
"space": "<string>",
"externalId": "<string>"
} }
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
items: [
{asset: {instanceId: {space: '<string>', externalId: '<string>'}}, nodeId: 1003}
],
dmsContextualizationConfig: {
object3DSpace: '<string>',
contextualizationSpace: '<string>',
revision: {instanceId: {space: '<string>', externalId: '<string>'}}
}
})
};
fetch('https://{cluster}.cognitedata.com/api/v1/projects/{project}/3d/contextualization/cad', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{cluster}.cognitedata.com/api/v1/projects/{project}/3d/contextualization/cad",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'items' => [
[
'asset' => [
'instanceId' => [
'space' => '<string>',
'externalId' => '<string>'
]
],
'nodeId' => 1003
]
],
'dmsContextualizationConfig' => [
'object3DSpace' => '<string>',
'contextualizationSpace' => '<string>',
'revision' => [
'instanceId' => [
'space' => '<string>',
'externalId' => '<string>'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{cluster}.cognitedata.com/api/v1/projects/{project}/3d/contextualization/cad"
payload := strings.NewReader("{\n \"items\": [\n {\n \"asset\": {\n \"instanceId\": {\n \"space\": \"<string>\",\n \"externalId\": \"<string>\"\n }\n },\n \"nodeId\": 1003\n }\n ],\n \"dmsContextualizationConfig\": {\n \"object3DSpace\": \"<string>\",\n \"contextualizationSpace\": \"<string>\",\n \"revision\": {\n \"instanceId\": {\n \"space\": \"<string>\",\n \"externalId\": \"<string>\"\n }\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{cluster}.cognitedata.com/api/v1/projects/{project}/3d/contextualization/cad")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"items\": [\n {\n \"asset\": {\n \"instanceId\": {\n \"space\": \"<string>\",\n \"externalId\": \"<string>\"\n }\n },\n \"nodeId\": 1003\n }\n ],\n \"dmsContextualizationConfig\": {\n \"object3DSpace\": \"<string>\",\n \"contextualizationSpace\": \"<string>\",\n \"revision\": {\n \"instanceId\": {\n \"space\": \"<string>\",\n \"externalId\": \"<string>\"\n }\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{cluster}.cognitedata.com/api/v1/projects/{project}/3d/contextualization/cad")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"items\": [\n {\n \"asset\": {\n \"instanceId\": {\n \"space\": \"<string>\",\n \"externalId\": \"<string>\"\n }\n },\n \"nodeId\": 1003\n }\n ],\n \"dmsContextualizationConfig\": {\n \"object3DSpace\": \"<string>\",\n \"contextualizationSpace\": \"<string>\",\n \"revision\": {\n \"instanceId\": {\n \"space\": \"<string>\",\n \"externalId\": \"<string>\"\n }\n }\n }\n}"
response = http.request(request)
puts response.read_body{}{
"error": {
"code": 401,
"message": "Could not authenticate.",
"missing": [
{}
],
"duplicated": [
{}
]
}
}Create CAD contextualization
Create contextualization links between 3D CAD nodes and CogniteAsset instances.
Use this endpoint to connect CAD objects in a specific 3D model revision to assets in data modeling projects.
These links let users navigate between 3D objects in a 3D CAD model and their connected CogniteAsset instances.
This API enforces a strict one-to-many relationship between assets and CAD nodes: a CogniteCadNode can only be connected to a single CogniteAsset, while a CogniteAsset can be connected to multiple CAD nodes.
The CAD nodes are scoped to the referenced 3D model revision.
Asset references use the space and externalId of CogniteAsset instances.
Note: This endpoint is available only in data modeling projects.
curl --request POST \
--url https://{cluster}.cognitedata.com/api/v1/projects/{project}/3d/contextualization/cad \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"items": [
{
"asset": {
"instanceId": {
"space": "<string>",
"externalId": "<string>"
}
},
"nodeId": 1003
}
],
"dmsContextualizationConfig": {
"object3DSpace": "<string>",
"contextualizationSpace": "<string>",
"revision": {
"instanceId": {
"space": "<string>",
"externalId": "<string>"
}
}
}
}
'import requests
url = "https://{cluster}.cognitedata.com/api/v1/projects/{project}/3d/contextualization/cad"
payload = {
"items": [
{
"asset": { "instanceId": {
"space": "<string>",
"externalId": "<string>"
} },
"nodeId": 1003
}
],
"dmsContextualizationConfig": {
"object3DSpace": "<string>",
"contextualizationSpace": "<string>",
"revision": { "instanceId": {
"space": "<string>",
"externalId": "<string>"
} }
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
items: [
{asset: {instanceId: {space: '<string>', externalId: '<string>'}}, nodeId: 1003}
],
dmsContextualizationConfig: {
object3DSpace: '<string>',
contextualizationSpace: '<string>',
revision: {instanceId: {space: '<string>', externalId: '<string>'}}
}
})
};
fetch('https://{cluster}.cognitedata.com/api/v1/projects/{project}/3d/contextualization/cad', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{cluster}.cognitedata.com/api/v1/projects/{project}/3d/contextualization/cad",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'items' => [
[
'asset' => [
'instanceId' => [
'space' => '<string>',
'externalId' => '<string>'
]
],
'nodeId' => 1003
]
],
'dmsContextualizationConfig' => [
'object3DSpace' => '<string>',
'contextualizationSpace' => '<string>',
'revision' => [
'instanceId' => [
'space' => '<string>',
'externalId' => '<string>'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{cluster}.cognitedata.com/api/v1/projects/{project}/3d/contextualization/cad"
payload := strings.NewReader("{\n \"items\": [\n {\n \"asset\": {\n \"instanceId\": {\n \"space\": \"<string>\",\n \"externalId\": \"<string>\"\n }\n },\n \"nodeId\": 1003\n }\n ],\n \"dmsContextualizationConfig\": {\n \"object3DSpace\": \"<string>\",\n \"contextualizationSpace\": \"<string>\",\n \"revision\": {\n \"instanceId\": {\n \"space\": \"<string>\",\n \"externalId\": \"<string>\"\n }\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{cluster}.cognitedata.com/api/v1/projects/{project}/3d/contextualization/cad")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"items\": [\n {\n \"asset\": {\n \"instanceId\": {\n \"space\": \"<string>\",\n \"externalId\": \"<string>\"\n }\n },\n \"nodeId\": 1003\n }\n ],\n \"dmsContextualizationConfig\": {\n \"object3DSpace\": \"<string>\",\n \"contextualizationSpace\": \"<string>\",\n \"revision\": {\n \"instanceId\": {\n \"space\": \"<string>\",\n \"externalId\": \"<string>\"\n }\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{cluster}.cognitedata.com/api/v1/projects/{project}/3d/contextualization/cad")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"items\": [\n {\n \"asset\": {\n \"instanceId\": {\n \"space\": \"<string>\",\n \"externalId\": \"<string>\"\n }\n },\n \"nodeId\": 1003\n }\n ],\n \"dmsContextualizationConfig\": {\n \"object3DSpace\": \"<string>\",\n \"contextualizationSpace\": \"<string>\",\n \"revision\": {\n \"instanceId\": {\n \"space\": \"<string>\",\n \"externalId\": \"<string>\"\n }\n }\n }\n}"
response = http.request(request)
puts response.read_body{}{
"error": {
"code": 401,
"message": "Could not authenticate.",
"missing": [
{}
],
"duplicated": [
{}
]
}
}Authorizations
Access token issued by the CDF project's configured identity provider. Access token must be an OpenID Connect token, and the project must be configured to accept OpenID Connect tokens. Use a header key of 'Authorization' with a value of 'Bearer $accesstoken'. The token can be obtained through any flow supported by the identity provider.
Body
The list of asset instanceIds and nodes, and the dmsContextualizationConfig.
Response
Empty response.
The response is of type object.
Was this page helpful?