Przykłady mapowania danych
Wartości wymagane i domyślne
W standardach wymiany plików często wymagane jest, aby pewne pola danych nie były puste lub aby każde pole danych miało wartość domyślną. Aby mieć pewność, że w obowiązkowych polach danych zawsze znajduje się jakaś wartość, dodaj stałą na końcu formuły mapowania danych.
Formuły:
=FIRSTNONEMPTY(Style.'Function', 'NOTDEFINED')
=FIRSTNONEMPTY(OBJECTDATA('General Name'), Style.'Name', 'Roof')
Jeśli wartości domyślne wymagane są we wszystkich polach danych, ale Ty dla niektórych obiektów wymagasz określonych wartości, utwórz format rekordu i ustaw wartość domyślną dla pola, które będzie źródłem danych. Następnie dołącz ten rekord do obiektów, które które mają mieć określone wartości po to, aby w razie potrzeby można było zmienić wartość domyślną w dołączonym rekordzie. Obiekty, do których nie zostanie dołączony rekord, otrzymają wartość domyślną.
Formuła:
=FIRSTNONEMPTY('Pricing Details'.'Discount', FORMATFIELD('Pricing Details','Discount'))
Łączenie pól i stałych
Formuły mapowania danych znajdują różnorodne zastosowanie: poprawiają przejrzystość danych, pozwalają dodawać wymagane przedrostki lub przyrostki bądź łączyć i obliczać dane z kilku źródeł.
W tym przykładzie chcemy poprawić opis schodów ruchomych, uwzględniając w nim ważne informacje o producencie i szerokości stopnic. Oprócz wymienionych danych chcemy także dodać słowa-etykiety dla większej przejrzystości.
Formuła:
=CONCAT('Schody ruchome: '; 'Escalator'.'Type'; ' Szerokość: '; 'Escalator'.'Step width')
Wynik:
Schody ruchome: Otis 510 M Szerokość: 1000 (3' 3")
Mapowanie rekordów
Aby do obiektów parametrycznych Vectorworks automatycznie dołączać niestandardowe dane i rekordy w momencie wstawiania ich do rysunku, utwórz rekord zawierający wymagane pola danych, a następnie przyporządkuj każde pole do stałej wartości, stałego parametru lub stylu odpowiedniej(-go) dla tego obiektu. Taki zabieg upraszcza korzystanie z różnych funkcji Vectorworks, które używają danych z obiektów. Mowa tu np. o arkuszach kalkulacyjnych, etykietach danych czy wizualizacjach danych.
W niniejszym przykładzie rekord „Wymiary szafki” został utworzony i dodany jako zestaw danych do obiektu parametrycznego Szafka dolna.
Countertop Length: długość blatu; przyporządkowano do następującego parametru szafki dolnej: Długość.
Countertop Area: powierzchnia blatu; dodajemy do blatu występ wynoszący 50 mm i obliczamy jego powierzchnię. Uzyskany wynik dzielimy przez 1000 * 1000, aby wynik w mm2 przedstawić w m2 (jednostką długości/głębokości są tu milimetry).
Formuła: =('Base Cabinet'.'Length' * ('Base Cabinet'.'Depth' + 50)) / 1000000
Adjacent to Wall: przyległy do ściany; nie przyporządkowano do żadnego parametru. Użytkownik określa w karcie Dane w palecie Info, czy szafka ma przylegać do ściany, a zatem – czy potrzebny jest panel zabezpieczający ścianę.
Backsplash Area: panel tylny; jeśli wymagany jest panel tylny, jego powierzchnię obliczamy w następujący sposób: 0,6 m (szerokość tylnego panelu) * długość górnego blatu / 1000 (w celu przeliczania jednostek z metrów na milimetry). Zauważ, że przedstawiona tu formuła odnosi się do dwóch różnych pól w tym samym rekordzie.
Formuła: =IF(FIRSTNONEMPTY('Cabinet Calculations'.'Adjacent to Wall', FORMATFIELD('Cabinet Calculations', 'Adjacent to Wall')), (0.6*FIRSTNONEMPTY('Cabinet Calculations'.'Countertop Length', FORMATFIELD('Cabinet Calculations', 'Countertop Length'))/1000), 0)
Jeśli usuniesz rekord z mapowania, rekord ten zostanie odłączony od wszystkich egzemplarzy szafek dolnych wstawionych do rysunku.
Po wstawieniu szafki dolnej do rysunku zauważysz w karcie Dane w palecie Info, że dane z rekordu zostały automatycznie dołączone. Kolumna edycji, którą można rozpoznać po tym symbolu: , określa sposób modyfikowania każdego mapowanego pola.
Mapowanie źródeł danych za pomocą funkcji selektywnej
Dane IFC często wymagają pól danych przeznaczonych na wartości wyliczone, takie jak PredefinedType, OperationType, ShapeType itd. Zdarza się i tak, że zgodność w relacji jeden-do-jednego nie występuje; aktualne ustawienia różnią się od IFC, nie można poprawnie przyporządkować źródeł danych lub wartości zostały zapisane w innym języku.
Warunki
Warunki pozwalają na obsługę bardziej skomplikowanych przypadków i umożliwiają precyzyjniejszą kontrolę nad układem danych IFC.
Warunek na przyporządkowanie stylów ściany do różnych jednostek
Załóżmy, że posiadasz plik z czterema stylami ściany: Ściana_zewnętrzna, Ściana_wewnętrzna, Ściana_fundamentowa i Ściana_wirtualna. W sekcji mapowania danych dla obiektu parametrycznego dodajemy dwie jednostki podstawowe, a mianowicie: IfcCovering i IfcFooting. Za pomocą pola warunku „Condition” definiujemy regułę, która ma przyporządkowywać odpowiednią jednostkę IFC według stylu ściany.
Formuła:
=IF(Style.'Name'='Ściana_zewnętrzna', 'IfcWallStandardCase', IF(Style.'Name'='Ściana_wewnętrzna', 'IfcCovering', IF(Style.'Name'='Ściana_fundamentowa', 'IfcFooting', 'No-Export')))
Wynik:
Wyeksportowany plik będzie zawierał ściany z jedną z trzech jednostek IFC, w zależności od stylu ściany. Ściany, do których zastosowano styl „Ściana_wirtualna”, zostały pominięte w mapowaniu, a zatem nie zostaną w ogóle wyeksportowane.
Warunek na przypisanie zestawu właściwości Pset do płyty
Formuła:
=(FIND('Structural', Style.'Name')=0)
Wynik:
Jeśli nazwa Stylu płyty rozpoczyna się od „Structural”, do płyty przypisany zostanie zestaw właściwości Pset „Classification”
Warunek na wyeksportowanie obiektu z różnymi jednostkami
Warunki można zastosować podczas eksportowania pojedynczego obiektu pod postacią różnych jednostek. Tutaj mamy ścianę złożoną z wielu komponentów. Za pomocą pola „Funkcja” ze stylu ściany, podczas eksportu do każdego komponentu można przypisać inną jednostkę IFC.
Formuła:
=IF(OBJECTDATA('Component', 'Function', T=INDEX)='Load-Bearing', 'IfcWallStandardCase', IF(OBJECTDATA('Component', 'Function', T=INDEX)='Inner Finish', 'IfcCovering', IF(OBJECTDATA('Component', 'Function', T=INDEX)='Outer Finish', 'IfcCovering', IF(OBJECTDATA('Component', 'Function', T=INDEX)='OTHER', 'IfcBuildingElementProxy', 'NoExport'))))
Wynik:
W pliku IFC ścianę przedstawiają trzy rożne jednostki: dwie IfcCovering, IfcWallStandardCase i IfcBuildingElementProxy. Komponent, którego funkcję oznaczono jako „Air Gap” (pustka powietrzna), nie został wyeksportowany.
Z racji tego, że ściany mogą nie mieć komponentu głównego, a zakładka „Dane” w palecie Info pozwala na wyświetlanie tylko jednej jednostki, jednostką wyświetlaną jest zawsze ta, która została przyporządkowana do pierwszego komponentu. W tym wypadku nie ma to żadnego wpływu na nasz eksport.
Symbole i kształty niestandardowe
Symbole oraz samodzielnie utworzone kształty geometryczne można wyeksportować dopiero po dołączeniu lub przyporządkowaniu do nich danych IFC. Mapowanie ich danych IFC odbywa się na podstawie ustawień wyznaczonej dla nich jednostki IFC.
W oknie dialogowym mapowanie danych IFC dodajemy Pset_ColumnCommon oraz przyporządkowujemy pole Reference do nazwy klasy, w której mieści się obiekt. Możemy także dodać wartości stałe (TRUE) dla IsExternal i LoadBearing
Domyślne mapowanie wyświetla się w zakładce Dane palety Info.
W przypadku symboli można tworzyć mapowania na podstawie oznaczenia IFC symbolu albo nazwy definicji symbolu. W tym celu w Menedżerze danych zaznaczamy definicję symbolu, a następnie definiujemy żądane zestawy danych IFC, które chcemy wyeksportować za pomocą przycisku Dodaj zestaw danych. Na przykład: dodajemy zestaw Pset_ManufacturerTypeInformation, a następnie do wszystkich pól przyporządkowujemy stałe wartości, ponieważ są one identyczne dla wszystkich egzemplarzy tego symbolu.
Symbol zostanie wyeksportowany jako IfcFurnishingElement z zestawem Pset_ManufacturerTypeInformation, nawet bez konieczności dołączania danych IFC do definicji ani jakiegokolwiek wystąpienia symbolu. Domyślne mapowanie wyświetla się w zakładce Dane palety Info.
Jednostki podstawowe i uzupełniające
W przypadku obiektów złożonych jednostki podstawowe i uzupełniające umożliwiają dokładniejszą kontrolę nad układem danych IFC. W tym przykładzie jednostką podstawową ustawioną dla przegrody strukturalnej jest IfcCurtainWall. Jednostkami pomocniczymi są natomiast: IfcMember (ramy) i IfcPlate (panele). Wyłączając jednostkę uzupełniającą, zastępując ją lub kompletnie ją usuwając, można kontrolować eksport ram i paneli.