Survey Feature Custom Operations (New/Edit Style)
This command specifies the custom operations for the survey feature that you are adding/editing. Custom operations are sets of instructions associated with styles. These instructions tell InRoads Survey to display graphical text, place symbols, place cells, and draw lines. In addition, custom operations include math functions, relational operators, IF statements, and operators that control symbology and justification.
One common use for custom operations is to create output based on attribute data assigned to stations and observations in the fieldbook. For example, assume you have some points that are assigned a style called MH, and the MH style possess attributes representing the manhole ID, the incoming invert elevation, and the outgoing invert elevation. You can use custom operations to display graphical text indicating the particular IDs and inverts for each of those observations by adding instructions in the Survey Feature > Custom Operations leaf on the New/Edit Style dialog, when you are editing the MH style. You can also display different cells or symbols based on attribute data.
Survey reads and performs the operations one line at a time starting with the first entry in the list on the Custom Operations leaf. Operations may not span two lines; the entire instruction must appear on a single line.
Placing Text
Placing text is similar to using a spreadsheet. The text must be proceeded by a single quote (').
Example
'Fire Hydrant
This will produce the text "Fire Hydrant" on the drawing.
Point numbers, feature codes, elevations, and northing and easting can be placed at the point by using the following format:
'$(NAME) '$(FCODE) '$(ELEVATION) '$(NORTH) '$(EAST)
The output would look similar to the following:
1001 TOC 518.94 10000.0 10000.0
A more elaborate example would be similar to the following:
'$(NAME) $(FCODE) 'ELEV= $(ELEVATION) FT 'Northing= $(NORTH) 'Easting= $(EAST)
1001 TOC ELEV= 518.94 FT Northing= 10000.0 Easting= 10000.0
The entire point code string (as opposed to just the feature code) can be referred to in the following manner:
'$(CODE)
Attributes can also be placed as text. Suppose that one of the attributes for an oak tree is the trunk size. The attribute may be called "SIZE." To place the trunk size on the drawing, enter the following:
'$(SIZE)" OAK
If a surveyor enters "12" for attribute SIZE, the output for an oak tree with a 12" (the attribute value) trunk will look similar to the following:
12" OAK
To make use of attributes, the feature code must be set up with attributes, and, the data collector must be capable of supporting attributes.
Wild data collector attributes are limited to being called INFO1, INFO2, INFO3, INFO4, and so on. The AASHTO SDMS coding is limited to A0 through A9.
Field notes can be displayed at the point and committed to the design file by keying in the following:
'$(NOTES)
Using Custom Fonts
Custom Operations lets you use custom fonts. You can also use fonts other than the active font. To include a font style that is different from the other text in the drawing, you can enter the following:
FT=[font number]
Suppose all text in a drawing is placed using font 3. When the font for text describing a certain feature needs to be different from all other text, the following may be entered:
FT=41 'Stone Monument FT=39 'Erected 1842
"Stone Monument" would be placed using font 41, "Erected 1842" would be placed using font 39, while all other text in the drawing would be placed using font 3.
If everything after "Erected 1842" needs to be placed using font 3, the entry FT=3 must immediately follow it. Changing fonts within Custom Operations affects only the feature it is used for.
InRoads Survey also supports fonts loaded on your machine as part of the Windows operating system:
FT=[font name]
The following statements incorporate different fonts:
FT=Arial 'Text in arial FT=Courier 'Text in courier
Symbology
You can place text on a specific level with the following command:
LV=[level name]
The following statements place the text "Test" on level 45:
LV=45 'Test
Custom operations also support named CAD levels/layers.
Assuming you have a level/layer named mylevel, you can use the following statements to place the word "Test" on the level/layer named mylevel:
LV=mylevel 'Test
The LV command accepts literal text strings. The software will not exchange any custom operations key names embedded in the string. For example, in LV = SPOT ELEVATION LEVEL, the key word ELEVATION will not be exchanged for the elevation value.
Positioning Custom Operations
DY=change in y from the feature point coordinates. DX=change in x from the feature point coordinates.
The software will remember the location and place all text starting from the actual point location.
LS=active line spacing PR=precision of the features displayed quantities (used for numerical text). PR does not control elevation output. PRZ=precision of the features elevation or z-values CO=color numerical value, attribute with numerical value, or numerical equation RESET=reset the position to the actual point location LC=active line style WT=weight TX=text size based on numeric value or attribute with numeric value
Placing Lines
Lines can be drawn with the following commands: DX, DY, LINE, and MOVE.
The following example shows the proper syntax:
DX=-30 DY=1 MOVE DX=60 LINE
The example above would place a line starting 30 units west and 1 unit north of the location of the actual point. It would draw a line extending eastward for 60 units.
Justification
You can display the text for a feature with a specified justification. The default location is the lower-left point of the text or font symbol of the first line placed. The following justification commands are supported:
JT=RB <=right bottom JT=RC <=right center JT=RT <=right top JT=CT <=center top JT=CB <=center bottom JT=CC <=center center JT=LT <=left top JT=LC <=left center JT=LB <=left bottom
Placing Font Symbols
Placing font symbols is very similar to placing text. Instead of alpha or numeric characters, you can place custom symbols in your custom font.
You must enter the following to place the font symbol:
'\(numerical code)
'\002
This would place the symbol for numerical value 002 for the active font.
To place font symbols from fonts that are not active, enter the following:
FT=desired font '\(numerical code)
FT=26 '\002
This would place the symbol with numerical value 002 from font 26.
If you want the symbol to be centered on the point, center center justification must be entered immediately prior to the font symbol command. (JT=CC).
Placing Cells/Blocks
You can place cells/blocks with the following command:
AC=(cell/block name)
The DX= and DY= can be used to locate cells. The default placement is centered over the point using the cell origin.
Active Scale
You can place the active scale of the cell with the following command:
AS=scale AS=$(numerical attribute)
Math functions can also be performed to set active scale.
Examples
Using the attribute SIZE as described in Placing Text, the following commands can be used:
AS=SIZE/10 AS=SIZE*10 AS=SIZE+10 AS=SIZE-10 AS=SIZE1/SIZE2
The Active Scale command is used only for scaling cells.
Use AS= before AC= in the custom operations then the software will know the scale before it places the cell.
Active Angle
You can define an absolute angle for rotating all graphics placed with custom operations using the active angle command, as follows:
AA=$(<attrib>)
where <attrib> specifies an attribute that defines an angle value. For example, if the attribute is named ROTATE, an actual call to the active angle command would look like this:
AA=$(ROTATE)
Setting the active angle through custom operations has the same effect as setting the Angle parameter for text, cells, and symbols in the style. The AA = custom operation overrides the rotation angles defined in the Text Symbology and Point Symbology dialogs of the style (click Edit on the Tools > Style Manager > Edit Style > Survey Feature > Symbology leaf).
The advantage of using the active-angle custom-operations command is that you can control the rotation of text, cells, and symbols for various points through the use of attributes. Different survey points can be assigned different attribute values even though they share the same style.
The angle angle command is typically used with in conjunction with attributes. It is possible to assign a specific numeric value as the active angle, but when you assign a specific numeric value, you lose the flexibility of assigning different rotation angles to different points within the same feature type.
Note that if you turn on the Include Custom Operations, Symbols and Cells in a Single Cell option on the General tab of the Survey Options dialog box, cells and symbols – even those that were defined outside of custom operations – will honor the active angle defined within custom operations.
Math Functions
Math functions are supported which allow the use of variables. All basic math functions (+, -, *, /) are supported. Exponents are also supported (such as 3**2 (value of 9)). However, the software does not check for floating-point overflow. This mathematical command should be used with caution.
Also, nested parentheses can be used:
RESULTS=((2/10)+(6*8))*INFO1
Suppose you had three attributes for each manhole shot (IN, OUT).
Let IN=incoming invert elevation from the top of a manhole=5.82 Let OUT=outgoing invert elevation from the top of a manhole=5.90 Let ELEVATION=elevation of top of the manhole=510.62
'TOP: $(ELEVATION) INVERTIN=ELEVATION-IN 'IN: $(INVERTIN) INVERTOUT=ELEVATION-OUT 'OUT: $(INVERTOUT)
The output would look like the following:
TOP: 510.62 IN: 504.80 OUT: 504.72
Attributes may be used in performing math functions as described in Active Scale.
IF Statements
The IF statement lets you perform conditional operations based on a logical test. The general syntax for the IF statement is as follows:
IF <comparison> THEN <instruction>
The <comparison> is a comparison based on either an alpha operator or a numeric operator (discussed below). The <instruction> is any valid custom-operations instruction except another IF statement. You cannot nest an IF statement within an IF statement.
A space is required after the IF as well as before and after the THEN.
A style for manholes might contain an alpha attribute called TYPE, which is assigned either the value STORM or the value SANITARY. The following statements would display the appropriate cell for an MH observation:
IF $(TYPE)=STORM THEN AC=mh_storm
IF $(TYPE)=SANITARY THEN AC=mh_sanitary
(Assume that there are cells called mh_storm and mh_sanitary.)
The following statements could be used to set the color of the elevation text based on numeric elevation attribute data itself:
IF $(ELEVATION)>=1000 THEN CO=1
IF $(ELEVATION)<1000 THEN CO=2
'$(ELEVATION)
Alpha Operators
There are only two operators that act on alpha attributes:
Operator
Explanation
=
True if the alpha attributes being compared are exactly alike.
<>
True if the alpha attributes are different.
Numeric Operators
True if the numeric attributes being compared have the same value.
True if the numeric attributes have different values.
>
True if the value of the first numeric attribute is greater than the value of the second.
<
True if the value of the first numeric attribute is less than the value of the second.
>=
True if the value of the first numeric attribute is greater than or equal to the value of the second.
<=
True if the value of the first numeric attribute is less than or equal to the value of the second.
If either of the attribute values involved in an IF statement contains an alphabetic character, the attributes are compared as alpha attributes, using the alpha operators. An operator is seen as a numeric operator only if both attributes being compared are numeric.
Null Values
You can test whether or not an attribute is assigned a value by comparing the attribute value to [NULL], as in the following example:
IF $(TYPE)=[NULL] THEN 'Unknown
That statement displays the text Unknown if the attribute called TYPE has no value.
Lookup Tables
Lookup tables are used to assign certain values to field key-ins based on the criteria you specify. This relieves the field crews from long key-ins and other items that only regard drawing production (font symbols, cells, math calculations, and so on). For example, when a surveyor enters numerical or alpha characters for an attribute, the lookup table will manipulate the value to place text, change fonts, insert font symbols, and so on.
Example:
Lookup=Owner { VP=Virginia Power CP=C & P Telephone Company =Unknown }
If the surveyor entered the value VP for the value of attribute, Custom Operations would place the text "Virginia Power" at the point.
If the surveyor entered nothing for the attribute, Custom Operations would place the text "Unknown" at the point.
LOOKUP=INFO1 { 1=A 2=B 3= 4= 5= 6= } FT=41 '$(INFO1) LOOKUP=INFO1 { 1= 2= 3=C 4=D 5= 6= } FT=26 '$(INFO1) LOOKUP=INFO1 { 1= 2= 3= 4= 5=E 6=F } FT=3 '$(INFO1)
When the following values are entered for INFO1 (in example above), Custom Operations will place the appropriate text.
INFO1=
Text placed
Font used
1
A
41
2
B
3
C
26
4
D
5
E
6
F
Find Tables
Find tables are similar to lookup tables because they are used to place text based on attribute value.
The difference is that the find table can place multiple descriptions based on the number of characters placed in the attribute field.
FIND=SERVICE { E=Electric T=Telephone C=Cable =None }
If the surveyor were to enter ET for the attribute SERVICE, Custom Operations would place "ElectricTelephone" at the point.
If the surveyor were to enter EC for the attribute SERVICE, Custom Operations would place "ElectricCable" at the point.
If the surveyor were to enter nothing for the attribute SERVICE, Custom Operations would place "None" at the point.
Copying Custom Operations
The Custom Operations leaf supports cut-and-paste (or copy-and-paste) operations, allowing you to copy custom operations from one style to another.