Witaj w drugim artykule z serii „Eksport IFC z Revita”. W moim poprzednim, wpisie poruszyłem temat poprawnego mapowania kategorii z Revita do odpowiednich klas formatu IFC (link do artykułu).
Dziś zrobimy o jednek krok w przód . Tym razem będziemy pracować z encjami IFC najwyższego poziomu (“entities” z ang – to klasy IFC). Brzmi strasznie technicznie ? Spokojnie temat jest dość prosty.
Z tego wpisu przede wszystkim dowiesz się, czym są takie enjce oraz czemu są ważne. Następnie pokażę Ci jak dokładnie przygotować odpwiednie paramtery w Revitcie, tak aby poprawnie ustawić prawidłowe właściwości dla wspomnianych już wcześniej encji IFC.
Więc najpierw dowiedzmy się, czym są te tajemnicze encje.
Link do pliku Revit i pliku IFC z tego artykułu możnesz pobrać tutaj
DO YOU WANT TO BECOME A BIM COORDINATOR ? I AM BUILDING AN ONLINE PROGRAM TO BOOST YOUR CARRER IN BIM
Encje IFC
Struktura IFC jest bardzo złożona i zawiera wiele abstrakcyjnych warstw, które nie są widoczne dla nas – “użytkowników końcowych” czyli projektanów, architektów itd. Strukturę plików IFC omawiał Janusz w poprzednich wpisach na blogu, można je znaleźć tutaj:
1. Sekrety formatu IFC cz.1 – artykuł
2. Sekrety formatu ifc cz.2 – artykuł
Pełna struktura IFC nie jest widoczna w większości przeglądarek IFC, które znamy i używamy na co dzień. W większości przypadków przeglądarki IFC pokazują nam taką hierarchiczną strukturę:
Jak widzisz na powyższym diagramie, mamy cztery encje IFC najwyższego poziomu, którymi są:
IfcProject, IfcSite, IfcBuilding i IfcBuilidngStorey.
Te encje możemy traktować jak pewnego rodzaju kontenery informacji, które zostają wczytane przez przeglądarkę IFC i uszeregowane w strukturę “drzewa” (tak jak widać to po prawej stronie na rys. powyżej – widok z przeglądarki BIMvision).
Coraz częściej stawiane są odórne wymagania dotyczące nazewnictwa tych kontenerów IFC. (Mówiąc bardziej technicznie – wymagania dotyczące poprawnego nazewnictwa atrybutów IFC dla encji najwyższego poziomu).
Może powstać pytanie:
Dlaczego prawidłowe nazewnictwo tych encji IFC jest ważne?
Już odpowiadam. Model jest pewnego rodzaju bazą danych o budynku. Dazy danych lubią porządek. Mając ustandaryzowane nazewnictwo tych encji IFC, możemy przeprowadzać wyszukiwanie, filtrowanie i sprawdzanie informacji o modelu za pomocą uniwersalnych reguł i kryteriów, które można zastosować w całym projekcie.
Podobnie jak z bazą danych, jeśli nie mielibyśmy w niej uporządkowanych wartości danych ciężko byłoby nam coś znaleźć, przefiltrować i ewentulanie edytować.
Tak więc dzisiaj chciałbym Ci pokazać, jakie parametry Revita musimy edytować i i dodać, tak aby atrybuty kontenerów IFC zostasły zdefiniowane poprawnie.
Aby to zrobić, najpierw musimy przejść w Revicie do okna dialogowego Project Information w zakładce Manage – Zarządzaj. (używam wersji angielskiej Revit’a )
IfcProject
Najpierw zajmijmy się atrybutami encji IfcProject, takimi jak IfcProject Name, IfcProject LongName , IfcProject Description oraz IfcProject Phase.
Oto jak wygląda lista domyślnych parameterów w oknie Project Information (oczywiście wartości parametrów będą inne niż te poniżej):
Revit ma kilka wbudowanych paramterów, które domyślnie odpowiadają określonym konkretnym atrybutom encji IfcProject. Oto one:
Jak widać na powyższym obrazku:
– Parametr Project Number w Revitcie odpowiada atrybutowi IfcProject Name,
– Parametr Project Name odpowiada IfcProject LongName ,
– Parametr Revita Project Status odpowiada IfcProject Phase,
Załóżmy teraz, że chcę dodać do IfcProject dodatkowy parametr, np. IfcProject Description lub IfcProject ObjectType (często wymagane przez klientów).
Możemy to zrobić za pomocą pliku parametrów współdzielonych IFC (IFC shared parameter file), który jest dostarczany z eksporterem IFC. Twórcy eksportera IFC w Revicie stworzyli zestaw współdzielonych parametrów, których możemy użyć do przygotowania naszego modelu do eksportu IFC.
Wspomniałem już o tym pliku parametrów współdzielonych w pierwszym artykule o mapowaniu. Jeśli więc nie wiesz, jak korzystać z tego pliku, zapoznaj się z poprzednim artykułem.
Ten plik parametrów współdzielonych IFC można pobrać tutaj.
Aby zdefiniować IfcDescription i IfcObjectType w encji IfcProject musimy dodać dwa parametry ze wspomnianego pliku parametrów współdzielonych. Są to parametry, IfcDescription i IfcObjectType.
Następnie przypisujemy je do kategorii Revita Project Information. Parametry związane z eksportem IFC warto trzymać pod jedną kategorią (poniżej ja mam ją w IFC Parameters). Następnie dodajemy wartości tych parametrów, tak aby parametry zostały wyeksportowane do IFC. Pamiętaj że jeśli paramter jest pusty (nie ma wartości, eksporter zignoruje go). Wynik jest następujący:
Podsumowując paramter z pliku parametrów współdzielonych programu Revit < — > wyeksportowane właściwości IFC:
W Revicie IfcDescription odpowiada w IFC – IfcProject Description
W Revicie IfcObjectType odpowiada w IFC – IfcProject ObjectType
Skoro już wiemy, jak zdefiniować właściwości dla IfcProject, zajmijmy się IfcSite.
IfcSite
Drugi kontener informacji w strukturze IFC reprezentuje teren projektu. Możemy zdefiniować atrybuty IfcSite w podobny sposób, jak zrobiliśmy to z encją IfcProject. Dodamy „parametry terenu” z pliku parametrów współdzielonych IFC i przypiszemy je do do kategorii Revita Project Information. Następnie dodamy wartości do tych parametrów.
Oto lista parametrów współdzielonych programu Revit , które odpowiadają określonym atrybutom IfcSite:
– SiteName odpowiada IfcSite Name
– SiteDescription odpowiada IfcSite Description
– SiteLongName odpowiada IfcSite LongName
– SiteObjectType odpowiada IfcSite ObjectType
Na poniższym obrazku – zobacz jak parametry Revita są przypisane do IFC
IfcBuilding
Następnie mamy encję IfcBuilding, która jest reprezentacją budynku. Podobnie jak w przypadku dwóch poprzednich encji, definiujemy atrybuty IFC tej encji w oknie dialogowym Project Information. W programie Revit istnieje już jeden parametr zakodowany na stałe, który odpowiada atrybutowi IfcBuilding Name, a jego nazwa to Building Name.
Resztę parametrów pobieramy ze współdzielonego pliku parametrów. Poniżej wymienię, które parametry Revita odpowiadają określonym atrybutom IfcBuilding:
– BuildingDescription odpowiada IfcBuilding Description
– BuildingLongName odpowiada IfcBuilding LongName
– BuidlingObjectType odpowiada IfcBuilding ObjectType
IfcBuildingStorey
Ostatnią encją IFC jaką się dziś zajmiemy jest IfcBuildingStorey, która odnosi się do (kondygnacji/poziomów) pięter projektu. Te kontenery są takimi “hostami” wszystkich komponentów modelu, takich jak drzwi, okna, kanały wentylacyjne itd.
Podczas pracy z modelem Revita możemy mieć w projekcie wiele różnych poziomów. Wiele z nich jest roboczych. Oczywiście niekoniecznie chcemy przenieść je wszystkie do IFC. W programie Revit, gdy zaznaczymy obiekt poziom – znajduje się w nim parametr Building Story. Jeśli ten parametr jest zaznaczony, to dany poziom zostanie wyeksportowany do IFC, jeśli nie jest, to dany poziom zostanie zignorowany i nie będzie występował w IFC.
W naszym przykładzie mam jeden poziom o nazwie „Mezzanine” – antresola, który nie chcemy wyeksportować dlatego jego paramater Building Storey jest wyłączony. Pozostałe poziomy checmy wyeskportować dlatego mają ten parametr włączony (rys. poniżej):
Wynik eksportu wygląda tak:
Wszystkie piętra z zaznaczoną właściwością BuildingStorey zostały wyeksportowane, a antresola została zignorowana przy eksporcie.
Aby dodać dodatkowy opis do encji IfcBuidingStorey, musimy dodać parametr IfcDescription do kategorii Revita – Level (poziom). Należy go dodać na poziomie instancji.
Warto pamiętać, że jeśli w Twoim modelu Revit znajdują się elementy, które są przypisane do kondygnacji, która nie będzie eksportowana – (jak w naszym przypadku „Poziom antresoli”), te elementy zostaną automatycznie przypisane do kolejnej niższej kondygnacji budynku – (w naszym przypadku – 01 – Entry Level).
Jeśli nie będzie niższych kondygnacji budynku, zostaną one przypisane do kolejnej wyższej kondygnacji budynku.
Ważne jest również, aby pamiętać, że każdy projekt powinien mieć co najmniej jeden poziom, który zostanie przypisany jako Building Storey. W ten sposób zapewnimy, jego eksportort do IFC.
Podsumowując
Jak widzisz, jest stosunkowo łatwo wyeksportować dane programu Revit do konkretnych atrybutów IfcProject, IfcSite, IfcBuilding i IfcBuildingStorey. Istnieje kilka parametrów, które należy dodać, ale jest to zadanie dość proste.
Mam nadzieję, że nauczyłeś się czegoś przydatnego z tego artykułu i od teraz twoje eksporty IFC z Revit będą wyglądały znacznie lepiej 🙂
W następnym artykule wyjaśnię, w jaki sposób możemy eksportować typowe właściwości IFC z Revit tzw Common properties.
Już na koniec jedna sprawa – Jeśli temat eksprotu IFC z Revita cię interesuje to szczegółowo wyjaśniam go w moim kursie online BBC – Become BIM Coordinator, który ukaże się wkrótce.
Ponad 150 lekcji, ponad 25h materiałów wideo pełnych wiedzy BIM. Zainteresowanych zapraszamy do odwiedzenia strony internetowej kursu i zapisania się na listę. Wszystkie szczegóły dotyczące kursu prześlę w najbliższych tygodniach.
Pamiętaj, że jeśli uznasz ten artykuł za przydatny i uważasz, że może zainteresować któregoś z Twoich znajomych, udostępnij go. 🙂
Z góry dziękuję. Trzymaj się ciepło i do usłyszenia w następnym wpisie.