SuperViz for Autodesk Platform Services
Enhance your BIM Software with our SDK and API for easy integration of advanced collaboration features
Get started for freeSee live demoFor developers, by developers
Our straightforward, feature-complete API and SDK integrates into your project with minimal code
1import { Presence3D } from "@superviz/autodesk-viewer-plugin";2import { createRoom, Room } from '@superviz/room';3import { useCallback, useEffect, useRef } from "react";4import { v4 as generateId } from "uuid";56// Replace with your actual keys7const SUPERVIZ_KEY = "sv_YOUR_SUPERVIZ_KEY";89export function AutodeskWithSuperViz() {10const room = useRef<Room | null>(null);11const loaded = useRef<boolean>(false);12const autodesk = useRef<Presence3D>();13const viewerDiv = useRef<HTMLDivElement>();14const viewer = useRef<Autodesk.Viewing.GuiViewer3D | null>(null);1516const initializeSuperViz = useCallback(async () => {17const participantId = generateId();1819room.current = await createRoom({20developerToken: SUPERVIZ_KEY,21roomId: 'superviz-demo-autodesk-viewer',22participant: {23name: "Participant",24id: participantId,25avatar: {26imageUrl: 'https://production.cdn.superviz.com/static/default-avatars/1.png',27}28},29group: {30name: 'superviz-demo',31id: 'superviz-demo',32},33});3435autodesk.current = new Presence3D(viewer.current as Autodesk.Viewing.GuiViewer3D, {36isAvatarsEnabled: true,37isLaserEnabled: true,38isNameEnabled: true,39avatarConfig: {40height: 0,41scale: 1,42laserOrigin: { x: 0, y: 0, z: 0 },43},44});4546room.current.addComponent(autodesk.current);47}, []);4849const initializeAutodesk = useCallback(async () => {50if (loaded.current) return;51loaded.current = true;5253// Replace with your actual Autodesk options54const options = {55env: "AutodeskProduction2",56api: "streamingV2",57accessToken: "YOUR_AUTODESK_TOKEN",58};5960Autodesk.Viewing.Initializer(options, async () => {61viewerDiv.current = document.getElementById("forge-viewer") as HTMLDivElement;62viewer.current = new Autodesk.Viewing.GuiViewer3D(viewerDiv.current);6364await viewer.current!.start();65viewer.current!.setTheme("dark-theme");6667// Load your model68const documentId = "urn:YOUR_MODEL_URN";6970Autodesk.Viewing.Document.load(71documentId,72async (document) => {73// Document loaded successfully74const viewable = document.getRoot().getDefaultGeometry();75if (!viewable) return;7677try {78await viewer.current!.loadDocumentNode(document, viewable, {79applyScaling: 'meters'80});8182// Initialize SuperViz after model is loaded83await initializeSuperViz();84} catch (error) {85console.error('Failed to load document node:', error);86}87},88(error) => {89console.error('Failed to load document:', error);90}91);92});93}, [initializeSuperViz]);9495useEffect(() => {96initializeAutodesk();9798return () => {99// Clean up when component unmounts100room.current?.leave();101};102}, []);103104return (105<div className="h-screen w-full">106<div id="forge-viewer" className="w-full h-full" />107</div>108);109}
1import { Presence3D } from "@superviz/autodesk-viewer-plugin";2import { createRoom } from '@superviz/room';3import { ref, onMounted, onBeforeUnmount } from 'vue';4import { v4 as generateId } from "uuid";56export default {7setup() {8const room = ref(null);9const loaded = ref(false);10const viewer = ref(null);1112async function initializeSuperViz() {13const participantId = generateId();1415room.value = await createRoom({16developerToken: "YOUR_SUPERVIZ_KEY",17roomId: "superviz-demo-autodesk-viewer",18participant: {19name: "Participant",20id: participantId,21avatar: {22imageUrl: 'https://production.cdn.superviz.com/static/default-avatars/1.png',23}24},25group: {26name: "superviz-demo",27id: "superviz-demo",28},29});3031const autodeskPresence = new Presence3D(viewer.value, {32isAvatarsEnabled: true,33isLaserEnabled: true,34isNameEnabled: true,35});3637room.value.addComponent(autodeskPresence);38}3940async function initializeAutodesk() {41if (loaded.value) return;42loaded.value = true;4344const options = {45env: "AutodeskProduction2",46api: "streamingV2",47accessToken: "YOUR_AUTODESK_TOKEN",48};4950Autodesk.Viewing.Initializer(options, async () => {51const viewerDiv = document.getElementById('forge-viewer');52viewer.value = new Autodesk.Viewing.GuiViewer3D(viewerDiv);5354await viewer.value.start();5556// Load your model57const documentId = "urn:YOUR_MODEL_URN";5859Autodesk.Viewing.Document.load(60documentId,61async (document) => {62const viewable = document.getRoot().getDefaultGeometry();63if (!viewable) return;6465try {66await viewer.value.loadDocumentNode(document, viewable);67await initializeSuperViz();68} catch (error) {69console.error('Failed to load document node:', error);70}71},72(error) => {73console.error('Failed to load document:', error);74}75);76});77}7879onMounted(() => {80initializeAutodesk();81});8283onBeforeUnmount(() => {84if (room.value) {85room.value.leave();86}87});8889return {90initializeAutodesk91};92},93};
1import { Presence3D } from "@superviz/autodesk-viewer-plugin";2import { createRoom } from '@superviz/room';34// Replace with your actual SuperViz key5const SUPERVIZ_KEY = "YOUR_SUPERVIZ_KEY";67let room;8let viewer;910async function initializeSuperViz() {11// Generate a random participant ID12const participantId = 'user-' + Math.random().toString(36).substring(7);1314room = await createRoom({15developerToken: SUPERVIZ_KEY,16roomId: 'superviz-demo-autodesk-viewer',17participant: {18name: "Participant",19id: participantId,20avatar: {21imageUrl: 'https://production.cdn.superviz.com/static/default-avatars/1.png',22}23},24group: {25name: 'superviz-demo',26id: 'superviz-demo',27},28});2930const autodeskPresence = new Presence3D(viewer, {31isAvatarsEnabled: true,32isLaserEnabled: true,33isNameEnabled: true,34});3536room.addComponent(autodeskPresence);37}3839async function initializeAutodesk() {40// Replace with your actual Autodesk options41const options = {42env: "AutodeskProduction2",43api: "streamingV2",44accessToken: "YOUR_AUTODESK_TOKEN",45};4647Autodesk.Viewing.Initializer(options, async () => {48const viewerDiv = document.getElementById('forge-viewer');49viewer = new Autodesk.Viewing.GuiViewer3D(viewerDiv);5051await viewer.start();5253// Load your model54const documentId = "urn:YOUR_MODEL_URN";5556Autodesk.Viewing.Document.load(57documentId,58async (document) => {59const viewable = document.getRoot().getDefaultGeometry();60if (!viewable) return;6162try {63await viewer.loadDocumentNode(document, viewable);64await initializeSuperViz();65} catch (error) {66console.error('Failed to load document node:', error);67}68},69(error) => {70console.error('Failed to load document:', error);71}72);73});74}7576// Clean up function to be called when the application is closed77function cleanup() {78if (room) {79room.leave();80}81}
Why Choose SuperViz
Create your first proof of concept in minutes! Our tutorials and demos are here to guide you.
Intuitive documentation and a free account - The ideal combination to run your first tests.
We love collaboration! Our Discord community is open for feedback and support.
Get access to a demos and samples to build even faster.

Extend Autodesk Platform Services with a complete set of features

Real-time Co-Editing
Boost productivity by letting users collaboratively edit and work on documents,designs, or content in real-time. Witness the magic of multiple users bringing ideas to life simultaneously.
Contextual Comments
Add threaded comments for direct feedback on your Autodesk Platform Services dashboard. Add pins to specific notes to reduce miscommunication and ensure faster resolutions


Real-time mouse pointers
Enhance user engagement. Real-time mouse pointers seamlessly adapt, providing intuitive interactions inside your Autodesk Platform Services based dashboard.
See who's online
Add avatars, badges, profile images to your application to quickly see who is online inside the same room.


Video Huddle SDK
Integrate high-quality video conferencing directly into your app, allowing users to connect face-to-face for clearer communication, co-working and productivity.
AI Transcripts API
Easily bring AI to your video conference meetings with our AI Transcript API . Obtain essential meeting insights, generate concise summaries, pinpoint crucial decisions and much more.

Why extend your Autodesk Platforms Services Solution?
Real-Time Issue Resolution
Our tools allow for immediate identification and resolution of issues. Teams can address problems as they arise during the design and construction process, preventing delays and reducing the need for costly post-construction fixes.
Improved Risk Management
Collaborative BIM environments help in better identifying and managing risks. Teams can collectively assess potential risks in the design and construction phases, allowing for proactive mitigation strategies.
Comprehensive Documentation and Traceability
Enhance the documentation process, ensuring all changes and decisions are recorded. This traceability is crucial for accountability and future reference.
Remote Accessibility and Flexibility
Teams can collaborate from anywhere, breaking down geographical barriers. This flexibility is especially beneficial in today's global and often remote working environments.
Enhanced Team Synergy and Productivity
Enable teams to work more cohesively, leading to increased productivity. The seamless exchange of ideas and information fosters a more efficient and effective working environment.
Client and End-user Involvement
Remote Collaboration features can facilitate client and end-user involvement during the design phase, ensuring the final product meets or exceeds expectations.
What is SuperViz?
SuperViz offers developers a comprehensive SDK for building interactive, real-time features. Ideal for enhancing design and data workflows, it provides a collection of collaboration components that integrates into modern web-applications.
What is AutoDesk APS?
Autodesk Platform Services, is a set of evolving APIs and services to help you customize solutions, create innovative workflows, and integrate other tools and data with our platform.
This website uses cookies to give you the best experience.