Pavement Analyst allows the user to define new calculated fields that cannot be directly modeled through an explicit performance model (for example, Condition Category value calculated from a combination of pavement conditions), and use them for decision making, as constraints / objectives, and reporting purposes.

  1. Add the column to SETUP_COLUMN_ID table to the system through the Columns window which can be navigated to by selecting System in the top banner menu, selecting Utilities in the drop-down menu, selecting Database Structure, and then clicking Columns:
  2. Add this column to PMS Analysis Columns window. This step adds the column to the SETUP_MS_COLUMNS table, and check the Restart with Treatment field
    When this option is checked, the columns added to the SETUP_MS_COLUMNS table will automatically be added to USER_OPTIMIZATION_ENGINE table during the analysis. If “Save Details’ is checked, then during the analysis all values in USER_OPTIMIZATION_ENGINE table are copied to the columns with the same name in PMS_ANALYSIS_OPTIM_RESULTS_DET table (So those columns need to be added to PMS_ANALYSIS_OPTIM_RESULTS_DET table as well). However, the following columns must be manually added to the USER_OPTIMIZATION_ENGINE table (replace ColumnName with the actual column name which is just added to the SETUP_MS_COLUMNS table):
    • ColumnName_ALT_1

    • ColumnName_ALT_2

    • ColumnName_ALT_3

  3. Create a Calc Columns Analysis groovy script through the Groovy Script window which can be navigated to by selecting System in the top banner menu, selecting Tools in the drop-down menu, and clicking Groovy Scripts. This groovy script will be called at the end of each year in the analysis engine and the whole Dataset (USER_OPTIMIZATION_ENGINE) is passed to it. The script’s general structure is like this:

    import com.agileassetsinc.core.DataStore;
    import com.agileassetsinc.main.optim.PerformanceIndex;
    
    String altAddition = (alt_in==0?"":"_ALT_"+alt_in);
    
    for (int i = 1; i <= ds_in.rowCount(); i++)
    	{
    		ds_in.setItemNumber(i, col_in+altStr ,ds_in.getItemNumber(i,"UNI_IRI_IND"));
     //The value that is recorded in the new column should be returned by this query
    	}

  4. Assign the created groovy to Groovy Script for Calculated Columns field of the added column in Analysis Columns Window
  5. Add the new column to where they are used for reporting, particularly PMS_ANALYSIS_OPTIM_RES_DET table which can be navigated to by selecting System in the top banner menu, selecting Utilities in the drop-down menu, selecting Database Structure, and then clicking Tables. Add these columns to the Detailed Optimization Result window which can be navigated to by selecting the Pavement Analyst or Pavement Analyst Express module from the module menu, selecting Analysis from the top banner menu, selecting Network Analysis from thedrop-down menu, and clicking Detailed Optimization Results.

  • No labels