### Google Analytics Configuration Source: https://get-started.aps.autodesk.com/ This script initializes and configures Google Analytics tracking for the website. It sets up the data layer and sends an initial configuration event with IP anonymization enabled. ```javascript function gtag() { dataLayer.push(arguments) } window.dataLayer = window.dataLayer || [], gtag("js", new Date), gtag("config", "G-5DQ48W5MB1", { anonymize_ip: !0 }) ``` -------------------------------- ### Developer Resources Links Source: https://aps.autodesk.com/customer-stories/imaginit Links to key developer resources for Autodesk Platform Services, including getting started guides, API documentation, and finding system integrators. ```html Start Building Explore the APIs and Services Find a Systems Integrator ``` -------------------------------- ### Docusaurus Theme Initialization Source: https://get-started.aps.autodesk.com/ This JavaScript code handles the initialization of the Docusaurus theme. It checks for a theme parameter in the URL or retrieves it from local storage, defaulting to 'light' if neither is found, and applies the theme to the document. ```javascript function t(t) { document.documentElement.setAttribute("data-theme", t) } var e = function() { var t = null; try { t = new URLSearchParams(window.location.search).get("docusaurus-theme") } catch (t) {} return t }() || function() { var t = null; try { t = localStorage.getItem("theme") } catch (t) {} return t }(); t(null !== e ? e : "light") ``` -------------------------------- ### Provision Access in Autodesk BIM 360 Source: https://get-started.aps.autodesk.com/ Configures your APS application to access data within a BIM 360 account. This involves creating a custom integration via the BIM 360 Account Admin settings, specifying access permissions and application details. ```APIDOC APIDOC: ProvisionAccess_BIM360: description: "Enables APS application integration with Autodesk BIM 360." steps: - action: "Log in to BIM 360 Account." details: "Navigate to Account Admin." - action: "Navigate to Custom Integrations." details: "On the Account Admin page, go to 'Settings' and select the 'Custom Integrations' tab." - action: "Start Integration Wizard." details: "Use the 'Add Custom Integration' button." - action: "Select Access." details: "Ensure 'BIM 360 Account Administration' and 'Document Management' are checked. Click 'Next'." - action: "Identify Developer Role." details: "Choose 'I'm the developer'. Click 'Next'." - action: "Provide Application Details." parameters: - name: "BIM 360 Account ID" type: "string" description: "Your BIM 360 account ID (obtainable from the current page). required: true - name: "Client ID" type: "string" description: "Your APS application's unique client ID (found on https://aps.autodesk.com/myapps). required: true - name: "App Name" type: "string" description: "The name of your APS application. required: true notes: - "Consider storing the Client ID in the 'App Description' field for future reference, as it won't be visible after creation." - "If the account admin is not the APS app owner, use 'Invite a developer' option." - action: "Save Integration." details: "Scroll down and click the 'Save' button." outcome: description: "Your APS application can now use APS services (e.g., Data Management API, BIM 360 API) to access information from projects under this BIM 360 account without further provisioning." dependencies: - "BIM 360 account with admin access." - "APS application Client ID and App Name." ``` -------------------------------- ### Initialize Pendo SDK Source: https://aps.autodesk.com/developer/overview/maya Initializes the Pendo SDK with visitor data and configuration. It sets the visitor ID, role, and excludes all text from being tracked. This setup is crucial for integrating Pendo analytics into your application. ```javascript pendo.initialize({ visitor: { id: '', role: 'anonymous', }, excludeAllText: true, }); ``` -------------------------------- ### Provision Access in Autodesk Construction Cloud (ACC) Source: https://get-started.aps.autodesk.com/ Enables your APS application to access data within an ACC account. This process involves creating a custom integration within the ACC Account Administration portal, requiring your APS application's Client ID. ```APIDOC APIDOC: ProvisionAccess_ACC: description: "Enables APS application integration with Autodesk Construction Cloud." steps: - action: "Log in to ACC Account Administration." details: "Navigate to Account Administration from your ACC account overview or a specific project." - action: "Navigate to Custom Integrations." details: "On the Account Admin page, select 'Custom Integrations'." - action: "Add Custom Integration." details: "Click the 'Add Custom Integration' button." - action: "Fill Integration Details." parameters: - name: "Client ID" type: "string" description: "Your APS application's unique client ID." required: true - name: "Custom integration name" type: "string" description: "A descriptive name for this integration." required: true - name: "Description" type: "string" description: "Optional description for the integration." required: false - action: "Save Integration." details: "Click the 'Add' button to complete the process." outcome: description: "Your APS application can now use APS services (e.g., Data Management API, ACC API) to access information from projects under this ACC account." dependencies: - "Autodesk Construction Cloud (ACC) account with admin access." - "APS application Client ID." ``` -------------------------------- ### Docusaurus Base URL Banner Script Source: https://get-started.aps.autodesk.com/ This JavaScript code inserts a banner into the Docusaurus site to alert users about potential base URL configuration issues. It checks the current path and suggests a corrected base URL if needed. ```javascript function maybeInsertBanner(){ window.__DOCUSAURUS_INSERT_BASEURL_BANNER && insertBanner() } function insertBanner() { var n = document.getElementById("__docusaurus-base-url-banner-container"); if (n) { n.innerHTML = '\n
\n'; var e = document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"), s = window.location.pathname, r = "/" === s.substr(-1) ? s : s + "/"; e.innerHTML = r } } window.__DOCUSAURUS_INSERT_BASEURL_BANNER = !0, document.addEventListener("DOMContentLoaded", maybeInsertBanner) ``` -------------------------------- ### Autodesk Maya SDK HTML Documentation Source: https://aps.autodesk.com/developer/overview/maya Offers downloadable HTML versions of the Software Development Kit (SDK) documentation for various Autodesk Maya releases. These files provide detailed guides, tutorials, and API references for Maya development. ```HTML Maya 2020 Developer Help: - Download HTML: https://www.autodesk.com/content/dam/autodesk/files/maya-2020-developer-help.zip Maya 2019 Developer Help: - View online: https://www.autodesk.com/maya-sdkdoc-2019-enu - Download HTML: http://download.autodesk.com/us/adn/products/maya/maya-2019-developer-help_enu_offline.zip Maya 2018.3 Developer Help: - View online: http://www.autodesk.com/maya-sdkdoc-2018-enu - Download HTML: https://www.autodesk.com/content/dam/autodesk/files/maya-2018.3-update-developer-help-enu.zip Maya 2018.2 Developer Help: - Download HTML: http://images.autodesk.com/adsk/files/maya-2018.2-update-developer-help-enu.zip Maya 2018 Developer Help: - Download HTML: http://images.autodesk.com/adsk/files/maya-2018-developer-help_ENU.zip Maya 2017 Update 4 Developer Help: - View online: https://www.autodesk.com/maya-sdkdoc-2017-enu - Download HTML: http://images.autodesk.com/adsk/files/maya-2017-developer-helpENU.zip Maya 2017 Update 3 Developer Help: - Download HTML: http://images.autodesk.com/adsk/files/maya-2017-update3-developer-help-enu.zip Maya 2017 Update 2 Developer Help: - Download HTML: http://images.autodesk.com/adsk/files/maya-2017-update2-developer-help-enu.zip Maya 2017 Developer Help: - Download HTML: http://images.autodesk.com/adsk/files/maya-2017-developer-help-enu Maya 2016 Extension 2 Developer Help: - View online: https://www.autodesk.com/maya-sdkdoc-2016-enu - Download HTML: https://www.autodesk.com/content/autodesk/global/en/maya-sdkdoc-2016-download-enu/maya-2016-ext2-developer-help.zip Maya 2016 Developer Help: - Download HTML: https://www.autodesk.com/content/autodesk/global/en/maya-sdkdoc-2016-download-enu/maya-2016-developer-help.zip ``` -------------------------------- ### Initialize Pendo Analytics Source: https://aps.autodesk.com/customer-stories/swapp Initializes the Pendo analytics SDK for tracking user behavior and application usage. It sets up visitor properties and excludes text from tracking. ```javascript if (!('pendo' in window)) { window.pendo = { _q: [] }; for (const func_name of ['initialize', 'identify', 'updateOptions', 'pageLoad', 'track']) { pendo[func_name] = function () { if (func_name === 'initialize') { pendo._q.unshift([func_name, ...arguments]) } else { pendo._q.push([func_name, ...arguments]) } } } } pendo.initialize({ visitor: { id: '', role: 'anonymous', }, excludeAllText: true, }) ``` -------------------------------- ### Initialize Pendo SDK Source: https://aps.autodesk.com/ This snippet initializes the Pendo SDK, setting up visitor properties and configuration options. It ensures Pendo is initialized only once and queues commands if Pendo is not yet available. ```javascript if (!('pendo' in window)) { window.pendo = { _q: [] }; for (const func_name of ['initialize', 'identify', 'updateOptions', 'pageLoad', 'track']) { pendo[func_name] = function() { if (func_name === 'initialize') { pendo._q.unshift([func_name, ...arguments]); } else { pendo._q.push([func_name, ...arguments]); } } } } pendo.initialize({ visitor: { id: '', role: 'anonymous', }, excludeAllText: true, }); ``` -------------------------------- ### Pendo Initialization Script Source: https://aps.autodesk.com/customer-stories/roche This JavaScript snippet initializes the Pendo analytics tool. It ensures Pendo is available and sets up basic visitor information if it's not already loaded, preparing it for subsequent tracking or identification calls. ```javascript if (!('pendo' in window)) { window.pendo = { _q: [] }; for (const func_name of ['initialize', 'identify', 'updateOptions', 'pageLoad', 'track']) { pendo[func_name] = function () { if (func_name === 'initialize') { pendo._q.unshift([func_name, ...arguments]) } else { pendo._q.push([func_name, ...arguments]) } } } } pendo.initialize({ visitor: { id: '', role: 'anonymous', }, excludeAllText: true, }) ``` -------------------------------- ### Pendo Initialization Source: https://aps.autodesk.com/customer-stories/earthcam Initializes the Pendo analytics and user feedback tool. It sets up visitor information and excludes text from tracking. ```javascript if (!('pendo' in window)) { window.pendo = {_q: []}; for (const func_name of ['initialize', 'identify', 'updateOptions', 'pageLoad', 'track']) { pendo[func_name] = function () { if (func_name === 'initialize') { pendo._q.unshift([func_name, ...arguments]) } else { pendo._q.push([func_name, ...arguments]) } } } } pendo.initialize({ visitor: { id: '', role: 'anonymous', }, excludeAllText: true, }) ``` -------------------------------- ### Common RF Dual List Selector Empty Table Commentary Source: https://aps.autodesk.com/DevCon Commentary for an empty state in a dual list selector table, guiding users to select attributes for sessions. ```APIDOC common.rfDualListSelector.selectedTable.emptyTable.emptyState.commentary: value: "Choose at least one attribute you want to include about sessions." ``` -------------------------------- ### Analytics and Pendo Initialization Source: https://aps.autodesk.com/customer-stories/limbforge This snippet includes JavaScript code for setting a user language preference and initializing the Pendo analytics tool. It ensures Pendo is configured with visitor information and handles potential script loading. ```javascript window._privacyUserLanguage = "ja"; (function(a,b,c,d){ a='https://tags.tiqcdn.com/utag/autodesk/forge-web/prod/utag.js'; b=document;c='script';d=b.createElement(c);d.src=a;d.type='text/java'+c;d.async=true; a=b.getElementsByTagName(c)[0];a.parentNode.insertBefore(d,a); })(); if (!('pendo' in window)) { window.pendo = {_q: []}; for (const func_name of ['initialize', 'identify', 'updateOptions', 'pageLoad', 'track']) { pendo[func_name] = function () { if (func_name === 'initialize') { pendo._q.unshift([func_name, ...arguments]) } else { pendo._q.push([func_name, ...arguments]) } } } } pendo.initialize({ visitor: { id: '', role: 'anonymous', }, excludeAllText: true, }) ``` -------------------------------- ### Rainfocus Utility Functions Source: https://aps.autodesk.com/DevCon A collection of utility functions for common web development tasks. Includes decoding HTML entities, loading scripts, splitting strings, formatting URL parameters, making GET requests, executing scripts with data, and managing DOM readiness. ```javascript window.Rainfocus.Utils = { decodeEntities: function (encodedString) { var textArea = document.createElement('textarea'); textArea.innerHTML = encodedString; return textArea.value; }, loadInlineScript: function (content, target) { var newScript = document.createElement("script"); var inlineScript = document.createTextNode(content); newScript.appendChild(inlineScript); target.appendChild(newScript); return newScript; }, loadURLScripts: function (urls, callback) { var l = new Loader(); l.require(urls, callback) }, split: function (value, separator) { if (value === null || value === undefined) return [""]; return value.split(separator); }, arrayToParam: function (key, value) { if (value === null && value === undefined && value.length === 0) return ''; return value.map(function (val) { return key + '=' + val; }).join('&') }, doGet: function (url, handler) { if(window.version) { url += (url.includes('?') ? '&' : '?') + "ver=" + window.version } if (window.fetch) { window.fetch( url, { method: 'get', credentials: 'include', headers: { 'Content-Type': 'application/x-www-form-urlencoded' } } ) .then(checkStatus) .then(handler) } else { if (!$ || !$.ajax) console.error("IMPORTANT!!!!!: Please include jquery ajax in branding footer for analytics to work"); else $.ajax({ url: url, method: 'GET', contentType: 'application/x-www-form-urlencoded' }) .done(handler); } }, executeScriptWithData: function (script, data) { if (script === null || script === undefined || script === '' || script.trim() === '') return; return new Function('data', script)(data); }, domReady: function (callback) { document.readyState === 'interactive' || document.readyState === 'complete' ? callback() : document.addEventListener('DOMContentLoaded', callback); }, waitForX: function waitForX(options) { var log = function log() { if (options.enableLogs) console.log.apply(console, arguments) } var logSuffix = options.logIdentifier ? ' -- \[' + options.logIdentifier + '\]' : '' var intervalFrequency = options.intervalFrequency || 100 var maxIterations = options.maxIterations || 100 // Do 1 immediate check before the interval starts. if (options.successCheck()) { log('SUCCESS (immediate), no interval needed' + logSuffix) options.onSuccess() return; } log('every ' + intervalFrequency + 'ms, for ' + intervalFrequency * maxIterations + 'ms' + logSuffix) var iterations = 0 var waitTimer = window.setInterval(function () { if (options.successCheck.apply(options)) { log('SUCCESS, waited: ' + ((iterations + 1) * intervalFrequency) + 'ms (' + (iterations + 1) + ' iterations)' + logSuffix) options.onSuccess.apply(options) window.clearInterval(waitTimer); log('cleared interval' + logSuffix) } if (iterations >= maxIterations) { // Safety net to ensure this interval won't run forever. log('TIMED OUT' + logSuffix) window.clearInterval(waitTimer) log('cleared interval' + logSuffix) if (options.onTimeout) { options.onTimeout.apply(options) } } iterations++ }, options.intervalFrequency) } }; ``` -------------------------------- ### Pendo Initialization Script Source: https://aps.autodesk.com/customer-stories/nbs Configures the Pendo analytics SDK for tracking user behavior. It ensures Pendo is initialized correctly, setting up visitor information and excluding text tracking. ```javascript if (!('pendo' in window)) { window.pendo = { _q: [] }; for (const func_name of ['initialize', 'identify', 'updateOptions', 'pageLoad', 'track']) { pendo[func_name] = function() { if (func_name === 'initialize') { pendo._q.unshift([func_name, ...arguments]); } else { pendo._q.push([func_name, ...arguments]); } }; } } pendo.initialize({ visitor: { id: '', role: 'anonymous' }, excludeAllText: true, }); ``` -------------------------------- ### Autodesk Forge APIs for Visualization and Data Processing Source: https://aps.autodesk.com/customer-stories/swapp This section documents key Autodesk Forge APIs used by SWAPP. It covers the Model Derivative API for file processing and the Viewer API for displaying 2D and 3D models within web applications, enabling interactive visualization and comparison. ```APIDOC API: Autodesk Forge 1. Model Derivative API - Purpose: Upload and translate design files (e.g., AutoCAD, Revit) into formats viewable by the Forge Viewer. It processes complex models into a hierarchical structure and generates different viewables. - Key Functionality: - Translating design files into SVF (Simple Vector Format) for web viewing. - Extracting metadata and geometry from models. - Generating 2D and 3D representations. - Usage Example (Conceptual): POST /modelDerivative/v2/des/jobs Body: { "input": { "urn": "