Arch IFC/pl

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 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.

Importing
All IfcProduct-based entities from IFC2x3 or IFC4 files will be imported into the FreeCAD document. The IFC preferences settings allow you to set how the IFC objects are imported: as full parametric Arch objects (the geometry will, as much as possible, be editable in FreeCAD), as non-parametric Arch objects (objects will carry IFC information and properties but will not be editable), as non-parametric Part shapes (the geometry will be faithfully rendered but IFC information will be discarded), or as one Part shape per floor (one all-in-one object, just for reference). Each of these types looses some information over the previous one, but is lighter on resources, which allows to open bigger files. A last type allows to discard entirely the importing of Arch objects, which is useful for structural analytic models.

Typically, if you try to open a large file and FreeCAD takes too long to import it, try with a lower import mode.

IfcOpenShell supports all IFC2x3 and IFC4 entities (IFC4-add1 and IFC4-add2 are being implemented in v0.6 and might be available by the time you read this) but not all of them can be converted to Arch objects, those that can't will be imported as simple Part shapes. The IFC importer starts by importing all IFC entities derived from IfcProduct, that is, basically, all the objects that compose a building, such as walls or windows or pipes. All other entities needed by one of these objects, such as profiles of extrusion, or components of boolean operations, will be imported as required.

If using an import mode that uses Arch objects, being parametric or not, all objects will carry the full set of IfcProperties attached to each object, grouped by Property Set.

Building structures such as Sites, Buildings and Storeys are also faithfully imported and the structure is correctly recreated in FreeCAD. Group structures (using IfcGroups) are also imported and rendered in FreeCAD, and can be combined with building structures, for ex. having groups inside storeys or storeys inside groups.

IfcAnnotation objects are also imported, as well as linear and curve-based IfcStructuralItem-based entities.

Quantities specified in the IFC file are NOT imported. However, since the geometry is fully recreated in FreeCAD, most of the quantities such as length, area, etc.. are easily obtainable for each object

Enabling the show debug messages in the IFC preferences settings will print a report indicating if any object from the IFC file failed to import.

Note: The BIM Workbench features an IFC explorer tool that allows you to open an IFC file in fast, text-only mode, and import only the parts you wish.

Exporting
Exporting to IFC files will export all the selected objects and their descendants. All Arch/BIM objects are supported, as well as other objects created in other workbenches. The only not fully supported objects, at the moment, are PartDesign bodies, App Parts, and new structures such as Links and LinkGroups, so you will need a bit of testing if using them. Arch References will currently export as IfcBuildingElementProxies.

To export a whole site or building or a whole floor or a group containing other objects, it is only needed to select that building or floor or group. Arch objects will be exported with the type set in their "IFC Type" property. Their IfcProperties are exported as well, and if these objects have an IFC UID from a previous import, the same UID will be kept at export. Objects that are not Arch objects are exported as IfcBuildingElementProxy.

IFC files are exported as IFC2x3 or IFC4 depending on your version of IfcOpenShell, which can be compiled with any of the IFC schemas. If using IfcOpenShell v0.6 or higher, the IFC version specified in the Arch preferences will be used.

If the shape of exported objects is based on an extrusion or a boolean operation, the operation and components will be correctly exported to IFC. If not, the object's shape is exported as IfcFacetedBrep. If the shape contains curves, these will be triangulated. However, IfcOpenShell v0.5 or above feature a serializer, which must be enabled in the Import/Export → IFC preferences. If enabled, this serializer is able to export very complex curved objects such as those based on NURBS, and thus avoid triangulated faces. At the time of writing, though, few other BIM applications support IFC NURBS objects, so a bit of testing is advised.

Odnośniki internetowe
Poradnik Import/Export IFC - compiling IfcOpenShell