Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Mimo że dodatek Dynamo opracowano pierwotnie z myślą o programie Revit, jego uniwersalność jako narzędzia do programowania wizualnego wykracza poza program Revit. Dodatek Dynamo jest również zintegrowany z programem Civil 3D, co umożliwia użytkownikom tworzenie zaawansowanych procedur automatyzacji projektów infrastruktury. Jest to niezwykle przydatne narzędzie do przetwarzania wszystkich zadań — od zadań typowych po najbardziej złożone procesy projektowe — co pozwala oszczędzać czas, optymalizować projekty i podejmować lepsze decyzje projektowe. Dodatek Dynamo oferuje cały pakiet węzłów zaprojektowany specjalnie dla programu Civil 3D, jak również biblioteki innych dostawców pochodzące z dobrze prosperującej społeczności.
W tym rozdziale przewodnika Primer skoncentrowano się na dodatku Dynamo for Civil 3D, ze stopniowym przejściem od podstaw do bardziej zaawansowanych tematów.
Z czasem może okazać się konieczne wyjście poza podstawy i dokładniejsze zapoznanie się z działaniem dodatku Dynamo. Strony w tej sekcji pozwalają zapoznać się z zaawansowanymi funkcjami w dodatku Dynamo for Civil 3D, dzięki którym można przenieść wykresy na wyższy poziom.
Po zapoznaniu się z ogólnymi informacjami przejdźmy do konkretów i zbudujmy pierwszy wykres dodatku Dynamo w programie Civil 3D.
Jest to prosty przykład, za pomocą którego zademonstrujemy podstawowe funkcje dodatku Dynamo. Zaleca się, aby wykonywać te czynności w nowym pustym dokumencie programu Civil 3D.
Najpierw należy otworzyć pusty dokument w programie Civil 3D. Po otwarciu go przejdź do karty Zarządzaj na wstążce programu Civil 3D i wyszukaj panel Programowanie wizualne.
Kliknij przycisk Dynamo. Spowoduje to uruchomienie dodatku Dynamo w osobnym oknie.
Jaka jest różnica między dodatkiem Dynamo a Odtwarzaczem Dynamo?
Dodatek Dynamo to narzędzie używane do tworzenia i uruchamiania wykresów. Odtwarzacz Dynamo to prosty mechanizm do uruchamiania wykresów bez konieczności otwierania ich w dodatku Dynamo.
Przejdź do sekcji Odtwarzacz Dynamo (Dynamo Player), aby wypróbować tę funkcję.
Po otwarciu dodatku Dynamo zostanie wyświetlony ekran startowy. Kliknij przycisk Nowy, aby otworzyć pusty obszar roboczy.
Co z przykładami?
Dodatek Dynamo for Civil 3D zawiera kilka wstępnie utworzonych wykresów, z których można czerpać pomysły na korzystanie z dodatku Dynamo. Zalecamy przyjrzenie się nim w dogodnym momencie, a także zapoznanie się z sekcją Przykładowe procesy robocze w tym przewodniku Primer.
Powinien być teraz widoczny pusty obszar roboczy. Przyjrzyjmy się dodatkowi Dynamo w działaniu. Oto nasz cel:
Dosyć proste, prawda? Ale zanim zaczniemy, musimy omówić kilka podstawowych kwestii.
Podstawowe elementy wykresu Dynamo są nazywane węzłami. Węzeł jest jak mała maszyna — przekazujesz do niego dane, a on wykonuje na nich jakąś pracę i zwraca wyniki. Dodatek Dynamo for Civil 3D zawiera bibliotekę węzłów, które można ze sobą łączyć za pomocą przewodów w celu utworzenia wykresu umożliwiającego wykonywanie większej liczby operacji i zapewniającego lepsze wyniki, niż mógłby zwrócić samodzielny węzeł.
Co jeśli nigdy wcześniej nie zdarzyło mi się korzystać z dodatku Dynamo?
Część z tych informacji może być dla Ciebie całkiem nowa, ale nie ma powodu do obaw. W tych sekcjach znajdziesz pomoc.
Interfejs użytkownika Węzły i przewody Podstawowe węzły i pojęcia
Utwórzmy wykres. Oto lista wszystkich węzłów, których będziemy potrzebować.
Te węzły można znaleźć, wpisując ich nazwy na pasku wyszukiwania w bibliotece lub klikając prawym przyciskiem myszy w dowolnym miejscu w obszarze rysunku i wyszukując je w tym miejscu.
Skąd wiadomo, których węzłów użyć i gdzie je znaleźć?
Węzły w bibliotece są pogrupowane w logiczne kategorie w zależności od tego, do czego służą. Bardziej szczegółową prezentację można znaleźć w sekcji Biblioteka węzłów.
Oto jak powinien wyglądać ostateczny wykres.
Podsumujmy to, co tutaj zrobiliśmy:
Wybraliśmy dokument do pracy. W tym przypadku (tak jak w wielu innych przypadkach) chcemy pracować w aktywnym dokumencie w programie Civil 3D.
Zdefiniowaliśmy blok docelowy, w którym ma zostać utworzony obiekt tekstowy (w tym przypadku obszar modelu — Model Space).
Użyliśmy węzła String, aby określić, na której warstwie powinien zostać umieszczony tekst.
Utworzyliśmy punkt za pomocą węzła Point.ByCoordinates, aby zdefiniować położenie, w którym ma zostać umieszczony tekst.
Zdefiniowaliśmy współrzędne X i Y punktu wstawienia tekstu za pomocą dwóch węzłów Number Slider.
Użyliśmy innego węzła String do zdefiniowania zawartości obiektu tekstowego (Text).
Na koniec utworzyliśmy obiekt tekstowy.
Przyjrzyjmy się wynikom tego nowego wykresu.
W programie Civil 3D upewnij się, że wybrana jest karta Model. Powinien zostać wyświetlony nowy obiekt tekstowy utworzony przez dodatek Dynamo.
Jeśli nie widzisz tekstu, może być konieczne uruchomienie polecenia ZOOM -> EXTENTS w celu powiększenia do odpowiedniego miejsca.
Świetnie! Teraz wprowadzimy pewne aktualizacje w tekście.
Wróć do wykresu Dynamo i zmień kilka wartości wejściowych, takich jak ciąg tekstowy, współrzędne punktu wstawienia itp. Tekst powinien zostać automatycznie zaktualizowany w programie Civil 3D. Zauważ też, że po odłączeniu jednego z portów wejściowych tekst zostanie usunięty. Po ponownym podłączeniu wszystkiego tekst zostanie utworzony ponownie.
Dlaczego dodatek Dynamo nie wstawia nowego obiektu tekstowego przy każdym uruchomieniu wykresu?
Domyślnie dodatek Dynamo „zapamiętuje” utworzone przez siebie obiekty. Jeśli zmienisz wartości wejściowe węzłów, obiekty w programie Civil 3D zostaną zaktualizowane, zamiast utworzenia nowych obiektów. Więcej informacji na temat tego zachowania można znaleźć w sekcji Wiązanie obiektów.
Przedstawiono tu zaledwie mały przykład tego, co można zrobić za pomocą dodatku Dynamo for Civil 3D. Czytaj dalej, aby dowiedzieć się więcej!
Projekt inżynierski typowego osiedla mieszkaniowego obejmuje pracę z kilkoma instalacjami podziemnymi, takimi jak kanalizacja sanitarna, kanalizacja burzowa, doprowadzenie wody pitnej itp. W tym przykładzie pokazano, jak za pomocą dodatku Dynamo można narysować doprowadzenia usług komunalnych z systemu dystrybucji do danej działki. Zwykle każda działka wymaga połączenia z usługami komunalnymi, co powoduje, że opracowanie wszystkich doprowadzeń usług jest żmudnym procesem. Dodatek Dynamo może przyspieszyć ten proces dzięki automatycznemu rysowaniu niezbędnej geometrii z wysoką dokładnością, jak również udostępnianiu elastycznych danych wejściowych, które można dostosować do standardów agencji lokalnej.
Zastosowanie węzła Select Object na potrzeby wprowadzania danych przez użytkownika
Praca z układami współrzędnych
Używanie operacji geometrycznych, takich jak Geometry.DistanceTo i Geometry.ClosestPointTo
Tworzenie odniesień do bloków
Sterowanie ustawieniami wiązań obiektów
Ten wykres będzie działać w programie Civil 3D 2020 i w nowszych wersjach.
Najpierw pobierz pliki przykładów poniżej, a następnie otwórz plik DWG i wykres dodatku Dynamo.
Poniżej przedstawiono przegląd logiki na tym wykresie.
Pobieranie geometrii krzywej dla systemu dystrybucji
Pobieranie geometrii krzywej dla linii działki wybranej przez użytkownika z odwróceniem w razie potrzeby
Generowanie punktów wstawiania dla mierników
Pobieranie najbliższych położeniom mierników punktów na systemie dystrybucji
Tworzenie odniesień do bloków i linii w obszarze modelu
Zacznijmy!
Pierwszym krokiem jest pobranie do dodatku Dynamo geometrii systemu dystrybucji. Zamiast wybierać pojedyncze linie lub polilinie, pobierzemy wszystkie obiekty na określonej warstwie i połączymy je w krzywą PolyCurve dodatku Dynamo.
Jeśli pierwszy raz masz do czynienia z geometrią krzywej dodatku Dynamo, skorzystaj z sekcji Krzywe.
Następnie musimy pobrać do dodatku Dynamo geometrię wybranej linii działki, aby można było z nią pracować. Właściwym narzędziem do tego zadania jest węzeł Select Object, który umożliwia użytkownikowi wykresu wybranie określonego obiektu w programie Civil 3D.
Musimy również dodać obsługę potencjalnego problemu. Linia działki ma punkt początkowy i punkt końcowy, co oznacza, że ma kierunek. Aby wykres mógł dawać spójne wyniki, wszystkie linie działki muszą mieć spójny kierunek. Warunek ten można uwzględnić bezpośrednio w logice wykresu, co zwiększy niezawodność wykresu.
Pobierz punkt początkowy i punkt końcowy linii działki.
Zmierz odległość od każdego punktu do systemu dystrybucji, a następnie określ, która odległość jest większa.
Żądanym wynikiem jest sytuacja, w której to punkt początkowy linii znajduje się najbliżej systemu dystrybucji. Jeśli tak nie jest, kierunek linii działki zostanie odwrócony. W przeciwnym razie po prostu zwracamy oryginalną linię działki.
Nadszedł czas, aby dowiedzieć się, gdzie zostaną umieszczone liczniki. Zazwyczaj położenie jest określane przez wymagania agencji lokalnej, dlatego wprowadzimy tylko wartości wejściowe, które można zmienić, aby odpowiadały różnym warunkom. Użyjemy układu współrzędnych wzdłuż linii działki jako odniesienia przy tworzeniu punktów. Ułatwi to zdefiniowanie odsunięć względem linii działki, bez względu na jej orientację.
Jeśli pierwszy raz masz do czynienia z układami współrzędnych, skorzystaj z sekcji Wektor, płaszczyzna i układ współrzędnych.
Teraz musimy pobrać najbliższe położeniom mierników punkty na systemie dystrybucji. Pozwoli to narysować połączenia usług w obszarze modelu, tak aby były zawsze prostopadłe do systemu dystrybucji. Idealnym rozwiązaniem jest węzeł Geometry.ClosestPointTo.
To krzywa PolyCurve systemu dystrybucji
To punkty wstawiania mierników
Ostatnią czynnością jest utworzenie obiektów w obszarze modelu. Użyjemy wygenerowanych wcześniej punktów wstawiania, aby utworzyć odniesienia do bloków, a następnie użyjemy punktów na systemie dystrybucji, aby narysować linie do połączeń usług.
Po uruchomieniu wykresu powinny być widoczne nowe odniesienia do bloków i linie połączeń usług w obszarze modelu. Zmień niektóre dane wejściowe i obserwuj, jak wszystko jest aktualizowane automatycznie.
Można zauważyć, że po umieszczeniu obiektów dla jednej linii działki wybranie innej linii działki powoduje „przesunięcie” obiektów.
Jest to domyślne zachowanie dodatku Dynamo, które jest bardzo przydatne w wielu przypadkach. Jednak może okazać się konieczne sekwencyjne umieszczenie kilku połączeń usług i wymuszenie, aby dodatek Dynamo utworzył nowe obiekty za każdym uruchomieniem, zamiast modyfikować oryginalne. Można sterować tym zachowaniem, zmieniając ustawienia wiązania obiektów.
Aby uzyskać więcej informacji, skorzystaj z sekcji Wiązanie obiektów.
Zmiana tego ustawienia spowoduje, że dodatek Dynamo będzie „zapominać” obiekty tworzone w poszczególnych uruchomieniach. Oto przykład uruchomienia wykresu z wyłączonym wiązaniem obiektów za pomocą Odtwarzacza Dynamo.
Jeśli nie znasz jeszcze Odtwarzacza Dynamo Player, skorzystaj z sekcji Odtwarzacz Dynamo (Dynamo Player).
Oto kilka pomysłów na rozszerzenie możliwości tego wykresu.
Umieść wiele połączeń usług jednocześnie, zamiast zaznaczać każdą linię działki.
Dopasuj dane wejściowe, aby zamiast mierników wody umieszczać odejścia czyszczące.
Dodaj przełącznik, aby umożliwić umieszczenie pojedynczego połączenia usług po określonej stronie linii działki zamiast po obu stronach.
Drogi, tory kolejowe, teren, usługi komunalne, pomiary, GIS...
Infrastruktura lądowa to wszystkie te elementy i wiele innych! W tej sekcji zawarto kilka praktycznych i istotnych przykładowych wykresów, które pomogą Ci rozwinąć umiejętności związane z dodatkiem Dynamo i uwolnić potencjał dodatku Dynamo for Civil 3D. Każdy wykres jest uzupełniony o szczegółowe opisy logiki, której użyto do jego utworzenia, dzięki czemu można go nie tylko używać, ale też analizować.
Ponadto przykłady te zawierają sprawdzone najlepsze praktyki dotyczące tworzenia niezawodnych wykresów. Podczas pracy z tymi przykładami zachęcamy do zapoznania się z sekcją Wzorce postępowania, w której znajdziesz więcej pomysłów na tworzenie zaawansowanych, elastycznych i łatwych w konserwacji wykresów.
Wcześniej wspomniano, że węzły są podstawowymi elementami wykresu Dynamo i są zorganizowane w logiczne grupy w bibliotece. W dodatku Dynamo for Civil 3D w bibliotece znajdują się dwie kategorie (czyli półki), które zawierają węzły przeznaczone do pracy z obiektami programów AutoCAD i Civil 3D, takimi jak linie trasowania, profile, korytarze, odniesienia do bloków itp. Pozostała część biblioteki zawiera węzły, które są bardziej ogólne i są spójne we wszystkich „odmianach” dodatku Dynamo (takich jak dodatek Dynamo dla programu Revit, Dynamo Sandbox itp.).
Aby uzyskać więcej informacji na temat organizacji węzłów w podstawowej bibliotece dodatku Dynamo, skorzystaj z sekcji Biblioteka.
Węzły przeznaczone specjalnie do pracy z obiektami programów AutoCAD i Civil 3D
Węzły ogólnego przeznaczenia
Węzły z pakietów innych producentów, które można zainstalować oddzielnie
W przypadku używania węzłów z półek programów AutoCAD i Civil 3D dany wykres dodatku Dynamo będzie działał tylko w dodatku Dynamo for Civil 3D. Jeśli wykres dodatku Dynamo for Civil 3D zostanie otwarty w innym miejscu (na przykład w dodatku Dynamo dla programu Revit), węzły te zostaną oznaczone ostrzeżeniami i nie będą uruchamiane.
Dlaczego istnieją dwie oddzielne półki dla programów AutoCAD i Civil 3D?
Ta organizacja pozwala odróżnić węzły dla natywnych obiektów programu AutoCAD (takich jak linie, polilinie, odniesienia do bloków itp.) od węzłów dla obiektów programu Civil 3D (jak linie trasowania, korytarze, powierzchnie itp.). Z technicznego punktu widzenia programy AutoCAD i Civil 3D to dwa oddzielne komponenty: program AutoCAD jest aplikacją bazową, a program Civil 3D jest produktem na niej opartym.
Podczas pracy z węzłami programów AutoCAD i Civil 3D ważne jest pełne zrozumienie hierarchii obiektów na poszczególnych półkach. Pamiętasz systematykę organizmów z biologii? Królestwo, typ, gromada, rząd, rodzina, rodzaj, gatunek? Obiekty programów AutoCAD i Civil 3D są skategoryzowane w podobny sposób. Przeanalizujmy kilka przykładów, aby to wyjaśnić.
Użyjmy jako przykładu linii trasowania.
Załóżmy, że chcemy zmienić nazwę linii trasowania. W związku z tym następnym dodawanym węzłem będzie węzeł CivilObject.SetName.
Na początku może to wydawać się nieintuicyjne. Czym jest obiekt programu Civil, CivilObject, i dlaczego w bibliotece nie ma węzła Alignment.SetName? Odpowiedź jest związana z pojęciami wielokrotnego wykorzystania i prostoty. Jeśli się nad tym zastanowić, proces zmiany nazwy obiektu programu Civil 3D jest taki sam niezależnie od tego, czy obiekt jest linią trasowania, korytarzem, profilem, czy czymś innym. Dlatego zamiast powtarzających się węzłów, które zasadniczo działają tak samo (np. Alignment.SetName, Corridor.SetName, Profile.SetName itp.), najlepszym rozwiązaniem jest opakowanie tej funkcjonalności w pojedynczy węzeł. Do tego właśnie służy węzeł CivilObject.SetName.
Można też spojrzeć na tę kwestię pod kątem relacji. Linia trasowania i korytarz to typy obiektów programu Civil, podobnie jak jabłko i gruszka to typy owoców. Węzły obiektów programu Civil mają zastosowanie do dowolnego typu obiektu programu Civil, tak jak w przypadku obieraczki, za pomocą której można obrać zarówno jabłko, jak i gruszkę. Gdybyśmy używali osobnej obieraczki to każdego rodzaju owoców, w kuchni panowałby straszny bałagan. W tym sensie biblioteka węzłów Dynamo przypomina kuchnię.
Pójdźmy o krok dalej. Załóżmy, że chcemy zmienić warstwę linii trasowania. Służy do tego węzeł Object.SetLayer.
Dlaczego nie ma węzła o nazwie CivilObject.SetLayer? Mają tutaj zastosowanie te same zasady wielokrotnego wykorzystania i prostoty, które omówiliśmy wcześniej. Właściwość warstwa jest wspólna dla wszystkich obiektów w programie AutoCAD, które można rysować lub wstawiać, takich jak linia, polilinia, tekst, odniesienie do bloku itp. Obiekty programu Civil 3D, takie jak linie trasowania i korytarze, należą do tej samej kategorii, dlatego każdy węzeł, który ma zastosowanie do obiektu, może być też używany z dowolnym obiektem programu Civil.
Podczas dodawania rur i konstrukcji do sieci rurociągów program Civil 3D używa szablonu do automatycznego przypisywania nazw. Jest to zwykle wystarczające podczas wstępnego umieszczania. Jednak w miarę rozwoju projektu nazwy będą musiały ulec zmianie. Ponadto może być wymaganych wiele różnych wzorów nazewnictwa, na przykład nadawanie konstrukcjom w rurociągu nazw sekwencyjnych od konstrukcji najdalszej w kolejności lub stosowanie wzoru nazewnictwa zgodnego ze schematem danych agencji lokalnej. W tym przykładzie pokazano, jak za pomocą dodatku Dynamo można definiować dowolnego typu strategię nazewnictwa, która ma być stosowana spójnie.
Praca z ramkami ograniczającymi
Filtrowanie danych za pomocą węzła List.FilterByBoolMask
Sortowanie danych za pomocą węzła List.SortByKey
Generowanie i modyfikowanie ciągów tekstowych
Ten wykres będzie działać w programie Civil 3D 2020 i w nowszych wersjach.
Najpierw pobierz pliki przykładów poniżej, a następnie otwórz plik DWG i wykres dodatku Dynamo.
Poniżej przedstawiono przegląd logiki na tym wykresie.
Wybieranie konstrukcji na podstawie warstwy
Pobieranie lokalizacji konstrukcji
Filtrowanie konstrukcji na podstawie odsunięć, a następnie sortowanie ich na podstawie pikiet
Generowanie nowych nazw
Zmienianie nazw konstrukcji
Zacznijmy!
Najpierw musimy wybrać wszystkie konstrukcje, z którymi będziemy pracować. W tym celu wystarczy wybrać wszystkie obiekty na określonej warstwie, co oznacza, że można wybrać konstrukcje z różnych sieci rurociągów (przy założeniu, że mają one tę samą warstwę).
Ten węzeł gwarantuje, że nie zostaną przypadkowo pobrane żadne niepożądane typy obiektów, które mogą mieć tę samą warstwę co konstrukcje.
Mamy już konstrukcje. Teraz musimy ustalić ich położenia w przestrzeni, tak aby można było je sortować według lokalizacji. W tym celu skorzystamy z ramek ograniczających poszczególnych obiektów. Ramka ograniczająca obiektu to ramka o minimalnym rozmiarze, która w pełni zawiera geometryczne zakresy obiektu. Obliczając środek ramki ograniczającej, otrzymujemy całkiem dobre przybliżenie punktu wstawiania konstrukcji.
Za pomocą tych punktów ustalimy pikiety i odsunięcia konstrukcji względem wybranej linii trasowania.
Tutaj zaczyna się robić trochę trudniej. Na tym etapie mamy dużą listę wszystkich konstrukcji na określonej warstwie i wybraliśmy linię trasowania, wzdłuż której mają być sortowane. Problem w tym, że na liście mogą znajdować się konstrukcje, których nazw nie chcemy zmieniać. Mogą one na przykład nie być częścią interesującego nas segmentu.
Wybrana linia trasowania
Konstrukcje, których nazwy chcemy zmienić
Konstrukcje, które powinny zostać pominięte
Dlatego musimy przefiltrować listę konstrukcji, aby nie uwzględniać tych, które mają odsunięcie od linii trasowania większe niż określone. Najlepiej zrobić to za pomocą węzła List.FilterByBoolMask. Po przefiltrowaniu listy konstrukcji użyjemy węzła List.SortByKey, aby posortować je według wartości pikiet.
Jeśli nie zdarzyło Ci się jeszcze pracować z listami, skorzystaj z sekcji Praca z listami.
Sprawdzanie, czy odsunięcie konstrukcji jest mniejsze niż wartość progowa
Zastąpienie wszelkich wartości null wartością false
Filtrowanie listy konstrukcji i pikiet
Sortowanie konstrukcji według pikiet
Ostatnią czynnością, którą musimy wykonać, jest utworzenie nowych nazw konstrukcji. Użyjemy formatu <alignment name>-STRC-<number>
. Dodano tu jeszcze kilka węzłów, aby w razie potrzeby uzupełnić liczby o dodatkowe zera (np. „01” zamiast „1”).
Wreszcie przechodzimy do zmieniania nazw konstrukcji.
Oto przykład uruchomienia wykresu za pomocą Odtwarzacza Dynamo.
Jeśli nie znasz jeszcze Odtwarzacza Dynamo Player, skorzystaj z sekcji Odtwarzacz Dynamo (Dynamo Player).
Przydatne może być wykorzystanie podglądu tła 3D dodatku Dynamo do wizualizacji pośrednich danych wyjściowych wykresu zamiast tylko wyniku końcowego. Jednym z prostych rozwiązań jest wyświetlenie ramek ograniczających dla konstrukcji. Ponadto ten konkretny zestaw danych zawiera korytarz w dokumencie, dlatego można przenieść geometrię linii charakterystycznych korytarza do dodatku Dynamo, aby zapewnić kontekst dla lokalizacji konstrukcji w przestrzeni. Jeśli wykres zostanie użyty z zestawem danych bez żadnych korytarzy, węzły te po prostu nie wykonają żadnych działań.
Teraz możemy lepiej zrozumieć, jak działa proces filtrowania konstrukcji na podstawie odsunięć.
Oto kilka pomysłów na rozszerzenie możliwości tego wykresu.
Zmień nazwy konstrukcji na podstawie ich najbliższych linii trasowania, zamiast wybierać określoną linię trasowania.
Zmień nazwy rur, a nie tylko konstrukcji.
Ustaw warstwy konstrukcji na podstawie ich segmentów.
Dodatek Dynamo for Civil 3D zapewnia inżynierom i projektantom pracującym nad projektami infrastruktury lądowej paradygmat programowania wizualnego. Dodatek Dynamo można traktować jako swego rodzaju cyfrowe narzędzie uniwersalne dla użytkowników programu Civil 3D — niezależnie od tego, jakie zadanie należy wykonać, dodatek ten zawiera odpowiednie do tego narzędzie. Intuicyjny interfejs umożliwia tworzenie zaawansowanych i konfigurowalnych procedur bez konieczności pisania nawet jednego wiersza kodu. Nie musisz być programistą, aby korzystać z dodatku Dynamo, ale musisz potrafić myśleć logicznie jak programista. Ten rozdział, w połączeniu z innymi rozdziałami w przewodniku Primer, pomoże Ci w rozwijaniu umiejętności logicznych, dzięki którym będziesz w stanie sprostać każdemu zadaniu, stosując podejście zgodne z projektowaniem obliczeniowym.
Dodatek Dynamo wprowadzono po raz pierwszy w programie Civil 3D 2020 i od tego czasu dodatek ten nieustannie ewoluuje. Początkowo był on instalowany oddzielnie za pomocą aktualizacji oprogramowania. Teraz jest on dostarczany ze wszystkimi wersjami programu Civil 3D. W zależności od używanej wersji programu Civil 3D interfejs dodatku Dynamo może wyglądać nieco inaczej niż w przykładach przedstawionych w tym rozdziale. Jest to spowodowane znacznymi zmianami interfejsu wprowadzonymi w programie Civil 3D 2023.
Najbardziej aktualne informacje na temat rozwoju dodatku Dynamo można znaleźć w blogu poświęconym dodatkowi Dynamo. W poniższej tabeli podsumowano najważniejsze etapy rozwoju dodatku Dynamo for Civil 3D.
Dodatek Dynamo for Civil 3D zawiera bardzo wydajny mechanizm „zapamiętywania” obiektów tworzonych przez poszczególne węzły. Ten mechanizm jest nazywany wiązaniem obiektów i umożliwia wykresowi Dynamo generowanie spójnych wyników przy każdym jego uruchomieniu w tym samym dokumencie. Jest to bardzo pożądane w wielu sytuacjach, ale w pewnych innych sytuacjach użytkownik może chcieć mieć większą kontrolę nad zachowaniem dodatku Dynamo. W tej sekcji opisano działanie wiązania obiektów i sposoby jego wykorzystywania.
Rozważmy ten wykres, który tworzy okrąg w obszarze modelu na bieżącej warstwie.
Zwróćmy uwagę, co się dzieje, gdy promień zostanie zmieniony.
To jest wiązanie obiektów w działaniu. Domyślnym zachowaniem dodatku Dynamo jest zmodyfikowanie promienia okręgu, a nie utworzenie nowego okręgu przy każdej zmianie danych wejściowych promienia. Dzieje się tak, ponieważ węzeł Object.ByGeometry „pamięta”, że utworzył ten konkretny okrąg przy każdym uruchomieniu wykresu. Ponadto dodatek Dynamo zapisze te informacje, tak aby po następnym otwarciu dokumentu programu Civil 3D i uruchomieniu wykresu dodatek zachowywał się dokładnie tak samo.
Przyjrzyjmy się przykładowi, w którym można zmienić domyślne zachowanie dodatku Dynamo w zakresie wiązania obiektów. Załóżmy, że chcemy utworzyć wykres, w którym w środku okręgu jest umieszczany tekst. Celem tego wykresu jest możliwość wielokrotnego uruchamiania go i za każdym razem umieszczania nowego tekstu w wybranym okręgu. Oto jak może wyglądać wykres.
Jednak faktyczne działanie po wybraniu innego okręgu wygląda tak.
Wygląda na to, że wraz z każdym uruchomieniem wykresu tekst zostaje usunięty i ponownie utworzony. W rzeczywistości położenie tekstu jest modyfikowane w zależności od wybranego okręgu. To ten sam tekst — tylko w innym miejscu. Aby za każdym razem tworzyć nowy tekst, należy zmodyfikować ustawienia wiązania obiektów dodatku Dynamo, tak aby nie były zachowywane żadne dane powiązań (patrz #binding-settings poniżej).
Po wprowadzeniu tej zmiany otrzymujemy zachowanie, o które chodziło.
Dodatek Dynamo for Civil 3D umożliwia modyfikowanie domyślnego zachowania wiązania obiektów za pomocą ustawień Przechowywanie danych powiązania w menu dodatku Dynamo.
Należy pamiętać, że opcje przechowywania danych powiązania są dostępne w programie Civil 3D 2022.1 i w nowszych wersjach.
Wszystkie opcje są domyślnie włączone. Poniżej podsumowano funkcje poszczególnych opcji.
Gdy ta opcja jest włączona, dodatek Dynamo „zapomina” o obiektach, które utworzył podczas ostatniego uruchomienia wykresu. Wykres może być więc uruchamiany na dowolnym rysunku w dowolnej sytuacji i za każdym razem utworzy nowe obiekty.
Zastosowanie
Używaj tej opcji, aby dodatek Dynamo „zapominał” o tym, co robił w poprzednich uruchomieniach, i za każdym razem tworzył nowe obiekty.
Ta opcja oznacza, że metadane wiązania obiektów są serializowane do wykresu (pliku .dyn) podczas jego zapisywania. Jeśli wykres zostanie zamknięty/ponownie otwarty i uruchomiony na tym samym rysunku, wszystko powinno działać tak samo, jak działało ostatnio. Jeśli wykres zostanie uruchomiony na innym rysunku, dane powiązania zostaną usunięte z wykresu i zostaną utworzone nowe obiekty. Oznacza to, że po otwarciu oryginalnego rysunku i ponownym uruchomieniu wykresu oprócz starych obiektów zostaną utworzone nowe obiekty.
Zastosowanie
Używaj tej opcji, aby dodatek Dynamo „pamiętał” obiekty, które utworzył podczas ostatniego uruchomienia na określonym rysunku.
Ta opcja jest najodpowiedniejsza w sytuacjach, gdy możliwe jest zachowanie relacji 1:1 między konkretnym rysunkiem a wykresem Dynamo. W przypadku wykresów przeznaczonych do uruchamiania na wielu rysunkach lepsze są opcje 1 i 3.
Ta opcja działa podobnie do opcji 2, ale w tym przypadku dane wiązania obiektów są serializowane na rysunku, a nie na wykresie (w pliku .dyn). Jeśli wykres zostanie zamknięty/ponownie otwarty i uruchomiony na tym samym rysunku, wszystko powinno działać tak samo, jak działało ostatnio. Jeśli wykres zostanie uruchomiony na innym rysunku, dane powiązania nadal będą zachowane na oryginalnym rysunku, ponieważ są zapisywane w rysunku, a nie w wykresie.
Zastosowanie
Używaj tej opcji, aby móc użyć tego samego wykresu na wielu rysunkach i aby dodatek Dynamo „pamiętał”, co robił na każdym z nich.
Po pierwsze: ta opcja nie ma wpływu na interakcje wykresu z rysunkiem w przypadku uruchamiania wykresu za pomocą głównego interfejsu dodatku Dynamo. Ta opcja ma zastosowanie tylko w przypadku, gdy wykres jest uruchamiany za pomocą Odtwarzacza Dynamo.
Jeśli nie znasz jeszcze Odtwarzacza Dynamo Player, skorzystaj z sekcji Odtwarzacz Dynamo (Dynamo Player).
Jeśli wykres zostanie uruchomiony za pomocą interfejsu głównego dodatku Dynamo, a następnie zostanie zamknięty i uruchomiony za pomocą Odtwarzacza Dynamo, obok obiektów utworzonych wcześniej zostaną utworzone nowe obiekty. Jednak po jednokrotnym wykonaniu wykresu przez Odtwarzacz Dynamo dane wiązania obiektów zostaną zserializowane do rysunku. Jeśli więc wykres jest uruchamiany wielokrotnie za pomocą Odtwarzacza Dynamo, zamiast tworzenia obiektów, zostają zaktualizowane istniejące obiekty. Jeśli wykres zostanie uruchomiony za pomocą Odtwarzacza Dynamo na innym rysunku, dane powiązania nadal będą zachowane na oryginalnym rysunku, ponieważ są zapisywane w rysunku, a nie w wykresie.
Zastosowanie
Używaj tej opcji, aby móc uruchamiać wykres za pomocą Odtwarzacza Dynamo na wielu rysunkach i aby dodatek Dynamo „pamiętał”, co robił na każdym z nich
Odtwarzacz Dynamo umożliwia uproszczone uruchamianie wykresów Dynamo w programie Civil 3D. Po utworzeniu wykresów do używania Odtwarzacza i uruchamiania wykresów nie jest wymagana wiedza specjalistyczna dotycząca dodatku Dynamo. Ułatwia to udostępnianie wykresów innym osobom, które mogą nie być zainteresowane analizowaniem szczegółów węzłów i przewodów.
Aby uzyskać więcej informacji na temat Odtwarzacza Dynamo w programie Civil 3D, zapoznaj się z dokumentacją dostarczoną w witrynie pomocy do programu Civil 3D.
Ten przewodnik Primer to zaledwie początek przygody z dodatkiem Dynamo for Civil 3D. Dobrze prosperująca społeczność użytkowników dodatku Dynamo to prawdziwa kopalnia wiedzy. Zapoznaj się z niektórymi z tych zasobów, aby dowiedzieć się więcej.
Opracowywanie obwiedni kinematycznych do weryfikacji prześwitu jest ważną częścią projektów kolejowych. Za pomocą dodatku Dynamo można generować bryły dla obwiedni, zamiast tworzyć złożone podzespoły korytarzy i zarządzać nimi w celu wykonania tego zadania.
Praca z liniami charakterystycznymi korytarza
Przekształcanie geometrii między układami współrzędnych
Tworzenie brył przez wyciągnięcie
Kontrolowanie zachowania węzłów za pomocą ustawień skratowania
Ten wykres będzie działać w programie Civil 3D 2020 i w nowszych wersjach.
Najpierw pobierz pliki przykładów poniżej, a następnie otwórz plik DWG i wykres dodatku Dynamo.
Poniżej przedstawiono przegląd logiki na tym wykresie.
Pobieranie linii charakterystycznych z określonej linii bazowej korytarza
Generowanie układów współrzędnych wzdłuż linii charakterystycznej korytarza w żądanych odstępach
Przekształcanie geometrii bloku profilu do układów współrzędnych
Wyciąganie bryły między profilami
Tworzenie brył w programie Civil 3D
Zacznijmy!
Pierwszym krokiem jest pobranie danych korytarza. Wybierzemy model korytarza na podstawie jego nazwy, pobierzemy określoną linię bazową w korytarzu, a następnie pobierzemy linię charakterystyczną w linii bazowej na podstawie kodu punktu.
Teraz wygenerujemy układy współrzędnych wzdłuż linii charakterystycznych korytarza między daną pikietą początkową a końcową. Te układy współrzędnych zostaną użyte do wyrównania geometrii bloku profilu pojazdu względem korytarza.
Jeśli pierwszy raz masz do czynienia z układami współrzędnych, skorzystaj z sekcji Wektor, płaszczyzna i układ współrzędnych.
Zwróć uwagę na małą pozycję XXX w prawym dolnym rogu węzła. Oznacza to, że ustawienia skratowania węzła skonfigurowano jako Iloczyn wektorowy, co jest niezbędne do generowania układów współrzędnych przy tych samych wartościach pikiet dla obu linii charakterystycznych.
Jeśli pierwszy raz masz do czynienia ze skratowaniem węzłów, skorzystaj z sekcji Co to jest lista.
Teraz musimy w jakiś sposób utworzyć szyk profili pojazdów wzdłuż linii charakterystycznych. Przekształcimy geometrię z definicji bloku profilu pojazdu za pomocą węzła Geometry.Transform. Zwizualizowanie tej koncepcji jest trudne, więc zanim przyjrzymy się węzłom, przeanalizujmy grafikę pokazującą, co się stanie.
Zasadniczo pobieramy geometrię dodatku Dynamo z pojedynczej definicji bloku i przesuwamy/obracamy ją podczas tworzenia szyku wzdłuż linii charakterystycznej. Świetnie! Oto jak wygląda sekwencja węzłów.
Tutaj następuje pobranie definicji bloku z dokumentu.
Te węzły pobierają geometrię dodatku Dynamo obiektów w bloku.
Te węzły zasadniczo definiują układ współrzędnych, z którego przekształcana jest geometria.
Ten węzeł wykonuje rzeczywistą pracę nad przekształceniem geometrii.
Zwróć uwagę na najdłuższe skratowanie w tym węźle.
Oto co uzyskamy w dodatku Dynamo.
Dobra wiadomość! Najcięższą pracę mamy już za sobą. Teraz wystarczy wygenerować bryły między profilami. Można to łatwo zrobić za pomocą węzła Solid.ByLoft.
Oto wynik. Pamiętaj, że są to bryły dodatku Dynamo — nadal trzeba je utworzyć w programie Civil 3D.
Ostatnią czynnością jest wyprowadzenie wygenerowanych brył do obszaru modelu. Nadamy im również kolor, który ułatwi ich oglądanie.
Oto przykład uruchomienia wykresu za pomocą Odtwarzacza Dynamo.
Jeśli nie znasz jeszcze Odtwarzacza Dynamo Player, skorzystaj z sekcji Odtwarzacz Dynamo (Dynamo Player).
Oto kilka pomysłów na rozszerzenie możliwości tego wykresu.
Dodaj możliwość używania różnych zakresów pikiet oddzielnie dla poszczególnych torów.
Podziel bryły na mniejsze segmenty, które można analizować indywidualnie pod kątem kolizji.
Sprawdź, czy bryły obwiedni przecinają się z obiektami i pokoloruj te, w przypadku których występują kolizje.
Praca z punktami COGO i grupami punktów w programie Civil 3D jest podstawowym elementem wielu procesów realizowanych od pola do zakończenia. Dodatek Dynamo naprawdę sprawdza się w przypadku konieczności zarządzania danymi. W tym przykładzie zademonstrujemy jeden potencjalny przypadek zastosowania.
Praca z listami
Grupowanie podobnych obiektów za pomocą węzła List.GroupByKey
Wyświetlanie niestandardowych danych wyjściowych w Odtwarzaczu Dynamo
Ten wykres będzie działać w programie Civil 3D 2020 i w nowszych wersjach.
Najpierw pobierz pliki przykładów poniżej, a następnie otwórz plik DWG i wykres dodatku Dynamo.
Poniżej przedstawiono przegląd logiki na tym wykresie.
Pobieranie wszystkich punktów COGO w dokumencie
Grupowanie punktów COGO na podstawie opisu
Tworzenie grup punktów
Wyprowadzanie danych z podsumowaniem do Odtwarzacza Dynamo
Zacznijmy!
Pierwszym krokiem jest pobranie wszystkich grup punktów w dokumencie, a następnie pobranie wszystkich punktów COGO w każdej grupie. Dzięki temu otrzymamy listę zagnieżdżoną lub „listę list”, z którą łatwiej będzie pracować później, jeśli spłaszczymy wszystko do pojedynczej listy za pomocą węzła List.Flatten.
Jeśli nie zdarzyło Ci się jeszcze pracować z listami, skorzystaj z sekcji Praca z listami.
Mamy już wszystkie punkty COGO. Teraz musimy rozdzielić je na grupy na podstawie ich opisów. Właśnie do tego służy węzeł List.GroupByKey. Zasadniczo grupuje on wszystkie elementy o tym samym kluczu.
Najcięższą pracę mamy już za sobą. Ostatnią czynnością jest utworzenie nowych grup punktów programu Civil 3D na podstawie zgrupowanych punktów COGO.
Po uruchomieniu wykresu w podglądzie tła dodatku Dynamo niczego nie ma, ponieważ nie pracujemy z żadną geometrią. Dlatego jedynym sposobem sprawdzenia, czy wykres jest wykonywany poprawnie, jest sprawdzenie obszaru narzędzi lub podglądów danych wyjściowych węzłów. Jeśli jednak wykres zostanie uruchomiony za pomocą Odtwarzacza Dynamo, można przekazać więcej informacji na temat wyników wykresu, drukując podsumowanie utworzonych grup punktów. Wystarczy kliknąć prawym przyciskiem myszy węzeł i skonfigurować dla niego ustawienie Is Output (Dane wyjściowe). W tym przypadku użyjemy węzła Watch o zmienionej nazwie, aby wyświetlić wyniki.
Oto przykład uruchomienia wykresu za pomocą Odtwarzacza Dynamo.
Jeśli nie znasz jeszcze Odtwarzacza Dynamo Player, skorzystaj z sekcji Odtwarzacz Dynamo (Dynamo Player).
Oto kilka pomysłów na rozszerzenie możliwości tego wykresu.
Zmodyfikuj grupowanie punktów tak, aby było oparte na pełnym opisie, a nie na opisie nieprzetworzonym.
Grupuj punkty na podstawie innych wybranych wstępnie zdefiniowanych kategorii (na przykład „Ground shots”, „Monuments” itp.)
Automatycznie twórz powierzchnie TIN dla punktów w niektórych grupach.
Pakiety dodatku Dynamo to zestawy narzędzi opracowane przez strony trzecie w celu rozszerzenia podstawowej funkcjonalności dodatku Dynamo. Są one dostępne dla wszystkich i można je pobrać kliknięciem przycisku.
Aby uzyskać więcej informacji na temat rozpoczynania pracy z pakietami, zapoznaj się z sekcją .
Oto lista najpopularniejszych pakietów, które pozwalają przenieść wykresy dodatku Dynamo for Civil 3D na wyższy poziom.
Civil 3D Toolkit to pakiet dodatku Dynamo for Civil 3D, który zapewnia znaczne ulepszenia funkcji dodatku Dynamo dzięki obszernemu zestawowi dodatkowych węzłów.
Camber to pakiet dodatku Dynamo for Civil 3D typu open source zawierający setki węzłów do pracy z etykietami, odnośnikami zewnętrznymi (xref), skrótami do danych, stylami i innymi elementami.
CivilConnection to pakiet dodatku Dynamo dla programu Revit typu open source, który umożliwia wymianę informacji między oprogramowaniem Civil 3D, Dynamo i Revit.
Arkance Systems Nodes to pakiet dodatku Dynamo for Civil 3D zawierający wiele różnych przydatnych węzłów do pracy z wymiarami, tabelami, widokami, sterowaniem wierceniem i innymi elementami.
Jednym z wielu doskonałych przykładów zastosowań dodatku Dynamo jest dynamiczne umieszczanie odrębnych obiektów wzdłuż modelu korytarza. Często obiekty muszą być umieszczane w miejscach niezależnych od wstawionych zespołów wzdłuż korytarza, co jest bardzo żmudnym zadaniem w przypadku wykonywania ręcznego. Gdy zmienia się geometria pozioma lub pionowa korytarza, wprowadzana jest znaczna ilość poprawek.
Odczytywanie danych z pliku zewnętrznego (w tym przypadku programu Excel)
Organizowanie danych w słownikach
Sterowanie położeniem/skalą/obrotem za pomocą układów współrzędnych
Umieszczanie odniesień do bloków
Wizualizowanie geometrii w dodatku Dynamo
Ten wykres będzie działać w programie Civil 3D 2020 i w nowszych wersjach.
Najpierw pobierz pliki przykładów poniżej, a następnie otwórz plik DWG i wykres dodatku Dynamo.
Najlepiej jest, jeśli plik programu Excel jest zapisany w tym samym katalogu co wykres dodatku Dynamo.
Poniżej przedstawiono przegląd logiki na tym wykresie.
Odczytywanie pliku programu Excel i importowanie danych do dodatku Dynamo
Pobieranie linii charakterystycznych z określonej linii bazowej korytarza
Generowanie układów współrzędnych wzdłuż linii charakterystycznej korytarza w żądanych pikietach
Umieszczanie odniesień do bloków w obszarze modelu za pomocą układów współrzędnych
Zacznijmy!
W tym przykładowym wykresie użyjemy pliku programu Excel do przechowywania danych, za pomocą których dodatek Dynamo umieści odniesienia do bloków słupów oświetleniowych. Tabela wygląda tak.
Odczytanie danych z pliku zewnętrznego (np. pliku programu Excel) za pomocą dodatku Dynamo jest doskonałą strategią, zwłaszcza gdy dane muszą być współdzielone z innymi członkami zespołu.
Dane programu Excel są importowane do dodatku Dynamo w ten sposób.
Mamy już dane. Teraz musimy je podzielić według kolumn (Corridor, Baseline, PointCode itp.), aby móc wykorzystać je w pozostałej części wykresu. Typowym sposobem wykonania tej operacji jest użycie węzła List.GetItemAtIndex i określenie numeru indeksu każdej odpowiedniej kolumny. Na przykład kolumna Corridor ma indeks 0, kolumna Baseline ma indeks 1 itd.
Wygląda to dobrze, prawda? Jednak z tym podejściem wiąże się potencjalny problem. Co jeśli w przyszłości kolejność kolumn w pliku Excel ulegnie zmianie? Lub jeśli między dwiema kolumnami zostanie dodana nowa kolumna? Wykres nie będzie wtedy działał poprawnie i będzie wymagał aktualizacji. Wykres można zabezpieczyć przed przyszłymi zmianami, umieszczając dane w słowniku, Dictionary, z nagłówkami kolumn programu Excel jako kluczami, keys, i pozostałymi danymi jako wartościami, values.
Dzięki temu wykres jest bardziej niezawodny, ponieważ umożliwia elastyczne zmienianie kolejności kolumn w programie Excel. Dopóki nagłówki kolumn pozostają takie same, dane można po prostu pobrać ze słownika za pomocą jego klucza, key, czyli nagłówka kolumny, co jest naszym kolejnym krokiem.
Dane programu Excel są już zaimportowane i gotowe do użycia. Zacznijmy używać ich do pobierania informacji z programu Civil 3D na temat modeli korytarzy.
Wybierz model korytarza na podstawie jego nazwy.
Pobierz określoną linię bazową (Baseline) w korytarzu.
Pobierz linię charakterystyczną w linii bazowej na podstawie jej kodu punktu.
Teraz wygenerujemy układy współrzędnych wzdłuż linii charakterystycznych korytarza przy wartościach pikiet określonych w pliku programu Excel. Te układy współrzędnych posłużą do zdefiniowania położenia, obrotu i skali odniesień do bloków słupów oświetleniowych.
Zwróć uwagę, że zastosowano tu węzeł Code Block do obracania układów współrzędnych w zależności od tego, po której stronie linii bazowej się one znajdują. Można to też zrealizować za pomocą sekwencji kilku węzłów, ale jest to dobry przykład sytuacji, w której łatwiej jest po prostu napisać kod.
Już prawie gotowe! Mamy wszystkie informacje, których potrzebujemy, aby móc umieścić odniesienia do bloków. Pierwszą czynnością jest pobranie definicji bloków, których użyjemy, za pomocą kolumny BlockName w pliku programu Excel.
Na tym etapie ostatnim krokiem jest utworzenie odniesień do bloków.
Po uruchomieniu wykresu powinny być widoczne nowe odniesienia do bloków w obszarze modelu wzdłuż korytarza. Oto najlepsza część — jeśli ustawiono automatyczny tryb wykonywania wykresu, to po edytowaniu pliku programu Excel odniesienia do bloków zostaną zaktualizowane automatycznie.
Oto przykład uruchomienia wykresu za pomocą Odtwarzacza Dynamo.
Pomocne może być zwizualizowanie geometrii korytarza w dodatku Dynamo w celu zapewnienia kontekstu. Ten konkretny model zawiera już wyodrębnione bryły korytarza w obszarze modelu, więc przenieśmy je do dodatku Dynamo.
Jest jednak coś jeszcze, co musimy rozważyć. Bryły są stosunkowo „ciężkimi” typami geometrii, co oznacza, że ta operacja spowolni działanie wykresu. Przydałby się prosty sposób wyboru, czy chcemy wyświetlać bryły, czy nie. Oczywistym rozwiązaniem jest odłączenie węzła Corridor.GetSolids, ale spowoduje to wyświetlenie ostrzeżeń dla wszystkich węzłów znajdujących się za nim, co nie jest eleganckie. Jest to sytuacja, w której naprawdę przydaje się węzeł ScopeIf.
Zwróć uwagę, że węzeł Object.Geometry ma szary pasek na dole. Oznacza to, że podgląd węzła jest wyłączony (dostępny po kliknięciu węzła prawym przyciskiem myszy), co pozwala na uniknięcie „konkurowania” z inną geometrią o priorytet wyświetlania w podglądzie tła w węźle GeometryColor.ByGeometryColor.
Węzeł ScopeIf zasadniczo umożliwia selektywne uruchamianie całej gałęzi węzłów. Jeśli wartość wejściowa test ma wartość fałsz (false), nie zostanie uruchomiony żaden węzeł połączony z węzłem ScopeIf.
Oto wynik w podglądzie tła dodatku Dynamo.
Oto kilka pomysłów na rozszerzenie możliwości tego wykresu.
Dodaj do pliku programu Excel kolumnę obrotu, rotation, i za jej pomocą steruj obrotem układów współrzędnych.
Dodaj do pliku programu Excel odsunięcia poziome lub pionowe, tak aby słupy oświetleniowe mogły w razie potrzeby odbiegać od linii charakterystycznej korytarza.
Zamiast używać pliku programu Excel z wartościami pikiet, wygeneruj wartości pikiet bezpośrednio w dodatku Dynamo, używając pikiety początkowej i typowego odstępu.
Dodatek Dynamo daje niezwykłe możliwości jako narzędzie do . Można jednak pominąć węzły i przewody, aby pisać kod w postaci tekstowej. Można to zrobić na dwa sposoby:
Pisanie kodu DesignScript za pomocą węzła Code Block
Pisanie kodu Python za pomocą węzła Python
W tej sekcji omówiono używanie języka Python w środowisku programu Civil 3D w celu wykorzystywania interfejsów API .NET programów AutoCAD i Civil 3D.
Aby uzyskać bardziej ogólne informacje na temat używania języka Python w dodatku Dynamo, skorzystaj z sekcji .
Dla programów AutoCAD i Civil 3D jest dostępnych po kilka interfejsów API, które umożliwiają programistom rozszerzanie produktu podstawowego o funkcje niestandardowe. W kontekście dodatku Dynamo istotne są interfejsy API kodu zarządzanego .NET. Poniższe łącza prowadzą do informacji niezbędnych do zrozumienia struktury tych interfejsów API i sposobu ich działania.
Podczas zapoznawania się z tą sekcją możesz zetknąć się z pewnymi nowymi dla Ciebie pojęciami, takimi jak bazy danych, transakcje, metody, właściwości itp. Wiele z tych pojęć należy do podstaw pracy z interfejsami API .NET i nie są one charakterystyczne ani dla dodatku Dynamo, ani dla języka Python. Szczegółowe omówienie tych elementów wykracza poza zakres tej sekcji przewodnika Primer, dlatego zaleca się częste korzystanie z informacji, do których prowadzą powyższe łącza.
Podczas pierwszej edycji nowego węzła w języku Python jest on wstępnie wypełniany kodem-szablonem, aby przyspieszyć rozpoczęcie pracy. Oto podział szablonu z objaśnieniami dotyczącymi każdego bloku.
Importuje moduły
sys
iclr
, które są niezbędne do poprawnego działania interpretera języka Python. W szczególności modułclr
umożliwia traktowanie przestrzeni nazw .NET jako pakietów Python.Wczytuje standardowe zespoły (np. pliki DLL) do pracy z interfejsami API kodu zarządzanego .NET dla programów AutoCAD i Civil 3D.
Dodaje odniesienia do standardowych przestrzeni nazw programów AutoCAD i Civil 3D. Są one równoważne z dyrektywami
using
lubImports
odpowiednio w języku C# i w języku VB.NET.Dostęp do portów wejściowych węzła można uzyskać za pomocą wstępnie zdefiniowanej listy o nazwie
IN
. Dostęp do danych w określonym porcie można uzyskać, używając numeru indeksu, na przykładdataInFirstPort = IN[0]
.Pobiera aktywny dokument i edytor.
Blokuje dokument i inicjuje transakcję bazy danych.
W tym miejscu należy umieścić większość kodu logiki skryptu.
Usuń oznaczenie komentarza tego wiersza, aby zatwierdzić transakcję po zakończeniu głównej pracy.
Aby zapisać dane wyjściowe węzła, należy przypisać je do zmiennej
OUT
na końcu skryptu.
Chcesz wprowadzić dostosowania?
Domyślny szablon w języku Python można zmodyfikować, edytując plik PythonTemplate.py
znajdujący się w folderze C:\ProgramData\Autodesk\C3D <version>\Dynamo
.
Przeanalizujmy przykład, aby zademonstrować niektóre z najważniejszych pojęć dotyczących pisania skryptów w języku Python w dodatku Dynamo for Civil 3D.
Poniżej przedstawiono przykładowe pliki, z których można korzystać w trakcie tego ćwiczenia.
Poniżej przedstawiono przegląd logiki na tym wykresie.
Zapoznaj się z dokumentacją interfejsu API programu Civil 3D
Wybranie wszystkich zlewni w dokumencie na podstawie nazwy warstwy
„Odpakowanie” obiektów Dynamo, aby uzyskać dostęp do wewnętrznych składników interfejsu API programu Civil 3D
Utworzenie punktów dodatku Dynamo na podstawie punktów programu AutoCAD
Utworzenie krzywych PolyCurve z punktów
Zacznijmy!
Teraz możemy zacząć tworzyć logikę wykresu. Pierwszą czynnością, którą należy wykonać, jest pobranie listy wszystkich zlewni w dokumencie. Dostępne są węzły do obsługi tej operacji, więc nie trzeba uwzględniać jej w skrypcie w języku Python. Używanie węzłów zapewnia lepszą przejrzystość dla innych osób czytających wykres (w przeciwieństwie do używania dużej ilości kodu w skrypcie w języku Python) i pozwala skupić się w kodzie w języku Python na jednej rzeczy: zwróceniu punktów obwiedni zlewni.
Warto zwrócić uwagę, że wyjście z węzła All Objects on Layer jest listą obiektów programu Civil (CivilObject). Jest to spowodowane tym, że dodatek Dynamo for Civil 3D nie zawiera obecnie żadnych węzłów do pracy ze zlewniami. Dlatego właśnie należy uzyskać dostęp do interfejsu API za pośrednictwem języka Python.
Ogólnie bezpieczniej jest uzyskać identyfikator obiektu za pomocą właściwości InternalObjectId
, a następnie uzyskać dostęp do opakowanego obiektu w transakcji. Wynika to z tego, że właściwość InternalDBObject
zwraca obiekt DBObject programu AutoCAD, który nie jest w stanie zapisywalnym.
Oto pełny skrypt w języku Python, który wykonuje operacje polegające na uzyskaniu dostępu do wewnętrznych obiektów zlewni i pobraniu ich punktów obwiedni. Wyróżnione wiersze to te zmodyfikowane lub dodane w domyślnym kodzie-szablonie.
Klikaj podkreślony tekst w skrypcie, aby uzyskać wyjaśnienia dotyczące poszczególnych wierszy.
Ogólnie najlepszą praktyką jest umieszczenie większości kodu logiki skryptu wewnątrz transakcji. Zapewnia to bezpieczny dostęp do obiektów, które są odczytywane/zapisywane przez skrypt. W wielu przypadkach pominięcie transakcji może spowodować błąd krytyczny.
Na tym etapie skrypt w języku Python powinien zwrócić listę punktów dodatku Dynamo, które można wyświetlić w podglądzie w tle. Ostatnią czynnością jest utworzenie krzywych PolyCurve na podstawie punktów. Warto zauważyć, że można to również zrobić bezpośrednio w skrypcie w języku Python. Jednak celowo umieściliśmy tę operację poza skryptem w węźle, aby była bardziej widoczna. Oto ostateczny wykres.
Oto ostateczna geometria dodatku Dynamo.
Zanim zakończymy tę część, omówmy jeszcze jedną kwestię. W zależności od używanej wersji programu Civil 3D węzeł w języku Python może być skonfigurowany w określony sposób. W programach Civil 3D 2020 i 2021 dodatek Dynamo używał narzędzia o nazwie IronPython do przenoszenia danych między obiektami .NET a skryptami w języku Python. Jednak w programie Civil 3D 2022 dodatek Dynamo używa standardowego natywnego interpretera języka Python (znanego jako CPython), w którym jest używany język Python 3. Korzyści płynące z przejścia na nowy model obejmują dostęp do popularnych nowoczesnych bibliotek i nowych funkcji platformy, niezbędne poprawki konserwacyjne i poprawki zabezpieczeń.
Ten wiersz pobiera określoną potrzebną klasę z biblioteki geometrii dodatku Dynamo. Uwaga: określono tutaj import Point as DynPoint
zamiast import *
, ponieważ ta druga opcja spowodowałaby kolizje nazw.
Tutaj dokładnie określamy, który port wejściowy zawiera dane, jakie mają być używane, zamiast domyślnych IN
, które odnoszą się do całej listy wszystkich danych wejściowych.
Utworzenie wykresu Dynamo, który będzie wstawiał tekst do obszaru modelu.
Misja wykonana!
Umieszczenie odniesień do bloków wodomierzy w określonych odsunięciach od linii działki i narysowanie linii dla każdego połączenia usług prostopadłego do głównego systemu dystrybucji.
Misja wykonana!
Zmiana nazw konstrukcji sieci rurociągów w kolejności opartej na pikietażu linii trasowania.
Misja wykonana!
Wersja programu Civil 3D | Wersja dodatku Dynamo | Uwagi |
---|---|---|
Wygenerowanie za pomocą bloku profilu pojazdu brył 3D obwiedni prześwitu wzdłuż korytarza.
Misja wykonana!
Utworzenie grupy punktów dla każdego niepowtarzalnego opisu punktu COGO.
Misja wykonana!
Umieszczenie odniesień do bloków słupów oświetleniowych wzdłuż korytarza w wartościach pikiet określonych w pliku programu Excel.
Jeśli pierwszy raz masz do czynienia ze słownikami, skorzystaj z sekcji .
Jeśli pierwszy raz masz do czynienia z układami współrzędnych, skorzystaj z sekcji .
Jeśli pierwszy raz masz do czynienia z węzłami Code Block, skorzystaj z sekcji .
Więcej informacji na temat trybów wykonywania wykresów można znaleźć w sekcji .
Jeśli nie znasz jeszcze Odtwarzacza Dynamo Player, skorzystaj z sekcji .
Misja wykonana!
Pobieranie geometrii obwiedni wszystkich zlewni na rysunku.
Przed rozpoczęciem tworzenia wykresu i pisania kodu warto zapoznać się z dokumentacją interfejsu API programu Civil 3D i dowiedzieć się, co udostępnia ten interfejs API. W tym przypadku istnieje , która zwraca punkty obwiedni zlewni. Ta właściwość zwraca obiekt Point3dCollection
, którego dodatek Dynamo nie jest w stanie domyślnie obsługiwać. Oznacza to, że nie można utworzyć krzywej PolyCurve z obiektu Point3dCollection
, więc konieczne będzie przekształcenie wszystkiego w punkty dodatku Dynamo. Więcej informacji na ten temat podamy w dalszej części.
Zanim przejdziemy dalej, musimy krótko odnieść się do ważnego pojęcia. W sekcji omówiono powiązania obiektów i obiektów programu Civil (CivilObject). Bardziej szczegółowo można powiedzieć, że obiekt Dynamo jest opakowaniem dla elementu programu AutoCAD. Podobnie obiekt programu Civil w dodatku Dynamo (CivilObject) jest opakowaniem dla elementu programu Civil 3D. Można „odpakować” obiekt, uzyskując dostęp do jego właściwości InternalDBObject
lub InternalObjectId
.
Typ dodatku Dynamo | Opakowania |
---|
Misja wykonana!
Więcej informacji na temat tego przejścia i uaktualniania starszych skryptów można znaleźć w . Aby nadal używać mechanizmu IronPython, wystarczy zainstalować pakiet DynamoIronPython2.7 za pomocą Menedżera pakietów Dynamo.
2024.1
2.18
2024
2.17
Aktualizacja interfejsu użytkownika Odtwarzacza Dynamo
2023.2
2.15
2023
2.13
Aktualizacja interfejsu użytkownika dodatku Dynamo
2022.1
2.12
Dodano ustawienia przechowywania danych wiązania obiektów
Nowe węzły do sterowania wiązaniem obiektów
2022
2.10
Uwzględnienie w instalacji głównej programu Civil 3D
Przejście z IronPython na Python.NET
2021
2,5
2020.2
2,4
2020 Update 2
2,4
Dodano nowe węzły
2020.1
2,2
2020
2,1
Wersja początkowa
Obiekt Autodesk.AutoCAD.DynamoNodes.Object | Element Autodesk.AutoCAD.DatabaseServices.Entity |
CivilObject Autodesk.Civil.DynamoNodes.CivilObject | Element Autodesk.Civil.DatabaseServices.Entity |