Location Attribute Properties Dialog
This dialog is accessed from the Add (user defined attributes) or Modify buttons in the Attributes tab in the Location  Setup dialog. It allows you to modify attribute properties.
Attributes are used for reporting in various windows including Data/Section Windows, and Plan/Profile Labels.
Attributes are used for reporting in various windows including Data/Section Windows, and Plan/Profile Labels.
Definition fields
Only the Heading and Description text can be customized for predefined attributes.
Variable (Edit box)
Name used to reference the attribute when choosing to display the it in a window or label. Can also be referenced in other user defined attributes in the Function definition.
Heading (Edit box)
Column heading if displayed in the Data window and short descriptive text available for other references.
Description (Edit box)
Long descriptive text seen when selecting attributes for display.
Reset to default (button)
Replaces Heading and Description with the default text. Not available for user defined attributes
Attribute Properties
These properties can only be modified for user defined attributes.
Units (drop list)
Choose the units to be displayed here. There is an option for None.
Reference (drop list)
Your choice controls how the attribute is displayed in the Data window, which windows and labels can display the attribute and how the attribute is calculated.
At stn. attributes are displayed in the same row as the station reference in the Data window; they are point attributes. They can also be displayed in the Status Area of the Section window. The Function should be independant of the distance between displayed points.
Between stn. attributes are displayed between the station references in the Data window; they are range attributes. They cannot be displayed in the Section window. The Function should include the distance between points as a factor; for example a volume is the product of a cross sectional area and the distance to the next calculation point.
To be as accurate as possible, Between stn. attributes are calculated between all design points in a displayed range and these incremental values are summed for display; this functionality was added in V10.0.251.
Type (drop list)
Numeric or Alphanumeric
Reporting totals (drop list)
Choose Include to display totals at the bottom or the Data window. This attribute must first be selected for display in the Data window and Totals must be enabled.
Function definition
Fields (button)
Opens a dialog box that displays all attributes and allows you to Add a selected attribute Variable name to the Function edit box
Function (edit box)
An expression consisting of other parameters and constants can be entered.
The function string is similar to a Csyntax arithmetic expression. Variables and constants are considerred to be floating point. Expressions can be created from constants (typed numbers), Variables (other attributes) and functions using the following operators in this order of precedence:
() expressions in parentheses first
A unary minus
A^B exponentiation (A raised to the power B)
A*B A/B A%B multiplication, division and modulo
A+B AB addition and subtraction
A=B A<B A>B comparison between A and B (result is either 0 or 1)
A&B result is 1 if int(A) and int(B) differ from 0, else 0.
AB result is 1 if int(A) or int(B) differ from 0, else 0.
Since the unary minus has higher precedence than any other operator, the following expression is valid: "x*y". However using parentheses can make expressions easier to understand: "x*(y)".
Note that the '=' comparison can be inaccurate due to floating point precision problems (eg. "sqrt(100)=10" probably returns 0, not 1).
These functions are supported:
abs(A)

Absolute value of A. If A is negative, returns A otherwise returns A.

acos(A)

Arccosine of A. Returns the angle, measured in radians, whose cosine is A.

acosh(A)

Same as acos() but for hyperbolic cosine.

asin(A)

Arcsine of A. Returns the angle, measured in radians, whose sine is A.

asinh(A)

Same as asin() but for hyperbolic sine.

atan(A)

Arctangent of (A). Returns the angle, measured in radians, whose tangent is (A).

atan2(A,B)

Arctangent of A/B. The two main differences to atan() is that it will return the right angle depending on the signs of A and B (atan() can only return values betwen pi/2 and pi/2), and that the return value of pi/2 and pi/2 are possible.

atanh(A)

Same as atan() but for hyperbolic tangent.

ceil(A)

Ceiling of A. Returns the smallest integer greater than A. Rounds up to the next higher integer.

cos(A)

Cosine of A. Returns the cosine of the angle A, where A is measured in radians.

cosh(A)

Same as cos() but for hyperbolic cosine.

cot(A)

Cotangent of A (equivalent to 1/tan(A)).

csc(A)

Cosecant of A (equivalent to 1/sin(A)).

eval(...)

This a recursive call to the function to be evaluated. The number of parameters must be the same as the number of parameters taken by the function. Usually called inside if() to avoid infinite recursion.

exp(A)

Exponential of A. Returns the value of e raised to the power A where e is the base of the natural logarithm, i.e. the nonrepeating value approximately equal to 2.71828182846.

floor(A)

Floor of A. Returns the largest integer less than A. Rounds down to the next lower integer.

if(A,B,C)

If int(A) differs from 0, the return value of this function is B, else C. Only the parameter which needs to be evaluated is evaluated, the other parameter is skipped; this makes it safe to use eval() in them.

int(A)

Rounds A to the closest integer. 0.5 is rounded to 1.

log(A)

Natural (base e) logarithm of A.

log10(A)

Base 10 logarithm of A.

max(A,B)

If A>B, the result is A, else B.

min(A,B)

If A<B, the result is A, else B.

sec(A)

Secant of A (equivalent to 1/cos(A)).

sin(A)

Sine of A. Returns the sine of the angle A, where A is measured in radians.

sinh(A)

Same as sin() but for hyperbolic sine.

sqrt(A)

Square root of A. Returns the value whose square is A.

tan(A)

Tangent of A. Returns the tangent of the angle A, where A is measured in radians.

tanh(A)

Same as tan() but for hyperbolic tangent.

Examples of valid function strings:
"1+2"
"x1" where x is an attribute variable name (similar below)
"sin(sqrt(x^2+y^2))"
"sqrt(XCoord*XCoord + YCoord*YCoord)"