8.8.6.2 IfcTaperedSweptAreaProfiles
8.8.6.2.1 Semantic definition
This function checks whether the start and end profile in a tapered extrusion are topologically similar, i.e. whether both have the same number of vertices and edges.
It returns TRUE if:
- The start profile is defined by a paramterized profile definition and
- the end profile is either a derived profile, using the start profile as its parent profile, or
- the end profile is based on the same subtype of the paramterized profile definition as the start profile
- The start profile is defined by an arbitrary bounded curve bounding a plane and
- the end profile is a derived profile using the start profile as its parent profile
8.8.6.2.2 Formal representation
FUNCTION IfcTaperedSweptAreaProfiles
(StartArea, EndArea : IfcProfileDef)
: LOGICAL;
LOCAL
Result : LOGICAL := FALSE;
END_LOCAL;
IF ('IFC4X3.IFCPARAMETERIZEDPROFILEDEF' IN TYPEOF(StartArea)) THEN
IF ('IFC4X3.IFCDERIVEDPROFILEDEF' IN TYPEOF(EndArea)) THEN
Result := (StartArea :=: EndArea\IfcDerivedProfileDef.ParentProfile);
ELSE
Result := (TYPEOF(StartArea) = TYPEOF(EndArea));
END_IF;
ELSE
IF ('IFC4X3.IFCDERIVEDPROFILEDEF' IN TYPEOF(EndArea)) THEN
Result := (StartArea :=: EndArea\IfcDerivedProfileDef.ParentProfile);
ELSE
Result := FALSE;
END_IF;
END_IF;
RETURN(Result);
END_FUNCTION;