Basic search rule contains attribute id or macro, comparison operator and value. Id and operator can be left out, in which case code (T3) and equality (=) are used by default. This means that search rules 121, =121 ja T3=121 are identical. If the value is left out, rule mathes all points missing that the attribute (T3=). Other attributes are handled same way (T1=9 or DIA=20).
121 Code is 121. =121 Code is 121. T3=121 Code is 121. T3= Code is empty. T1=9 Surface code is 9.
Comparison operator can be one of the following: equal (=), not equal (!=), less than (<), greater than (>), less or equal (<=), greater or equal (>=).
!=121 All except code 121. T3<100 Codes less than 100. T1>=11 Surface codes greater or equal than 11.
With comparison operators = and != multiple values can be searched with several methods.
Asterisk (*) can be used to replace several characters in start, end or middle of the string. The asterisk alone (*) matches all values. Acceptable combinations are asterisk at start (*ABC), at end (ABC*), at both ends (*ABC*) or in the middle (AB*CD). Question mark can be used to replace any single character (A??D).
T4=* Point number in the field T4 exists. T4=AP* Point number starts with string AP. T4=??? Point number has three characters. TEXT=*pipe* Text contains string 'pipe'.
Range limit can be given with dash character (100-200). This searches values greater than or equal to the lower limit and less than or equal to the upper limit. Texts are compared in alphebetical order (A<B) and numbers in numerical order (2<10). Combined values are divided to parts and each part is compared separately according to its type (KP2<KP10).
Single dash in the middle works directly with numeric values (100-200 or 2.5-4.7). Otherwise dash or dashes are considered to be part off the value (CAD-LAYER or -2000 or 12--13). Quotes can be used to change this behavior ("100-200" or "-5"-"-2"). Dash character can also be replaced by character combination <> (100<>200 or -5<>-2).
T3=121-125 Code is between 121 - 125. T3=CAD-LAYER Code is CAD-LAYER. HEIGHT=2.5-4.7 Attribute HEIGHT is between 2.5 - 4.7. T3="12-34" Code is 12-34. DEPTH="-4.7"-"-2.5" Attribute DEPTH is between -4.7 - -2.5. DEPTH=-4.7<>-2.5 Attribute DEPTH is between -4.7 - -2.5.
Several values can be given as a comma separated list (T3=121,122 or T3!=191,192). With equal operator point attribute must match some value in the list. With not equal operator point attribute may not match any value in the list. Values can contain wild characters (* or ?) and range limits (100-200). List may also contain empty value at start (,1,2), at end (1,2,) or in the middle (1,,2).
T3=121,122 Code is 121 or 122. T3!=191,192 Code is not 191 or 192. T4=AP*,KP* Point number starts with string AP or KP. T4=10-20,30-40 Point number is between 10 - 20 or between 30 -40. T1=9, Surface code is 9 or empty.
By default text searches are case insensitive (a=A), but this can be changed by prefixing the rule with special character | (|TEXT=aBc). Same vertical bar character with numeric values means absolute value (|DZ<0.5).
TEXT=*alley* Texts with string 'ALLEY', 'Alley' or 'alley'. |TEXT=*alley* Only texts with string 'alley' in lower case. |DZ<0.5 Control attribute DZ is between -0.5 - 0.5.
If the searched value contains special characters mentioned above or spaces, it can be enclosed within double quotes ("12-34") or single quotes ('12-34'). String within double quotes can contain single quotes and string within single quotes can contain double quotes (TEXT='"teksti"'). Multiple line strings can be searched with vertical bar (TEXT=first|second).
TEXT="Two words" Text contains spaces. TEXT="'text'" Text contains single quotes. TEXT='"text"' Text contains double quotes. TEXT="line 1|line 2" Multiple line text.
Floating point attributes are searched with given decimal tolerance (DEPTH=12.34) regardless their actual decimal count. As a special case, single dot after the value searches attributes rounded to integer. Quoting value prevents rounding (DEPTH="12.3").
DEPTH=12 Only integer 12. DEPTH=12. Value is between 12±0.5. DEPTH=12.0 Value is between 12.0±0.05. DEPTH=12.3 Value is between 12.3±0.05. DEPTH="12.3" Value is exactly 12.3. DEPTH=12.34 Value is between 12.34±0.005.
All available macros are listed in a separate page. Macro values can also be stored to point attributes in point group edit.
Text font size, color and alignment are searched with macros #SIZE, #COLOR and #ALIGN. Single point symbol size and color can be searched with macros #SIZE and #COLOR. Breakline line type, width and color can be searched with macros #STYLE, #WIDTH and #COLOR. Symbol and text anglea can be searched with macros #ANGLE or #BEARING. First one handles angle as a normal floating point value between -200 - 200 gons. Second one handles angle as bearing between 0 - 400 gons and normalizes searches within this range. Text vertical angle can be searched with macro #VERTICAL.
#SIZE=2.5 Text size is 2.5±0.05. #COLOR=1 Text color is table index 1. #COLOR=FF0000 Text color id RGB value FF0000. #ALIGN=7-9 Text alignment is between 7 - 9. #ANGLE=100. Text angle is 100±0.5 gons. #BEARING=0. Text bearing is between 399.5 - 0.5 gons. #VERTICAL=0. Text vertical angle is between -0.5 - 0.5 gons.
Breaklines and profiles can be searched based on point count with macro #COUNT or based on length with macros #LENGTH, #LENGTHXY and #LENGTHZ. First one uses three-dimensional length, second two-dimensional length and third difference of maximum and minimum heights. Macro #DELTAZ gets signed height difference between first and last point of line or profile. Macro #AREA gets area of closed breakline.
#COUNT=2 Two point line or profile. #LENGTH>100.0 Over hundred meter breakline or profile. #DELTAZ<0.0 Line or profile goes downward. #AREA<10.0 Area is less than 10m².
Breakline and profile sections can be searched based on length or height difference. Macro #DZ gets signed height difference of two adjacent points and macro #SLOPE slope between points. Macros #DA/#DB get horizontal distance between profile or cross section points and macros #DAZ/#DBZ slope distance. Similarly macros #DXY and #DXYZ get breakline section horizontal and slope distances. In all cases latter point of found section is selected.
#DZ=0.00 Section is horizontal with accuracy of two decimal places. #DXY>10.0 Over ten meter point interval. #SLOPE<-1.0 Section goes downward with over 1:1 slope.
Macros #SURFACENAME and #CODENAME get surface and feature code explanation from the code file. Macro #TYPE gets the object type. Possible type values are listed on the same page with macros.
#NAME=*house* Feature explanation contains word 'house'. #TYPE=LINE Point belongs to breakline. #TYPE=TEXT Point is text.
Coordinates can be searched with macros #X, #Y and #Z. Cross section and profile points can also be searched based on section value with macro #A or side offset with macro #B.
#Z>100.0 Point height is greater than 100.0. #A=120.0 Point belongs to cross section with section value 120. |#B<0.5 Absolute value of point offset is less than 0.5.
Search rules can be combined either with semicolon (AND) or forward slash (OR). All rules separated with semicolon must match. At least one rule separated by slash must match. Exclamation mark in the front of the search condition negates it (!T3=121).
T2=12;T4=34 Line number must be 12 and point number 34. T1=9/T3>=9000 Surface code is 9 or code is greater or equal then 9000. !T1=9/T3>=9000 Surface code is other than 9 and code is smaller than 9000. T3=821;#TYPE=TEXT Text with font code 821.