Request

Response

    Create an Exchange Container

    The first step in creating a Data Exchange using the Data Exchange SDK is to create an empty Data Exchange container. This container is created on the hosting provider, such as Autodesk docs. and is used to store and manage the data for the Data Exchanges.

    To create the exchange container, call the CreateExchangeAsync method on the IClient Interface.

    Use the hosting provider APIs to list and navigate through the hubs, projects, and folders that you have access to.

    After calling the CreateExchangeAsync method, it will return the ExchangeDetails object. This object contains details such as CollectionId, ExchangeId, HubId, and more. These details together form the DataExchangeIdentifier, which serves as a unique identifier for a specific Data Exchange. You can use this identifier later when you want to read or write data to a particular Data Exchange.

    Note: At this point, we have only created an empty exchange container. In the subsequent sections, you will learn how to add data to the Data Exchange, which is stored within the exchange container.

        var ExchangeCreateRequest = new ExchangeCreateRequestACC()
        {
            Host = HostingProvider,
            Contract = new Autodesk.DataExchange.ContractProvider.ContractProvider(),
            Description = string.Empty,
            FileName = name,
            HubId = hubId,
            ACCFolderURN = folderUrn,
            ProjectId = projectId,
            ProjectType = projectType
        };
    
        var ExchangeDetails = await Client.CreateExchangeAsync(ExchangeCreateRequest);
    
        // The DataExchangeIdentifier will be required to identify the exchange for further API calls. 
        var DataExchangeIdentifier = new DataExchangeIdentifier
        {
            CollectionId = ExchangeDetails.CollectionID,
            ExchangeId = ExchangeDetails.ExchangeID,
            HubId = ExchangeDetails.HubId
        };
    
    Show More

    Add data to the exchange container

    You can add data to the exchange container using the ElementDataModel class.

    Understanding the ElementDataModel class

    The ElementDataModel class is a high-level data model abstraction over the base ExchangeData client-side model. This provides a convenient way to create and modify an exchange’s data on the client-side.

    ElementDataModel

    Element is a representation of an instance/entity within the Data Exchange. Elements are made up of a collection of Parameters and geometries and contain data about the Element such as units, transformation, and other metadata. ​

    The ElementDataModel abstraction provides an Elements property, which is a list of all the elements that exist within the exchange up to that version. The ElementDataModel also contains information about deltas that have been received after the initial retrieval and can provide a list of elements that were created, modified, or deleted for a specific set of revisions. Additionally, the ElementDataModel offers the TopLevelElements property, which retrieves a list of the top-level elements within this Data Exchange.

    Previously, Elements property was used to get the top-level elements and then called the GetFlattenedListOfElements method to obtain all the elements in the exchange. However, there is no longer a need to call any method to get all the elements present in the exchange, as the Elements property now retrieves all the elements in the exchange.


    The GetElementGeometriesByElementsAsync method gets the geometries such as BRep, Mesh, and Primitive Geometry for a list of elements and is the preferred method to retrieve geometries due to performance optimizations. Similarly, the GetElementGeometryByElementAsync(Element element) method helps in retrieving Geometry information associated with a single Element.

    Apart from the retrieval methods, the ElementDataModel abstraction also provides methods to create, modify, and delete elements from the list. The methods CreateGeometry and SetElementGeometryByElement are used in creating and mapping geometry to the elements of a Data Exchange.

    The ElementDataModel also contains SetViewableWorldCoordinates method for setting the viewable world coordinates of the ACC viewable. The previously used GenerateViewableAsync method is now deprecated. Use ElementDataModel.SetViewableWorldCoordinates for setting the coordinates during viewable generation. Please note that the SetViewableWorldCoordinates call should be made prior to the publish/sync (SyncExchangeDataAsync) call for proper functionality.

        ElementDataModel.SetViewableWorldCoordinates(new ViewableWorldCoordinates()
        {
            //default value will be UP=0 0 1, Front=0 -1 0, North=0 1 0
            UP = new Math.Vector3d(1, 0, 0),
            Front = new Math.Vector3d(0, 0, 1),
            North = new Math.Vector3d(0, 0, -1)
        });
    

    The SDK supports writing the following basic geometry data types:

    1. Brep/Mesh/IFC geometry through any generic file format, for example, BRep(STP), Mesh(OBJ), and IFC(IFC).
    2. Primitive geometry.

    Brep/Mesh/IFC Geometry

    The following code samples demonstrate how you can add Brep/Mesh/IFC geometry to the elements of an exchange.

    1. Create the ElementDataModel wrapper by calling the ElementDataModel.Create method and pass the instance of the exchange client (IClient).
    2. Call the AddElement method on the ElementDataModel to add a new element to the exchange. In the AddElement method, pass the id, name, category, family, and type of the element you want to add. This method is ideal when you want to add elements only at one level, that is, when there are no child elements.

      To add a child element to an existing element, call the AddElement method and pass the parent element as a parameter.

    3. Create Geometry using the ElementDataModel.CreateGeometry method and pass an instance of GeometryProperties. The GeometryProperties constructor requires a file path (such as STEP, IFC, OBJ, etc.) and an instance of RenderStyle.

      The RenderStyle instance holds the color details of the geometry in the Data Exchange. To apply the desired color to the geometry, create a RenderStyle instance with the required color and pass it, along with the file path, to the GeometryProperties constructor. This will apply the specified color to the geometry in the Data Exchange.

      Note: The RenderStyle applies single color to the entire body of the Data Exchange, so if your body contains different color and you pass the RenderStyle instance, the geometry will be overridden with the single color. The ideal scenario to use RenderStyle instance is when you want to apply single color to your geometry.

      If the RenderStyle instance is passed with a null value, the geometry will derive its color from the file specified in the first parameter of the GeometryProperties constructor. This file must contain the original color used to create the model of the Data Exchange, and the same color will then be applied to the geometry.

    4. Establish the relationship between the element and the geometry using the ElementDataModel.SetElementGeometryByElement method. This will add the geometry to the element of the exchange.

    Add geometry to the elements at one level (when child elements are not present)

        RGBA rgba = new RGBA(0,0,0,0);
        RenderStyle CommonRenderStyle = new RenderStyle("Name", rgba, 1);
        
        // Create ElementDataModel wrapper
        var ExchangeDataWrapper = ElementDataModel.Create(IClient);
        
        // Adds elements to the exchange (child elements are not present)
        var Element = ExchangeDataWrapper.AddElement(new ElementProperties("Id","elementname" "category", "family", "type"));
        
        // Create Geometry
        var Path = "FilePath";
        var Geometry = ExchangeDataWrapper.CreateGeometry(new GeometryProperties((Path, CommonRenderStyle));
        
        // Map elements and geometry.        
        var ElementGeometry = new List<ElementGeometry> { Geometry };
        ExchangeDataWrapper.SetElementGeometryByElement(Element, ElementGeometry);
    
    Show More

    Add geometries to the elements at hierarchy (when parent and child elements are present)

        // Adds elements to the parent and child elements of the exchange
        
        // Add parent elements to the exchange.
        var RebarParentElement  = ExchangeDataWrapper.AddElement(new ElementProperties("Id","elementname", "category", "family", "type"));
        
        // Add child elements to the exchange
        var RebarChildElement = ExchangeDataWrapper.AddElement(new ElementProperties { ElementId = $"Rebar-{i}-{j + 1}", Name = $"Rebar-{i}-{j + 1}", Transformation = childElementMatrix }, RebarParentElement);
        
        // Create Geometry
        var Path = "FilePath";
        var Geometry = ExchangeDataWrapper.CreateGeometry(new GeometryProperties((Path, CommonRenderStyle));
        
        // Map elements and geometry.       
        var RebarElementGeometry = new List<ElementGeometry>();
        RebarElementGeometry.Add(Geometry);
        ExchangeDataWrapper.SetElementGeometryByElement(RebarChildElement, RebarElementGeometry);
    
    Show More

    Primitive Geometry

    Generate a basic geometry using the Autodesk.GeometryPrimitive class.

    Create Primitive Geometry using the ElementDataModel.CreatePrimitiveGeometry method. This method requires GeometryProperties instance which requires the primitive geometry definition and a RenderStyle instance.

    If you want to add multiple primitive geometries to an element efficiently, it is recommended to use instance of GeometryContainer to create multiple primitive geometry.

    Here is an example of how to add two lines to a single element using GeometryContainer:

            var lineGeomContainer = new GeometryContainer()
            {
                Curves = new CurveArray()
                    {
                        new Line()
                        {
                            Position = new PrimitiveGeometry.Math.Point3d(0, 0, 0),
                            Direction = new PrimitiveGeometry.Math.Vector3d(1, 0, 0),
                            Range = new ParamRange(ParamRange.RangeType.Finite, -1000, 1000)
                        },
                        new Line()
                        {
                            Position = new PrimitiveGeometry.Math.Point3d(0, 0, 0),
                            Direction = new PrimitiveGeometry.Math.Vector3d(1, 0, 0),
                            Range = new ParamRange(ParamRange.RangeType.Finite, -1000, 1000)
                        },
        
                    }
            };
            
            var element = ElementDataModel.AddElement(new ElementProperties("Id","elementname", "category", "family", "type"));
        
            // Create Geometry
            var elementPrimitiveGeometry = ElementDataModel.CreatePrimitiveGeometry(new GeometryProperties(primitivegeometry, RenderStyle));
        
            // Map elements and geometry.
            var elementGeometry = new List<ElementGeometry> { elementPrimitiveGeometry };
            ElementDataModel.SetElementGeometryByElement(element, elementGeometry);
    
    Show More

    Apply Transformations to elements

    You can apply the transformation to a Data Exchange element by calling the overload of ElementDataModel.AddElement method, which accepts an ElementProperties construct with a 4d transformation matrix.

        var ElementProperty = new ElementProperties
        {
           Name = "Name_For_Element_Propeties",
           ElementId = "Id",
           Category = "category",
           Family = "family",
           Type = "type",
           Transformation = new Transformation
           {
               Matrix = new Matrix4d(new float[] {
                   1,
                   0,
                   0,
                   0,
                   0,
                   1,
                   0,
                   0,
                   0,
                   0,
                   1,
                   0,
                   0,
                   0,
                   0,
                   1})
           }
        };
        var element = ElementDataModel.AddElement(ElementProperty);
    
    Show More

    Set Units to elements

    The default values of LengthUnit and DisplayLengthUnit of the data exchange element and geometry are set to feet if not set explicitly.

    Important: It is recommended that you set the LengthUnit to match the host application’s document unit. For example, if you create a model in the host application in millimeter and create a data exchange without setting the length unit explicitly, then the data exchange will use the default units of measurement, which is ‘feet’, leading to a mismatch of units. This may lead to inaccurate data, unless you perform scaling of the geometry during both the creation and loading of the exchange to correct the values.

    To set units on the element use the ElementProperties object as shown in the following code sample.

        var element = ElementDataModel.AddElement(new ElementProperties("Id","elementname", "category", "family", "type")
        {
            LengthUnit = UnitFactory.MilliMeter,
            DisplayLengthUnit = UnitFactory.MilliMeter
        });
    

    To set units on the element geometry use the GeometryProperties object as shown in the following code sample.

        // Set units using GeometryProperties
        var Geometry = ElementDataModel.CreateGeometry(new GeometryProperties(Path, RenderStyle)
        {
            LengthUnit = UnitFactory.MilliMeter,
            DisplayLengthUnit = UnitFactory.MilliMeter,
            DisplayAngleUnit = UnitFactory.Radian
        });
    

    The Autodesk.DataExchange.SchemaObjects.Units.UnitFactory includes commonly supported units such as feet, meter, and inches.

    Add Parameters to elements

    There are two general types of parameters that can be added to an element:

    1. Built-In Parameters: Generate a ParameterDefinition instance using the static ParameterDefinition.Create method, which takes an Autodesk.Parameters.Parameter enum and a ParameterDataType enum as inputs. The specific type of parameter instance is determined by the ParameterDataType provided. After creating the parameter instance, assign a value to it.
    2. Custom Parameters: Use the static ParameterDefinition.Create method to generate a ParameterDefinition instance, where the method requires a string schemaId and an enum ParameterDataType as inputs. The nature of the parameter instance produced depends upon the provided ParameterDataType. Use IsCustomParameter=true instead of IsForceCheckFSSSChemaPresent which is deprecated in order to mark this parameter as custom parameter. Subsequently, assign a value to the recently instantiated parameter instance.

      To create the schemaId, you will require the schemaNamespace. When an exchange container is first created using the IClient.CreateExchangeAsync method, it returns an ExchangeDetails object, which contains a property called schemaNamespace. This schemaNamespace can be used to produce the schema ID. As a best practice, we should ideally avoid using ForgeParametersCLR or ForgeUnitsCLR directly for parameter processing (for example, create, update, etc.) to minimize the risk of breaking changes caused by updates to these assemblies.

    Create the parameter with the help of Element.CreateInstanceParameterAsync method and pass the instance of CustomParameter.

        // Instance parameters
        // Built-In Parameters   
        var Parameter = ParameterDefinition.Create(Autodesk.Parameters.Parameter.<Built-In-Parameter>, ParameterDataType);
        ((<Cast-As-Per-DataType>)Parameter).Value = data;
        element.CreateInstanceParameterAsync(Parameter);
        
        // Custom Parameters
        var SchemaId = "exchange.parameter." + schemaNamespace + ":<parameterTypeSchema>";
        ParameterDefinition CustomParameter = ParameterDefinition.Create(SchemaId, ParameterDataType);
        CustomParameter.Name =;
        CustomParameter.SampleText =;
        CustomParameter.Description =;
        CustomParameter.ReadOnly =;
        customParameterFloat.IsCustomParameter = true;
        CustomParameter.GroupID = Group.General.DisplayName();
        ((<Cast-As-Per-DataType>)CustomParameter).Value = data;
        element.CreateInstanceParameterAsync(CustomParameter);
    
    Show More

    Create the parameter with the help of ElementDataModel.CreateTypeParameterAsync method and pass the instance of CustomParameter.

    Type parameters are parameters that apply to all elements of a specific type. Modifying a type parameter will apply that change to all elements that belong to that type. This simplifies the management of common properties based on a common type.

    To create a type parameter, first ensure that the “type” has been defined. A type is automatically defined when an element specifies a type during its creation. Once the following line in the code sample is executed, the “MyType” type is defined and can be used to set type parameters.

    var Element = model.AddElement(new ElementProperties("<Id>", "<elementname>", "<category>", "<family>", "MyType"));
    

    At this point, other elements with the same type can also be created. All of these elements will share the same type parameters.

    To create a type parameter, use the ElementDataModel.CreateTypeParameterAsync method by passing in the “MyType” string and the parameter to set. This differs from instance parameters, where the parameter is set to the individual element. Type parameters, on the other hand, are shared across all elements of that type. An element’s TypeParameters property lists all the type parameters associated with that element.

        // Instance parameters
        // Built-In Parameters   
        var Parameter = ParameterDefinition.Create(parameterType, ParameterDataType.Int64);
        (Int64ParameterDefinition)Parameter).Value = 100;
        ElementDataModel.CreateTypeParameterAsync("MyType", Parameter);
        
        // Custom Parameters
        var SchemaId = "exchange.parameter." + schemaNamespace + ":<parameterTypeSchema>";
        ParameterDefinition CustomParameter = ParameterDefinition.Create(SchemaId, ParameterDataType);
        CustomParameter.Name =;
        CustomParameter.SampleText =;
        CustomParameter.Description =;
        CustomParameter.ReadOnly =;
        customParameterFloat.IsCustomParameter = true;
        CustomParameter.GroupID = Group.General.DisplayName();
        ((<Cast-As-Per-DataType>)CustomParameter).Value = data;
        ElementDataModel.CreateTypeParameterAsync("Generic Object",CustomParameter);	
    
    Show More

    ParameterDefinition types as per parameter data type:

    Publish/Sync

    In the preceding steps, we have already created the ElementDataModel and added geometry and parameters into it locally. To sync or update this data to the Data Exchange make a call to the SyncExchangeDataAsync method on the IClient interface.

        var ExchangeIdentifier = new DataExchangeIdentifier
        {
         CollectionId = CollectionID,
         ExchangeId = ExchangeID,
         HubId = hubId
        };
    
        var ExchangeData = ElementDataModel.ExchangeData;
        await IClient.SyncExchangeDataAsync(ExchangeIdentifier, ExchangeData);
    
    Show More

    Viewable generation

    Once the data has been synced to the Data Exchange, you can generate a visual representation of the data by calling the GenerateViewableAsync method on the IClient interface. This method requires inputs such as the exchange id, collection id, and viewableWorldCoordinates.

        IClient.GenerateViewableAsync(ExchangeId, CollectionId);
    

    The ExchangeId and CollectionId can be retrieved from the ExchangeDetails object returned by the CreateExchangeAsync method.

     
    ______
    icon-svg-close-thick

    Cookie preferences

    Your privacy is important to us and so is an optimal experience. To help us customize information and build applications, we collect data about your use of this site.

    May we collect and use your data?

    Learn more about the Third Party Services we use and our Privacy Statement.

    Strictly necessary – required for our site to work and to provide services to you

    These cookies allow us to record your preferences or login information, respond to your requests or fulfill items in your shopping cart.

    Improve your experience – allows us to show you what is relevant to you

    These cookies enable us to provide enhanced functionality and personalization. They may be set by us or by third party providers whose services we use to deliver information and experiences tailored to you. If you do not allow these cookies, some or all of these services may not be available for you.

    Customize your advertising – permits us to offer targeted advertising to you

    These cookies collect data about you based on your activities and interests in order to show you relevant ads and to track effectiveness. By collecting this data, the ads you see will be more tailored to your interests. If you do not allow these cookies, you will experience less targeted advertising.

    icon-svg-close-thick

    THIRD PARTY SERVICES

    Learn more about the Third-Party Services we use in each category, and how we use the data we collect from you online.

    icon-svg-hide-thick

    icon-svg-show-thick

    Strictly necessary – required for our site to work and to provide services to you

    Qualtrics
    We use Qualtrics to let you give us feedback via surveys or online forms. You may be randomly selected to participate in a survey, or you can actively decide to give us feedback. We collect data to better understand what actions you took before filling out a survey. This helps us troubleshoot issues you may have experienced. Qualtrics Privacy Policy
    Akamai mPulse
    We use Akamai mPulse to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Akamai mPulse Privacy Policy
    Digital River
    We use Digital River to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Digital River Privacy Policy
    Dynatrace
    We use Dynatrace to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Dynatrace Privacy Policy
    Khoros
    We use Khoros to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Khoros Privacy Policy
    Launch Darkly
    We use Launch Darkly to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Launch Darkly Privacy Policy
    New Relic
    We use New Relic to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. New Relic Privacy Policy
    Salesforce Live Agent
    We use Salesforce Live Agent to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Salesforce Live Agent Privacy Policy
    Wistia
    We use Wistia to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Wistia Privacy Policy
    Tealium
    We use Tealium to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Tealium Privacy Policy
    Upsellit
    We use Upsellit to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Upsellit Privacy Policy
    CJ Affiliates
    We use CJ Affiliates to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. CJ Affiliates Privacy Policy
    Commission Factory
    We use Commission Factory to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Commission Factory Privacy Policy
    Google Analytics (Strictly Necessary)
    We use Google Analytics (Strictly Necessary) to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Google Analytics (Strictly Necessary) Privacy Policy
    Typepad Stats
    We use Typepad Stats to collect data about your behaviour on our sites. This may include pages you’ve visited. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our platform to provide the most relevant content. This allows us to enhance your overall user experience. Typepad Stats Privacy Policy
    Geo Targetly
    We use Geo Targetly to direct website visitors to the most appropriate web page and/or serve tailored content based on their location. Geo Targetly uses the IP address of a website visitor to determine the approximate location of the visitor’s device. This helps ensure that the visitor views content in their (most likely) local language.Geo Targetly Privacy Policy
    SpeedCurve
    We use SpeedCurve to monitor and measure the performance of your website experience by measuring web page load times as well as the responsiveness of subsequent elements such as images, scripts, and text.SpeedCurve Privacy Policy
    Qualified
    Qualified is the Autodesk Live Chat agent platform. This platform provides services to allow our customers to communicate in real-time with Autodesk support. We may collect unique ID for specific browser sessions during a chat. Qualified Privacy Policy

    icon-svg-hide-thick

    icon-svg-show-thick

    Improve your experience – allows us to show you what is relevant to you

    Google Optimize
    We use Google Optimize to test new features on our sites and customize your experience of these features. To do this, we collect behavioral data while you’re on our sites. This data may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, your Autodesk ID, and others. You may experience a different version of our sites based on feature testing, or view personalized content based on your visitor attributes. Google Optimize Privacy Policy
    ClickTale
    We use ClickTale to better understand where you may encounter difficulties with our sites. We use session recording to help us see how you interact with our sites, including any elements on our pages. Your Personally Identifiable Information is masked and is not collected. ClickTale Privacy Policy
    OneSignal
    We use OneSignal to deploy digital advertising on sites supported by OneSignal. Ads are based on both OneSignal data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that OneSignal has collected from you. We use the data that we provide to OneSignal to better customize your digital advertising experience and present you with more relevant ads. OneSignal Privacy Policy
    Optimizely
    We use Optimizely to test new features on our sites and customize your experience of these features. To do this, we collect behavioral data while you’re on our sites. This data may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, your Autodesk ID, and others. You may experience a different version of our sites based on feature testing, or view personalized content based on your visitor attributes. Optimizely Privacy Policy
    Amplitude
    We use Amplitude to test new features on our sites and customize your experience of these features. To do this, we collect behavioral data while you’re on our sites. This data may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, your Autodesk ID, and others. You may experience a different version of our sites based on feature testing, or view personalized content based on your visitor attributes. Amplitude Privacy Policy
    Snowplow
    We use Snowplow to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Snowplow Privacy Policy
    UserVoice
    We use UserVoice to collect data about your behaviour on our sites. This may include pages you’ve visited. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our platform to provide the most relevant content. This allows us to enhance your overall user experience. UserVoice Privacy Policy
    Clearbit
    Clearbit allows real-time data enrichment to provide a personalized and relevant experience to our customers. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID.Clearbit Privacy Policy
    YouTube
    YouTube is a video sharing platform which allows users to view and share embedded videos on our websites. YouTube provides viewership metrics on video performance. YouTube Privacy Policy

    icon-svg-hide-thick

    icon-svg-show-thick

    Customize your advertising – permits us to offer targeted advertising to you

    Adobe Analytics
    We use Adobe Analytics to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Adobe Analytics Privacy Policy
    Google Analytics (Web Analytics)
    We use Google Analytics (Web Analytics) to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Google Analytics (Web Analytics) Privacy Policy
    AdWords
    We use AdWords to deploy digital advertising on sites supported by AdWords. Ads are based on both AdWords data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that AdWords has collected from you. We use the data that we provide to AdWords to better customize your digital advertising experience and present you with more relevant ads. AdWords Privacy Policy
    Marketo
    We use Marketo to send you more timely and relevant email content. To do this, we collect data about your online behavior and your interaction with the emails we send. Data collected may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, email open rates, links clicked, and others. We may combine this data with data collected from other sources to offer you improved sales or customer service experiences, as well as more relevant content based on advanced analytics processing. Marketo Privacy Policy
    Doubleclick
    We use Doubleclick to deploy digital advertising on sites supported by Doubleclick. Ads are based on both Doubleclick data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Doubleclick has collected from you. We use the data that we provide to Doubleclick to better customize your digital advertising experience and present you with more relevant ads. Doubleclick Privacy Policy
    HubSpot
    We use HubSpot to send you more timely and relevant email content. To do this, we collect data about your online behavior and your interaction with the emails we send. Data collected may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, email open rates, links clicked, and others. HubSpot Privacy Policy
    Twitter
    We use Twitter to deploy digital advertising on sites supported by Twitter. Ads are based on both Twitter data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Twitter has collected from you. We use the data that we provide to Twitter to better customize your digital advertising experience and present you with more relevant ads. Twitter Privacy Policy
    Facebook
    We use Facebook to deploy digital advertising on sites supported by Facebook. Ads are based on both Facebook data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Facebook has collected from you. We use the data that we provide to Facebook to better customize your digital advertising experience and present you with more relevant ads. Facebook Privacy Policy
    LinkedIn
    We use LinkedIn to deploy digital advertising on sites supported by LinkedIn. Ads are based on both LinkedIn data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that LinkedIn has collected from you. We use the data that we provide to LinkedIn to better customize your digital advertising experience and present you with more relevant ads. LinkedIn Privacy Policy
    Yahoo! Japan
    We use Yahoo! Japan to deploy digital advertising on sites supported by Yahoo! Japan. Ads are based on both Yahoo! Japan data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Yahoo! Japan has collected from you. We use the data that we provide to Yahoo! Japan to better customize your digital advertising experience and present you with more relevant ads. Yahoo! Japan Privacy Policy
    Naver
    We use Naver to deploy digital advertising on sites supported by Naver. Ads are based on both Naver data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Naver has collected from you. We use the data that we provide to Naver to better customize your digital advertising experience and present you with more relevant ads. Naver Privacy Policy
    Quantcast
    We use Quantcast to deploy digital advertising on sites supported by Quantcast. Ads are based on both Quantcast data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Quantcast has collected from you. We use the data that we provide to Quantcast to better customize your digital advertising experience and present you with more relevant ads. Quantcast Privacy Policy
    Call Tracking
    We use Call Tracking to provide customized phone numbers for our campaigns. This gives you faster access to our agents and helps us more accurately evaluate our performance. We may collect data about your behavior on our sites based on the phone number provided. Call Tracking Privacy Policy
    Wunderkind
    We use Wunderkind to deploy digital advertising on sites supported by Wunderkind. Ads are based on both Wunderkind data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Wunderkind has collected from you. We use the data that we provide to Wunderkind to better customize your digital advertising experience and present you with more relevant ads. Wunderkind Privacy Policy
    ADC Media
    We use ADC Media to deploy digital advertising on sites supported by ADC Media. Ads are based on both ADC Media data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that ADC Media has collected from you. We use the data that we provide to ADC Media to better customize your digital advertising experience and present you with more relevant ads. ADC Media Privacy Policy
    AgrantSEM
    We use AgrantSEM to deploy digital advertising on sites supported by AgrantSEM. Ads are based on both AgrantSEM data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that AgrantSEM has collected from you. We use the data that we provide to AgrantSEM to better customize your digital advertising experience and present you with more relevant ads. AgrantSEM Privacy Policy
    Bidtellect
    We use Bidtellect to deploy digital advertising on sites supported by Bidtellect. Ads are based on both Bidtellect data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Bidtellect has collected from you. We use the data that we provide to Bidtellect to better customize your digital advertising experience and present you with more relevant ads. Bidtellect Privacy Policy
    Bing
    We use Bing to deploy digital advertising on sites supported by Bing. Ads are based on both Bing data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Bing has collected from you. We use the data that we provide to Bing to better customize your digital advertising experience and present you with more relevant ads. Bing Privacy Policy
    G2Crowd
    We use G2Crowd to deploy digital advertising on sites supported by G2Crowd. Ads are based on both G2Crowd data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that G2Crowd has collected from you. We use the data that we provide to G2Crowd to better customize your digital advertising experience and present you with more relevant ads. G2Crowd Privacy Policy
    NMPI Display
    We use NMPI Display to deploy digital advertising on sites supported by NMPI Display. Ads are based on both NMPI Display data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that NMPI Display has collected from you. We use the data that we provide to NMPI Display to better customize your digital advertising experience and present you with more relevant ads. NMPI Display Privacy Policy
    VK
    We use VK to deploy digital advertising on sites supported by VK. Ads are based on both VK data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that VK has collected from you. We use the data that we provide to VK to better customize your digital advertising experience and present you with more relevant ads. VK Privacy Policy
    Adobe Target
    We use Adobe Target to test new features on our sites and customize your experience of these features. To do this, we collect behavioral data while you’re on our sites. This data may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, your Autodesk ID, and others. You may experience a different version of our sites based on feature testing, or view personalized content based on your visitor attributes. Adobe Target Privacy Policy
    Google Analytics (Advertising)
    We use Google Analytics (Advertising) to deploy digital advertising on sites supported by Google Analytics (Advertising). Ads are based on both Google Analytics (Advertising) data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Google Analytics (Advertising) has collected from you. We use the data that we provide to Google Analytics (Advertising) to better customize your digital advertising experience and present you with more relevant ads. Google Analytics (Advertising) Privacy Policy
    Trendkite
    We use Trendkite to deploy digital advertising on sites supported by Trendkite. Ads are based on both Trendkite data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Trendkite has collected from you. We use the data that we provide to Trendkite to better customize your digital advertising experience and present you with more relevant ads. Trendkite Privacy Policy
    Hotjar
    We use Hotjar to deploy digital advertising on sites supported by Hotjar. Ads are based on both Hotjar data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Hotjar has collected from you. We use the data that we provide to Hotjar to better customize your digital advertising experience and present you with more relevant ads. Hotjar Privacy Policy
    6 Sense
    We use 6 Sense to deploy digital advertising on sites supported by 6 Sense. Ads are based on both 6 Sense data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that 6 Sense has collected from you. We use the data that we provide to 6 Sense to better customize your digital advertising experience and present you with more relevant ads. 6 Sense Privacy Policy
    Terminus
    We use Terminus to deploy digital advertising on sites supported by Terminus. Ads are based on both Terminus data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Terminus has collected from you. We use the data that we provide to Terminus to better customize your digital advertising experience and present you with more relevant ads. Terminus Privacy Policy
    StackAdapt
    We use StackAdapt to deploy digital advertising on sites supported by StackAdapt. Ads are based on both StackAdapt data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that StackAdapt has collected from you. We use the data that we provide to StackAdapt to better customize your digital advertising experience and present you with more relevant ads. StackAdapt Privacy Policy
    The Trade Desk
    We use The Trade Desk to deploy digital advertising on sites supported by The Trade Desk. Ads are based on both The Trade Desk data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that The Trade Desk has collected from you. We use the data that we provide to The Trade Desk to better customize your digital advertising experience and present you with more relevant ads. The Trade Desk Privacy Policy
    RollWorks
    We use RollWorks to deploy digital advertising on sites supported by RollWorks. Ads are based on both RollWorks data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that RollWorks has collected from you. We use the data that we provide to RollWorks to better customize your digital advertising experience and present you with more relevant ads. RollWorks Privacy Policy

    Are you sure you want a less customized experience?

    We can access your data only if you select "yes" for the categories on the previous screen. This lets us tailor our marketing so that it's more relevant for you. You can change your settings at any time by visiting our privacy statement

    Your experience. Your choice.

    We care about your privacy. The data we collect helps us understand how you use our products, what information you might be interested in, and what we can improve to make your engagement with Autodesk more rewarding.

    May we collect and use your data to tailor your experience?

    Explore the benefits of a customized experience by managing your privacy settings for this site or visit our Privacy Statement to learn more about your options.