Hakusäännön perusmuoto koostuu ominaisuuden tunnuksesta tai makrosta, vertailuoperaattorista ja arvosta. Tunnus ja operaattori voidaan jättää pois jolloin käytetään oletuksena koodia (T3) ja yhtäsuuruutta (=). Hakusäännöt 121, =121 ja T3=121 tarkoittavat siis samaa. Arvo voidaan myös jättää pois jolloin haetaan pisteet, joilta ominaisuus puuttuu (T3=). Muut ominaisuudet käsitellään samalla tavalla (T1=9 tai DIA=20).
121 Koodi on 121. =121 Koodi on 121. T3=121 Koodi on 121. T3= Koodi on tyhjä. T1=9 Pintatunnus on 9.
Vertailuoperaattori voi olla jokin seuraavista: yhtäsuuri (=), erisuuri (!=), pienempi kuin (<), suurempi kuin (>), pienempi tai yhtäsuuri (<=), suurempi tai yhtäsuuri (>=).
!=121 Kaikki paitsi koodi 121. T3<100 Koodit, jotka ovat pienempiä kuin 100. T1>=11 Pintatunnukset, jotka ovat suurempia tai yhtäsuuria kuin 11.
Vertailuoperaattorien = ja != kanssa voidaan hakea useita arvoja eri tavoilla.
Hakuarvossa tähdellä (*) voidaan korvata useita merkkejä merkkijonon alusta, lopusta tai keskeltä. Tähti yksinään (*) täsmää kaikkiin arvoihin. Hyväksyttäviä yhdistelmiä ovat tähti alussa (*ABC), lopussa (ABC*), molemmissa päissä (*ABC*) tai keskellä (AB*CD). Kysymysmerkillä voidaan haussa korvata yksittäisiä merkkejä (A??D).
T4=* Pistenumero kentässä T4 ei ole tyhjä. T4=AP* Pistenumero alkaa tunnuksella AP. T4=??? Pistenumero on kolmimerkkinen. TEXT=*putki* Teksti sisältää merkkijonon 'putki'.
Hakurajat voidaan antaa väliviivalla (100-200). Tällöin haetaan arvot, jotka ovat suurempia tai yhtäsuuria kuin ensimmäinen hakuraja ja pienempiä tai yhtäsuuria kuin toinen hakuraja. Suuruusvertailussa tekstejä verrataan aakkosjärjestyksen mukaan (A<B) ja numeroita numerojärjestyksessä (2<10). Yhdistelmäkoodit jaetaan osiin ja verrataan osa kerrallaan (KP2<KP10).
Yksittäinen väliviiva keskellä toimii suoraan numeeristen arvojen kanssa (100-200 tai 2.5-4.7). Muussa tapauksessa viivan tai viivojen oletetaan olevan osa arvoa (CAD-LAYER tai -2000 tai 12--13). Lainausmerkeillä tulkkausta voidaan muuttaa ("100-200" tai "-5"-"-2"). Väliviiva voidaan myös korvata merkkiyhdistelmällä <> (100<>200 tai -5<>-2).
T3=121-125 Koodi on välillä 121 - 125. T3=CAD-LAYER Koodi on CAD-LAYER. HEIGHT=2.5-4.7 Ominaisuus HEIGHT on välillä 2.5 - 4.7. T3="12-34" Koodi on 12-34. DEPTH="-4.7"-"-2.5" Ominaisuus DEPTH on välillä -4.7 - -2.5. DEPTH=-4.7<>-2.5 Ominaisuus DEPTH on välillä -4.7 - -2.5.
Useita arvoja voidaan antaa pilkulla erotettuna (T3=121,122 tai T3!=191,192). Yhtäsuuruuden kanssa pisteen ominaisuuden on täsmättävä johonkin listalla olevaan arvoon ja erisuuruuden kanssa oltava erisuuri kuin kaikki listalla olevat arvot. Arvoissa voi olla villejä merkkejä (* tai ?) ja hakurajoja (100-200). Listassa voi olla myös tyhjä arvo alussa (,1,2), lopussa (1,2,) tai keskellä (1,,2).
T3=121,122 Koodi on 121 tai 122. T3!=191,192 Koodi ei ole 191 tai 192. T4=AP*,KP* Pistenumero alkaa tunnuksilla AP tai KP. T4=10-20,30-40 Pistenumero on välillä 10 - 20 tai välillä 30 -40. T1=9, Pintatunnus on 9 tai tyhjä.
Oletuksena haussa ei erotella pieniä ja isoja kirjaimia (a=A), mutta tämä voidaan muuttaa laittamalla hakuehdon alkuun ohjausmerkki | (|TEXT=aBc). Sama pystyviiva numeeristen arvojen kanssa tarkoittaa itseisarvoa (|DZ<0.5).
TEXT=*kuja* Tekstit, joissa on merkkijono 'KUJA', 'Kuja' tai 'kuja'. |TEXT=*kuja* Vain tekstit, joissa on kuja pienillä kirjaimilla. |DZ<0.5 Tarkeominaisuus DZ on välillä -0.5 - 0.5.
Jos etsittävässä arvossa on yllä mainittuja erikoismerkkejä tai välilyöntejä, voidaan se antaa joko lainausmerkeissä ("12-34") tai heittomerkeissä ('12-34'). Lainausmerkeissä annettu arvo voi sisältää heittomerkkejä (TEXT="'teksti'") ja heittomerkeissä annettu arvo lainauksia (TEXT='"teksti"'). Monirivisiä tekstejä voidaan hakea pystyviivan avulla (TEXT=ensimmäinen|toinen).
TEXT="kaksi sanaa" Tekstissä on välilyöntejä. TEXT="'teksti'" Tekstissä on heittomerkkejä. TEXT='"teksti"' Tekstissä on lainausmerkkejä. TEXT="rivi 1|rivi 2" Monirivinen teksti.
Liukulukuominaisuudet haetaan pyydetyllä desimaalitarkkuudella (DEPTH=12.34) riippumatta siitä kuinka paljon desimaaleja niissä on. Erikoistapauksena pelkkä piste hakee kokonaisluvuksi pyöristetyn arvon. Lainausmerkeillä pyöristys voidaan estää (DEPTH="12.3").
DEPTH=12 Vain kokonaisluku 12. DEPTH=12. Arvo on välillä 12±0.5. DEPTH=12.0 Arvo on välillä 12.0±0.05. DEPTH=12.3 Arvo on välillä 12.3±0.05. DEPTH="12.3" Arvo on täsmälleen 12.3. DEPTH=12.34 Arvo on välillä 12.34±0.005.
Kaikki käytettävissä olevat makrot on listattu omalle sivulleen. Makrojen arvot voidaan myös tallentaa pisteen ominaisuuksiksi pisteryhmän editoinnissa.
Tekstien fonttikokoa, väriä ja asemointia haetaan makroilla #SIZE, #COLOR ja #ALIGN. Hajapisteiltä voidaan hakea symbolin koko ja väri makroilla #SIZE ja #COLOR. Taiteviivoilta voidaan hakea viivatyyppi, viivan leveys ja väri makroilla #STYLE, #WIDTH ja #COLOR. Symbolien ja tekstien kulma voidaan hakea makroilla #ANGLE tai #BEARING. Ensimmäinen käsittelee kulmaa normaalina liukulukuna välillä -200 - 200 goonia. Jälkimmäinen versio käsittelee kulmaa suuntakulmana välillä 0 - 400 goonia ja normalisoi haut tälle välille. Tekstien pystykulmaa voidaan hakea makrolla #VERTICAL.
#SIZE=2.5 Tekstin koko on 2.5±0.05. #COLOR=1 Tekstin väri on taulukon indeksi 1. #COLOR=FF0000 Tekstin väri on RGB arvo FF0000. #ALIGN=7-9 Tekstin asemointi on välillä 7 - 9. #ANGLE=100. Tekstin kulma on 100±0.5 goonia. #BEARING=0. Tekstin suuntakulma on välillä 399.5 - 0.5 goonia. #VERTICAL=0. Tekstin pystykulma on välillä -0.5 - 0.5 gons.
Taiteviivoja ja profiileja voidaan hakea pistemäärän perusteella makrolla #COUNT tai pituuden perusteella makroilla #LENGTH, #LENGTHXY ja #LENGTHZ. Ensimmäinen on kolmiulotteinen pituus, toinen pistuus tasossa ja kolmas viivan maksimi- ja minimikorkeuden erotus. Makrolla #DELTAZ haetaan taiteviivan viimeisen ja ensimmäisen pisteen etumerkillinen korkeusero ja makrolla #AREA sulkeutuvan taiteviivan pinta-ala.
#COUNT=2 Kahden pisteen viiva tai profiili. #LENGTH>100.0 Yli sadan metrin mittainen viiva. #DELTAZ<0.0 Viiva on alaspäin laskeva. #AREA<10.0 Alueen pinta-ala on vähemmän kuin 10m².
Taiteviivojen ja profiilien osioita voidaan hakea pituuden ja korkeuseron mukaan. Makro #DZ hakee kahden peräkkäisen pisteen etumerkillisen korkeuseron ja makro #SLOPE kaltevuuden. Makrot #DA/#DB hakevat pituus- ja poikkileikkausten pisteiden vaakaetäisyyttä ja makrot #DAZ/#DBZ vinoetäisyyttä. Vastaavasti makroilla #DXY ja #DXYZ voidaan hakea teiteviivojen osioiden vaaka- ja vinoetäisyyttä. Kaikissa tapauksissa löydetystä osiosta valitaan jälkimmäinen piste.
#DZ=0.00 Osio on vaakasuora kahden desimaalin tarkkuudella. #DXY>10.0 Yli kymmenen metrin mittainen pisteväli. #SLOPE<-1.0 Osio laskee alaspäin yli 1:1 kaltevuudella.
Makrot #SURFACENAME ja #CODENAME hakevat kohteen pinnan ja koodin selityksen kooditiedostosta. Makro #TYPE hakee kohteen tyypin. Mahdolliset tyypin arvot on listattu samalla sivulla makrojen kanssa.
#NAME=*talo* Kohteen selitys sisältää sanan 'talo'. #TYPE=LINE Piste kuuluu taiteviivaan. #TYPE=TEXT Piste on teksti.
Koordinaatteja voidaan hakea makroilla #X, #Y ja #Z. Poikki- ja pituusleikkauspisteillä voidaan lisäksi hakea paalulukua makrolla #A ja sivumittaa makrolla #B.
#Z>100.0 Pisteen korkeus on suurempi kuin 100.0. #A=120.0 Piste kuuluu paalun 120 poikkileikkaukseen. |#B<0.5 Pisteen sivumitan itseisarvo on pienempi kuin 0.5.
Hakusääntöjä voidaan yhdistää puolipisteellä (JA) tai kauttaviivalla (TAI). Kaikkien puolipisteellä erotettujen ehtojen on täytyttävä. Kauttaviivalla erotetuista ehdoista vähintään yhden on täytyttävä. Huutomerkki koko ehdon alussa toimii negaationa (!T3=121).
T2=12;T4=34 Viivanumeron on oltava 12 ja pistenumeron 34. T1=9/T3>=9000 Pintatunnus on 9 tai koodi on suurempi tai yhtäsuuri kuin 9000. !T1=9/T3>=9000 Pintatunnus on muu kuin 9 ja koodi on pienempi kuin 9000. T3=821;#TYPE=TEXT Teksti fonttikoodilla 821.