IFC 4.3.2.20250905 (IFC4X3_ADD2) under development

  • Help suggest improvements
  • Get user or developer support

8.8.3.5 IfcBooleanResult

AbV ⓘ

8.8.3.5.1 Semantic definition

The IfcBooleanResult is the result of applying a Boolean operation to two operands being solids.

If the first operand is a block and the second operand is a solid cylinder of suitable dimensions and location, the boolean result produced with the difference operator would be a block with a circular hole. Definition according to ISO/CD 10303-42:1992 A Boolean result is the result of a regularized operation on two solids to create a new solid. Valid operations are regularized union, regularized intersection, and regularized difference. For purpose of Boolean operations, a solid is considered to be a regularized set of points. The final Boolean result depends upon the operation and the two operands. In the case of the difference operator the order of the operands is also significant. The operator can be either union, intersection or difference. The effect of these operators is described below: > * Union on two solids is the new solid that is the regularization of the set of all points that are in either the first operand or the second operand or in both. * Intersection on two solids is the new solid that is the regularization of the set of all points that are in both the first operand and the second operand. * The result of the difference operation on two solids is the regularization of the set of all points which are in the first operand, but not in the second operand. Corresponding STEP type boolean_result defined in ISO 10303-42. New entity in IFC1.5.1.

8.8.3.5.2 Entity inheritance

8.8.3.5.3 Attributes

# Attribute Type Description
IfcRepresentationItem (2)
LayerAssignment SET [0:1] OF IfcPresentationLayerAssignment FOR AssignedItems

Assignment of the representation item to a single or multiple layer(s). The LayerAssignments can override a LayerAssignments of the IfcRepresentation it is used within the list of Items.

The inverse attribute LayerAssignments has been added. The inverse attribute LayerAssignment has been restricted to max 1. Upward compatibility for file based exchange is guaranteed.
StyledByItem SET [0:1] OF IfcStyledItem FOR Item

Reference to the IfcStyledItem that provides presentation information to the representation, e.g. a curve style, including colour and thickness to a geometric curve.

The inverse attribute StyledByItem has been added.
Click to show 2 hidden inherited attributes Click to hide 2 inherited attributes
IfcBooleanResult (4)
1 Operator IfcBooleanOperator

The Boolean operator used in the operation to create the result.

2 FirstOperand IfcBooleanOperand

The first operand to be operated upon by the Boolean operation.

3 SecondOperand IfcBooleanOperand

The second operand specified for the operation.

* Dim IfcDimensionCount

This attribute is formally derived.

FirstOperand.Dim

The space dimensionality of this entity. It is identical with the space dimensionality of the first operand. A where rule ensures that both operands have the same space dimensionality.

Table 8.8.3.5.B

8.8.3.5.4 Formal propositions

Name Description
FirstOperandClosed

If the FirstOperand is of type IfcTessellatedFaceSet it has to be a closed tessellation.

NOT('IFC4X3_DEV_bc7847cd.IFCTESSELLATEDFACESET' IN TYPEOF(FirstOperand)) OR (EXISTS(FirstOperand.Closed) AND FirstOperand.Closed)
SameDim

The dimensionality of the first operand shall be the same as the dimensionality of the second operand.

FirstOperand.Dim = SecondOperand.Dim
SecondOperandClosed

If the SecondOperand is of type IfcTessellatedFaceSet it has to be a closed tessellation.

NOT('IFC4X3_DEV_bc7847cd.IFCTESSELLATEDFACESET' IN TYPEOF(SecondOperand)) OR (EXISTS(SecondOperand.Closed) AND SecondOperand.Closed)
Table 8.8.3.5.C

8.8.3.5.5 Examples

8.8.3.5.6 Formal representation

ENTITY IfcBooleanResult
 SUPERTYPE OF (ONEOF
	(IfcBooleanClippingResult))
 SUBTYPE OF (IfcGeometricRepresentationItem);
	Operator : IfcBooleanOperator;
	FirstOperand : IfcBooleanOperand;
	SecondOperand : IfcBooleanOperand;
 DERIVE
	 Dim : IfcDimensionCount := FirstOperand.Dim;
 WHERE
	FirstOperandClosed : NOT('IFC4X3_DEV_bc7847cd.IFCTESSELLATEDFACESET' IN TYPEOF(FirstOperand)) OR (EXISTS(FirstOperand.Closed) AND FirstOperand.Closed);
	SameDim : FirstOperand.Dim = SecondOperand.Dim;
	SecondOperandClosed : NOT('IFC4X3_DEV_bc7847cd.IFCTESSELLATEDFACESET' IN TYPEOF(SecondOperand)) OR (EXISTS(SecondOperand.Closed) AND SecondOperand.Closed);
END_ENTITY;

8.8.3.5.7 References

Edit on Github


Is this page difficult to understand? Let us know!

8.8.3.5.8 Changelog

8.8.3.5.8.1 IFC4

  • where rule, FirstOperandClosed
  • where rule, SameDim
  • where rule, SecondOperandClosed
  • where rule, WR1