GENERATIVNI PRISTOP K UCINKOVITEMU NACRTOVANJU OBJEKTOV GENERATIVE APPROACH TO EFFICIENT BUILDING DESIGN asist. Luka Gradišar, mag. inž. grad. Znanstveni clanek luka.gradisar@fgg.uni-lj.si UDK 004.414.23:69-5 doc. dr. Matevž Dolenc, univ. dipl. inž. grad. matevz.dolenc@fgg.uni-lj.si asist. dr. Robert Klinc, univ. dipl. inž. grad. robert.klinc@fgg.uni-lj.si prof. dr. Žiga Turk, univ. dipl. inž. grad. ziga.turk@fgg.uni-lj.si Univerza v Ljubljani, Fakulteta za gradbeništvo in geodezijo, Katedra za gradbeno informatiko, Jamova 2, Ljubljana Povzetek l Pri nacrtovanju se velikokrat srecamo s problemi, za katere moramo dolociti ustrezno rešitev. Takšne probleme obicajno rešujemo iterativno (predpostavimo rešitev, jo analiziramo in preverimo ustreznost, dokler rešitev ne zadosti vsem pogojem in ciljem) na podlagi izkušenj in znanja, kar pa ne deluje pri problemih, s katerimi se so-ocimo prvic. Alternativni pristop je generativno nacrtovanje, kjer se osredotocimo na defi­niranje problema s pripadajocimi cilji v obliki parametricnega racunskega modela, ki ga prepustimo v reševanje algoritmom. Ti na podlagi optimizacijskih metod išcejo ustrezne rešitve glede na podane kriterije in omejitve. Rezultat generativnega postopka je množica rešitev, ki nam z ustrezno analizo pomagajo ucinkovito rešiti zastavljen problem. Glavna ideja pristopa je sodelovanje projektanta z inteligentnim orodjem, ki ima komplementar­ne sposobnosti: pregled velikega števila podatkov, generiranje velikega števila alternativ, analiza množice in iterativno izboljšanje rešitev. Pristop je splošen in zato uporaben pri nacrtovanju na vseh podrocjih gradbeništva. V prispevku se vprašamo o zmogljivosti takega pristopa in ce ta vodi k nadomestitvi projektanta v procesu nacrtovanja. Tako v prvem delu predstavimo kljucne dele generativnega nacrtovanja in njihovo delovanje, v drugem delu na primeru uporabimo proces generativnega pristopa za nacrtovanje ele­mentov za sencenje, v zadnjem delu pa predstavimo rezultate obeh pristopov. Kljucne besede: generativno nacrtovanje, optimizacija, evolucijski algoritmi, racunski mo­del, Dynamo, BIM Summary l When designing, we often face problems for which we must find a solution. We solve such problems iteratively by proposing a solution, analysing it and testing its suitability until the solution satisfies all conditions and objectives. Normally we solve such problems based on experience and knowledge, which does not work for the problems we are confronted with for the first time. An alternative approach is generative design, where we focus on defining a problem with its objectives and constraints in terms of a parametric computational model and leave the solution to the algorithms. The result of the generative process is a set of solutions the analysis of which helps us to solve the problem. The main idea of the approach is the collaboration between the designer and the intelligent tool, which has complementary capabilities, such as sorting large amounts of data, generating many alternatives, analysing the solutions, and incrementally improving them. The approach is general and can also be applied in other areas of civil engineering. In this paper, we question the capacity of such an approach and whether it aims to replace the designer in the design process. Therefore, in the first part we present the key elements of generative design, in the second part we apply the generative design process for the design of shading elements, and in the last part we present the results and compare them with the usual approach. Key words: Generative design, optimisation, evolutionary algorithms, computational mo­del, Dynamo, BIM V zadnjih letih je opazen vedno hitrejši tehnolo­ški razvoj, ki se v gradbeništvu odraža v vedno vecji uporabi digitalnih orodij. Posledicno se delo projektantov drasticno spreminja, saj se je zaradi menjave svincnika in papirja s CAD-orodij proces nacrtovanja stavb precej poenostavil in pohitril. Prav tako se z menjavo CAD-orodij z informacijskimi modeli spreminja tudi proces nacrtovanja. Vedno manjša je potreba po risarjih, nacrtovanje se zliva z dokumentiranjem in je bistveno bolj celovito, povezano in koordinirano. Obenem so orodja za numericno analizo racunalniško podprta, kar bistveno poenostavi in pospeši preverjanje rešitev. Še vedno pa mora rešitve, ki jih racu­nalniki pomagajo analizirati in dokumentirati, poiskati inženir ali arhitekt. Trenutno se pri projektiranju vecinoma še vedno uporablja »klasicni« pristop. Projek­tant mora razumeti problem, njegove kriterije in omejitve, nakar lahko rešitve ustvari glede na svoje znanje, izkušnje, podobne pretekle primere in domišljijo, seveda v odvisnosti od vhodnih pogojev in ciljev. Omejitve tako dolocijo, katere rešitve so sploh dopustne, kriteriji pa omogocajo kvalitativne primerja­ve med njimi. V procesu je projektant tisti, ki (pred)postavi rešitev, racunalnik pa pomaga pri njeni predstavitvi in analizi, ne pomaga pa pri ustvarjanju rešitev. Za alternativne pristope nas zanimajo takšni, ki preusmerijo osredotocenost iz direktne sinteze rešitev na definiranje problema z jasnimi zakonitostmi. Zastavljeni problem lahko nato prepustimo v reševanje algoritmom, ki so sposobni generirati in potem analizirati veliko število rešitev. Eden izmed teh pristopov, ki je predstavljen v nadaljevanju, je generativno nacrtovanje. Generativno nacrtovanje je iterativni proces, v katerem se projektant osredotoci na definira­nje problema in njegovih ciljev, iskanje rešitev pa prepusti algoritmom. Ti s spreminjanjem parametrov problema generirajo množico raz­licnih rešitev, ki jih analiziramo z namenom razumeti obnašanje problema [Krish, 2011]. S tako pridobljenim znanjem lahko popravimo in nadgradimo opis problema ali pa izberemo rešitev, ki zadošca vsem zastavljenim ciljem. S takšnim procesom rešujemo probleme, kjer ima projektant premalo izkušenj in znanja, da bi hitro ustvaril rešitev, ki bi zdržala preverbo omejitev in optimalno izpolnila kriterije. 2.1 Sestavni deli generativnega nacrtovanja V procesu generativnega nacrtovanja lahko identificiramo tri kljucne znacilnosti, prikaza­ne na sliki 1: racunski model, generiranje in oceno rešitev. Racunski model razumemo kot poenostavitev realnega inženirskega problema na model, ki ga racunalnik lahko prebere, analizira in spreminja. Izdelava takšnega modela je zah­tevna, saj je treba problem zapisati s skupkom pravil in enacb, ki pravilno opišejo njegovo obnašanje, poleg tega pa mora biti opis parametricni, saj se s parametri spreminjajo zasnova in njene lastnosti [Stasiuk, 2018]. Pri vseh parametricnih modelih nas zanimajo tudi njihove lastnosti, na podlagi katerih lahko ocenimo uspešnost zasnove, kot so npr. cena, prostornina, ucinkovitost, nosilnost, stabilnost in podobni opisi, primerni za primerjavo ge­neriranih zasnov med seboj [Caldas, 2002]. Obicajno se racunski modeli zaradi enkratno­sti problema programira samostojno, obstajajo pa programske rešitve za nekatere ponovljive probleme. Generiranje namesto projektanta izvaja »ra-cunalnik« oziroma algoritem, ki avtomatizira parametricno iskanje ter testiranje možnih rešitev problema, vendar pa je kvaliteta le-teh pogojena z natancnostjo racunskega modela, pripravljenega s strani projektanta. Ti algoritmi delujejo tako, da preko racunskega modela spreminjajo vhodne spremenljivke in pri tem spremljajo izhodne vrednosti, s pomocjo ka­terih ocenijo uspešnost rešitve, nato pa preko vec iteracij poišcejo najbolj primerne glede na zastavljene cilje. Zaradi velikega števila spremenljivk in posledicno velikega prostora rešitev se obicajno uporabljajo optimizacijski algoritmi, najpogosteje evolucijski algoritmi [Johan, 2019] ter algoritmi za topološko op-timizacijo v kombinaciji z evolucijskimi [Ravi, 2018]. Poleg tega se uporabljajo tudi algorit-mi, ki generirajo rešitve po dolocenih pravilih kombiniranja vhodnih spremenljivk, kot je vektorski produkt ali nakljucna kombinacija. Pri oceni rešitev je treba pregledati generirane rešitve, saj je, odvisno od zasnove problema in ciljev, lahko teh zelo veliko, med njimi pa je treba izbrati eno koncno rešitev. To pomeni, da je treba oceniti množico rešitev, za kar se upo­rabijo orodja za analizo podatkov, kot so npr. Paretova fronta, graf vzporednih koordinat in neposredna primerjava, z namenom identifici­ranja optimalnih rešitev in ugotavljanja vpliva vhodnih spremenljivk na obnašanje modela in na njegove rezultate. S tako pridobljenim zna­njem lahko nato nadgradimo racunski model ali izberemo rešitev zadanega problema. Ker se v generativnem nacrtovanju pogosto srecujemo z vec kot enim ciljem oziroma kriterijem, po katerem ovrednotimo rešitev, obstaja vec kot ena optimalna rešitev. Take re-šitve imenujemo Pareto optimalne rešitve in jih identificiramo s Paretovo fronto [Deb, 2002]. Zanje je znacilno, da ne obstaja rešitev, ki bi bila boljša po vseh kriterijih hkrati (prikazano na sliki 2 z modrim obmocjem). Obstajajo pa rešitve, ki so lahko boljše po posameznem kriteriju (oznacene s sivo barvo na sliki 2), vendar te niso optimalne pri veckriterijski optimizaciji [Allen, 2018]. Da ugotovimo, kako vhodne spremenljivke vplivajo na izhodne, nam v pomoc pride graf vzporednih koordinat, ki prikaže medse­bojne povezave spremenljivk vsake rešitve. Poleg tega lahko na grafu dodatno omejimo vrednosti spremenljivk in s tem zmanjšamo množico rešitev na manjši vzorec, ki ga je lažje obvladovati. V kombinaciji z neposredno primerjavo se izbrane rešitve prikažejo še graficno druga ob drugi in s tem omogocijo hitro primerjavo ter ucinkovito iskanje ustrezne rešitve. 2.2 Evolucijski algoritmi Pogosto uporabljeni algoritmi za iskanje in ge­neriranje rešitev pri generativnem nacrtovanju so evolucijski algoritmi. Ti delujejo po principu evolucije, kjer uspešni clani populacije preživi­jo in se reproducirajo, pri tem pa se z vsako novo generacijo clani izboljšujejo, dokler ne dosežejo vrha. Eden izmed evolucijskih algo­ritmov je genetski algoritem, katerega postopek je naslednji [Rutten, 2010]: 1. nakljucno izberi prvo generacijo v pro-storu rešitev; 2. vse clane razvrsti po uspešnosti in ob-drži delež najbolj uspešnih; 3. ustvari novo generacijo s križanjem in mutacijo; 4. ponavljaj, dokler z novo generacijo ni znatne izboljšave. Križanje deluje na podlagi menjave genov oziroma vrednosti parametrov, mutacija pa nakljucno priredi vrednosti teh parametrov in s tem prepreci zatik populacije v lokalnem optimumu in zagotovi konvergenco h global-nemu [Guid, 2015]. Genetski algoritem tako s pomocjo populacije hitro poišce globalni ekstrem (maksimum ali minimum) in lahko privede do zanimivih in manj vidnih rešitev, ki rešijo zastavljen problem [Konak, 2006]. Primerjavo generativnega nacrtovanja z obicaj­nim pristopom smo izvedli na primeru nacrto­vanja elementov za sencenje stavbe. Zaradi vedno vecjega poudarka na energetski ucinko­vitosti je bila želja poiskati ucinkovito zasnovo sencenja velikih steklenih površin z idejo nepre­micnih elementov v obliki lesenih vlaken (slika 4), ki bi poudarili leseno konstrukcijo stavbe in pri tem ucinkovito sencili v vseh letnih casih. Z uporabo generativnega pristopa je bil cilj po­iskati optimalno obliko elementov za sencenje, ki bi pri cim cenejši izgradnji ucinkovito sencila in poudarila kompleksen videz fasade. Slika 4•Ideja nepremicnih elementov za sencenje v obliki lesenih vlaken. Za uporabo generativnega pristopa je bilo treba dolociti okolje za izgradnjo racunske­ga modela, orodje za generiranje rešitev in za vrednotenje rezultatov. V ta namen smo izbrali orodja Autodesk Revit, Dynamo, pro-gramski jezik Python in dodatek Generative Design (v casu opravljanja raziskave se je imenoval še Project Refinery), ki je od razlici­ce 2021 dalje že privzeto vgrajen v program Revit [Autodesk, 2020]. V programu Revit je bil zgrajen informacijski model stavbe, ki je predstavljal izhodišce, na katerem se je zasnovalo in nato dodalo model elementov za sencenje. Zastavljenega kompleksnega modela ni možno modelirati rocno, zato se je za racunsko modeliranje uporabil Dyna­mo, kjer preko vizualnega programiranja z vsakim delckom kode gradimo model ali pa upravljamo informacije [The Dynamo Primer, 2020]. Za generiranje rešitev se je uporabil dodatek Project Refinery, ki vsebuje razlicne algoritme za generiranje rešitev in vmesnik za pregled rezultatov [Generative Design Primer, 2020]. Rezultati so se urejali s pomocjo programskega jezika Python, kjer sta se uporabila Paretova fronta in graf vzpo­rednih koordinat. 3.1 Racunski model V našem primeru je racunski model pred­stavljala skripta v okolju Dynamo, v katerem se je s povezovanjem blokov kode (slika 6) sestavilo, definiralo obnašanje in analiziralo elemente za sencenje. Kot izhodišce se je iz informacijskega modela preneslo ploskve zastekljenih površin, njihovo lego in orienta­cijo ter smeri sonca v razlicnih letnih casih. Površine so se razdelile na horizontalne ele­mente, ki se jih je nato preko oblikovnih krivulj, trigonometricnih funkcij in z uvedbo manjših odprtin prevedlo v kompleksnejšo obliko, prikazano na sliki 7. Parametri racunskega modela, ki so spre­minjali zasnovo elementov za sencenje, so bili: število horizontalnih elementov, najvecja širina elementov, lega in velikost odprtin ter interpolacijske tocke oblikovnih krivulj, ki so definirale valovito geometrijo elementov. Vsi ti parametri so imeli vpliv na obliko elementov in posledicno na njihovo ucinkovitost sencenja. Za oceno te ucinkovitosti smo pripravili anali­zo sencenja, kjer se je s pomocjo simuliranja soncnih žarkov preverilo, koliko jih preide v notranjost oziroma koliko jih elementi ustavijo (prikazano na sliki 8 z modro in rdeco barvo). Za dodatni deterministicni kriterij se je iz modela izvleklo skupno porabo materiala za analizo stroškov. 3.2 Generiranje rešitev Z zgrajenim racunskim modelom je iskalnik rešitev, ki ga vsebuje dodatek Project Refine­ry, generiral rešitve s spreminjanjem vhodnih spremenljivk na podlagi optimizacije z ge­netskimi algoritmi. Zaradi želje po hitrejših izracunih sta se za vhodne spremenljivke izbrala le število horizontalnih elementov in koeficient širine elementov, saj se je preko iterativnega procesa izdelave racunskega modela in rezultatov analiz ugotovilo, da ima­ta ti dve najvecji vpliv na vrednosti izhodnih spremenljivk. S tem se je število vseh možnih kombinacij zmanjšalo na le 18.200. Za iz­hodne spremenljivke, na podlagi katerih so se vrednotile rešitve, so bile izbrane poraba materiala, število prehodnih žarkov poleti in število blokiranih žarkov pozimi (slika 9), s cimer se je številcno opredelila ucinkovitost sencenja. Iskale so se rešitve, ki so imele cim manjše vrednosti vseh treh izhodnih spre­menljivk. Za dodatni kriterij se je spremljalo še videz elementov, vendar takega kriterija ni bilo mogoce numericno opredeliti, zato se je ocenil subjektivno. 3.3 Ocena rešitev Množica rešitev je bila dobljena v vec korakih z razlicnimi nastavitvami natancnosti optimi­zacijskega algoritma, kar nam je vrnilo vzorec 573 raznolikih rešitev. Tako število podatkov težko pregledamo individualno, zato se je z uporabo Paretove fronte, grafom vzporednih koordinat in neposredno primerjavo analizirala množica rešitev in pri tem ugotavljalo delova­nje modela. Paretova fronta se je uporabila za identifikacijo optimalnih rešitev (slika 10), saj smo imeli vec kriterijev, po katerih smo ocenjevali razlicne rešitve. Ker nas je poleg obravnavanih kriteri­jev zanimal tudi videz elementov, ki ga ni bilo možno ovrednotiti v racunskem modelu, nas niso zanimale zgolj Pareto optimalne rešitve, temvec tudi takšne z zanimivo obliko. Te rešit­ve, ležece na Paretovi fronti, so nam podale referencne vrednosti kriterijev, s katerimi smo Slika 10•Paretova fronta, zgrajena na rezultatih iz optimizacije. ocenili, koliko dalec od optimalnih se nahajajo ostale rešitve, ki smo jih obravnavali v procesu ocenjevanja. Množica rešitev se je prikazala še na gra­fu vzporednih koordinat, kjer so povezave med lastnostmi posameznih rešitev poka­zale vpliv števila elementov in koeficienta širine elementov na izhodne spremenljivke. Raztros spremenljivk je pokazal vecji vpliv števila elementov na ucinkovitost sencenja, saj ima ta manjši raztros kot širina elemen­tov. Poleg tega so se na grafu dodatno omejili vrednosti spremenljivk in s tem šte­vilo rešitev na manjši vzorec, prikazan na sliki 11. Spreminjanje mej je vrnilo razlicne vzorce, ki so se z neposredno primerjavo (slika 12) primerjali še po videzu, kar nam je omogocilo hiter pregled vec ustreznih alternativnih rešitev. 3.4 Rešitev problema Med procesom generativnega nacrtovanja se je racunski model postopoma nadgrajeval, pri tem pa smo spremljali rezultate, dokler se ni našla ustrezna rešitev. Ugotovili smo, pri kakšnih pogojih optimalno rešijo pro­blem, kako parametri vplivajo na obliko in pripadajoce lastnosti, in s tem dobili vpogled v zastavljeni problem. S tako pridobljenim znanjem smo izbrali rešitev, ki je zadostila vsem pogojem in ciljem, in jo dodali infor­macijskemu modelu, kar je prikazano na sliki 13. Izbira rešitve je bila še vedno odvisna od projektantov, saj je problem zajemal vec kriterijev, med njimi tudi subjektivna ocena videza fasade, ki je pametni racunalniki še ne znajo ovrednotiti. Pred uporabo generativnega pristopa smo elemente za sencenje zasnovali z obicajnim pristopom, kjer se je oblika spreminjala roc­no, nato smo analizirali sencenje in ocenili ustreznost podane rešitve. V tem pristopu je bilo težje oceniti ustreznost rešitve, saj nismo imeli referencnih vrednosti, in se ni vedelo, ali se lahko rešitev še izboljša. Z uporabo genera-tivnega nacrtovanja smo ugotovili, da obstaja vec takih rešitev, ki jih je bilo mogoce med seboj primerjati in poiskati najbolj ustrezno. Primerjava obeh pristopov je pokazala, da je rezultat generativnega pristopa imel 307 % manjšo porabo materiala, enako ucinkovitost poleti in bil ucinkovit tudi pozimi. V primeru rocnega spreminjanja se je ucinkovitost po­zimi zanemarila, saj je bilo težje spremljati vse cilje. Slika 13•Vizualizacija informacijskega modela stavbe z dodanimi elementi za sencenje. Slika 14•Vizualizacija koncne rešitve elementov za sencenje. V prispevku smo predstavili kljucne znacil­nosti generativnega nacrtovanja in prikazali njihovo delovanje na primeru. V tem pristopu se namesto iskanja posamicne rešitve osre­dotocimo na definiranje problema z vsemi pogoji in cilji, nakar nacrtovanje prepustimo algoritmom. Ker generativno nacrtovanje av-tomatizira sintetiziranje, analizo in vecji del ocene rešitev, predstavlja zmogljiv pristop k nacrtovanju. Na primeru zasnove elementov za sencenje se je iskala rešitev z obicajnim pristopom in nato z generativnim nacrtovanjem. Gene-rativni pristop je podal rešitev, ki je ucinko­vito sencila in pri tem imela 307 % manjšo porabo materiala kot rezultat obicajnega pristopa. Ko smo se prvic soocili z novim problemom, je bilo težko predpostaviti rešitev, ki bi zadostila vsem ciljem. Potrebno je bilo iterativno iskanje, ki pa je lahko zamudno, saj pot do optimalne rešitve ni enosmerna. Tukaj je generativno nacrtovanje v prednosti, saj avtomatizira iskanje optimalnih rešitev in zmanjša število tistih, med katerimi se izbere koncna. Zmogljivost procesa generativnega nacrto­vanja se kaže predvsem pri reševanju novih problemov, kjer ni pricakovati, da bi projektant ugotovil rešitev, ki bi bila blizu optimalne. Preko definiranega problema se namesto iskanja posamicne rešitve ustvari množica rešitev, kar nam poda vpogled v razumevanje problema. Vendarle ta pristop zahteva znanje in cas za izdelavo racunskega modela, ki si ga vcasih ne moremo privošciti pri projektih. Prednost pristopa se pojavi šele pri veckratni uporabi racunskega modela, saj ga je možno hitro prilagoditi za podobne primere. Pristop je splošen in zato uporaben tudi kot pomoc pri nacrtovanju na drugih podrocjih gradbeni­štva, kjer lahko problem opišemo z racunskim modelom. Pri uporabi takega procesa smo se tudi vprašali, ali generativni pristop nadomešca projektanta v procesu nacrtovanja. Trenutni odgovor je ne, saj je projektant še vedno odgovoren za dva od treh delov procesa, »racunalnik« prevzame le pametno iskanje rešitev zastavljenega problema, projektant pa mora še vedno definirati problem in izbrati koncno rešitev. Iskrena zahvala Javni agenciji za raziskovalno dejavnost Republike Slovenije, ki je v okviru programa Mladi raziskovalci financirala prikazane raziskave. Allen, M., Python for healthcare modelling and data science, pareto front, https://pythonhealthcare.org/tag/pareto-front/, 2018. Autodesk, Generative Design in Revit now available, https://blogs.autodesk.com/revit/2020/04/08/generative-design-in-revit/, 2020. Caldas, L. G., Norford, L. K., A design optimization tool based on a genetic algorithm, Automation in Construction 11 (2): 173-184, 2002. Deb, K., Pratap, A., Agarwal, S., Meyarivan, T., A Fast and Elitist Multiobjective Genetic Algorithm: NSGA-II, IEEE Transactions on Evolutionary Com­ puting 6 (2): 182-197, 2002. Generative Design Primer, Generative Design for Revit and Dynamo, https://www.generativedesign.org/01-introduction/01-05_gd-for-revit, 2020. Guid, N., Strnad, D., Umetna inteligenca, Maribor, Univerza v Mariboru, Fakulteta za elektrotehniko, racunalništvo in informatiko, 2015. Johan, R., Chernyavsky, M., Fabbri, A., et al., Building intelligence through generative design, Proceedings of the 24th International Conference of the Association for Computer-Aided Architectural Design Research in Asia (CAADRIA), Wellington, New Zealand, 2019. Konak, A., Coit, D. W., Smith, A., Multi-objective optimization using genetic algorithms: A tutorial, Reliability Engineering and System Safety 91: 992-1007, 2006. Krish, S., A practical generative design method, Computer-Aided Design 43 (1): 88-100, 2011. Ravi, A., What Generative Design Is and Why It's the Future of Manufacturing, https://www.newequipment.com/research-and-development/arti­ cle/22059780/what-generative-design-is-and-why-its-the-future-of-manufacturing, 2018. Rutten, D., Evolutionary Principles applied to Problem Solving, Grasshopper blogs, https://www.grasshopper3d.com/profiles/blogs/evolutionary­-principles, 2010. Stasiuk, D., Design Modeling Terminology, https://archinate.files.wordpress.com/2018/06/dstasiuk-design-modeling-terminology1.pdf, 2018. The Dynamo Primer, What is Dynamo, https://primer.dynamobim.org/01_Introduction/1-2_what_is_dynamo.html, 2020.