FUNCTION IfcShapeRepresentationTypes

(* SCHEMA IFC2X3; *)
FUNCTION IfcShapeRepresentationTypes
	(RepType : IfcLabel; Items : SET OF IfcRepresentationItem)
	: LOGICAL;
      
      LOCAL
        Count : INTEGER := 0;
      END_LOCAL;
  
      CASE RepType OF 
      'Curve2D' :
        BEGIN 
          Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCCURVE' IN TYPEOF(temp)) 
                   AND (temp.Dim = 2)));
        END;
      'Annotation2D' :
        BEGIN
          Count := SIZEOF(QUERY(temp <* Items | (
                    SIZEOF(TYPEOF(temp) * [
                     'IFC2X3.IFCPOINT',
                     'IFC2X3.IFCCURVE',
                     'IFC2X3.IFCGEOMETRICCURVESET',
                     'IFC2X3.IFCANNOTATIONFILLAREA',
                     'IFC2X3.IFCDEFINEDSYMBOL',
                     'IFC2X3.IFCTEXTLITERAL',
                     'IFC2X3.IFCDRAUGHTINGCALLOUT']) = 1)
                   ));
        END;
      'GeometricSet' : 
        BEGIN 
          Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCGEOMETRICSET' IN TYPEOF(temp))
                   OR ('IFC2X3.IFCPOINT' IN TYPEOF(temp))
                   OR ('IFC2X3.IFCCURVE' IN TYPEOF(temp))
                   OR ('IFC2X3.IFCSURFACE' IN TYPEOF(temp))));
        END;
      'GeometricCurveSet' :
        BEGIN
          Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCGEOMETRICCURVESET' IN TYPEOF(temp))
                   OR ('IFC2X3.IFCGEOMETRICSET' IN TYPEOF(temp))
                   OR ('IFC2X3.IFCPOINT' IN TYPEOF(temp))
                   OR ('IFC2X3.IFCCURVE' IN TYPEOF(temp))));
           REPEAT i:=1 TO HIINDEX(Items);  
             IF ('IFC2X3.IFCGEOMETRICSET' IN TYPEOF(Items[i]))
             THEN
               IF (SIZEOF(QUERY(temp <* Items[i]\IfcGeometricSet.Elements | 'IFC2X3.IFCSURFACE' IN TYPEOF(temp))) > 0)
               THEN
                 Count := Count - 1;
               END_IF;
             END_IF;
           END_REPEAT;
        END;
      'SurfaceModel' :
        BEGIN
          Count := SIZEOF(QUERY(temp <* Items | SIZEOF([
                     'IFC2X3.IFCSHELLBASEDSURFACEMODEL',
                     'IFC2X3.IFCFACEBASEDSURFACEMODEL',
                     'IFC2X3.IFCFACETEDBREP',
                     'IFC2X3.IFCFACETEDBREPWITHVOIDS'] * TYPEOF(temp)) >= 1
                   ));      
        END;
      'SolidModel' :
        BEGIN
          Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCSOLIDMODEL' IN TYPEOF(temp))));            
        END;
      'SweptSolid' :
        BEGIN
          Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCSWEPTAREASOLID' IN TYPEOF(temp))));            
        END;
      'CSG' :
        BEGIN
          Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCBOOLEANRESULT' IN TYPEOF(temp))));            
        END;
      'Clipping' :
        BEGIN
          Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCBOOLEANCLIPPINGRESULT' IN TYPEOF(temp))));            
        END;
      'AdvancedSweptSolid' :
        BEGIN
          Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCSURFACECURVESWEPTAREASOLID' IN TYPEOF(temp))
                   OR ('IFC2X3.IFCSWEPTDISKSOLID' IN TYPEOF(temp))));      
        END;
      'Brep' :
        BEGIN
          Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCFACETEDBREP' IN TYPEOF(temp))
                   OR ('IFC2X3.IFCFACETEDBREPWITHVOIDS' IN TYPEOF(temp))));      
        END;
      'BoundingBox' :
        BEGIN
          Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCBOUNDINGBOX' IN TYPEOF(temp))));
          IF (SIZEOF(Items) > 1)
          THEN
            Count := 0;
          END_IF;   
        END;
      'SectionedSpine' :
        BEGIN
          Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCSECTIONEDSPINE' IN TYPEOF(temp))));      
        END;
      'MappedRepresentation' :
        BEGIN
          Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCMAPPEDITEM' IN TYPEOF(temp))));  
        END;
       OTHERWISE : RETURN(?);
      END_CASE;
      RETURN (Count = SIZEOF(Items));
END_FUNCTION;

Referenced By

Defintion IfcShapeRepresentationTypes is references by the following definitions:
DefinitionType
 IfcShapeRepresentation ENTITY


[Top Level Definitions] [Exit]

Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:21:14-04:00