The issue is that trimmed faces are back to their untrimmed state as soon as I use the Offset method. How can I create this offset solid from a trimmed face?
Its the ToBrep method as well as face.Offset that will untrim the face.
Can’t you just feed your face variable to Brep.CreateFromOffsetFace ?
You seem to be trying to offset the face twice so both times I would use Brep.CreateFromOffsetFace, but don’t use ToBrep in between if you want to preserve the trim definitions
I do it like this because Brep.CreateFromOffsetFace offsets the surface in place, while I want to be able to have eccentricity applied, therefore I first move the surface by the eccentricity.
That means you cannot use those functions if you don’t want to lose the trim boundaries. You have to do it a different way.
If you use face.Offset() it will offset the underlying surface and the trim boundaries are lost.
The first offset needs to be done with Brep.CreateFromOffsetFace() as does the second offset. You should extract the face from the brep result of the first offset to get the face to input for the second offset.