5.1.6.1 IfcUniqueDefinitionNames (唯一定义名称)
5.1.6.1.1 语义定义(Semantic definition)
该函数获取 IfcRelDefinesByProperties 的集合。它遍历 IfcPropertySet 的 Name 特性,并验证没有 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;