Class Ifc4x2::IfcRelInterferesElements

Nested Relationships

This class is a nested type of Struct Ifc4x2.

Inheritance Relationships

Base Type

Class Documentation

class Ifc4x2::IfcRelInterferesElements : public Ifc4x2::IfcRelConnects

Definition from IAI: The IfcRelInterferesElements objectified relationship indicates that two elements interfere. Interference is a spatial overlap between the two elements. It is a 1 to 1 relationship. The concept of two elements interfering physically or logically is described independently from the elements. The interference may be related to the shape representation of the entities by providing an interference geometry.

When the interference geometry is available it can be passed by the optional attribute InterferenceGeometry pointing to IfcConnectionGeometry. The connection geometry is provided as a point, curve, surface, or volume within the local placement coordinate systems of the connecting elements. The IfcConnectionVolumeGeometry is the default type to be used for interference in 3D space, as indicated in e.g. clash detections. If the interference geometry is omitted then the interference is provided as a logical relationship. Under this circumstance, the connection point, curve, surface, or solid has to be recalculated by the receiving application.

The RelatingElement and RelatedElement define the two elements in the relationship, that may have different roles. This is controlled by the attribute ImpliedOrder.

ImpliedOrder=TRUE The RelatingElement constitutes the primary element of the interference relationship. If the interference is to be resolved by subtracting the overlapping part, it should be subtracted from the RelatingElement. The net result would be the RelatingElement subtracted by the InterferenceGeometry. This would be the case in interference relationships where the RelatedElement creates a void in the RelatingElement dynamically. ImpliedOrder=FALSE The RelatingElement and RelatedElement have no priority among each other. If the interference is to be resolved then no information about whether the InterferenceGeometry should be subtracted from the RelatingElement or thed RelatedElement can be traced. This would be the case for clash detection results. ImpliedOrder=UNKNOW No information about the priorities is provided.

HISTORY New entity in IFC2x4.

Public Functions

::Ifc4x2::IfcElement *RelatingElement() const

Reference to a subtype of IfcElement that is the RelatingElement in the interference relationship. Depending on the value of ImpliedOrder the RelatingElement may carry the notion to be the element from which the interference geometry should be subtracted.

void setRelatingElement(::Ifc4x2::IfcElement *v)
::Ifc4x2::IfcElement *RelatedElement() const

Reference to a subtype of IfcElement that is the RelatedElement in the interference relationship. Depending on the value of ImpliedOrder the RelatedElement may carry the notion to be the element from which the interference geometry should not be subtracted.

void setRelatedElement(::Ifc4x2::IfcElement *v)
bool hasInterferenceGeometry() const

Whether the optional attribute InterferenceGeometry is defined for this IfcRelInterferesElements.

::Ifc4x2::IfcConnectionGeometry *InterferenceGeometry() const

The geometric shape representation of the interference geometry that is provided in the object coordinate system of the RelatingElement (mandatory) and in the object coordinate system of the RelatedElement (optionally).

void setInterferenceGeometry(::Ifc4x2::IfcConnectionGeometry *v)
bool hasInterferenceType() const

Whether the optional attribute InterferenceType is defined for this IfcRelInterferesElements.

std::string InterferenceType() const

Optional identifier that describes the nature of the interference. Examples could include ‘Clash’, ‘ProvisionForVoid’, etc.

void setInterferenceType(std::string v)
bool ImpliedOrder() const

Logical value indicating whether the interference geometry should be subtracted from the RelatingElement (if TRUE), or whether it should be either subtracted from the RelatingElement or the RelatedElement (if FALSE), or whether no indication can be provided (if UNKNOWN).

void setImpliedOrder(bool v)
const IfcParse::entity &declaration() const
IfcRelInterferesElements(IfcEntityInstanceData *e)
IfcRelInterferesElements(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, ::Ifc4x2::IfcElement *v5_RelatingElement, ::Ifc4x2::IfcElement *v6_RelatedElement, ::Ifc4x2::IfcConnectionGeometry *v7_InterferenceGeometry, boost::optional<std::string> v8_InterferenceType, bool v9_ImpliedOrder)

Public Static Functions

const IfcParse::entity &Class()