Special functions can be used in expressions on Strip & Quick Section templates to return parameters from the Quick Section report. These functions are documented below along with examples.
For additional information on other functions and expressions in general, please see our Functions Guide and Expressions Guide.
Note that some of these functions may not Preview properly in Template Studio, but can be tested by generating a Quick Section in Professional.
[Section.Offset] can be used on a Quick Section Strip to return the perpendicular offset of a Location from the Quick Section baseline.
This expression will return the offset for each Location to 1 decimal place. In this example (and others below), it is used in a Header Data Text item in the header area of the Strip. A positive offset indicates the Location sits to the right of the Section Line and a negative offset to the left (looking along the Section baseline from starting point to end point).
concatenate(
'Offset: ',
text(fixed([Section.Offset],1,false)),
' ft'
)
This expression will report the offset as left or right of the Section Line rather than as negative or positive.
concatenate(
'Off.: ',
text(fixed(abs([Section.Offset]),1,false)),
' ft',
if(
value(fixed([Section.Offset],1,false))>0,
' R',
if(
value(fixed([Section.Offset],1,false))<0,
' L',
''
)
)
)
An offset can also be stored in the Location Details group. The expression below can be used if you'd like to report [Section.Offset] only when this value is blank. (Essentially, the value from Location Details will override [Section.Offset].
This version of the expression will report the offset as negative or positive:
concatenate(
'Offset: ',
if(
isblank([LocationDetails.Offset]),
text(fixed([Section.Offset],1,false)),
text(fixed([LocationDetails.Offset],1,false))
),
' ft'
)
This version of the expression will report the offset as left or right of the Section Line:
concatenate(
'Off.: ',
if(
isblank([LocationDetails.Offset]),
text(fixed(abs([Section.Offset]),1,false)),
text(fixed(abs([LocationDetails.Offset]),1,false))
),
' ft',
if(
isblank([LocationDetails.Offset]),
if(
value(fixed([Section.Offset],1,false))>0,
' R',
if(
value(fixed([Section.Offset],1,false))<0,
' L',
''
)
),
if(
value(fixed([LocationDetails.Offset],1,false))>0,
' R',
if(
value(fixed([LocationDetails.Offset],1,false))<0,
' L',
''
)
)
)
)
[Section.Chainage] can be used on a Quick Section Strip to return the distance of a Location along a Quick Section baseline. This is commonly referred to as the 'Chainage' or 'Station', depending on what part of the world you find yourself.
This expression will return the distance along the baseline (Station/Chainage) of each Location to 1 decimal place. In the example below, it is used similar to the examples above in a Header Data Text item in the header area of the Strip.
concatenate(
'Station: ',
text(fixed([Section.Chainage],1,false)),
' ft'
)
An offset can also be stored in the Location Details group. The expression below can be used if you'd like to report [Section.Chainage] only when this value is blank. (Essentially, the value from Location Details will override [Section.Chainage].
Note the database name for this header is LocationDetails.Chainage, but it might be labelled as Station depending on which configuration pack you are using to reflect local terminology.
concatenate(
'Station: ',
if(
isblank([LocationDetails.Chainage]),
text(fixed([Section.Chainage],1,false)),
text([LocationDetails.Chainage])
),
' ft'
)
It is common in many parts of the world to report stationing with special formatting. For example, a Station of 1400 ft may be formatted as 14+00 ft.
The expression below can be used to report [Station.Chainage] in this format. This expression can be modified, such as to report stationing with additional decimal places.
concatenate(
'Station: ',
if(
len(text(fixed([Section.Chainage],0,false)))<2,
'0+0'+text(fixed([Section.Chainage],0,false)),
if(
len(text(fixed([Section.Chainage],0,false)))<3,
'0+'+text(fixed([Section.Chainage],0,false)),
concatenate(
left(text(fixed([Section.Chainage],0,false)),len(text(fixed([Section.Chainage],0,false)))-2),
'+',
right(text(fixed([Section.Chainage],0,false)),2)
)
)
),
' ft'
)
When meters are used for stationing, it is common to format stationing with 3 digits after the '+', in which case the expression could be modified like this.
concatenate(
'Station: ',
if(
len(text(fixed([Section.Chainage],0,false)))<2,
'0+00'+text(fixed([Section.Chainage],0,false)),
if(
len(text(fixed([Section.Chainage],0,false)))<3,
'0+0'+text(fixed([Section.Chainage],0,false)),
if(
len(text(fixed([Section.Chainage],0,false)))<4,
'0+'+text(fixed([Section.Chainage],0,false)),
concatenate(
left(text(fixed([Section.Chainage],0,false)),len(text(fixed([Section.Chainage],0,false)))-3),
'+',
right(text(fixed([Section.Chainage],0,false)),3)
)
)
)
),
' m'
)
The expression below combines the above examples for [Section.Chainage] and [Section.Offset]. It will report values that have been entered into Location Details, but otherwise use the Section Functions. It will report offsets as left or right of the Section Line, and it will also format [Station.Chainage] using station formatting.
concatenate(
'Sta.: ',
if(
isblank([LocationDetails.Chainage]),
if(
len(text(fixed([Section.Chainage],0,false)))<2,
'0+0'+text(fixed([Section.Chainage],0,false)),
if(
len(text(fixed([Section.Chainage],0,false)))<3,
'0+'+text(fixed([Section.Chainage],0,false)),
concatenate(
left(text(fixed([Section.Chainage],0,false)),len(text(fixed([Section.Chainage],0,false)))-2),
'+',
right(text(fixed([Section.Chainage],0,false)),2)
)
)
),
text([LocationDetails.Chainage])
),
' ft',
'\n',
concatenate(
'Off.: ',
if(
isblank([LocationDetails.Offset]),
text(fixed(abs([Section.Offset]),1,false)),
text(fixed(abs([LocationDetails.Offset]),1,false))
),
' ft',
if(
isblank([LocationDetails.Offset]),
if(
value(fixed([Section.Offset],1,false))>0,
' R',
if(
value(fixed([Section.Offset],1,false))<0,
' L',
''
)
),
if(
value(fixed([LocationDetails.Offset],1,false))>0,
' R',
if(
value(fixed([LocationDetails.Offset],1,false))<0,
' L',
''
)
)
)
)
)
This function returns the length of the Section Line used to draw the Quick Section. This function is useful for setting appropriate Horizontal Grid/Tick Intervals (further examples coming soon).
For example:
fixed([Section.Length],0,false)
This function returns the vertical height of the Quick Section (in depth/elevation units). This function is useful for setting appropriate Vertical Grid/Tick Intervals (further examples coming soon).
For example:
fixed([Section.Height],0,false)