Wspomniałem w mojej relacji z CADMAT 2014 o interesującym zagadnieniu modelowania poprzez programowanie wizualne. Zanim wytłumaczę czym jest, odwołam się do znanej zapewne każdemu, kto parędziesiąt lat temu był dzieckiem, zabawki edukacyjnej, w której należało połączyć kabelkiem pytanie i odpowiedź wydrukowane na zaopatrzonych w gniazda kartach. O prawidłowym połączeniu informowała zapalająca się lampka. Wyobraźmy sobie teraz, że wydrukowane pytanie z planszy zastąpimy pytaniem, które projektantowi zadaje komputer, np. „podaj współrzędne punktu”, niech odpowiedzią na nie będzie generator dwóch lub trzech współrzędnych uruchamiany dla kolejnych punktów, współrzędne zaś niech opisuje funkcja. Połączmy pytanie z odpowiedzią linią, która będzie nosić nazwę zależności. Stworzyliśmy właśnie instrukcję, a właściwie zaprogramowaliśmy ją. Potrzebujemy jeszcze narzędzia, które taką instrukcję obsłuży i wygeneruje na ekranie ciąg punktów odpowiednio rozmieszczonych w przestrzeni. Pojawienie się punktów na ekranie to odpowiednik świecącej się lampki we wspomnianej zabawce.
Tak właśnie działa programowanie wizualne. Nie wpisujemy kodu, nie używamy odpowiedniej składni, wciąż pilnując, by była zgodna z wybranym przez nas językiem programowania. Nic z tych rzeczy. Czerpiemy po prostu z zestawu kontrolek i modułów wykonawczych, łączymy je z sobą, a efekt działania obserwujemy na ekranie. Czy tylko w postaci chmury punktów? Oczywiście nie, możemy z powodzeniem wyświetlać odcinki, krzywe, płaszczyzny, bryły… belki, słupy, panele ścienne itd. Możemy po prostu w ten sposób modelować, chociażby bryłę architektoniczną bądź konstrukcję budynku.
Tak zautomatyzowane projektowanie parametryczne pozwala uniknąć powtarzalnych działań manualnych w programie do modelowania, wystarczy tylko zaopatrzyć taki program w odpowiednią nakładkę i za jej pośrednictwem wprowadzić odpowiednie instrukcje metodą wizualną. Początkowo programem, w którym testowano takie rozwiązanie był Rhinoceros, wzbogacony o nakładkę Grasshopper (http://www.grasshopper3d.com/ ) wciąż rozwijaną staraniem wielu programistów jako inicjatywa open source. Wśród osób stosujących na co dzień ten sposób modelowania przeważają architekci oraz projektanci zajmujący się wzornictwem przemysłowym.
Po jakimś czasie pomysł ten, prawie dosłownie, odwzorowano i zaimplementowano w REVIT-cie, tworząc platformę o nazwie Vasari – Dynamo Visual Programing for BIM ( http://autodeskvasari.com/dynamo ).
No właśnie, proszę zwrócić uwagę na to, jak jednoznacznie, nawet w samej nazwie, powiązano ten pomysł z BIM. Zasadnie, w końcu tworzymy tą metodą model parametryczny 🙂
Generowane punkty mogą pełnić rolę referencyjnych, można je, rozbudowując diagram programu, uzupełnić o linie krzywe albo odcinki, a nawet na ich bazie wprowadzić płaszczyzny, powłoki, bryły.
Ze względu na matematyczne opisanie programowanych kształtów rozwiązanie to zapewnia bardzo dużą precyzję. Każdy kolejny moduł-komenda łączony jest zależnościami (wpinany) w inny komponent-komendę. Cały czas mamy możliwość śledzenia efektu działania poszczególnych komend lub ich grupy. Co oczywiste, im bardziej złożona bryła, tym bardziej skomplikowany diagram, czasem tak „poplątany”, że od wpatrywania się w niego można dostać zawrotów głowy 😉 Szereg rozwiązań wspomagających programującego modelarza zapobiega na szczęście zagubieniu się w gąszczu zależności skomplikowanych siatek powiązań.
Wśród dostępnych komend w Vasari są i takie, które pozwalają wyświetlić np. słupy. Ich konfiguracja pozwala określić nie tylko położenie elementu konstrukcyjnego, ale przede wszystkim umożliwia nadanie mu kształtu innego niż prostoliniowy przez narzucenie deformacji. Model wytworzony takim sposobem jest nie tylko parametryczny ale także dynamiczny. Zmiana w skrypcie, dodanie nowego modułu lub poprawka wprowadzona do już istniejącego komponentu sterującego modelowaniem znajduje natychmiastowe odzwierciedlenie w wyglądzie tworzonego modelu. Można operować komponentami bibliotecznymi REVIT-a, np. adaptacyjnymi panelami ściennymi, które po umieszczeniu w konkretnym polu elewacji budynku dostosuje swój kształt do krzywizny ściany w miejscu zamocowania.
Podsumujmy: mamy do dyspozycji narzędzie pozwalające modelować w sposób odmienny niż odbywa się to w typowych programach do tego przeznaczonych, bazujące na zautomatyzowanym przetwarzaniu diagramów, będących w istocie samodzielnymi programami skonstruowanymi z gotowych modułów. Nie wymaga to więc znajomości języka programowania. Efektem działania takiego skryptu są dokładnie odwzorowujące matematyczny wzorzec bryły, powierzchnie, grupy punktów referencyjnych, a zmiana w modelu, nawet obejmująca znaczną jego część, odbywa się błyskawicznie, natychmiast po wprowadzeniu zmian do skryptu. Ponieważ modelowanie odbywa się w środowisku REVIT-a, wynikowy model może być przesłany do dowolnego programu w celu dalszej obróbki, analizy, detalowania.
Na zakończenie kilka wymownych przykładów zastosowania programowania wizualnego w modelowaniu. Niech przemówią obrazy (po więcej odsyłam do internetu).
Artur Doliński
www.BIMklaster.org.pl
jak to sie fajnie wszystko zazebia.
ok 10 lat temu programujac komputery zajmowalem sie diagramami uml w podobny, wizualny sposob, zas kilka lat temu oprogramowanie do animacji dolaczylo w profesjonalnych wersjach moduly wizualne (n.p. tu: https://www.toonboom.com/resources/tips-and-tricks/rigging-animated-characters).
dla architektury mamy tez cos: http://www.youtube.com/watch?v=_chzYBObTYQ
i niech mi teraz ktos powie, ze architekci czy projektanci branzowi nie powinni liznac takze innej wiedzy i umiejetnosci niz tylko liczenie, rysowanie i projektowanie.
poniewaz zreszta moduly maja za podloze scripting, wiec bedzie to przynajmniej takie odciazenie, ze nie bedzie trzeba az tyle programowac 😉
nadchodza ciekawe czasy 🙂