• Aucun résultat trouvé

Equivalences sémantiques des entités géométriques

3.4 Application au sein du modèle IFC-Bridge

3.4.3 Equivalences sémantiques des entités géométriques

Parmi les différents modules qui forment le modèle de données IFC et IFC-Bridge, certains permettent de définir des formes géométriques. Il s’agit de Geometric Model Resource et de Geo-

metric Resource. Chaque élément de construction IFC possède une ou plusieurs représentations

géométriques, grâce à l’attribut ❘❡♣r❡s❡♥t❛t✐♦♥. Conformément aux définitions de [IAI06] concernant l’entité■❢❝❙❤❛♣❡❘❡♣r❡s❡♥t❛t✐♦♥ (qui hérite de l’entité ■❢❝❘❡♣r❡s❡♥t❛t✐♦♥), il existe plusieurs manières de définir une géométrie :

• Des ensembles géométriques basés sur des points, des lignes des courbes, et des surfaces : Curve2D, GeometricSet, GeometricCurveSet.

• Un modèle entièrement surfacique : SurfaceModel.

• Un modèle volumique : SolidModel. Ce modèle possède lui-même plusieurs variantes : – SweptSolid: extrusions et surfaces de révolutions.

– Brep: utilisations de surfaces frontières.

– CSGet Clipping : utilisations d’opérations booléennes entre volumes. • Une boite englobante pour une géométrie simplifiée : BoundingBox.

• Une courbe de référence munie de sections : SectionedSpine. Cette notion a été éten- due dans le cadre du modèle IFC-Bridge étant donné son utilité pour la définition de pièces prismatiques (tablier, piles, etc.) en fonction d’un axe de référence (axe rouge par exemple).

Parmi ces différentes représentations, plusieurs peuvent donner le même résultat visuel et géométrique. Dans le cadre de nos travaux, nous avons donc cherché à appliquer la définition d’équivalents sémantiques sur une partie des entités géométriques du modèle IFC-Bridge : les courbes.

La figure 3.12 présente le diagramme d’héritage de l’entité ■❢❝❈✉r✈❡. Dans le paradigme IFC, une courbe peut être :

sées, des polylignes, et des courbes infinies tronquées. • Une conique : cercle ou ellipse.

• Une droite.

• Une clothoïde. Cette courbe, issue de l’extension Ifc-Bridge, permet de définir une transi- tion entre une droite et un cercle.

• Une courbe parallèle d’une distance fixe par rapport à une autre.

IfcRepresentationItem IfcGeometricRepresentationItem

Héritage IfcCurve

IfcBoundedCurve IfcConic

IfcLine IfcOffsetCurve2D IfcOffsetCurve3D

IfcEllipse IfcCircle IfcCompositeCurve IfcPolyline IfcTrimmedCurve IfcBSplineCurve

FIGURE3.12 :Diagramme d’héritage de l’entité■❢❝❈✉r✈❡. Les entités en orange correspondent aux en-

tités

Parmi ces représentations, certaines peuvent être équivalentes et d’autres non. Par exemple, une ligne ou une polyligne n’est jamais comparable à une ellipse1. De plus, il existe des cas extrêmes où certains modes de représentations deviennent équivalents. Par exemple, une poly- ligne avec un seul segment est comparable à une courbe tronquée dont la base est une droite. C’est pourquoi notre analyse s’effectue en deux temps.

D’abord, certains modes de représentations sont prétraités, pour simplifier certaines struc- tures composées comme les polylignes et les courbes composées. Dans certains cas, ces struc- tures sont remplacées par d’autres modes de représentations. Les quatre modes concernés sont les suivants :

1. Les courbes infinies tronquées – ■❢❝❚r✐♠♠❡❞❈✉r✈❡. Cette entité possède un paramètre ❇❛s✐s❈✉r✈❡, de type ■❢❝❈✉r✈❡. Il existe une contrainte qui interdit l’utilisation de courbes finies comme courbe de base. Seules les coniques et les droites sont donc troncables. Les deux lieux de troncature (❚r✐♠✶ et ❚r✐♠✷) sont exprimés soit par deux points 3D, soit par deux abscisses curvilignes. Or, il existe un cas limite où la courbe tronquée est équiva- lente à sa courbe de base : lorsqu’il s’agit d’une troncature d’une courbe dont la fonction paramétrique est périodique. Dans notre cas, cela correspond aux courbes fermées, les co- niques (cercles ou ellipses). Dans le cas où la courbe de base est une ellipse ou un cercle, 1

3.4. Application au sein du modèle IFC-Bridge 105

le prétraitement consiste donc à remplacer la courbe tronquée par sa courbe de base si les abscisses curvilignes correspondant à Trim1 et Trim2 ont une distance réciproque égale à la période de la courbe, ici 360˚. En effet, la troncature n’a pas d’utilité car la courbe entière est dans ce cas décrite.

2. Les polylignes – ■❢❝P♦❧②❧✐♥❡. Une telle entité possède un attribut P♦✐♥ts qui repré- sente une liste de points 3D correspondant aux sommets de la polyligne. Le prétraitement consiste d’abord à éliminer des sommets inutiles, c’est-à-dire des sommets qui forment un angle plat de 180˚(alignement de ce point avec le point précédent et le point suivant). Ensuite, si le résultat donne une polyligne avec un seul segment, celle-ci est équivalente à une entité❚r✐♠♠❡❞❈✉r✈❡ dont la base est une droite. Cependant, lors de la suppression d’un sommet, il convient de prendre en compte le changement d’abscisse curviligne. 3. Les courbes composites –■❢❝❈♦♠♣♦s✐t❡❈✉r✈❡. Cette entité possède un attribut ❙❡❣♠❡♥ts

représentant l’ensemble des courbes composantes avec des conventions de transition. Ces courbes composantes appartiennent à la famille des courbes finies. Le prétraitement est une généralisation de celles du point précédent : il consiste à fusionner des courbes com- posantes à condition qu’elles soient de même type et que leur paramètre permette une fusion pour former une autre courbe. Par exemple, deux quarts de cercle de même centre et dont les limites permettent de former un seul demi-cercle. Si ce prétraitement est aisé dans le cas de courbes tronquées de type droites ou coniques, la fusion de B-Splines exige plus de rigueur : compatibilité des points de contrôle, ainsi que les poids associés dans le cas de courbes de Bézier rationnelles. Ensuite, si le résultat donne un seul segment, la courbe composite est remplacée par son seul segment associé.

4. Les B-Splines –■❢❝❇❙♣❧✐♥❡❈✉r✈❡. Ces types de courbes sont très utilisés en CAO. Il existe certains cas triviaux, où ces courbes sont comparables à des segments. Par exemple, dans le cas d’une simple courbe de Bézier, lorsque les quatre points de contrôle sont alignés. D’autres B-Splines peuvent être aussi équivalentes à des arcs de cercles [Bangert97]. Dans le cadre de ces travaux, seule l’équivalence avec des segments sera étudiée, consistant en un prétraitement détectant l’alignement des quatre points de contrôle.

Ce prétraitement permet de gérer des cas triviaux d’équivalences et simplifie l’analyse. Ainsi, une courbe composite n’est à présent comparable qu’avec une autre courbe de même type ou de type polyligne (si toutes les courbes segments sont des droites tronquées). Le tableau 3.1 montre la comparabilité des courbes selon leur type.

Dans un deuxième temps, il reste peu de types de courbes comparables à d’autres, grâce au prétraitement :

• Composite-Polyline : si chaque segment de la courbe composite est un segment, alors la comparaison des sommets de ces segments permet d’établir l’équivalence avec une poly- ligne.

• Circle-Ellipse : si les deux demi-rayons d’une ellipse sont égaux entre eux et au rayon du cercle à comparer, ainsi que leur centre, les deux courbes sont équivalentes.

• Circle-Offset : une courbe parallèle (de distance algébrique d) à un cercle de rayon r est elle-même un cercle de rayon r + d.

B-Spline Composite Polyline Trimmed Circle Ellipse Line Clothoid Offset B-SplineComposite √ √ PolylineTrimmedCircle √ √ √ EllipseLine √ √ ClothoidOffset

TABLEAU3.1:Comparabilité réciproque des types de courbes, après prétraitement.

• Line-Offset : une courbe parallèle à une droite est une droite de même vecteur de direction et dont la position est calculable à partir du vecteur unitaire orthogonal à la première droite.

Il existe d’autres cas où les courbes parallèles sont équivalentes à des courbes plus complexes (polylignes, B-Splines), mais ces équivalences dépassent le cadre de cette thèse.

Il convient à présent d’intégrer cette analyse au sein du comparateur structurel. Pour cela, il est nécessaire d’apporter des algorithmes de comparaison, en fonction du type commun des deux entités (d’après la définition 14, le type commun existe). Cet algorithme remplace alors l’algorithme usuel qui consiste à comparer tous les attributs deux à deux.

Une première fonction donne l’équivalence entre n’importe quelle conique (■❢❝❈♦♥✐❝) et permet ainsi de traiter l’équivalence Ellipse-Cercle. Ensuite, une fonction propre aux B-Spline donne la possibilité de traiter certaines familles de B-Splines (courbes de Bézier, courbes de Bézier rationnelles), et de trouver des équivalences dans certains cas limites. Une autre fonction de comparaison s’occupe de toutes les courbes finies (■❢❝❇♦✉♥❞❡❞❈✉r✈❡), en appelant au besoin les fonctions précédentes, et traitant, de plus, le cas de comparaison Composite-Polyline. Enfin, la fonction de comparaison de toutes les courbes (■❢❝❈✉r✈❡) traite aussi les cas de comparaison entre les courbes parallèles d’une part et les droites ou cercles d’autre part.