Skip to content

According to specs RepresentationType "Clipping" doesn’t allow item IfcBooleanResult. #3605

@cheshiren

Description

@cheshiren

The rule “CorrectItemsForType” in Formal Propositions of IfcShapeRepresentation ties the RepresentationTypes and acceptable representation items.

According to it IfcBooleanResult should go to “CSG” and only IfcBooleanClippingResult allowed for the “Clipping”:

    'CSG' :
      BEGIN
        Count := SIZEOF(QUERY(temp <* Items | SIZEOF([
                   'IFC4X3_DEV_69668fda.IFCBOOLEANRESULT',
                   'IFC4X3_DEV_69668fda.IFCCSGPRIMITIVE3D',
                   'IFC4X3_DEV_69668fda.IFCCSGSOLID'] *  TYPEOF(temp)) >= 1
                 ));            
      END;
 
    'Clipping' :
      BEGIN
        Count := SIZEOF(QUERY(temp <* Items | SIZEOF([
                   'IFC4X3_DEV_69668fda.IFCCSGSOLID',
                   'IFC4X3_DEV_69668fda.IFCBOOLEANCLIPPINGRESULT'] * TYPEOF(temp)) >= 1
                 )); 
      END;

But whenever I cut any part with half-space, it gets a “Clipping” type and an IfcBooleanResult item:
https://youtu.be/QFL7tHGikyw

I think there are two ways:

  1. Change resulting type from “Clipping” to “CSG”;
  2. Make IfcBooleanClippingResult out of boolean operation. But there are limitations in allowable operands.

Metadata

Metadata

Assignees

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions