Introduction
This document is intended to provide a detailed guide and examples on how to configure the business rule script for attribute mapping and PnO, Maturity mapping during File Based Design Import (FBDI) of CATProcesses, CATParts from CATIA V5.
Version – Validated on 2026x FD01 (FP)
Pre-requisites: User must be assigned with Owner Role
Licenses –
CSV (Collaborative Industry Innovator)
NSR (NC Shop Floor Programmer)
Disclaimer: Licenses mentioned above are as per 2026x documentation.Below video demonstrates the implementation of the business rule and its effect during FBDI process.
Example Business Rule
Detail Explanation
Using this Business Rule, we can define attribute mapping between CATIA V5 object and 3DExperience platform object during File Based Design Import (FBDI). Also we can define PnO attributes and Maturity state for these objects.
By default "ENONT_VPMReference_BLInitialization.CATRule" script is executed during FBDI Import. This business rule is operated for many use cases such as New, Duplicate, Import As New, FBDI Import etc. It manages the naming convention, generation of unique part numbers, part type allocation for every object that is created in 3DExperience platform. So we will be taking this script as base for our BL and adding the custom code for Attribute, PnO and Maturity Mapping.
/* Rule ENONT_VPMReference_BLInitialization (ThisObject: PLMReference, Parameters: RuleContext) */
/* NOT CONTRACTUAL and PROPERTY OF TE (TEAM ENVIRONMENT) DEFINITION, ANY CHANGE MAY HAPPEN WITHOUT NOTICE */
/* Parameters contains many information such as name, user, security ... depending on Operation */
/* Notice this BL operates for Several OpeningID and Many OperationId (New, Cloning, ImportAsNew, ...) */
/* PLMIdentificationInitialization,PLMTemplateCloning,PLMImportExportAttributesValuation,ComponentsFamilyNaming */
/* Notice this BL sometimes operates only for updating an existing object,mentioned IsCreatingNewObject==false */Below are details of the custom code that has been added for this demo example.
Read CATIA V5 User Attributes and Map them to platform object
/* READING : If the treated data has Customized V5 attributes fill the feature with these attributes */
if (Parameters->HasAttribute("UserV5Properties") == true) {
Set UserV5PropFeat = Parameters->GetAttributeObject("UserV5Properties")
}
if (UserV5PropFeat<>NULL)
{
//ThisObject.AddExtension("XP_VPMReference_Ext")
if ( UserV5PropFeat->HasAttribute("CustParam") == true){
sVal = UserV5PropFeat->GetAttributeString("CustParam")
ThisObject->SetAttributeString("CustParam",sVal)
}
if ( UserV5PropFeat->HasAttribute("ToolNum") == true){
sVal = UserV5PropFeat->GetAttributeString("ToolNum")
ThisObject->SetAttributeString("ToolNum",sVal)
}
}Assign Maturity Status for imported objects based on naming convention.
/***********************************************************************/
/* Section dedicated to the transfer of Maturity and PnO Attributes */
/***********************************************************************/
//Tool selection based on Name (OBSOLETE_...) and it goes to Archive CS
if ( ThisObject->HasAttribute("ImportMaturity") == true ) and (VName.Search("OBSOLETE", 0, True) <>-1)
{
ThisObject->SetAttributeString("ImportMaturity","OBSOLETE")
}
if ( ThisObject->HasAttribute("ImportMaturity") == true ) and (VName.Search("OBSOLETE", 0, True) ==-1)
{
ThisObject->SetAttributeString("ImportMaturity","FROZEN")
}It is also possible to assign specific owner for the imported object which is different from the one who is performing the import activity.
if ( ThisObject->HasAttribute("ImportOwner") == true )
{
ThisObject->SetAttributeString("ImportOwner", "ike2")
}Assign Collaborative Space based on Naming Convention
if ( ThisObject->HasAttribute("ImportProject") == true ) and (VName.Search("OBSOLETE", 0, True) <>-1)
{
ThisObject->SetAttributeString("ImportProject", "Archive_CS")
}
if ( ThisObject->HasAttribute("ImportProject") == true ) and (VName.Search("OBSOLETE", 0, True) ==-1)
{
ThisObject->SetAttributeString("ImportProject", "Common Space")
}
if ( ThisObject->HasAttribute("ImportOrganization") == true )
{
ThisObject->SetAttributeString("ImportOrganization", "Company Name")
}Business Rule Setup
Business Rule opening Id - PLMImportExportAttributesValuation
The Business Rule can be executed in two different ways.
DataSetup App: If you create the script through DataSetup, it remains persistent in the database, is stored on the server and available to all. The script opening ID will be available under Business Logic implementations.
CATRule/CATRuleExit: If you create the script using a CATRule, you must store the files
ENONT_VPMReference_BLInitialization.CATRuleandENONT_PRODUCTCFG.CATRuleExitin..\\resources\\knowledge\\scripts. You can then edit the CATRule file or create a new CATRule and CATRuleExit files with an Opening ID of PLMImportExportAttributesValuation.Note: The Opening ID cannot be changed. Be careful while using this method as the setup is done on local machine and it is not available to all users. Each user will have to do the setup individually.
Understanding Policy Definition
3DExperience Platform provides two baseline policies for engineering item definition:
• VPLM_SMB_Definition is old policy that enables support for major and minor revisions on Engineering Items
• VPLM_SMB_Definition_MajorRev is a new policy (available from R2022x) that supports only the major revision on Engineering Items (If you did not enable minor revisions)
The new mode simplifies the revision number for a new Engineering family. For example, the revision # is “A” instead of previously “A.1”.
The default policy is set by Administrator of the platform environment.
The policy controls:
Revision numbering (e.g., A instead of A.1 for major-only revisions).
Lifecycle states (e.g., IN_WORK, FROZEN, RELEASED).
Permissions (e.g., who can revise or promote the item).
The engineering item definition policy is not directly executed during the FBDI (File-Based Design Import) process itself, but it governs the lifecycle and revision behavior of newly created Engineering Items after they are imported into 3DEXPERIENCE. After the FBDI import completes, the imported items are created in 3DEXPERIENCE with the assigned policy.
But it is important how we set the policy criteria while setting up the business logic for FBDI Import, because it effects whether the BL will be executed or not.
Data Setup approach for BL: In this approach when creating the business rule, we have to fill out certain criteria values as shown in below image.
If the default policy set by administrator is already known, its name can be filled in the Policy Criteria. But if it is uncertain which policy is set as default, keep this field empty to ensure that the script is executed in either case.
CATRule/CATRuleExit approach for BL: In this approach, in "ENONT_PRODUCTCFG.CATRuleExit" file we have to mention the script that will be executed against "PLMImportExportAttributesValuation" opening ID. Here mention the custom script name against both entries of this opening ID if default policy is uncertain.
Reference
Author
Person of Contact - @Sheetal MARDE
Special Thanks to @Vivek BAGALKOT and @Pavankumar K M for providing support in this topic.
