Cześć, miło mi widzieć Cię na mojej stronie. Jeśli szukasz narzędzi, które pomogą Ci w codziennej pracy architekta, inżyniera czy projektanta to dobrze trafiłeś/łaś. Poniżej znajdują się najnowsze wpisy. Jeśli szukasz czegoś konkretnego można to zrobić za pomocą wyszukiwarki lub po kategoriach postów. Jeśli chcesz dowiedzieć się czegoś więcej na mój temat to zapraszam do zakładki "o mnie". Skorzystałeś z moich rozwiązań? Możesz mi się odwdzięczyć stawiając wirtualną kawę za pomocą przycisku "Buy me a coffe"
Cześć, miło mi widzieć Cię na mojej stronie. Jeśli szukasz narzędzi, które pomogą Ci w codziennej pracy architekta, inżyniera czy projektanta to dobrze trafiłeś/łaś. Poniżej znajdują się najnowsze wpisy. Jeśli szukasz czegoś konkretnego można to zrobić za pomocą wyszukiwarki lub po kategoriach postów. Jeśli chcesz dowiedzieć się czegoś więcej na mój temat to zapraszam do zakładki "o mnie". Skorzystałeś z moich rozwiązań? Możesz mi się odwdzięczyć stawiając wirtualną kawę za pomocą przycisku "Buy me a coffe"
Dzięki tej funkcji nie będziesz musiał ustawiać tych samych nadpisań filtrów dla wielu widoków. Wystarczy utworzyć zestaw na jednym z widoków, a następnie wystarczy skopiować filtry.
Funkcja revit kopiowanie filtrów upraszcza proces tworzenia widoków w modelu. Dzięki niej nie jest wymagane tworzenie tych samych filtrów dla każdego widoku. Wystarczy je przekopiować. Ta funkcja przyda Ci się:
Ustawisz odpowiednie widoki w modelu
Przygotowujesz rysunki do druku na skomplikowanym modelu
W trakcie projektu pojawia się potrzeba utworzenia specyficznych filtrów
Instrukcję instalacji nakładki znajdziesz w tym artykule.
Działanie programu
W pierwszej kolejności program pobiera listę filtrów w otworzonym przez nas widoku, a następnie wyświetla nam możliwe do wyboru warianty. Możliwe jest wybranie kilku revit filtrów na raz!
Następnie przechodzimy do okna wyboru widoków do jakich chcemy skopiować nasze ustawienia filtrów. Tutaj również możliwy jest wybór wielu widoków.
Po kliknięciu przycisku zatwierdzającego program nadpisuje filtry, a następnie zwraca nam listę przetransferowanych filtrów. Dzięki temu możemy upewnić się, że wszystko przebiegło po naszej myśli.
Film z działania programu
Kod programu – revit kopiowanie filtrów
Poniżej znajduje się kod programu z pierwszej wersji nakładki. Po więcej zapraszam na mojego GitHubie, gdzie na bieżąco pojawiać się będą nowe wersje nakładki.
Python
Copyright(C)2022 Paweł Kińczykfrom rpw import revit as rvfrom Autodesk.Revit.UI.Selection import*from Autodesk.Revit.DB import*from pyrevit import formsfrom pyrevit import outputdoc = rv.docuidoc = rv.uidocclassView_copy:def__init__(self):## Get active viewself.views_to_paste =[]self.active_view = doc.ActiveView## Get active view filters filters =[doc.GetElement(i)for i inself.active_view.GetFilters()]self.filter_dict ={x.Name : x for x in filters} views =FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Views).WhereElementIsNotElementType().ToElements() views_template =[]for view in views:if view.IsTemplate ==True: views_template.append(view)self.views_dict ={Element.Name.GetValue(x): x for x in views_template}## Pick filters you want to copyself.selected_option_a = forms.SelectFromList.show(self.filter_dict.keys(),title="Select filters in active view",multiselect=True,button_name='Select filters to copy')self.selected_option_b = forms.SelectFromList.show(self.views_dict.keys(),title="Select views where you want to past filters",multiselect=True,button_name='Select views to past filters')## Set filters to new view filters_overr =[] filters_overr_id =[] transaction =Transaction(doc,'Add insulation - PYLAB') transaction.Start()try:forfilterinself.selected_option_a: f =self.filter_dict[filter] filter_id = f.Id filters_overr.append(self.active_view.GetFilterOverrides(filter_id)) filters_overr_id.append(filter_id)for view inself.selected_option_b:for filter_overr_id, filter_overr inzip(filters_overr_id, filters_overr):self.views_dict[view].SetFilterOverrides(filter_overr_id, filter_overr)print("View: "+str(view)+" <- Filter: "+str(doc.GetElement(filter_overr_id).Name))exceptTypeErroras e:print("Error: \n You didn't pick any view or filter")exceptExceptionas e:print("Error:")print(e) transaction.Commit()output = output.get_output()output.print_html('<font size="6"><strong>Results:</strong></font>')a =View_copy()
Wszelkie nieprawidłowości w działaniu programu jakie występują podczas korzystania proszę zgłaszać na moich kontach społecznościowych, albo koncie GitHub.
Ta strona korzysta z ciasteczek aby świadczyć usługi na najwyższym poziomie. Dalsze korzystanie ze strony oznacza, że zgadzasz się na ich użycie.ZgodaPolityka prywatności