During a STEP export with HOOPS Exchange, some NURBS conversion of the model is performed.
The same result can be reproduced by calling the AdaptAndReplace or CopyAndAdapt functions, as shown in the BrepAdaptor sample, with the following parameters:
const A3DUns32 NUM_VALID_SURFACES = 0; // All surfaces are converted A3DUns32 ACCEPTED_SURFACES[NUM_VALID_SURFACES] = {}; const A3DUns32 NUM_VALID_CURVES = 0; // All curves are converted A3DUns32 ACCEPTED_CURVES[NUM_VALID_CURVES] = {}; sCopyAndAdaptBrepModelData.m_dTol = 0.; // Keep the model tolerance sCopyAndAdaptBrepModelData.m_bUseSameParam = false; sCopyAndAdaptBrepModelData.m_bForceComputeUV = true; sCopyAndAdaptBrepModelData.m_bForceCompute3D = true; sCopyAndAdaptBrepModelData.m_bSplitFaces = true; sCopyAndAdaptBrepModelData.m_bSplitClosedFaces = true; sCopyAndAdaptBrepModelData.m_bDeleteCrossingUV = true; sCopyAndAdaptBrepModelData.m_bAllowUVCrossingSeams = false; sCopyAndAdaptBrepModelData.m_bForceDuplicateGeometries = true; sCopyAndAdaptBrepModelData.m_bClampTolerantUVCurvesInsideUVDomain = false; sCopyAndAdaptBrepModelData.m_bContinueOnError = false; sCopyAndAdaptBrepModelData.m_uiAcceptableSurfacesSize = NUM_VALID_SURFACES; sCopyAndAdaptBrepModelData.m_puiAcceptableSurfaces = &ACCEPTED_SURFACES[0]; sCopyAndAdaptBrepModelData.m_uiAcceptableCurvesSize = NUM_VALID_CURVES; sCopyAndAdaptBrepModelData.m_puiAcceptableCurves = &ACCEPTED_CURVES[0];