Customize the Requirement Usages

This Wiki page provides guidelines to customize the Business Logic (BL) to customize the list of usages allowed for the assignment of requirements and the allowed quantity of usages to assign to several object references.

Introduction

The Opening ID "DELPPRRequirementUsages_ID" is triggered when launching the “Requirement Browser” or the “Assignment Manager.” It allows customization of the out-of-the-box (OOTB) requirement usage quantity and provides options to add custom usage for requirement consumption. This Opening ID and the Business Logic (BL) can be useful for adding custom requirement usage as per customer needs.

Version Tested on – 2025x FD02 FP.CFA.2514

Pre-requisites:

Licenses –

  • PPL (Process Engineer): Required to create Mfg. Item Structure, Process Structure, and Resource Structure 

  • TRM (Requirements Engineer): To create requirements manually or to generate requirements from FT&A 

  • MDG (Mechanical Designer): To create 3D data. [Optional] 

  • TAD (3D Tolerancing and Annotation Designer): To define Functional Tolerancing and Annotations (FT&A). [Optional]

Disclaimer: Licenses mentioned above are as per 2025 documentation.

Details of The Opening ID
PLM Opening ID DELPPRRequirementUsages_ID
Customization Intent Execution
Execution Context Client
Usage This opening ID is used to customize the number of consumptions allowed per requirement usage and to add custom requirement usage for requirement consumption.

Explanation

What is Requirement?

A requirement is a clearly defined need or condition that a product, system, or process must fulfill. In the PLM and 3DEXPERIENCE domain, it ensures alignment among stakeholders by guiding design, development, and validation activities. Requirements are tracked, managed, and linked to product and process data throughout the product lifecycle. A requirement in the context of the 3DEXPERIENCE Platform is a statement that defines a need or expectation for a product or system. It serves as the basis for design, testing, and validation throughout the product lifecycle. Requirements are managed using the Requirement Management (TRM) capabilities of the platform, which foster collaboration around a unique model stored securely in the cloud.

Requirements can be created manually using the “Requirements” widget/app or can be generated from the FT&As defined on a 3D part/product. The requirements look as shown below in the requirements widget:

Consuming Requirements

Once defined, requirements can be consumed or assigned to process planning data during the process planning phase and can be sent to the MES system with the help of process planning data.


Requirements can be assigned to Manufacturing Bill of Material (MBOM) objects like Manufacturing Assembly, Provided Part etc. and Bill of Process (BOP) Objects like Operations (General Operation, Loading Operation) etc.


Requirements can be assigned to Mfg. Items from following sources:

  1. Requirements from Engineering Items linked to selected Item.

  2. Requirements from Resulting Product defined on selected Item.

  3. Requirements from Children of linked Engineering Items (Available for Assembly Items)

  4.  Requirements from Global Specification Link

Requirements can be assigned to Operations from the following sources:

  1. Requirements from first upper scoped Mfg. Item.

  2. Requirements from Output defined on selected operation

  3. Requirements assigned on previous operations.

  4. Requirements from Global Specification Link.

Requirement Usages

By default (Out of the box) a requirement can be assigned/consumed only once in each object structure (Mfg. Item Structure and Bill of Process Structure) as shown below:

To enable the consumption of a requirement multiple times within a structure, requirement usages can be helpful. Requirement Usage provides various usage types to consume the same requirement multiple times.


By default, the requirement usages are disabled. It is only possible to assign the requirement only once in a structure. No usages are manageable.
To enable the requirement usages, one need to check the "Manage Requirement usages" checkbox in the preference setting as given below:

 By default, for a requirement, there are two usages available:

  • Realize: This usage of a requirement is consumed on operations/Items, where the desired feature/requirement is realized/produced.

  • Control: This usage of a requirement is consumed on operation/Item, where the desired feature/requirement is controlled/Checked.

Note: By default, based on usage - A “Control” requirement can be assigned on two Mfg. Items in Item structure and two Steps/operations under a workplan/System simultaneously. A “Realize” requirement can be assigned on single Mfg. Items in the Item structure and single Steps/operations under a workplan/System simultaneously. (Applicable for both "Part Fabrication" and "Assembly" scenarios.

  • One additional usage "Ignore" can be enabled by checking the "Include an Ignore usage" checkbox in preferences of requirements.

After enabling the Requirement Usages in preference settings, “Requirement Browser” and “Assignment Manager” shows option to assign the requirement with the Requirement Usages as shown below:

Note: The ‘Ignore’ usage and the combined usage ‘Control and Realize’ is available for assignment only in “Requirement Browser”

Use Case

For requirements, the ‘Realize’ usage can be used where some machining is done on a raw material or some parts may be assembled together. Overall, it can be used where something in created or assembled together. The ‘Control’ usage can be used where, measurements of the necessary dimensions need to be taken or the components needs to be checked for quality control purpose. Also, the ‘Realize’ usage can be consumed once in a structure and a ‘Control’ usage can be consumed twice in the structure.

Sometimes, it may be necessary to customize the number of allowed consumptions per usage and also, in addition to ‘Realize’ and ‘Control’ Usages, additional usage may be necessary to consume the requirements. For example:
•    A “Modify” usage may be required to state that for fulfilling the requirement, something needs to be modified. 
•    A “Precaution” usage may be required to state the safety related requirement usage. Also, for such requirement, the allowed number of consumptions should be infinite.

Customizing The BL

The opening ID “DELPPRRequirementUsages_ID” has following input parameters

Parameter Name Type Read/Write Comments
OutputListOfUsagesListWriteList of usages allowed for the assignment of the requirement.
OutputListOfUsageQuantityListWriteLists the quantity of usages to assign to several object references.
OutputListOfCombinedUsagesListWriteList of combined usages. A combined usage is a set of several usages (defined in the OutputListOfUsages) to enable the user to assign several usages in one step.

For these parameters, three lists are defined in the provided Business Logic as shown below:

/* ---- Output Lists ---- */
Let ListOfUsages(List) //List for OutputListOfUsages
Let ListOfCombinedUsages(List) //List for OutputListOfCombinedUsages
Let ListOfUsageQty(List) //List for OutputListOfUsageQuantity

To create/add custom usage, in the BL, just after the definition of OOTB Usages, append the custom usage names in the “ListOfUsages” list followed by appending the allowed number of consumptions/assignments for that usage in the “ListOfUsageQty” list as shown below:

//OOTB Usages
ListOfUsages.Append("Control")
ListOfUsageQty.Append(2)
ListOfUsages.Append("Realize")
ListOfUsageQty.Append(1)

ListOfCombinedUsages.Append("Control_Realize")

//Adding custom usages

ListOfUsages.Append("Modify") //Add custom "Modify" usage 

ListOfUsageQty.Append(1) //Add custom "Modify" usage consumption/assignment quantity

ListOfUsages.Append("Precaution") //Add custom "Precaution" usage 

ListOfUsageQty.Append(-1) //Add custom "Precaution" usage consumption/assignment quantity (-1 to allow infinite assignment)

Also, a combined usage, which allows assignment of multiple usages in a single click can be created by appending the combined usage string in the “ OutputListOfCombinedUsages” list. The string should contain the names of the usages to assign separated with an underscore '_' as shown below:

ListOfCombinedUsages.Append("Control_Modify") //Add custom combined usage for "Control" and "Modify" usage

Note: Do not append the quantity for the combined usages in the list “ListOfUsageQty”. Because, the combined usage is not a separate usage. It only helps to assign multiple usages in a single step.

Updating the DELPPRRequirementUsages.CATNls File

After adding the custom usage to the BL, it is necessary to add the labels (Usage NLS Names) for each usage in the DELPPRRequirementUsages.CATNls file. These labels are displayed in the “Requirement Browser” and “Assignment Manager”. 

The syntax to add the label for the custom usage is as shown below:

Usage Name as Defined in the BL (Use similar Case as used in BL) = “Label to be displayed” (Add in double quotes);

Notes: 

  • “//” is used to define comments in ‘CATNls’ file.

  • The statement defined in the ‘CATNls’ file should end with a semicolon ‘;’.

For example:


//--------------------------------
//Usage NLS names seen in the tree
//--------------------------------
Ignore = "Ignore";
Control = "Control";
Realize = "Realize";
Control_Realize = "Control and Realize";

//---Add labels for custom usages---
Modify = "Modify";
Precaution = "Precaution";
Control_Modify = "Control and Modify";

Note: 

  1. The "DELPPRRequirementUsages.CATNls" file can be found at "Your_3DExperience_Installations\\win_b64\\resources\\msgcatalog\\DELPPRRequirementUsages.CATNls"

Sample Scripts and Files

DELPPRRequirementUsages.CATRule

 

DELPPRRequirementUsages.CATNls
Note: The above files are upload with ".txt" extension. Please remove it when using the files.

Scenario

The above sample script will add additional usages “Modify” and “Precaution” in the “Requirement Browser” and the “Assignment Manager”. Also, a combined usage “Control and Modify” is added to the list of requirement usages. The number of allowed consumptions for the “Modify” usage will be set to 1 and for the “Precaution” usage to ‘-1’ which allows infinite number of assignments of the usage.

After deploying the above sample Business Logic (BL), the “Requirement Browser” and “Assignment Manager” will show the custom “Modify”, “Precaution” and “Control and Modify” usage.

After assigning the “Modify” usage, it looks as shown below in the assignment manager:

After assigning the “Control and Modify” usage from “Requirement Browser”, the “Modify” and “Control” usages are assigned to the object. It looks as shown below in the assignment manager:

Testing the number of allowed assignments per usage

Let's consider a Process Planning Structure as shown below which has five operations in it:

When, no requirement is consumed on any operation, the assignment manager will show all the usages of the requirements available for the assignment as shown below:

Let’s assign the “Realize” usage (OOTB usage with allowed number of assignments in a structure = 1) of the “Linear Size.1 A” requirement to the “Turning” operation as shown below:

After assigning the “Realize” of the usage of the “Linear Size.1 A” requirement on one operation in process structure, the “Realize” usage of that requirement will no longer assignable for other operations (Because the number of allowed assignments for “Realize” usage = 1) as shown below:

In similar way, the “Modify” usage will be assignable only on 1 object in a structure.

Let’s assign the control usage of the “Linear Size.1 A” requirement on the “Turning” and “Chamfering” operation (This will be allowed as number of allowed assignments for “Control” usage = 2) as shown below:

Now the “Control” usage of the requirement “Linear Size.1 A” will be no longer available for additional assignments as shown below:

The “Precaution” usage of a requirement can be assigned on any number of objects in a structure, because it’s allowed number of assignments are set to “-1” which allows infinite number of assignments.

Now, let’s assume that, for the requirement “Linear Size.2 A” it is required that the precaution should be taken that this length is not changed by any of the machining operation. 

Let’s assign the precaution usage of the requirement “Linear Size.2 A” to all the machining operations and to the “Quality Check” Operation” as shown below:

In this way, the number of allowed assignments can be customized for the OOTB Requirement usages and additional usages, and combined usages can be added as per the need.

References

User Assistance: Requirement Usages (DELPPRRequirementUsages_ID)

How to Deploy

A. Deploy the Business Rule

You may refer the below page for Business Rule deployment.

How to Deploy Business Rule

For deployment using Data Setup app following Resource set ID and opening needs to be used:

Resource Set ID:

Opening ID:

Fact Type:

This Object Type: Requirement

 

B. Modify the DELPPRRequirementUsages.CATNls File

In order to be NLS compliant, each usage and each usage combination must be associated to a NLS value defined in the following CATNls file:  "Your_3DExperience_Installations\\win_b64\\resources\\msgcatalog\\DELPPRRequirementUsages.CATNls"

Details about customizing the CATNls file are given in the previous section.

Note: Deployment of above files can be done in a local machine using custom environment to avoid changes in OOTB environment. Also, it is recommended to take backup of the OOTB files before customizing them directly.

Authors

For any queries, please reach out to @KA @KK