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.
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`.
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.
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.

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.

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.

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.minPointimaxPoint- punkty zakresu.viewDirection- kierunek widoku jako wektor Dynamo.

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.minPointimaxPoint- zakres widoku.viewFamilyTypeName- nazwa typu widoku.
Outputs
view- utworzony widok.boundingBox- użyty zakres.viewFamilyType- znaleziony typ widoku.

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.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.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.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.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.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.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.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.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.

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.

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.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.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.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.

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.

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.

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.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.

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.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.

Changelog
- 2026-05-19 - opublikowano osobne paczki `ProBim` 0.24.13 dla Revit 2024, `ProBim for Revit 25-26` 0.25.1 dla Revit 2025/2026 oraz `ProBim for Revit 27` 0.27.1 dla Revit 2027.
- Rozbudowano dokumentację node'ów dla zbrojenia, widoków, geometrii, DWG i MEP.
- Rozbudowano dokumentację node'ów zbrojeniowych: typy prętów, haki, typy MRA, tworzenie prętów, prezentacja na widoku, krzywe osiowe i opisy Multi-Reference Annotation.
- Dodano opisy `Active View`, `Document.Regenerate`, `Line.Vector`, danych CropBox widoku, DWG oraz node'ów MEP.
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