AEC Design | Usprawnienie projektowania poprzez programowanie wizualne
Oprogramowanie do projektowania w standardowej funkcjonalności posiada wiele ograniczeń. Aby rozszerzyć możliwości programu musimy zainwestować w dodatkowe nakładki lub programistów. W profesjonalnych systemach do projektowania odnajdziemy jednak coraz częściej moduły, które pozwolą na programowanie w przyjazny dla projektantów sposób – programowanie wizualne.
Wiele przykładów stosowania takich modułów dotyczy projektowania generatywnego, tworzenia bardzo trudnych złożonych form geometrycznych, czyli tych, które są wykorzystywane przez architektów. Mogą być one użyteczne w każdej branży w całym cyklu projektowania. Wykorzystując możliwości przetwarzania danych można znacząco usprawnić obliczenia i stworzyć nowe procesy projektowania.
W kilku poniższych przykładach przedstawione zostanie kilka pomysłów wykorzystania modułu programowania wizualnego w branży mechanicznej. Większość z tych przykładów można zrealizować w standardowej wersji Dynamo, lecz by uprościć skrypty należy wykorzystać dodatkowe pakiety węzłów:
- DynamoMEP, Simon Moreau,
- Grimshaw, Konrad K. Sobon,
- SteamNodes, Julien Benoit.
Rozwiązanie proponowane przez AEC Design to Dynamo. Jest to aplikacja typu OpenSource, do której można doinstalowywać dodatkowe pakiety, wykorzystując opcję „Search for Packages” (rys.1). Testowanie takich skryptów warto przeprowadzić na mniejszym pliku, zanim użyje się ich na dużym projekcie. Warto też włączyć go w tryb Manual, co spowoduje, że skrypt nie będzie automatycznie uruchamiany.
POŁĄCZENIE POMIESZCZEŃ Z PRZESTRZENIAMI
Pomieszczenia i przestrzenie są podstawowymi obiektami, które wykorzystuje się w procesie projektowania. Instalator, otrzymując podkład od architekta, musi przekonwertować pomieszczenia na odpowiednie przestrzenie instalacyjne, odczytując z nich zarówno numer, nazwę, jak i atrybuty dodatkowe. Można oczywiście wykorzystać opcje wstawiania przestrzeni automatycznie, lecz to prowadzi do wielu niespójności, czyli może powstać dużo więcej przestrzeni (szachty, szczeliny), dla których nie ma pomieszczenia w architekturze. Aby usprawnić ten proces dobrze wykorzystać kilka prostych węzłów, które spowodują, że dla każdego pomieszczenia powstanie odpowiednia przestrzeń. Procedura bazuje na tym, że pobierane są pomieszczenia z podłączonego modelu architekta i wykorzystywane są do utworzenia identycznych przestrzeni za pomocą węzła Space.ByPoint (z pakietu DynamoMEP). (rys.2).
Można również przetworzyć odpowiednie dla nich wartości parametrów wykorzystując węzeł Element.SetParameterByName. (rys.3). W momencie, gdy w modelu architekta dokonane zostaną zmiany pomieszczeń, będzie możliwość automatycznie uaktualniać przestrzenie instalacyjne.
INTEGRACJA Z EXCEL
Jednym z kluczowych usprawnień może być połączenie z bazą danych Excel. Inżynier będzie mógł na przykład przypisać do przestrzeni MEP odpowiednie wartości przepływu powietrza, zapisane w arkuszu Excel. Integrację taką zaczynamy od określenia ścieżki dostępu do pliku XLS wykorzystując węzeł Excel.ReadFromFile. Węzeł ten odczytuje linia po linii całą zawartość pliku Excel. Usuwamy pierwszy wiersz, nagłówki kolumn – List.RestOfItems – i przekształcamy wiersze na kolumny wykorzystując węzeł Transpose. Dzięki temu każda lista w Dynamo reprezentuje kolumnę w Excelu.
Aby uzupełnić parametr przepływu powietrza w przestrzeniach musimy powiązać ich numery z numerami w Excelu. Rozpoczynamy od odczytania wszystkich przestrzeni (All Elements of Category) i ich numerów (GetParameterValueByName). Węzeł List.FirstItemOf daje nam numer wiersza każdego numeru przestrzeni w arkuszu Excel. Dla każdej przestrzeni MEP w modelu mamy zatem odpowiadający numer w Excelu. Wykorzystując węzeł List.GetItemAtIndex pobierzemy wymagane wartości przepływu z Excela. Przed wpisaniem ich do przestrzeni (Element.SetParameterByName), musimy zadbać o odpowiednią konwersję jednostek. Ten przykład pokazuje to, jak przenieść tylko jeden parametr do modelu przestrzeni, ale oczywiście możemy to rozszerzyć o dowolne dane, które mogą dotyczyć przestrzeni.
PRZENIESIENIE WARTOŚCI PRZEPŁYWU W PRZESTRZENI NA ZNAJDUJĄCE SIĘ W NIEJ NAWIEWNIKI
Kolejny przykład usprawnienia dotyczy powiązania nawiewników z przestrzenią, w której się znajdują. W tym przypadku odczytamy wymagany przepływ powietrza z przestrzeni i rozdystrybuujemy jego wartość na wszystkie nawiewniki.
Rozpoczynamy od wyszukania wszystkich przestrzeni i odczytu wymaganego przepływu powietrza. Wyszukujemy również wszystkie nawiewniki i wykorzystując węzeł Space.IsInSpace, sprawdzamy czy dany nawiewnik znajduje się w odpowiedniej przestrzeni. Należy ustawić dla tego węzła opcję Cross Product, aby sprawdzić każdy nawiewnik z każdą przestrzenią. To daje nam wiele list z informacją w formie Prawda, Fałsz odnośnie danego nawiewnika - czy jest, czy też nie w danej przestrzeni. Wykorzystując kombinacje węzłów List.AllIndiceOf oraz List.GetItemAtIdex, znajdujemy grupy nawiewników i odpowiednie dla nich przestrzenie. Na koniec sumujemy grupy nawiewników w danej przestrzeni i wykorzystujemy te wartości, aby podzielić wymagany przepływ powietrza. Węzeł List.OfRepetedItem daje nam w rezultacie wystąpienie przepływów powietrza dla każdego nawiewnika. Na zakończenie wpisujemy te wartości do nawiewników w modelu stosując węzeł Element.SetParameterBy.
W momencie zmiany wymaganego przepływu powietrza w przestrzeni wartości te będą podzielone przez liczbę nawiewników w danej przestrzeni i uaktualniony zostanie przepływ powietrza na nawiewnikach.
PODSUMOWANIE
Zaprezentowane przykłady pokazują jak wykorzystać moduł do programowania wizualnego, aby usprawnić obliczenia. Dzięki niemu aplikacja BIM - Revit staje się narzędziem nie tylko do modelowania, lecz daje dużo większe możliwości projektantom.
Autor:
Wojciech Kozłowski
Inżynier BIM AEC Design