diff --git a/GeoModelTools/GeoModelXML/GeoModelXml/GeoModelXml/shape/AddPlane.h b/GeoModelTools/GeoModelXML/GeoModelXml/GeoModelXml/shape/AddPlane.h
index 7bac7dfa87f5f188905b3dc88479a14ffe3b2968..5bdf2cf62e495f35dcfc2c6e42bf268d5168353a 100644
--- a/GeoModelTools/GeoModelXML/GeoModelXml/GeoModelXml/shape/AddPlane.h
+++ b/GeoModelTools/GeoModelXML/GeoModelXml/GeoModelXml/shape/AddPlane.h
@@ -10,11 +10,14 @@ XERCES_CPP_NAMESPACE_BEGIN
 class DOMElement;
 XERCES_CPP_NAMESPACE_END
 
+class GmxUtil;
+
 class AddPlane {
 public:
     AddPlane() {};
     ~AddPlane() {};
     void process(const xercesc::DOMElement *element, double &zPlane, double &rMinPlane, double &rMaxPlane);
+    GmxUtil* gmxUtil=nullptr;
 };
 
 
diff --git a/GeoModelTools/GeoModelXML/GeoModelXml/src/AddPlane.cxx b/GeoModelTools/GeoModelXML/GeoModelXml/src/AddPlane.cxx
index 77eb535070d9fb9f9adc151ac4c6dba28951928a..4ae47791de96cd745c976561802dd0e350198828 100644
--- a/GeoModelTools/GeoModelXML/GeoModelXml/src/AddPlane.cxx
+++ b/GeoModelTools/GeoModelXML/GeoModelXml/src/AddPlane.cxx
@@ -3,6 +3,7 @@
 */
 
 #include "GeoModelXml/shape/AddPlane.h"
+#include "GeoModelXml/GmxUtil.h"
 #include <string>
 #include <sstream>
 
@@ -13,12 +14,17 @@ using namespace xercesc;
 
 void AddPlane::process(const xercesc::DOMElement *element, double &zPlane, double &rMinPlane, double &rMaxPlane) {
 
+  if (!gmxUtil)
+  {
+	std::cout<<"This is AddPlane::process()!! gmxUtil is 0!!!!!"<<std::endl;
+	return;
+  }
   XMLCh * zplane_tmp = XMLString::transcode("zplane");
-  std::istringstream(XMLString::transcode(element->getAttribute(zplane_tmp))) >> zPlane;
+  zPlane=gmxUtil->evaluate(XMLString::transcode(element->getAttribute(zplane_tmp)));
   XMLCh * rminplane_tmp = XMLString::transcode("rminplane");
-  std::istringstream(XMLString::transcode(element->getAttribute(rminplane_tmp))) >> rMinPlane;
+  rMinPlane=gmxUtil->evaluate(XMLString::transcode(element->getAttribute(rminplane_tmp)));
   XMLCh * rmaxplane_tmp = XMLString::transcode("rmaxplane");
-  std::istringstream(XMLString::transcode(element->getAttribute(rmaxplane_tmp))) >> rMaxPlane;
+  rMaxPlane=gmxUtil->evaluate(XMLString::transcode(element->getAttribute(rmaxplane_tmp)));
   XMLString::release(&zplane_tmp);
   XMLString::release(&rminplane_tmp);
   XMLString::release(&rmaxplane_tmp);
diff --git a/GeoModelTools/GeoModelXML/GeoModelXml/src/MakePcon.cxx b/GeoModelTools/GeoModelXML/GeoModelXml/src/MakePcon.cxx
index 4b98472a34cc87373c5c39110dacd0b6fdb78e25..20e7b88513a6a6738b6e3a5b6593832e6e303337 100644
--- a/GeoModelTools/GeoModelXML/GeoModelXml/src/MakePcon.cxx
+++ b/GeoModelTools/GeoModelXML/GeoModelXml/src/MakePcon.cxx
@@ -31,6 +31,7 @@ char *toRelease;
 //
 //    Add planes
 //
+    if (!gmxUtil.tagHandler.addplane.gmxUtil) gmxUtil.tagHandler.addplane.gmxUtil=&gmxUtil;
     double zPlane = 0.;
     double rMinPlane = 0.;
     double rMaxPlane = 0.;
diff --git a/GeoModelTools/GeoModelXML/GeoModelXml/src/MakePgon.cxx b/GeoModelTools/GeoModelXML/GeoModelXml/src/MakePgon.cxx
index a73b002c76279d6b03cca1bc818d26c9aa96dd6b..59afebcf1a01daed4f40ee95b629db6b3694702f 100644
--- a/GeoModelTools/GeoModelXML/GeoModelXml/src/MakePgon.cxx
+++ b/GeoModelTools/GeoModelXML/GeoModelXml/src/MakePgon.cxx
@@ -31,6 +31,7 @@ char *toRelease;
 //
 //    Add planes
 //
+    if (!gmxUtil.tagHandler.addplane.gmxUtil) gmxUtil.tagHandler.addplane.gmxUtil=&gmxUtil;
     double zPlane = 0.;
     double rMinPlane = 0.;
     double rMaxPlane = 0.;