Dziś skupimy się na praktycznym wykorzystaniu możliwości jakie daje Dynamo w Revitowym projekcie. Zacznijmy od początku procesu projektowego i zmierzmy się z wyzwaniem, jakim jest:
Wygenerowanie 20 poziomów w równych odstępach co 4 metry.

Być może już nie raz miałeś wątpliwą przyjemność przechodzenia przez ten proces. Wykonywane kroki nie są skomplikowane , ale z pewnością należą do żmudnych. W naszym alternatywnym rozwiązaniu zamiast pracować na widoku Elewacji, przejdźmy do Dynamo.

Zastanówmy się: jakich informacji potrzebujemy, do utworzenia tylu poziomów? Z pewnością będzie to ciąg kolejnych liczb opisujący rzędne naszych poziomnic: 4, 8, 12, itd. Do tego celu wykorzystamy węzeł o nazwie Sequence. Jak to znajdziemy? Mamy co najmniej dwie opcje:

1. Przechodząc odpowiednio do zakładki List -> Generate -> Sequence

2. Wpisując fragment nazwy szukanego węzła w wyszukiwarce powyżej

Po umieszczeniu naszego węzła w obszarze roboczym, przyjrzyjmy się jego strukturze:

Po lewej stronie mamy dane wejściowe – informacje, których potrzebuje nasza funkcja do prawidłowego wykonania:

  • start – wartość startowa naszej sekwencji
  • amount – liczba elementów naszej listy
  • step – skok pomiędzy kolejnymi elementami

Efekt działania funkcji – dana wyjściowa – będzie dostępna po prawej stronie naszego węzła i będziemy mogli ją wykorzystać jako daną wejściową do kolejnych węzłów.

Wróćmy do naszego zadania. Załóżmy, że w naszym projekcie Revitowym mamy już Poziom 0 na rzędnej 0, a jednostkami naszego projektu są milimetry. Potrzebujemy więc 19 elementów rozpoczynając od wartości 4000, w odstępach co 4000. Uzupełnijmy więc nasz skrypt o odpowiednie dane wejściowe. Tutaj możemy również skorzystać z co najmniej dwóch możliwości:

1. Węzeł Number, który pozwoli nam na wstawienie dowolnej wartości liczbowej. Znajdziemy go pod Input -> Basic -> Number

2. Uniwersalny węzeł Code Block, który pozwala m.in. na wpisanie wielu wartości w kolejnych liniach jednego bloku, pamiętając o średnikach na końcu każdej z nich. Taki blok najprościej wstawimy dwukrotnie klikając myszką na obszarze roboczym.

W naszym skrypcie jako dane wejściowe do węzła Sequence wykorzystamy oba powyższe węzły.

Pamiętaj, że dane wyjściowe możemy łączyć z wieloma danymi wejściowymi, ale do danej wejściowej możemy podłączyć tylko jedną wartość.

Zauważmy, że nasz skrypt w ułamki sekund wyliczy żądaną sekwencję, do której mamy bezpośredni wgląd najeżdżając na dolną część naszego węzła i klikając ikonę pineski.

Gdy mamy już niezbędne wysokości, możemy przejść do tworzenia naszych poziomów. Do tego celu wykorzystamy węzeł Level.ByElevation, który znajdziemy w Revit -> Elements -> Level

Zauważmy, że mamy tutaj również inne węzły, które pozwalają m.in. na wstawienie poziomów o określonej przez nas nazwie (ByElevationAndName).

Został nam już tylko jeden krok – połączenie naszej sekwencji z daną wejściową nowego węzła. Jeżeli w lewym dolnym rogu mamy włączony tryb automatyczny – magia powinna zadziać się sama. Jeśli tak jak ja, zmieniłeś na tryb ręczny, będziesz potrzebował jeszcze jednego kliknięcia w przycisk Uruchom.

Cała praca związana ze żmudnym kopiowaniem poziomów, została wykonana w mniej niż 3 sekundy. Jeśli zamiast 20, wstawialibyśmy takich poziomów 100, zakładam że proces (w przeciwieństwie do kopiowania ręcznego) trwałby niezauważalnie dłużej.

Tak stworzony skrypt możesz zapisać i wykorzystać przy okazji kolejnych projektów. Liczę, że dasz sobie radę ze zmianą liczby poziomów bądź rozstawu wysokości.

W razie problemów jak i wszelkich pomysłów – nie wahaj się zapytać w komentarzu. Poniżej załączam również plik z omówionym skryptem:

Skrypt Dynamo

Napisany przez Adrian Bałazy