On most projects, the structure of Schedule and Cost performance reporting is based on the Project WBS and the reason for this is not farfetched since WBS is a deliverables-driven hierarchical structure. Planning tools such as Primavera P6 have a feature that enables Schedulers and Planners to replicate the Project WBS and this is why activities in a schedule are predominantly grouped by WBS.
One drawback of grouping activities only by WBS is that it is a rigid structure with little or no room for manoeuvring and this is where Primavera P6 activity codes come in handy. Activity codes (all 3 types; Global, EPS & Project) give Planners and Schedulers the flexibility to categorise activities in many ways therefore enabling the grouping, filtering & reporting of activities using custom set of data outside of WBS, Resources and Dates.
In this tutorial, we will explore different ways we can use activity codes to present schedule data. This tutorial is aimed at P6 Beginner or Intermediate level users and all screenshots are from P6 R16.2.
In the Gantt chart shown in figure 01, you will notice that the activities are grouped by our WBS structure shown in figure 02, so in this tutorial, we are going to group the same activities shown in the Gantt chart using different categorisations.
TYPES OF ACTIVITY CODE
According to P6 Help, “An activity code can be one of three types: Global, EPS, or Project. Global activity codes organize activities across all projects in an organization. EPS activity codes organize activities within a specific branch or node of the enterprise project structure (EPS). Project activity codes categorize activities based on specific features within a project”.
This tutorial will focus on Project type activity codes and this is because Project activity codes are included in an exported xer file.
DEFINING ACTIVITY CODES
While in P3 you could create an activity code on the fly, in P6 all codes have to be defined in the activity code dictionary before they can be assigned to an activity, so let’s define the following Project activity codes and values:
- Stage Gate: 20-Week Gate, 12-Week Gate, 6-Week Gate, 2-Week Gate
- Manager: Dennis Wise, Ruud Gullit, Eddie Newton, Franco Zola, Steve Clark
- Team Lead: Frank Lampard, Didier Drogba, Petr Cech, Celestine Babayaro, John Terry
- Priority: Very High, High, Medium, Low, Very Low
- Mode: Mobilisation, Working, Standby, Breakdown, Weather
- Location: Head Office, North, South, East, West
From the P6 menu, click on Enterprise > Activity Codes to open the Activity Code dialog and select the Project radio button as shown in figure 03.
Now click on the Modify button and this will open the Activity Code Definitions – Project dialog as shown in figure 04.
In the Activity Code Definitions – Project dialog, click the Add button and in the Activity Code Name, enter Stage Gate and in the Max Length box, enter 3 as shown in figure 05. (Max Length is the number of characters you would like your code value to have and the limit is 32. My personal preference is to keep it between 1 and 5 so that I can easily display the code in a column on my Gantt chart).
Next, repeat Step 2 to define the remaining activity codes as shown in figure 06.
Click the Close button to exit the Activity Code Definitions – Project dialog and return to the Activity Codes dialog.
ADDING ACTIVITY CODE VALUES
Now that we have defined our activity codes, we can now add values to them. In the Activity Codes dialog, click the Select Activity Code dropdown box and select any of the activity codes we just defined, e.g. Stage Gate (P6 will add the Project ID as prefix), so in this example the activity code will appear as ACD – Stage Gate.
Click the Add button. Your dialog should look like figure 07 with (New) shown under Code Value column and (New Code Value) under Description column.
Now click the (New) and overwrite it with 20W (remember max length for Stage Gate is 3, so we can only enter 3 characters) and also overwrite (New Code Value) with 20-Week Gate as shown in figure 08.
Repeat Step 5 to add the remaining values for Stage Gate activity code as shown in figure 09.
Now repeat Steps 4 to 6 to add values to all the defined activity codes in project as shown in figure 10.
ASSIGNING ACTIVITY CODES
Now that we have defined our activity codes, we need to assign them to activities and below are the 3 ways that I like using to assign activity codes.
Method 1: Column Fill Down
Add an activity code column (field), e.g. Manager, to your layout and double-click any cell in the newly added column to open the Select Activity Code dialog as shown in figure 11. The first time you do this, you will get a blank dialog. Click on Display: Current Project’s Values > Filter By > All Values and you should have all activity code values for Manager listed.
Double-click on the Value (Dennis Wise in this example) you want to assign to the selected and you should have the value DW displayed in the Manager column as shown in figure 12.
Still with the cell we just added a name to selected, hold the Ctrl key and click on other activities you want to assign the a Manager code to (if they are sequential activities, instead of Ctrl key, hold the Shift key and click the last of the sequential activities) and right-click to display a context menu (pop-up menu). From the context menu, select Fill Down as shown in figure 13.
This will now fill the selected cells with the value DW as shown in figure 14.
You can repeat this process to assign different Manager codes to the remaining activities as shown in figure 15.
Method 2: Context Menu
Select any activity and then right-click to display the context menu. From the context menu, select Assign > Activity Codes to open the Assign Activity Codes dialog and in the Assign Activity Codes dialog, ensure that the Project radio button is selected as shown in figure 16 since the activity codes we defined in Steps 1 to 7 are project activity codes.
Double-click an activity code value to assign it to selected activity. With this method, you can select multiple activities and assign same code value to them without closing the Assign Activity Code dialog.
Method 3: Details Form
Select an activity and in the Activity Details Form, click on the Code tab and then the Assign button to open the Assign Activity Codes dialog as shown in figure 17. In the Assign Activity Codes dialog, ensure that the Project radio button is selected and then double-click an activity code value to assign it to the selected activity.
Just like in method 2, you can select multiple activities and assign same code value to them without closing the Assign Activity Code dialog.
GROUPING BY ACTIVITY CODES
Click on View > Layout > Save Layout As menu and this will open the Save Layout As dialog as shown in figure 18. In the Layout Name textbox, type in a suitable name for your new layout and in the Available to dropdown box, select Project (so that the layout is always available to the project even when the project is exported to another database) and click on the Save button.
Click on View > Group and Sort by menu to open the Group and Sort by dialog. Under the Group By column, select the activity code to group activity by (in this example, Manager code is selected) as shown in figure 19 and click OK to return to the layout.
Activities in the schedule should now be grouped by the Manager activity code values as shown in figure 20 and remember to save the layout.
Other examples of categorisation by activity codes are shown in figures 21 and 22.
While this tutorial focused on using project activity codes to group activities, there are so many other ways to use activity codes such as:
- Colour coding of Gantt chart bars
- Filtering activities
- Generating schedule performance reports
Hopefully, you are now in a position to explore project activity codes in greater details and find more uses for them.
Want to learn more about using Activity Codes in Primavera P6? Check out our Essential Activity Codes in Primavera P6 Course.