Eksport modelu Revit do formatu IFC potrafi sprawiać problemy.
Często zdarza się, że obiekty po wyeksportowaniu są interpretowane nieprawidłowo lub jako klasa ogólna, co utrudnia wszelkie wyszukiwanie i zliczanie – najczęściej problem dotyczy rodzin, tworzonych przez użytkownika, wymodelowanych na szablonie Model ogólny (metryczny).rft.
Poniżej przykładowa sytuacja, pokazana na jednej rodzinie, wymodelowanej właśnie jako Modele ogólne, a nie Meble.
Revit pokazuje jej nadrzędną kategorię jako Modele ogólne. Wprawdzie w tej sytuacji typowego mebla zazwyczaj wystarcza zmiana kategorii w rodzinie na Meble, ale są takie przykłady rodzin, dla których albo nie ma w Revicie odpowiedniej kategorii, albo jej wybranie źle wpływa na zachowanie rodziny (dodatkowe, niechciane parametry), albo też są inne powody, dla których chcemy zachować w Revicie przypisanie do modeli ogólnych i dopiero podczas eksportu do IFC ustawić docelową klasę.
Projekt Revit eksportuję do formatu IFC (poniżej użyty IFC 2×3), a następnie otwieram w bezpłatnej przeglądarce IFC. Rodzina zostaje przypisana do klasy IfcBuildingElementProxy.
Istnieje sposób, aby ręcznie nadawać obiektom Revit klasy IFC. Są tu jednak ograniczenia.
Po pierwsze, jesteśmy ograniczeni do klas IFC, obsługiwanych przez Revit – liczba obsługiwanych klas może różnić się dla odmian IFC (2×3, 4.0, itp.), ale można znaleźć ich listę, wpisując w wyszukiwarkę hasło „Revit Supported IFC Classes”. Więcej szczegółowych klas i typów należy już szukać na stronach http://www.buildingsmart-tech.org/.
Po drugie, niestety nie mamy pełnej swobody w przypisywaniu klas IFC – są rodziny, którym nie uda się opisaną tu metodą zmienić klasy. Szczególnie rodziny systemowe (ściana, dach, gzyms) nie reagują na próby przypisywania klas IFC innych niż wbudowane. Przykładowo, ściana zawsze będzie eksportowana jako IfcWallType (względnie IfcWallStandardCase), niezależnie od wartości parametru IfcExportAs. Gzymsy ścian także nie zechcą przenieść się na inną klasę niż wbudowana (Cornice). Ale już strop płaski jesteśmy w stanie przyporządkować jako klasę dachu, przypisując parametrowi IfcExportAs wartość IfcExportAs wartość IfcRoof.
Aby sterować przypisaniem głównej kategorii Revit do klas IFC, w projekcie musimy najpierw dodać tekstowy parametr współdzielony o nazwie IfcExportAs. Parametr możemy podłączyć z dołączonego do programu Revit pliku parametrów współdzielonych IFC o nazwie IFC Shared Parameters.txt. Dla wersji 2019 znajduje się on w lokalizacji C:\Program Files\Autodesk\Revit 2019.
Do nadpisywania podkategorii na typy IFC służy inny parametr o nazwie IfcExportType.
Dodajemy oba parametry jako parametry Typu, przede wszystkim do kategorii Modele ogólne, choć możemy dodać je do wszystkich kategorii, a już na pewno do tych, dla których przewidujemy nadpisywanie i wiemy z doświadczenia, że zadziała.
Powinniśmy mieć takie oto parametry projektu.
Pozwolę sobie na pewną dygresję na temat zasad stosowania powyższych parametrów współdzielonych. Przykładowo, chcemy, aby konkretna stopa fundamentowa była eksportowana do klasy pali o nazwie IfcPile i dodatkowo do typu IFC o nazwie FRICTION.
Jeśli nie wprowadzimy żadnej wartości, przeglądarka IFC pokazuje klasę IfcSlab, PredefinedType: FLOOR. Na dolnej listwie przeglądarki – Płyty (Parametr w strukturze IFC o nazwie Kategoria – to kategoria rodziny wczytywalnej Revit).
Po dodaniu klasy IfcPile (lub IfcPileType) przeglądarka pokazuje klasę IfcPile. Na dolnej listwie przeglądarki – Pale.
Po wpisaniu klasy IfcPileType i typu FRICTION przeglądarka pokazuje klasę IfcPile, PredefinedType: FRICTION.
Mogę dokładnie to samo osiągnąć stosując tylko parametr IfcExportAs, podając typ po nazwie klasy i znaku kropki (po prawej).
Wróćmy do ćwiczenia z początku bloga. Mamy w projekcie dodane parametry współdzielone IFC.
Bazując na przykładzie ze stopą fundamentową, po wskazaniu rodziny, za pomocą Edytuj Typ wpisuję dla parametru IfcExportAs wartość w postaci nazwy obsługiwanej przez Revit klasy IFC oraz po kropce typ (IfcFurnitureType.TABLE).
Po wyeksportowaniu nowego pliku IFC sprawdzam go w przeglądarce IFC. Obiekt jest już identyfikowany jako mebel, ale sukces jest połowiczny, gdyż typ IFC nie został zidentyfikowany – być może nie jest jeszcze obsługiwany przez moduł eksportu IFC 4.0 programu Revit. Na listwie przeglądarki widoczna jest kategoria Meble.
Na koniec dodam, że są istnieje narzędzie, ułatwiające przypisywanie klas i typów IFC, ale o tym napiszę już na innym blogu.