Aneb modelování jinak

Co si většina čtenářů představí pod pojmy jako „počítačové kreslení" nebo „počítačové modelování"? Pravděpodobně práci s 2D prvky, jako je čára či kružnice, nebo 3D prvky typu plocha či těleso. Podle zaměření, zkušeností a používaného softwaru by určitě nechyběly pokročilé techniky typu objemové modelování, modelování pomocí sítí, nemluvě samozřejmě o možnosti kótovat, popisovat, generovat řezy a mnoho dalších. Je ale tento přístup jediný možný?

Způsob práce, kdy uživatel interaktivně vytváří kresbu nebo model pomocí jednodušších prvků, v podstatě odpovídá filosofii „elektronického rýsovacího prkna". Jakkoliv by se toto označení mohlo někomu zdát příliš hanlivé, jde o široce používaný a léty ověřený přístup, který se shoduje se způsobem lidského myšlení a v rámci kterého lze dnes najít stovky obecných i specializovaných řešení. Navíc snaha odlišit se od konkurence a přinést uživatelům něco nového posouvá tyto produkty stále kupředu k inteligentnějším a propracovanějším nástrojům.

generativni_modelovani

Generativní modelování

Stejně dlouho jako výše uvedené „klasické řešení" se, ovšem spíše v ústraní a formou diskusí s menším důrazem na tvorbu komerčních produktů, vyvíjel odlišný přístup k počítačovému modelování. Jádrem těchto snah, dnes většinou označovaných jako generativní modelování nebo design, je snaha popsat model nikoliv jako skupinu geometrických prvků, ale jako výsledek algoritmů. Velmi zjednodušeně by snad šlo říci, že v tradiční počítačové grafice uživatel kreslí, v generativní pomocí kódu popisuje způsob a postup generování modelu.

Kreslení a generování je ovšem třeba chápat jako dva extrémy, v praxi spíše dochází k prolínání a kombinaci obou přístupů. Dobrým příkladem jsou nástroje pro parametrické modelování, které dovolují tělesa vytvářet graficky, současně je ale udržován strom, který popisuje historii a vztahy a díky kterému je možné těleso při změně parametrů znovu vygenerovat. Tento článek se nicméně zaměřuje na produkt, který byl vyvinut pouze na základech generativního modelování, a který tedy nabízí zcela odlišný přístup k problematice tvorby modelu.

MicroStation GenerativeComponents

MicroStation GenerativeComponents (dále GC) je produktem společnosti Bentley Systems, a jak jeho název napovídá, jde o produkt spojený s MicroStationem, vlajkovou lodí v produktové řadě Bentley. Přesněji řečeno, jde o rozšíření, které využívá nástrojů a možností MicroStationu, především jádra Parasolid, a nahrazuje standardní nástroje funkcemi pro generativní modelování.

Produkt samotný má zajímavou historii: Představen byl již v roce 2003, od roku 2005 byl k dispozici vybraným uživatelům, komerční verze byla ovšem uvolněna až v roce 2007 pro MicroStation V8 XM Edition. Následující verze pro MicroStation V8i již měla všechny znaky vyzrálého produktu, článek popisuje aktuální verzi, která je určena pro MicroStation V8i SELECTseries 1. V nabídce Bentley jsou GC poměrně specifickým produktem, negenerují totiž žádný přímý zisk – tento produkt si může nainstalovat a používat každý uživatel MicroStationu, který má svoji licenci pokrytou programem Bentley SELECT.

Prostředí a práce s produktem

Jak ale vlastně GC vypadají a jak se s tímto produktem pracuje? Pro uživatele MicroStationu může být prostředí GC překvapením, protože všechny běžné a známé nástroje pro kreslení a modelování jsou skryty, základní prvky rozhraní, jako nabídka, pohledy nebo způsob ovládání, a celková struktura jsou nicméně samozřejmě zachovány. Nejdůležitějším pracovním nástrojem je editor umožňující psaní skriptů v jazyce GCScript, druhým pak symbolické zobrazení modelu a jeho struktury. GCScript je speciální „céčkový jazyk", takže pro uživatele se zkušenostmi s jazyky, jako je C, C++, Java nebo C#, nepředstavuje způsob zápisu a kódování algoritmů výrazný problém. Velmi příjemnou vlastností jazyka je možnost pracovat s ním jako s jednoduchým skriptovacím jazykem ve stylu „nakresli čáru z bodu 0,0 do bodu 1,1" stejně jako vytvářet komplexní programy s podmínkami a cykly, které využívají dat z externích zdrojů.

GCScript neobsahuje jenom knihovnu základních geometrických prvků, k dispozici jsou i pokročilé funkce pro práci s různými druhy křivek, plochami, tělesy, referencemi i rastrovými daty. Součástí knihovny jsou i nástroje pro import a export dat, práci s databází a v neposlední řadě funkce pro přípravu modelu pro výrobu, jako například rozvin těles do roviny.

Princip práce v GC lze popsat jako: „Nevytvářím model graficky z jednodušších prvků, ale ze základních funkcí jazyka GCScript vytvářím popis, podle kterého GC vytvoří model místo mne." Postup tvorby tedy zůstává v podstatě stejný, liší se především forma. Editor umožňuje snadný výběr jednotlivých operací ze seznamu dostupných tříd, není proto potřeba pamatovat si syntaxi a psát celý kód. V praxi se navíc často skripty, které si uživatel vytvořil v průběhu používání, skládají do nových celků, zřídkakdy je tedy nutno napsat celý skript nového modelu znovu od začátku. Pokud se vyskytne situace, kdy jazyk GCScript nestačí, ať již z důvodu komplexnosti modelu nebo uživatel vyžaduje objekt se specifickými vlastnostmi, je možné GC rozšířit pomocí objektového rozhraní a jazyků C# nebo Visual Basic.

prostredi

Výhody generativního modelování

Mohlo by se zdát, že GC a celý koncept generativního modelování vlastně nenabízí nic jiného než komplikovanější náhradu práce s myší v grafickém prostředí. Pokud by se nástroje GC používaly pouze jako náhrada normálních nástrojů, tak je to v podstatě pravda. Přínos a možnosti GC ovšem vyniknou především v situacích, kdy běžný přístup selhává nebo které nejsou ani běžnými prostředky řešitelné. Stačí si představit následující situaci: Nosná konstrukce objektu je tvořena sloupy půdorysně uspořádanými do spirály. Sloupy nemají stejnou výšku, neboť střecha je tvořena nerovnou plochou, která navíc přesahuje půdorys objektu. Vytvořit takový objekt tradičním postupem samozřejmě lze, je to ale zbytečně pracné, zatímco napsat funkci pro spirálovité umístění sloupů a na základě jejich polohy spočítat výšku velký problém není. Výhody GC a generativního modelování vůbec se pak naplno projeví především při změnách v projektu a porovnání alternativních variant. Konstruovat znovu a znovu modelový případ pro jiný průběh spirály, počet sloupů nebo tvar střechy je časově náročné i pro zkušené uživatele. Při řešení stejné situace pomocí GC znamenají uvedené změny pouze úpravu parametrů algoritmu a nové vygenerování modelu.

Integrace s dalšími programy

GC jsou nadstavbou MicroStationu, což určuje i základní možnosti výměny dat s ostatními programy. GC vytváří standardní model ve formátu DGN, který je možno dále použít ať již pro vizualizaci nebo pro další rozpracování a tvorbu výkresové dokumentace. Vzhledem k tomu, že MicroStation ve verzi V8i SELECTseries 1 generuje Trusted DWG, není problémem ani další zpracování v produktech Autodesku. Pro skutečně efektivní využívání GC v praxi ale není tento způsob výměny dat prostřednictvím „prosté grafiky" dostatečný, navíc interoperabilita je jedním ze základních cílů Bentley produktů. Proto je možné GC doplnit o podporu BIM řešení, díky které lze pracovat s objekty z produktů, jako je Bentley Architecture, a naopak takové objekty také vytvářet.

GenerativeComponents v praxi

Využívání GC v praxi a také jeho prezentace vůči architektům, projektantům a designérům jsou úzce svázány se sdružením SmartGeometry Group (SGG). To bylo založeno v roce 2001 jako nezávislá platforma propojující praxi, výzkum a vzdělávací instituce a stojí za ním jak významné projekční firmy jako Foster+Partners nebo Arup, tak akademické instituce jako MIT nebo univerzita v Delftu. Bentley jsou hlavním sponzorem SGG a v počátcích vývoje GC byly pravidelně organizované mezinárodní konference hlavním místem, kde Bentley ukazovali možnosti nového produktu a stejně tak kde získávali zpětnou vazbu od prvních uživatelů. Díky počátečnímu těsnému propojení mezi vývojem a praxí mají dnes GC aktivní uživatelskou základnu, která se může prezentovat rostoucím počtem projektů, ve kterých byly možnosti GC využity. Kromě architektury existují příklady využití GC v urbanismu nebo užitném designu.

v_praxi

Závěrem

Hodnotit GC není jednoduché, protože jde o specifický produkt jak svým zaměřením, tak prostředím a ovládáním. Jde o zajímavý produkt, který umožňuje jiný přístup k řešení architektonických a obecně jakýchkoliv designérských úloh. Při jeho zvládnutí se uživateli otevřou nové možnosti práce a některé požadavky lze pomocí GC řešit rychleji a efektivněji než pomocí standardních postupů. Za ocenění stojí stabilita tvořená kombinací kvalitního základu v podobě MicroStationu a několikaletého vývoje a také možnosti jazyka GCScript a objektového API. Důležitým plusem je i to, že jde o produkt zdarma dostupný většině uživatelů MicroStationu.

Nevýhodou pro mnoho architektů může být „programátorský přístup", který vyžaduje alespoň základní znalosti o algoritmech a principech psaní kódu. Řešení, kdy s GC pracuje matematicky nebo softwarově vzdělaný zaměstnanec, který zpracovává představy a nápady architektů, je sice možné, v dnešní době omezených rozpočtů ale asi špatně realizovatelné. Pro české a slovenské uživatele může být velkou překážkou jazyk: U takto specializovaného produktu, u kterého nelze očekávat masívní uživatelskou základnu, lze akceptovat anglické prostředí, mnohem více chybí lokalizovaná dokumentace a učebnice, které by problém anglického prostředí i specifického ovládání bez problémů vyřešily.

v_praxi_2

GC představují výsledek kvalitně odvedené výzkumné práce při návrhu produktu a svoji pozici si tento produkt buduje i díky stabilnímu vývoji a marketingovým aktivitám Bentley v komunitě významných architektonických studií. Bentley ovšem musí počítat s tím, že konkurence nespí, a přestože se ostatní produkty většinou nemohou prezentovat podobnou historií, zajímavé aktivity na poli generativního návrhu lze najít například u produktů, jako je Catia, Rhino a samozřejmě u Autodesku. Možná i z výše uvedených důvodů Bentley uvolnili GC jako samostatný produkt, jehož testovací verzi (alespoň v době psaní tohoto článku) bylo možné si stáhnout zdarma na adrese www.bentley.com/getgc.