04 velj

Disallow Joins na staklenim stijenama (Curtain Walls) pomoću Dynama

Sprječavanje spajanja (Disallowing joins) na staklenim stijenama (Curtain Walls) u Revitu je naporan posao.

Dobra stvar je da je problem moguće riješiti pomoću malo Dynama.

Ako ste poput mene i ne volite ovisiti o raznim paketima za Dynamo (Dynamo packages), a posebice radi ovako jednostavnih zadataka onda ćete morati napisati i malo Python koda. On će nam pomoći da jednostavno otkačimo “spajače” (?) na krajevima staklenih stijena (Curtain Walls).

Dynamo datoteku možete besplatno preuzeti ili ju napravite sami. Ako ju skinete, vidjet ćete da ima dvije opcije: da otkači spajače na odabranim ili na svim instancama “Curtain Walls (kako prikazuje narančasta linija na slici ispod).

Ako imate problema sa selektiranjem Curtain Walls, pročitajte članak kako isključiti vidljivost Curtain Walls familije pa prema njemu napravite inverzni filter.

Disallow Curtain Walls Joins Dynamo skripta

Čvor (node) s Python kodom izgleda ovako (komentari su unutar koda):

##### Početak općenitog uvoza referenci i biblioteka

import clr

# uvoz Revit API
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *

# uvoz Revit Elements
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)

# uvoz DocumentManager-a i TransactionManager-a
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

# dohvati trenutni Revit model (dokument)
doc = DocumentManager.Instance.CurrentDBDocument

##### Završetak općenitog uvoza



# "Odmotavanje" ulaznih podataka (selekcije)
inputs = UnwrapElement( IN[0] )
curtainWalls = []
# Inicijalizacija brojača
n = 0


# Iz ulaznih podataka izaberi samo instance Curtain Walls i stavi u listu curtainWalls
for e in inputs:
    try:
        elementType = doc.GetElement(e.GetTypeId())
        if elementType.Kind == WallKind.Curtain:
            curtainWalls.append(e)
            n = n + 1
    except:
        print("not curtain wall")


# Početak transakcije
TransactionManager.Instance.EnsureInTransaction(doc)

for e in curtainWalls:
    Autodesk.Revit.DB.WallUtils.DisallowWallJoinAtEnd(e, 0)
    Autodesk.Revit.DB.WallUtils.DisallowWallJoinAtEnd(e, 1)

# Kraj transakcije
TransactionManager.Instance.TransactionTaskDone()


# Zamotaj izlazne rezultate (samo za debug)
OUT = ["Disallowed joins on walls: " + str(n), curtainWalls]

PREUZMI DYNAMO SKRIPTU

Hope you get good use of it!

One thought on “Disallow Joins na staklenim stijenama (Curtain Walls) pomoću Dynama

  1. Pingback: Kako sakriti Curtain Walls u Revit prikazu - engipedia

Odgovori

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