IFC 4.3.2.20251031 (IFC4X3_ADD2) under development

5.1.6.1 IfcUniqueDefinitionNames (唯一定义名称)

5.1.6.1.1 语义定义(Semantic definition)

该函数获取 IfcRelDefinesByProperties 的集合。它遍历 IfcPropertySetName 特性,并验证没有 Name 重复出现。

5.1.6.1.2 形式化表示(Formal representation)

FUNCTION IfcUniqueDefinitionNames
(Relations : SET [1:?] OF IfcRelDefinesByProperties)
:LOGICAL;

LOCAL
  Definition : IfcPropertySetDefinitionSelect;
  DefinitionSet : IfcPropertySetDefinitionSet;
  Properties : SET OF IfcPropertySetDefinition := [];
  Result : LOGICAL;
END_LOCAL;

IF SIZEOF(Relations) = 0 THEN
  RETURN(TRUE);
END_IF;

REPEAT i:=1 TO HIINDEX(Relations);
  Definition := Relations[i].RelatingPropertyDefinition;
  IF 'IFC4X3_DEV_62887e3f.IFCPROPERTYSETDEFINITION' IN TYPEOF(Definition) THEN
    Properties := Properties + Definition;
  ELSE 
    IF 'IFC4X3_DEV_62887e3f.IFCPROPERTYSETDEFINITIONSET' IN TYPEOF(Definition) THEN
      BEGIN
        DefinitionSet := Definition;
        REPEAT j:= 1 TO HIINDEX(DefinitionSet);
          Properties := Properties + DefinitionSet[j];
        END_REPEAT;
      END;
 END_IF;
  END_IF;
END_REPEAT;

Result := IfcUniquePropertySetNames(Properties);
RETURN (Result);

END_FUNCTION;

5.1.6.1.3 参考文献