W ostatnim wpisie na temat zarządzania danymi, zdefiniowałem oraz rozłożyłem na czynniki informacje przechowywane w obrębie modelów BIM oraz ogólnie przy projektach konstrukcyjnych. Jeżeli nie przeczytałeś, to polecam przejrzenie wpisu przed zaznajomieniem sie z tym tekstem, gdyż będę tu ponownie używał pojęć wyjaśnionych w poprzednio.
W tym artykule, chciałbym głębiej wejść w temat uporządkowanych danych, a zwłaszcza typów danych. Jest to kolejne niezwykle istotne zagadnienie, które należy zrozumieć i świadomie używać, jeżeli chcemy prawidłowo zarządzać danymi projektowymi.
Spis treści
Czym to jest typ danych?
Kiedy tworzymy właściwości (properties), oczywiście chcemy aby zawierały one dane. Jeszcze lepiej by było, gdyby te dane były prawidłowe! 😉 Dlatego też, przypisujemy etykietom odpowiednie nazwy oraz określamy jednostki, np. etykieta “Długość [cm]” wyrażnie określa czego tutaj potrzebujemy. Jeżeli ktoś wypełni to wartością “zielony”, wiemy że coś nie tak. Ale komputer już niekoniecznie to złapie. Z drugiej strony, dla naszego zrozumienia nie ma znaczenia czy etykieta jest wypełniona wartością “trzy” czy też “3”. Ale dla urządzenia juz tak.
Innymi słowy, każdy punkt danych ma cechy, ktore pomagają oprogramowaniu jak rozumieć oraz interpretować daną wartość. To z kolei, ułatwia komputerowi przeprowadzenie prawidłowej operacji na danych. Każda właściwość objektu w naszym modelu musi posiadać znaczenie czytelne i jasne dla nas i urządzeń..
W celu rozwiązania powyższych problemów, urządzenia działaja na wartości atrybutu zwanym typem danych. Jeżeli przypiszemy typ danych “Numer” dla pola “Długość”, wtedy program nie pozwoli nam wpisać ani “zielony” ani też “trzy”. Będziemy zmuszeni wpisać “3” (lub oczywiście każdą inną wymaganą liczbę). Umozliwia to póżniejsze przetwarzanie danych. Komputer nie potrafi przeprowadzac matematycznej operacji na wartościach “Dwa” lub “Trzy”, ale na wartościach “2” lub “3” już tak. I to duzo lepiej od nas.
Ważna uwaga – proszę ze sobą nie pomylić “typ danych” oraz “jednostki danych”. Masa, długość, opór oraz inne mogą wciąż posiadać różne typy danych. To są zupełnie odrębne zagadnienia.
Całe sedno w dobieraniu oraz używaniu prawidłowych typów danych polega na tym, aby zmusić użytkowników wprowadzających dane do tego, aby robili to prawidłowo. Aby wpisali wartość “3” tam gdzie należy, a nie “Trzy”. Może to się wydawać trochę niejasne, ale w dalszej części znajdziecie uszczegółowienie z przykladami.
Jakiego rodzaju dane mamy w modelach BIM?
Oto przykład tabeli wraz właściwościami danego obiektu (to magiczne “I” w BIM). Kolumny po lewej stronie nazwane sa etykietami (lub nazwą pola). Kolumny po prawej przedstawiają wartości, którym został przypisany typ danych. Typ danych wskazuje jak możemy zdefinować wartości, oraz co możemy z tym zrobić. Przy projektach kontrukcyjnych, z reguły mamy do czynienia z następującymi typami danych:
- Ciąg znaków (tekst). Typ danych tekstowy to nieograniczony ciąg znaków, który może zawierać zarówno litery, cyfry lub znaki specjalne. Jest zawsze traktowany jako wartość tekstowa (tzn. nie mozna wykonywać żadnych obliczeń). W tabeli jest to na przykład wartośc “D-01”
- Liczba. Dozwolone są jedynie wartości numeryczne. Ten typ danych może być z ograniczony do liczb całkowitych (30) lub też ułamkowych (30,12). Pierwszy to typ danych liczb całkowitych, drugi zaś – wartość zmiennoprzecinkowa. W tabeli powyżej są to np. Odporność ogniowa=30 oraz Szerokość=0,9m.
- Logiczny. Reprezentuje wartości prawda/fałsz. Może też przybrać formę 1 (prawda) lub 0 (fałsz) lub też wartości TAK (prawda) i NIE (fałsz). Tak jak w tabeli: Drzwi ognioodporne=Prawda. W oprogramowaniu z reguły jest w postaci przycisku opcji.
Data. Dokładnie to znaczy. W tabeli mamy “Data rozpoczęcia” oraz “Data zakończenia” pokazujący termin kiedy drzwi powinny zostac zamontowane na miejscu. - Wyliczany typ (Enumerated). Zawiera z góry ustalony zestaw wartości do wyboru. Można wybrać tylko jedną wartość dla każdej zmiennej. Stanowi to typ danych pochodnych do poprzednich typów, jako że dane wyjściowe mogą być jednym z czterech w/w. Powiedzmy że w naszej etykiecie “Materiał” możemy dokonać wyboru wartości z listy rozwijanej, która zawiera Aluminium, Stal i Szkło. Taka lista nazwana jest wyliczanym typem danych.
- Szereg (Lista). Przechowuje kilka/naście elementów tego samego typu. Jest to również typ danych pochodnych. W naszym przykładzie “Materiał”, gdyby drzwi miały być aluminiowe przeszklone, stworzylibyśmy listę z wartościami 0 (Aluminium) oraz 1 (Szkło). Długość listy wynosi 2. Z reguły, wybór jest dokonywany poprzez odpowiednie zaznaczenie pól wielokrotnego wyboru.
Jak używać typy danych
W dowolnym projeckie BIM mamy do czynienia z tysiącami różnych obiektów, np. z drzwiami z naszego przykładu. Oczywiście posiadają one setkę lub więcej właściwości, które je opisują. Skutkuje to tym, iż mamy olbrzymią ilość danych, i jest to świetna podstawa do… bałaganu.
Kiedy zaczyna się chaos? Na etapie wprowadzania danych, czyli – kiedy projektujemy. Podczas tworzenia obiektów oraz ustawiania wartości ich parametrów. To właśnie wtedy popełniamy pomyłki, literówki lub po prostu w ogóle zapominamy wklepać dane.
Prawidłowe zarządzanie właściwościami objektów ogranicza ilość błędów. Głównie dlatego, iż pewne typy danych są mniej lub bardziej wrażliwe na błędne dane wprowadzane przez użytkownika. Pozwólcie iż opiszę je w szczegółach, oraz przedstawie różnicę pomiędzy nimi. Ponadto, przedstawię jak prawidłowo zarządzać typami danych przy projektach BIM.
Ciąg znaków (String)
Jak używać ten typ danych
Liczba
Typ liczbowy jest lepszym typem danych, gdyż umozliwia tylko cyfry, a użytkownik od razu otrzyma wiadomość o błędzie przy wprowadzaniu innych wartości. Pracując przy różnych projektach zdałem sobie sprawę z powszechnego błedu z którym większość projektów się boryka. W BIM-wskich narzędziach, niektóre etykiety powinny zawierać numeryczne dane wejściowe, jednakże menedzerowie BIM wciąż tworzą je jaki tekstowe typy danych! Dlaczego? Moim zdaniem: nieświadomość, próba ułatwienia życia współpracownikom oraz zminimalizowanie błędów w transferze danych pomiędzy różnymi oprogramowaniami.
Pozwolę sobie opisać co się dzieje, gdy przenosimy dane pomiędzy dwoma właściwościami przy użyciu różnych typów danych. Powiedzmy że transferujemy właściwości danych pomieszczenia pomiędzy bazą danych dRofus oraz Revitem (lub dowolnymi innymi dwoma programami które wymieniają dane). Właściwość “Ilość świeżego powietrza” w Revit są zdefiniowane jako tekst i wyglądają: 4 033,20 (europejska pisownia). Baza danych dRofus ma ustawione formatowanie danych na angielski, a w Karcie Pomieszczenia operuje Liczbowym typem danych. Kiedy próbujemy zsynchronizować te dwa parametry, otrzymujemy błąd. Dlaczego? Ponieważ prawidłowa wartość w dRofus powinna wyglądać tak: 4,033.20. Gdybyśmy wcześniej określili tą właściwość w Revit jako
Liczbowy typ, wtedy program przekształciłby go automatycznie. Ale ponieważ jest to typ Tekstowy, jest wysyłany tak jak go widzimy, i żadnych zmian nie można dokonać.
Inny, może łatwiejszy przykład, jest używanie Excela w Europejskim formatowaniu i próbowanie oddzielic ułamki dziesiętne za pomoca kropki – od razu dostaniemy tekstowy typ danych i nie będziemy mogli dokonać żadnych obliczeń.
Jest to przykład niedopasowanego formatowania liczb pomiędzy dwoma oprogramowaniami. Istnieją tysiące różnych przykładów niedopasowania z uwagi na różne niezgodności pomiędzy programami. Rozumiem też BIM menedzerów, którzy po prostu chcą redukować swój bół głowy poprzez przypisanie tekstowego typu na wszystkie pola. Niestety ta dodatkowa praca jest wtedy spychana na osobę zarządzającą tymi danymi, która musi je dobrze przygotować.
Jak używać ten typ danych
Logiczny
How to use this data type
Data
Wyliczany
Ten typ jest niezwykle wygodny do użycia przy tworzeniu danych. Użytkownik ma do wyboru z góry ustalone opcje i jego jedynym obowiązkiem jest wybrać właściwą. 100% dokładności danych. Ale z drugiej strony, niedogodność pojawia sie wtedy, kiedy wybór musi być bardziej zróżnicowany (niewygodnie jest wybierać z długiej listy), lub kiedy twórca punktu danych nie do końca przemyślał wszystkie możliwe opcje i np. pominął niektóre rozwiązania. Dobrym przykładem wyliczanych danych może być wybór typu w rodzinie w Revit. Jak już stworzyłeś sobie listę, możesz wybrać tę wartość która Ciebie interesuje.
Niedogodności moga być rozwiązane tak, aby pozwolić użytkownikowi wpisać jego własną wartość, jeżeli taka nie jest ujęta na liście. Jednakże, istnieje wtedy większe niebezpieczństwo niezgodności danych.
Jak używać ten typ danych
Jakkolwiek ten typ danych jest upragniony i elegancki, praktycznie jest on niedostępny do użycia przy definiowaniu właściwości obiektów w większości narzędzi BIM. Wielka szkoda! Wtedy moglibyśmy stworzyć listę właściwości które mają być wartością wybieraną z już ze sprecyzowanej listy.
Nie jestem pewien jak to jest z innym oprogramowaniem. Sprawdziłem Revit oraz ArchiCAD. Pierwszy wymaga napisania API, drugi zaś wykonania skryptów w GDL. A więc – teoretycznie możliwe, praktycznie niedostępne dla “standardowych” użytkowników tych programów. Jeżeli znacie oprogramowanie umożliwiające użycie tego typu, lub słyszeliście o innych metodach tworzenia w RVT lub AC – dajcie znać, będę wdzięczny!
Szereg
Podobnie do Wyliczanego typu, ten jest świetnie zorganizowany, uporządkowany i łatwy do poprawnego wprowadzenia danych. Jedyna różnica pomiędzy Wyliczanym a Szeregowym typem jest możliwość wyboru wielu wartości w tym drugim.
Podobnie też jak Wyliczany typ, tak i Szereg nie istnieje w oprogramowaniu BIM. Jedyne listy które możemy tworzyć to te używające Visual Programming oraz wyciąganie wylistowanych wartości umieszczonych we właściwościach danego oboiektu.
Podsumowanie
W niniejszym wpisie, dowiedzieliście się o sześciu najpowszechniejszych typach danych używanych w zarządzaniu danych. Dowiedzieliście się również dlaczego te najłatwiejsze typy do wprowadzania danych, nie są najlepszymi do zarządzania. Jako kwintesencję artykułu, proszę zapamiętać iż używanie prawidłowego typu danych, skutkuje tym że dane są spójne i zgodne, co sprawi że będą łatwiejsze w analizie.
Jeszcze jedna rzecz godna zapamiętania to rozmiar jaki każdy typ danych zabiera w bazie danych. Ogólnie, najmniej wymagającym typem danych jest logiczny – zabiera jedynie 2 bajty (tak/nie). Następnym jest liczbowy i daty. Najbardziej pamięcio-żerny typ to ciąg znaków – w zależności od bazy danych i języka programowania zawiera ok. 18 bajtów + 2 bajty na znak. Liczby te wyglądają niepokażnie na pierwszy rzut oka, ale pamiętaj, że każdy obiekt posiada setkę lub więcej właściwości, zaś każdy model posiada miliony obiektów. Co daje nam setki milionów właściwości w każdym modelu, co w rezultacie daje nam gigabajty danych. A co z kolei przekłada się na płynność funkcjonowania modelu.
Na koniec, jak się dowiedzieliście, dwa najbardziej bezpieczne typy danych generalnie nie są obsługiwane przez BIM-owe oprogramowania. Musimy więc jakoś działać na innych nie-tak-doskonałych-ale-wciąż-niezłych typach danych. Jak sobie dać radę? Jak sprawdzić i być pewnym jakości danych w naszym projekcie? Zostać ze mną w dalszej podróży po meandrach świata danych, ja zaś postaram się udzielić odpowiedzi i wskazac kierunki działań 🙂
Czemu twierdzi Pan, że typ danych wyliczany nie jest dostępny w AC? Od wersji 24 skutecznie stosuję ten typ właściwości a jestem standardowym użytkownikiem nie piszącym skryptów GDL. Przyznam, że jest niezastąpiony, ale wymaga solidnego przygotowania przed pracami projektowymi, późniejsze modyfikacje tych właściwości bywają uciążliwe.
Cześć Urszula (pozwolę sobie przejść na Ty),
Dzięki za komentarz. W angielskiej wersji wpisu zwrócono mi już na to uwagę w komentarzach. Mój błąd – nie korzystam zbyt często z Archicada, a gdy robiłem research do wpisu nie znalazłem instrukcji jak to ustawić.
Pozdrawiam,
Konrad Fugas
Przenoszę się zatem na angielską wersję, bo tam są ciekawsze dyskusje pod artykułami!
Pozdrawiam cieplutko!