Hromadné formátovanie výkazov v Revite pomocou Dynama

    V dnešnom článku si spolu ukážeme postup tvorby Dynamo skriptu, ktorý nám umožní hromadne kontrolovať a meniť šírky vybraných stĺpcov vo viacerých výkazoch Revitu naraz.


    Drvivá väčšina vlastností výkazov sa dá uložiť do šablóny pohľadu, avšak šírky jednotlivých stĺpcov tabuliek výkazu sú výnimkou. Pripravíme si teda skript pomocou Dynama – integrovaného programovacieho jazyku v Revite, ktorý otvoríme tlačítkom Dynamo na karte Ribbonu Správa.


    Pre správu formálnych vlasností výkazov využijeme externý balíček (package) od Archi-lab.net, ktorý si do Dynama doinštalujeme pomocou záložky Balíček -> Vyhledat balíček, kde vyhľadáme predmetný package (archi-lab.net) a tlačítkom Instalovat ho do Dynama doinštalujeme.


    Tento balíček obsahuje veľké množstvo zaujímavých uzlov (nodes) pre rôznorové použitie. Konkrétny uzol, ktorý potrebujeme sa nazýva Schedule Formatting a nachádza sa na panely Library pod skupinou Add-ons v sekcii archilab -> Revit -> Schedule.


    Tento uzol vie kontrolovať niekoľko formálnych nastavení výkazov a to konkrétne názov hlavičky (parametra), či má byť stĺpec výkazu skrytý, horizontálne a vertikálne zarovnanie stĺpca a nami požadovanú šírku vybraného stĺpca (uzlový vstup _columnWidth).

    Požadované hodnoty týchto nastavení nadefinujeme pomocou uzla Code Block (viď. nasledovný obrázok). 

    Poznámka – šírka stĺpcov je v tomto uzle definovaná v jednotkách stopy (feet). 

    Všetky nadefinované hodnoty pospájame s predmetnými uzlovými vstupmi uzla Schedule Formatting.

    Následne je potrebné zadefinovať výkazy, ktoré chceme týmto skriptom modifikovať. Využijeme na to uzol View Type, ktorého hodnotou budú Schedule (teda Výkazy) a tento uzol prepojíme s uzlom Views.GetByType, nakoľko potrebujeme výstup konkrétnych elementov, teda výkazov a nie výstup „Typ pohľadu“.

    Po spustení skriptu by sa nastavenia v uzle Schedule Formatting aplikovali na všetky výkazy v projekte. Ak však chceme vybrať konkrétnu množinu výkazov, napr. podľa nejakého reťazca znakov nachádzajúcich sa v ich názve, tak budeme postupovať nasledovne:

    Do uzlového editoru si vložíme ďalší node s názvom Element.GetParameterValueByName, ktorý nám umožní prečítať hodnotu konkrétneho paramera – teda v našom prípade Názov pohľadu (výkazu) (viď. nasledovný obrázok).

    Poznámka – uzlový vstup „parameterName“ očakáva presný názov parametra, ktorý sa mení s aktuálnou jazykovou verziou Revitu, t.z. že pokiaľ v Českej jazykovej verzii sa jedná o parameter „Název pohledu“, tak v Anglickej jazykovej mutácii to bude „View name“.


    Výkazy následne vyfiltrujeme pomocou uzla List.FilterByBoolMask kde do vstupu list pripojíme všetky výkazy projektu, teda výstup uzlu Views.GetByType a do vstupu mask ďalší uzol String.Contains, pomocou ktorého budeme hľadať konkrétny reťazec znakov v názvoch výkazov projektu.

    Výstup uzla Element.GetParameterByName prepojíme s uzlovým vstupom string uzla String.Contains a vstup searchFor, teda požadovaný reťazec znakov zadefinujeme ideálne uzlom Code Block.


    Teraz už stačí len prepojiť výstup uzla List.FilterByBoolMask s uzlovým vstupom _schedule v uzle Schedule Formatting a zaškrtnúť „Pomocí podlaží @L1“ a skript máme hotový.


    Existuje samozrejme nespočetné množstvo modifikácií a vylepšení takéhoto skriptu, každopádne ak by ste sa chceli o Dyname a ohýbaní zdanlivých limitov Revitu dozvedieť viac, neváhajte nás kontaktovať, pripravíme Vám školenie, či konzultáciu na mieru.

Videoukážka:

Komentáře