CAA-RADE product portfolio provides the most complete set of tools, guides and APIs that supports the development process, from the initial product definition to the final product packaging. Deploying PLM necessitates that the specific needs of a company will further require that capability can be expanded, tailored, extended and integrated. These requirements necessitate openness and the ability to re-apply components to achieve different behavior or capability.




3DEXPERIENCE CAA RADE product portfolio provides the most complete set of tools, guides and Application Programming Interfaces that supports the CATIA application development process, from the initial product definition to the final product packaging.

RADE is the development environment (the IDE) and the APIs are the actual code to build CAA apps. So, they are used in conjunction. RADE is delivered on GA releases, while APIs are delivered on each SP level. RADE is just the Visual Studio integration piece that allows developing CAA apps in Visual Studio so in order to build CAA apps requires CAA RADE + APIs. Normally RADE is 32-bit, but the APIs are 32 and 64-bit.

PLM Application

A PLM Application fulfills requirements of a precise applicative domain. It is made of:

  • Application code in the client authoring editor. It implements the User Interface. It uses the services of the PLM modeler that the application is build upon. It may enforce application logic, complementary to business rules of the PLM Modeler, and compatible with them.
  •  If needed, additional applicative attributes if the PLM Modeler does not offer them. These attributes are stored in a dedicated PLM Extension of the PLM Component.

PLM Attributes

This is what the PLM Classes are made of. They are described in the PLM Dictionary. They are of one of the following kinds:

  1. Simple: of type integer, double, string, boolean
  2. List of them: A list is ordered and allows several same values.
  3. Set of them: A set in unordered. Value uniqueness is enforced. This is why set of Boolean are of no interest and are not supported.

They compose without transformation the static structure of the PLM Component in session and in persistency. They are persistently stored in the Vault DataBase and can be used for query purposes.

PLM Class

It is a logical representation of an element defining a PLM Modeler. A PLM Modeler is defined by several PLM Classes (not more than 6). A PLM Class contains PLM Attributes, PLM relations and PLM Behaviors. A PLM Class has a name, its type, and an use which can be:

  • Instantiation : Concrete class which can only used to be instantiated
  • Customization : Abstract class which is a base class to create an instantiation class
  • Internal: Abstract class which is a base class to create a PLM class having one of the three uses: Instantiable , Customization, Internal

PLM Component

The PLM Component is the “session” view of a PLM Object.

PLM Connection

One of the six PLM Core types.

PLM Connection aim is to materialize relationships with Semantic information between PLM entities in a context of a Reference object. Those relationships can be IN or OUT; so a Connection can also be viewed as a flow.

Connections do reference PLM Entities inside the same context reference, or one, or several levels below

Those referenced PLM Entities can be Instances, RepInstances or Ports.


Acronym for CReate Update Delete

These are the only operations that a PLM Save Message contains

PLM Customization

A PLM customization is a customization of a PLM Modeler Type. It is achieved by

  • adding it attributes: simples, lists or sets.
  • defining its Identification Set.

Customer IT department needs to customize all the PLM Modeler Types that have been declared Customizable. They can be customized only one time per customization. But multiple customizations may exist. One customization is typically associated to a customer project.

Each customization is stored in a separate metadata. Customizations are then packaged in Environments.

When creating a PLM Component, its customization is chosen from the PLM Environment definition, and not be changed later.

PLM Dictionary

PLM Dictionary: describes the vault data structure through PLM Metadata

  • PLM Metadata: XML File containing a set of PLM Classes

PLM Class: XML Definition of the prototype of a PLM Object

PLM Environment

It is a pre-defined package of consistent Modelers and Modeler Customizations that the user is choosing in his authoring session. It is made of:

  • A maximum of 1 authoring PLM Instantiable Set per modeler. The Authoring customization defines the type of new PLM Components created in the authoring session (except for instances that inherit their customization type from their reference). It does however not prevent authoring of PLM Entities of other customizations.
  • N browse-able customizations per modeler. They define which types of PLM Component the user is able to query for.

However PLM Components of other customizations may enter the authoring edition. This when the user reaches them by expanding the operation. These entities can even be edited. These 2 possibilities (reachable by navigation and edit ability) depend on the user declared privileges.

Identifier set

User defined set of simple PLM Attributes. It provides unique user identification to the PLM Reference and PLM Representation Reference. It acts as its external identification.

External Identification is mandatory for Reference and Representation References class. It is not supported for other PLM types.

Rules apply on those attributes contributing to the identification set ; e.g. one attribute at least of the identifier set needs to be editable to the authoring end-user.

PLM Instance

One of the six PLM Core meta types.

PLM Instance is the result of the usage of a Reference in the context of another Reference.

Multi-instantiation of the same Reference is supported.

PLM Instantiation Set

A PLM Instantiable set is an exhaustive set of PLM Instantiable class types. It can be:

  • A set of PLM Customization classes
  • ,  if the PLM Modeler contains only customizable PLM classes A set of PLM Modeler classes, if the PLM Modeler contains only Instantiable PLM classes
  • A mix between PLM Customization and PLM Modeler Instantiable classes


  • Explicit user locking. The user may chose to explicitly lock a PLM Component before starting editing it. He is then guaranteed to be able to save it when finishing editing. But he will prevent another user from editing the same entity while it is locked.
  • Automatic optimistic locking. The user may choose to edit PLM Components without prior explicit locking. But at save time, the system will control and forbid the save if there has been a concurrent edition of a same PLM Component.

A runtime reference to internal information of a PLM Component is done through a link. For example, an offset constraint between 2 solids references their constraint faces by 2 links.

A link is persisted in 2 pieces:

  • A semantic relations that defines the “public” path between the referencing and the referenced PLMComponents
  • The path internal to the referenced element that is stored in the referencing element.

On Open these 2 pieces are recomposed to recreate the link.

A semantic relation can host several links between 2 PLM Components. By analogy, a Semantic Relation hosts a link between 2 PLMComponents like a raceway routes a cable between 2 pieces of equipment.

Masked view

PLM Dictionary describes a given class and a given operation (Browse, Create, Modify, Query, etc.), taking security into account.

PLM Modeler

A PLM Modeler is made of

  • Definition of PLM Modeler Types.
  • Definition in the meta data of the attributes that each PLM Modeler Types contains.
  • Client authoring code. It handles the creations / editions / deletions of the entities in the authoring session, enforcing the Business rules of the Modeler.

PLM Object

It is an instantiation of an instantiable PLM Class from PLM Dictionary. The PLM objects are stored within the vault database.

PLM Port

One of the six PLM Core meta types.

PLM Port is a stable abstraction of an Entity: a Contract on an object that is defined by name & specifications. It ensures stable access to object Public data.

Port enables architecture Modeling and can be defined even before Detailed objects exist.

Ports can expose data from the same context Reference, or from a Reference one or several levels below. Ports can be referenced by objects one or several levels above.


Acronym for the four basic PLM Operations: Query Expand Open Save


Where the data are persistently stored

PLM Reference

One of the six PLM Core meta types.

PLM Reference is the smallest atom of distribution and of maturity. Reference is separable (i.e. non aggregated) and supports reuse.

Reference is versionable, and carries a maturity.

PLM Representation Instance

One of the six PLM Core meta types.

PLM Representation Instance (or RepInstance) is the result of the usage of a Representation in the context of a Reference.

Multi-instantiation of the same Representation is supported.

PLM Representation Reference

One of the six PLM Core meta types.

PLM Representation is supporting attachment of Vault Items. Representation is separable (i.e. non aggregated) and supports reuse.

Representation is versionable, and carries a maturity.

Semantic Relationship

A PLM Component stores persistently a reference to another via a semantic relationship. It is made of:

  • Behavior description of the relationship, by its Category
  • A description, by its Role
  • A Path to the referenced element, defined by a list of PLMId.

This could be as simple as the PLMId of a directly pointed PLM reference.

But when the pointed element is an instance, that is part of sub (sub) assembly, the persistent path has multiple legs. From the referencing context, each of them is the PLMId of the (sub) assembly instance. This until reaching the targeted instance.


set of Streams


A Stream is a long binary information attached to a PLM Representation Reference component, this attachment being implemented via an entity named PLM Stream Descriptor. There are two kinds of streams:

  • (main) authoring stream : containing the authoring data.
  • secondary stream: containing data computed from the authoring data. Their access is not CAA opened.

A PLM Representation has always one and only one authoring stream, but can have 0 to N secondary streams.  Conversely to the PLM component saved in the PLM database, streams are saved in the vault database.

PLM Stream Descriptor

A PLM Stream Descriptor (SD) is a non-separable pure internal entity attached to a PLM Representation Reference component that acts as the glue between this PLM Representation Reference and a Stream.

But in some articles, the Stream Descriptor (SD) is used in place of the Stream word.

PLM Long Transaction

Paradigm of data exchange between the PLM Repository and the client authoring editor.

A PLM Long Transaction decomposes into:

  • The PLM Open Transaction: The PLM Components are sent from the PLM repository to the DS Application authoring client session.
  • The PLM Edition Session: The PLM Components are edited under control of the client authoring tools. This PLM Edition Session decomposes into successive CATIA Edition Transactions such to allow Undo/Redo, and relievable milestone for warm start. At that time, there is no communication with the repository.
  • The PLM Save Transaction. On user decision, the edited PLM Components are sent back to the PLM repository and are persisted.

A limited set of operations are short transactions however: Lock, New Version, and Change Maturity. They involve an immediate communication with the server and commit in the repository.

PLM Class Type

They are of 3 kinds, corresponding to an abstract definition and 2 levels of specialization:

PLM Core Type One of the six: Reference, Instance, Connection, Port, Representation and Representation Instance.These are abstract types: They are not instantiated. All the PLMComponents are of a derivative type.
PLM Modeler Type Defined by a couple (Modeler, Core Type), it’s the specialization of one PLM Core Types to a particular modeler.This specialization requires client authoring code (the modeler).A PLM Modeler Type is declared customizable or not.
PLM Customized Type Defined by a triplet (Custo, Modeler, Core Type), It is the specialization of a PLM Modeler Type.This specialization is done by adding attributes to the type. No code is involved. It is typically done by customer IT department


Database containing a set of PLM Objects


🎓 3DEXPERIENCE Platform Training from PLM Coach

🎓 3DEXPERIENCE Platform Essentials






🎓 3DEXPERIENCE CATIA Visual Basic Automation




🎓 3DEXPERIENCE ENOVIA Customization Fundamentals


🎓 3DEXPERIENCE ENOVIA Customization Advanced


🎓 3DEXPERIENCE ENOVIA Customization Practices


🎓 3DEXPERIENCE Enterprise Knowledge Language (EKL)




🌍 3DEXPERIENCE Platform References on Web

🌍 3DEXPERIENCE Platform Dassault Systemes


🎬 Checkout the Video on 3DEXPERIENCE CAA RADE Terminology


🌍 For PLM / CAD Training Visit


Follow PLM Coach on Social Media:  

YouTube LinkedIn | Facebook 

Twitter | Pinterest

📧 Contact PLM Coach:

Follow the link to Training Inquiry Form to provide your details


Follow the link to Text PLM Coach on WhatsApp


☏ Mobile Number ► +91-7989703878

💌 Email ► [email protected]


About Author
Anup Karumanchi
Anup Karumanchi
Champion of PLM, CAD & MES platforms, with a proven track record of delivering successful workshops and services for global clientele.

Leave a Comment

Your email address will not be published. Required fields are marked *

Call us

Scroll to Top