Architektura: IFC

From FreeCAD Documentation
Revision as of 15:47, 22 July 2020 by Kaktus (talk | contribs) (Created page with "Jeśli kształt eksportowanych obiektów opiera się na wyciskaniu lub operacji logicznej, operacja i komponenty zostaną poprawnie wyeksportowane do IFC. Jeśli nie, kształt...")

W stanowiskach pracy Arch oraz Build Information Modeling (BIM) znajduje się Industry Foundation Classes (IFC) importer i eksporter. Format IFC jest stale rosnącym, powszechnym formatem wymiany danych pomiędzy aplikacjami BIM, stosowanymi w architekturze i inżynierii.

Zarówno importer, jak i eksporter zależą od zewnętrznego oprogramowania open-source o nazwie IfcOpenShell, które może, ale nie musi być dołączone do Twojej wersji FreeCAD, w zależności od platformy i miejsca, w którym otrzymałeś swój pakiet FreeCAD. Jeżeli IfcOpenShell jest poprawnie zainstalowany, zostanie wykryty przez FreeCAD i użyty do importu i eksportu plików IFC. Prostym sposobem na sprawdzenie czy IfcOpenShell jest obecny i dostępny jest albo próba zaimportowania lub wyeksportowania pliku IFC, albo po prostu wpisz poniższe dane w konsoli Python FreeCAD (znajdziesz pod menu View → Panels):

import ifcopenshell

Jeśli nie pojawi się żaden komunikat o błędzie, wszystko jest w porządku, IfcOpenShell jest poprawnie zainstalowany. W przeciwnym razie, będziesz musiał zainstalować go sam. Czytaj dalej.

Uwaga: Narzędzie BIM Setup również będzie poszukiwać IfcOpenShell i wyświetli powiadomienie, jeśli nie jest on zainstalowany.

Uwaga: W przeszłości w Środowisku pracy Arch znajdował się prostszy importer IFC, który nie był zależny od IfcOpenShell. Nadal można wymusić korzystanie z tego starego importera Python IFC, poprzez włączenie powiązanej opcji w ustawieniach preferencji Arch. Ale ten importer został wycofany, może nie działać poprawnie i będzie mógł importować tylko bardzo mały podzbiór obiektów IFC.

Zastosowanie IfcOpenShell jest wysoce zalecane, ponieważ jest on znacznie szybszy i mocniejszy niż wewnętrzny parser. Uważamy, że jest to jeden z najlepszych handlerów IFC na świecie...

Pozyskiwanie IfcOpenShell

Na stronie internetowej IfcOpenShell, znajdziesz linki do pobrania różnych narzędzi, które wchodzą w skład programu IfcOpenShell. To czego potrzebuje FreeCAD to ten zwany IfcOpenShell-Python. Musisz zadbać o wybór właściwej architektury dla Twojego systemu operacyjnego (32 bity lub 64 bity), a także potrzebujesz identycznej wersji Pythona zgodnej z programem FreeCAD. Wersja Python używana przez FreeCAD jest wskazana w pierwszej linii konsoli Python FreeCAD, znajdującej się w menu Widok → Panele. Potrzebujesz wersji IfcOpenShell z tymi samymi dwoma pierwszymi cyframi. Trzeci numer nie jest ważny. Na przykład, jeśli twoja wersja FreeCAD Python to 3.7.4, potrzebujesz IfcOpenShell w wersji 3.7.X

IfcOpenBot

Pakiety dostępne na stronie IfcOpenShell są jednak zazwyczaj bardzo stare i nie obsługują nowszych wersji Pythona. Dlatego zalecamy korzystanie z innej usługi dostarczanej przez deweloperów IfcOpenShell, która nazywa się IfcOpenBot. Jest to automatyczny system, który od czasu do czasu buduje serię pakietów z kodu źródłowego IfcOpenShell. Aby pobrać jeden z tych pakietów, kliknij na link "Commits" w repozytorium GitHub, i znajdź commits, które mają komentarz (mała ikona "wiadomości"). Te komentarze są miejscem gdzie znajdziesz pakiety zbudowane przez IfcOpenBot.

W czasie pisania, aktualna stabilna wersja IfcOpenShell, która znajduje się w jego gałęzi "master", to v0.5. Jednak v0.6 jest już bardzo stabilna i zawiera wiele ulepszeń, takich jak wsparcie dla IFC2x3 i IFC4 jednocześnie. Zalecamy przełączyć przycisk "branch" na v0.6 i zamiast tego użyć jednego z nich. Ponownie, upewnij się, że pobrałeś odpowiedni pakiet dla swojej wersji FreeCAD.

Kompilacja

Możesz również oczywiście skompilować IfcOpenShell samodzielnie. Ponieważ ma prawie takie same zależności jak FreeCAD, jeśli sam już kompilujesz FreeCAD, kompilacja IfcOpenShell będzie bardzo łatwa i zazwyczaj nie będzie wymagała żadnych dodatkowych zależności.

Instalacja IfcOpenShell

Pakiet pobrany z jednej z powyższych lokalizacji to plik zip, który zawiera folder o nazwie ifcopenshell z kilkoma innymi plikami i folderami w środku. Instalacja to po wykrycie folderu ifcopenshell przez Pythona (więc komenda import ifcopenshell, której użyliśmy powyżej zakończyła się sukcesem). Lista folderów gdzie Python szuka modułów może być zdobyta poprzez wpisanie tych dwóch linii w konsoli Pythona FreeCAD:

import sys
for p in sys.path: print(p)

I naciśnij klawisz Enter twice.

Aby zainstalować IfcOpenShell, wystarczy rozpakować pobrany pakiet i umieścić folder "ifcopenshell" w dowolnej lokalizacji określonej przez powyższe polecenia.

Zauważysz, że niektóre z tych lokalizacji są folderami systemowymi (oficjalnie zalecanymi lokalizacjami są foldery "site-packages" lub "dist-packages"), co sprawi, że IfcOpenShell zainstalowany zostanie w całym systemie i będzie dostępny dla innych aplikacji takich jak Blender, ale możesz woleć nie zanieczyszczać swoich folderów systemowych czymś skopiowanym ręcznie i umieścić go w jednym z folderów samego programu FreeCAD. Dobrą propozycją jest folder bin w lokalizacji FreeCAD lub folder makr (który możesz również znaleźć w menu Makra → Makra).

Po skopiowaniu folderu ifcopenshell do jednego z prezentowanych miejsc sprawdź, czy działa on poprawnie, wprowadzając:

import ifcopenshell

w konsoli Python we FreeCAD. Jeśli nie pojawi się żaden błąd, jesteś gotów do pracy.

Importowanie

Wszystkie elementy IfcProduct z plików IFC2x3 lub IFC4 będą importowane do dokumentu FreeCAD. Ustawienia preferencji IFC pozwalają na określenie sposobu importowania obiektów IFC: jako pełne parametryczne obiekty Arch (geometria będzie, w miarę możliwości, edytowalna w FreeCAD), jako nieparametryczne obiekty Arch (obiekty będą posiadać informacje IFC i właściwości, ale nie będą edytowalne), jako nieparametryczne kształty części (geometria będzie wiernie oddana, ale informacje IFC zostaną odrzucone), lub jako jeden kształt części na piętro (jeden obiekt typu „wszystko w jednym”, tylko w celach informacyjnych). Każdy z tych typów traci pewne informacje w stosunku do poprzedniego, ale jest lżejszy od zasobów, co pozwala na otwieranie większych plików. Ostatni typ pozwala na całkowite odrzucenie importu obiektów Arch, co jest przydatne w modelach analityki strukturalnej.

Zazwyczaj, jeśli próbujesz otworzyć duży plik, a import do FreeCAD trwa zbyt długo, spróbuj użyć niższego trybu importu.

IfcOpenShell obsługuje wszystkie encje IFC2x3 i IFC4 (IFC4-add1 i IFC4-add2 są implementowane w v0.6 i mogą być dostępne do czasu, kiedy to przeczytasz), ale nie wszystkie z nich mogą być przekonwertowane na obiekty Arch, te, które nie mogą, zostaną importowane jako proste kształty Part. Importer IFC rozpoczyna od importowania wszystkich elementów IFC pochodzących z IfcProduct, czyli w zasadzie wszystkich obiektów, które składają się na budynek, takich jak ściany, okna lub rury. Wszystkie inne elementy wymagane przez jeden z tych obiektów, takie jak profile wyciągnięcia lub komponenty operacji logicznych, zostaną zaimportowane zgodnie z wymaganiami.

W przypadku zastosowania trybu importu wykorzystującego obiekty Arch, parametrycznego lub nie, wszystkie obiekty będą posiadały pełny zestaw IfcProperties dołączony do każdego obiektu, pogrupowany według zestawu właściwości.

Konstrukcje budowlane takie jak witryny, budynki i kondygnacje są również wiernie importowane, a ich struktura jest prawidłowo odtworzona w programie FreeCAD. Konstrukcje grupowe (przy użyciu IfcGroups) są również importowane i renderowane w FreeCAD i mogą być łączone z konstrukcjami budowlanymi, np. posiadającymi grupy wewnątrz pięter lub kondygnacji wewnątrz grup.

Importowane są również obiekty IfcAnnotation, jak również obiekty liniowe i oparte na krzywych elementy IfcStructuralItem.

Ilości określone w pliku IFC są importowane w formacie NOT. Ponieważ jednak geometria jest w pełni odtworzona w FreeCAD, większość wielkości takich jak długość, powierzchnia itp. jest łatwo dostępna dla każdego z obiektów.

Włączenie w ustawieniach preferencji IFC opcji pokaż komunikaty o błędach spowoduje wyświetlenie raportu informującego, czy jakiś obiekt z pliku IFC nie został zaimportowany.

Uwaga: Środowisko pracy BIM posiada narzędzie IFC explorer, które pozwala na szybkie otwieranie pliku IFC w trybie tekstowym i importowanie tylko wybranych części.

Eksportowanie

Eksport do plików IFC wykona wyeksportowanie wszystkich wybranych obiektów i ich potomków. Obsługiwane są wszystkie obiekty Arch/BIM, jak również inne obiekty utworzone w innych Środowiskach pracy. Jedynymi nie w pełni obsługiwanymi obiektami są obecnie elementy PartDesign, App Parts oraz nowe struktury, takie jak Linki i LinkGroups, więc trzeba będzie trochę przetestować ich użycie. Arch: References będzie obecnie eksportowane jako IfcBuildingElementProxies.

Aby wyeksportować cały obiekt lub budynek albo całe piętro lub grupę zawierającą inne obiekty, wystarczy wybrać tylko ten budynek lub piętro lub grupę. Obiekty Arch będą eksportowane z ustawionym typem we właściwości Typ IFC. Eksportowane są również ich IfcProperties, a jeżeli obiekty te mają IFC UID z poprzedniego importu, to ten sam UID zostanie zachowany przy eksporcie. Obiekty, które nie są obiektami typu Arch, są eksportowane jako IfcBuildingElementProxy.

Pliki IFC są eksportowane jako IFC2x3 lub IFC4 w zależności od wersji programu IfcOpenShell, który może być skompilowany z dowolnym schematem IFC. Jeśli używasz IfcOpenShell v0.6 lub wyższej, zostanie użyta wersja IFC określona w preferencjach Arch.

Jeśli kształt eksportowanych obiektów opiera się na wyciskaniu lub operacji logicznej, operacja i komponenty zostaną poprawnie wyeksportowane do IFC. Jeśli nie, kształt obiektu jest eksportowany jako IfcFacetedBrep. Jeśli kształt zawiera krzywe, to będą one triangulowane. W przypadku IfcOpenShell v0.5 lub nowszych jest jednak dostępny serializer, który musi być włączony w preferencjach Import/Export → IFC. Jeśli opcja ta jest włączona, serializer może eksportować bardzo złożone obiekty krzywe, takie jak te oparte na NURBS, a tym samym unikać powierzchni triangulowanych. Jednak w momencie pisania tego tekstu niewiele innych aplikacji BIM obsługuje obiekty IFC NURBS, dlatego zaleca się trochę testów.

Odnośniki internetowe

Poradnik Import/Export IFC - compiling IfcOpenShell