03 svi

Disallow Joins na gredama u Revit-u pomoću Dynama

Sprječavanje spajanja (Disallow Join) na gredama (Structural Framing elementi) u Revit-u je naporan posao.

Dobra je stvar što se to lako može riješiti uz malu pomoć Dynama.

Ako ste poput mene, ne volite ovisiti o raznim Dynamo paketima, posebno za nešto jednostavno poput ovog. Uz malu pomoć Python koda, automatski isključivanje spajanja (Disallow Join) krajeva greda (kategorija Structural Framing) je lako ostvarivo.

U Dynamo datoteci postoje dvije mogućnosti (samo povežite odgovarajuće veze), spriječiti spajanje (disallow join) samo na odabranim elementima ili spriječiti spajanje (disallow join) sve elemente (instance) u projektnom modelu (kako je prikazano narančastom linijom na slici ispod).

Python node (čvor) izgleda ovako (Pogledaj komentare unutar koda):

#### Uvoz općih referenci  ##### 
import clr
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
#### Kraj općih referenci  ##### 
# Odmatanje (unwrap) ulaznih podataka (input-a)
input = UnwrapElement( IN[0] )
elements = []
# Stavi ulazne podatke u listu
try:
    for e in input:
        if e.Category.Name == "Structural Framing":
            elements.append(e)
except:
    if input.Category.Name == "Structural Framing": 
        elements.append(input)
# Startaj Revit transakciju
doc = DocumentManager.Instance.CurrentDBDocument
TransactionManager.Instance.EnsureInTransaction(doc)
for e in elements:
    Autodesk.Revit.DB.Structure.StructuralFramingUtils.DisallowJoinAtEnd(e, 0)
    Autodesk.Revit.DB.Structure.StructuralFramingUtils.DisallowJoinAtEnd(e, 1)
# Kraj Revit transakcije
TransactionManager.Instance.TransactionTaskDone()
# Zamotaj rezultate:
OUT = elements

OVDJE PREUZMITE SKRIPTU

Nadam se da će vam dobro koristiti!

Odgovori

Vaša adresa e-pošte neće biti objavljena. Obavezna polja su označena sa *