diff --git a/src/Mod/Fem/App/FemMeshPy.xml b/src/Mod/Fem/App/FemMeshPy.xml
index 59bde68f25..7c07931612 100755
--- a/src/Mod/Fem/App/FemMeshPy.xml
+++ b/src/Mod/Fem/App/FemMeshPy.xml
@@ -129,6 +129,21 @@
Return a tuple of node IDs to a given element ID
+
+
+ Return a string of group name to a given group ID
+
+
+
+
+ Return a string of group element type to a given group ID
+
+
+
+
+ Return a tuple of ElementIDs to a given group ID
+
+
Dictionary of Nodes by ID (int ID:Vector())
diff --git a/src/Mod/Fem/App/FemMeshPyImp.cpp b/src/Mod/Fem/App/FemMeshPyImp.cpp
index 562359fe36..b37f4d9748 100644
--- a/src/Mod/Fem/App/FemMeshPyImp.cpp
+++ b/src/Mod/Fem/App/FemMeshPyImp.cpp
@@ -25,7 +25,11 @@
#include
#include
+#include
#include
+#include
+#include
+#include
#include
#include
@@ -898,6 +902,57 @@ PyObject* FemMeshPy::getElementNodes(PyObject *args)
}
}
+PyObject* FemMeshPy::getGroupName(PyObject *args)
+{
+ int id;
+ if (!PyArg_ParseTuple(args, "i", &id))
+ return 0;
+
+ return PyString_FromString(getFemMeshPtr()->getSMesh()->GetGroup(id)->GetName());
+}
+
+PyObject* FemMeshPy::getGroupElementType(PyObject *args)
+{
+ int id;
+ if (!PyArg_ParseTuple(args, "i", &id))
+ return 0;
+
+ SMDSAbs_ElementType aElementType = getFemMeshPtr()->getSMesh()->GetGroup(id)->GetGroupDS()->GetType();
+ const char* typeString = "";
+ switch(aElementType) {
+ case SMDSAbs_All : typeString = "All"; break;
+ case SMDSAbs_Node : typeString = "Node"; break;
+ case SMDSAbs_Edge : typeString = "Edge"; break;
+ case SMDSAbs_Face : typeString = "Face"; break;
+ case SMDSAbs_Volume : typeString = "Volume"; break;
+ case SMDSAbs_0DElement : typeString = "0DElement"; break;
+ case SMDSAbs_Ball : typeString = "Ball"; break;
+ case SMDSAbs_NbElementTypes : typeString = "NbElementTypes"; break;
+ }
+ return PyString_FromString(typeString);
+}
+
+PyObject* FemMeshPy::getGroupElements(PyObject *args)
+{
+ int id;
+ if (!PyArg_ParseTuple(args, "i", &id))
+ return 0;
+
+ std::set ids;
+ SMDS_ElemIteratorPtr aElemIter = getFemMeshPtr()->getSMesh()->GetGroup(id)->GetGroupDS()->GetElements();
+ while (aElemIter->more()) {
+ const SMDS_MeshElement* aElement = aElemIter->next();
+ ids.insert(aElement->GetID());
+ }
+
+ Py::Tuple tuple(ids.size());
+ int index = 0;
+ for (std::set::iterator it = ids.begin(); it != ids.end(); ++it) {
+ tuple.setItem(index++, Py::Int(*it));
+ }
+
+ return Py::new_reference_to(tuple);
+}
// ===== Atributes ============================================================