IFC 4.3.0.0 (IFC4X3) final

5.1.6.2 IfcUniqueDefinitionNames

5.1.6.2.1 Semantic definition

The function gets the set of IfcRelDefinesByProperties. It iterates through the Name attribute of the IfcPropertySet's and verifies that no Name appears twice.

5.1.6.2.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.IFCPROPERTYSETDEFINITION' IN TYPEOF(Definition) THEN
    Properties := Properties + Definition;
  ELSE 
    IF 'IFC4X3.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.2.3 References