### C# HTTP client example Source: https://docs.novorender.com/docs/data_rest_api/v2/get-scenes-object-group-ids C# example using HttpClient to send a GET request with Bearer token authentication. ```csharp var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://data-v2.novorender.com/explorer/:sceneId/groups/:groupId/ids"); request.Headers.Add("Accept", "application/json"); request.Headers.Add("Authorization", "Bearer "); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ``` -------------------------------- ### C# HttpClient example Source: https://docs.novorender.com/docs/data_rest_api/v2/get-project-versions C# example using HttpClient to call the get project versions endpoint. Requires a bearer token for authorization. ```csharp var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://data-v2.novorender.com/projects/:projectId/versions"); request.Headers.Add("Accept", "application/json"); request.Headers.Add("Authorization", "Bearer "); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ``` -------------------------------- ### Response example for get project versions Source: https://docs.novorender.com/docs/data_rest_api/v2/get-project-versions Example response body for a successful 200 request. Contains an array of version objects with id, created, url, and size fields. ```json [ { "id": "string", "created": "2024-07-29T15:51:28.071Z", "url": "string", "size": 0 } ] ``` -------------------------------- ### C# HttpClient request example Source: https://docs.novorender.com/docs/data_rest_api/v2/get-file-upload-url-and-id-to-project Example of how to perform the GET request using C# HttpClient. ```csharp var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://data-v2.novorender.com/projects/:projectId/files/upload"); request.Headers.Add("Accept", "application/json"); request.Headers.Add("Authorization", "Bearer "); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ``` -------------------------------- ### C# HttpClient example for GET favorites Source: https://docs.novorender.com/docs/data_rest_api/v2/get-model-tree-widget-favorite-objects-for-the-project C# example using HttpClient to send a GET request to the favorites endpoint. It adds Accept and Authorization headers, sends the request, ensures success, and prints the response. ```csharp var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://data-v2.novorender.com/explorer/:projectId/modeltree/favorites"); request.Headers.Add("Accept", "application/json"); request.Headers.Add("Authorization", "Bearer "); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ``` -------------------------------- ### C# HttpClient example Source: https://docs.novorender.com/docs/data_rest_api/v2/get-omega-365-project-configuration C# example using HttpClient to send a GET request to the configuration endpoint with Bearer token authentication. ```csharp var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://data-v2.novorender.com/explorer/:sceneId/omega365/configuration"); request.Headers.Add("Accept", "application/json"); request.Headers.Add("Authorization", "Bearer "); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ``` -------------------------------- ### Complete main.ts example with View and getDeviceProfile Source: https://docs.novorender.com/docs/web_api/tutorial/vite_getting_started Consolidates all steps: imports View and getDeviceProfile, gets the canvas, defines an async main function that creates and runs the view, then disposes it, and calls main. ```typescript import { View, getDeviceProfile } from "@novorender/api"; const canvas = document.getElementById("canvas") as HTMLCanvasElement; async function main(canvas: HTMLCanvasElement) { const gpuTier = 2; const deviceProfile = getDeviceProfile(gpuTier); const view = new View(canvas, deviceProfile); await view.run(); view.dispose(); } main(canvas); ``` -------------------------------- ### Start development server with npm Source: https://docs.novorender.com/docs/web_api/tutorial/vite_react_getting_started Command to start the development server using npm. ```bash npm run dev ``` -------------------------------- ### C# HttpClient example for GET project object metadata Source: https://docs.novorender.com/docs/data_rest_api/v2/metadata Example using HttpClient in C# to call the endpoint. Requires a bearer token for authorization. ```csharp var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://data-v2.novorender.com/projects/:sceneId/metadata/:objectId"); request.Headers.Add("Accept", "application/json"); request.Headers.Add("Authorization", "Bearer "); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ``` -------------------------------- ### C# HttpClient Request Example Source: https://docs.novorender.com/docs/data_rest_api/v2/get-all-permission-assignments-for-the-current-user Example of how to perform the GET request using C# HttpClient with an authorization header. ```csharp var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://data-v2.novorender.com/users/me/permission-assignments"); request.Headers.Add("Accept", "text/plain"); request.Headers.Add("Authorization", "Bearer "); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ``` -------------------------------- ### C# HttpClient example Source: https://docs.novorender.com/docs/data_rest_api/v2/get-available-organizations-for-user C# example using HttpClient to send a GET request to the organizations endpoint with Bearer token authorization. ```csharp var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://data-v2.novorender.com/organizations"); request.Headers.Add("Accept", "application/json"); request.Headers.Add("Authorization", "Bearer "); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ``` -------------------------------- ### Start development server with pnpm Source: https://docs.novorender.com/docs/web_api/tutorial/vite_react_getting_started Command to start the development server using pnpm. ```bash pnpm run dev ``` -------------------------------- ### Start development server Source: https://docs.novorender.com/docs/web_api/tutorial/webpack_getting_started Commands to start the development server using npm, Yarn, or pnpm. ```bash npm run dev ``` ```bash yarn dev ``` ```bash pnpm run dev ``` -------------------------------- ### C# HttpClient example Source: https://docs.novorender.com/docs/data_rest_api/v2/get-file-log C# example using HttpClient to send a GET request to the file log endpoint. Requires a bearer token for authorization. ```csharp var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://data-v2.novorender.com/projects/:projectId/log/:uploadId"); request.Headers.Add("Accept", "text/plain"); request.Headers.Add("Authorization", "Bearer "); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ``` -------------------------------- ### Start development server with Yarn Source: https://docs.novorender.com/docs/web_api/tutorial/vite_react_getting_started Command to start the development server using Yarn. ```bash yarn dev ``` -------------------------------- ### C# HttpClient example Source: https://docs.novorender.com/docs/data_rest_api/v2/get-projects-explorer-info C# code example using HttpClient to send a GET request to the explorer endpoint with Bearer token authentication. ```csharp var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://data-v2.novorender.com/explorer/:sceneId"); request.Headers.Add("Accept", "application/json"); request.Headers.Add("Authorization", "Bearer "); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ``` -------------------------------- ### List viewer scenes with HttpClient Source: https://docs.novorender.com/docs/data_rest_api/v2/list-viewer-scenes C# example using HttpClient to perform a GET request to the viewer scenes endpoint with a Bearer token. ```csharp var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://data-v2.novorender.com/roles/viewerScenes"); request.Headers.Add("Authorization", "Bearer "); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ``` -------------------------------- ### C# HTTP client example Source: https://docs.novorender.com/docs/data_rest_api/v2/compare-versions-of-file C# example using HttpClient to call the compare endpoint. ```csharp var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Post, "https://data-v2.novorender.com/projects/:projectId/files/:fileId/compare/:versionFrom/:versionTo"); request.Headers.Add("Accept", "application/json"); request.Headers.Add("Authorization", "Bearer "); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ``` -------------------------------- ### C# HttpClient GET project files Source: https://docs.novorender.com/docs/data_rest_api/v2/get-project-files C# example using HttpClient to send a GET request to the project files endpoint. Requires a valid Bearer token and the `sceneId` path parameter. ```csharp var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://data-v2.novorender.com/forms/projects/:sceneId/files"); request.Headers.Add("Accept", "application/json"); request.Headers.Add("Authorization", "Bearer "); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ``` -------------------------------- ### C# HttpClient example to get project permissions Source: https://docs.novorender.com/docs/data_rest_api/v2/get-project-or-scene-permissions C# code using HttpClient to send a GET request to the permissions endpoint. It adds an Accept header and an Authorization header with a Bearer token, then ensures success and prints the response. ```csharp var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://data-v2.novorender.com/roles/organizations/:organization/projects/:project/permissions"); request.Headers.Add("Accept", "text/plain"); request.Headers.Add("Authorization", "Bearer "); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ``` -------------------------------- ### C# HttpClient example for List groups Source: https://docs.novorender.com/docs/data_rest_api/v2/list-groups A C# example using HttpClient to send a GET request to the List groups endpoint. It sets the Accept header to text/plain and the Authorization header with a bearer token. ```csharp var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://data-v2.novorender.com/roles/assignments/groups"); request.Headers.Add("Accept", "text/plain"); request.Headers.Add("Authorization", "Bearer "); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ``` -------------------------------- ### C# HttpClient example Source: https://docs.novorender.com/docs/data_rest_api/v2/create-omega-365-activity C# example using HttpClient to send a POST request to the endpoint. ```csharp var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Post, "https://data-v2.novorender.com/explorer/:sceneId/omega365/activity"); request.Headers.Add("Accept", "application/json"); request.Headers.Add("Authorization", "Bearer "); var content = new StringContent("{\n \"name\": \"string\",\n \"objectId\": 0,\n \"activityTypeId\": 0,\n \"orgUnitId\": 0\n}", null, "application/json"); request.Content = content; var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ``` -------------------------------- ### C# HttpClient request for project template IDs Source: https://docs.novorender.com/docs/data_rest_api/v2/list-project-template-i-ds Example using HttpClient to perform the GET request with an authorization header. ```csharp var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://data-v2.novorender.com/forms/projects/:sceneId/templates/ids"); request.Headers.Add("Accept", "application/json"); request.Headers.Add("Authorization", "Bearer "); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ``` -------------------------------- ### Install Dependencies with NPM Source: https://docs.novorender.com/docs/web_api/tutorial/vite_react_getting_started Command to install project dependencies using NPM. ```bash npm install ``` -------------------------------- ### Install Dependencies with Yarn Source: https://docs.novorender.com/docs/web_api/tutorial/vite_react_getting_started Command to install project dependencies using Yarn. ```bash yarn install ``` -------------------------------- ### Install @novorender/data-js-api with npm Source: https://docs.novorender.com/docs/data_js_api/api_reference Installs the stable version of the Data JS API package. ```bash $ npm install @novorender/data-js-api ``` -------------------------------- ### Install @novorender/data-js-api with Yarn Source: https://docs.novorender.com/docs/guides/downloading-scenes-for-offline Install the Novorender Data JS API package using Yarn. ```bash yarn add @novorender/data-js-api ``` -------------------------------- ### JSON Response Example Source: https://docs.novorender.com/docs/data_rest_api/v2/get-available-projects-for-user-within-organization-with-roles An example of the JSON array returned by the API containing project details. ```json [ { "id": "0123456789abcdef0123456789abcdef", "name": "My Project", "description": "Project description", "epsg": "5105", "roles": [ "viewer" ], "tags": [ { "id": "tag_1", "name": "value_1" }, { "id": "tag_2" } ], "permissions": [ "project:view" ], "created": "2024-07-29T15:51:28.071Z", "modified": "2024-07-29T15:51:28.071Z", "viewCount": 0, "size": 0, "canOpenInProjects": true } ] ``` -------------------------------- ### Install @novorender/data-js-api with pnpm Source: https://docs.novorender.com/docs/guides/downloading-scenes-for-offline Install the Novorender Data JS API package using pnpm. ```bash pnpm add @novorender/data-js-api ``` -------------------------------- ### Get Folder Children Request with HttpClient Source: https://docs.novorender.com/docs/data_rest_api/v2/get-folders-children Example of how to perform the GET request using C# HttpClient. ```csharp var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://data-v2.novorender.com/projects/:projectId/folders/:folderId"); request.Headers.Add("Accept", "application/json"); request.Headers.Add("Authorization", "Bearer "); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ``` -------------------------------- ### Project Creation Response Example Source: https://docs.novorender.com/docs/data_rest_api/v2/create-project An example of the JSON object returned upon successfully creating a project. ```json { "id": "string", "name": "string", "description": "Project description", "viewCount": 0, "epsg": "5105", "bounds": [ 0 ], "tags": [ { "id": "status", "name": "approved" } ], "permissions": [ "project:view" ], "created": "2024-07-29T15:51:28.071Z", "modified": "2024-07-29T15:51:28.071Z", "features": { "debugInfo": { "quality": true, "boundingBoxes": true, "holdDynamic": true, "render": true, "queueSize": true, "performanceTab": true }, "render": { "full": true }, "BIM360": true, "Trimble": true, "Sharepoint": true, "Procore": true, "bimcollab": true, "bimTrack": true, "ditio": true, "jira": true, "xsiteManage": true, "omega365": true, "omega365new": true, "omegaPims365": true, "forms": true, "arcgis": true, "doubleSided": true, "offline": true, "newUx": true, "bakeResources": true, "vr": true, "service": true } } ``` -------------------------------- ### Initialize package.json with npm, Yarn, or pnpm Source: https://docs.novorender.com/docs/web_api/tutorial/webpack_getting_started Creates a package.json file with default configuration using the chosen package manager. ```bash npm init -y ``` ```bash yarn init -y ``` ```bash pnpm init -y ``` -------------------------------- ### init(modules?, showWatermark?): Promise Source: https://docs.novorender.com/docs/web_api/api_reference/classes/RenderContext Initialize render context with specified render modules. ```APIDOC ## init(modules?, showWatermark?): Promise ### Description Initialize render context with specified render modules. ### Method Method ### Parameters - `modules?` (readonly RenderModule[]) - Optional - The render modules to use. Defaults to `undefined`. - `showWatermark?` (boolean) - Optional - If `false`, filters out the watermark module regardless if the modules are provided or not. Defaults to `true`. ### Returns `Promise` ### Remarks The default/built-in render modules can be retrieved using createDefaultModules. These will be used if no modules are specified. Developers may introduce their own render modules here. Note that the order of the modules matters, as this is the order by which they will be rendered. ``` -------------------------------- ### init(params) Source: https://docs.novorender.com/docs/web_api/api_reference/classes/BaseController Initializes the controller from parameters. ```APIDOC ## init(params) ### Description Initialize controller from parameters. ### Signature `abstract init(params): void` ### Parameters - **params** (ControllerInitParams) - Required - The initialization parameters. ### Returns `void` ### See serialize ``` -------------------------------- ### Create project directory Source: https://docs.novorender.com/docs/web_api/tutorial/webpack_getting_started Creates an empty directory for the new project. ```bash mkdir my-novorender-app ``` -------------------------------- ### init() Source: https://docs.novorender.com/docs/web_api/api_reference/classes/CadRightPanController Initializes the controller from parameters. ```APIDOC ## Method: init ### Signature ```typescript init(params: ControllerInitParams): void; ``` ### Description Initialize controller from parameters. ### Parameters - **params** (ControllerInitParams) - Required - The initialization parameters. ### Returns - **void** ### See - serialize ### Inherited from - `FlightController.init` ``` -------------------------------- ### C# HTTP client example for Get Omega365 org units Source: https://docs.novorender.com/docs/data_rest_api/v2/get-omega-365-org-units C# code using HttpClient to send a GET request to the endpoint with Bearer token authorization. ```csharp var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://data-v2.novorender.com/explorer/:sceneId/omega365/org-units"); request.Headers.Add("Accept", "application/json"); request.Headers.Add("Authorization", "Bearer "); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ``` -------------------------------- ### Create Project using HttpClient Source: https://docs.novorender.com/docs/data_rest_api/v2/create-project Example of creating a project by sending a POST request to the Novorender API using C# HttpClient. ```csharp var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Post, "https://data-v2.novorender.com/organizations/:orgId/projects"); request.Headers.Add("Accept", "application/json"); request.Headers.Add("Authorization", "Bearer "); var content = new StringContent("{\n \"name\": \"My new project\",\n \"description\": \"My new project description\",\n \"id\": \"0123456789abcdef0123456789abcdef\",\n \"epsg\": \"5105\",\n \"copy\": {\n \"id\": \"0123456789abcdef0123456789abcdef\",\n \"settings\": true,\n \"users_roles\": true,\n \"groups\": true,\n \"folders\": true,\n \"wms\": true,\n \"deviations\": true,\n \"starred_properties\": true\n },\n \"tags\": [\n {\n \"id\": \"tag_1\",\n \"name\": \"value_1\"\n },\n {\n \"id\": \"tag_2\"\n }\n ]\n}", null, "application/json"); request.Content = content; var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ``` -------------------------------- ### Common rule set example JSON payload Source: https://docs.novorender.com/docs/guides/managing_rules Example JSON payload for a common rule set with an object filter and a rule that generates a GUID when the condition is true. ```json { "version": "1.1", "regexDocumentation": "https://cplusplus.com/reference/regex/ECMAScript/", "ruleSets": [ { "type": "common", "outputPropertySet": "Ruleset", "rules": [ { "comment": "Rule 1 comment text", "objectFilter": [ { "objectFilterSet": [ { "property": "IfcClass", "regex": "IfcWindow" }, "&", { "property": "Material", "regex": "Glass" } ] } ], "rule": [ { "property": "Location/Global Z", "regex": "", "min": 5 } ], "result": { "true": { "action": "generateGuid" } } } ] } ] } ``` -------------------------------- ### Initialize Vite Project with NPM Source: https://docs.novorender.com/docs/web_api/tutorial/vite_react_getting_started Commands to create a new Vite project with React and TypeScript using NPM. ```bash # npm 6.x npm create vite@latest my-novorender-app --template react-ts # npm 7+, extra double-dash is needed: npm create vite@latest my-novorender-app -- --template react-ts ``` -------------------------------- ### Get measure entity with CoreModule.pickMeasureEntity Source: https://docs.novorender.com/docs/guides/parametric_measure Use 'view.pick' to obtain a PickSample, then call 'view.measure.core.pickMeasureEntity' with the objectId and position to get a measure entity. The example shows the required variable 'measureView' from the view.measure promise. ```typescript const view = new View(canvas, deviceProfile); const result = await view.pick(x, y); if (result) { const entity = await measureView.core.pickMeasureEntity(objectId, position); } ``` -------------------------------- ### run() Source: https://docs.novorender.com/docs/web_api/api_reference/classes/View Starts the main render loop for the view. ```APIDOC ## run() ### Description Starts the main render loop for the view. ### Method run ### Signature run(abortSignal?): Promise; ### Parameters - **abortSignal?** (AbortSignal) - Optional - Signal to abort any pending downloads and exit render loop. ### Returns `Promise`<`void`> ### Remarks This method will not exit until you signal the abortSignal. ``` -------------------------------- ### Navigate into project directory Source: https://docs.novorender.com/docs/web_api/tutorial/webpack_getting_started Changes the current directory to the newly created project folder. ```bash cd my-novorender-app ``` -------------------------------- ### C# GET request example using HttpClient with Bearer token Source: https://docs.novorender.com/docs/data_rest_api/v2/get-search-form C# code using HttpClient to send a GET request to the Get search form endpoint. It sets HTTP Accept to application/json and Authorization header with Bearer token, awaits the response, calls EnsureSuccessStatusCode, and outputs the response body. ```csharp var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://data-v2.novorender.com/forms/projects/:sceneId/objects/:objectGuid/forms/:formId"); request.Headers.Add("Accept", "application/json"); request.Headers.Add("Authorization", "Bearer "); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ``` -------------------------------- ### Response example (200 OK) Source: https://docs.novorender.com/docs/data_rest_api/v2/get-scenes-object-group-ids Example response body showing an array of int32 values. The response is an array of integers. ```json [ [ 0 ] ] ``` -------------------------------- ### GET https://data-v2.novorender.com/forms/projects/:sceneId/objects/:objectGuid/forms/:formId Source: https://docs.novorender.com/docs/data_rest_api/v2/get-search-form Raw HTTP request line for the Get search form endpoint. The URL includes path parameters sceneId, objectGuid, and formId, and is the root request that the C# example sends. ```http GET https://data-v2.novorender.com/forms/projects/:sceneId/objects/:objectGuid/forms/:formId ``` -------------------------------- ### C# HttpClient request example Source: https://docs.novorender.com/docs/data_rest_api/v2/get-all-assigned-tags-for-project Example implementation using C# HttpClient to fetch project tags with an authorization token. ```csharp var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://data-v2.novorender.com/projects/:projectId/tags"); request.Headers.Add("Accept", "application/json"); request.Headers.Add("Authorization", "Bearer "); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ``` -------------------------------- ### C# HttpClient GET location form Source: https://docs.novorender.com/docs/data_rest_api/v2/get-location-form C# example using HttpClient to send a GET request to the location form endpoint. Adds Accept and Authorization headers with a bearer token. Prints the response content after ensuring success. ```csharp var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://data-v2.novorender.com/forms/projects/:sceneId/location/:templateId/:formId"); request.Headers.Add("Accept", "application/json"); request.Headers.Add("Authorization", "Bearer "); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ``` -------------------------------- ### Create and run the View in App.tsx Source: https://docs.novorender.com/docs/web_api/tutorial/vite_react_getting_started Initialize the View with the canvas and device profile, then execute the run method. ```tsx ... import { View } from "@novorender/api"; const view = new View(canvas, deviceProfile); await view.run(); ... ``` -------------------------------- ### Initialize a View Source: https://docs.novorender.com/docs/guides/views Creates a new View instance using the provided canvas and device profile. ```javascript const view = new View(canvas, deviceProfile); ``` -------------------------------- ### C# HttpClient request for project version delta Source: https://docs.novorender.com/docs/data_rest_api/v2/get-project-version-delta-info Example of how to perform the GET request using C# HttpClient with an authorization bearer token. ```csharp var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://data-v2.novorender.com/projects/:projectId/versions/:versionId/delta"); request.Headers.Add("Authorization", "Bearer "); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ``` -------------------------------- ### Response Example (200 OK) - Permission Array Source: https://docs.novorender.com/docs/data_rest_api/v2/get-role-permissions Example of a successful response for the Get role permissions endpoint. The response is an array where each item includes a roleId, scope object, and permissionIds. The scope contains organizationId, projectId, resourcePath, resourceType, viewerSceneId, and isOrgLevel. ```json [ { "roleId": "string", "scope": { "organizationId": "string", "projectId": "string", "resourcePath": "string", "resourceType": "string", "viewerSceneId": "string", "isOrgLevel": true }, "permissionIds": [ "string" ] } ] ``` ```json [ { "roleId": "string", "scope": { "organizationId": "string", "projectId": "string", "resourcePath": "string", "resourceType": "string", "viewerSceneId": "string", "isOrgLevel": true }, "permissionIds": [ "string" ] } ] ``` ```json [ { "roleId": "string", "scope": { "organizationId": "string", "projectId": "string", "resourcePath": "string", "resourceType": "string", "viewerSceneId": "string", "isOrgLevel": true }, "permissionIds": [ "string" ] } ] ``` -------------------------------- ### Folder response schema example Source: https://docs.novorender.com/docs/data_rest_api/v2/add-folder-to-project An example JSON response structure returned upon successfully adding a folder to a project. ```json { "id": "string", "name": "string", "source": "string", "folders": [ null ], "files": [ { "id": "string", "name": "string", "source": "string", "wms": "string", "wcs": "string", "lastUpdatedBy": "string", "lastUpdatedAt": "2024-07-29T15:51:28.071Z", "resourceId": "string", "position": [ 0, 0, 0 ], "rotation": [ 0, 0, 0, 1 ], "scale": [ 1, 1, 1 ], "uploadId": "string", "version": 0, "size": 0, "error": "string", "tags": [ { "id": "status", "name": "approved" } ], "state": "skip", "deleted": true, "types": [ { "type": "string", "size": 0 } ], "parsers": [ { "parser": "string", "size": 0 } ] } ], "size": 0, "lastUpdatedBy": "string", "lastUpdatedAt": "2024-07-29T15:51:28.071Z", "tags": [ { "id": "status", "name": "approved" } ], "state": "skip", "position": [ 0, 0, 0 ], "rotation": [ 0, 0, 0, 1 ], "scale": [ 1, 1, 1 ], "deleted": true } ``` -------------------------------- ### GET /forms/projects/:sceneId/objects/:objectGuid/forms Source: https://docs.novorender.com/docs/data_rest_api/v2/get-all-search-forms-associated-with-the-object Retrieves all search forms associated with the specified object. The endpoint requires the scene ID and object GUID as path parameters. ```APIDOC ## GET /forms/projects/:sceneId/objects/:objectGuid/forms ### Description Get all search forms associated with the object. ### Method GET ### Endpoint /forms/projects/:sceneId/objects/:objectGuid/forms ### Parameters #### Path Parameters - **sceneId** (string) - Required - The ID of the scene. - **objectGuid** (string) - Required - The GUID of the object. ### Response #### Success Response (200) OK #### Error Responses - **401** - Unauthorized - **403** - Forbidden - **404** - Not Found - **500** - Internal Server Error ``` -------------------------------- ### C# HttpClient example for resource access Source: https://docs.novorender.com/docs/data_rest_api/v2/get-file-folder-resource-access C# code using HttpClient to send a GET request to the resource access endpoint. It adds Accept and Authorization headers and prints the response. ```csharp var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://data-v2.novorender.com/roles/organizations/:organization/projects/:project/resource-access/:resource"); request.Headers.Add("Accept", "text/plain"); request.Headers.Add("Authorization", "Bearer "); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ``` -------------------------------- ### Response example (string) Source: https://docs.novorender.com/docs/data_rest_api/v2/get-file-log Example response body for a successful request. The response is a plain text string. ```json "string" ``` -------------------------------- ### Initialize Vite Project with pnpm Source: https://docs.novorender.com/docs/web_api/tutorial/vite_react_getting_started Command to create a new Vite project with React and TypeScript using pnpm. ```bash pnpm create vite my-novorender-app --template react-ts ``` -------------------------------- ### C# HttpClient Request Source: https://docs.novorender.com/docs/data_rest_api/v2/get-role-permissions C# example using HttpClient to send a GET request to the endpoint with Accept header set to text/plain and a Bearer token for authorization. EnsureSuccessStatusCode throws on non-success responses. ```csharp var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://data-v2.novorender.com/roles/:roleId/permissions"); request.Headers.Add("Accept", "text/plain"); request.Headers.Add("Authorization", "Bearer "); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ``` -------------------------------- ### C# HTTPClient example Source: https://docs.novorender.com/docs/data_rest_api/v2/search-for-entra-groups C# example using HttpClient to send a POST request to the search endpoint with a Bearer token. ```csharp var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Post, "https://data-v2.novorender.com/organizations/:orgId/entra/groups/search"); request.Headers.Add("Accept", "application/json"); request.Headers.Add("Authorization", "Bearer "); var content = new StringContent("{\n \"searchText\": \"string\"\n}", null, "application/json"); request.Content = content; var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ``` -------------------------------- ### Example response for roles-with-access Source: https://docs.novorender.com/docs/data_rest_api/v2/calculate-roles-with-access-to-scope An example response body showing the structure of the returned data, including permission and role assignment information. ```json [ { "permission": { "id": "string", "name": "string", "description": "string", "children": [ null ], "isRootOnly": true, "isReadOnlyPermission": true }, "roleAssignmentInfo": [ { "role": { "id": "string", "name": "string", "description": "string", "isFrozenForChanges": true, "isOrganizationRole": true, "scope": { "organizationId": "string", "projectId": "string", "resourcePath": "string", "resourceType": "string", "viewerSceneId": "string", "isOrgLevel": true } }, "type": "Direct", "scope": { "organizationId": "string", "projectId": "string", "resourcePath": "string", "resourceType": "string", "viewerSceneId": "string", "isOrgLevel": true } } ] } ] ``` -------------------------------- ### get zoomPos() Source: https://docs.novorender.com/docs/web_api/api_reference/classes/CadRightPanController Gets the input zoom position. ```APIDOC ## Property: zoomPos ### Get Signature ```typescript get zoomPos(): number[]; ``` ### Description The input zoom position. ### Returns - **number[]** - The zoom position array. ### Inherited from - `FlightController.zoomPos` ``` -------------------------------- ### Initialize Vite Project with Yarn Source: https://docs.novorender.com/docs/web_api/tutorial/vite_react_getting_started Command to create a new Vite project with React and TypeScript using Yarn. ```bash yarn create vite my-novorender-app --template react-ts ``` -------------------------------- ### get width() Source: https://docs.novorender.com/docs/web_api/api_reference/classes/CadRightPanController Gets the input element width. ```APIDOC ## Property: width ### Get Signature ```typescript get width(): number; ``` ### Description The input element width. ### Returns - **number** - The width value. ### Inherited from - `FlightController.width` ``` -------------------------------- ### get renderState(): RenderState Source: https://docs.novorender.com/docs/web_api/api_reference/classes/View Gets the current render state. ```APIDOC ## get renderState(): RenderState ### Description Gets the current render state. ### Method GET ### Endpoint View.renderState ### Returns `RenderState` ``` -------------------------------- ### get renderContext(): undefined | RenderContext Source: https://docs.novorender.com/docs/web_api/api_reference/classes/View Gets the render context. ```APIDOC ## get renderContext(): undefined | RenderContext ### Description Gets the render context. ### Method GET ### Endpoint View.renderContext ### Returns `undefined` | `RenderContext` ``` -------------------------------- ### Example response JSON Source: https://docs.novorender.com/docs/data_rest_api/v2/get-projects-explorer-info Example response body for a successful 200 request. Shows the structure of the project explorer info, including features and permissions. ```json [ { "id": "string", "name": "string", "description": "Project description", "viewCount": 0, "epsg": "5105", "bounds": [ 0 ], "tags": [ { "id": "status", "name": "approved" } ], "permissions": [ "project:view" ], "created": "2024-07-29T15:51:28.071Z", "modified": "2024-07-29T15:51:28.071Z", "features": { "debugInfo": { "quality": true, "boundingBoxes": true, "holdDynamic": true, "render": true, "queueSize": true, "performanceTab": true }, "render": { "full": true }, "BIM360": true, "Trimble": true, "Sharepoint": true, "Procore": true, "bimcollab": true, "bimTrack": true, "ditio": true, "jira": true, "xsiteManage": true, "omega365": true, "omega365new": true, "omegaPims365": true, "forms": true, "arcgis": true, "doubleSided": true, "offline": true, "newUx": true, "bakeResources": true, "vr": true, "service": true } } ] ```