Usuwanie nieumieszczonych pomieszczeń w Dynamo

Jak zapewne wszyscy pracujący w Revicie doskonale wiedzą, usunięte w modelu pomieszczenie tkwi dalej w pliku jako „nieumieszczone”. Aby skutecznie się go pozbyć musimy stworzyć odpowiednie zestawienie pomocnicze i tam je usunąć. Nie jest to może szczególnie uciążliwe, ale zawsze można sobie tę czynność usprawnić, używając np. Dynamo 🙂

Tak będzie wyglądał fragment takiego zestawienia. Widzimy, że pomieszczenia nieumieszczone nie mają przypisanych wartości parametrów poziomu, powierzchni etc. Będzie nam to pomocne w ich identyfikacji. Zauważmy jednak też, że podanej powierzchni nie mają również pomieszczenia niezamknięte. Nie chcemy ich usuwać, dlatego nie będziemy filtrować pomieszczeń poprzez parametr powierzchni, a posłużymy się położeniem.

Poniżej przykładowa definicja skryptu Dynamo:

Kolejność działania jest następująca:

-pobieramy z modelu wszystkie elementy będące pomieszczeniami
-dla każdego z pomieszczeń odczytujemy jego parametr lokalizacji i sprawdzamy czy posiada wartość (nie jest ‚null’)
-następnie filtrujemy listę pomieszczeń na podstawie wyniku działania z poprzedniego punktu
-pomieszczenia z otrzymanej listy możemy np. usunąć

Tu warto zauważyć, że Dynamo domyślnie nie posiada funkcji pozwalającej usunąć nam wskazane pomieszczenia. Możemy sobie jednak pomóc przy pomocy prostego skryptu Pythona :

import clr

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

clr.AddReference("RevitServices")
import RevitServices

from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

doc = DocumentManager.Instance.CurrentDBDocument

elements = UnwrapElement(IN[0])

TransactionManager.Instance.EnsureInTransaction(doc)

for e in elements:

        id=e.Id
        doc.Delete(id)        
        
TransactionManager.Instance.TransactionTaskDone()

#Assign your output to the OUT variable.
OUT = 0
Posts created 32

Dodaj komentarz

Twój adres email nie zostanie opublikowany.

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top