ArchiMAD-lehti

Objektien tuunaaminen - ArchiMAD

Kirjoittanut Severi Virolainen | 19 marraskuuta 2021

GDL-objektit eivät aina ole ihan sellaisia kuin haluaisi. Niissä on oletusarvoisesti vääriä arvoja, niistä puuttuu joku olennainen säätö tai ne olisivat sopivia pienin muutoksin. Mitä on tehtävissä ilman ohjelmointitaitoa?

Ohjelmoijaksi ryhtymiseen on arkkitehdilla korkea kynnys. Kaikenlaista tietoa täytyy muutenkin omaksua valtavasti, joten kokonaan uuden kielen ja ajattelutavan omaksuminen on jo ajankäytöllisestikin haastavaa. GDL-peruskurssin jälkeen aloitteleva ohjelmoija tarvitsisi vierustoverin, jolta kysyä neuvoa tarvittaessa. Muuten saattaa jumiutua pitkiksi ajoiksi ihan turhaan.

GDL-objektit voi avata Archicadillä, mutta auennut objekti näyttää helposti yhtä mystiseltä kuin mikroprosessori. Neuvon tässä muutamia kikkoja objektien tuunaamiseen.

Objektin avaaminen

GDL-objekti avataan Arkisto-valikon kohdasta Kirjastot ja objektit > Avaa objekti… Huomaa että, jos pohjassa on objekti valittuna, niin komento avaa valitun objektin – kätevää!

Objekti aukeaa oletusarvoisesti omaksi välilehdekseen. Macissä sen voi kelluttaa ja näin kannattaakin tehdä. Tämän artikkelin kuvat ovat Macistä, jossa objektien muokkaaminen on tuon pienen yksityiskohdan vuoksi huomattavasti miellyttävämpää.

Objekti on hallittavissa yhdessä ikkunassa, jonka sisältöä vaihdetaan ikkunan vasemman reunan painikkeilla. Tärkeitä näkymiä ovat Detaljit, Parametrit, Esiohjelma, 2D-ohjelma, 3D-ohjelma, Arvolistaohjelma, 2D-symboli, Tunnuskuva, 2D-näkymä ja 3D-näkymä. Näitä voi painella vapaasti. Omiin ikkunoihin ne saa ”ikkuna”-painikkeesta ja Macissä näitä ikkunoita on helppo tarkastella yhtäaikaa rinnakkain.

Katso eri objektin näkymien kuvat ja lue kuvatekstit. Vanhanaikaisiin määrätietoihin ja Archicad-versioiden välisiin muuntamisiin liittyvät näkymät jäävät tästä artikkelista pois.


Detaljit-näkymässä valitaan objektin tyyppi ja sieltä saattaa löytyä muutakin hyödyllistä tietoa tekijästä ja tekijänoikeuksista.


Parametrit-näkymä on yksi tärkeimpiä. Tässä näkyvät objektin parametrit, niiden tyypit ja oletusarvot. Oletusarvojen muuttaminen vastaamaan oman toimiston standardeja, esimerkiksi käytettyjä kyniä, on perustoimintoja, jotka pitäisi tehdä kaikissa toimistoissa. Nykyään tämän voi osin korvata käyttämällä ahkerasti Muistia. Älä muuta muuttujien nimiä ellet tiedä mitä teet! Kohtia Nimi ja Arvo voit muuttaa vapaasti.


Esiohjelma on ohjelma, joka suoritetaan aina ennen muita ohjelmia. Tähän laitetaan yleensä sellainen ohjelmanpätkä, joka muuten olisi erikseen jokaisen ohjelman alussa. Näin vältetään huolimattomuusvirheitä ja koodista tulee lyhyempää.


2D-ohjelma luo 2D-symbolin. Se on itsenäinen ohjelma, jolla ei ole mitään tekemistä 3D-ohjelman kanssa. Tämän erillisratkaisun vahvuus on, että 2D-symboli voi olla aito symboli vaikka 3D-malli olisi realistinen.


3D-ohjelma luo 3D-mallin. Tämäkin on itsenäinen ohjelma ja kehittäjän täytyy esimerkiksi olla tarkkana, että 3D-malli syntyy samaan kohtaan, johon 2D-symboli on sijoitettu. Pieni poikkeama on tyypillinen aloittelijan virhe.


Arvolistaohjelma on parametrien apuohjelma, jolla voidaan rajoittaa parametrien arvoja ja helpottaa niiden syöttöä.


Käyttöliittymäohjelma luo objektille räätälöidyn käyttöliittymän. Omaan tarpeeseen tätä harvemmin kannattaa tehdä, sillä se on työlästä eikä tuo merkittävää lisäarvoa ellei objekti ole erityisen monimutkainen.


2D-symboli on ikkuna, jossa voidaan piirtää 2D-symboli ohjelmoinnin sijaan. Huomaa, että piirretty symboli ei ole älykäs vaan se esimerkiksi venyy kuin purukumi.


Tunnuskuva on pelkkä kuva, mutta tärkeä sillä se näkyy luetteloissa objektia valittaessa.


2D-näkymässä näkyy miltä 2D-symboli näyttää sen hetkisillä parametreilla. Täällä kannattaa käydä taajaan tarkastamassa symbolin ulkoasua.


3D-näkymässä näkyy 3D-ohjelman tuottama malli. Muista kokeilla erilaisia, jopa hiukan hassuja parametrien arvoja, niin huomaat toimiiko koodi kuten olet tarkoittanut.

Objektin voi heti alkuun Tallentaa nimellä… jotta muutokset eivät korvaa alkuperäistä. Tee vaikka oma Treeni-kansio joko projektin Sisäiseen kirjastoon tai omalle kovalevylle.

Oletusarvojen muuttaminen

Avaa Parametrit-näkymä, paikallista muuttujat, joiden oletusarvot haluat muuttaa (esimerkiksi ”Ääriviivan kynä”, ”Tekstin kirjasin” ja ”Viivatyyppi”). Muuta arvot ja tallenna, mutta suosittelen säilyttämään alkuperäisen kirjaston koskemattomana, joten tallenna uuteen paikkaan ja kenties uudella nimellä ”Puukiuas A-toimisto”.

Kirjaston käytettävyyttä voi lisätä, jos turhat parametrit piilotetaan. Jos toimiston objekteissa käytetään aina samoja arvoja vaikkapa täytetyypille ja täytteen kynille, niin ne voi oletusarvojen säätämisen yhteydessä kätkeä käyttäjiltä ruksaamalla parametrilistan vasemmassa reunassa olevan punaisen ruksin.

Ruksin viereinen symboli sisentää rivin otsikon alle. Harvemmin käytetyt parametrit voi tällä tavalla ryhmittää ”piiloon”. Ihan vasemmassa reunassa on pienet kolmiot, joista parametrit voi siirtää haluttuun järjestykseen.

Koodin muuttaminen

Esimerkkiobjektina toimii Puukiuas PK12, joka on tehty M.A.D.issä 2008. Haluan muuttaa sen sähkökiukaaksi. Sähkökiukaan symboli vaatii salama-viivan ja 3D-mallista täytyy poistaa tulipesän luukku.

Olen onnekas. Kiukaan ohjelmoija on käyttänyt runsaasti kommentteja, jotka kertovat mitä missäkin tapahtuu. GDL-kielessä !-merkin jälkeen samalle riville voi kirjoittaa mitä tahansa. Ennen huutomerkkiä kyseessä on ohjelmakoodi.

2D-ohjelmassa etsitään ensimmäiseksi missä symbolin diagonaaliviivat on piirretty. Kätevä tapa on kokeilla kommentointia eli laittaa rivin alkuun !-merkki ja katsoa mitä tapahtuu. Tässä tapauksessa seuraavien rivien kommentointi huutomerkeillä poisti viivat:

! line2 0,0, a,b
! line2 a/2,b/2-0.05, a/2+0.05, b/2
! line2 a/2-0.05,b/2, a/2, b/2+0.05

Salamasymboli vaatii hiukan matematiikkaa. Ylläoleva koodinpätkä paljastaa, että symbolin vasen alanurkka on pisteessä (0,0) ja oikea ylänurkka pisteessä (a,b). Parametrilistasta näkee, että A (iso tai pieni, ei haittaa) on Mitta 1 ja b on Mitta 2. Suurin osa objekteista noudattaa tätä samaa logiikkaa.

Salaman piirtäminen vaatii kolme viivaa: yhden alanurkasta (0,0) puoliväliin hiukan oikealle (a/2+a/6, b/2), poikkiviivaan puoliväliin ja kolmannen puolivälistä hiukan vasemmalta (a/2-a/6, b/2) oikeaan ylänurkkaan (a,b). Esimerkiksi näin:

line2 0, 0, a/2+a/6, b/2
line2 a/2+a/6, b/2, a/2-a/6, b/2
line2 a/2-a/6, b/2, a, b

3D-ohjelman muokkaaminen alkaa samalla tavalla. Ensin luetaan kommentteja, josko niissä paljastuisi luukun paikka. Kohta löytyy helposti, siihen on kirjoitettu suomeksi ”luukku” (Kiitos, Lauri!). Kommentoimalla moniriviset prism-käskyt huomaan luukun ja etusarjan katoavan mallista: 

! --- luukku
material luukku_mat
!prism_ 4, a*0.5,
! a*0.25,b,15,
! a*0.25,b-gs_frame_thk,15,
! a-a*0.25,b-gs_frame_thk,15,
! a-a*0.25,b,15
addz a*0.55
!prism_ 4, zzyzx-gs_toe_height-(a-a*0.45),
! a*0.2,b,15,
! a*0.2,b-gs_frame_thk,15,
! a-a*0.2,b-gs_frame_thk,15,
! a-a*0.2,b,15
del 1

Erivärinen etusarja on mielestäni hauska yksityiskohta, jonka voi jättää sähkökiukaaseen. Jos sitä ei halua, niin sille voi valita saman materiaalin kuin kiukaan rungolle. Niinpä tehtäväksi jää luukun poistaminen ja etusarjan korkeuksien muuttaminen vastaamaan rungon korkeuksia.

Varmistan nopeasti kommentoimalla, että edeltävä prism-käsky on runko. Jätän luukun kommentoiduksi ja muutan etusarjan korkeudet, jonka jälkeen kohta näyttää tältä:

! --- luukku
material luukku_mat !#### Myös etusarja käyttää tätä
!prism_ 4, a*0.5,
! a*0.25,b,15,
! a*0.25,b-gs_frame_thk,15,
! a-a*0.25,b-gs_frame_thk,15,
! a-a*0.25,b,15
addz 0 !#### a*0.55 Nostoa ei tarvita jos etusarja alkaa alhaalta
!#### Teen kuitenkin nollanoston, jotta siirtojen määrä ei muutu
prism_ 4, zzyzx-gs_toe_height, !#### -(a-a*0.45) Luukun korkeuden vähennys pois
a*0.2,b,15,
a*0.2,b-gs_frame_thk,15,
a-a*0.2,b-gs_frame_thk,15,
a-a*0.2,b,15
del 1

Lisäsin myös kommentteja, ja omaan tyyliini kuuluu #-merkkien käyttö huomion lisäämiseksi.

Sähkökiuas on valmis!