If your Organisation or Project requires further assistance on Project Planning, please view the Project Planning, Programming and Controls Page, or Contact Page


Activity Codes are a very important and powerful feature of Project Schedules. The topic could easily take up an entire day of Primavera P6 training. This article aims to provide some practical insight into the use of Activity Codes in Primavera P6.

WBS as a Static Hierarchy.

Standard definitions of a Work Breakdown Structure (WBS) usually relate to a hierarchical structure for organising project objectives, Primavera P6 actually provides two means to achieve this.

The first is the P6 function called WBS, where each project/schedule can have a hierarchical structure for organising project activities. I call this method a “static hierarchy” – once it is set, all activities are organised into this structure. Primavera uses this WBS function for a lot of other P6 features, including Earned Value, Portfolio tracking, and also allows users the ability to copy and paste entire WBS sections. To re-arrange this structure requires significant rework.

The second method is to use Activity Codes, where project activities are assigned code values. These can then be arranged into a hierarchical structure using these codes. Re-Arranging the structure is simply a matter of using different combinations of codes.

Consider the example below, the left side is a structure where activities are organised by Phase, then Region, then Discipline.


If activities are required to be analysed, or reported in a different structure as on the right ride, say, by Region, then Discipline, then Phase, using Activity Codes would simply require a change in the order of the codes being used, whereas rearranging the P6 WBS would require the manual shifting of each element within the structure, to the desired outcome.

Primavera P6 Activity Codes

Activity Codes in Primavera P6 can be set as three different types:

  • Project Activity Codes –codes that are only accessible by the project they are created within
  • EPS Activity Codes – codes can be accessed by any project within a specified portion of the EPS Hierarchy
  • Global Activity Codes – codes can be accessed by any project within the entire Primavera P6 database.


Who can modify Global Activity Codes is dependent on Global security privileges, and who can modify EPS or Project Activity Codes is dependent on Project security privileges, and also how/which projects can be accessed. Setting the correct security profiles can greatly contribute to the management of Activity Codes, and improved user performance, and is just one element of a well-structured P6 database using the correct security profiles.

Care should be taken when importing and exporting XER files – issues can arise with the transfer of Activity Codes!

Hierarchical Activity Codes

Unlike older Primavera software, P5/P6 introduced hierarchical Activity Coding structures. This means that the Activity Codes themselves can have hierarchies, and you can then Group at particular levels within each Activity Code, as shown on the Grouping options below:


In fact, it is entirely possible to replicate the WBS function of P6, using Activity Codes by replicating the “Static Hierarchy” as another coding structure that activities are assigned to.

Tricks to Assigning Activity Codes

While the ability to copy and paste entire WBS elements makes replicating activities straightforward, the assignment of Activity Codes can be more complicated. There are some tricks – use XLS files to assign and import, Use the SDK to generate the code dictionaries, or use the following hints to assign Activity Codes to activities:

Hint 1: use columns to show the Activity Codes, you can then “Fill Down” values as required


Hint 2: If you Group by Activity Codes, pasting activities into that group also assigns the corresponding Activity Codes to the pasted activities.

Hint 3: It is possible to assign multiple codes to multiple activities in a single click, as shown below:


Hopefully the above provides some practical insight into what I consider to be a very important aspect of Project Schedules.