Fixes: #7387. See comment: https://github.com/FreeCAD/FreeCAD/issues/7387#issuecomment-2915599566 PR to change the base object of BezCurve, BSpline and Wire to `Part::FeaturePython`. This will only affect new objects. So code will have to also keep handling the old object type (`Part::Part2DObjectPython`). The modification of BimPreflight.py needs to be verified. The steps in the old code lacked logic IMO. But I may have misunderstood.
2020 May
These modules provide supporting functions for dealing with the custom "scripted objects" defined within the workbench.
The functions are meant to be used in the creation step of the objects,
by the "make functions" in draftmake/, but also by the graphical
"Gui Commands" modules in draftguitools/ and drafttaskpanels/.
These functions should deal with the internal shapes of the objects,
or other special properties. They should not be very generic;
if they are very generic then they are more appropriate to be included
in the modules in draftutils/.
For more information see the thread: [Discussion] Splitting Draft tools into their own modules