User Fields & User Field Formulas


Table of Contents

3D Objects and Resources

Browse to .sp Fioles folder and open User Field Formula - Start.sp. In this model, the resources are built when we import the 3D model. This is because the IFC elements in IFC models are imported by Synchro directly as a resource element (with the 3D representation assigned to it) when these options are set to Import.

Please note that all metadata (parameters, user-defined fields, etc.) are imported directly as Resource User Fields (NOT 3D User Fields).

This is by design of the software.

For any selected 3D Resource, we can observe that there are two Resource User Fields “[SYNCHRO] SECTION” and “[SYNCHRO] TIER” which may be useful later. 

Schedule

The schedule hierarchy is Erection/ Welding, Stage, and Tier. Child tasks have Section in the names.

In this part we interrogated the 3D model / Resources and schedule. Now we have a basic understanding of both. Next, we will learn about how to create our own user fields based on the information in 3D model / Resources and schedules. 

 

Create and Customize 3D Filters to Understand 3D Model

3D Filter is used to hide/show elements in the 3D View based on user-defined criteria or saved selection (of previously selected 3D objects).  

In 4D Pro Fundamental training, we already learned some of the basic 3D Filters, such as 3D by Selection [User]. When there are 3D objects selected in 3D View, we can right click in 3D View > Filters > Isolate Selected or Hide Selected, to isolate selected 3D objects or hide selected 3D objects.  

Now we will learn how to create our own 3D Filters based on the user fields of 3D objects. 

Note:

Create “Section” 3D Filter

  1. Go to 3D ribbon > Click “3D Filters” to turn on 3D Filters window; 
  2. 3D Filters window will appear on the left side of your screen; 
  3. Right click in “3D Filters” window > choose Add; 
  4. Name this 3D Filter “Section”; 
  5. In its General tab, under “Filter 3D by…”, check “User Fields”; 
  6. In its User Fields tab, search “section” in the search box under “User Fields” to quickly locate “[SYNCHRO]SECTION” user field; 
       

  7. Check the box for “[SYNCHRO]SECTION” and key in “A” for Value; 

 

Activate “Section” 3D Filter in Selected 3D View

Now you can see the filter that is applied to the 3D window will be displayed in the window title as well as the objects in “Section A” are isolated in the 3D window. This can also verify the value of “Section” for 3D objects in section A is correct. We can use similar methods to verify 3D Objects in other sections. 

 

Customize 3D Filters

  1. Make sure “Section” 3D Filter is activated in 3D View; 
  2. Adjust its settings in General tab to customize colour and transparency of this 3D Filter, for both Filtered Objects and Unfiltered Objects; 


  3. You will notice that the filtered objects are NOT reflecting the dark blue colour set by the “Section” 3D Filter; This is because the colour mode is not set properly;
  4. Right click in 3D Object window > Colour Mode > 3D Filter;


  5. You can now practice and customize the colour and transparency for the “Tier”3D Filter that you created on your own; using red or another colour (not blue); 
  6. Then activate the “Tier” 3D Filter as well in 3D View and observe the results; 

Activate More than One 3D Filter

In 3D View Properties window, you can operate set logic and priority of the filters. 
  

Note: When AND is selected for the Operation in the Filters tab: only objects that meet the criteria of all Active Filters will be included. The colour scheme of the 3D Filter at the top of the Active Filters list will be applied to all visible objects. 

Questions:

 

Create String Type User Fields with Formula

From the previous practice, we learned that all 3D objects contain both Tier and Section info. We will further prepare the schedule to learn how Tier and Section info can be extracted to build text type user fields with formula, in order to facilitate auto matching. 

Create Task User Field “Tier+Section” 

  1. Go to Project Controls ribbon then click “User Fields” icon to open User Fields window; 


  2. Right click in “User Field” window > Add 
  3. In “Add User Field” window, edit the user field settings as indicated below;


  4. Click “OK” button then go to Gantt Chart to display the “Tier+Section” User Field;


  5. Click “Edit” button to go to Formula Editor window;


  6. We would like to create a new User Field in #X format based on the concatenation of Tier (from parent task name) and Section from its own name. Here # represents Tier number and X represents Section letter.

    For example, in the screenshot below, for the selected task, our desired value for Tier+Section is 1A.
    • “1” comes from “Tier 1”, which is part of the name of its parent task; 
    • “A” comes from its own task name;

  1. To extract “1” from “Tier 1” in the parent task name, you need to extract one string from the right of the text string. You will use something like:
    RIGHT (Text, num_character)

    So, eventually you would need something like:
    RIGHT (PARENT.PROPERTY(“NAME”), 1) 

    Note: You are not expected to type all these in, for all properties, user fields and syntax, you could use the search box (top left corner) of Formula Editor to look for it.  
  1. Similarly, to extract “A” from “Section A- Erect, Plumb and Bolt” from its own task name, you will need to extract “Section A” first by using something like:
    LEFT (Text, num_character)

    So, you would need something like:
    LEFT (PROPERTY(“NAME”), 9) 

    Note: “Section A” contains 8 characters and one space, which gives us 9; 

    Then you would need to further extract “A” from “Section A,” so you will need to use RIGHT (Text, num_character) to get “A.” Eventually it would look like this:
    RIGHT (LEFT (PROPERTY(“NAME”), 9), 1) 

    Note: The highlighted portion above returns “Section A” so RIGHT () is used to extract “A” 
  1. In summary, your formula to get “Tier+Section” will look like the screenshot below: 


    Note: To search for the usage of syntax, please type it in the search bar then click “Insert” to insert. The section together with examples will also appear at the bottom to help you understand how to use them. 
  1. .Make sure Task User Field “Tier+Section” is selected. 
  2. Ctrl +A in Gantt chart to select all the tasks; 
      
  1. Click “Recalculating Values” in User Field ribbon > Edit calculating settings; 


  2. Here we choose "Selected for User Fields" to recalculate, where we only recalculate the "selected User Fields" – Task UF “Tier+Section” in this case.

    We choose "Selected for processed objects", where we will recalculate the "user fields of the selected objects" – "all selected tasks" in this case. We check “only leaf objects” because we would like to recalculate the selected objects at the bottom level of the tree only – in this case, parent tasks use fields will not be recalculated. 

  3. Create Resource User Field “Tier+Section”
  4. Similarly, a Resource User Field “Tier+Section” can be created, concatenating two Resource User Field Values from “[SYNCHRO]TIER” and “[SYNCHRO]SECTION.” You can find the formula in the screenshot below.

Create Resource User Field “Tier+Section”

  1. Similarly, a Resource User Field “Tier+Section” can be created, concatenating two Resource User Field Values from [SYNCHRO]TIERand [SYNCHRO]SECTION.” You can find the formula in the screenshot below: 

  2. Display “Tier+Section” Resource User Field in Resources window: 
      
  1. Select the Resource User Field “Tier+Section,” then go to Project Controls ribbon and select “Recalculate Values”: 
       

  2. Look through to check the calculated value in Resource Properties window for the selected resources: 

Automatching

  1. Please refer to the Session 2 document for detailed instructions for Automatching. 
  2. Select all target tasks under “Erection” parent task; 
  3. The Automatching Ruleand result are shown below:
  4. Move focus time through the Gantt Chartto check.  

       

 

Create Number Type User Fields with Formula

Questions:

Create “Steel Weight (Ton)” Task User Field

  1. Observe Resource User Fields for any selected 3D Resource;


    For any selected 3DResource, you can find Resource User Fields “[BaseQuantities[IfcElementQuantity]]NetVolume” and “[BaseQuantities[IfcElementQuantity]]NetWeight”. 
  1. Create Task User Fields “Steel weight (Ton)” and compute total steel needed per task each task;

    Steps are similar as those for creating a text type user field. But this time you would use SUM() to get a the sum of all valid elements from the argument. For example, SUM(object.UFV("Volume")) returns the sum of the Volume of all objects and objects in Synchro can be Task, 3D and Resource.
       

    So in our case, the formula will be as follows:

    Note: Do NOT type allot, use Search box on top left corner instead, to look for the Resource User Field “….NetWeight” and to look for Syntax “SUM.” 
  1. Customize Columns to display the “Steel Weight (Ton)” User Field:


  2. Select all tasks > Check “Steel Weight (US Ton)” > Recalculate Values using the settings below: 
       

  3. Create “Steel Volume” Task User Field (on your own)

 

Create User Field Graphs

  1. For the Selected User Field “Steel Weight (Ton)”, check the box “Draw in UF Graph”; 


  2. Then go to Project Controls ribbon then click User Field Graph icon, the graph will be plotted if the User Field type is Number or Integer: 


Questions:

How can you show cumulative in UF graph or add a limit graph line?

User Field Formulas (Video)