The CAD PART element


For some Parts it is possible to associate a series of documents and / or CAD drawings. The parts described by CAD drawings have specified the attribute "Drawing Type" (other than "No Drawing").   When have several different kinds of CAD:



AutoCAD (2D & 3D) ,  3DS Max ,  Inventor , Pro/Engineer, CATIA , Solid Works , Solid Edge , Unigrafix (NX) ….


CIVIL / Architectural

AutoCAD (2D & 3D) , 3DS Max ,  Revit  , ArchiCAD ,  STAAD.Pro ….


Electrical / Electronic

PC Schematic EL Automation,  OrCAD P-Spice, OrCAD Capture, Mentor Graphics …


All of them generate files that we need to connect to a PDM part:  the CAD PART element represents the general container for CAD files and their properties.

The specific CAD tool introduces specialized CAD elements that extend the basic functionalities of the CAD PART class.



Consider, for example, the Solid Edge CAD tool, we can have the following file types:



From the PDM point of view, PAR and PSM are equivalent.

Each type of file must be supported with a related CAD element in PDM.

CAD elements are connected to the main PDM PART and among them according to structures defined in the CAD tool.



Assembly:  mounting of elementary 3D parts (PAR/PSM) or other assemblies (ASM)



Family of Parts (FoP): a set of primary 3D components (PAR) generated by a single matrix, based on structural parameterizations (e.g. dimension parameters)


Family of Assembly (FoA):  a group of 3D assemblies (ASM) in which vary the characteristics of the components that compose them but deriving from a single constructive model


The original element of a FoP or FoA is called the Master of the Table (for example Mechanical table, Electrical table etc..) and it usually includes a Draft file where all the characteristics/parametric values of family members are reported in a tabular format.


For the Solid Edge CAD integration we need to define new CAD element classes (one for each supported file type) derived from the generic CAD PART:


Each CAD element contains files and metadata and the CAD_Integration tools can alter both files and data or only files or data.  Synchronization hidden fields help to avoid the download of unnecessary information when a user needs to update the local CAD element data and files stored inside his workstation.




name:  PDM_CheckInCount

description:  A counter increased after a file checkin

type:  integer

hidden:  true
reset:  oncreate  (clone+revise)





name:  PDM_UpdateCount

description:  A counter increased after data update

type:  integer

hidden:  true
reset:  oncreate  (clone+revise)






description:  basic CAD part element

abstract:  true








name:  PDM_<CAD type>_CADPART

description:  basic CAD part element for specific CAD type
superclass:  PDM_ CADPART

abstract:  true





name:  PDM_<CAD type>_< Element type> (ex: PDM_SE_Draft)

description:  <CAD type> CAD element

abstract:  false

superclass:  PDM_< CAD type>_CADPART

fields:   attributes exchanged with CAD tool for the

              specific element type





name:  PDM_PartToDrawing

description:  Connect a Part with a CAD Part

flags:  !duplicable , !selflinks

from: PDM_PART  (single, !revision, !clone)

to: PDM_CADPART (multiple, !revision, !clone)

access rights:

community:  read

assignment[PDM_Designer]: create,destroy



In addition you need to define all the linktypes for the CAD structures (Family of Parts / Family of Assemblies / CAD Assemblies  etc.)


Coding of CAD PART instances – CAD Integration


CAD PART elements are not created manually inside a PDM module, but they are instead generated and managed by a CAD Integration Interface.


The design of mechanical / electronic structures and the definition of aesthetic characteristics of finished products or subparts of them occurs almost exclusively by means of external CAD tools.  The designers have access to the workstations and use  CAD applications for the drawing of product components.   They work locally, saving the work in the workstation hard disks or into a network server.

However, the generated files (diagrams / drawings / schematics / tables / documents) must be shared very often with other project areas located in different geographical sites.

The PDM therefore acts as a means for the interchange of data and files to enable collaboration between the various R&D engineers.

In a client-server architecture the PDM represents the central point, and it is the collector (the server) of all information exchanged among the user workstations (called CAD-clients).

Each CAD-client provides a user interface within the CAD-application for providing or receiving the necessary data from/to the PDM to keep up to date the information related to technical drawing and for the file exchange operations.


One of the most important aspects to ensure the efficiency of the interchange of data and files between the CAD clients and the PDM module is to consider separately the management of information and that of CAD files.  Because CAD clients and PDM server can be located in different geographic areas these exchanges take place over a WAN and they are all the more critical as more is the consistency of each individual transaction.  In particular a CAD file has a considerable dimension and its transportation over a WAN in both directions involves waiting times for the designer of several minutes.   In addition, it is few probable that a CAD file has to be shared immediately between designers located in different geographic areas, so the fact to make it available in a few hours delay is not dramatic.





An efficient structure for the file interchange between the PDM module and the geographically distributed CAD-clients is given by:


- a centralized database

- a centralized File Storage

- a set of peripheral File Storages for the collection of "temporarily" decentralized files: they store files in exclusive way till the periodic synchronization with the central one.


Each local file system includes a local interface module with which all CAD-clients talk for the checkin / checkout file operations. This file system is designed to keep the files that are frequently exchanged among users over the LAN inside the same design department.

However the files must to be shared among all the designers, also located in different geographical areas and therefore they must be transferred, in the first instance, on the centralized file system and secondarily on local file systems that belong to the same business unit.   This operation, called Synchronization, is generally performed in batch mode in the night unless a request for a specific file not yet synchronized is raised during the checkout process.  In that case, the Synchronization is made on the fly and the designer have to wait for till it is completed.




name:  PDM_<CAD type>_Files     (ex:  PDM_SE_Files)

description:  Repository for <CAD type> files

protocol:  ftp

flags:  hashed , subfolders

localareas: one for each LAN server




name:  PDM_<CAD type>_<Area name>   (ex:  PDM_SE_Area1)

description:  Local repository for <CAD type> files - <Area name>

protocol:  ftp

flags:  hashed , subfolders

filespace: PDM_<CAD type>Files




As described above a CAD Integration includes the following elements:


-      Client side module (C)


o   it is an extension of the CAD application

o   it is written in the language supported by CAD tool
(for example in Visual Basic or C++ in case of the generated extension is a windows DLL)

o   generally it adds a new sub-menu in the main menu bar

o   it exchanges data (REST/SOAP) and files (FTP) with server side module



-       Server side module


o   installed in the LAN server (SL) and in the WAN server (SW)

o   it works in background: receives the requests (REST/SOAP) from CAD clients and performs the actions in the PDM database

o   it retrieves files from the local file system and sends them to CAD clients

o   it receives files from CAD clients and stores them into the local file system



The main functionalities of a CAD Integration module are:


-       User Login / Connect

the developer inserts its credentials (name / password) in a login form and the client module (C) sends a request to the central server module (SW)

The (SW) verifies the user name and password and returns all setup parameters to (C), including the network address of local (in the user LAN) server module (SL) for the next file checkin-checkout operations.


-       Search CAD Parts

the developers can query for CAD part by specifying some query filters (patterns for type, code, revision, status, holder …) in a search panel:  the (C) sends a request to (SW) and displays the list of parts with related information (type, code, revision, holder, status, lock status, description … ) received back from the server.


-       Get CAD structures

from the list of parts proposed as a result of a query, the developer can select a specific CAD element, the (C) asks to (SW) the list of first level connected CAD parts (members of assemblies, FoP, FoA).  If the selected item belongs to a family of parts or family of assemblies, the table master element is also included. The structure shown on the CAD-client is the same viewable within the PDM with the navigation functions.   The user interface in the CAD client should provide navigation functionalities like


o   Root-Here:  switch the root of navigation tree to the selected item

o   Root-Back:  restore the root of navigation tree to the previous item

o   Expand to level:  expand the selected element to the specified level

o   Expand All:  expand the selected element to all levels

o   Where Used:  get all parent CAD element for the selected item



All these actions generate a request from the client to the central server integration module for updating the user interface with new data.

The client optimization should avoid to ask for data that are already received from the server.





-       File Check-out

The designer selects the CAD parts for the checkout of related files inside the workstation hard disk. He can indicate for each item the checkout mode (LEVEL 1 / LEVEL 2 / LEVEL 3 / ALL LEVELS) and if he intends to acquire exclusive possession of them (lock).

The (C) module expands each object to the level indicated by the user and identifies the structures and all the other drawings / models which are necessary (for example the master of the family), and finally requires the files to the local server module (SL).   This module picks up the files from its local store and sends them to the requesting client module.  In case of absence of one or more files on the local store the selective synchronization between main and the local store is performed (or from another local store – to main store – and finally to current local store when the file is not synchronized with the main store).

The client optimization should avoid to ask for files that are already received from the server and store locally when they have not been modified by other users.


-       File Check-in

Once the files (and any other required models) were downloaded, the designer can make changes to the 3D drawings and tables or create new parts. At the completion of his job, the designer opens the model he wants to upload (usually the master of FoP / FoA / ASM) and select the command "Check-In" from the toolbar.   The client module (C) determines the model structure as defined, based on the CAD connections and compares it with the one retrieved from PLM.

The result of the comparison is given by the checkin interface:  a structured view in which new / changed models are highlighted and there are present check-in options for each of them.  The checkin process expands each node up to the appropriate level including all other drawings / models which are necessary for the generation of the structures inside the PDM (eg, masters of families, assembly components), and finally it sequentially sends the files to the local server (SL).



The file checkin is allowed if and only if:

- the main Part with same code exists and it is in the InWork status

- it is performed for the last revision of Part code

- the user who performs the first checkin is also the holder of the main Part

- in the main Part has been specified the proper DrawingType value

- the name of the CAD file matches the code of the Part (the revision index may be not included in the file name, but it is present inside the file internal properties)


During first check-in the CAD part for the specific file type is automatically created in PDM (with same code and revision of main Part) and it is connected to the related main Part; finally the physical file is attached to the CAD part.  If you repeat the check-in only the physical file is replaced.



At the end of check-in, the client module communicates with the central server (SW) for generating PDM relationships between CAD objects and for synchronizing the CAD part attributes.


-       Lock / Unlock CAD Parts

When a CAD object is locked in the PDM no one except the user who locked it, can check-in the files inside.  Generally the designer activates the lock on a model / drawing during check-out to take exclusive control for the file modification / revision till the subsequent check-in. However, he can also change the condition of the lock using the Lock / Unlock functions.


-       Attribute synchronization

The synchronization of the CAD attributes between the drawing file and the object inside the PDM occurs at the end of each checkOut (PDM-> CAD) and at the end each checkin (CAD-> PLM). However, you the designer should be able to perform the synchronization in both directions of these attributes, independent of the file transfer operations, using the "Property Synchronization" functionality.


The CAD integration module can be defined by using the REST protocol (servlets) or the SOAP protocol (webservices).    In case of SOAP integration you have to define the following webservices in the OBEROn schema:




name:  PDM_SE_Integration

description:  perform WAN server side actions for Solid Edge CAD integration

exposed methods:

-       Login

-       Search

-       GetObjectInfo

-       GetStructure

-       SetStructure

-       FileCheckIn

-       FileCheckOut

-       GetObjectFields

-       SetObjectFields

-       FileLock




name:  PDM_SE_FileExchange

description:  perform LAN server side file operations for Solid Edge CAD integration

exposed methods:

-       FileCheckIn

-       FileCheckOut



CAD PART lifecycle


The lifecycle of the CAD part instances may be represented with five states and some signatures to authorize the passage from one level to the next:





name:  PDM_<CAD type>_<Element type> (ex: PDM_SE_Part)

description:  <file type description>
extension:  <the file type extension>  (ex:  .par, .asm, .dft ..)

mime type:  <the mime type> (ex: solidedge/par )





name:  PDM_<CAD type>_<Element type>  (ex:  PDM_SE_Draft)

description:  Default lifecycle for CAD part instances

revision rule: 99

classes:  PDM_<CAD type>_<Element type>

filespace:  PDM_<CAD type>_Files

def.filetype:  PDM_<CAD type>_<Element type>

stages:  Preliminary, InWork , UnderReview , Released , Obsolete



A CAD Part instance is created by Designer users during the first checkin of the related CAD file.  The user who create the CAD part (also the holder of main Part) becomes the holder and it will get the full control of it.


Before releasing the final version of the part drawings the designer may need to generate some temporary versions (design studies) for each of them and for the CAD structure.
In these cases the initial stage of a drawing is the temporary stage named Preliminary:


Preliminary (PRE):  the CAD file associated can be overwritten more times. In this level, the holder of the instance has all privileges, so it has the ability to update the attributes with a synchronization from the CAD tool, lock and unlock or to delete it from the system.




lifecycle:  PDM_<CAD type>_<Element type>

name:  Preliminary

description:  drawing is on the study phase

access rights:

holder:  edit,lock,unlock,destroy,
                            progress (CAD Integration), <manage files>…..

community:  read,fileget

assignment[PDM_Designer]: create (CAD Integration)




At the end of the preliminary phase the CAD integration applies a finalization of the temporary structures and promotes the CAD part to the InWork stage.



InWork (or simply IW):   it represents the official first state of a CAD part. The CAD file associated with the CAD part can be overwritten more times. In this level, the holder of the instance has all privileges, so it has the ability to update the attributes with a synchronization from the CAD tool, lock and unlock, promote the object to the next level or to delete it from the system.   Other designer users may edit the CAD file, but they cannot promote (validate) the CAD part.




lifecycle:  PDM_<CAD type>_<Element type>

name:  InWork

description:  drawings is under construction

access rights:

holder:  edit,lock,unlock,destroy,progress,<manage files>…..

community:  read,fileget

assignment[PDM_Designer]: create (CAD Integration) ,

                              edit,lock,unlock,<manage files>…..




UnderReview (UR):  it represents an intermediate state in which the Platform manager evaluate and approve the CAD files. In this phase, the object may be considered not eligible for promotion (some attributes are not valid, the file is not correct, etc.), the reviewer can perform a recovery action to the 'InWork' state for a new check-in.




lifecycle:  PDM_<CAD type>_<Element type>

name:  UnderReview

description:  drawings are under review

access rights:

community:  read,fileget

assignment[PDM_PartReviewer]: progress,regress



Released (REL):  the CAD part is official (all approval has been obtained) and its file can be used for manufacturing.   No change is more possible at the stage, if you need to update the file you have to create a new revision of main Part.

The passage to this stage may automatically create a PDF (from 2D model) file or a DXF (from 3D model)  file and attach these files to the main Part.




lifecycle:  PDM_<CAD type>_<Element type>

name:  Production

description:  CAD part released for the production

revisionable:  true

access rights:

community:  read,fileget

assignment[PDM_Designer]: revise




Obsolete (OBS):  this stage is automatically assigned when a new revision of same CAD Part code is released to the Production stage.   The CAD part is archived, no more changes are possible at the stage




lifecycle:  PDM_<CAD type>_<Element type>

name:  Obsolete

description:  part archived

access rights:

community:  read,,fileget