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
ABSTRACT SUPERTYPE OF (ONEOF
(IfcActor
,IfcControl
,IfcGroup
,IfcProcess
,IfcProduct
,IfcResource))
SUBTYPE OF (IfcObjectDefinition);
ObjectType : OPTIONAL IfcLabel;
INVERSE
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;
WHERE
UniquePropertySetNames : ((SIZEOF(IsDefinedBy) = 0) OR IfcUniqueDefinitionNames(IsDefinedBy));
END_ENTITY;
standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/link/ifcobject.htm
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.