如果将不同的填充区域样式正确指定给IfcFillAreaStyle,则此函数返回true。只允许IfcFillStyleSelect提供的实体类型的某些组合。
返回false:
①如果指定了多个外部定义的样式
②如果给定了外部定义的样式,并且附加了任何其他内部样式定义
③如果指定了一种以上的背景色
④如果两者都指定了图案填充和平铺
否则返回true
IFC2x3 TC1版本中增加新功能。
EXPRESS Specification
FUNCTION IfcCorrectFillAreaStyle (Styles : SET[1:?] OF IfcFillStyleSelect) :LOGICAL; LOCAL Hatching : INTEGER := 0; Tiles : INTEGER := 0; Colour : INTEGER := 0; External : INTEGER := 0; END_LOCAL; External := SIZEOF(QUERY(Style <* Styles | 'IFCPRESENTATIONAPPEARANCERESOURCE.IFCEXTERNALLYDEFINEDHATCHSTYLE' IN TYPEOF(Style))); Hatching := SIZEOF(QUERY(Style <* Styles | 'IFCPRESENTATIONAPPEARANCERESOURCE.IFCFILLAREASTYLEHATCHING' IN TYPEOF(Style))); Tiles := SIZEOF(QUERY(Style <* Styles | 'IFCPRESENTATIONAPPEARANCERESOURCE.IFCFILLAREASTYLETILES' IN TYPEOF(Style))); Colour := SIZEOF(QUERY(Style <* Styles | 'IFCPRESENTATIONAPPEARANCERESOURCE.IFCCOLOUR' IN TYPEOF(Style))); IF (External > 1) THEN RETURN (FALSE); END_IF; IF ((External = 1) AND ((Hatching > 0) OR (Tiles > 0) OR (Colour > 0))) THEN RETURN (FALSE); END_IF; IF (Colour > 1) THEN RETURN (FALSE); END_IF; IF ((Hatching > 0) AND (Tiles >0)) THEN RETURN (FALSE); END_IF; RETURN(TRUE); END_FUNCTION;