Allowable to associate more than one IfcTypeObject with an IfcObject (IfcRelDefinesByType)?

My gut feeling says no, but is there a formal rule associated with this?

IsTypedBy set’s cardinality is 1 at most for IfcObject.

ENTITY IfcObject
 SUBTYPE OF (IfcObjectDefinition);
	ObjectType : OPTIONAL IfcLabel;
	IsDeclaredBy : SET [0:1] OF IfcRelDefinesByObject FOR RelatedObjects;
	Declares : SET [0:?] OF IfcRelDefinesByObject FOR RelatingObject;
	IsTypedBy : SET [0:1] OF IfcRelDefinesByType FOR RelatedObjects;
	IsDefinedBy : SET [0:?] OF IfcRelDefinesByProperties FOR RelatedObjects;
	UniquePropertySetNames : ((SIZEOF(IsDefinedBy) = 0) OR IfcUniqueDefinitionNames(IsDefinedBy));

Super. Thanks!

For completeness, in Ifc2x3, the rule is in a more verbose form:

IfcObject : WR1 : Only maximum of one relationship to an underlying type (by an IfcRelDefinesByType relationship) should be given for an object instance.

For completeness, in Ifc2x3, the rule is in a more verbose form

Just fyi, that’s because in IFC2X3 the IsDefinedBy attribute combined both IfcRelDefinesByProperties as well as ByType. So there needed to be a formal imperative rule to check that within that set of relationships at most one established a type. In IFC4 that inverse attribute was split out into a designated one for type with an bound of 1 so an explicit rule was no longer needed.

1 Like