„Witryna wiki pozwala dowiedzieć się więcej na temat opracowywania rozwiązań za pomocą interfejsu API dodatku Dynamo, obsługi bibliotek i narzędzi”.
https://github.com/DynamoDS/Dynamo/wiki
Ten blog jest najbardziej aktualnym zbiorem artykułów przygotowanych przez zespół dodatku Dynamo z omówieniami nowych funkcji, procesów roboczych i wszystkiego, co jest związane z dodatkiem Dynamo.
Języki programowania są tworzone w celu wyrażania pomysłów, zazwyczaj za pomocą logiki i obliczeń. Oprócz tego język tekstowy dodatku Dynamo (dawniej: DesignScript) został utworzony w celu wyrażania zamiarów projektowych. Ogólnie rzecz biorąc, projektowanie obliczeniowe ma charakter badawczy, a dodatek Dynamo ma wspierać tego typu pracę. Mamy nadzieję, że ten język okaże się elastyczny i wystarczająco szybki, aby umożliwić projektowanie od koncepcji, przez iteracje projektowe aż do formy ostatecznej. Ten podręcznik ma strukturę zapewniającą użytkownikowi bez jakiejkolwiek wiedzy o programowaniu i geometrii architektonicznej pełną ekspozycję na różne tematy z tych dwóch krzyżujących się dziedzin.
http://dynamobim.org/wp-content/links/DesignScriptGuide.pdf
Przewodnik Dynamo Primer to projekt typu open source zainicjowany przez Matta Jezyka i zespół programistów dodatku Dynamo w firmie Autodesk. Pierwsza wersja przewodnika została opracowana przez Mode Lab. Aby dołączyć do jego współtwórców, dodaj swoją zawartość i wyślij zgłoszenie.
https://github.com/DynamoDS/DynamoPrimer
Na tej stronie przedstawiono proces tworzenia niestandardowego węzła Dynamo w języku C# za pomocą interfejsu „Zero Touch”. W większości przypadków statyczne metody i klasy języka C# można importować bez modyfikacji. Jeśli biblioteka musi tylko wywoływać funkcje, a nie trzeba tworzyć nowych obiektów, można to łatwo osiągnąć za pomocą metod statycznych. Gdy dodatek Dynamo wczytuje plik DLL, usuwa przestrzenie nazw klas i ujawnia wszystkie metody statyczne jako węzły.
https://github.com/DynamoDS/Dynamo/wiki/Zero-Touch-Plugin-Development
Python jest interpretowanym, interaktywnym i obiektowym językiem programowania. Obejmuje moduły, wyjątki, typowanie dynamiczne, dynamiczne typy danych bardzo wysokiego poziomu i klasy. Język Python łączy niezwykłe możliwości z bardzo przejrzystą składnią. Zapewnia interfejsy do wielu wywołań systemowych i bibliotek, jak również do różnych systemów okien. Można go też rozszerzać za pomocą języków C i C++. Można go również używać jako języka rozszerzeń dla aplikacji, które wymagają interfejsu programowalnego. Jest też przenośny: działa na wielu różnych wariantach systemu Unix, na komputerach Mac oraz w systemach Windows 2000 i nowszych. Przewodnik języka Python dla początkującego użytkownika zawiera łącza do innych wprowadzających przewodników i materiałów do nauki tego języka.
https://www.python.org/about/gettingstarted
AForge.NET jest platformą języka C# typu open source przeznaczoną dla programistów i badaczy zajmujących się przetwarzaniem obrazów i sztuczną inteligencją — przetwarzaniem grafiki, sieciami neuronowymi, algorytmami genetycznymi, logiką rozmytą, uczeniem maszynowym, robotyką itd.
http://www.aforgenet.com/framework/
MathWorld to internetowe materiały matematyczne zebrane przez Erica W. Weissteina z pomocą tysięcy osób. Od czasu pierwszej publikacji tej zawartości online w 1995 roku serwis MathWorld stał się centrum informacji matematycznych dla społeczności matematycznych i edukacyjnych. Do pozycji w tym serwisie szeroko odwołują się książki i czasopisma na wszelkich poziomach edukacyjnych.
„Te wpisy dotyczą głównie platformy Revit — zawierają zalecenia dotyczące jej używania”.
„Ten notes ma stanowić uzupełnienie pewnych braków w materiałach dotyczących nauki i stosowania interfejsu API programu Revit w kontekście procesu roboczego projektowania”
http://wiki.theprovingground.org/revit-api
„Powłoka RevitPythonShell dodaje tłumacza IronPython do programów Autodesk Revit i Vasari”. Ten projekt jest starszy niż dodatek Dynamo i stanowi doskonałe źródło dotyczące programowania w języku Python. Projekt RPS:
https://github.com/architecture-building-systems/revitpythonshell
Blog dla programistów:
http://darenatwork.blogspot.com/
Obszerny katalog procesów roboczych interfejsu API programu Revit od jednego z najlepszych ekspertów w dziedzinie BIM.
Oto lista niektórych pakietów popularnych w społeczności Dynamo. Zachęcamy programistów do poszerzania tej listy. Warto pamiętać, że przewodnik to rozwiązanie open source.
Pakiet archi-lab to kolekcja ponad 50 pakietów niestandardowych, które znacznie zwiększają możliwości dodatku Dynamo w zakresie interakcji z programem Revit. Węzły zawarte w pakiecie archi-lab są zróżnicowane: od podstawowych operacji na listach po zaawansowane struktury wizualizacji analiz dla programu Revit. Składnik archi-lab jest dostępny w Menedżerze pakietów. |
BimorphNodes jest uniwersalnym zbiorem zaawansowanych węzłów narzędziowych. Godne uwagi składniki pakietu to m.in. ultrawydajne węzły wykrywania kolizji oraz przecinania się geometrii, węzły konwersji krzywych ImportInstance (CAD) i kolektory elementów połączonych, które eliminują ograniczenia w interfejsie API programu Revit. Aby dowiedzieć się więcej na temat pełnego zakresu dostępnych węzłów, odwiedź słownik BimorphNodes. Składnik BimorphNodes jest dostępny w Menedżerze pakietów. |
Bumblebee to wtyczka zapewniająca współdziałanie programu Excel i dodatku Dynamo, która znacznie zwiększa możliwości dodatku Dynamo w zakresie odczytywania i zapisywania plików programu Excel. |
Clockwork jest zbiorem węzłów niestandardowych dla środowiska programowania wizualnego dodatku Dynamo. Zawiera wiele węzłów związanych z programem Revit, ale również wiele węzłów do różnych innych celów, takich jak zarządzanie listami, operacje matematyczne, operacje na ciągach, przeliczanie jednostek, operacje geometryczne (dotyczące głównie ramek ograniczających, siatek, płaszczyzn, punktów, powierzchni, UV i wektorów) oraz panelowanie. |
DataShapes jest pakietem, który ma na celu rozszerzenie funkcjonalności skryptów Dynamo dla użytkownika. Szczególnie skupiono się na zwiększeniu funkcjonalności Odtwarzacza Dynamo. Aby uzyskać więcej informacji, odwiedź stronę https://data-shapes.net/. Chcesz tworzyć wspaniałe procesy robocze Odtwarzacza Dynamo? Użyj tego pakietu. |
DynamoSAP to parametryczny interfejs dla SAP2000 oparty na dodatku Dynamo. Ten projekt umożliwia projektantom i inżynierom generatywne tworzenie i analizowanie systemów konstrukcyjnych w systemie SAP przy zastosowaniu dodatku Dynamo do sterowania modelem SAP. Projekt przewiduje kilka typowych procesów roboczych, które opisano w dołączonych plikach przykładowych, oraz zapewnia szeroki zakres możliwości automatyzacji typowych zadań w systemie SAP. |
Ta biblioteka rozszerza funkcjonalność dodatku Dynamo/programu Revit, umożliwiając użytkownikom rozwijanie geometrii powierzchni i polipowierzchni. Biblioteka umożliwia użytkownikom najpierw przekształcenie powierzchni w posegmentowaną topologię płaską, a następnie rozwinięcie ich w dodatku Dynamo za pomocą narzędzi protogeometrii. Ten pakiet zawiera także kilka węzłów eksperymentalnych oraz kilka podstawowych plików przykładowych. |
Importuj grafikę wektorową z programu Illustrator lub Internetu za pomocą formatu .svg. Ten składnik umożliwia importowanie ręcznie utworzonych rysunków do dodatku Dynamo na potrzeby operacji parametrycznych. |
Pakiet Energy Analysis for Dynamo umożliwia parametryczne modelowanie zużycia energii i obsługę procesów roboczych analizy energetycznej całego budynku w dodatku Dynamo 0.8. Pakiet Energy Analysis for Dynamo umożliwia użytkownikowi skonfigurowanie modelu energetycznego z programu Autodesk Revit, przesłanie go do programu Green Building Studio na potrzeby analizy energetycznej DOE2 i przeanalizowanie zwróconych wyników. Twórcą pakietu jest CORE studio należące do Thornton Tomasetti. |
Firefly to zbiór węzłów, które umożliwiają dodatkowi Dynamo komunikowanie się z urządzeniami wejściowymi/wyjściowymi, takimi jak mikrokontroler Arduino. Dzięki temu, że przepływ danych odbywa się „na żywo”, Firefly zapewnia wiele możliwości interaktywnego prototypowania pomiędzy światami cyfrowym a fizycznym poprzez kamery internetowe, telefony komórkowe, kontrolery gier, czujniki i nie tylko. |
Genius Loci jest kompilacją węzłów dla dodatku Dynamo. Składa się z węzłów przydatnych użytkownikom programu Revit. Zainstaluj pakiet, aby poznać niektóre jego funkcje, takie jak łatwa interakcja z połączonymi plikami i dokumentami programu Revit. |
Mantis Shrimp to projekt interoperacyjności, który umożliwia łatwe importowanie geometrii Grasshopper i/lub Rhino do programu Dynamo. |
Zestaw Dynamo Mesh Toolkit zawiera wiele użytecznych narzędzi do pracy z geometrią siatki. Funkcje tego pakietu obejmują możliwość importowania siatek z zewnętrznych formatów plików, generowania siatek z już istniejących obiektów geometrii dodatku Dynamo oraz ręcznego tworzenia siatek na podstawie wierzchołków i informacji o połączeniach. Ponadto ten zestaw zawiera narzędzia do modyfikowania i naprawiania geometrii siatki. |
🧐 MONOCLE |
Monocle to rozszerzenie View Extension for Dynamo 2.0.x. Rozszerzenie Monocle zawiera zestaw przydatnych narzędzi do identyfikacji pakietów, czyszczenia wykresów i innych zastosowań. Celem zespołu Monocle jest dodawanie funkcji do interfejsu użytkownika dodatku Dynamo w tak płynny sposób, aby wywołać wrażenie, że są one wbudowane w dodatek Dynamo. Składnik Monocle jest dostępny w Menedżerze pakietów. |
Pakiet Optimo pozwala użytkownikom dodatku Dynamo optymalizować samodzielnie zdefiniowane problemy projektowe za pomocą różnych algorytmów ewolucyjnych. Użytkownicy mogą zdefiniować cel związany z problemem lub zestaw celów, jak również określone funkcje dopasowania. |
Biblioteka węzłów Rhynamo zapewnia użytkownikom możliwość odczytywania i zapisywania plików Rhino 3DM z poziomu dodatku Dynamo. Pakiet Rhynamo przekształca geometrię Rhino w możliwą do wykorzystania geometrię dodatku Dynamo za pomocą biblioteki McNeel OpenNURBS, umożliwiając obsługę nowych procesów roboczych uwzględniających płynną wymianę geometrii i danych między programami Rhino i Revit. Pakiet ten zawiera także węzły eksperymentalne umożliwiające dostęp „na żywo” do wiersza polecenia Rhino. |
Rhythm to zestaw przydatnych węzłów, które pomagają w zachowaniu dobrego rytmu projektu programu Revit w dodatku Dynamo. Zapewnia wiele przydatnych funkcji. Rhythm jest oprogramowaniem typu open source, opracowanym w języku C#. Dodaje do dodatku Dynamo węzły programu Revit, węzły podstawowe i rozszerzenie widoku. Składnik Rhythm jest dostępny w Menedżerze pakietów. |
Głównym zadaniem węzłów Spring jest poprawienie interakcji dodatku Dynamo z programem Revit. Dodatkowym celem jest badanie wszystkich możliwości pomocnych w przyspieszeniu procesów roboczych związanych z modelowaniem informacji o budynku (BIM). W wielu węzłach korzysta się z języka IronPython lub DesignScript, więc mogą one być dobrym punktem wyjścia do poznania konkretnej składni i zawiłości tych języków. Pakiet węzłów Spring jest dostępny w Menedżerze pakietów. |
W tej sekcji można znaleźć dodatkowe zasoby do doskonalenia umiejętności związanych z dodatkiem Dynamo. W tym przewodniku udostępniliśmy również indeks ważnych węzłów, kolekcję użytecznych pakietów i repozytorium plików przykładowych. Zachęcamy do swobodnego rozbudowywania tej sekcji. Warto pamiętać, że przewodnik Dynamo Primer jest zasobem typu open source.
ARCHI-LAB
BIMORPH NODES
BUMBLEBEE FOR DYNAMO
CLOCKWORK FOR DYNAMO
DATA|SHAPES
DYNAMO SAP
DYNAMO UNFOLD
DYNASTRATOR
ENERGY ANALYSIS FOR DYNAMO
FIREFLY FOR DYNAMO
GENIUS LOCI
MANTIS SHRIMP
MESH TOOLKIT
OPTIMO
RHYNAMO
RHYTHM
Węzły Spring
Często projektowanie obejmuje ustanowienie wizualnych, systemowych lub geometrycznych zależności między częściami projektu. Zazwyczaj te zależności są opracowywane w ramach procesów roboczych, które pozwalają przejść od koncepcji do wyników za pomocą reguł. Często nieświadomie pracujemy algorytmicznie: definiujemy szczegółowy zestaw operacji, które są wykonywane na podstawie podstawowego układu logicznego obejmującego dane wejściowe, przetwarzanie i dane wyjściowe. Programowanie pozwala nam kontynuować pracę w ten sposób, ale poprzez sformalizowanie algorytmów.
Termin algorytm przedstawia olbrzymie możliwości, ale często jest błędnie rozumiany. Algorytmy mogą generować nieoczekiwane, przedziwne, a nawet niesamowite wyniki, ale nie są magicznym rozwiązaniem. W rzeczywistości same w sobie są całkiem proste. Przyjrzyjmy się namacalnemu przykładowi: żurawiowi origami. Rozpoczynamy od kwadratowego arkusza papieru (wejście), wykonujemy szereg zagięć (operacje przetwarzania) i otrzymujemy żurawia (wyjście).
Gdzie tu jest algorytm? Stanowi on abstrakcyjny zestaw kroków, które możemy przedstawić na kilka sposobów — w sposób tekstowy lub graficzny.
Instrukcje tekstowe:
Zacznij od kwadratowego arkusza papieru, ułożonego kolorową stroną do góry. Zagnij go na pół i otwórz. Następnie zagnij go na pół wzdłuż drugiej przekątnej.
Obróć arkusz na białą stronę. Zagnij arkusz na pół, dociśnij zgięcie i otwórz, a następnie zagnij arkusz ponownie w drugim kierunku.
Używając utworzonych zagięć, połącz trzy górne rogi modelu z dolnym rogiem. Spłaszcz model.
Zagnij górne trójkątne skrzydła do środka i rozwiń je.
Zawiń górną część modelu w dół, dociśnij zagięcie i rozwiń je.
Otwórz górne skrzydło modelu, jednocześnie odchylając je do góry i przyciskając boki modelu do wewnątrz. Spłaszcz model i dociśnij.
Obróć model i powtórz kroki 4–6 po drugiej stronie.
Zagnij górne skrzydła do środka.
Powtórz to po drugiej stronie.
Zagnij obie „nogi” modelu w górę, dobrze dociśnij zagięcie, a następnie rozwiń je.
Zagnij te „nogi” do wewnątrz wzdłuż zagięć zrobionych przed chwilą.
Po jednej stronie zrób zagięcie do wewnątrz, aby zrobić łeb, a następnie zawiń skrzydła w dół.
Żuraw gotowy.
Instrukcje graficzne:
Użycie jednego z tych zestawów instrukcji powinno umożliwić zrobienie żurawia, a osoba postępująca zgodnie z nimi stosuje algorytm. Jedyną różnicą jest sposób, w jaki odczytuje się formalizację zestawu instrukcji, co prowadzi do pojęcia programowania. Programowanie, często skrótowo nazywane programowaniem komputerowym, to sformalizowanie przetwarzania serii operacji w wykonywalny program. Jeśli zmienimy powyższe instrukcje tworzenia żurawi w format, który komputer może odczytać i uruchomić — programujemy.
Kluczem do pierwszego wyzwania związanego z programowaniem jest to, że trzeba polegać na jakiejś formie abstrakcji, aby skutecznie komunikować się z komputerem. Przybiera to postać różnych języków programowania, takich jak JavaScript, Python lub C. Jeśli można napisać powtarzalny zestaw instrukcji, tak jak w przypadku żurawia origami, wystarczy tylko przetłumaczyć je dla komputera. Możemy umożliwić komputerowi utworzenie żurawia lub nawet wielu różnych żurawi różniących się tylko odrobinę między sobą. Na tym polega siła programowania — komputer wielokrotnie wykonuje dowolne przypisane mu przez nas zadanie lub zestaw zadań bezzwłocznie i bez błędów popełnianych przez ludzi.
Definicja programowania wizualnego
Pobierz plik przykładowy, klikając poniższe łącze.
Pełna lista plików przykładowych znajduje się w załączniku.
Poproszono Cię o instrukcje składania żurawia origami. Jak do tego przystąpisz? Utworzysz je za pomocą grafiki, tekstu czy połączenia tych dwóch metod?
Jeśli Twoja odpowiedź obejmowała zastosowanie grafiki, programowanie wizualne to dla Ciebie idealna metoda. Proces ten jest zasadniczo taki sam zarówno dla programowania, jak i dla programowania wizualnego. Wykorzystuje się tę samą strukturę formalizacji. Jednak instrukcje i zależności w programie definiuje się za pomocą graficznego (lub wizualnego) interfejsu użytkownika. Zamiast wpisywać tekst ograniczony składnią, łączy się ze sobą wstępnie spakowane węzły. Oto porównanie tego samego algorytmu — „rysowanie okręgu przez punkt” — zaprogramowanego za pomocą węzłów i za pomocą kodu:
Program wizualny:
Program tekstowy:
Wyniki algorytmu:
Wizualność programowania w taki sposób ułatwia rozpoczęcie korzystania z niego i często przemawia do projektantów. Dodatek Dynamo służy do programowania wizualnego, ale jak przekonamy się później, nadal umożliwia programowanie tekstowe w aplikacji.