Industry Foundation Classes (IFC) to międzynarodowy standard modelowania informacji o budynkach i infrastrukturze. Jednym z kluczowych elementów schematu IFC jest system relacji. Relacje pomagają określić, w jaki sposób poszczególne elementy budowli są ze sobą połączone i jak na siebie wpływają.
W tym artykule opiszę relacje, które wykorzystałem do stworzenia przestrzennej struktury podziału w modelach drogowym oraz wodno-kanalizayjnym. Posłużę się przykładem modelu drogi oraz modelu wodno-kanalizacyjnego, które znajdziesz poniżej w przeglądarce BIM.
UWAGA: Omawiany model IFC 4.3 został stworzony w oprogramowaniu Trimble Quadri. Model jest udostępniany w celach edukacyjnych. W tym momencie możliwe jest stworzenie modelu IFC 4.3 w środowisku programistycznym, do którego mam dostęp jako pracownik Trimble. Jeśli chcesz dowiedzieć się więcej o produkcie Trimble Quadri, napisz bezpośrednio do mnie na Linkedin.
ifcRelationship
ifcRelationship jest obiektem ogólnym w schemacie IFC, którego można użyć do przedstawienia dowolnego typu relacji między dwoma lub większą liczbą obiektów w modelu. Istnieje kilka różnych podtypów obiektu ifcRelationship, z których każdy jest używany do reprezentowania określonego typu relacji.
Niektórymi z najczęściej używanych relacji w schemacie IFC są:
- ifcRelContainedinSpatialStructure,
- ifcRelAggregates,
- ifcRelVoidsElement,
- ifcRelAssociatesMaterial,
- ifcRelAssignsToGroup,
- ifcRelNests.
To właśnie na tych relacjach się skupię, aby omówić jak zbudowałem strukturę przestrzenną w modelach infrastrukturalnych.
ifcRelationship jest obiektem ogólnym w schemacie IFC, którego można użyć do przedstawienia dowolnego typu relacji między dwoma lub większą liczbą obiektów w modelu. Istnieje kilka różnych podtypów obiektu ifcRelationship, z których każdy jest używany do reprezentowania określonego typu relacji.
Niektórymi z najczęściej używanych relacji w schemacie IFC są:
- ifcRelContainedinSpatialStructure,
- ifcRelAggregates,
- ifcRelVoidsElement,
- ifcRelAssociatesMaterial,
- ifcRelAssignsToGroup,
- ifcRelNests.
To właśnie na tych relacjach się skupię, aby omówić jak zbudowałem strukturę przestrzenną w modelach infrastrukturalnych.
ifcRelContainedinSpatialStructure
Relacja ifcRelContainedinSpatialStructure służy do osadzenia obiektu lub zbióru obiektów w strukturze przestrzennej, takiej jak obszar (ifcSite), droga (ifcRoad). Obiekt ten jest często używany do reprezentowania relacji typu „jest zawarty w” lub „jest częścią” i pozwala na precyzyjne określenie hierarchicznej struktury modelu budynku/infrastruktury.
Mówiąc prościej, możemy wykorzystać tę relację między obiektami przestrzennymi (ifcSite, ifcRoad, ifcRoadPart) a obiektem mającym kształt, geometrię (ifcAlignment, ifcSlab, ifcEarthworks) lub zbiorem obiektów (ifcPavement, ifcElementAssembly, ifcEarthworksFill).
W omawianym przykładzie wykorzystałem tę zależność:
- Pomiędzy ifcSite a ifcAlignment, ifcGeomodel
- W modelu drogowym pomiędzy ifcRoadPart (Longitudinal) a ifcPavement, ifcEartwhorksFill i ifcElementAssembly
- W modelu drogowym między ifcRoadPart (Lateral) a ifcCourse (górna powierzchnia drogi), ifcEarthworksFill (zbocze) i ifcDistributrionChamber (rów)
- W modelu wodno-kanalizacyjnym pomiędzy ifcSite a ifcElementAssembly, który jest używany jako zbiór wszystkich części modelu
ifcRelAggregates
Relacja ifcRelAggregates pomaga przedstawić w schemacie IFC podział obiektu na inne obiekty. Na przykład można jej użyć do określenia tego, że droga składa się z wielu części lub że nawierzchnia składa się z pojedynczych warstw. Zależność ta jest istotna przy określaniu kompozycji elementów budynku i infrastruktury.
Ten związek jest używany w dwóch głównych przypadkach. Między obiektami przestrzennymi dzielącymi obiekt/obszar na kolejne części/obszary oraz między zbiorami/zespołami a ich częściami.
W przykładzie wykorzystałem tę zależność:
- W modelu drogowym między obiektami przestrzennymi takimi jak: ifcProject, ifcSite, ifcRoad oraz ifcRoadPart
- W modelu drogowym między ifcPavement (Konstrukcja nawierzchni) a poszczególnymi warstwami (ifcCourse)
- W modelu drogowym między obiektem reprezentującym zbiór robót ziemnych (ifcEarthworksFill) a różnymi jego typami
- W modelu wodno-kanalizacyjnym pomiędzy ifcElementAssembly reprezentującym cały model a ifcDistributionSystem reprezentujący studnie oraz rury oraz dwoma innymi ifcElementAssembly zawierającymi części rowu i dane do tyczenia.
- W modelu wodno-kanalizacyjnym pomiędzy ifcElementAssembly reprezentującym cały model a ifcDistributionSystem reprezentujący studnie oraz rury oraz dwoma innymi ifcElementAssembly zawierającymi części rowu i dane do tyczenia.
ifcRelVoidsElement
Relacja ifcRelVoidsElement służy do określenia, że jeden obiekt tworzy “pustą” przestrzeń w innym obiekcie. Na przykład w przypadku budynków można jej użyć do określenia, że okno jest “pustką” w ścianie. W infrastrukturze może to być objętość gleby, która jest wykopywana i tworzy pustkę w terenie.
W przykładzie wykorzystałem tę zależność:
- W modelach drogowym i wodno-kanalizacyjnym pomiędzy ifcGeomodel i ifcEarthworksCut (grunt wykopany)
ifcRelAssociatesMaterial
Relacja ifcRelAssociatesMaterial pozwala określić związek pomiędzy obiektem a materiałem. Na przykład, w przypadku budynków, można jej użyć do powiązania ściany z określonym typem cegły. W infrastrukturze relacja ta może być wykorzystana do określenia materiału warstw nawierzchni, rury, studzienki itd.
W przykładzie wykorzystałem tę zależność:
- W modelu drogowym między ifcCourse a ifcMaterial
ifcRelAssignsToGroup
W przykładzie wykorzystałem tę zależność:
- W modelu wodno-kanalizacyjnym pomiędzy ifcDistributionSystem a ifcElementAssembly reprezentujący zbiór części studzienki
ifcRelNests
Relacja ifcRelNests określa “zagnieżdżenie” obiektu w innym obiekcie. Można go na przykład użyć do określenia, że okno jest zagnieżdżone w ścianie. W infrastrukturze relacja ta służy do definiowania relacji między elementami linii trasowania.
W przykładzie wykorzystałem tę zależność:
- W modelu drogi między ifcAlignment, ifcVerticalAlignment, ifcHorizontalAlignment i ifcAlignmentSegment