Understanding the Data Exchange SDK Framework
The Autodesk Data Exchange SDK (.NET) is a client-side component designed to build quick integrations into Data Exchange services. Additionally, it offers an optional UI component, which can be used to create connectors for applications. These connectors enable end-users to easily create and consume exchanges that are specific to their applications.
The SDK provides a client-side data model that represents the data in an exchange and synchronizes local changes to the data model with the corresponding exchange. Additionally, it initiates the required look-up calls to other Autodesk Platform Services to retrieve data necessary by users.
Building blocks
While working with data exchanges and data exchange SDK, you will come across the following terms that serve as the foundational elements for constructing data exchanges.
Term | Definition |
---|---|
Exchange | A container that stores information about the exchange data available within it. |
ExchangeData | The collection of assets, components (including design, geometry, parameters, and so on), and relationships that represent a Data Exchange. |
ElementDataModel | A data model that envelops an ExchangeData object as a wrapper, simplifying the creation and management of data within Data Exchanges. This model provides methods to create and update elements (assets), associate geometries, add parameters and units, apply transformations, and so on. |
Parameter | A parameter defines a specific value within a model element at a granular level. Its terminology may differ across various applications, including terms such as Parameter, Property, or Attribute. |
Contract | Specification of how data must be exchanged. |
Host | The cloud-based environment through which the exchange can be accessed. |
Source | The document location from which the data is extracted for the exchange. |
Fulfillment | A transaction in which a data exchange is set up and executed, leading to the creation of an exchange snapshot and a version snapshot. |
ExchangeSnapshot | Specifies the data that is included in a given fulfillment, such as in a Git commit. |
VersionSnapshot | The exchange history that indicates the data that was modified within a specific version. |
Asset | A data model object that represents the data being exchanged such as instance asset, design asset, and binary asset. |
Relationship | A data model object that establishes a relationship between two or more assets. |
Component | A data model object that represents properties of an asset or a relationship. |
ModelStoreSpace | A storage location where assets and relationships are uploaded and versioned, similar to a Git repository. |
Understanding the building blocks
To enable reading or writing of data to an exchange using the SDK, the SDK user must interact with the ElementDataModel
, which is an abstracted representation of the ExchangeDataModel. The ExchangeDataModel
functions as a low-level, client-side data model.
An ElementDataModel
provides a list of Element objects, which are the main unit of a data exchange at this level of abstraction.
When working with the SDK for data customization, it is important to understand the nested structures of elements, parameters, and geometries.
- Parameters are well-defined properties, which contain a corresponding schema. While creating a Parameter, users can choose to either use a Built-in Parameter or a Custom Parameter. Built-in Parameters are a predefined list of parameters available through the SDK, while Custom Parameters require the users to provide a definition along with the values.
- Geometry can be either a BREP, mesh, or primitive geometry. The SDK provides a set of classes for various types of primitive geometries. Currently, the SDK accepts STEP files as input for BREP geometry and OBJ files as input for mesh geometry.
- Elements can also hold a reference to child Elements, which allows creating a nested structure. All the top-level Elements are represented within a collection in their
ElementDataModel
object.