I'm trying to get an intersection boundary of a prism's surface and a plane:
prism = Entity["Polyhedron",{"Prism", 6}] plane = InfinitePlane[prism["VertexCoordinates"][[{4, 6, 11}]]] RegionIntersection[plane, prism["ImplicitRegion"]] DiscretizeRegion turns it into 2D face, but I can't for the life of me extract the boundary of it. RegionBoundary doesn't work, it works as an identity and doesn't lower region's dimension. I've also tried everything with prism["MeshRegion"] and prism["BoundaryMeshRegion"].


Length[MeshPrimitives[ EntityValue[ Entity["Polyhedron", {"Prism", 6}], "MeshRegion"], 2] ]you see that the mesh region for this entity has almost 24,000 polygons! $\endgroup$Cases[RegionIntersection[plane, #] & /@ MeshPrimitives[DiscretizeGraphics@prism["Faces"], 2], _Line], not exactly perfect, but good enough... $\endgroup$Regionsolution, discretizing graphics feels wrong to me $\endgroup$Regionfunctions don't work for 3D regions as well. You can tweak your solution to give a polygon,polygon = Cases[RegionIntersection[plane, #] & /@ MeshPrimitives[DiscretizeGraphics@prism["Faces"], 2], Line[{a_, b_}] :> Sequence[a, b]] // (#[[Last@FindShortestTour[#]]] &) // Polygon; Graphics3D@polygon$\endgroup$"BoundaryMeshRegion"property gives us a region with a minimal amount of polygons. We can get aMeshRegionfrom this with only 12 tetrahedron withTriangulateMesh[prism["BoundaryMeshRegion"], MaxCellMeasure -> Infinity]. $\endgroup$