Working with Extensions

When working on the platform, you customize the table views of many of the applications using attributes and extensions.

So, what are extensions? To adequately explain their use, we first must understand the fundamental architecture of the system. Objects in the system define all aspects of the products and other entities that run a company. Examples would be documents, requirements, projects and change orders, to name a few. Dassault Systems developed a core of standard objects and attributes, in concert with applications. This working management environment that meets the common needs of most industries that we serve.

Explicitly assigning attributes to the many objects that exist would be labor-intensive and prone to error. One way to avoid such efforts is through the concept of inheritance. Many objects work together common structure, such as assemblies, parts and drawings. Then, they could share a core group of common attributes such as item number, price and weight. Objects can be defined in a hierarchical fashion to allow all common attributes to be defined once. In the example below, the inherited attributes in the part and drawing eliminate six explicit attribute assignments to these object types.

These capabilities allow us to quickly build a complex structure of objects along with many attributes to address the needs of a company. Everyone has custom attributes unique to their company, even within the same industry, taking us back to the topic of extensions. Extensions refer to a “set of attributes” added to an object type, in addition to attributes defined in the core architecture. A common database architecture is the result for our customers and then extensions allow for a specific customization as needed.

There are four types of extensions:

3DS extensions: This extension is delivered by platform applications that create the objects.

Specialization extension: A subset of an extension defined by a domain expert that inherits attributes directly or indirectly from a 3DS extension.

Customer extension: An extension defined by a domain expert that does not inherit from a 3DS extension.

Deployment extension: An extension defined by an administrator that does not inherit attributes from a 3DS extension.

Various extensions are then deployed on the platform through Packages. Packages are selectively deployed to realize a unique customization for each customer environment. It is important to note that Customer extensions are not deployed on Public Clouds and are only available to Private Cloud and On Premise environments.