pondělí 15. února 2016

DYNAMO - vizuální programování

Evoluce projektování


Profese architekta či stavebního inženýra nebyla, průběhem svého vývoje, nějak zásadně vystavena rychlým změnám, až do té doby, kdy se celý proces vývoje projektu přesunul z papírové do digitální podoby a kdy klienti začali vyžadovat vyšší přidanou hodnotu od svých projektů. Současná doba začala klást na zkušené projektanty vyšší a vyšší požadavky, kdy jsou nuceni se stále vyvíjet, tak aby zůstali konkurenceschopní na trhu práce.

Přechod od rýsovacího prkna na CAD (Computer Aided Design) byl jen pouhým začátkem vývoje novodobého projektování. Začátkem 21. století přišel do povědomí nový pojem a tím je BIM (Building Information Modeling), projektování založené na informačním modelu je v současné době v řadě vyspělých zemí na rozkvětu a prochází nezadržitelně dalším vývojem. Další článek v evoluci projektování lze nazvat jako vizuální programování. Ale co si přesně pod tímto názvem představit?

Co je vizuální programování?


Ve stavebnictví se projektování zaměřuje na vizuální, systematické a geometrické vztahy mezi jednotlivými částmi návrhu, které jsou rozvíjeny prostřednictvím pracovních postupů založených na pravidlech od prvního konceptu až po finální výsledek.  Bez toho aniž bychom si to uvědomovali, pracujeme algoritmicky, tedy tak, že definujeme krok za krokem řadu různých akcí, které následují základní logiku vstupu, zpracování a výstupu. Tímto způsobem můžeme vizuální programování využít pro dokončení našeho návrhu jen s pomocí správného naformulování algoritmů.

Algoritmus v ruce


Zkusíme si tuto definici popsat na hmatatelnějším příkladu, například na tradičním origami vzoru jeřába. Začneme čtvercovým kusem papíru (vstup), následuje řada kroků skládání (zpracování) a konečně výsledný tvar origami jeřába (výstup).

Ptáte se, kde je přesně zmíněný algoritmus? Jedná se o abstraktní sadu kroků, které můžeme prezentovat několika způsoby, jednak buď pomocí textového zápisu anebo grafickou formou.

Textový zápis:

1. Začněte se čtvercovým kusem papíru, barevnou stranou nahoru. Přeložte papír napůl a následně ho rozevřete, dále přeložte napůl i druhou stranu papíru.

2. Otočte papír bílou stranou nahoru. Přeložte papír na polovinu, pořádně přehněte záhyby a papír rozevřete, a pak znovu přeložte v opačném směru.

3. Využijte získané záhyby k tomu, abyste ke spodnímu rohu papíru dostali ostatní zbylé tři rohy.

4. Přeložte krajní klapky papíru směrem k jeho středové ose a vraťte je zpět na původní místo.

5. Přeložte horní roh papíru směrem dolů, vytvořte záhyb a vraťte na původní místo.

6. Spodní roh papíru přeložte směrem nahoru za současného stlačení krajních klapek papíru směrem k ose modelu. Vytvořte přehyb.

7. Otočte opět model na druhou stranu a opakujte bod 4 až 6.

8. Ohněte horní klapky směrem ke středové ose modelu.

9. Opakujte stejný postup i na druhé straně modelu.

10. Ohněte obě „nohy“ směrem nahoru, vytvořte záhyb a vraťte do původní podoby.

11. Již zmíněné „nohy“ inverzně ohněte směrem dovnitř do modelu přes záhyb, který jste vytvořili v minulém bodě.

12. Jednu z „noh“ ve čtvrtině opět otočte inverzně směrem dolů, tato část bude tvořit hlavu, následně sklopte dolů části, které budou tvořit křídla.

13. Model origami je hotový.


Grafický zápis:


Definice programování


Pokud využijeme jeden nebo druhý postup, vždy docílíme stejného výstupu, v našem případě by se vždy jednalo o model jeřába, pokud bychom si daný postup zapamatovali a při dalším pokusu se již spoléhali sami na sebe, dalo by se tvrdit, že již aplikujeme algoritmus. Jediným rozdílem mezi oběma postupy je pouze způsob jakým dané instrukce zpracováváme a to nás přivádí k programování. Programování se dá definovat jako proces zahrnující činnosti od návrhu algoritmu, psaní, testování a ladění zdrojových kódů programů. Pokud bychom výše uvedené zápisy tvorby origami převedli do formátu, který by byl našemu počítači srozumitelný, jednalo by se o proces programování.

Klíčem a současně první překážkou, na kterou při programování narazíme, je ta, že pro účinnou spolupráci s naším počítačem jsme odkázáni na abstraktní formu komunikace, která může mít podobu libovolných programovacích jazyků, jako například JavaScript, Python nebo C++. Pokud by se nám podařilo sepsat opakovatelnou sadu instrukcí jako v případě postupu vytvoření japonského origami a najít vhodný programovací jazyk, kterému by náš počítač rozuměl, tak bychom byli jen krůček od toho naučit náš počítač skládat tradiční model origami jeřába nebo dokonce celou řadu jeřábů, kteří by se mohli vzájemně odlišovat například velikostí nebo barvou. To je síla programování – počítač bude opakovaně a neprodleně vykonávat zadané úkoly, bez chybovosti lidského faktoru.

Definice vizuálního programování


Pokud byste byli pověřeni úkolem sepsat návod na poskládání origami jeřába, jak byste pokračovali? Vytvořili byste daný návod grafickou nebo textovou formou, nebo nějakou kombinací obou dvou?

Pokud jste odpověděli, že grafickou formou, tak přesně pro Vás je vizuální programování určené. Proces sestavování jednotlivých instrukcí by byl pro klasické programování tak i pro vizuální programování stejný. Oba by využívaly stejný rámec formalizace, nicméně při vizuálním programování by se instrukce zadávaly prostřednictvím grafického („vizuálního“) uživatelského rozhraní. Namísto zadávání textu pro vázání syntaxe, by se využilo spojování předpřipravených uzlů dohromady.

Zde je ukázáno srovnání stejného algoritmu "draw a circle through a point" naprogramovaný prostřednictvím spojování uzlů versus klasického kódu:

Vizuální programování:














Textové programování:

myPoint = Point.ByCoordinates(0.0,0.0,0.0);
x = 5.6;
y = 11.5;
attractorPoint = Point.ByCoordinates(x,y,0.0);
dist = myPoint.DistanceTo(attractorPoint);
myCircle = Circle.ByCenterPointRadius(myPoint,dist);



Výsledek algoritmu:
















Tento charakter programování snižuje překážky vstupu do odvětví jako je architektura a design a nese sebou neomezené možnosti návrhu.

Co je DYNAMO?


DYNAMO je open-source aplikace, kterou lze stáhnout a spustit jako plug-in například pro programy Autodesk REVIT a MAYA. Je koncipována jako vizuální programovací nástroj, který si klade za cíl být nápomocný jak profesionálním programátorům, tak i početné skupině ne-programátorů, jako jsou například architekti či stavební inženýři.

Na co se můžeme těšit příště?


V tomto článku jsme si přiblížili vizuální programování jako takové a příště bychom se podívali blíže na samostatnou aplikaci DYNAMO, popsali bychom si její interface a základní pilíře aplikace, kterými jsou jednotlivé uzly.


Plug-in pro REVIT si můžete stáhnout ZDE.

DYNAMO v akci:

Žádné komentáře:

Okomentovat