AdvancedBrep with IfcCylindricalSurface Vs. IfcRightCircularCylinder

Hi,
I am working on exporting IFC file for both cylinder and cone geometries (in fact my geometry are MSB(manifold solid brep) solid/surface body) under IFC4 schema DTV mvd. I found I have two ways to represent cylinder geometry:

  1. by IfcAdvancedBrep / IfcShellBasedSurfaceModel with underline surface as IfcCylindricalSurface.
  2. by creating a IfcRightCircularCylinder object.

Does it make sense to use #1 to generate ifc entity for this case? Or what’s the criteria of exporting either MSB or CSG in general?

At the same time I also have cone type MSB but seems IFC MSB don’t have equavilant types but only IfcRightCircularCone (CSG) type, what’s the recommended representation for conic solid/surface body in IFC?

For a cone I use ifcExtrudedAreaSolidTapered

Thanks! Use this seems make sense to create for a solid cone. Do you have any clue how to represent a surface cone geometry?

Also, what’s the consideration for not using IfcRightCircularCone? thttps://standards.buildingsmart.org/IFC/DEV/IFC4_2/FINAL/HTML/schema/ifcgeometricmodelresource/lexical/ifcrightcircularcone.htm

Do you have any clue how to represent a surface cone geometry? …

I think, you must calculate all face-points and than you can use https://standards.buildingsmart.org/IFC/DEV/IFC4_2/FINAL/HTML/link/ifcfacetedbrep.htm
but the Information, that it is a cone, is lost.

I see no reason not to use ifcRightCircularCone for a not tapered cone.
Both are ifcGeometricRepresentationItem, see inheritance (extract without ifc-prefix):

GeometricRepresentationItem
      .SolidModel
      .      .SweptAreaSolid
      .      .      .RevolvedAreaSolid
      .      .      .      .RevolvedAreaSolidTapered
      .      .ManifoldSolidBrep
      .      .      .FacetedBrep
      .CsgPrimitive3D
      .      .RightCircularCone

Thank you @bsbock! I see solid cone representation is quite flexible. however if we want keep surface cone body (with the cone information), then ifcRightCircularCone /ifcExtrudedAreaSolidTapered can’t fit well. Instead I noticed there is a IfcSurfaceOfRevolution can act as inner geometry type to make consistent in typo for AdvancedBrep and ShellBasedSurfaceModel. :slight_smile: