pátek 29. dubna 2022

Hromadné přejmenování rodin v projektu Revitu

Chystal jsem se upravit naší šablonu na školení Revitu a zjistil jsem, že v ní máme řadu rodin s předponou „CS“ ještě z časů CADSTUDIA. Chtěl jsem předponu změnit podle aktuálního názvu firmy Arkance Systems na ARS, ale ruční přejmenování všech rodin by mi zabralo dost času.


Naštěstí máme v Revitu k dispozici Dynamo, kde takováto úloha zabere včetně vytvoření skriptu několik minut. Protože se s podobným požadavkem můžete také setkat zde je návod jak na to:

1. Nejprve je třeba načíst všechny rodiny bez ohledu na to, zda jsou v projektu vloženy nebo ne. K tomu poslouží uzly „Element Classes“, kde jako třídu zvolte „Family“ a uzel „All Element of Class“, který načte všechny rodiny. Oba uzly najdete v knihovně Revit>Selection



2. Nyní je třeba odfiltrovat jen rodiny obsahující v mém případě předponu „CS“. Ve vašem případě to může být libovolná sekvence znaků. Nejprve je třeba převést seznam rodin na text a k tomu lze použít uzel „String from Object“, který najdete v knihovně String>Generate. Následně v tomto seznamu najdu ty rodiny, které obsahují text „CS“. K tomu použiji uzel String.Contains z knihovny String>Inspect. Tento uzel mi vrátí seznam všech rodin s informací zda obsahuje nebo neobsahuje daný řetězec – hodnoty True/false. Pro odfiltrování jen rodin s požadovaným textem pak použiji uzel List.FiltrByBoolMask, který najdete v knihovně List>Modify. Jako vstupy použijeme seznam všech rodin a seznam True/False. Výstupem pak bude nový seznam, který tentokrát obsahuje jen rodiny obsahující text „CS
3. V dalším kroku pak zaměníme text za jiný pomocí uzlu String.Replace, který najdete v knihovně String>Modify. Tento uzel má jako vstup textový řetězec a proto ještě musíme seznam rodin převést na text. K tomu můžeme použít uzel „Elemen.Name“ z knihovny Revit>Elements>Element
4. V posledním kroku pak nahrazený text zapíšeme zpět do rodin. Tady si již nevystačíme s výchozími  uzly Dynama, ale musíme použít uzel z balíčku Clockworks s názvem Element.Set Name.

Hotový skript si můžete stáhnout z našeho helpdesku.








Žádné komentáře:

Okomentovat