diff --git a/src/Mod/Sketcher/App/SketchObjectPy.xml b/src/Mod/Sketcher/App/SketchObjectPy.xml
index 3a3212aa3c..a43085e236 100644
--- a/src/Mod/Sketcher/App/SketchObjectPy.xml
+++ b/src/Mod/Sketcher/App/SketchObjectPy.xml
@@ -98,6 +98,16 @@
set the Driving status of a datum constraint
+
+
+ set the Driving status of datum constraints
+
+
+
+
+ Moves all datum constraints to the end of the constraint list
+
+
Get the Driving status of a datum constraint
diff --git a/src/Mod/Sketcher/App/SketchObjectPyImp.cpp b/src/Mod/Sketcher/App/SketchObjectPyImp.cpp
index 4322ba3062..8fe06a8d4c 100644
--- a/src/Mod/Sketcher/App/SketchObjectPyImp.cpp
+++ b/src/Mod/Sketcher/App/SketchObjectPyImp.cpp
@@ -727,6 +727,40 @@ PyObject* SketchObjectPy::setDriving(PyObject *args)
Py_Return;
}
+PyObject* SketchObjectPy::setDatumsDriving(PyObject *args)
+{
+ PyObject* driving;
+
+ if (!PyArg_ParseTuple(args, "O!", &PyBool_Type, &driving))
+ return 0;
+
+ if (this->getSketchObjectPtr()->setDatumsDriving(PyObject_IsTrue(driving) ? true : false)) {
+ std::stringstream str;
+ str << "Not able set all dimensionals driving/refernce";
+ PyErr_SetString(PyExc_ValueError, str.str().c_str());
+ return 0;
+ }
+
+ Py_Return;
+}
+
+PyObject* SketchObjectPy::moveDatumsToEnd(PyObject *args)
+{
+
+ if (!PyArg_ParseTuple(args, ""))
+ return 0;
+
+ if (this->getSketchObjectPtr()->moveDatumsToEnd()) {
+ std::stringstream str;
+ str << "Not able move all dimensionals to end";
+ PyErr_SetString(PyExc_ValueError, str.str().c_str());
+ return 0;
+ }
+
+ Py_Return;
+}
+
+
PyObject* SketchObjectPy::getDriving(PyObject *args)
{
int constrid;