Alignment Superelevation Rule (AlignmentSuperElevationRule_Sample.CATRule)

An opening ID is an entry point used to customize business logic.

Note: For more information about customization by business rules, see Installation and Setup: Customize: Behavior: Data Setup: Customization by Business Rules.

This page discusses:

General Information

This opening ID is invoked only on a road surface feature.

This opening ID is used to customize the name of specification features.

Definition Description
PLM Opening ID AlignmentDesignRule.CATRule_NamingRule
Customization intent Computation
Execution context Client

Input Objects

Input objects must be of the following types:

  • ThisObject: AlignmentSweep corresponds to the road surface feature.
  • Parameters:
    • Radius: Corresponds to the curve radius from geometry (MKS length, in).
    • sLength: Spiral length from geometry (MKS length, in).
    • tLength: Transition length from table (MKS length, in/out) =0 if not found in Design Rule tables table.
    • eRate: superelevation rate from table (%, in/out) =0 if not found in Design Rule tables table.
    • pRate: fractional part of transition length achieved before curve point (%, in).
    • Speed: current design speed (MKS speed m_s).
    • Angle: normal crown slope (%, positive).

Depending of the Crown type you choose, you must specify the following Output attributes in the CATRule:

  • LCtoFS: Level Crown to Full Super (runoff) (type length).
  • LCtoFS: Level Crown to Beginning of Curve (type length).
  • NCtoLC: Normal Crown to Level Crown (runout) (type length) - Useless for non-crowned lane.
  • LCtoRC: Level Crown to Reverse Crown (type length) - Useless for non-crowned lane.
  • tLength: out optionally, if not found in Design Rule tables.
  • eRate: out optionally, if not found in Design Rule tables.

Sample

Examine carefully the CATRule to see how there rules for each type and object type are programmed. This sample shows how a company can easily customize the name of road surface features. Refer to following CATRule for the exact definition of the name of road surface feature for each type and each object type. For more information, see Enterprise Knowledge Language Reference Guide.

If no Design Rules are set in Data Setup, default superelevation tables are provided in startup\Civil\AlignmentDesignRules\AlignmentDesignRules.xml and will be used by default.

The values of superelevation are determined from country/government rules and are a function of the rate speed and curve radius. You can use the AASTHO standard (available in: …\startup\Civil\AlignmentDesignRules\AlignmentDesignRules_AASHTO2011.xml) for tables 3-7, 3-8, 3-9, 3-10a, 3-10b, 3-11a, 3-11b, 3-12a, 3-12b, 3-17a, 3-17b, 3-21, 3-29, 3-34. 3-35, and 3-36. These tables come from A Policy on Geometric Design of Highways and Streets, determined by the American Association of State Highway and Transportation Officials, Washington, D.C., U.S.A. in 2011, and are used with permission.

/* ============================================== */
/* AlignmentSuperElevationRule_Sample.CATRule       */
/*                                                  					    */
/* Sample file to customize alignment superelevation attainment methods. */
/* User can customize this file for each project.                                              */
/*                                                  					    */
/* ==============================================  */

/* Get inputs */
Let Radius(real)
Let SLength(real)
Let TLength(real)
Let eRate(real)
Let pRate(real)
Let eSlope(real)
Let V(real)

Radius = Parameters.GetAttributeReal("Radius")
SLength = Parameters.GetAttributeReal("sLength")
TLength = Parameters.GetAttributeReal("tLength")
eRate = Parameters.GetAttributeReal("eRate")
pRate = Parameters.GetAttributeReal("pRate")
V = Parameters.GetAttributeReal("Speed")
eSlope = Parameters.GetAttributeReal("eSlope")

/* Compute outputs */
Let LCtoFS(real)
Let LCtoBC(real)
Let NCtoLC(real)
Let LCtoRC(real)

/*  LCtoFS - Level Crown to Full Super (runoff)   */
LCtoFS = TLength

/*  Level Crown to Beginning of Curve  */
LCtoBC = pRate * TLength

/*  Normal Crown to Level Crown (runout)  */
NCtoLC = TLength * eSlope / eRate

/*  Normal Crown to Level Crown (runout)  */
LCtoRC = TLength * eSlope / eRate

/* Write outputs */
Parameters.SetAttributeReal("LCtoFS", LCtoFS)
Parameters.SetAttributeReal("LCtoBC", LCtoBC)
Parameters.SetAttributeReal("NCtoLC", NCtoLC)
Parameters.SetAttributeReal("LCtoRC", LCtoRC)