jak zapobiec blednym wlasciwosciom - typy danych

Jak zapobiec błędnym właściwościom – Typy danych

Ileż to razy bezradnie patrzyłeś na różne harmonogramy bądż przedmiary i zastanawiałeś się jak to w ogóle można popełniać takie błędy?! Ileż to razy pole właściwości obiektu zawierało informacje, które w ogóle nie powinny tam być? Brzmi znajomo? Wiele razy to widziałem, zwłaszcza na większych projektach. Mam rozwiązanie do niektórych z tych problemów – typy danych.

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?

My, ludzie, znakomicie zrozumiemy zdanie: “Drzwi D-01 otwierane na lewo, wykonane z aluminium o odporności odniowej EI30.” Natomiast program BIM wolałby to mieć spisane inaczej:
Etykieta Wartość
Kategoria Drzwi
Nazwa D-01
Szerokość (m) 0,9
Kierunek otwierania Lewo
Materiał Aluminium
Drzwi przeciwpożarowe Prawda
Odporność ogniowa (EI) 30
Data rozpoczęcia 2022-08-22
Data zakończenia 2022-08-26

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)

Zdecydowanie najpopularniejszy typ danych, a zarazem najłatwiej tutaj o pomyłkę. Duża czy mała litera na początek? Spacja czy bez? A może myślnik? Skrót z kropką czy też bez? My możemy rozumieć każdą wartość jako ten sam typ, jednak, niestety dla urządzenia stanowią one zupełnie różne zbiory wartości. Tworzy to niespójność danych oraz trudno jest dokonywać zapytań w bazie danych, gdyż mamy kilka różnych wartości zamiast tylko jednej. W rezultacie takie zestawy danych wymagają oczyszczenia przed dalszymi krokami (dowiemy się o tym w następnych wpisach).
Wrong use of string data type
Przykład swobodnego użycia ciągu znaków, co wytworzyło wiele wartości oznaczających to samo.

Jak używać ten typ danych

Ciąg znaków jest najłatwiejszy do stworzenia, najłatwiejszy do wklepania danych wejściowych oraz najbardziej elastycznym typem danych. Wszystkie te ułatwienia sprawiają, że jest najmniej pożądany w zarządzaniu danych. Kiedy tworzymy właściwości obiektów, spróbujmy ograniczyć tę swobodę wprowadzania danych na korzyść innych typów danych opisanych poniżej.

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

Należy używać liczbowego typu danych we wszystkich polach tam, gdzie wymagana jest numeryczna wartość. Jeżeli nie jesteśmy przekonani o konieczności użycia tego typu, przynajmniej domagajmy się użycia jedynie liczby we właściwości obiektu. Jeżeli mamy jednostkę dla danej wartości (np. EI odn. ognioodporności, lub MMI jako dojrzałość modelu), lepiej jest napisać jednostke na etykiecie i zostawić pole wartości na liczbę. W przeciwnym razie, użytkownik może wpisać: MMI 300, mmi 300, 300MMI, Mmi300, MMI:300, MMI-300 lub coś podobnego. I znowu skutkuje to koniecznością dodatkowego czyszczenia danych.

Logiczny

Logiczny typ jest bardzo łatwy do wprowadzenia oraz przetwarzania danych. Często dobrze jest połączyć pole danych typu logicznego z innym typem, który się odblokowuje gdy wartość jest prawdziwa, po to aby użytkownik mógł wpisać określoną wartość.

How to use this data type

Haczyk polega na stworzeniu właściwego pola danych – admin musi określić przycisk opcji (radio box) aby miało wartości: Prawda/Fałsz/null. Nie może to być po prostu pole wyboru, gdzie Prawda=wybrane, ponieważ status niewybranego pola jest nieznany- czy oznacza on “Fałsz” czy też “null” (wartość nieistniejąca w stosunku do danego obiektu)?
Boolean Revit
Pole wyboru przy Logicznym typie danych w Revit.

Data

Data jest dość stałym typem. Należy jednak uważać, gdyż użytkownicy w różnych zakątkach świata różnie używają format daty (10/11/2022 or 11/10/2022), co może mylić. Dlatego najsensowniejsze jest używanie standardu wg. ISO: RRRR-MM-DD. W naszym przykładzie jest: 2022-10-11 (11 Pażdziernika 2022). Przy takim formatowaniu, nawet najprostsze oprogramowanie będzie w stanie sobie poradzić z sortowaniem po dacie.

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.

Enumerated dRofus
Wyliczany typ w Karcie Pomieszczenia.
Enumerated Revit
Wyliczany typ w Revit- wybieranie Typu Rodziny

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ń 🙂

Źródła

Spodobał Ci się ten artykuł? Podziel się nim !

Dużo czasu i wysiłku poświęcamy na tworzenie wszystkich naszych artykułów i poradników. Byłoby świetnie, gdybyś poświęcił chwilę na udostępnienie tego wpisu!

Udostępnij:

Komentarze:

Subscribe
Powiadom o
guest
3 Comments
najstarszy
najnowszy
Inline Feedbacks
View all comments
Urszula
Urszula
1 rok temu

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.

Last edited 1 rok temu by Urszula
Urszula
Urszula
1 rok temu
Reply to  Konrad Fugas

Przenoszę się zatem na angielską wersję, bo tam są ciekawsze dyskusje pod artykułami!
Pozdrawiam cieplutko!

Autor:

Pobierz przewodnik po projektach BIM:

Po przeczytaniu tego poradnika dowiesz się:

  1. Jak BIM jest wykorzystywany przy największych projektach w Norwegii
  2. Jakie były wyzwania dla zespołu projektowego i jak zostały rozwiązane
  3. Jakie były wyzwania na budowie i jakie było nasze podejście do nich

Najnowsze wpisy: