Czy BIM może być wolny od skomplikowanych standardów i procedur? Czy możemy po prostu przesyłać geometrie reprezentujące budowle, z dołączonymi do nich informacjami, bez czytania setek stron dokumentacji? Na początku roku 2022 pojawił się nowy format BIM. Nazwa to dotbim (rozszerzenie: .bim). Projekt jest w 100 procentach darmowy i otwarty i znacząco różni się od istniejących już projektów.
Dotbim został stworzony w celu znacznego uproszczenia plików BIM. Dlatego też podpunkty manifestu projektu wyglądają tak:
- Przekazujmy geometrię i dane
- Za darmo i otwarcie
- Narzędzia do formatu powinny być możliwie tworzone zaledwie w ciągu kilku godzin
- Dokumentacja formatu powinna mieścić się na jednej stronie
- Upewnijmy się, że każdy może wspierać wszystkie opcje formatu
Dlatego też schemat plików .bim jest możliwie najprostszy. Dokumentacja zawiera jedną stronę, więc przejdźmy przez nią teraz wraz z komentarzem.
Geometria w nowym formacie BIM
Geometrie, które mogą być zapisywane w plikach .bim to wyłącznie siatki trójkątów. Nie ma możliwości zapisać jakiegokolwiek innego typu geometrii. Oznaczo to tyle, że wszystkie inne typy geometrii muszą być najpierw zdyskretyzowane do takich siatek.
Takie podejście sprawia, że odczytanie takiego pliku staje się banalnie proste. Większość formatów CAD wspiera wiele różnych typów geometrii, to jednak oznacza, że każdy z nich musi być poprawnie obsłużony przez importer. W rzeczywistości jest to spore wyzwanie. To jest właśnie jeden z powodów dlaczego użytkownicy programów CAD/BIM spotykają się raz na jakiś czas z przypadkami gdzie podczas importu / eksportu danego pliku pewne elementy zniknęły bądź wyświetlają się inaczej w programie docelowym.
Kolejnym argumentem za ograniczeniem się do siatek jest fakt, że jest to najprawdopodobniej najprostsza forma zapisu geometrii 3d. Wystarczy więc dla formatu .bim napisać prawidłowo importer siatek, co jest stosunkowo proste: a wtedy załadują się wszystkie geometrie, a nie tylko niektóre z nich.
Niektórzy mogliby teraz powiedzieć: siatki są OK, ale to geometrie typu BREP są w stanie opisać obiekty w 3d w sposób dokładny. To prawda, ale w mojej opinii w branży AEC w większości przypadków nie potrzebujemy nieskończenie dokładnych elementów obiektów takich jak ściany, belki, pręty itp. Dla koordynacji, a często również dla produkcji: siatki są wystarczającym rozwiązaniem. Zastanów się: czy BIM manager jest w stanie powiedzieć czy patrzy na siatkę czy na BREP? Nasza branża znacznie różni się od branż automotive / naval czy branży meblarskiej, gdzie na BREP-y jest uzasadnione zapotrzebowanie.
Transformacje w formacie .bim
Są tylko dwie transformacje dozwolone w plikach .bim: translacja i obrót. Nazywamy je tutaj “vector” i “rotation”. Więc każda zapisana siatka może być przeniesiona za pomocą tych dwóch transformacji. Każdy element zawiera id siatki, która go opisuje, a następnie jest ona przesuwana i obracana w docelowe miejsce. To również oznacza, że używanie jednej siatki wiele razy dla różnych elementów jest możliwe! Jest to bardzo pomocne gdy chcemy zmniejszyć objętość plików, bo to oznacza że siatka raz zapisana, może być wykorzystywana wielokrotnie. Dla przykładu: wyobraźmy sobie stadion z tysiącem takich samych krzeseł. Wtedy tylko jedna siatka, która reprezentuje takie krzesło, będzie zapisana w pliku raz, a następnie będzie do niej użyta referencja w tysiącu różnych miejsc.
Dane
Do elementów dołączamy również dane. Wszystkie dane w plikach .bim zapisujemy w postaci słownika. Więc to co mamy to lista kluczy i wartości, które opisują nasz element. Jakie dane możemy zapisać dla danego elementu w takiej formie? Jakie chcemy: to zależy od Ciebie!
Plik przykładowy formatu BIM
Spójrzmy zatem na prosty przykładowy plik Teapot.bim, aby zrozumieć jak to wygląda w środku. Na górze pliku widzimy wersję schematu “1.0.0” a następnie definicję siatki. “mesh_id” czyli id tej siatki to: 0. W tym pliku jest to jedyna zapisana siatka. Na początku definicji siatki mamy listę koordynatów. Są one pogrupowane w punkty tak jak to jest zilustrowane na obrazku poniżej:
Następnie mamy indeksy. Jest to kolejna lista, lecz tym razem zawiera ona informacje odnośnie tego które punkty (zdefiniowane w liście z wierzchołkami) powinniśmy użyć, aby zbudować z nich trójkąty, które definiują siatkę.
Tak wygląda cała definicja siatki. Przejdźmy zatem do elementów. W tym przykładzie mamy tylko jeden element, który reprezentuje czajnik.
Na samym końcu możesz znaleźć dane dla całego pliku:
To wszystko. W zasadzie jeśli rozumiesz wszystko powyżej, to oznacza to, że właśnie zrozumiałeś cały schemat formatu .bim, ponieważ nie tu niczego więcej. Oczywiście: typowe pliki .bim zawierają znacznie więcej siatek i elementów oraz mają więcej dołączonych danych do każdego z elementów, ale jeśli rozumiesz ten prosty przykład – najprawdopodobniej rozumiesz już cały schemat.
W rezultacie mamy model który wygląda tak:
Więcej przykładów można znaleźć tutaj: LINK: https://github.com/paireks/dotbim/tree/master/test/ExampleFiles
Przykład z mostem
Marcin Woch stworzył znakomity przykład pliku .bim który można zobaczyć tutaj:
Poniej sam mozesz obracac modelem 3D w przegladarce.
Po kliknięciu w ikonę Online 3d Viewer – powinien otworzyć się cały model w nowej karcie. Wtedy możliwe jest klikanie w poszczególne elementy modelu i oglądanie jakie informacje są w nich zawarte. W niektórych z nich znajdziesz linki do różnych stron, co pokazuje, że możesz dołączać również referencje do innych stron internetowych jako właściwości elementu.
Cel formatu BIM
Celem projektu jest przedstawienie otwartego, darmowego i łatwego do tworzenia i parsowania formatu plików dla branży BIM. Prosty format plików = łatwiejsze tworzenie bardziej niezawodnego oprogramowania.
Wierzę, że stworzenie prostego formatu z perspektywy dewelopera programu może wpłynąć na zauważalne podniesienie jakości oprogramowania z perspektywy jego użytkownika. Jest ogromnym wyzwaniem tworzenie niezawodnych narzędzi w oparciu o skomplikowane procedury.
Dobrze jest również podkreślić, że ten format plików został stworzony z myślą o tym, by pozostał taki jaki jest teraz. Nie ma planów by zwiększyć liczbę jego opcji i możliwości w przyszłości, lub by zmienić w nim coś, co by zmuszało do zmiany wszystkie oprogramowania bazujące na nim. Jest co prawda furtka na taką ewentualność, jaką jest schema_version, ale mam nadzieję, że zawsze pozostanie on “1.0.0”. Takie podejście jest znacznie inne od wielu innych formatów plików, które ciągle starają się poprawiać, co zmusza inne oprogramowania do ciągłego przepisywania istniejącej funkcjonalności z tego powodu.
Porównanie do IFC
Zapewne już teraz zauważyłeś wiele różnic między schematem dotbim a IFC, ale aby je podsumować:
.bim | .ifc | |
---|---|---|
Czy jest darmowy? | Tak | Tak |
Czy jest darmowy? | Tak | Tak |
Typ | Plik tekstowy | Plik tekstowy |
Co zawiera? | Geometrie + dane | Geometrie + dane przechowywane w ustandaryzowany sposób |
Dozwolone typy geometrii | Siatki trójkątne | Wiele różnych typów: siatki, BREPs, extrusion, itd. |
Liczba stron dokumentacji | 1 | 100+ |
ion Moult stworzył znacznie bardziej rozszerzone porównanie, które można znaleźć tutaj: HERE.
Gdzie zacząć?
Jeśli chciałbyś znaleźć więcejinformacji o projekcie>
Istnieją już pewne narzędzia dla deweloperów, importery, eksportery czy konwertery dla plików .bim. Wszystkie aplikacje, które używają pliki .bim mogą być znalezione jako wymienione na liście, w głównym repozytorium:
https://github.com/paireks/dotbim
Główne repozytorium zawiera również dokumentację formatu. Jeśli jesteś deweloperem, ten poradnik może okazać się przydatny:
https://github.com/paireks/dotbim/blob/master/DeveloperTips.md
Dzięki Viktor Kovacs, Online 3D Viewer jest w stanie wczytać pliki .bim, więc już teraz możesz przeciągnąć swój plik .bim z pulpitu do swojej przeglądarki na tę stronę, aby go wyświetlić:
Plany na przyszłość nowego formatu BIM
Oczywiście: to co sprawia, że dany format plików jest użyteczny, to liczba platform, która go wspiera. Dlatego też będę ogromnie wdzięczny, jeśli ktokolwiek chce spróbować formatu lub stworzyć narzędzia w oparciu o ten format dla różnych platform! Bez pomocy społeczności nie będzie to możliwe, więc jeśli chciałbyś spróbować: skontaktuj się, a spróbuję pomóc jak tylko mogę.