PRO-BIM Logo

Dynamo Revit / ZeroTouch / PRO-BIM

PRO-BIM Dynamo Package dla Revit

Pakiet node'ów ZeroTouch dla Dynamo Revit tworzony pod praktyczne workflow projektowe: zbrojenie, opisy prętów Multi-Reference Annotation, widoki, DWG, MEP, sortowanie geometrii i narzędzia pomocnicze dla automatyzacji BIM. To dokumentacja rozwojowa pakietu, pisana z perspektywy codziennego używania Revita, Dynamo i Revit API.

Najkrócej

PRO-BIM Dynamo Package to zestaw node'ów dla osób, które chcą automatyzować konkretne zadania w Revit: tworzenie prętów zbrojeniowych z krzywych, ustawianie prezentacji zbrojenia na widoku, pobieranie geometrii prętów, tworzenie opisów MRA, pracę z crop boxem widoków, odczyt DWG, sortowanie geometrii oraz podstawowe operacje MEP na konektorach i trasach kablowych.

Pakiet nie próbuje zastąpić całego procesu projektowego. Ma pomagać w miejscach, gdzie Dynamo dobrze się sprawdza: przy powtarzalnych kontrolach, przetwarzaniu danych, budowaniu narzędzi pomocniczych i łączeniu modelu z czytelnym raportem albo widokiem.

Wersje pakietu

Który pakiet zainstalować?

Pakiet jest publikowany osobno dla różnych generacji Revita i Dynamo, ponieważ Autodesk zmienił środowisko .NET pomiędzy wersjami Revita. Wybór właściwego pakietu jest ważny: node'y mają podobny sposób pracy, ale pliki binarne są kompilowane pod inne API i runtime.

ProBim

  • Wersja: 0.24.13
  • Revit: 2024
  • Dynamo: Dynamo Revit 2.19
  • Runtime: .NET Framework 4.8
  • Status: stabilna wersja dla Revit 2024

ProBim for Revit 25-26

  • Wersja: 0.25.1
  • Revit: 2025 i 2026
  • Dynamo: Dynamo Revit 3.x
  • Runtime: .NET 8
  • Status: osobny pakiet dla nowszego środowiska Revita

ProBim for Revit 27

  • Wersja: 0.27.1
  • Revit: 2027
  • Dynamo: Dynamo Revit 27.0
  • Runtime: .NET 10
  • Status: osobny pakiet dla Revit 2027

Zasada wyboru

Instaluj pakiet zgodny z wersją Revita, w której pracujesz. Jeżeli używasz Revit 2024, wybierz `ProBim`. Jeżeli pracujesz w Revit 2025 albo 2026, wybierz `ProBim for Revit 25-26`. Dla Revit 2027 właściwy jest `ProBim for Revit 27`.

Zastosowania pakietu

Do czego służą node'y PRO-BIM

Ten pakiet jest budowany jako techniczny zestaw narzędzi dla Dynamo Revit: do automatyzacji zbrojenia, modelowania pomocniczego, przygotowywania widoków, pracy z geometrią, odczytu danych DWG oraz prostych operacji MEP. Strona nie jest katalogiem marketingowym, tylko praktyczną dokumentacją node'ów, które mają pomagać w codziennej pracy z modelem BIM.

W obszarze zbrojenia pakiet obejmuje node'y do pobierania typów prętów i haków, tworzenia prętów z krzywych, odczytu krzywych środkowych, ustawiania sposobu prezentacji na widoku oraz przygotowania opisów Multi-Reference Annotation. Dzięki temu Dynamo może wspierać nie tylko samo modelowanie zbrojenia, ale też etap porządkowania widoków i przygotowywania dokumentacji.

Osobnym kierunkiem są narzędzia adnotacji w Revit: opisy prętów, typy Multi-Reference Annotation, punkty etykiet, linie wymiarowe i widok, na którym powstaje dokumentacja. Takie node'y są przydatne wtedy, gdy automatyzacja ma pomóc nie tylko utworzyć element modelu, ale też przygotować go do czytelnego opisania na rysunku.

W części widoków znajdują się narzędzia do pracy z aktywnym widokiem, regeneracją dokumentu, crop boxem i tworzeniem widoków detalicznych na podstawie układu współrzędnych. To przydatne przy automatyzacji powtarzalnych rzutów, przekrojów, detali i widoków roboczych, gdzie liczy się kontrola położenia, orientacji oraz zakresu widoku.

Node'y geometryczne pomagają porządkować linie, wektory i kontury: sortować elementy według kierunku, grupować podobne przebiegi, wykrywać kąty oraz sprawdzać zamknięcie obrysów. Takie funkcje są szczególnie użyteczne przed przekazaniem geometrii do node'ów Revita, ponieważ wiele błędów automatyzacji zaczyna się od nieuporządkowanych list, odwróconych kierunków albo niezamkniętych konturów.

Część DWG i MEP rozszerza pakiet o scenariusze spotykane przy koordynacji: odczyt linii i warstw z podkładów DWG, pobieranie konektorów elementów instalacyjnych, analizę punktów oraz wektorów konektorów, a także tworzenie koryt kablowych po liniach. Dzięki temu pakiet może być używany nie tylko przy konstrukcji, ale też przy zadaniach, gdzie model Revit trzeba połączyć z geometrią, trasami instalacyjnymi i danymi z zewnętrznych podkładów.

Dokumentacja poniżej opisuje node'y według kategorii, z naciskiem na to, co dany node robi, jakie przyjmuje dane wejściowe i jaki zwraca wynik. Szczegółowe przykłady workflow, zwłaszcza dla zbrojenia i opisów MRA, będą rozwijane w osobnych artykułach technicznych.

Kategorie node'ów

Co obejmuje dokumentacja

Poniżej znajduje się opis node'ów według obszarów pracy. Nazwy node'ów, inputów i outputów zostają zgodne z Dynamo, a opisy tłumaczą ich praktyczne zastosowanie po polsku.

Info

ProBIM.About

Zwraca podstawową informację o pakiecie PRO-BIM, licencji, stronie i kontakcie. Przydaje się jako szybki punkt identyfikacyjny wersji pakietu w grafie albo w dokumentacji projektu.

Inputs

  • Brak.

Outputs

  • info - tekst z informacją o pakiecie.
ProBIM.About node
Document / Views

Document.Regenerate

Regeneruje aktywny dokument Revita po otrzymaniu wartości wejściowej. Najczęściej używam go jako node pośredni po tworzeniu albo modyfikacji elementów, gdy kolejne node'y muszą czytać stabilną geometrię, referencje, prezentację lub opisy.

Inputs

  • trigger - dowolny obiekt lub lista obiektów z poprzedniego node'a.

Outputs

  • trigger - ten sam obiekt po regeneracji dokumentu.
  • regenerated - informacja, czy regeneracja została wykonana.
Document.Regenerate node

Active View

Zwraca aktywny widok z aktualnego dokumentu Revita. To mały, ale wygodny node, gdy graf ma działać na widoku, na którym użytkownik aktualnie pracuje, bez ręcznego podpinania widoku jako inputu.

Inputs

  • Brak.

Outputs

  • view - aktywny widok jako element Dynamo/Revit.
Active View node

Views.GetViewCropBoxData

Zwraca dane CropBox widoku jako geometrię Dynamo ProtoGeometry, a nie jako surowe obiekty Revit API. Przydaje się przy tworzeniu widoków pomocniczych, analizie zakresu widoku i budowaniu geometrii odniesienia.

Inputs

  • view - widok Revita do odczytu.

Outputs

  • boundingBox - bounding box Dynamo.
  • plane - płaszczyzna Dynamo.
  • minPoint i maxPoint - punkty zakresu.
  • viewDirection - kierunek widoku jako wektor Dynamo.
Widoki Dynamo i CropBox

Views.CreateDetailViewByCS

Tworzy widok szczegółu na podstawie układu współrzędnych Dynamo, punktów zakresu i nazwy typu widoku. To node do sytuacji, w których widok ma wynikać z geometrii albo przygotowanego lokalnego układu odniesienia.

Inputs

  • coordinateSystem - Dynamo CoordinateSystem.
  • minPoint i maxPoint - zakres widoku.
  • viewFamilyTypeName - nazwa typu widoku.

Outputs

  • view - utworzony widok.
  • boundingBox - użyty zakres.
  • viewFamilyType - znaleziony typ widoku.
Views.CreateDetailViewByCS node
Rebar / zbrojenie

Rebar.GetRebarTypes

Zwraca wszystkie typy prętów zbrojeniowych dostępne w aktywnym dokumencie oraz ich nazwy. Node nie wymaga inputów, dzięki czemu może być pierwszym krokiem w grafie tworzącym zbrojenie.

Inputs

  • Brak.

Outputs

  • types - lista RebarBarType.
  • names - nazwy typów w tej samej kolejności.
Rebar.GetRebarTypes node

Rebar.GetRebarHookTypes

Zwraca typy haków zbrojeniowych dostępne w aktywnym dokumencie oraz ich nazwy. Przydaje się jako źródło wyboru dla inputów `startHook` i `endHook` w node'ach tworzących pręty.

Inputs

  • Brak.

Outputs

  • hooks - lista RebarHookType.
  • names - nazwy haków.
Rebar.GetRebarHookTypes node

Rebar.GetMultiReferenceAnnotationTypes

Zwraca typy Multi-Reference Annotation dostępne w aktywnym dokumencie. To wygodne źródło inputu `annotationType` dla node'a `Rebar.MultiReferenceAnnotation`.

Inputs

  • Brak.

Outputs

  • types - lista MultiReferenceAnnotationType.
  • names - nazwy typów.
Rebar.GetMultiReferenceAnnotationTypes node

Rebar.ByCurves

Tworzy pojedynczy pręt zbrojeniowy z listy krzywych Dynamo. Node jest projektowany pod jeden pręt i jeden host; wiele prętów najlepiej obsługiwać po stronie Dynamo przez list levels, lacing albo świadome mapowanie list.

Inputs

  • barType - typ pręta zbrojeniowego.
  • host - element hostujący, np. ściana, belka, płyta lub fundament.
  • curves - krzywe Dynamo definiujące kształt jednego pręta.
  • normal - normalna płaszczyzny pręta.
  • startHook, endHook - opcjonalne haki.
  • startHookOrientation, endHookOrientation - `Right` albo `Left`.
  • createNewShape - czy Revit może utworzyć nowy shape.
  • standardStyle - `true` dla Standard, `false` dla StirrupTie.

Outputs

  • rebar - utworzony pręt.
Rebar.ByCurves node

Rebar.PresentationModes

Zwraca obsługiwane nazwy trybów prezentacji prętów na widoku. To pomocniczy node, który ogranicza ryzyko wpisania literówki w trybie prezentacji.

Inputs

  • Brak.

Outputs

  • modes - `All`, `FirstLast`, `Middle`, `Select`.
Rebar.PresentationModes node

Rebar.SetPresentationInView

Ustawia sposób prezentacji zestawu prętów na wskazanym widoku. Przydaje się, gdy graf tworzy albo przygotowuje zbrojenie do czytelnego pokazania na rysunku.

Inputs

  • rebar - element Rebar.
  • view - widok docelowy; pusty input oznacza aktywny widok.
  • mode - `All`, `FirstLast`, `Middle` albo `Select`.
  • visibleIndexes - indeksy widoczne dla trybu `Select`.

Outputs

  • rebar - wejściowy pręt.
  • mode - zastosowany tryb.
  • visibleIndexes - zastosowane indeksy.
Rebar.SetPresentationInView node

Rebar.GetCenterlineCurves

Pobiera krzywe osiowe pręta jako Dynamo ProtoGeometry. Może zwracać geometrię tylko pozycji widocznych na widoku albo również ukrytych, zależnie od ustawień wejściowych.

Inputs

  • rebar - element Rebar.
  • view - widok używany do sprawdzenia prezentacji.
  • includeHiddenBars - czy uwzględniać ukryte pozycje.
  • includeHooks, includeBendCurves, suppressHooks - ustawienia geometrii osiowej.

Outputs

  • curves - krzywe Dynamo.
Rebar.GetCenterlineCurves node

Rebar.GetCenterlineCurvesByIndex

Pobiera krzywe osiowe dla wskazanych indeksów pozycji prętów. To node bardziej techniczny, przydatny przy kontroli konkretnych pozycji w zestawie.

Inputs

  • rebar - element Rebar.
  • indexes - indeks albo lista indeksów pozycji pręta.
  • includeHooks, includeBendCurves, suppressHooks - ustawienia geometrii.

Outputs

  • curves - krzywe osiowe dla wskazanych indeksów.
Rebar.GetCenterlineCurvesByIndex node

Rebar.MultiReferenceAnnotation

Tworzy opis Multi-Reference Annotation dla pręta na wskazanym widoku. Node zbiera w jednym miejscu typ opisu, punkt taga, linię wymiarową i kierunek wymiarowania.

Inputs

  • view - widok, na którym ma powstać opis.
  • rebar - pręt do opisania.
  • annotationType - typ MRA.
  • tagPoint - pozycja etykiety.
  • dimensionLineOrigin - punkt linii wymiarowej.
  • dimensionLineDirection - kierunek linii wymiarowej.

Outputs

  • annotation - utworzony MRA.
  • tag - utworzony tag.
  • dimension - utworzony wymiar.
  • debug - informacja diagnostyczna.
Rebar.MultiReferenceAnnotation node
Geometry

Line.Vector

Tworzy wektor z linii Dynamo, od punktu startowego do końcowego. Przydaje się jako szybkie źródło kierunku dla sortowania, grupowania albo orientacji opisów.

Inputs

  • line - Dynamo Line.

Outputs

  • vector - wektor Dynamo.
Line.Vector i kierunki geometrii

Geometry.SortByVector

Sortuje geometrię względem projekcji na zadany wektor. To jeden z tych node'ów, które robią porządek przed właściwą operacją: opisem, numeracją, eksportem albo tworzeniem kolejnych elementów.

Inputs

  • geometryList - lista geometrii Dynamo.
  • vector - kierunek sortowania; opcjonalnie globalny X.

Outputs

  • sortedList - posortowana lista.
Geometry.SortByVector node

Geometry.GroupByVector

Grupuje geometrię według położenia lub projekcji na wskazany wektor. Przydaje się przy pracy z liniami, prętami, obrysami i elementami, które trzeba uporządkować po kierunku albo osi.

Inputs

  • geometryList - lista geometrii.
  • vector - kierunek grupowania.
  • precision - tolerancja grupowania.

Outputs

  • groupedList - lista grup.
Geometry.GroupByVector node

Geometry.CategorizeLinesByAngle

Dzieli linie na równoległe, prostopadłe i skośne względem linii referencyjnej. To dobry przykład małej automatyzacji, która pomaga przygotować dane geometryczne zanim staną się inputem dla bardziej ryzykownych operacji.

Inputs

  • referenceLine - linia referencyjna.
  • linesToTest - linie do sprawdzenia.
  • angleTolerance - tolerancja kąta.

Outputs

  • Parallel, Perpendicular, Skewed - sklasyfikowane linie.
Geometry.CategorizeLinesByAngle node

Geometry.CheckClosedContours

Sprawdza, czy krzywe tworzą zamknięte kontury. Przydaje się przed operacjami, które wymagają poprawnego obrysu: tworzeniem regionów, analizą kształtów albo przygotowaniem danych z DWG.

Inputs

  • geometryList - lista krzywych.
  • tolerance - tolerancja łączenia punktów.

Outputs

  • connected - kontury połączone.
  • disconnected - geometria niepołączona.
Geometry.CheckClosedContours node
DWG

DWG.GetLinesAndLayersFromDWG

Odczytuje linie z zaimportowanego lub podlinkowanego DWG i zwraca odpowiadające im nazwy warstw. To pomocne przy porządkowaniu danych wejściowych, które przychodzą z zewnętrznych rysunków 2D.

Inputs

  • importInstance - instancja importu DWG w Revit.

Outputs

  • lines - linie Dynamo.
  • layerNames - nazwy warstw DWG.
DWG.GetLinesAndLayersFromDWG node
MEP

Element.GetConnectors

Pobiera konektory z elementu MEP, jeżeli element je posiada. To podstawowy krok przy analizie połączeń, tras, koryt kablowych, przewodów i fittingów.

Inputs

  • element - element MEP lub element z konektorami.

Outputs

  • elementWithConnectors - elementy z konektorami.
  • connectors - lista konektorów.
  • elementWithoutConnectors - elementy bez konektorów.
Element.GetConnectors node

Connector.Point

Zwraca punkt położenia konektora jako punkt Dynamo. To mały node, ale bardzo praktyczny przy kontroli geometrii połączeń i budowaniu osi tras.

Inputs

  • connector - konektor Revit.

Outputs

  • point - punkt Dynamo.
Connector.Point node

Connector.Vectors

Zwraca lokalne wektory osi konektora. Przydaje się, gdy kierunek połączenia ma sterować dalszą geometrią, sortowaniem albo tworzeniem elementów.

Inputs

  • connector - konektor Revit.

Outputs

  • X_Vector, Y_Vector, Z_Vector - lokalne osie konektora.
Connector.Vectors node

CableTray.ByLine

Tworzy trasę koryta kablowego po linii Dynamo. Node jest przykładem przejścia od prostej geometrii do elementu modelu MEP.

Inputs

  • line - linia Dynamo.
  • cableTrayType - typ koryta kablowego.
  • level - poziom Revita.
  • offset - odsunięcie od poziomu.

Outputs

  • cableTray - utworzone koryto kablowe.
CableTray.ByLine node

CableTray.UnionFitting

Tworzy union fitting między dwoma konektorami koryt kablowych. Przydaje się przy automatycznym domykaniu prostych połączeń MEP.

Inputs

  • connector1 - pierwszy konektor.
  • connector2 - drugi konektor.

Outputs

  • unionFitting - utworzona złączka.
CableTray.UnionFitting node

Changelog

Licencja i kontakt

Pakiet PRO-BIM jest darmowy do użytku niekomercyjnego na licencji PolyForm Noncommercial 1.0.0. Użycie komercyjne w płatnych projektach BIM, konstrukcyjnych, koordynacyjnych, projektowych lub konsultingowych wymaga osobnej licencji komercyjnej.

Kontakt: piwek.konstruktor@gmail.com