Unique Definition Names |
The function gets the set of IfcRelDefinesByProperties. It iterates through the Name attibute of the IfcPropertySet's and verifies that no Name appears twice.
HISTORY New function in IFC4 ADD1
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 'IFCKERNEL.IfcPropertySetDefinition' IN TYPEOF(Definition) THEN
Properties := Properties + Definition;
ELSE
IF 'IFCKERNEL.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;
References: IfcObject