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!