#231 recovers 80/80 slab profiles exactly but declines all 20 IFCSHADINGDEVICE plates: their sketch-line boxes are 1 zero-extent + 21 diagonals with no axis-parallel segment to anchor the closure chain. Options: find the endpoint carrier inside the sketch-line record body (a diagonal box gives two candidate diagonals; the record may disambiguate), or a constrained global search over the element's segments with an explicit uniqueness proof (reject on any ambiguity, as the closure chain already does). Ground truth: the export's IfcArbitraryClosedProfileDef polygons for the 20 Tags.
#231 recovers 80/80 slab profiles exactly but declines all 20 IFCSHADINGDEVICE plates: their sketch-line boxes are 1 zero-extent + 21 diagonals with no axis-parallel segment to anchor the closure chain. Options: find the endpoint carrier inside the sketch-line record body (a diagonal box gives two candidate diagonals; the record may disambiguate), or a constrained global search over the element's segments with an explicit uniqueness proof (reject on any ambiguity, as the closure chain already does). Ground truth: the export's IfcArbitraryClosedProfileDef polygons for the 20 Tags.