diff --git a/src/Mod/Sketcher/App/ExternalGeometryFacade.h b/src/Mod/Sketcher/App/ExternalGeometryFacade.h
index 9f6cb94063..fecc6e46f0 100644
--- a/src/Mod/Sketcher/App/ExternalGeometryFacade.h
+++ b/src/Mod/Sketcher/App/ExternalGeometryFacade.h
@@ -80,6 +80,9 @@ public:
inline virtual long getId() const override {return getGeoExt()->getId();}
virtual void setId(long id) override {getGeoExt()->setId(id);}
+ virtual InternalType::InternalType getInternalType() const override {return getGeoExt()->getInternalType();}
+ virtual void setInternalType(InternalType::InternalType type) override {getGeoExt()->setInternalType(type);}
+
// Geometry Extension Information
inline const std::string &getSketchExtensionName () const {return SketchGeoExtension->getName();}
inline const std::string &getExternalExtensionName () const {return ExternalGeoExtension->getName();}
diff --git a/src/Mod/Sketcher/App/GeometryFacade.h b/src/Mod/Sketcher/App/GeometryFacade.h
index ce4d162ea3..b134969c92 100644
--- a/src/Mod/Sketcher/App/GeometryFacade.h
+++ b/src/Mod/Sketcher/App/GeometryFacade.h
@@ -122,6 +122,9 @@ public:
inline virtual long getId() const override {return getGeoExt()->getId();}
virtual void setId(long id) override {getGeoExt()->setId(id);}
+ virtual InternalType::InternalType getInternalType() const override {return getGeoExt()->getInternalType();}
+ virtual void setInternalType(InternalType::InternalType type) override {getGeoExt()->setInternalType(type);}
+
// Geometry Extension Information
inline const std::string &getExtensionName () const {return SketchGeoExtension->getName();}
diff --git a/src/Mod/Sketcher/App/GeometryFacadePy.xml b/src/Mod/Sketcher/App/GeometryFacadePy.xml
index fdb1aa5bc4..2ace52a7c8 100644
--- a/src/Mod/Sketcher/App/GeometryFacadePy.xml
+++ b/src/Mod/Sketcher/App/GeometryFacadePy.xml
@@ -23,6 +23,14 @@
+
+
+
+ returns the Id of the SketchGeometryExtension.
+
+
+
+
Performs the symmetrical transformation of this geometric object
diff --git a/src/Mod/Sketcher/App/GeometryFacadePyImp.cpp b/src/Mod/Sketcher/App/GeometryFacadePyImp.cpp
index b89460a005..ba32dd7197 100644
--- a/src/Mod/Sketcher/App/GeometryFacadePyImp.cpp
+++ b/src/Mod/Sketcher/App/GeometryFacadePyImp.cpp
@@ -92,6 +92,38 @@ void GeometryFacadePy::setId(Py::Long Id)
this->getGeometryFacadePtr()->setId(long(Id));
}
+Py::String GeometryFacadePy::getInternalType(void) const
+{
+ int internaltypeindex = (int)this->getGeometryFacadePtr()->getInternalType();
+
+ if(internaltypeindex >= InternalType::NumInternalGeometryType)
+ throw Py::NotImplementedError("String name of enum not implemented");
+
+ std::string typestr = SketchGeometryExtension::internaltype2str[internaltypeindex];
+
+ return Py::String(typestr);
+}
+
+void GeometryFacadePy::setInternalType(Py::String arg)
+{
+ std::string argstr = arg;
+
+ auto pos = std::find_if( SketchGeometryExtension::internaltype2str.begin(),
+ SketchGeometryExtension::internaltype2str.end(),
+ [argstr](const char * val) {
+ return strcmp(val,argstr.c_str())==0;}
+ );
+
+ if( pos != SketchGeometryExtension::internaltype2str.end()) {
+ int index = std::distance( SketchGeometryExtension::internaltype2str.begin(), pos );
+
+ this->getGeometryFacadePtr()->setInternalType((InternalType::InternalType)index);
+ return;
+ }
+
+ throw Py::ValueError("Argument is not a valid internal geometry type.");
+}
+
PyObject* GeometryFacadePy::mirror(PyObject *args)
{
PyObject* o;