Dictionary jako remedium na zmieniające się listy
Kiedy kolejność listy się zmienia, indeks przestaje być wiarygodnym identyfikatorem. Dictionary pozwala przestać ufać pozycji i zacząć ufać znaczeniu danych.
Dlaczego indeks bywa niebezpieczny?
W pokazowym przykładzie lista elementów i lista wartości mają tę samą kolejność. Wszystko wygląda logicznie: element pod indeksem 0 dostaje wartość z indeksu 0. Problem zaczyna się wtedy, gdy dane wracają z Excela, CSV, API albo innego modelu w innej kolejności.
Najgorsze jest to, że graf oparty na indeksach często nie pokazuje błędu. Liczby elementów nadal się zgadzają. Nody są zielone. Tylko wartości trafiają do niewłaściwych obiektów. To jeden z tych błędów, które nie krzyczą, ale potrafią zepsuć zaufanie do całej automatyzacji.
Dobry klucz jest decyzją BIM
Kluczem może być UniqueId, numer pomieszczenia, kod systemu, oznaczenie elementu, nazwa typu albo zestaw wartości: poziom + numer + kategoria. Nie ma jednego idealnego wyboru. Dobry klucz zależy od procesu.
Warto jednak uważać na klucze, które tylko wyglądają stabilnie. Nazwa typu może się zmienić. Numer pomieszczenia może zostać zdublowany. Oznaczenie może być puste. Dlatego przed użyciem słownika trzeba sprawdzić unikalność i kompletność kluczy.
Dictionary jako warstwa bezpieczeństwa
Najbardziej lubię używać słownika przy danych, które są obrabiane poza modelem. Przykład: eksportujesz listę pomieszczeń, ktoś uzupełnia klasyfikację, potem dane wracają. Jeżeli oprzesz import na kolejności wierszy, prosisz się o błąd. Jeżeli oprzesz go na kluczu, kolejność przestaje mieć znaczenie.
Słownik pozwala też jasno raportować problemy: brak klucza, duplikat, wartość bez odpowiadającego elementu, element bez wartości zwrotnej. To są informacje, których nie warto ukrywać. One mówią, gdzie proces wymiany danych wymaga poprawy.
Checklist przed zapisem do modelu
- Czy wybrany klucz jest unikalny?
- Czy żaden klucz nie jest pusty?
- Czy dane wejściowe i zwrotne używają tego samego standardu zapisu?
- Czy duplikaty trafiają do raportu, a nie są nadpisywane po cichu?
- Czy zapis do modelu jest blokowany przy błędach krytycznych?
Podsumowanie
Dictionary nie jest magiczną sztuczką. Jest prostą zmianą myślenia: element ma tożsamość niezależną od pozycji w liście. W realnych workflow BIM ta zmiana często decyduje o tym, czy graf jest tylko demonstracją, czy narzędziem, któremu można zaufać.