IFC 4.3.2.20251031 (IFC4X3_ADD2) under development

8.18.6.4 IfcTopologyRepresentationTypes(拓扑表示类型)

8.18.6.4.1 语义定义(Semantic definition)

该函数接收拓扑表示类型和分配的表示项集合作为输入,并根据给定的表示类型验证是否正确分配了相应的项。

8.18.6.4.2 形式化表示(Formal representation)

FUNCTION IfcTopologyRepresentationTypes
(RepType : IfcLabel; Items : SET OF IfcRepresentationItem) : LOGICAL;
    
    LOCAL
      Count : INTEGER := 0;
    END_LOCAL;

    CASE RepType OF 
    'Vertex' :
      BEGIN 
        Count := SIZEOF(QUERY(temp <* Items | 
                  ('IFC4X3_DEV_62887e3f.IFCVERTEX' IN TYPEOF(temp))));
      END;
    'Edge' : 
      BEGIN 
        Count := SIZEOF(QUERY(temp <* Items | 
                  ('IFC4X3_DEV_62887e3f.IFCEDGE' IN TYPEOF(temp))));
      END;
    'Path' : 
      BEGIN 
        Count := SIZEOF(QUERY(temp <* Items | 
                  ('IFC4X3_DEV_62887e3f.IFCPATH' IN TYPEOF(temp))));
      END;
    'Face' : 
      BEGIN 
        Count := SIZEOF(QUERY(temp <* Items | 
                  ('IFC4X3_DEV_62887e3f.IFCFACE' IN TYPEOF(temp))));
      END;
    'Shell' :
      BEGIN
        Count := SIZEOF(QUERY(temp <* Items | 
                  ('IFC4X3_DEV_62887e3f.IFCOPENSHELL' IN TYPEOF(temp))
                    OR ('IFC4X3_DEV_62887e3f.IFCCLOSEDSHELL' IN TYPEOF(temp))));
      END;
    'Undefined': RETURN(TRUE);
     OTHERWISE : RETURN(?);
    END_CASE;
    RETURN (Count = SIZEOF(Items));

END_FUNCTION;

8.18.6.4.3 参考文献