Revit – Korištenje Array naredbe u famlijama – II. DIO – UPOTREBA FORMULA
- 9 February
Nastavno na prošli blog (https://www.intelika.hr/revit-array-u-familijama-1dio-osnovno-postavljanje/) u kojem smo prezentirali kako se koristi naredba <Array>, u ovom blogu ćemo na istom primjeru detaljnije prezentirati upotrebu formula u parametrima te kako one obogaćuju i ubrzavaju procese rada s familijama. Prezentirana upotreba formula nije vezana samo za primjer namještaja te je moguća i u drugim familijama i oblicima rada.
U prethodnom blogu predstavljeno je „ručno“ kontroliranje broja stolica i širina, ali bilo bi puno bolje da možemo automatski odrediti broj stolica na temelju širine, što možemo postići sa formulama. Formule su moćan alat u izradi familija i njima možemo puno bolje kontrolirati familiju nego što je to „ručno“.
Rezultat koji želimo dobiti formulom je broj stolica koje stanu između nogu stola. Za to su nam potrebne tri varijable 1) broj stolica, 2) širina stolice i 3) prostor između nogu stola u koji stavljamo stolice. Parametar za broj stolica imamo, pa moramo napraviti parametre za drugu dvije varijable.
Idemo u <Family Types> –> New Parameter i napravimo novi parametar <Sirina_stolice> (Slika 1.).
Slika 1: Parametar za širinu stolice
Sljedeće, napravimo novi parametar <Prostor_za_stolice> (Slika 2.).
Slika 2: Parametar za prostor za stolice
Izmjerimo širinu stolice u familiji (možemo malo povećati ovu širinu da nam stolice ne ispadnu točno jedna kraj druge) i prostora za stolice između nogu i upišemo za te parametre vrijednosti: u našem slučaju je – Sirina_stolice = 550mm, Prostor za stolice = 1700 (Slika 3.).
Slika 3.: Upis vrijednosti za širinu stolice i prostora za stolice
Sada ćemo početi slagati formulu za kontroliranje broja stolica te u parametru <Broj_stolica> upisujemo početnu formulu –> Prostor za stolice / Sirina_stolice (Slika 4.).
NAPOMENA za upisivanje formula: naziv parametra se mora točno upisati kako izgleda uključujući i veličinu slova.
Slika 4.: Formula za izračunavanje broja stolica u Array-u
Sljedeće što moramo je uračunati zaokruživanje na cijeli broj, parametar za <Broj_stolica> je uvijek cijeli broj i Revit standardno zaokružuje kako je to uobičajeno – npr. 3.1 = 3, a 3.5 = 4 i tom slučaju kod zaokruživanja 3.5 na 4 dolazi do preklapanja stolica, tako da moramo u formulu staviti funkciju da uvijek zaokružuje prema dolje. U Revitu postoji funkcija za to: rounddown (x).
Ispred naše formule dodamo funkciju rounddown i ostatak formule stavimo u zagradu (Slika 5.).
Slika 5.: Zaokruživanje formule
Sljedeći korak je parametar <Prostor_za_stolice>. Prostor za stolice je ovisan o položaju nogica stola i same debljine nogica i to ćemo morati uračunati u formulu, tako da formula za Prostor_za_stolice bi izgledala:
Širina – (2*Udaljenost od ruba nogice) – (2*Debljine nogice) (Slika 6.).
NAPOMENA: Parametri <Udaljenost od ruba nogice> i <Debljina nogice> su parametri iz naše familije stola koji kontroliraju dubinu ugradnje nogu i samu širinu noge stole. U nekoj drugoj familiji stola možda nema tih parametara, pa je potrebno prilagoditi od slučaja do slučaja.
Slika 6.: Formula za izračunavanje prostora za stolice
I sada pomoću formula možemo sa promjenom jednog parametra – Širina, promijeniti automatski broj stolica u Array-u (Slika 7.).
Slika 7.: Kontroliranje broja stolica pomoću parametra širine
Možda bi ovdje mogli stati sa izradom ove familije, ako je radimo za sebe i to je to što smo željeli postići, ali postoji jedan problem – ako stavimo vrijednost širine tako da nam <Broj stolica> ispadne 1, pokazati će nam se greška, jer u Array-u ne možemo imati vrijednost 1 (Slika 8.).
Slika 8.: Greška za broj stolica u Arrayu – ne može biti 1
Sad je vrijeme da se upoznamo sa strukturom uvjetnog izraza koja izgleda ovako:
IF(<uvjet>, <vrijednost ako je uvjet zadovoljen>, <vrijednost ako uvjet nije zadovoljen>), npr. if(Area > 1 m2, 70mm, 60mm). Ovo je možda najbolje čitati kao: „ako je površina veća od 1 m2, onda je vrijednost ovog parametra 70mm, a ako nije onda je 60 mm“ (Slika 9.).
Slika 9.: Primjer formule sa IF izrazom
Ono što želimo u našoj familiji je osigurati da se broj stolica ne može spustiti ispod 2. U formuli za broj stolica ispred svega stavimo funkciju IF, i postavimo uvjet što će se dogoditi ako broj stolica bude manji od dva. Ova formula će sada izgledati:
if(rounddown(Prostor_za_stolice / Sirina_stolice)<2, 2, rounddown(Prostor_za_stolice / Sirina_stolice)) (Slika 10.).
Čitamo kao: „Ako je rezultat naše formule manji od dva, vrijednost će biti dva, a za sve ostalo vrijednost koju smo dobili formulom.“
Slika 10.: IF formula za kontrolu
NAPOMENA: Kod ovih formula moramo biti pažljivi da smo zatvorili sve zagrade inače ćemo dobiti grešku.
U sljedećem blogu prezentirat ćemo parametre vidljivosti (<Visiblity>) na primjeru situacije u kojoj moramo prikazati jednu stolicu za određenu širinu stola.
[…] u familijima. Na kraju ovog bloga možete preuzeti i završenu familiju stola. U prošlom blogu (https://www.intelika.hr/revit-koristenje-array-naredbe-u-famlijama-ii-dio-upotreba-forumala/) na primjeru stola i stolica postigli smo da naš Array stolica ne javlja grešku jer ne može […]