Salome HOME
PR: synchro V6_main tag mergeto_V7_main_11Feb13
[modules/geom.git] / src / GEOM_SWIG / geompyDC.py
index a8b40c0718ad817617ac224d992ce28182c6a791..aab86866e032632a88a0e520a0d7e1814d750730 100644 (file)
     \brief Module geompyDC
 """
 
-## @defgroup l1_geompyDC_auxiliary Auxiliary data structures and methods
+##
+## @defgroup l1_publish_data Publishing results in SALOME study
+## @{
+##
+## @details
+##
+## By default, all functions of geompy.py Python interface do not publish
+## resulting geometrical objects. This can be done in the Python script
+## by means of geompy.addToStudy() or geompy.addToStudyInFather()
+## functions.
+## 
+## However, it is possible to publish result data in the study
+## automatically. For this, almost each function of geompy.py module has
+## an additional @a theName parameter (@c None by default).
+## As soon as non-empty string value is passed to this parameter,
+## the result object is published in the study automatically.
+## 
+## For example,
+## 
+## @code
+## box = geompy.MakeBoxDXDYDZ(100, 100, 100) # box is not published in the study yet
+## geompy.addToStudy(box, "box")             # explicit publishing
+## @endcode
+## 
+## can be replaced by one-line instruction
+## 
+## @code
+## box = geompy.MakeBoxDXDYDZ(100, 100, 100, theName="box") # box is published in the study with "box" name
+## @endcode
+## 
+## ... or simply
+## 
+## @code
+## box = geompy.MakeBoxDXDYDZ(100, 100, 100, "box") # box is published in the study with "box" name
+## @endcode
+##
+## Note, that some functions produce more than one geometrical objects. For example,
+## geompy.GetNonBlocks() function returns two objects: group of all non-hexa solids and group of
+## all non-quad faces. For such functions it is possible to specify separate names for results.
+##
+## For example
+##
+## @code
+## # create and publish cylinder
+## cyl = geompy.MakeCylinderRH(100, 100, "cylinder")
+## # get non blocks from cylinder
+## g1, g2 = geompy.GetNonBlocks(cyl, "nonblock")
+## @endcode
+##
+## Above example will publish both result compounds (first with non-hexa solids and
+## second with non-quad faces) as two items, both named "nonblock".
+## However, if second command is invoked as
+##
+## @code
+## g1, g2 = geompy.GetNonBlocks(cyl, ("nonhexa", "nonquad"))
+## @endcode
+##
+## ... the first compound will be published with "nonhexa" name, and second will be named "nonquad".
+##
+## Automatic publication of all results can be also enabled/disabled by means of the function
+## geompy.addToStudyAuto(). The automatic publishing is managed by the numeric parameter passed
+## to this function:
+## - if @a maxNbSubShapes = 0, automatic publishing is disabled.
+## - if @a maxNbSubShapes = -1 (default), automatic publishing is enabled and
+##   maximum number of sub-shapes allowed for publishing is unlimited; any negative
+##   value passed as parameter has the same effect.
+## - if @a maxNbSubShapes is any positive value, automatic publishing is enabled and
+##   maximum number of sub-shapes allowed for publishing is set to specified value.
+## 
+## When automatic publishing is enabled, you even do not need to pass @a theName parameter 
+## to the functions creating objects, instead default names will be used. However, you
+## can always change the behavior, by passing explicit name to the @a theName parameter
+## and it will be used instead default one.
+## The publishing of the collections of objects will be done according to the above
+## mentioned rules (maximum allowed number of sub-shapes).
+##
+## For example:
+##
+## @code
+## geompy.addToStudyAuto() # enable automatic publication
+## box = geompy.MakeBoxDXDYDZ(100, 100, 100) 
+## # the box is created and published in the study with default name
+## geompy.addToStudyAuto(5) # set max allowed number of sub-shapes to 5
+## vertices = geompy.SubShapeAll(box, geompy.ShapeType['VERTEX'])
+## # only 5 first vertices will be published, with default names
+## print len(vertices)
+## # note, that result value still containes all 8 vertices
+## geompy.addToStudyAuto(-1) # disable automatic publication
+## @endcode
+##
+## This feature can be used, for example, for debugging purposes.
+##
+## @note
+## - Use automatic publication feature with caution. When it is enabled, any function of geompy.py module
+##   publishes the results in the study, that can lead to the huge size of the study data tree.
+##   For example, repeating call of geompy.SubShapeAll() command on the same main shape each time will
+##   publish all child objects, that will lead to a lot of duplicated items in the study.
+## - Sub-shapes are automatically published as child items of the parent main shape in the study if main
+##   shape was also published before. Otherwise, sub-shapes are published as top-level objects.
+## - Not that some functions of geompy.py module do not have @theName parameter (and, thus, do not support
+##   automatic publication). For example, some transformation operations like geompy.TranslateDXDYDZ().
+##   Refer to the documentation to check if some function has such possibility.
+##
+## @}
+
+
+## @defgroup l1_geompy_auxiliary Auxiliary data structures and methods
 
 ## @defgroup l1_geompyDC_purpose   All package methods, grouped by their purpose
 ## @{
 ##     @defgroup l3_basic_op      Basic Operations
 ##     @defgroup l3_boolean       Boolean Operations
 ##     @defgroup l3_transform     Transformation Operations
+##     @defgroup l3_transform_d   Transformation Operations deprecated methods
 ##     @defgroup l3_local         Local Operations (Fillet, Chamfer and other Features)
 ##     @defgroup l3_blocks_op     Blocks Operations
 ##     @defgroup l3_healing       Repairing Operations
@@ -97,6 +204,18 @@ from gsketcher import Sketcher3D
 #  @ingroup l1_geompyDC_auxiliary
 ShapeType = {"AUTO":-1, "COMPOUND":0, "COMPSOLID":1, "SOLID":2, "SHELL":3, "FACE":4, "WIRE":5, "EDGE":6, "VERTEX":7, "SHAPE":8}
 
+# service function
+def _toListOfNames(_names, _size=-1):
+    l = []
+    import types
+    if type(_names) in [types.ListType, types.TupleType]:
+        for i in _names: l.append(i)
+    elif _names:
+        l.append(_names)
+    if l and len(l) < _size:
+        for i in range(len(l), _size): l.append("%s_%d"%(l[0],i))
+    return l
+
 ## Raise an Error, containing the Method_name, if Operation is Failed
 ## @ingroup l1_geompyDC_auxiliary
 def RaiseIfFailed (Method_name, Operation):
@@ -424,6 +543,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             #global created
             #print "-------- geompyDC __init__ --- ", created, self
             GEOM._objref_GEOM_Gen.__init__(self)
+            self.myMaxNbSubShapesAllowed = 0 # auto-publishing is disabled by default
             self.myBuilder = None
             self.myStudyId = 0
             self.father    = None
@@ -444,6 +564,83 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             pass
 
         ## @addtogroup l1_geompyDC_auxiliary
+        ## Process object publication in the study, as follows:
+        #  - if @a theName is specified (not None), the object is published in the study
+        #    with this name, not taking into account "auto-publishing" option;
+        #  - if @a theName is NOT specified, the object is published in the study
+        #    (using default name, which can be customized using @a theDefaultName parameter)
+        #    only if auto-publishing is switched on.
+        #
+        #  @param theObj  object, a subject for publishing
+        #  @param theName object name for study
+        #  @param theDefaultName default name for the auto-publishing
+        #
+        #  @sa addToStudyAuto()
+        def _autoPublish(self, theObj, theName, theDefaultName="noname"):
+            # ---
+            def _item_name(_names, _defname, _idx=-1):
+                if not _names: _names = _defname
+                if type(_names) in [types.ListType, types.TupleType]:
+                    if _idx >= 0:
+                        if _idx >= len(_names) or not _names[_idx]:
+                            if type(_defname) not in [types.ListType, types.TupleType]:
+                                _name = "%s_%d"%(_defname, _idx+1)
+                            elif len(_defname) > 0 and _idx >= 0 and _idx < len(_defname):
+                                _name = _defname[_idx]
+                            else:
+                                _name = "%noname_%d"%(dn, _idx+1)
+                            pass
+                        else:
+                            _name = _names[_idx]
+                        pass
+                    else:
+                        # must be wrong  usage
+                        _name = _names[0]
+                    pass
+                else:
+                    if _idx >= 0:
+                        _name = "%s_%d"%(_names, _idx+1)
+                    else:
+                        _name = _names
+                    pass
+                return _name
+            # ---
+            if not theObj:
+                return # null object
+            if not theName and not self.myMaxNbSubShapesAllowed:
+                return # nothing to do: auto-publishing is disabled
+            if not theName and not theDefaultName:
+                return # neither theName nor theDefaultName is given
+            import types
+            if type(theObj) in [types.ListType, types.TupleType]:
+                # list of objects is being published
+                idx = 0
+                for obj in theObj:
+                    if not obj: continue # bad object
+                    ###if obj.GetStudyEntry(): continue # already published
+                    name = _item_name(theName, theDefaultName, idx)
+                    if obj.IsMainShape() or not obj.GetMainShape().GetStudyEntry():
+                        self.addToStudy(obj, name) # "%s_%d"%(aName, idx)
+                    else:
+                        self.addToStudyInFather(obj.GetMainShape(), obj, name) # "%s_%d"%(aName, idx)
+                        pass
+                    idx = idx+1
+                    if not theName and idx == self.myMaxNbSubShapesAllowed: break
+                    pass
+                pass
+            else:
+                # single object is published
+                ###if theObj.GetStudyEntry(): return # already published
+                name = _item_name(theName, theDefaultName)
+                if theObj.IsMainShape():
+                    self.addToStudy(theObj, name)
+                else:
+                    self.addToStudyInFather(theObj.GetMainShape(), theObj, name)
+                    pass
+                pass
+            pass
+
+        ## @addtogroup l1_geompy_auxiliary
         ## @{
         def init_geom(self,theStudy):
             self.myStudy = theStudy
@@ -475,6 +672,41 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             self.AdvOp    = self.GetIAdvancedOperations (self.myStudyId)
             pass
 
+        ## Enable / disable results auto-publishing
+        # 
+        #  The automatic publishing is managed in the following way:
+        #  - if @a maxNbSubShapes = 0, automatic publishing is disabled.
+        #  - if @a maxNbSubShapes = -1 (default), automatic publishing is enabled and
+        #  maximum number of sub-shapes allowed for publishing is unlimited; any negative
+        #  value passed as parameter has the same effect.
+        #  - if @a maxNbSubShapes is any positive value, automatic publishing is enabled and
+        #  maximum number of sub-shapes allowed for publishing is set to specified value.
+        #
+        #  @param maxNbSubShapes maximum number of sub-shapes allowed for publishing.
+        #  @ingroup l1_publish_data
+        def addToStudyAuto(self, maxNbSubShapes=-1):
+            """
+            Enable / disable results auto-publishing
+
+            The automatic publishing is managed in the following way:
+            - if @a maxNbSubShapes = 0, automatic publishing is disabled;
+            - if @a maxNbSubShapes = -1 (default), automatic publishing is enabled and
+            maximum number of sub-shapes allowed for publishing is unlimited; any negative
+            value passed as parameter has the same effect.
+            - if @a maxNbSubShapes is any positive value, automatic publishing is enabled and
+            maximum number of sub-shapes allowed for publishing is set to this value.
+
+            Parameters:
+                maxNbSubShapes maximum number of sub-shapes allowed for publishing.
+
+            Example of usage:
+                geompy.addToStudyAuto()   # enable auto-publishing
+                geompy.MakeBoxDXDYDZ(100) # box is created and published with default name
+                geompy.addToStudyAuto(0)  # disable auto-publishing
+            """
+            self.myMaxNbSubShapesAllowed = max(-1, maxNbSubShapes)
+            pass
+
         ## Dump component to the Python script
         #  This method overrides IDL function to allow default values for the parameters.
         def DumpPython(self, theStudy, theIsPublished=True, theIsMultiFile=True):
@@ -512,6 +744,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #                                                  these arguments description
         #  \return study entry of the published shape in form of string
         #
+        #  @ingroup l1_publish_data
         #  @ref swig_all_addtostudy "Example"
         def addToStudy(self, aShape, aName, doRestoreSubShapes=False,
                        theArgs=[], theFindMethod=GEOM.FSM_GetInPlace, theInheritFirstArg=False):
@@ -551,6 +784,8 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  \param aName  the name for the shape
         #
         #  \return study entry of the published shape in form of string
+        #
+        #  @ingroup l1_publish_data
         #  @ref swig_all_addtostudyInFather "Example"
         def addToStudyInFather(self, aFather, aShape, aName):
             """
@@ -710,10 +945,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theX The X coordinate of the point.
         #  @param theY The Y coordinate of the point.
         #  @param theZ The Z coordinate of the point.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created point.
         #
         #  @ref tui_creation_point "Example"
-        def MakeVertex(self, theX, theY, theZ):
+        def MakeVertex(self, theX, theY, theZ, theName=None):
             """
             Create point by three coordinates.
 
@@ -721,6 +960,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theX The X coordinate of the point.
                 theY The Y coordinate of the point.
                 theZ The Z coordinate of the point.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
                 
             Returns: 
                 New GEOM.GEOM_Object, containing the created point.
@@ -730,6 +972,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.BasicOp.MakePointXYZ(theX, theY, theZ)
             RaiseIfFailed("MakePointXYZ", self.BasicOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "vertex")
             return anObj
 
         ## Create a point, distant from the referenced point
@@ -738,10 +981,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theX Displacement from the referenced point along OX axis.
         #  @param theY Displacement from the referenced point along OY axis.
         #  @param theZ Displacement from the referenced point along OZ axis.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created point.
         #
         #  @ref tui_creation_point "Example"
-        def MakeVertexWithRef(self,theReference, theX, theY, theZ):
+        def MakeVertexWithRef(self, theReference, theX, theY, theZ, theName=None):
             """
             Create a point, distant from the referenced point
             on the given distances along the coordinate axes.
@@ -751,6 +998,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theX Displacement from the referenced point along OX axis.
                 theY Displacement from the referenced point along OY axis.
                 theZ Displacement from the referenced point along OZ axis.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created point.
@@ -760,21 +1010,29 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.BasicOp.MakePointWithReference(theReference, theX, theY, theZ)
             RaiseIfFailed("MakePointWithReference", self.BasicOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "vertex")
             return anObj
 
         ## Create a point, corresponding to the given parameter on the given curve.
         #  @param theRefCurve The referenced curve.
         #  @param theParameter Value of parameter on the referenced curve.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created point.
         #
         #  @ref tui_creation_point "Example"
-        def MakeVertexOnCurve(self,theRefCurve, theParameter):
+        def MakeVertexOnCurve(self, theRefCurve, theParameter, theName=None):
             """
             Create a point, corresponding to the given parameter on the given curve.
 
             Parameters:
                 theRefCurve The referenced curve.
                 theParameter Value of parameter on the referenced curve.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created point.
@@ -787,6 +1045,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.BasicOp.MakePointOnCurve(theRefCurve, theParameter)
             RaiseIfFailed("MakePointOnCurve", self.BasicOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "vertex")
             return anObj
 
         ## Create a point by projection give coordinates on the given curve
@@ -794,10 +1053,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theX X-coordinate in 3D space
         #  @param theY Y-coordinate in 3D space
         #  @param theZ Z-coordinate in 3D space
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created point.
         #
         #  @ref tui_creation_point "Example"
-        def MakeVertexOnCurveByCoord(self,theRefCurve, theX, theY, theZ):
+        def MakeVertexOnCurveByCoord(self, theRefCurve, theX, theY, theZ, theName=None):
             """
             Create a point by projection give coordinates on the given curve
             
@@ -806,6 +1069,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theX X-coordinate in 3D space
                 theY Y-coordinate in 3D space
                 theZ Z-coordinate in 3D space
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created point.
@@ -818,6 +1084,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.BasicOp.MakePointOnCurveByCoord(theRefCurve, theX, theY, theZ)
             RaiseIfFailed("MakeVertexOnCurveByCoord", self.BasicOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "vertex")
             return anObj
 
         ## Create a point, corresponding to the given length on the given curve.
@@ -825,10 +1092,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theLength Length on the referenced curve. It can be negative.
         #  @param theStartPoint Point allowing to choose the direction for the calculation
         #                       of the length. If None, start from the first point of theRefCurve.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created point.
         #
         #  @ref tui_creation_point "Example"
-        def MakeVertexOnCurveByLength(self, theRefCurve, theLength, theStartPoint = None):
+        def MakeVertexOnCurveByLength(self, theRefCurve, theLength, theStartPoint = None, theName=None):
             """
             Create a point, corresponding to the given length on the given curve.
 
@@ -837,6 +1108,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theLength Length on the referenced curve. It can be negative.
                 theStartPoint Point allowing to choose the direction for the calculation
                               of the length. If None, start from the first point of theRefCurve.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created point.
@@ -846,6 +1120,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.BasicOp.MakePointOnCurveByLength(theRefCurve, theLength, theStartPoint)
             RaiseIfFailed("MakePointOnCurveByLength", self.BasicOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "vertex")
             return anObj
 
         ## Create a point, corresponding to the given parameters on the
@@ -853,10 +1128,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theRefSurf The referenced surface.
         #  @param theUParameter Value of U-parameter on the referenced surface.
         #  @param theVParameter Value of V-parameter on the referenced surface.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created point.
         #
         #  @ref swig_MakeVertexOnSurface "Example"
-        def MakeVertexOnSurface(self, theRefSurf, theUParameter, theVParameter):
+        def MakeVertexOnSurface(self, theRefSurf, theUParameter, theVParameter, theName=None):
             """
             Create a point, corresponding to the given parameters on the
             given surface.
@@ -865,6 +1144,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theRefSurf The referenced surface.
                 theUParameter Value of U-parameter on the referenced surface.
                 theVParameter Value of V-parameter on the referenced surface.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created point.
@@ -877,6 +1159,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.BasicOp.MakePointOnSurface(theRefSurf, theUParameter, theVParameter)
             RaiseIfFailed("MakePointOnSurface", self.BasicOp)
             anObj.SetParameters(Parameters);
+            self._autoPublish(anObj, theName, "vertex")
             return anObj
 
         ## Create a point by projection give coordinates on the given surface
@@ -884,10 +1167,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theX X-coordinate in 3D space
         #  @param theY Y-coordinate in 3D space
         #  @param theZ Z-coordinate in 3D space
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created point.
         #
         #  @ref swig_MakeVertexOnSurfaceByCoord "Example"
-        def MakeVertexOnSurfaceByCoord(self, theRefSurf, theX, theY, theZ):
+        def MakeVertexOnSurfaceByCoord(self, theRefSurf, theX, theY, theZ, theName=None):
             """
             Create a point by projection give coordinates on the given surface
 
@@ -896,6 +1183,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theX X-coordinate in 3D space
                 theY Y-coordinate in 3D space
                 theZ Z-coordinate in 3D space
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created point.
@@ -908,6 +1198,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.BasicOp.MakePointOnSurfaceByCoord(theRefSurf, theX, theY, theZ)
             RaiseIfFailed("MakeVertexOnSurfaceByCoord", self.BasicOp)
             anObj.SetParameters(Parameters);
+            self._autoPublish(anObj, theName, "vertex")
             return anObj
 
         ## Create a point, which lays on the given face.
@@ -916,10 +1207,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  Such point can be used to uniquely identify the face inside any
         #  shape in case, when the shape does not contain overlapped faces.
         #  @param theFace The referenced face.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created point.
         #
         #  @ref swig_MakeVertexInsideFace "Example"
-        def MakeVertexInsideFace (self, theFace):
+        def MakeVertexInsideFace (self, theFace, theName=None):
             """
             Create a point, which lays on the given face.
             The point will lay in arbitrary place of the face.
@@ -929,6 +1224,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
 
             Parameters:
                 theFace The referenced face.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created point.
@@ -939,19 +1237,27 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.BasicOp.MakePointOnFace(theFace)
             RaiseIfFailed("MakeVertexInsideFace", self.BasicOp)
+            self._autoPublish(anObj, theName, "vertex")
             return anObj
 
         ## Create a point on intersection of two lines.
         #  @param theRefLine1, theRefLine2 The referenced lines.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created point.
         #
         #  @ref swig_MakeVertexOnLinesIntersection "Example"
-        def MakeVertexOnLinesIntersection(self, theRefLine1, theRefLine2):
+        def MakeVertexOnLinesIntersection(self, theRefLine1, theRefLine2, theName=None):
             """
             Create a point on intersection of two lines.
 
             Parameters:
                 theRefLine1, theRefLine2 The referenced lines.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created point.
@@ -959,21 +1265,29 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.BasicOp.MakePointOnLinesIntersection(theRefLine1, theRefLine2)
             RaiseIfFailed("MakePointOnLinesIntersection", self.BasicOp)
+            self._autoPublish(anObj, theName, "vertex")
             return anObj
 
         ## Create a tangent, corresponding to the given parameter on the given curve.
         #  @param theRefCurve The referenced curve.
         #  @param theParameter Value of parameter on the referenced curve.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created tangent.
         #
         #  @ref swig_MakeTangentOnCurve "Example"
-        def MakeTangentOnCurve(self, theRefCurve, theParameter):
+        def MakeTangentOnCurve(self, theRefCurve, theParameter, theName=None):
             """
             Create a tangent, corresponding to the given parameter on the given curve.
 
             Parameters:
                 theRefCurve The referenced curve.
                 theParameter Value of parameter on the referenced curve.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created tangent.
@@ -983,6 +1297,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             """
             anObj = self.BasicOp.MakeTangentOnCurve(theRefCurve, theParameter)
             RaiseIfFailed("MakeTangentOnCurve", self.BasicOp)
+            self._autoPublish(anObj, theName, "tangent")
             return anObj
 
         ## Create a tangent plane, corresponding to the given parameter on the given face.
@@ -990,10 +1305,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theParameterV vertical value of the center point (0.0 - 1.0).
         #  @param theParameterU horisontal value of the center point (0.0 - 1.0).
         #  @param theTrimSize the size of plane.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created tangent.
         #
         #  @ref swig_MakeTangentPlaneOnFace "Example"
-        def MakeTangentPlaneOnFace(self, theFace, theParameterU, theParameterV, theTrimSize):
+        def MakeTangentPlaneOnFace(self, theFace, theParameterU, theParameterV, theTrimSize, theName=None):
             """
             Create a tangent plane, corresponding to the given parameter on the given face.
 
@@ -1002,6 +1321,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theParameterV vertical value of the center point (0.0 - 1.0).
                 theParameterU horisontal value of the center point (0.0 - 1.0).
                 theTrimSize the size of plane.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
            Returns: 
                 New GEOM.GEOM_Object, containing the created tangent.
@@ -1011,16 +1333,21 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             """
             anObj = self.BasicOp.MakeTangentPlaneOnFace(theFace, theParameterU, theParameterV, theTrimSize)
             RaiseIfFailed("MakeTangentPlaneOnFace", self.BasicOp)
+            self._autoPublish(anObj, theName, "tangent")
             return anObj
 
         ## Create a vector with the given components.
         #  @param theDX X component of the vector.
         #  @param theDY Y component of the vector.
         #  @param theDZ Z component of the vector.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created vector.
         #
         #  @ref tui_creation_vector "Example"
-        def MakeVectorDXDYDZ(self,theDX, theDY, theDZ):
+        def MakeVectorDXDYDZ(self, theDX, theDY, theDZ, theName=None):
             """
             Create a vector with the given components.
 
@@ -1028,6 +1355,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theDX X component of the vector.
                 theDY Y component of the vector.
                 theDZ Z component of the vector.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:     
                 New GEOM.GEOM_Object, containing the created vector.
@@ -1037,21 +1367,29 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.BasicOp.MakeVectorDXDYDZ(theDX, theDY, theDZ)
             RaiseIfFailed("MakeVectorDXDYDZ", self.BasicOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "vector")
             return anObj
 
         ## Create a vector between two points.
         #  @param thePnt1 Start point for the vector.
         #  @param thePnt2 End point for the vector.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created vector.
         #
         #  @ref tui_creation_vector "Example"
-        def MakeVector(self,thePnt1, thePnt2):
+        def MakeVector(self, thePnt1, thePnt2, theName=None):
             """
             Create a vector between two points.
 
             Parameters:
                 thePnt1 Start point for the vector.
                 thePnt2 End point for the vector.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:        
                 New GEOM.GEOM_Object, containing the created vector.
@@ -1059,16 +1397,21 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.BasicOp.MakeVectorTwoPnt(thePnt1, thePnt2)
             RaiseIfFailed("MakeVectorTwoPnt", self.BasicOp)
+            self._autoPublish(anObj, theName, "vector")
             return anObj
 
         ## Create a line, passing through the given point
         #  and parrallel to the given direction
         #  @param thePnt Point. The resulting line will pass through it.
         #  @param theDir Direction. The resulting line will be parallel to it.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created line.
         #
         #  @ref tui_creation_line "Example"
-        def MakeLine(self,thePnt, theDir):
+        def MakeLine(self, thePnt, theDir, theName=None):
             """
             Create a line, passing through the given point
             and parrallel to the given direction
@@ -1076,6 +1419,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             Parameters:
                 thePnt Point. The resulting line will pass through it.
                 theDir Direction. The resulting line will be parallel to it.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created line.
@@ -1083,21 +1429,29 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.BasicOp.MakeLine(thePnt, theDir)
             RaiseIfFailed("MakeLine", self.BasicOp)
+            self._autoPublish(anObj, theName, "line")
             return anObj
 
         ## Create a line, passing through the given points
         #  @param thePnt1 First of two points, defining the line.
         #  @param thePnt2 Second of two points, defining the line.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created line.
         #
         #  @ref tui_creation_line "Example"
-        def MakeLineTwoPnt(self,thePnt1, thePnt2):
+        def MakeLineTwoPnt(self, thePnt1, thePnt2, theName=None):
             """
             Create a line, passing through the given points
 
             Parameters:
                 thePnt1 First of two points, defining the line.
                 thePnt2 Second of two points, defining the line.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created line.
@@ -1105,21 +1459,29 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.BasicOp.MakeLineTwoPnt(thePnt1, thePnt2)
             RaiseIfFailed("MakeLineTwoPnt", self.BasicOp)
+            self._autoPublish(anObj, theName, "line")
             return anObj
 
         ## Create a line on two faces intersection.
         #  @param theFace1 First of two faces, defining the line.
         #  @param theFace2 Second of two faces, defining the line.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created line.
         #
         #  @ref swig_MakeLineTwoFaces "Example"
-        def MakeLineTwoFaces(self, theFace1, theFace2):
+        def MakeLineTwoFaces(self, theFace1, theFace2, theName=None):
             """
             Create a line on two faces intersection.
 
             Parameters:
                 theFace1 First of two faces, defining the line.
                 theFace2 Second of two faces, defining the line.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created line.
@@ -1127,6 +1489,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.BasicOp.MakeLineTwoFaces(theFace1, theFace2)
             RaiseIfFailed("MakeLineTwoFaces", self.BasicOp)
+            self._autoPublish(anObj, theName, "line")
             return anObj
 
         ## Create a plane, passing through the given point
@@ -1134,10 +1497,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param thePnt Point, the plane has to pass through.
         #  @param theVec Vector, defining the plane normal direction.
         #  @param theTrimSize Half size of a side of quadrangle face, representing the plane.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created plane.
         #
         #  @ref tui_creation_plane "Example"
-        def MakePlane(self,thePnt, theVec, theTrimSize):
+        def MakePlane(self, thePnt, theVec, theTrimSize, theName=None):
             """
             Create a plane, passing through the given point
             and normal to the given vector.
@@ -1146,6 +1513,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 thePnt Point, the plane has to pass through.
                 theVec Vector, defining the plane normal direction.
                 theTrimSize Half size of a side of quadrangle face, representing the plane.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:    
                 New GEOM.GEOM_Object, containing the created plane.
@@ -1155,6 +1525,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.BasicOp.MakePlanePntVec(thePnt, theVec, theTrimSize)
             RaiseIfFailed("MakePlanePntVec", self.BasicOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "plane")
             return anObj
 
         ## Create a plane, passing through the three given points
@@ -1162,10 +1533,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param thePnt2 Second of three points, defining the plane.
         #  @param thePnt3 Fird of three points, defining the plane.
         #  @param theTrimSize Half size of a side of quadrangle face, representing the plane.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created plane.
         #
         #  @ref tui_creation_plane "Example"
-        def MakePlaneThreePnt(self,thePnt1, thePnt2, thePnt3, theTrimSize):
+        def MakePlaneThreePnt(self, thePnt1, thePnt2, thePnt3, theTrimSize, theName=None):
             """
             Create a plane, passing through the three given points
 
@@ -1174,6 +1549,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 thePnt2 Second of three points, defining the plane.
                 thePnt3 Fird of three points, defining the plane.
                 theTrimSize Half size of a side of quadrangle face, representing the plane.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created plane.
@@ -1183,21 +1561,29 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.BasicOp.MakePlaneThreePnt(thePnt1, thePnt2, thePnt3, theTrimSize)
             RaiseIfFailed("MakePlaneThreePnt", self.BasicOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "plane")
             return anObj
 
         ## Create a plane, similar to the existing one, but with another size of representing face.
         #  @param theFace Referenced plane or LCS(Marker).
         #  @param theTrimSize New half size of a side of quadrangle face, representing the plane.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created plane.
         #
         #  @ref tui_creation_plane "Example"
-        def MakePlaneFace(self,theFace, theTrimSize):
+        def MakePlaneFace(self, theFace, theTrimSize, theName=None):
             """
             Create a plane, similar to the existing one, but with another size of representing face.
 
             Parameters:
                 theFace Referenced plane or LCS(Marker).
                 theTrimSize New half size of a side of quadrangle face, representing the plane.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created plane.
@@ -1207,6 +1593,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.BasicOp.MakePlaneFace(theFace, theTrimSize)
             RaiseIfFailed("MakePlaneFace", self.BasicOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "plane")
             return anObj
 
         ## Create a plane, passing through the 2 vectors
@@ -1214,10 +1601,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theVec1 Vector, defining center point and plane direction.
         #  @param theVec2 Vector, defining the plane normal direction.
         #  @param theTrimSize Half size of a side of quadrangle face, representing the plane.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created plane.
         #
         #  @ref tui_creation_plane "Example"
-        def MakePlane2Vec(self,theVec1, theVec2, theTrimSize):
+        def MakePlane2Vec(self, theVec1, theVec2, theTrimSize, theName=None):
             """
             Create a plane, passing through the 2 vectors
             with center in a start point of the first vector.
@@ -1226,6 +1617,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theVec1 Vector, defining center point and plane direction.
                 theVec2 Vector, defining the plane normal direction.
                 theTrimSize Half size of a side of quadrangle face, representing the plane.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 New GEOM.GEOM_Object, containing the created plane.
@@ -1235,16 +1629,21 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.BasicOp.MakePlane2Vec(theVec1, theVec2, theTrimSize)
             RaiseIfFailed("MakePlane2Vec", self.BasicOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "plane")
             return anObj
 
         ## Create a plane, based on a Local coordinate system.
         #  @param theLCS  coordinate system, defining plane.
         #  @param theTrimSize Half size of a side of quadrangle face, representing the plane.
         #  @param theOrientation OXY, OYZ or OZX orientation - (1, 2 or 3)
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created plane.
         #
         #  @ref tui_creation_plane "Example"
-        def MakePlaneLCS(self,theLCS, theTrimSize, theOrientation):
+        def MakePlaneLCS(self, theLCS, theTrimSize, theOrientation, theName=None):
             """
             Create a plane, based on a Local coordinate system.
 
@@ -1252,6 +1651,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theLCS  coordinate system, defining plane.
                 theTrimSize Half size of a side of quadrangle face, representing the plane.
                 theOrientation OXY, OYZ or OZX orientation - (1, 2 or 3)
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 New GEOM.GEOM_Object, containing the created plane.
@@ -1261,16 +1663,21 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.BasicOp.MakePlaneLCS(theLCS, theTrimSize, theOrientation)
             RaiseIfFailed("MakePlaneLCS", self.BasicOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "plane")
             return anObj
 
         ## Create a local coordinate system.
         #  @param OX,OY,OZ Three coordinates of coordinate system origin.
         #  @param XDX,XDY,XDZ Three components of OX direction
         #  @param YDX,YDY,YDZ Three components of OY direction
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created coordinate system.
         #
         #  @ref swig_MakeMarker "Example"
-        def MakeMarker(self, OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ):
+        def MakeMarker(self, OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ, theName=None):
             """
             Create a local coordinate system.
 
@@ -1278,6 +1685,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 OX,OY,OZ Three coordinates of coordinate system origin.
                 XDX,XDY,XDZ Three components of OX direction
                 YDX,YDY,YDZ Three components of OY direction
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 New GEOM.GEOM_Object, containing the created coordinate system.
@@ -1287,35 +1697,48 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.BasicOp.MakeMarker(OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ)
             RaiseIfFailed("MakeMarker", self.BasicOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "lcs")
             return anObj
 
         ## Create a local coordinate system from shape.
         #  @param theShape The initial shape to detect the coordinate system.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created coordinate system.
         #
         #  @ref tui_creation_lcs "Example"
-        def MakeMarkerFromShape(self, theShape):
+        def MakeMarkerFromShape(self, theShape, theName=None):
             """
             Create a local coordinate system from shape.
 
             Parameters:
                 theShape The initial shape to detect the coordinate system.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
                 
             Returns: 
                 New GEOM.GEOM_Object, containing the created coordinate system.
             """
             anObj = self.BasicOp.MakeMarkerFromShape(theShape)
             RaiseIfFailed("MakeMarkerFromShape", self.BasicOp)
+            self._autoPublish(anObj, theName, "lcs")
             return anObj
 
         ## Create a local coordinate system from point and two vectors.
         #  @param theOrigin Point of coordinate system origin.
         #  @param theXVec Vector of X direction
         #  @param theYVec Vector of Y direction
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created coordinate system.
         #
         #  @ref tui_creation_lcs "Example"
-        def MakeMarkerPntTwoVec(self, theOrigin, theXVec, theYVec):
+        def MakeMarkerPntTwoVec(self, theOrigin, theXVec, theYVec, theName=None):
             """
             Create a local coordinate system from point and two vectors.
 
@@ -1323,6 +1746,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theOrigin Point of coordinate system origin.
                 theXVec Vector of X direction
                 theYVec Vector of Y direction
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 New GEOM.GEOM_Object, containing the created coordinate system.
@@ -1330,6 +1756,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             """
             anObj = self.BasicOp.MakeMarkerPntTwoVec(theOrigin, theXVec, theYVec)
             RaiseIfFailed("MakeMarkerPntTwoVec", self.BasicOp)
+            self._autoPublish(anObj, theName, "lcs")
             return anObj
 
         # end of l3_basic_go
@@ -1342,10 +1769,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param thePnt1 Start point of the arc.
         #  @param thePnt2 Middle point of the arc.
         #  @param thePnt3 End point of the arc.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created arc.
         #
         #  @ref swig_MakeArc "Example"
-        def MakeArc(self,thePnt1, thePnt2, thePnt3):
+        def MakeArc(self, thePnt1, thePnt2, thePnt3, theName=None):
             """
             Create an arc of circle, passing through three given points.
 
@@ -1353,6 +1784,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 thePnt1 Start point of the arc.
                 thePnt2 Middle point of the arc.
                 thePnt3 End point of the arc.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 New GEOM.GEOM_Object, containing the created arc.
@@ -1360,6 +1794,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.CurvesOp.MakeArc(thePnt1, thePnt2, thePnt3)
             RaiseIfFailed("MakeArc", self.CurvesOp)
+            self._autoPublish(anObj, theName, "arc")
             return anObj
 
         ##  Create an arc of circle from a center and 2 points.
@@ -1367,10 +1802,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param thePnt2 Start point of the arc. (Gives also the radius of the arc)
         #  @param thePnt3 End point of the arc (Gives also a direction)
         #  @param theSense Orientation of the arc
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created arc.
         #
         #  @ref swig_MakeArc "Example"
-        def MakeArcCenter(self, thePnt1, thePnt2, thePnt3, theSense=False):
+        def MakeArcCenter(self, thePnt1, thePnt2, thePnt3, theSense=False, theName=None):
             """
             Create an arc of circle from a center and 2 points.
 
@@ -1379,6 +1818,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 thePnt2 Start point of the arc. (Gives also the radius of the arc)
                 thePnt3 End point of the arc (Gives also a direction)
                 theSense Orientation of the arc
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created arc.
@@ -1386,16 +1828,21 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.CurvesOp.MakeArcCenter(thePnt1, thePnt2, thePnt3, theSense)
             RaiseIfFailed("MakeArcCenter", self.CurvesOp)
+            self._autoPublish(anObj, theName, "arc")
             return anObj
 
         ##  Create an arc of ellipse, of center and two points.
         #  @param theCenter Center of the arc.
         #  @param thePnt1 defines major radius of the arc by distance from Pnt1 to Pnt2.
         #  @param thePnt2 defines plane of ellipse and minor radius as distance from Pnt3 to line from Pnt1 to Pnt2.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created arc.
         #
         #  @ref swig_MakeArc "Example"
-        def MakeArcOfEllipse(self,theCenter, thePnt1, thePnt2):
+        def MakeArcOfEllipse(self, theCenter, thePnt1, thePnt2, theName=None):
             """
             Create an arc of ellipse, of center and two points.
 
@@ -1403,6 +1850,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theCenter Center of the arc.
                 thePnt1 defines major radius of the arc by distance from Pnt1 to Pnt2.
                 thePnt2 defines plane of ellipse and minor radius as distance from Pnt3 to line from Pnt1 to Pnt2.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created arc.
@@ -1410,16 +1860,21 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.CurvesOp.MakeArcOfEllipse(theCenter, thePnt1, thePnt2)
             RaiseIfFailed("MakeArcOfEllipse", self.CurvesOp)
+            self._autoPublish(anObj, theName, "arc")
             return anObj
 
         ## Create a circle with given center, normal vector and radius.
         #  @param thePnt Circle center.
         #  @param theVec Vector, normal to the plane of the circle.
         #  @param theR Circle radius.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created circle.
         #
         #  @ref tui_creation_circle "Example"
-        def MakeCircle(self, thePnt, theVec, theR):
+        def MakeCircle(self, thePnt, theVec, theR, theName=None):
             """
             Create a circle with given center, normal vector and radius.
 
@@ -1427,6 +1882,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 thePnt Circle center.
                 theVec Vector, normal to the plane of the circle.
                 theR Circle radius.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created circle.
@@ -1436,14 +1894,19 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.CurvesOp.MakeCirclePntVecR(thePnt, theVec, theR)
             RaiseIfFailed("MakeCirclePntVecR", self.CurvesOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "circle")
             return anObj
 
         ## Create a circle with given radius.
         #  Center of the circle will be in the origin of global
         #  coordinate system and normal vector will be codirected with Z axis
         #  @param theR Circle radius.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created circle.
-        def MakeCircleR(self, theR):
+        def MakeCircleR(self, theR, theName=None):
             """
             Create a circle with given radius.
             Center of the circle will be in the origin of global
@@ -1451,25 +1914,36 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
 
             Parameters:
                 theR Circle radius.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created circle.
             """
             anObj = self.CurvesOp.MakeCirclePntVecR(None, None, theR)
             RaiseIfFailed("MakeCirclePntVecR", self.CurvesOp)
+            self._autoPublish(anObj, theName, "circle")
             return anObj
 
         ## Create a circle, passing through three given points
         #  @param thePnt1,thePnt2,thePnt3 Points, defining the circle.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created circle.
         #
         #  @ref tui_creation_circle "Example"
-        def MakeCircleThreePnt(self,thePnt1, thePnt2, thePnt3):
+        def MakeCircleThreePnt(self, thePnt1, thePnt2, thePnt3, theName=None):
             """
             Create a circle, passing through three given points
 
             Parameters:
                 thePnt1,thePnt2,thePnt3 Points, defining the circle.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created circle.
@@ -1477,16 +1951,21 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.CurvesOp.MakeCircleThreePnt(thePnt1, thePnt2, thePnt3)
             RaiseIfFailed("MakeCircleThreePnt", self.CurvesOp)
+            self._autoPublish(anObj, theName, "circle")
             return anObj
 
         ## Create a circle, with given point1 as center,
         #  passing through the point2 as radius and laying in the plane,
         #  defined by all three given points.
         #  @param thePnt1,thePnt2,thePnt3 Points, defining the circle.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created circle.
         #
         #  @ref swig_MakeCircle "Example"
-        def MakeCircleCenter2Pnt(self,thePnt1, thePnt2, thePnt3):
+        def MakeCircleCenter2Pnt(self, thePnt1, thePnt2, thePnt3, theName=None):
             """
             Create a circle, with given point1 as center,
             passing through the point2 as radius and laying in the plane,
@@ -1494,6 +1973,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
 
             Parameters:
                 thePnt1,thePnt2,thePnt3 Points, defining the circle.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created circle.
@@ -1501,6 +1983,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_example6.py
             anObj = self.CurvesOp.MakeCircleCenter2Pnt(thePnt1, thePnt2, thePnt3)
             RaiseIfFailed("MakeCircleCenter2Pnt", self.CurvesOp)
+            self._autoPublish(anObj, theName, "circle")
             return anObj
 
         ## Create an ellipse with given center, normal vector and radiuses.
@@ -1509,10 +1992,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theRMajor Major ellipse radius.
         #  @param theRMinor Minor ellipse radius.
         #  @param theVecMaj Vector, direction of the ellipse's main axis.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created ellipse.
         #
         #  @ref tui_creation_ellipse "Example"
-        def MakeEllipse(self, thePnt, theVec, theRMajor, theRMinor, theVecMaj=None):
+        def MakeEllipse(self, thePnt, theVec, theRMajor, theRMinor, theVecMaj=None, theName=None):
             """
             Create an ellipse with given center, normal vector and radiuses.
 
@@ -1522,6 +2009,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theRMajor Major ellipse radius.
                 theRMinor Minor ellipse radius.
                 theVecMaj Vector, direction of the ellipse's main axis.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:    
                 New GEOM.GEOM_Object, containing the created ellipse.
@@ -1535,6 +2025,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 pass
             RaiseIfFailed("MakeEllipse", self.CurvesOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "ellipse")
             return anObj
 
         ## Create an ellipse with given radiuses.
@@ -1542,8 +2033,12 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  coordinate system and normal vector will be codirected with Z axis
         #  @param theRMajor Major ellipse radius.
         #  @param theRMinor Minor ellipse radius.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created ellipse.
-        def MakeEllipseRR(self, theRMajor, theRMinor):
+        def MakeEllipseRR(self, theRMajor, theRMinor, theName=None):
             """
             Create an ellipse with given radiuses.
             Center of the ellipse will be in the origin of global
@@ -1552,27 +2047,38 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             Parameters:
                 theRMajor Major ellipse radius.
                 theRMinor Minor ellipse radius.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
-                New GEOM.GEOM_Object, containing the created ellipse.
+            New GEOM.GEOM_Object, containing the created ellipse.
             """
             anObj = self.CurvesOp.MakeEllipse(None, None, theRMajor, theRMinor)
             RaiseIfFailed("MakeEllipse", self.CurvesOp)
+            self._autoPublish(anObj, theName, "ellipse")
             return anObj
 
         ## Create a polyline on the set of points.
         #  @param thePoints Sequence of points for the polyline.
         #  @param theIsClosed If True, build a closed wire.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created polyline.
         #
         #  @ref tui_creation_curve "Example"
-        def MakePolyline(self, thePoints, theIsClosed=False):
+        def MakePolyline(self, thePoints, theIsClosed=False, theName=None):
             """
             Create a polyline on the set of points.
 
             Parameters:
                 thePoints Sequence of points for the polyline.
                 theIsClosed If True, build a closed wire.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created polyline.
@@ -1580,21 +2086,29 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.CurvesOp.MakePolyline(thePoints, theIsClosed)
             RaiseIfFailed("MakePolyline", self.CurvesOp)
+            self._autoPublish(anObj, theName, "polyline")
             return anObj
 
         ## Create bezier curve on the set of points.
         #  @param thePoints Sequence of points for the bezier curve.
         #  @param theIsClosed If True, build a closed curve.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created bezier curve.
         #
         #  @ref tui_creation_curve "Example"
-        def MakeBezier(self, thePoints, theIsClosed=False):
+        def MakeBezier(self, thePoints, theIsClosed=False, theName=None):
             """
             Create bezier curve on the set of points.
 
             Parameters:
                 thePoints Sequence of points for the bezier curve.
                 theIsClosed If True, build a closed curve.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created bezier curve.
@@ -1602,6 +2116,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.CurvesOp.MakeSplineBezier(thePoints, theIsClosed)
             RaiseIfFailed("MakeSplineBezier", self.CurvesOp)
+            self._autoPublish(anObj, theName, "bezier")
             return anObj
 
         ## Create B-Spline curve on the set of points.
@@ -1609,10 +2124,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theIsClosed If True, build a closed curve.
         #  @param theDoReordering If TRUE, the algo does not follow the order of
         #                         \a thePoints but searches for the closest vertex.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created B-Spline curve.
         #
         #  @ref tui_creation_curve "Example"
-        def MakeInterpol(self, thePoints, theIsClosed=False, theDoReordering=False):
+        def MakeInterpol(self, thePoints, theIsClosed=False, theDoReordering=False, theName=None):
             """
             Create B-Spline curve on the set of points.
 
@@ -1621,15 +2140,50 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theIsClosed If True, build a closed curve.
                 theDoReordering If True, the algo does not follow the order of
                                 thePoints but searches for the closest vertex.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:                     
                 New GEOM.GEOM_Object, containing the created B-Spline curve.
             """
             # Example: see GEOM_TestAll.py
             anObj = self.CurvesOp.MakeSplineInterpolation(thePoints, theIsClosed, theDoReordering)
-            RaiseIfFailed("MakeSplineInterpolation", self.CurvesOp)
+            RaiseIfFailed("MakeInterpol", self.CurvesOp)
+            self._autoPublish(anObj, theName, "bspline")
             return anObj
 
+        ## Create B-Spline curve on the set of points.
+        #  @param thePoints Sequence of points for the B-Spline curve.
+        #  @param theFirstVec Vector object, defining the curve direction at its first point.
+        #  @param theLastVec Vector object, defining the curve direction at its last point.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
+        #  @return New GEOM.GEOM_Object, containing the created B-Spline curve.
+        #
+        #  @ref tui_creation_curve "Example"
+        def MakeInterpolWithTangents(self, thePoints, theFirstVec, theLastVec, theName=None):
+            """
+            Create B-Spline curve on the set of points.
+
+            Parameters:
+                thePoints Sequence of points for the B-Spline curve.
+                theFirstVec Vector object, defining the curve direction at its first point.
+                theLastVec Vector object, defining the curve direction at its last point.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
+
+            Returns:                     
+                New GEOM.GEOM_Object, containing the created B-Spline curve.
+            """
+            # Example: see GEOM_TestAll.py
+            anObj = self.CurvesOp.MakeSplineInterpolWithTangents(thePoints, theFirstVec, theLastVec)
+            RaiseIfFailed("MakeInterpolWithTangents", self.CurvesOp)
+            self._autoPublish(anObj, theName, "bspline")
+            return anObj
 
         ## Creates a curve using the parametric definition of the basic points.
         #  @param thexExpr parametric equation of the coordinates X.
@@ -1640,11 +2194,15 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theParamStep the number of steps if theNewMethod = True, else step value of the parameter.
         #  @param theCurveType the type of the curve.
         #  @param theNewMethod flag for switching to the new method if the flag is set to false a deprecated method is used which can lead to a bug.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created curve.
         #
         #  @ref tui_creation_curve "Example"
         def MakeCurveParametric(self, thexExpr, theyExpr, thezExpr,
-                                theParamMin, theParamMax, theParamStep, theCurveType, theNewMethod=False ):
+                                theParamMin, theParamMax, theParamStep, theCurveType, theNewMethod=False, theName=None ):
             """
             Creates a curve using the parametric definition of the basic points.
 
@@ -1658,6 +2216,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theCurveType the type of the curve.
                 theNewMethod flag for switching to the new method if the flag is set to false a deprecated
                              method is used which can lead to a bug.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created curve.
@@ -1669,9 +2230,8 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
               anObj = self.CurvesOp.MakeCurveParametric(thexExpr,theyExpr,thezExpr,theParamMin,theParamMax,theParamStep,theCurveType)   
             RaiseIfFailed("MakeSplineInterpolation", self.CurvesOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "curve")
             return anObj
-            
-
 
         # end of l4_curves
         ## @}
@@ -1727,10 +2287,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #                    coordinates of the working plane.
         #  @param theWorkingPlane Nine double values, defining origin,
         #                         OZ and OX directions of the working plane.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created wire.
         #
         #  @ref tui_sketcher_page "Example"
-        def MakeSketcher(self, theCommand, theWorkingPlane = [0,0,0, 0,0,1, 1,0,0]):
+        def MakeSketcher(self, theCommand, theWorkingPlane = [0,0,0, 0,0,1, 1,0,0], theName=None):
             """
             Create a sketcher (wire or face), following the textual description, passed
             through theCommand argument.
@@ -1774,6 +2338,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                            coordinates of the working plane.
                 theWorkingPlane Nine double values, defining origin,
                                 OZ and OX directions of the working plane.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created wire.
@@ -1783,6 +2350,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.CurvesOp.MakeSketcher(theCommand, theWorkingPlane)
             RaiseIfFailed("MakeSketcher", self.CurvesOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "wire")
             return anObj
 
         ## Create a sketcher (wire or face), following the textual description,
@@ -1791,10 +2359,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theCommand String, defining the sketcher in local
         #                    coordinates of the working plane.
         #  @param theWorkingPlane Planar Face or LCS(Marker) of the working plane.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created wire.
         #
         #  @ref tui_sketcher_page "Example"
-        def MakeSketcherOnPlane(self, theCommand, theWorkingPlane):
+        def MakeSketcherOnPlane(self, theCommand, theWorkingPlane, theName=None):
             """
             Create a sketcher (wire or face), following the textual description,
             passed through theCommand argument.
@@ -1804,6 +2376,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theCommand String, defining the sketcher in local
                            coordinates of the working plane.
                 theWorkingPlane Planar Face or LCS(Marker) of the working plane.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created wire.
@@ -1812,16 +2387,21 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.CurvesOp.MakeSketcherOnPlane(theCommand, theWorkingPlane)
             RaiseIfFailed("MakeSketcherOnPlane", self.CurvesOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "wire")
             return anObj
 
         ## Create a sketcher wire, following the numerical description,
         #  passed through <VAR>theCoordinates</VAR> argument. \n
         #  @param theCoordinates double values, defining points to create a wire,
         #                                                      passing from it.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created wire.
         #
         #  @ref tui_3dsketcher_page "Example"
-        def Make3DSketcher(self, theCoordinates):
+        def Make3DSketcher(self, theCoordinates, theName=None):
             """
             Create a sketcher wire, following the numerical description,
             passed through theCoordinates argument.
@@ -1829,6 +2409,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             Parameters:
                 theCoordinates double values, defining points to create a wire,
                                passing from it.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM_Object, containing the created wire.
@@ -1837,6 +2420,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.CurvesOp.Make3DSketcher(theCoordinates)
             RaiseIfFailed("Make3DSketcher", self.CurvesOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "wire")
             return anObj
 
         ## Obtain a 3D sketcher interface
@@ -1869,16 +2453,23 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #
         #  @param x1,y1,z1 double values, defining first point it.
         #  @param x2,y2,z2 double values, defining first point it.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
         #
         #  @return New GEOM.GEOM_Object, containing the created box.
+        #
         #  @ref tui_creation_box "Example"
-        def MakeBox (self, x1,y1,z1, x2,y2,z2):
+        def MakeBox(self, x1, y1, z1, x2, y2, z2, theName=None):
             """
             Create a box by coordinates of two opposite vertices.
             
             Parameters:
                 x1,y1,z1 double values, defining first point.
                 x2,y2,z2 double values, defining second point.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
                 
             Returns:
                 New GEOM.GEOM_Object, containing the created box.
@@ -1886,7 +2477,8 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             pnt1 = self.MakeVertex(x1,y1,z1)
             pnt2 = self.MakeVertex(x2,y2,z2)
-            return self.MakeBoxTwoPnt(pnt1,pnt2)
+            # note: auto-publishing is done in self.MakeBoxTwoPnt()
+            return self.MakeBoxTwoPnt(pnt1, pnt2, theName)
 
         ## Create a box with specified dimensions along the coordinate axes
         #  and with edges, parallel to the coordinate axes.
@@ -1894,10 +2486,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theDX Length of Box edges, parallel to OX axis.
         #  @param theDY Length of Box edges, parallel to OY axis.
         #  @param theDZ Length of Box edges, parallel to OZ axis.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created box.
         #
         #  @ref tui_creation_box "Example"
-        def MakeBoxDXDYDZ(self,theDX, theDY, theDZ):
+        def MakeBoxDXDYDZ(self, theDX, theDY, theDZ, theName=None):
             """
             Create a box with specified dimensions along the coordinate axes
             and with edges, parallel to the coordinate axes.
@@ -1907,6 +2503,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theDX Length of Box edges, parallel to OX axis.
                 theDY Length of Box edges, parallel to OY axis.
                 theDZ Length of Box edges, parallel to OZ axis.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:   
                 New GEOM.GEOM_Object, containing the created box.
@@ -1916,16 +2515,21 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.PrimOp.MakeBoxDXDYDZ(theDX, theDY, theDZ)
             RaiseIfFailed("MakeBoxDXDYDZ", self.PrimOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "box")
             return anObj
 
         ## Create a box with two specified opposite vertices,
         #  and with edges, parallel to the coordinate axes
         #  @param thePnt1 First of two opposite vertices.
         #  @param thePnt2 Second of two opposite vertices.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created box.
         #
         #  @ref tui_creation_box "Example"
-        def MakeBoxTwoPnt(self,thePnt1, thePnt2):
+        def MakeBoxTwoPnt(self, thePnt1, thePnt2, theName=None):
             """
             Create a box with two specified opposite vertices,
             and with edges, parallel to the coordinate axes
@@ -1933,6 +2537,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             Parameters:
                 thePnt1 First of two opposite vertices.
                 thePnt2 Second of two opposite vertices.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created box.
@@ -1940,16 +2547,21 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.PrimOp.MakeBoxTwoPnt(thePnt1, thePnt2)
             RaiseIfFailed("MakeBoxTwoPnt", self.PrimOp)
+            self._autoPublish(anObj, theName, "box")
             return anObj
 
         ## Create a face with specified dimensions with edges parallel to coordinate axes.
         #  @param theH height of Face.
         #  @param theW width of Face.
         #  @param theOrientation face orientation: 1-OXY, 2-OYZ, 3-OZX
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created face.
         #
         #  @ref tui_creation_face "Example"
-        def MakeFaceHW(self,theH, theW, theOrientation):
+        def MakeFaceHW(self, theH, theW, theOrientation, theName=None):
             """
             Create a face with specified dimensions with edges parallel to coordinate axes.
 
@@ -1957,6 +2569,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theH height of Face.
                 theW width of Face.
                 theOrientation face orientation: 1-OXY, 2-OYZ, 3-OZX
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created face.
@@ -1966,6 +2581,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.PrimOp.MakeFaceHW(theH, theW, theOrientation)
             RaiseIfFailed("MakeFaceHW", self.PrimOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "rectangle")
             return anObj
 
         ## Create a face from another plane and two sizes,
@@ -1974,10 +2590,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  the face object.
         #  @param theH     Height (vertical size).
         #  @param theW     Width (horisontal size).
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created face.
         #
         #  @ref tui_creation_face "Example"
-        def MakeFaceObjHW(self, theObj, theH, theW):
+        def MakeFaceObjHW(self, theObj, theH, theW, theName=None):
             """
             Create a face from another plane and two sizes,
             vertical size and horisontal size.
@@ -1987,6 +2607,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                          the face object.
                 theH     Height (vertical size).
                 theW     Width (horisontal size).
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM_Object, containing the created face.
@@ -1996,16 +2619,21 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.PrimOp.MakeFaceObjHW(theObj, theH, theW)
             RaiseIfFailed("MakeFaceObjHW", self.PrimOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "rectangle")
             return anObj
 
         ## Create a disk with given center, normal vector and radius.
         #  @param thePnt Disk center.
         #  @param theVec Vector, normal to the plane of the disk.
         #  @param theR Disk radius.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created disk.
         #
         #  @ref tui_creation_disk "Example"
-        def MakeDiskPntVecR(self,thePnt, theVec, theR):
+        def MakeDiskPntVecR(self, thePnt, theVec, theR, theName=None):
             """
             Create a disk with given center, normal vector and radius.
 
@@ -2013,6 +2641,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 thePnt Disk center.
                 theVec Vector, normal to the plane of the disk.
                 theR Disk radius.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:    
                 New GEOM.GEOM_Object, containing the created disk.
@@ -2022,19 +2653,27 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.PrimOp.MakeDiskPntVecR(thePnt, theVec, theR)
             RaiseIfFailed("MakeDiskPntVecR", self.PrimOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "disk")
             return anObj
 
         ## Create a disk, passing through three given points
         #  @param thePnt1,thePnt2,thePnt3 Points, defining the disk.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created disk.
         #
         #  @ref tui_creation_disk "Example"
-        def MakeDiskThreePnt(self,thePnt1, thePnt2, thePnt3):
+        def MakeDiskThreePnt(self, thePnt1, thePnt2, thePnt3, theName=None):
             """
             Create a disk, passing through three given points
 
             Parameters:
                 thePnt1,thePnt2,thePnt3 Points, defining the disk.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:    
                 New GEOM.GEOM_Object, containing the created disk.
@@ -2042,21 +2681,29 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.PrimOp.MakeDiskThreePnt(thePnt1, thePnt2, thePnt3)
             RaiseIfFailed("MakeDiskThreePnt", self.PrimOp)
+            self._autoPublish(anObj, theName, "disk")
             return anObj
 
         ## Create a disk with specified dimensions along OX-OY coordinate axes.
         #  @param theR Radius of Face.
         #  @param theOrientation set the orientation belong axis OXY or OYZ or OZX
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created disk.
         #
         #  @ref tui_creation_face "Example"
-        def MakeDiskR(self,theR, theOrientation):
+        def MakeDiskR(self, theR, theOrientation, theName=None):
             """
             Create a disk with specified dimensions along OX-OY coordinate axes.
 
             Parameters:
                 theR Radius of Face.
                 theOrientation set the orientation belong axis OXY or OYZ or OZX
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 New GEOM.GEOM_Object, containing the created disk.
@@ -2069,6 +2716,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.PrimOp.MakeDiskR(theR, theOrientation)
             RaiseIfFailed("MakeDiskR", self.PrimOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "disk")
             return anObj
 
         ## Create a cylinder with given base point, axis, radius and height.
@@ -2076,10 +2724,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theAxis Cylinder axis.
         #  @param theR Cylinder radius.
         #  @param theH Cylinder height.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created cylinder.
         #
         #  @ref tui_creation_cylinder "Example"
-        def MakeCylinder(self,thePnt, theAxis, theR, theH):
+        def MakeCylinder(self, thePnt, theAxis, theR, theH, theName=None):
             """
             Create a cylinder with given base point, axis, radius and height.
 
@@ -2088,6 +2740,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theAxis Cylinder axis.
                 theR Cylinder radius.
                 theH Cylinder height.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 New GEOM.GEOM_Object, containing the created cylinder.
@@ -2097,6 +2752,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.PrimOp.MakeCylinderPntVecRH(thePnt, theAxis, theR, theH)
             RaiseIfFailed("MakeCylinderPntVecRH", self.PrimOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "cylinder")
             return anObj
 
         ## Create a cylinder with given radius and height at
@@ -2104,10 +2760,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  will be collinear to the OZ axis of the coordinate system.
         #  @param theR Cylinder radius.
         #  @param theH Cylinder height.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created cylinder.
         #
         #  @ref tui_creation_cylinder "Example"
-        def MakeCylinderRH(self,theR, theH):
+        def MakeCylinderRH(self, theR, theH, theName=None):
             """
             Create a cylinder with given radius and height at
             the origin of coordinate system. Axis of the cylinder
@@ -2116,6 +2776,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             Parameters:
                 theR Cylinder radius.
                 theH Cylinder height.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:    
                 New GEOM.GEOM_Object, containing the created cylinder.
@@ -2125,21 +2788,29 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.PrimOp.MakeCylinderRH(theR, theH)
             RaiseIfFailed("MakeCylinderRH", self.PrimOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "cylinder")
             return anObj
 
         ## Create a sphere with given center and radius.
         #  @param thePnt Sphere center.
         #  @param theR Sphere radius.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created sphere.
         #
         #  @ref tui_creation_sphere "Example"
-        def MakeSpherePntR(self, thePnt, theR):
+        def MakeSpherePntR(self, thePnt, theR, theName=None):
             """
             Create a sphere with given center and radius.
 
             Parameters:
                 thePnt Sphere center.
                 theR Sphere radius.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:    
                 New GEOM.GEOM_Object, containing the created sphere.            
@@ -2149,41 +2820,57 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.PrimOp.MakeSpherePntR(thePnt, theR)
             RaiseIfFailed("MakeSpherePntR", self.PrimOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "sphere")
             return anObj
 
         ## Create a sphere with given center and radius.
         #  @param x,y,z Coordinates of sphere center.
         #  @param theR Sphere radius.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created sphere.
         #
         #  @ref tui_creation_sphere "Example"
-        def MakeSphere(self, x, y, z, theR):
+        def MakeSphere(self, x, y, z, theR, theName=None):
             """
             Create a sphere with given center and radius.
 
             Parameters: 
                 x,y,z Coordinates of sphere center.
                 theR Sphere radius.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created sphere.
             """
             # Example: see GEOM_TestAll.py
             point = self.MakeVertex(x, y, z)
-            anObj = self.MakeSpherePntR(point, theR)
+            # note: auto-publishing is done in self.MakeSpherePntR()
+            anObj = self.MakeSpherePntR(point, theR, theName)
             return anObj
 
         ## Create a sphere with given radius at the origin of coordinate system.
         #  @param theR Sphere radius.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created sphere.
         #
         #  @ref tui_creation_sphere "Example"
-        def MakeSphereR(self, theR):
+        def MakeSphereR(self, theR, theName=None):
             """
             Create a sphere with given radius at the origin of coordinate system.
 
             Parameters: 
                 theR Sphere radius.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created sphere.            
@@ -2193,6 +2880,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.PrimOp.MakeSphereR(theR)
             RaiseIfFailed("MakeSphereR", self.PrimOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "sphere")
             return anObj
 
         ## Create a cone with given base point, axis, height and radiuses.
@@ -2203,10 +2891,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #    \note If both radiuses are non-zero, the cone will be truncated.
         #    \note If the radiuses are equal, a cylinder will be created instead.
         #  @param theH Cone height.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created cone.
         #
         #  @ref tui_creation_cone "Example"
-        def MakeCone(self,thePnt, theAxis, theR1, theR2, theH):
+        def MakeCone(self, thePnt, theAxis, theR1, theR2, theH, theName=None):
             """
             Create a cone with given base point, axis, height and radiuses.
 
@@ -2216,6 +2908,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theR1 Radius of the first cone base.
                 theR2 Radius of the second cone base.
                 theH Cone height.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Note:
                 If both radiuses are non-zero, the cone will be truncated.
@@ -2229,6 +2924,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.PrimOp.MakeConePntVecR1R2H(thePnt, theAxis, theR1, theR2, theH)
             RaiseIfFailed("MakeConePntVecR1R2H", self.PrimOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "cone")
             return anObj
 
         ## Create a cone with given height and radiuses at
@@ -2239,10 +2935,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #    \note If both radiuses are non-zero, the cone will be truncated.
         #    \note If the radiuses are equal, a cylinder will be created instead.
         #  @param theH Cone height.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created cone.
         #
         #  @ref tui_creation_cone "Example"
-        def MakeConeR1R2H(self,theR1, theR2, theH):
+        def MakeConeR1R2H(self, theR1, theR2, theH, theName=None):
             """
             Create a cone with given height and radiuses at
             the origin of coordinate system. Axis of the cone will
@@ -2252,6 +2952,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theR1 Radius of the first cone base.
                 theR2 Radius of the second cone base.
                 theH Cone height.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Note:
                 If both radiuses are non-zero, the cone will be truncated.
@@ -2265,6 +2968,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.PrimOp.MakeConeR1R2H(theR1, theR2, theH)
             RaiseIfFailed("MakeConeR1R2H", self.PrimOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "cone")
             return anObj
 
         ## Create a torus with given center, normal vector and radiuses.
@@ -2272,10 +2976,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theVec Torus axis of symmetry.
         #  @param theRMajor Torus major radius.
         #  @param theRMinor Torus minor radius.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created torus.
         #
         #  @ref tui_creation_torus "Example"
-        def MakeTorus(self, thePnt, theVec, theRMajor, theRMinor):
+        def MakeTorus(self, thePnt, theVec, theRMajor, theRMinor, theName=None):
             """
             Create a torus with given center, normal vector and radiuses.
 
@@ -2284,6 +2992,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theVec Torus axis of symmetry.
                 theRMajor Torus major radius.
                 theRMinor Torus minor radius.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
            Returns:
                 New GEOM.GEOM_Object, containing the created torus.
@@ -2293,21 +3004,29 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.PrimOp.MakeTorusPntVecRR(thePnt, theVec, theRMajor, theRMinor)
             RaiseIfFailed("MakeTorusPntVecRR", self.PrimOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "torus")
             return anObj
 
         ## Create a torus with given radiuses at the origin of coordinate system.
         #  @param theRMajor Torus major radius.
         #  @param theRMinor Torus minor radius.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created torus.
         #
         #  @ref tui_creation_torus "Example"
-        def MakeTorusRR(self, theRMajor, theRMinor):
+        def MakeTorusRR(self, theRMajor, theRMinor, theName=None):
             """
            Create a torus with given radiuses at the origin of coordinate system.
 
            Parameters: 
                 theRMajor Torus major radius.
                 theRMinor Torus minor radius.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
            Returns:
                 New GEOM.GEOM_Object, containing the created torus.            
@@ -2317,6 +3036,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.PrimOp.MakeTorusRR(theRMajor, theRMinor)
             RaiseIfFailed("MakeTorusRR", self.PrimOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "torus")
             return anObj
 
         # end of l3_3d_primitives
@@ -2331,10 +3051,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param thePoint2 Second end of extrusion vector.
         #  @param theScaleFactor Use it to make prism with scaled second base.
         #                        Nagative value means not scaled second base.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created prism.
         #
         #  @ref tui_creation_prism "Example"
-        def MakePrism(self, theBase, thePoint1, thePoint2, theScaleFactor = -1.0):
+        def MakePrism(self, theBase, thePoint1, thePoint2, theScaleFactor = -1.0, theName=None):
             """
             Create a shape by extrusion of the base shape along a vector, defined by two points.
 
@@ -2344,6 +3068,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 thePoint2 Second end of extrusion vector.
                 theScaleFactor Use it to make prism with scaled second base.
                                Nagative value means not scaled second base.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created prism.
@@ -2358,6 +3085,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 anObj = self.PrimOp.MakePrismTwoPnt(theBase, thePoint1, thePoint2)
             RaiseIfFailed("MakePrismTwoPnt", self.PrimOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "prism")
             return anObj
 
         ## Create a shape by extrusion of the base shape along a
@@ -2365,10 +3093,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theBase Base shape to be extruded.
         #  @param thePoint1 First end of extrusion vector.
         #  @param thePoint2 Second end of extrusion vector.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created prism.
         #
         #  @ref tui_creation_prism "Example"
-        def MakePrism2Ways(self, theBase, thePoint1, thePoint2):
+        def MakePrism2Ways(self, theBase, thePoint1, thePoint2, theName=None):
             """
             Create a shape by extrusion of the base shape along a
             vector, defined by two points, in 2 Ways (forward/backward).
@@ -2377,6 +3109,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theBase Base shape to be extruded.
                 thePoint1 First end of extrusion vector.
                 thePoint2 Second end of extrusion vector.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created prism.
@@ -2384,6 +3119,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.PrimOp.MakePrismTwoPnt2Ways(theBase, thePoint1, thePoint2)
             RaiseIfFailed("MakePrismTwoPnt", self.PrimOp)
+            self._autoPublish(anObj, theName, "prism")
             return anObj
 
         ## Create a shape by extrusion of the base shape along the vector,
@@ -2394,10 +3130,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theH Prism dimension along theVec.
         #  @param theScaleFactor Use it to make prism with scaled second base.
         #                        Negative value means not scaled second base.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created prism.
         #
         #  @ref tui_creation_prism "Example"
-        def MakePrismVecH(self, theBase, theVec, theH, theScaleFactor = -1.0):
+        def MakePrismVecH(self, theBase, theVec, theH, theScaleFactor = -1.0, theName=None):
             """
             Create a shape by extrusion of the base shape along the vector,
             i.e. all the space, transfixed by the base shape during its translation
@@ -2409,6 +3149,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theH Prism dimension along theVec.
                 theScaleFactor Use it to make prism with scaled second base.
                                Negative value means not scaled second base.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created prism.
@@ -2424,6 +3167,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 anObj = self.PrimOp.MakePrismVecH(theBase, theVec, theH)
             RaiseIfFailed("MakePrismVecH", self.PrimOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "prism")
             return anObj
 
         ## Create a shape by extrusion of the base shape along the vector,
@@ -2432,10 +3176,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theBase Base shape to be extruded.
         #  @param theVec Direction of extrusion.
         #  @param theH Prism dimension along theVec in forward direction.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created prism.
         #
         #  @ref tui_creation_prism "Example"
-        def MakePrismVecH2Ways(self, theBase, theVec, theH):
+        def MakePrismVecH2Ways(self, theBase, theVec, theH, theName=None):
             """
             Create a shape by extrusion of the base shape along the vector,
             i.e. all the space, transfixed by the base shape during its translation
@@ -2445,6 +3193,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theBase Base shape to be extruded.
                 theVec Direction of extrusion.
                 theH Prism dimension along theVec in forward direction.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created prism.
@@ -2454,6 +3205,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.PrimOp.MakePrismVecH2Ways(theBase, theVec, theH)
             RaiseIfFailed("MakePrismVecH2Ways", self.PrimOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "prism")
             return anObj
 
         ## Create a shape by extrusion of the base shape along the dx, dy, dz direction
@@ -2461,10 +3213,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theDX, theDY, theDZ Directions of extrusion.
         #  @param theScaleFactor Use it to make prism with scaled second base.
         #                        Nagative value means not scaled second base.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created prism.
         #
         #  @ref tui_creation_prism "Example"
-        def MakePrismDXDYDZ(self, theBase, theDX, theDY, theDZ, theScaleFactor = -1.0):
+        def MakePrismDXDYDZ(self, theBase, theDX, theDY, theDZ, theScaleFactor = -1.0, theName=None):
             """
             Create a shape by extrusion of the base shape along the dx, dy, dz direction
 
@@ -2473,6 +3229,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theDX, theDY, theDZ Directions of extrusion.
                 theScaleFactor Use it to make prism with scaled second base.
                                Nagative value means not scaled second base.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 New GEOM.GEOM_Object, containing the created prism.
@@ -2488,6 +3247,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 anObj = self.PrimOp.MakePrismDXDYDZ(theBase, theDX, theDY, theDZ)
             RaiseIfFailed("MakePrismDXDYDZ", self.PrimOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "prism")
             return anObj
 
         ## Create a shape by extrusion of the base shape along the dx, dy, dz direction
@@ -2495,10 +3255,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  along the vector on the given distance in 2 Ways (forward/backward).
         #  @param theBase Base shape to be extruded.
         #  @param theDX, theDY, theDZ Directions of extrusion.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created prism.
         #
         #  @ref tui_creation_prism "Example"
-        def MakePrismDXDYDZ2Ways(self, theBase, theDX, theDY, theDZ):
+        def MakePrismDXDYDZ2Ways(self, theBase, theDX, theDY, theDZ, theName=None):
             """
             Create a shape by extrusion of the base shape along the dx, dy, dz direction
             i.e. all the space, transfixed by the base shape during its translation
@@ -2507,6 +3271,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             Parameters:
                 theBase Base shape to be extruded.
                 theDX, theDY, theDZ Directions of extrusion.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created prism.
@@ -2516,6 +3283,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.PrimOp.MakePrismDXDYDZ2Ways(theBase, theDX, theDY, theDZ)
             RaiseIfFailed("MakePrismDXDYDZ2Ways", self.PrimOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "prism")
             return anObj
 
         ## Create a shape by revolution of the base shape around the axis
@@ -2524,10 +3292,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theBase Base shape to be rotated.
         #  @param theAxis Rotation axis.
         #  @param theAngle Rotation angle in radians.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created revolution.
         #
         #  @ref tui_creation_revolution "Example"
-        def MakeRevolution(self, theBase, theAxis, theAngle):
+        def MakeRevolution(self, theBase, theAxis, theAngle, theName=None):
             """
             Create a shape by revolution of the base shape around the axis
             on the given angle, i.e. all the space, transfixed by the base
@@ -2537,6 +3309,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theBase Base shape to be rotated.
                 theAxis Rotation axis.
                 theAngle Rotation angle in radians.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 New GEOM.GEOM_Object, containing the created revolution.
@@ -2546,6 +3321,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.PrimOp.MakeRevolutionAxisAngle(theBase, theAxis, theAngle)
             RaiseIfFailed("MakeRevolutionAxisAngle", self.PrimOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "revolution")
             return anObj
 
         ## Create a shape by revolution of the base shape around the axis
@@ -2555,10 +3331,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theBase Base shape to be rotated.
         #  @param theAxis Rotation axis.
         #  @param theAngle Rotation angle in radians.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created revolution.
         #
         #  @ref tui_creation_revolution "Example"
-        def MakeRevolution2Ways(self, theBase, theAxis, theAngle):
+        def MakeRevolution2Ways(self, theBase, theAxis, theAngle, theName=None):
             """
             Create a shape by revolution of the base shape around the axis
             on the given angle, i.e. all the space, transfixed by the base
@@ -2569,6 +3349,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theBase Base shape to be rotated.
                 theAxis Rotation axis.
                 theAngle Rotation angle in radians.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 New GEOM.GEOM_Object, containing the created revolution.
@@ -2577,6 +3360,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.PrimOp.MakeRevolutionAxisAngle2Ways(theBase, theAxis, theAngle)
             RaiseIfFailed("MakeRevolutionAxisAngle2Ways", self.PrimOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "revolution")
             return anObj
 
         ## Create a filling from the given compound of contours.
@@ -2592,11 +3376,15 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #                  the surface is created using given curves. The usage of
         #                  Approximation makes the algorithm work slower, but allows
         #                  building the surface for rather complex cases.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created filling surface.
         #
         #  @ref tui_creation_filling "Example"
         def MakeFilling(self, theShape, theMinDeg=2, theMaxDeg=5, theTol2D=0.0001,
-                        theTol3D=0.0001, theNbIter=0, theMethod=GEOM.FOM_Default, isApprox=0):
+                        theTol3D=0.0001, theNbIter=0, theMethod=GEOM.FOM_Default, isApprox=0, theName=None):
             """
             Create a filling from the given compound of contours.
 
@@ -2613,6 +3401,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                          the surface is created using given curves. The usage of
                          Approximation makes the algorithm work slower, but allows
                          building the surface for rather complex cases
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 New GEOM.GEOM_Object, containing the created filling surface.
@@ -2627,6 +3418,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                                             theMethod, isApprox)
             RaiseIfFailed("MakeFilling", self.PrimOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "filling")
             return anObj
 
 
@@ -2636,10 +3428,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theMinDeg a minimal degree of BSpline surface to create
         #  @param theMaxDeg a maximal degree of BSpline surface to create
         #  @param theTol3D a 3d tolerance to be reached
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created filling surface.
         #
         #  @ref tui_creation_filling "Example"
-        def MakeFillingNew(self, theShape, theMinDeg=2, theMaxDeg=5, theTol3D=0.0001):
+        def MakeFillingNew(self, theShape, theMinDeg=2, theMaxDeg=5, theTol3D=0.0001, theName=None):
             """
             Create a filling from the given compound of contours.
             This method corresponds to MakeFilling with isApprox=True
@@ -2649,6 +3445,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theMinDeg a minimal degree of BSpline surface to create
                 theMaxDeg a maximal degree of BSpline surface to create
                 theTol3D a 3d tolerance to be reached
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 New GEOM.GEOM_Object, containing the created filling surface.
@@ -2662,6 +3461,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                                             0, theTol3D, 0, GEOM.FOM_Default, True)
             RaiseIfFailed("MakeFillingNew", self.PrimOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "filling")
             return anObj
 
         ## Create a shell or solid passing through set of sections.Sections should be wires,edges or vertices.
@@ -2669,10 +3469,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theModeSolid - mode defining building solid or shell
         #  @param thePreci - precision 3D used for smoothing
         #  @param theRuled - mode defining type of the result surfaces (ruled or smoothed).
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created shell or solid.
         #
         #  @ref swig_todo "Example"
-        def MakeThruSections(self,theSeqSections,theModeSolid,thePreci,theRuled):
+        def MakeThruSections(self, theSeqSections, theModeSolid, thePreci, theRuled, theName=None):
             """
             Create a shell or solid passing through set of sections.Sections should be wires,edges or vertices.
 
@@ -2681,6 +3485,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theModeSolid - mode defining building solid or shell
                 thePreci - precision 3D used for smoothing
                 theRuled - mode defining type of the result surfaces (ruled or smoothed).
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created shell or solid.
@@ -2688,16 +3495,21 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.PrimOp.MakeThruSections(theSeqSections,theModeSolid,thePreci,theRuled)
             RaiseIfFailed("MakeThruSections", self.PrimOp)
+            self._autoPublish(anObj, theName, "filling")
             return anObj
 
         ## Create a shape by extrusion of the base shape along
         #  the path shape. The path shape can be a wire or an edge.
         #  @param theBase Base shape to be extruded.
         #  @param thePath Path shape to extrude the base shape along it.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created pipe.
         #
         #  @ref tui_creation_pipe "Example"
-        def MakePipe(self,theBase, thePath):
+        def MakePipe(self, theBase, thePath, theName=None):
             """
             Create a shape by extrusion of the base shape along
             the path shape. The path shape can be a wire or an edge.
@@ -2705,6 +3517,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             Parameters:
                 theBase Base shape to be extruded.
                 thePath Path shape to extrude the base shape along it.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created pipe.
@@ -2712,6 +3527,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.PrimOp.MakePipe(theBase, thePath)
             RaiseIfFailed("MakePipe", self.PrimOp)
+            self._autoPublish(anObj, theName, "pipe")
             return anObj
 
         ## Create a shape by extrusion of the profile shape along
@@ -2726,12 +3542,16 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #                          contact with the spine.
         #  @param theWithCorrection - defining that the section is rotated to be
         #                             orthogonal to the spine tangent in the correspondent point
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created pipe.
         #
         #  @ref tui_creation_pipe_with_diff_sec "Example"
         def MakePipeWithDifferentSections(self, theSeqBases,
                                           theLocations, thePath,
-                                          theWithContact, theWithCorrection):
+                                          theWithContact, theWithCorrection, theName=None):
             """
             Create a shape by extrusion of the profile shape along
             the path shape. The path shape can be a wire or an edge.
@@ -2747,6 +3567,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                                  contact with the spine(0/1)
                 theWithCorrection - defining that the section is rotated to be
                                     orthogonal to the spine tangent in the correspondent point (0/1)
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created pipe.
@@ -2755,6 +3578,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                                                               theLocations, thePath,
                                                               theWithContact, theWithCorrection)
             RaiseIfFailed("MakePipeWithDifferentSections", self.PrimOp)
+            self._autoPublish(anObj, theName, "pipe")
             return anObj
 
         ## Create a shape by extrusion of the profile shape along
@@ -2778,12 +3602,16 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #                          contact with the spine.
         #  @param theWithCorrection - defining that the section is rotated to be
         #                             orthogonal to the spine tangent in the correspondent point
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created solids.
         #
         #  @ref tui_creation_pipe_with_shell_sec "Example"
-        def MakePipeWithShellSections(self,theSeqBases, theSeqSubBases,
+        def MakePipeWithShellSections(self, theSeqBases, theSeqSubBases,
                                       theLocations, thePath,
-                                      theWithContact, theWithCorrection):
+                                      theWithContact, theWithCorrection, theName=None):
             """
             Create a shape by extrusion of the profile shape along
             the path shape. The path shape can be a wire or a edge.
@@ -2808,6 +3636,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                                  contact with the spine (0/1)
                 theWithCorrection - defining that the section is rotated to be
                                     orthogonal to the spine tangent in the correspondent point (0/1)
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:                           
                 New GEOM.GEOM_Object, containing the created solids.
@@ -2816,6 +3647,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                                                           theLocations, thePath,
                                                           theWithContact, theWithCorrection)
             RaiseIfFailed("MakePipeWithShellSections", self.PrimOp)
+            self._autoPublish(anObj, theName, "pipe")
             return anObj
 
         ## Create a shape by extrusion of the profile shape along
@@ -2825,7 +3657,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  creating pipe between each pair of sections step by step.
         def MakePipeWithShellSectionsBySteps(self, theSeqBases, theSeqSubBases,
                                              theLocations, thePath,
-                                             theWithContact, theWithCorrection):
+                                             theWithContact, theWithCorrection, theName=None):
             """
             Create a shape by extrusion of the profile shape along
             the path shape. This function is used only for debug pipe
@@ -2860,27 +3692,36 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             resc = self.MakeCompound(res)
             #resc = self.MakeSewing(res, 0.001)
             #print "resc: ",resc
+            self._autoPublish(resc, theName, "pipe")
             return resc
 
         ## Create solids between given sections
         #  @param theSeqBases - list of sections (shell or face).
         #  @param theLocations - list of corresponding vertexes
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created solids.
         #
         #  @ref tui_creation_pipe_without_path "Example"
-        def MakePipeShellsWithoutPath(self, theSeqBases, theLocations):
+        def MakePipeShellsWithoutPath(self, theSeqBases, theLocations, theName=None):
             """
             Create solids between given sections
 
             Parameters:
                 theSeqBases - list of sections (shell or face).
                 theLocations - list of corresponding vertexes
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created solids.
             """
             anObj = self.PrimOp.MakePipeShellsWithoutPath(theSeqBases, theLocations)
             RaiseIfFailed("MakePipeShellsWithoutPath", self.PrimOp)
+            self._autoPublish(anObj, theName, "pipe")
             return anObj
 
         ## Create a shape by extrusion of the base shape along
@@ -2891,10 +3732,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theVec Vector defines a constant binormal direction to keep the
         #                same angle beetween the direction and the sections
         #                along the sweep surface.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created pipe.
         #
         #  @ref tui_creation_pipe "Example"
-        def MakePipeBiNormalAlongVector(self,theBase, thePath, theVec):
+        def MakePipeBiNormalAlongVector(self, theBase, thePath, theVec, theName=None):
             """
             Create a shape by extrusion of the base shape along
             the path shape with constant bi-normal direction along the given vector.
@@ -2906,6 +3751,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theVec Vector defines a constant binormal direction to keep the
                        same angle beetween the direction and the sections
                        along the sweep surface.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:              
                 New GEOM.GEOM_Object, containing the created pipe.
@@ -2913,6 +3761,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.PrimOp.MakePipeBiNormalAlongVector(theBase, thePath, theVec)
             RaiseIfFailed("MakePipeBiNormalAlongVector", self.PrimOp)
+            self._autoPublish(anObj, theName, "pipe")
             return anObj
 
         ## Build a middle path of a pipe-like shape.
@@ -2921,17 +3770,22 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #                  or a pipe-like solid.
         #  @param theBase1, theBase2 Two bases of the supposed pipe. This
         #                            should be wires or faces of theShape.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @note It is not assumed that exact or approximate copy of theShape
         #        can be obtained by applying existing Pipe operation on the
         #        resulting "Path" wire taking theBase1 as the base - it is not
         #        always possible; though in some particular cases it might work
         #        it is not guaranteed. Thus, RestorePath function should not be
         #        considered as an exact reverse operation of the Pipe.
+        #
         #  @return New GEOM.GEOM_Object, containing an edge or wire that represent
         #                                source pipe's "path".
         #
         #  @ref tui_creation_pipe_path "Example"
-        def RestorePath (self, theShape, theBase1, theBase2):
+        def RestorePath (self, theShape, theBase1, theBase2, theName=None):
             """
             Build a middle path of a pipe-like shape.
             The path shape can be a wire or an edge.
@@ -2941,6 +3795,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                          or a pipe-like solid.
                 theBase1, theBase2 Two bases of the supposed pipe. This
                                    should be wires or faces of theShape.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM_Object, containing an edge or wire that represent
@@ -2948,6 +3805,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             """
             anObj = self.PrimOp.RestorePath(theShape, theBase1, theBase2)
             RaiseIfFailed("RestorePath", self.PrimOp)
+            self._autoPublish(anObj, theName, "path")
             return anObj
 
         ## Build a middle path of a pipe-like shape.
@@ -2956,17 +3814,22 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #                  or a pipe-like solid.
         #  @param listEdges1, listEdges2 Two bases of the supposed pipe. This
         #                                should be lists of edges of theShape.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @note It is not assumed that exact or approximate copy of theShape
         #        can be obtained by applying existing Pipe operation on the
         #        resulting "Path" wire taking theBase1 as the base - it is not
         #        always possible; though in some particular cases it might work
         #        it is not guaranteed. Thus, RestorePath function should not be
         #        considered as an exact reverse operation of the Pipe.
+        #
         #  @return New GEOM.GEOM_Object, containing an edge or wire that represent
         #                                source pipe's "path".
         #
         #  @ref tui_creation_pipe_path "Example"
-        def RestorePathEdges (self, theShape, listEdges1, listEdges2):
+        def RestorePathEdges (self, theShape, listEdges1, listEdges2, theName=None):
             """
             Build a middle path of a pipe-like shape.
             The path shape can be a wire or an edge.
@@ -2976,6 +3839,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                          or a pipe-like solid.
                 listEdges1, listEdges2 Two bases of the supposed pipe. This
                                        should be lists of edges of theShape.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM_Object, containing an edge or wire that represent
@@ -2983,6 +3849,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             """
             anObj = self.PrimOp.RestorePathEdges(theShape, listEdges1, listEdges2)
             RaiseIfFailed("RestorePath", self.PrimOp)
+            self._autoPublish(anObj, theName, "path")
             return anObj
 
         # end of l3_complex
@@ -2994,16 +3861,23 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         ## Create a linear edge with specified ends.
         #  @param thePnt1 Point for the first end of edge.
         #  @param thePnt2 Point for the second end of edge.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created edge.
         #
         #  @ref tui_creation_edge "Example"
-        def MakeEdge(self,thePnt1, thePnt2):
+        def MakeEdge(self, thePnt1, thePnt2, theName=None):
             """
             Create a linear edge with specified ends.
 
             Parameters:
                 thePnt1 Point for the first end of edge.
                 thePnt2 Point for the second end of edge.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:           
                 New GEOM.GEOM_Object, containing the created edge.
@@ -3011,6 +3885,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.ShapesOp.MakeEdge(thePnt1, thePnt2)
             RaiseIfFailed("MakeEdge", self.ShapesOp)
+            self._autoPublish(anObj, theName, "edge")
             return anObj
 
         ## Create a new edge, corresponding to the given length on the given curve.
@@ -3019,10 +3894,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theStartPoint Any point can be selected for it, the new edge will begin
         #                       at the end of \a theRefCurve, close to the selected point.
         #                       If None, start from the first point of \a theRefCurve.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created edge.
         #
         #  @ref tui_creation_edge "Example"
-        def MakeEdgeOnCurveByLength(self, theRefCurve, theLength, theStartPoint = None):
+        def MakeEdgeOnCurveByLength(self, theRefCurve, theLength, theStartPoint = None, theName=None):
             """
             Create a new edge, corresponding to the given length on the given curve.
 
@@ -3032,6 +3911,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theStartPoint Any point can be selected for it, the new edge will begin
                               at the end of theRefCurve, close to the selected point.
                               If None, start from the first point of theRefCurve.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:              
                 New GEOM.GEOM_Object, containing the created edge.
@@ -3041,16 +3923,21 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.ShapesOp.MakeEdgeOnCurveByLength(theRefCurve, theLength, theStartPoint)
             RaiseIfFailed("MakeEdgeOnCurveByLength", self.ShapesOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "edge")
             return anObj
 
         ## Create an edge from specified wire.
         #  @param theWire source Wire
         #  @param theLinearTolerance linear tolerance value (default = 1e-07)
         #  @param theAngularTolerance angular tolerance value (default = 1e-12)
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created edge.
         #
         #  @ref tui_creation_edge "Example"
-        def MakeEdgeWire(self, theWire, theLinearTolerance = 1e-07, theAngularTolerance = 1e-12):
+        def MakeEdgeWire(self, theWire, theLinearTolerance = 1e-07, theAngularTolerance = 1e-12, theName=None):
             """
             Create an edge from specified wire.
 
@@ -3058,6 +3945,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theWire source Wire
                 theLinearTolerance linear tolerance value (default = 1e-07)
                 theAngularTolerance angular tolerance value (default = 1e-12)
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created edge.
@@ -3065,16 +3955,21 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.ShapesOp.MakeEdgeWire(theWire, theLinearTolerance, theAngularTolerance)
             RaiseIfFailed("MakeEdgeWire", self.ShapesOp)
+            self._autoPublish(anObj, theName, "edge")
             return anObj
 
         ## Create a wire from the set of edges and wires.
         #  @param theEdgesAndWires List of edges and/or wires.
         #  @param theTolerance Maximum distance between vertices, that will be merged.
         #                      Values less than 1e-07 are equivalent to 1e-07 (Precision::Confusion())
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created wire.
         #
         #  @ref tui_creation_wire "Example"
-        def MakeWire(self, theEdgesAndWires, theTolerance = 1e-07):
+        def MakeWire(self, theEdgesAndWires, theTolerance = 1e-07, theName=None):
             """
             Create a wire from the set of edges and wires.
 
@@ -3082,6 +3977,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theEdgesAndWires List of edges and/or wires.
                 theTolerance Maximum distance between vertices, that will be merged.
                              Values less than 1e-07 are equivalent to 1e-07 (Precision::Confusion()).
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:                    
                 New GEOM.GEOM_Object, containing the created wire.
@@ -3089,6 +3987,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.ShapesOp.MakeWire(theEdgesAndWires, theTolerance)
             RaiseIfFailed("MakeWire", self.ShapesOp)
+            self._autoPublish(anObj, theName, "wire")
             return anObj
 
         ## Create a face on the given wire.
@@ -3098,10 +3997,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #                        than 1e-06, this face will be returned, otherwise the
         #                        algorithm tries to build any suitable face on the given
         #                        wire and prints a warning message.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created face.
         #
         #  @ref tui_creation_face "Example"
-        def MakeFace(self, theWire, isPlanarWanted):
+        def MakeFace(self, theWire, isPlanarWanted, theName=None):
             """
             Create a face on the given wire.
 
@@ -3112,6 +4015,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                                than 1e-06, this face will be returned, otherwise the
                                algorithm tries to build any suitable face on the given
                                wire and prints a warning message.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created face.
@@ -3122,6 +4028,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 print "WARNING: Cannot build a planar face: required tolerance is too big. Non-planar face is built."
             else:
                 RaiseIfFailed("MakeFace", self.ShapesOp)
+            self._autoPublish(anObj, theName, "face")
             return anObj
 
         ## Create a face on the given wires set.
@@ -3131,10 +4038,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #                        than 1e-06, this face will be returned, otherwise the
         #                        algorithm tries to build any suitable face on the given
         #                        wire and prints a warning message.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created face.
         #
         #  @ref tui_creation_face "Example"
-        def MakeFaceWires(self, theWires, isPlanarWanted):
+        def MakeFaceWires(self, theWires, isPlanarWanted, theName=None):
             """
             Create a face on the given wires set.
 
@@ -3145,6 +4056,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                                than 1e-06, this face will be returned, otherwise the
                                algorithm tries to build any suitable face on the given
                                wire and prints a warning message.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 New GEOM.GEOM_Object, containing the created face.
@@ -3155,31 +4069,40 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 print "WARNING: Cannot build a planar face: required tolerance is too big. Non-planar face is built."
             else:
                 RaiseIfFailed("MakeFaceWires", self.ShapesOp)
+            self._autoPublish(anObj, theName, "face")
             return anObj
 
         ## See MakeFaceWires() method for details.
         #
         #  @ref tui_creation_face "Example 1"
         #  \n @ref swig_MakeFaces  "Example 2"
-        def MakeFaces(self, theWires, isPlanarWanted):
+        def MakeFaces(self, theWires, isPlanarWanted, theName=None):
             """
             See geompy.MakeFaceWires() method for details.
             """
             # Example: see GEOM_TestOthers.py
-            anObj = self.MakeFaceWires(theWires, isPlanarWanted)
+            # note: auto-publishing is done in self.MakeFaceWires()
+            anObj = self.MakeFaceWires(theWires, isPlanarWanted, theName)
             return anObj
 
         ## Create a shell from the set of faces and shells.
         #  @param theFacesAndShells List of faces and/or shells.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created shell.
         #
         #  @ref tui_creation_shell "Example"
-        def MakeShell(self,theFacesAndShells):
+        def MakeShell(self, theFacesAndShells, theName=None):
             """
             Create a shell from the set of faces and shells.
 
             Parameters:
                 theFacesAndShells List of faces and/or shells.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created shell.
@@ -3187,19 +4110,27 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.ShapesOp.MakeShell(theFacesAndShells)
             RaiseIfFailed("MakeShell", self.ShapesOp)
+            self._autoPublish(anObj, theName, "shell")
             return anObj
 
         ## Create a solid, bounded by the given shells.
         #  @param theShells Sequence of bounding shells.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created solid.
         #
         #  @ref tui_creation_solid "Example"
-        def MakeSolid(self, theShells):
+        def MakeSolid(self, theShells, theName=None):
             """
             Create a solid, bounded by the given shells.
 
             Parameters:
                 theShells Sequence of bounding shells.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created solid.
@@ -3213,19 +4144,27 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                     raise RuntimeError, "MakeSolidShells : Unable to create solid from unclosed shape"
             anObj = self.ShapesOp.MakeSolidShells(theShells)
             RaiseIfFailed("MakeSolidShells", self.ShapesOp)
+            self._autoPublish(anObj, theName, "solid")
             return anObj
 
         ## Create a compound of the given shapes.
         #  @param theShapes List of shapes to put in compound.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created compound.
         #
         #  @ref tui_creation_compound "Example"
-        def MakeCompound(self,theShapes):
+        def MakeCompound(self, theShapes, theName=None):
             """
             Create a compound of the given shapes.
 
             Parameters:
                 theShapes List of shapes to put in compound.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created compound.
@@ -3233,6 +4172,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.ShapesOp.MakeCompound(theShapes)
             RaiseIfFailed("MakeCompound", self.ShapesOp)
+            self._autoPublish(anObj, theName, "compound")
             return anObj
 
         # end of l3_advanced
@@ -3331,15 +4271,22 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
 
         ## Reverses an orientation the given shape.
         #  @param theShape Shape to be reversed.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return The reversed copy of theShape.
         #
         #  @ref swig_ChangeOrientation "Example"
-        def ChangeOrientation(self,theShape):
+        def ChangeOrientation(self, theShape, theName=None):
             """
             Reverses an orientation the given shape.
 
             Parameters:
                 theShape Shape to be reversed.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:   
                 The reversed copy of theShape.
@@ -3347,17 +4294,19 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.ShapesOp.ChangeOrientation(theShape)
             RaiseIfFailed("ChangeOrientation", self.ShapesOp)
+            self._autoPublish(anObj, theName, "reversed")
             return anObj
 
         ## See ChangeOrientation() method for details.
         #
         #  @ref swig_OrientationChange "Example"
-        def OrientationChange(self,theShape):
+        def OrientationChange(self, theShape, theName=None):
             """
             See geompy.ChangeOrientation method for details.
             """
             # Example: see GEOM_TestOthers.py
-            anObj = self.ChangeOrientation(theShape)
+            # note: auto-publishing is done in self.ChangeOrientation()
+            anObj = self.ChangeOrientation(theShape, theName)
             return anObj
 
         # end of l3_healing
@@ -3392,10 +4341,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theShape1 Shape to find sub-shapes in.
         #  @param theShape2 Shape to find shared sub-shapes with.
         #  @param theShapeType Type of sub-shapes to be retrieved.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return List of sub-shapes of theShape1, shared with theShape2.
         #
         #  @ref swig_GetSharedShapes "Example"
-        def GetSharedShapes(self,theShape1, theShape2, theShapeType):
+        def GetSharedShapes(self, theShape1, theShape2, theShapeType, theName=None):
             """
             Get all sub-shapes of theShape1 of the given type, shared with theShape2.
 
@@ -3403,6 +4356,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theShape1 Shape to find sub-shapes in.
                 theShape2 Shape to find shared sub-shapes with.
                 theShapeType Type of sub-shapes to be retrieved.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 List of sub-shapes of theShape1, shared with theShape2.
@@ -3410,21 +4366,29 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestOthers.py
             aList = self.ShapesOp.GetSharedShapes(theShape1, theShape2, theShapeType)
             RaiseIfFailed("GetSharedShapes", self.ShapesOp)
+            self._autoPublish(aList, theName, "shared")
             return aList
 
         ## Get all sub-shapes, shared by all shapes in the list <VAR>theShapes</VAR>.
         #  @param theShapes Shapes to find common sub-shapes of.
         #  @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return List of objects, that are sub-shapes of all given shapes.
         #
         #  @ref swig_GetSharedShapes "Example"
-        def GetSharedShapesMulti(self, theShapes, theShapeType):
+        def GetSharedShapesMulti(self, theShapes, theShapeType, theName=None):
             """
             Get all sub-shapes, shared by all shapes in the list theShapes.
 
             Parameters:
                 theShapes Shapes to find common sub-shapes of.
                 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:    
                 List of GEOM.GEOM_Object, that are sub-shapes of all given shapes.
@@ -3432,6 +4396,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestOthers.py
             aList = self.ShapesOp.GetSharedShapesMulti(theShapes, theShapeType)
             RaiseIfFailed("GetSharedShapesMulti", self.ShapesOp)
+            self._autoPublish(aList, theName, "shared")
             return aList
 
         ## Find in <VAR>theShape</VAR> all sub-shapes of type <VAR>theShapeType</VAR>,
@@ -3442,10 +4407,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theAx1 Vector (or line, or linear edge), specifying normal
         #                direction and location of the plane to find shapes on.
         #  @param theState The state of the sub-shapes to find (see GEOM::shape_state)
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return List of all found sub-shapes.
         #
         #  @ref swig_GetShapesOnPlane "Example"
-        def GetShapesOnPlane(self,theShape, theShapeType, theAx1, theState):
+        def GetShapesOnPlane(self, theShape, theShapeType, theAx1, theState, theName=None):
             """
             Find in theShape all sub-shapes of type theShapeType,
             situated relatively the specified plane by the certain way,
@@ -3457,6 +4426,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theAx1 Vector (or line, or linear edge), specifying normal
                        direction and location of the plane to find shapes on.
                 theState The state of the sub-shapes to find (see GEOM::shape_state)
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 List of all found sub-shapes.
@@ -3464,6 +4436,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestOthers.py
             aList = self.ShapesOp.GetShapesOnPlane(theShape, theShapeType, theAx1, theState)
             RaiseIfFailed("GetShapesOnPlane", self.ShapesOp)
+            self._autoPublish(aList, theName, "shapeOnPlane")
             return aList
 
         ## Find in <VAR>theShape</VAR> all sub-shapes of type <VAR>theShapeType</VAR>,
@@ -3474,10 +4447,11 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theAx1 Vector (or line, or linear edge), specifying normal
         #                direction and location of the plane to find shapes on.
         #  @param theState The state of the sub-shapes to find (see GEOM::shape_state)
+        #
         #  @return List of all found sub-shapes indices.
         #
         #  @ref swig_GetShapesOnPlaneIDs "Example"
-        def GetShapesOnPlaneIDs(self,theShape, theShapeType, theAx1, theState):
+        def GetShapesOnPlaneIDs(self, theShape, theShapeType, theAx1, theState):
             """
             Find in theShape all sub-shapes of type theShapeType,
             situated relatively the specified plane by the certain way,
@@ -3507,10 +4481,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #                direction of the plane to find shapes on.
         #  @param thePnt Point specifying location of the plane to find shapes on.
         #  @param theState The state of the sub-shapes to find (see GEOM::shape_state)
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return List of all found sub-shapes.
         #
         #  @ref swig_GetShapesOnPlaneWithLocation "Example"
-        def GetShapesOnPlaneWithLocation(self, theShape, theShapeType, theAx1, thePnt, theState):
+        def GetShapesOnPlaneWithLocation(self, theShape, theShapeType, theAx1, thePnt, theState, theName=None):
             """
             Find in theShape all sub-shapes of type theShapeType,
             situated relatively the specified plane by the certain way,
@@ -3523,6 +4501,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                        direction and location of the plane to find shapes on.
                 thePnt Point specifying location of the plane to find shapes on.
                 theState The state of the sub-shapes to find (see GEOM::shape_state)
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 List of all found sub-shapes.
@@ -3531,6 +4512,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             aList = self.ShapesOp.GetShapesOnPlaneWithLocation(theShape, theShapeType,
                                                                theAx1, thePnt, theState)
             RaiseIfFailed("GetShapesOnPlaneWithLocation", self.ShapesOp)
+            self._autoPublish(aList, theName, "shapeOnPlane")
             return aList
 
         ## Find in <VAR>theShape</VAR> all sub-shapes of type <VAR>theShapeType</VAR>,
@@ -3542,6 +4524,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #                direction of the plane to find shapes on.
         #  @param thePnt Point specifying location of the plane to find shapes on.
         #  @param theState The state of the sub-shapes to find (see GEOM::shape_state)
+        #
         #  @return List of all found sub-shapes indices.
         #
         #  @ref swig_GetShapesOnPlaneWithLocationIDs "Example"
@@ -3576,10 +4559,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #                 axis of the cylinder to find shapes on.
         #  @param theRadius Radius of the cylinder to find shapes on.
         #  @param theState The state of the sub-shapes to find (see GEOM::shape_state)
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return List of all found sub-shapes.
         #
         #  @ref swig_GetShapesOnCylinder "Example"
-        def GetShapesOnCylinder(self, theShape, theShapeType, theAxis, theRadius, theState):
+        def GetShapesOnCylinder(self, theShape, theShapeType, theAxis, theRadius, theState, theName=None):
             """
             Find in theShape all sub-shapes of type theShapeType, situated relatively
             the specified cylinder by the certain way, defined through theState parameter.
@@ -3591,6 +4578,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                         axis of the cylinder to find shapes on.
                 theRadius Radius of the cylinder to find shapes on.
                 theState The state of the sub-shapes to find (see GEOM::shape_state)
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 List of all found sub-shapes.
@@ -3598,6 +4588,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestOthers.py
             aList = self.ShapesOp.GetShapesOnCylinder(theShape, theShapeType, theAxis, theRadius, theState)
             RaiseIfFailed("GetShapesOnCylinder", self.ShapesOp)
+            self._autoPublish(aList, theName, "shapeOnCylinder")
             return aList
 
         ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
@@ -3608,6 +4599,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #                 axis of the cylinder to find shapes on.
         #  @param theRadius Radius of the cylinder to find shapes on.
         #  @param theState The state of the sub-shapes to find (see GEOM::shape_state)
+        #
         #  @return List of all found sub-shapes indices.
         #
         #  @ref swig_GetShapesOnCylinderIDs "Example"
@@ -3641,10 +4633,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param thePnt Point specifying location of the bottom of the cylinder.
         #  @param theRadius Radius of the cylinder to find shapes on.
         #  @param theState The state of the sub-shapes to find (see GEOM::shape_state)
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return List of all found sub-shapes.
         #
         #  @ref swig_GetShapesOnCylinderWithLocation "Example"
-        def GetShapesOnCylinderWithLocation(self, theShape, theShapeType, theAxis, thePnt, theRadius, theState):
+        def GetShapesOnCylinderWithLocation(self, theShape, theShapeType, theAxis, thePnt, theRadius, theState, theName=None):
             """
             Find in theShape all sub-shapes of type theShapeType, situated relatively
             the specified cylinder by the certain way, defined through theState parameter.
@@ -3656,6 +4652,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                         axis of the cylinder to find shapes on.
                 theRadius Radius of the cylinder to find shapes on.
                 theState The state of the sub-shapes to find (see GEOM::shape_state)
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 List of all found sub-shapes.
@@ -3663,6 +4662,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestOthers.py
             aList = self.ShapesOp.GetShapesOnCylinderWithLocation(theShape, theShapeType, theAxis, thePnt, theRadius, theState)
             RaiseIfFailed("GetShapesOnCylinderWithLocation", self.ShapesOp)
+            self._autoPublish(aList, theName, "shapeOnCylinder")
             return aList
 
         ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
@@ -3674,6 +4674,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param thePnt Point specifying location of the bottom of the cylinder.
         #  @param theRadius Radius of the cylinder to find shapes on.
         #  @param theState The state of the sub-shapes to find (see GEOM::shape_state)
+        #
         #  @return List of all found sub-shapes indices
         #
         #  @ref swig_GetShapesOnCylinderWithLocationIDs "Example"
@@ -3705,10 +4706,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theCenter Point, specifying center of the sphere to find shapes on.
         #  @param theRadius Radius of the sphere to find shapes on.
         #  @param theState The state of the sub-shapes to find (see GEOM::shape_state)
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return List of all found sub-shapes.
         #
         #  @ref swig_GetShapesOnSphere "Example"
-        def GetShapesOnSphere(self,theShape, theShapeType, theCenter, theRadius, theState):
+        def GetShapesOnSphere(self, theShape, theShapeType, theCenter, theRadius, theState, theName=None):
             """
             Find in theShape all sub-shapes of type theShapeType, situated relatively
             the specified sphere by the certain way, defined through theState parameter.
@@ -3719,6 +4724,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theCenter Point, specifying center of the sphere to find shapes on.
                 theRadius Radius of the sphere to find shapes on.
                 theState The state of the sub-shapes to find (see GEOM::shape_state)
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 List of all found sub-shapes.
@@ -3726,6 +4734,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestOthers.py
             aList = self.ShapesOp.GetShapesOnSphere(theShape, theShapeType, theCenter, theRadius, theState)
             RaiseIfFailed("GetShapesOnSphere", self.ShapesOp)
+            self._autoPublish(aList, theName, "shapeOnSphere")
             return aList
 
         ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
@@ -3735,10 +4744,11 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theCenter Point, specifying center of the sphere to find shapes on.
         #  @param theRadius Radius of the sphere to find shapes on.
         #  @param theState The state of the sub-shapes to find (see GEOM::shape_state)
+        #
         #  @return List of all found sub-shapes indices.
         #
         #  @ref swig_GetShapesOnSphereIDs "Example"
-        def GetShapesOnSphereIDs(self,theShape, theShapeType, theCenter, theRadius, theState):
+        def GetShapesOnSphereIDs(self, theShape, theShapeType, theCenter, theRadius, theState):
             """
             Find in theShape all sub-shapes of type theShapeType, situated relatively
             the specified sphere by the certain way, defined through theState parameter.
@@ -3767,12 +4777,16 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theBottomLeftPoint Point, specifying bottom left corner of a quadrangle
         #  @param theBottomRigthPoint Point, specifying bottom right corner of a quadrangle
         #  @param theState The state of the sub-shapes to find (see GEOM::shape_state)
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return List of all found sub-shapes.
         #
         #  @ref swig_GetShapesOnQuadrangle "Example"
         def GetShapesOnQuadrangle(self, theShape, theShapeType,
                                   theTopLeftPoint, theTopRigthPoint,
-                                  theBottomLeftPoint, theBottomRigthPoint, theState):
+                                  theBottomLeftPoint, theBottomRigthPoint, theState, theName=None):
             """
             Find in theShape all sub-shapes of type theShapeType, situated relatively
             the specified quadrangle by the certain way, defined through theState parameter.
@@ -3785,6 +4799,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theBottomLeftPoint Point, specifying bottom left corner of a quadrangle
                 theBottomRigthPoint Point, specifying bottom right corner of a quadrangle
                 theState The state of the sub-shapes to find (see GEOM::shape_state)
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 List of all found sub-shapes.
@@ -3794,6 +4811,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                                                         theTopLeftPoint, theTopRigthPoint,
                                                         theBottomLeftPoint, theBottomRigthPoint, theState)
             RaiseIfFailed("GetShapesOnQuadrangle", self.ShapesOp)
+            self._autoPublish(aList, theName, "shapeOnQuadrangle")
             return aList
 
         ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
@@ -3805,6 +4823,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theBottomLeftPoint Point, specifying bottom left corner of a quadrangle
         #  @param theBottomRigthPoint Point, specifying bottom right corner of a quadrangle
         #  @param theState The state of the sub-shapes to find (see GEOM::shape_state)
+        #
         #  @return List of all found sub-shapes indices.
         #
         #  @ref swig_GetShapesOnQuadrangleIDs "Example"
@@ -3841,10 +4860,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theShape Shape to find sub-shapes of.
         #  @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
         #  @param theState The state of the sub-shapes to find (see GEOM::shape_state)
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return List of all found sub-shapes.
         #
         #  @ref swig_GetShapesOnBox "Example"
-        def GetShapesOnBox(self, theBox, theShape, theShapeType, theState):
+        def GetShapesOnBox(self, theBox, theShape, theShapeType, theState, theName=None):
             """
             Find in theShape all sub-shapes of type theShapeType, situated relatively
             the specified theBox by the certain way, defined through theState parameter.
@@ -3854,6 +4877,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theShape Shape to find sub-shapes of.
                 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
                 theState The state of the sub-shapes to find (see GEOM::shape_state)
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 List of all found sub-shapes.
@@ -3861,6 +4887,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestOthers.py
             aList = self.ShapesOp.GetShapesOnBox(theBox, theShape, theShapeType, theState)
             RaiseIfFailed("GetShapesOnBox", self.ShapesOp)
+            self._autoPublish(aList, theName, "shapeOnBox")
             return aList
 
         ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
@@ -3869,6 +4896,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theShape Shape to find sub-shapes of.
         #  @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
         #  @param theState The state of the sub-shapes to find (see GEOM::shape_state)
+        #
         #  @return List of all found sub-shapes indices.
         #
         #  @ref swig_GetShapesOnBoxIDs "Example"
@@ -3898,10 +4926,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theShape Shape to find sub-shapes of.
         #  @param theShapeType Type of sub-shapes to be retrieved (see ShapeType()) 
         #  @param theState The state of the sub-shapes to find (see GEOM::shape_state)
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return List of all found sub-shapes.
         #
         #  @ref swig_GetShapesOnShape "Example"
-        def GetShapesOnShape(self, theCheckShape, theShape, theShapeType, theState):
+        def GetShapesOnShape(self, theCheckShape, theShape, theShapeType, theState, theName=None):
             """
             Find in theShape all sub-shapes of type theShapeType,
             situated relatively the specified theCheckShape by the
@@ -3912,6 +4944,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theShape Shape to find sub-shapes of.
                 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
                 theState The state of the sub-shapes to find (see GEOM::shape_state)
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 List of all found sub-shapes.
@@ -3920,6 +4955,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             aList = self.ShapesOp.GetShapesOnShape(theCheckShape, theShape,
                                                    theShapeType, theState)
             RaiseIfFailed("GetShapesOnShape", self.ShapesOp)
+            self._autoPublish(aList, theName, "shapeOnShape")
             return aList
 
         ## Find in \a theShape all sub-shapes of type \a theShapeType,
@@ -3929,10 +4965,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theShape Shape to find sub-shapes of.
         #  @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
         #  @param theState The state of the sub-shapes to find (see GEOM::shape_state)
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return All found sub-shapes as compound.
         #
         #  @ref swig_GetShapesOnShapeAsCompound "Example"
-        def GetShapesOnShapeAsCompound(self, theCheckShape, theShape, theShapeType, theState):
+        def GetShapesOnShapeAsCompound(self, theCheckShape, theShape, theShapeType, theState, theName=None):
             """
             Find in theShape all sub-shapes of type theShapeType,
             situated relatively the specified theCheckShape by the
@@ -3943,6 +4983,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theShape Shape to find sub-shapes of.
                 theShapeType Type of sub-shapes to be retrieved (see geompy.ShapeType)
                 theState The state of the sub-shapes to find (see GEOM::shape_state)
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 All found sub-shapes as compound.
@@ -3951,6 +4994,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.ShapesOp.GetShapesOnShapeAsCompound(theCheckShape, theShape,
                                                              theShapeType, theState)
             RaiseIfFailed("GetShapesOnShapeAsCompound", self.ShapesOp)
+            self._autoPublish(anObj, theName, "shapeOnShape")
             return anObj
 
         ## Find in \a theShape all sub-shapes of type \a theShapeType,
@@ -3960,6 +5004,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theShape Shape to find sub-shapes of.
         #  @param theShapeType Type of sub-shapes to be retrieved (see ShapeType())
         #  @param theState The state of the sub-shapes to find (see GEOM::shape_state)
+        #
         #  @return List of all found sub-shapes indices.
         #
         #  @ref swig_GetShapesOnShapeIDs "Example"
@@ -3990,6 +5035,10 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theShapeWhat Shape, specifying what to find.
         #  @param isNewImplementation implementation of GetInPlace functionality
         #             (default = False, old alghorithm based on shape properties)
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return Group of all found sub-shapes or a single found sub-shape.
         #
         #  @note This function has a restriction on argument shapes.
@@ -3999,7 +5048,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #        @image html get_in_place_lost_part.png
         #
         #  @ref swig_GetInPlace "Example"
-        def GetInPlace(self, theShapeWhere, theShapeWhat, isNewImplementation = False):
+        def GetInPlace(self, theShapeWhere, theShapeWhat, isNewImplementation = False, theName=None):
             """
             Get sub-shape(s) of theShapeWhere, which are
             coincident with  theShapeWhat or could be a part of it.
@@ -4009,6 +5058,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theShapeWhat Shape, specifying what to find.
                 isNewImplementation Implementation of GetInPlace functionality
                                     (default = False, old alghorithm based on shape properties)
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 Group of all found sub-shapes or a single found sub-shape.
@@ -4028,6 +5080,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 anObj = self.ShapesOp.GetInPlaceOld(theShapeWhere, theShapeWhat)
                 pass
             RaiseIfFailed("GetInPlace", self.ShapesOp)
+            self._autoPublish(anObj, theName, "inplace")
             return anObj
 
         ## Get sub-shape(s) of \a theShapeWhere, which are
@@ -4042,10 +5095,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theShapeWhere Shape to find sub-shapes of.
         #  @param theShapeWhat Shape, specifying what to find (must be in the
         #                      building history of the ShapeWhere).
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return Group of all found sub-shapes or a single found sub-shape.
         #
         #  @ref swig_GetInPlace "Example"
-        def GetInPlaceByHistory(self, theShapeWhere, theShapeWhat):
+        def GetInPlaceByHistory(self, theShapeWhere, theShapeWhat, theName=None):
             """
             Implementation of this method is based on a saved history of an operation,
             produced theShapeWhere. The theShapeWhat must be among this operation's
@@ -4057,6 +5114,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theShapeWhere Shape to find sub-shapes of.
                 theShapeWhat Shape, specifying what to find (must be in the
                                 building history of the ShapeWhere).
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 Group of all found sub-shapes or a single found sub-shape.
@@ -4064,16 +5124,21 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestOthers.py
             anObj = self.ShapesOp.GetInPlaceByHistory(theShapeWhere, theShapeWhat)
             RaiseIfFailed("GetInPlaceByHistory", self.ShapesOp)
+            self._autoPublish(anObj, theName, "inplace")
             return anObj
 
         ## Get sub-shape of theShapeWhere, which is
         #  equal to \a theShapeWhat.
         #  @param theShapeWhere Shape to find sub-shape of.
         #  @param theShapeWhat Shape, specifying what to find.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object for found sub-shape.
         #
         #  @ref swig_GetSame "Example"
-        def GetSame(self,theShapeWhere, theShapeWhat):
+        def GetSame(self, theShapeWhere, theShapeWhat, theName=None):
             """
             Get sub-shape of theShapeWhere, which is
             equal to theShapeWhat.
@@ -4081,12 +5146,16 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             Parameters:
                 theShapeWhere Shape to find sub-shape of.
                 theShapeWhat Shape, specifying what to find.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object for found sub-shape.
             """
             anObj = self.ShapesOp.GetSame(theShapeWhere, theShapeWhat)
             RaiseIfFailed("GetSame", self.ShapesOp)
+            self._autoPublish(anObj, theName, "sameShape")
             return anObj
 
 
@@ -4097,7 +5166,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @return List of all found sub-shapes indices. 
         #
         #  @ref swig_GetSame "Example"
-        def GetSameIDs(self,theShapeWhere, theShapeWhat):
+        def GetSameIDs(self, theShapeWhere, theShapeWhat):
             """
             Get sub-shape indices of theShapeWhere, which is
             equal to theShapeWhat.
@@ -4124,23 +5193,31 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  of aShape, selected by their unique IDs inside <VAR>aShape</VAR>
         #  @param aShape Shape to get sub-shape of.
         #  @param ListOfID List of sub-shapes indices.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return Found sub-shape.
         #
         #  @ref swig_all_decompose "Example"
-        def GetSubShape(self, aShape, ListOfID):
+        def GetSubShape(self, aShape, ListOfID, theName=None):
             """
             Obtain a composite sub-shape of aShape, composed from sub-shapes
             of aShape, selected by their unique IDs inside aShape
 
             Parameters:
-               aShape Shape to get sub-shape of.
-               ListOfID List of sub-shapes indices.
+                aShape Shape to get sub-shape of.
+                ListOfID List of sub-shapes indices.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 Found sub-shape.
             """
             # Example: see GEOM_TestAll.py
             anObj = self.AddSubShape(aShape,ListOfID)
+            self._autoPublish(anObj, theName, "subshape")
             return anObj
 
         ## Obtain unique ID of sub-shape <VAR>aSubShape</VAR> inside <VAR>aShape</VAR>
@@ -4166,6 +5243,32 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anID = self.LocalOp.GetSubShapeIndex(aShape, aSubShape)
             RaiseIfFailed("GetSubShapeIndex", self.LocalOp)
             return anID
+            
+        ## Obtain unique IDs of sub-shapes <VAR>aSubShapes</VAR> inside <VAR>aShape</VAR>
+        #  This function is provided for performance purpose. The complexity is O(n) with n
+        #  the number of subobjects of aShape
+        #  @param aShape Shape to get sub-shape of.
+        #  @param aSubShapes Sub-shapes of aShape.
+        #  @return list of IDs of found sub-shapes.
+        #
+        #  @ref swig_all_decompose "Example"
+        def GetSubShapesIDs(self, aShape, aSubShapes):
+            """
+            Obtain a list of IDs of sub-shapes aSubShapes inside aShape
+            This function is provided for performance purpose. The complexity is O(n) with n
+            the number of subobjects of aShape
+
+            Parameters:
+               aShape Shape to get sub-shape of.
+               aSubShapes Sub-shapes of aShape.
+
+            Returns:
+               List of IDs of found sub-shape.
+            """
+            # Example: see GEOM_TestAll.py
+            anIDs = self.ShapesOp.GetSubShapesIndices(aShape, aSubShapes)
+            RaiseIfFailed("GetSubShapesIndices", self.ShapesOp)
+            return anIDs
 
         # end of l4_access
         ## @}
@@ -4225,17 +5328,24 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  If the shape itself matches the type, it is also returned.
         #  @param aShape Shape to be exploded.
         #  @param aType Type of sub-shapes to be retrieved (see ShapeType()) 
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return List of sub-shapes of type theShapeType, contained in theShape.
         #
         #  @ref swig_all_decompose "Example"
-        def SubShapeAll(self, aShape, aType):
+        def SubShapeAll(self, aShape, aType, theName=None):
             """
             Explode a shape on sub-shapes of a given type.
             If the shape itself matches the type, it is also returned.
 
             Parameters:
                 aShape Shape to be exploded.
-                aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
+                aType Type of sub-shapes to be retrieved (see geompy.ShapeType) 
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 List of sub-shapes of type theShapeType, contained in theShape.
@@ -4243,6 +5353,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             ListObj = self.ShapesOp.MakeAllSubShapes(aShape, EnumToLong( aType ), False)
             RaiseIfFailed("SubShapeAll", self.ShapesOp)
+            self._autoPublish(ListObj, theName, "subshape")
             return ListObj
 
         ## Explode a shape on sub-shapes of a given type.
@@ -4272,10 +5383,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param aShape Shape to get sub-shape of.
         #  @param ListOfInd List of sub-shapes indices.
         #  @param aType Type of sub-shapes to be retrieved (see ShapeType())
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return A compound of sub-shapes of aShape.
         #
         #  @ref swig_all_decompose "Example"
-        def SubShape(self, aShape, aType, ListOfInd):
+        def SubShape(self, aShape, aType, ListOfInd, theName=None):
             """
             Obtain a compound of sub-shapes of aShape,
             selected by they indices in list of all sub-shapes of type aType.
@@ -4285,6 +5400,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 aShape Shape to get sub-shape of.
                 ListOfID List of sub-shapes indices.
                 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 A compound of sub-shapes of aShape.
@@ -4294,7 +5412,8 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             AllShapeIDsList = self.SubShapeAllIDs(aShape, EnumToLong( aType ))
             for ind in ListOfInd:
                 ListOfIDs.append(AllShapeIDsList[ind - 1])
-            anObj = self.GetSubShape(aShape, ListOfIDs)
+            # note: auto-publishing is done in self.GetSubShape()
+            anObj = self.GetSubShape(aShape, ListOfIDs, theName)
             return anObj
 
         ## Explode a shape on sub-shapes of a given type.
@@ -4302,10 +5421,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  If the shape itself matches the type, it is also returned.
         #  @param aShape Shape to be exploded.
         #  @param aType Type of sub-shapes to be retrieved (see ShapeType())
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return List of sub-shapes of type theShapeType, contained in theShape.
         #
         #  @ref swig_SubShapeAllSorted "Example"
-        def SubShapeAllSortedCentres(self, aShape, aType):
+        def SubShapeAllSortedCentres(self, aShape, aType, theName=None):
             """
             Explode a shape on sub-shapes of a given type.
             Sub-shapes will be sorted by coordinates of their gravity centers.
@@ -4314,6 +5437,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             Parameters: 
                 aShape Shape to be exploded.
                 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 List of sub-shapes of type theShapeType, contained in theShape.
@@ -4321,6 +5447,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             ListObj = self.ShapesOp.MakeAllSubShapes(aShape, EnumToLong( aType ), True)
             RaiseIfFailed("SubShapeAllSortedCentres", self.ShapesOp)
+            self._autoPublish(ListObj, theName, "subshape")
             return ListObj
 
         ## Explode a shape on sub-shapes of a given type.
@@ -4352,10 +5479,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param aShape Shape to get sub-shape of.
         #  @param ListOfInd List of sub-shapes indices.
         #  @param aType Type of sub-shapes to be retrieved (see ShapeType())
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return A compound of sub-shapes of aShape.
         #
         #  @ref swig_all_decompose "Example"
-        def SubShapeSortedCentres(self, aShape, aType, ListOfInd):
+        def SubShapeSortedCentres(self, aShape, aType, ListOfInd, theName=None):
             """
             Obtain a compound of sub-shapes of aShape,
             selected by they indices in sorted list of all sub-shapes of type aType.
@@ -4365,6 +5496,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 aShape Shape to get sub-shape of.
                 ListOfID List of sub-shapes indices.
                 aType Type of sub-shapes to be retrieved (see geompy.ShapeType)
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 A compound of sub-shapes of aShape.
@@ -4374,17 +5508,22 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             AllShapeIDsList = self.SubShapeAllSortedCentresIDs(aShape, EnumToLong( aType ))
             for ind in ListOfInd:
                 ListOfIDs.append(AllShapeIDsList[ind - 1])
-            anObj = self.GetSubShape(aShape, ListOfIDs)
+            # note: auto-publishing is done in self.GetSubShape()
+            anObj = self.GetSubShape(aShape, ListOfIDs, theName)
             return anObj
 
         ## Extract shapes (excluding the main shape) of given type.
         #  @param aShape The shape.
         #  @param aType  The shape type (see ShapeType())
         #  @param isSorted Boolean flag to switch sorting on/off.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return List of sub-shapes of type aType, contained in aShape.
         #
         #  @ref swig_FilletChamfer "Example"
-        def ExtractShapes(self, aShape, aType, isSorted = False):
+        def ExtractShapes(self, aShape, aType, isSorted = False, theName=None):
             """
             Extract shapes (excluding the main shape) of given type.
 
@@ -4392,6 +5531,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 aShape The shape.
                 aType  The shape type (see geompy.ShapeType)
                 isSorted Boolean flag to switch sorting on/off.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:     
                 List of sub-shapes of type aType, contained in aShape.
@@ -4399,21 +5541,28 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             ListObj = self.ShapesOp.ExtractSubShapes(aShape, EnumToLong( aType ), isSorted)
             RaiseIfFailed("ExtractSubShapes", self.ShapesOp)
+            self._autoPublish(ListObj, theName, "subshape")
             return ListObj
 
         ## Get a set of sub-shapes defined by their unique IDs inside <VAR>aShape</VAR>
         #  @param aShape Main shape.
         #  @param anIDs List of unique IDs of sub-shapes inside <VAR>aShape</VAR>.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
         #  @return List of GEOM.GEOM_Object, corresponding to found sub-shapes.
         #
         #  @ref swig_all_decompose "Example"
-        def SubShapes(self, aShape, anIDs):
+        def SubShapes(self, aShape, anIDs, theName=None):
             """
             Get a set of sub-shapes defined by their unique IDs inside theMainShape
 
             Parameters:
                 aShape Main shape.
                 anIDs List of unique IDs of sub-shapes inside theMainShape.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:      
                 List of GEOM.GEOM_Object, corresponding to found sub-shapes.
@@ -4421,6 +5570,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             ListObj = self.ShapesOp.MakeSubShapes(aShape, anIDs)
             RaiseIfFailed("SubShapes", self.ShapesOp)
+            self._autoPublish(ListObj, theName, "subshape")
             return ListObj
 
         # end of l4_decompose
@@ -4432,7 +5582,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         ## Deprecated method
         #  It works like SubShapeAllSortedCentres(), but wrongly
         #  defines centres of faces, shells and solids.
-        def SubShapeAllSorted(self, aShape, aType):
+        def SubShapeAllSorted(self, aShape, aType, theName=None):
             """
             Deprecated method
             It works like geompy.SubShapeAllSortedCentres, but wrongly
@@ -4440,6 +5590,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             """
             ListObj = self.ShapesOp.MakeExplode(aShape, EnumToLong( aType ), True)
             RaiseIfFailed("MakeExplode", self.ShapesOp)
+            self._autoPublish(ListObj, theName, "subshape")
             return ListObj
 
         ## Deprecated method
@@ -4458,7 +5609,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         ## Deprecated method
         #  It works like SubShapeSortedCentres(), but has a bug
         #  (wrongly defines centres of faces, shells and solids).
-        def SubShapeSorted(self, aShape, aType, ListOfInd):
+        def SubShapeSorted(self, aShape, aType, ListOfInd, theName=None):
             """
             Deprecated method
             It works like geompy.SubShapeSortedCentres, but has a bug
@@ -4468,7 +5619,8 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             AllShapeIDsList = self.SubShapeAllSortedIDs(aShape, EnumToLong( aType ))
             for ind in ListOfInd:
                 ListOfIDs.append(AllShapeIDsList[ind - 1])
-            anObj = self.GetSubShape(aShape, ListOfIDs)
+            # note: auto-publishing is done in self.GetSubShape()
+            anObj = self.GetSubShape(aShape, ListOfIDs, theName)
             return anObj
 
         # end of l4_decompose_d
@@ -4484,7 +5636,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #                    ("FixShape.Tolerance3d", "SplitClosedFaces.NbSplitPoints", etc.).
         #  @param theValues List of values of parameters, in the same order
         #                    as parameters are listed in <VAR>theParameters</VAR> list.
-        #
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
         #
         #  <b> Operators and Parameters: </b> \n
         #
@@ -4556,7 +5710,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @return New GEOM.GEOM_Object, containing processed shape.
         #
         #  \n @ref tui_shape_processing "Example"
-        def ProcessShape(self, theShape, theOperators, theParameters, theValues):
+        def ProcessShape(self, theShape, theOperators, theParameters, theValues, theName=None):
             """
             Apply a sequence of Shape Healing operators to the given object.
 
@@ -4567,7 +5721,11 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theOperators List of names of operators ("FixShape", "SplitClosedFaces", etc.).
                 theParameters List of names of parameters
                               ("FixShape.Tolerance3d", "SplitClosedFaces.NbSplitPoints", etc.).
-                 Operators and Parameters:
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
+
+                Operators and Parameters:
 
                  * FixShape - corrects invalid shapes.
                      * FixShape.Tolerance3d - work tolerance for detection of the problems and correction of them.
@@ -4646,16 +5804,21 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 Parameters = ":" + Parameters
                 pass
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "healed")
             return anObj
 
         ## Remove faces from the given object (shape).
         #  @param theObject Shape to be processed.
         #  @param theFaces Indices of faces to be removed, if EMPTY then the method
         #                  removes ALL faces of the given object.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing processed shape.
         #
         #  @ref tui_suppress_faces "Example"
-        def SuppressFaces(self,theObject, theFaces):
+        def SuppressFaces(self, theObject, theFaces, theName=None):
             """
             Remove faces from the given object (shape).
 
@@ -4663,6 +5826,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theObject Shape to be processed.
                 theFaces Indices of faces to be removed, if EMPTY then the method
                          removes ALL faces of the given object.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing processed shape.
@@ -4670,41 +5836,57 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestHealing.py
             anObj = self.HealOp.SuppressFaces(theObject, theFaces)
             RaiseIfFailed("SuppressFaces", self.HealOp)
+            self._autoPublish(anObj, theName, "suppressFaces")
             return anObj
 
         ## Sewing of some shapes into single shape.
         #  @param ListShape Shapes to be processed.
         #  @param theTolerance Required tolerance value.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing processed shape.
         #
         #  @ref tui_sewing "Example"
-        def MakeSewing(self, ListShape, theTolerance):
+        def MakeSewing(self, ListShape, theTolerance, theName=None):
             """
             Sewing of some shapes into single shape.
 
             Parameters:
                 ListShape Shapes to be processed.
                 theTolerance Required tolerance value.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing processed shape.
             """
             # Example: see GEOM_TestHealing.py
             comp = self.MakeCompound(ListShape)
-            anObj = self.Sew(comp, theTolerance)
+            # note: auto-publishing is done in self.Sew()
+            anObj = self.Sew(comp, theTolerance, theName)
             return anObj
 
         ## Sewing of the given object.
         #  @param theObject Shape to be processed.
         #  @param theTolerance Required tolerance value.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing processed shape.
-        def Sew(self, theObject, theTolerance):
+        def Sew(self, theObject, theTolerance, theName=None):
             """
             Sewing of the given object.
 
             Parameters:
                 theObject Shape to be processed.
                 theTolerance Required tolerance value.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing processed shape.
@@ -4714,16 +5896,21 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.HealOp.Sew(theObject, theTolerance)
             RaiseIfFailed("Sew", self.HealOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "sewed")
             return anObj
 
         ## Remove internal wires and edges from the given object (face).
         #  @param theObject Shape to be processed.
         #  @param theWires Indices of wires to be removed, if EMPTY then the method
         #                  removes ALL internal wires of the given object.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing processed shape.
         #
         #  @ref tui_suppress_internal_wires "Example"
-        def SuppressInternalWires(self,theObject, theWires):
+        def SuppressInternalWires(self, theObject, theWires, theName=None):
             """
             Remove internal wires and edges from the given object (face).
 
@@ -4731,6 +5918,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theObject Shape to be processed.
                 theWires Indices of wires to be removed, if EMPTY then the method
                          removes ALL internal wires of the given object.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:                
                 New GEOM.GEOM_Object, containing processed shape.
@@ -4738,16 +5928,21 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestHealing.py
             anObj = self.HealOp.RemoveIntWires(theObject, theWires)
             RaiseIfFailed("RemoveIntWires", self.HealOp)
+            self._autoPublish(anObj, theName, "suppressWires")
             return anObj
 
         ## Remove internal closed contours (holes) from the given object.
         #  @param theObject Shape to be processed.
         #  @param theWires Indices of wires to be removed, if EMPTY then the method
         #                  removes ALL internal holes of the given object
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing processed shape.
         #
         #  @ref tui_suppress_holes "Example"
-        def SuppressHoles(self,theObject, theWires):
+        def SuppressHoles(self, theObject, theWires, theName=None):
             """
             Remove internal closed contours (holes) from the given object.
 
@@ -4755,6 +5950,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theObject Shape to be processed.
                 theWires Indices of wires to be removed, if EMPTY then the method
                          removes ALL internal holes of the given object
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:    
                 New GEOM.GEOM_Object, containing processed shape.
@@ -4762,6 +5960,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestHealing.py
             anObj = self.HealOp.FillHoles(theObject, theWires)
             RaiseIfFailed("FillHoles", self.HealOp)
+            self._autoPublish(anObj, theName, "suppressHoles")
             return anObj
 
         ## Close an open wire.
@@ -4770,10 +5969,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #                  if [ ], then <VAR>theObject</VAR> itself is a wire.
         #  @param isCommonVertex If True  : closure by creation of a common vertex,
         #                        If False : closure by creation of an edge between ends.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing processed shape.
         #
         #  @ref tui_close_contour "Example"
-        def CloseContour(self,theObject, theWires, isCommonVertex):
+        def CloseContour(self,theObject, theWires, isCommonVertex, theName=None):
             """
             Close an open wire.
 
@@ -4783,6 +5986,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                          if [ ], then theObject itself is a wire.
                 isCommonVertex If True  : closure by creation of a common vertex,
                                If False : closure by creation of an edge between ends.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:                      
                 New GEOM.GEOM_Object, containing processed shape. 
@@ -4790,6 +5996,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestHealing.py
             anObj = self.HealOp.CloseContour(theObject, theWires, isCommonVertex)
             RaiseIfFailed("CloseContour", self.HealOp)
+            self._autoPublish(anObj, theName, "closeContour")
             return anObj
 
         ## Addition of a point to a given edge object.
@@ -4800,10 +6007,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #                  depending on \a isByParameter.
         #  @param isByParameter If TRUE : \a theValue is treated as a curve parameter [0..1], \n
         #                       if FALSE : \a theValue is treated as a length parameter [0..1]
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing processed shape.
         #
         #  @ref tui_add_point_on_edge "Example"
-        def DivideEdge(self,theObject, theEdgeIndex, theValue, isByParameter):
+        def DivideEdge(self, theObject, theEdgeIndex, theValue, isByParameter, theName=None):
             """
             Addition of a point to a given edge object.
 
@@ -4815,6 +6026,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                          depending on isByParameter.
                 isByParameter If TRUE :  theValue is treated as a curve parameter [0..1],
                               if FALSE : theValue is treated as a length parameter [0..1]
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:  
                 New GEOM.GEOM_Object, containing processed shape.
@@ -4824,16 +6038,21 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.HealOp.DivideEdge(theObject, theEdgeIndex, theValue, isByParameter)
             RaiseIfFailed("DivideEdge", self.HealOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "divideEdge")
             return anObj
 
         ## Suppress the vertices in the wire in case if adjacent edges are C1 continuous.
         #  @param theWire Wire to minimize the number of C1 continuous edges in.
         #  @param theVertices A list of vertices to suppress. If the list
         #                     is empty, all vertices in a wire will be assumed.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object with modified wire.
         #
         #  @ref tui_fuse_collinear_edges "Example"
-        def FuseCollinearEdgesWithinWire(self, theWire, theVertices = []):
+        def FuseCollinearEdgesWithinWire(self, theWire, theVertices = [], theName=None):
             """
             Suppress the vertices in the wire in case if adjacent edges are C1 continuous.
 
@@ -4841,12 +6060,16 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theWire Wire to minimize the number of C1 continuous edges in.
                 theVertices A list of vertices to suppress. If the list
                             is empty, all vertices in a wire will be assumed.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:  
                 New GEOM.GEOM_Object with modified wire.
             """
             anObj = self.HealOp.FuseCollinearEdgesWithinWire(theWire, theVertices)
             RaiseIfFailed("FuseCollinearEdgesWithinWire", self.HealOp)
+            self._autoPublish(anObj, theName, "fuseEdges")
             return anObj
 
         ## Change orientation of the given object. Updates given shape.
@@ -4870,60 +6093,83 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
 
         ## Change orientation of the given object.
         #  @param theObject Shape to be processed.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing processed shape.
         #
         #  @ref swig_todo "Example"
-        def ChangeOrientationShellCopy(self, theObject):
+        def ChangeOrientationShellCopy(self, theObject, theName=None):
             """
             Change orientation of the given object.
 
             Parameters:
                 theObject Shape to be processed.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:   
                 New GEOM.GEOM_Object, containing processed shape.
             """
             anObj = self.HealOp.ChangeOrientationCopy(theObject)
             RaiseIfFailed("ChangeOrientationCopy", self.HealOp)
+            self._autoPublish(anObj, theName, "reversed")
             return anObj
 
         ## Try to limit tolerance of the given object by value \a theTolerance.
         #  @param theObject Shape to be processed.
         #  @param theTolerance Required tolerance value.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing processed shape.
         #
         #  @ref tui_limit_tolerance "Example"
-        def LimitTolerance(self, theObject, theTolerance = 1e-07):
+        def LimitTolerance(self, theObject, theTolerance = 1e-07, theName=None):
             """
             Try to limit tolerance of the given object by value theTolerance.
 
             Parameters:
                 theObject Shape to be processed.
                 theTolerance Required tolerance value.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:   
                 New GEOM.GEOM_Object, containing processed shape.
             """
             anObj = self.HealOp.LimitTolerance(theObject, theTolerance)
             RaiseIfFailed("LimitTolerance", self.HealOp)
+            self._autoPublish(anObj, theName, "limitTolerance")
             return anObj
 
         ## Get a list of wires (wrapped in GEOM.GEOM_Object-s),
         #  that constitute a free boundary of the given shape.
         #  @param theObject Shape to get free boundary of.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return [\a status, \a theClosedWires, \a theOpenWires]
         #  \n \a status: FALSE, if an error(s) occured during the method execution.
         #  \n \a theClosedWires: Closed wires on the free boundary of the given shape.
         #  \n \a theOpenWires: Open wires on the free boundary of the given shape.
         #
         #  @ref tui_measurement_tools_page "Example"
-        def GetFreeBoundary(self, theObject):
+        def GetFreeBoundary(self, theObject, theName=None):
             """
             Get a list of wires (wrapped in GEOM.GEOM_Object-s),
             that constitute a free boundary of the given shape.
 
             Parameters:
                 theObject Shape to get free boundary of.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 [status, theClosedWires, theOpenWires]
@@ -4934,6 +6180,8 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestHealing.py
             anObj = self.HealOp.GetFreeBoundary(theObject)
             RaiseIfFailed("GetFreeBoundary", self.HealOp)
+            self._autoPublish(anObj[1], theName, "closedWire")
+            self._autoPublish(anObj[2], theName, "openWire")
             return anObj
 
         ## Replace coincident faces in theShape by one face.
@@ -4941,10 +6189,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theTolerance Maximum distance between faces, which can be considered as coincident.
         #  @param doKeepNonSolids If FALSE, only solids will present in the result,
         #                         otherwise all initial shapes.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing a copy of theShape without coincident faces.
         #
         #  @ref tui_glue_faces "Example"
-        def MakeGlueFaces(self, theShape, theTolerance, doKeepNonSolids=True):
+        def MakeGlueFaces(self, theShape, theTolerance, doKeepNonSolids=True, theName=None):
             """
             Replace coincident faces in theShape by one face.
 
@@ -4953,6 +6205,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theTolerance Maximum distance between faces, which can be considered as coincident.
                 doKeepNonSolids If FALSE, only solids will present in the result,
                                 otherwise all initial shapes.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing a copy of theShape without coincident faces.
@@ -4963,16 +6218,21 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             if anObj is None:
                 raise RuntimeError, "MakeGlueFaces : " + self.ShapesOp.GetErrorCode()
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "glueFaces")
             return anObj
 
         ## Find coincident faces in theShape for possible gluing.
         #  @param theShape Initial shape.
         #  @param theTolerance Maximum distance between faces,
         #                      which can be considered as coincident.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return GEOM.ListOfGO
         #
         #  @ref tui_glue_faces "Example"
-        def GetGlueFaces(self, theShape, theTolerance):
+        def GetGlueFaces(self, theShape, theTolerance, theName=None):
             """
             Find coincident faces in theShape for possible gluing.
 
@@ -4980,12 +6240,16 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theShape Initial shape.
                 theTolerance Maximum distance between faces,
                              which can be considered as coincident.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:                    
                 GEOM.ListOfGO
             """
             anObj = self.ShapesOp.GetGlueFaces(theShape, theTolerance)
             RaiseIfFailed("GetGlueFaces", self.ShapesOp)
+            self._autoPublish(anObj, theName, "facesToGlue")
             return anObj
 
         ## Replace coincident faces in theShape by one face
@@ -4999,12 +6263,16 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param doGlueAllEdges If TRUE, all coincident edges of <VAR>theShape</VAR>
         #                        will be glued, otherwise only the edges,
         #                        belonging to <VAR>theFaces</VAR>.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing a copy of theShape
         #          without some faces.
         #
         #  @ref tui_glue_faces "Example"
         def MakeGlueFacesByList(self, theShape, theTolerance, theFaces,
-                                doKeepNonSolids=True, doGlueAllEdges=True):
+                                doKeepNonSolids=True, doGlueAllEdges=True, theName=None):
             """
             Replace coincident faces in theShape by one face
             in compliance with given list of faces
@@ -5019,6 +6287,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 doGlueAllEdges If TRUE, all coincident edges of theShape
                                will be glued, otherwise only the edges,
                                belonging to theFaces.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing a copy of theShape
@@ -5028,21 +6299,29 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                                                       doKeepNonSolids, doGlueAllEdges)
             if anObj is None:
                 raise RuntimeError, "MakeGlueFacesByList : " + self.ShapesOp.GetErrorCode()
+            self._autoPublish(anObj, theName, "glueFaces")
             return anObj
 
         ## Replace coincident edges in theShape by one edge.
         #  @param theShape Initial shape.
         #  @param theTolerance Maximum distance between edges, which can be considered as coincident.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing a copy of theShape without coincident edges.
         #
         #  @ref tui_glue_edges "Example"
-        def MakeGlueEdges(self, theShape, theTolerance):
+        def MakeGlueEdges(self, theShape, theTolerance, theName=None):
             """
             Replace coincident edges in theShape by one edge.
 
             Parameters:
                 theShape Initial shape.
                 theTolerance Maximum distance between edges, which can be considered as coincident.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:    
                 New GEOM.GEOM_Object, containing a copy of theShape without coincident edges.
@@ -5052,16 +6331,21 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             if anObj is None:
                 raise RuntimeError, "MakeGlueEdges : " + self.ShapesOp.GetErrorCode()
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "glueEdges")
             return anObj
 
         ## Find coincident edges in theShape for possible gluing.
         #  @param theShape Initial shape.
         #  @param theTolerance Maximum distance between edges,
         #                      which can be considered as coincident.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return GEOM.ListOfGO
         #
         #  @ref tui_glue_edges "Example"
-        def GetGlueEdges(self, theShape, theTolerance):
+        def GetGlueEdges(self, theShape, theTolerance, theName=None):
             """
             Find coincident edges in theShape for possible gluing.
 
@@ -5069,12 +6353,16 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theShape Initial shape.
                 theTolerance Maximum distance between edges,
                              which can be considered as coincident.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:                         
                 GEOM.ListOfGO
             """
             anObj = self.ShapesOp.GetGlueEdges(theShape, theTolerance)
             RaiseIfFailed("GetGlueEdges", self.ShapesOp)
+            self._autoPublish(anObj, theName, "edgesToGlue")
             return anObj
 
         ## Replace coincident edges in theShape by one edge
@@ -5083,11 +6371,15 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theTolerance Maximum distance between edges,
         #                      which can be considered as coincident.
         #  @param theEdges List of edges for gluing.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing a copy of theShape
         #          without some edges.
         #
         #  @ref tui_glue_edges "Example"
-        def MakeGlueEdgesByList(self, theShape, theTolerance, theEdges):
+        def MakeGlueEdgesByList(self, theShape, theTolerance, theEdges, theName=None):
             """
             Replace coincident edges in theShape by one edge
             in compliance with given list of edges.
@@ -5097,6 +6389,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theTolerance Maximum distance between edges,
                              which can be considered as coincident.
                 theEdges List of edges for gluing.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:  
                 New GEOM.GEOM_Object, containing a copy of theShape
@@ -5105,6 +6400,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.ShapesOp.MakeGlueEdgesByList(theShape, theTolerance, theEdges)
             if anObj is None:
                 raise RuntimeError, "MakeGlueEdgesByList : " + self.ShapesOp.GetErrorCode()
+            self._autoPublish(anObj, theName, "glueEdges")
             return anObj
 
         # end of l3_healing
@@ -5122,10 +6418,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theShape2 Second argument for boolean operation.
         #  @param theOperation Indicates the operation to be done:\n
         #                      1 - Common, 2 - Cut, 3 - Fuse, 4 - Section.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the result shape.
         #
         #  @ref tui_fuse "Example"
-        def MakeBoolean(self,theShape1, theShape2, theOperation):
+        def MakeBoolean(self, theShape1, theShape2, theOperation, theName=None):
             """
             Perform one of boolean operations on two given shapes.
 
@@ -5134,6 +6434,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theShape2 Second argument for boolean operation.
                 theOperation Indicates the operation to be done:
                              1 - Common, 2 - Cut, 3 - Fuse, 4 - Section.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:   
                 New GEOM.GEOM_Object, containing the result shape.
@@ -5141,94 +6444,128 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.BoolOp.MakeBoolean(theShape1, theShape2, theOperation)
             RaiseIfFailed("MakeBoolean", self.BoolOp)
+            def_names = { 1: "common", 2: "cut", 3: "fuse", 4: "section" }
+            self._autoPublish(anObj, theName, def_names[theOperation])
             return anObj
 
         ## Perform Common boolean operation on two given shapes.
         #  @param theShape1 First argument for boolean operation.
         #  @param theShape2 Second argument for boolean operation.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the result shape.
         #
         #  @ref tui_common "Example 1"
         #  \n @ref swig_MakeCommon "Example 2"
-        def MakeCommon(self, theShape1, theShape2):
+        def MakeCommon(self, theShape1, theShape2, theName=None):
             """
             Perform Common boolean operation on two given shapes.
 
             Parameters: 
                 theShape1 First argument for boolean operation.
                 theShape2 Second argument for boolean operation.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
+
             Returns:   
                 New GEOM.GEOM_Object, containing the result shape.
             """
             # Example: see GEOM_TestOthers.py
-            return self.MakeBoolean(theShape1, theShape2, 1)
+            # note: auto-publishing is done in self.MakeBoolean()
+            return self.MakeBoolean(theShape1, theShape2, 1, theName)
 
         ## Perform Cut boolean operation on two given shapes.
         #  @param theShape1 First argument for boolean operation.
         #  @param theShape2 Second argument for boolean operation.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the result shape.
         #
         #  @ref tui_cut "Example 1"
         #  \n @ref swig_MakeCommon "Example 2"
-        def MakeCut(self, theShape1, theShape2):
+        def MakeCut(self, theShape1, theShape2, theName=None):
             """
             Perform Cut boolean operation on two given shapes.
 
             Parameters: 
                 theShape1 First argument for boolean operation.
                 theShape2 Second argument for boolean operation.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
+
             Returns:   
                 New GEOM.GEOM_Object, containing the result shape.
             
             """
             # Example: see GEOM_TestOthers.py
-            return self.MakeBoolean(theShape1, theShape2, 2)
+            # note: auto-publishing is done in self.MakeBoolean()
+            return self.MakeBoolean(theShape1, theShape2, 2, theName)
 
         ## Perform Fuse boolean operation on two given shapes.
         #  @param theShape1 First argument for boolean operation.
         #  @param theShape2 Second argument for boolean operation.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the result shape.
         #
         #  @ref tui_fuse "Example 1"
         #  \n @ref swig_MakeCommon "Example 2"
-        def MakeFuse(self, theShape1, theShape2):
+        def MakeFuse(self, theShape1, theShape2, theName=None):
             """
             Perform Fuse boolean operation on two given shapes.
 
             Parameters: 
                 theShape1 First argument for boolean operation.
                 theShape2 Second argument for boolean operation.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
+
             Returns:   
                 New GEOM.GEOM_Object, containing the result shape.
             
             """
             # Example: see GEOM_TestOthers.py
-            return self.MakeBoolean(theShape1, theShape2, 3)
+            # note: auto-publishing is done in self.MakeBoolean()
+            return self.MakeBoolean(theShape1, theShape2, 3, theName)
 
         ## Perform Section boolean operation on two given shapes.
         #  @param theShape1 First argument for boolean operation.
         #  @param theShape2 Second argument for boolean operation.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the result shape.
         #
         #  @ref tui_section "Example 1"
         #  \n @ref swig_MakeCommon "Example 2"
-        def MakeSection(self, theShape1, theShape2):
+        def MakeSection(self, theShape1, theShape2, theName=None):
             """
             Perform Section boolean operation on two given shapes.
 
             Parameters: 
                 theShape1 First argument for boolean operation.
                 theShape2 Second argument for boolean operation.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
+
             Returns:   
                 New GEOM.GEOM_Object, containing the result shape.
             
             """
             # Example: see GEOM_TestOthers.py
-            return self.MakeBoolean(theShape1, theShape2, 4)
+            # note: auto-publishing is done in self.MakeBoolean()
+            return self.MakeBoolean(theShape1, theShape2, 4, theName)
 
         # end of l3_boolean
         ## @}
@@ -5246,6 +6583,10 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #                             target type (equal to Limit) are kept in the result,
         #                             else standalone shapes of lower dimension
         #                             are kept also (if they exist).
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @note Each compound from ListShapes and ListTools will be exploded
         #        in order to avoid possible intersection between shapes from this compound.
         #
@@ -5265,7 +6606,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @ref tui_partition "Example"
         def MakePartition(self, ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[],
                           Limit=ShapeType["AUTO"], RemoveWebs=0, ListMaterials=[],
-                          KeepNonlimitShapes=0):
+                          KeepNonlimitShapes=0, theName=None):
             """
             Perform partition operation.
 
@@ -5279,6 +6620,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                                     target type (equal to Limit) are kept in the result,
                                     else standalone shapes of lower dimension
                                     are kept also (if they exist).
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
             Note:
                     Each compound from ListShapes and ListTools will be exploded
                     in order to avoid possible intersection between shapes from
@@ -5311,6 +6655,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                                               Limit, RemoveWebs, ListMaterials,
                                               KeepNonlimitShapes);
             RaiseIfFailed("MakePartition", self.BoolOp)
+            self._autoPublish(anObj, theName, "partition")
             return anObj
 
         ## Perform partition operation.
@@ -5329,7 +6674,8 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         def MakePartitionNonSelfIntersectedShape(self, ListShapes, ListTools=[],
                                                  ListKeepInside=[], ListRemoveInside=[],
                                                  Limit=ShapeType["AUTO"], RemoveWebs=0,
-                                                 ListMaterials=[], KeepNonlimitShapes=0):
+                                                 ListMaterials=[], KeepNonlimitShapes=0,
+                                                 theName=None):
             """
             Perform partition operation.
             This method may be useful if it is needed to make a partition for
@@ -5357,6 +6703,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                                                                      Limit, RemoveWebs, ListMaterials,
                                                                      KeepNonlimitShapes);
             RaiseIfFailed("MakePartitionNonSelfIntersectedShape", self.BoolOp)
+            self._autoPublish(anObj, theName, "partition")
             return anObj
 
         ## See method MakePartition() for more information.
@@ -5365,30 +6712,38 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  \n @ref swig_Partition "Example 2"
         def Partition(self, ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[],
                       Limit=ShapeType["AUTO"], RemoveWebs=0, ListMaterials=[],
-                      KeepNonlimitShapes=0):
+                      KeepNonlimitShapes=0, theName=None):
             """
             See method geompy.MakePartition for more information.
             """
             # Example: see GEOM_TestOthers.py
+            # note: auto-publishing is done in self.MakePartition()
             anObj = self.MakePartition(ListShapes, ListTools,
                                        ListKeepInside, ListRemoveInside,
                                        Limit, RemoveWebs, ListMaterials,
-                                       KeepNonlimitShapes);
+                                       KeepNonlimitShapes, theName);
             return anObj
 
         ## Perform partition of the Shape with the Plane
         #  @param theShape Shape to be intersected.
         #  @param thePlane Tool shape, to intersect theShape.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the result shape.
         #
         #  @ref tui_partition "Example"
-        def MakeHalfPartition(self,theShape, thePlane):
+        def MakeHalfPartition(self, theShape, thePlane, theName=None):
             """
             Perform partition of the Shape with the Plane
 
             Parameters: 
                 theShape Shape to be intersected.
                 thePlane Tool shape, to intersect theShape.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:  
                 New GEOM.GEOM_Object, containing the result shape.
@@ -5396,6 +6751,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.BoolOp.MakeHalfPartition(theShape, thePlane)
             RaiseIfFailed("MakeHalfPartition", self.BoolOp)
+            self._autoPublish(anObj, theName, "partition")
             return anObj
 
         # end of l3_basic_op
@@ -5404,16 +6760,49 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         ## @addtogroup l3_transform
         ## @{
 
+        ## Translate the given object along the vector, specified
+        #  by its end points.
+        #  @param theObject The object to be translated.
+        #  @param thePoint1 Start point of translation vector.
+        #  @param thePoint2 End point of translation vector.
+        #  @param theCopy Flag used to translate object itself or create a copy.
+        #  @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
+        #  new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
+        def TranslateTwoPoints(self, theObject, thePoint1, thePoint2, theCopy=False):
+            """
+            Translate the given object along the vector, specified by its end points.
+
+            Parameters: 
+                theObject The object to be translated.
+                thePoint1 Start point of translation vector.
+                thePoint2 End point of translation vector.
+                theCopy Flag used to translate object itself or create a copy.
+
+            Returns: 
+                Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
+                new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
+            """
+            if theCopy:
+                anObj = self.TrsfOp.TranslateTwoPointsCopy(theObject, thePoint1, thePoint2)
+            else:
+                anObj = self.TrsfOp.TranslateTwoPoints(theObject, thePoint1, thePoint2)
+            RaiseIfFailed("TranslateTwoPoints", self.TrsfOp)
+            return anObj
+
         ## Translate the given object along the vector, specified
         #  by its end points, creating its copy before the translation.
         #  @param theObject The object to be translated.
         #  @param thePoint1 Start point of translation vector.
         #  @param thePoint2 End point of translation vector.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the translated object.
         #
         #  @ref tui_translation "Example 1"
         #  \n @ref swig_MakeTranslationTwoPoints "Example 2"
-        def MakeTranslationTwoPoints(self,theObject, thePoint1, thePoint2):
+        def MakeTranslationTwoPoints(self, theObject, thePoint1, thePoint2, theName=None):
             """
             Translate the given object along the vector, specified
             by its end points, creating its copy before the translation.
@@ -5422,6 +6811,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theObject The object to be translated.
                 thePoint1 Start point of translation vector.
                 thePoint2 End point of translation vector.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:  
                 New GEOM.GEOM_Object, containing the translated object.
@@ -5429,28 +6821,36 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.TrsfOp.TranslateTwoPointsCopy(theObject, thePoint1, thePoint2)
             RaiseIfFailed("TranslateTwoPointsCopy", self.TrsfOp)
+            self._autoPublish(anObj, theName, "translated")
             return anObj
 
         ## Translate the given object along the vector, specified by its components.
         #  @param theObject The object to be translated.
         #  @param theDX,theDY,theDZ Components of translation vector.
-        #  @return Translated GEOM.GEOM_Object.
+        #  @param theCopy Flag used to translate object itself or create a copy.
+        #  @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
+        #  new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
         #
         #  @ref tui_translation "Example"
-        def TranslateDXDYDZ(self,theObject, theDX, theDY, theDZ):
+        def TranslateDXDYDZ(self, theObject, theDX, theDY, theDZ, theCopy=False):
             """
             Translate the given object along the vector, specified by its components.
 
             Parameters: 
                 theObject The object to be translated.
                 theDX,theDY,theDZ Components of translation vector.
+                theCopy Flag used to translate object itself or create a copy.
 
             Returns: 
-                Translated GEOM.GEOM_Object.
+                Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
+                new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
             """
             # Example: see GEOM_TestAll.py
             theDX, theDY, theDZ, Parameters = ParseParameters(theDX, theDY, theDZ)
-            anObj = self.TrsfOp.TranslateDXDYDZ(theObject, theDX, theDY, theDZ)
+            if theCopy:
+                anObj = self.TrsfOp.TranslateDXDYDZCopy(theObject, theDX, theDY, theDZ)
+            else:
+                anObj = self.TrsfOp.TranslateDXDYDZ(theObject, theDX, theDY, theDZ)
             anObj.SetParameters(Parameters)
             RaiseIfFailed("TranslateDXDYDZ", self.TrsfOp)
             return anObj
@@ -5459,10 +6859,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  by its components, creating its copy before the translation.
         #  @param theObject The object to be translated.
         #  @param theDX,theDY,theDZ Components of translation vector.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the translated object.
         #
         #  @ref tui_translation "Example"
-        def MakeTranslation(self,theObject, theDX, theDY, theDZ):
+        def MakeTranslation(self,theObject, theDX, theDY, theDZ, theName=None):
             """
             Translate the given object along the vector, specified
             by its components, creating its copy before the translation.
@@ -5470,6 +6874,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             Parameters: 
                 theObject The object to be translated.
                 theDX,theDY,theDZ Components of translation vector.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 New GEOM.GEOM_Object, containing the translated object.
@@ -5479,16 +6886,47 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.TrsfOp.TranslateDXDYDZCopy(theObject, theDX, theDY, theDZ)
             anObj.SetParameters(Parameters)
             RaiseIfFailed("TranslateDXDYDZ", self.TrsfOp)
+            self._autoPublish(anObj, theName, "translated")
             return anObj
 
-        ## Translate the given object along the given vector,
+        ## Translate the given object along the given vector.
+        #  @param theObject The object to be translated.
+        #  @param theVector The translation vector.
+        #  @param theCopy Flag used to translate object itself or create a copy.
+        #  @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
+        #  new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
+        def TranslateVector(self, theObject, theVector, theCopy=False):
+            """
+            Translate the given object along the given vector.
+
+            Parameters: 
+                theObject The object to be translated.
+                theVector The translation vector.
+                theCopy Flag used to translate object itself or create a copy.
+
+            Returns: 
+                Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
+                new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
+            """
+            if theCopy:
+                anObj = self.TrsfOp.TranslateVectorCopy(theObject, theVector)
+            else:
+                anObj = self.TrsfOp.TranslateVector(theObject, theVector)
+            RaiseIfFailed("TranslateVector", self.TrsfOp)
+            return anObj
+
+        ## Translate the given object along the given vector,
         #  creating its copy before the translation.
         #  @param theObject The object to be translated.
         #  @param theVector The translation vector.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the translated object.
         #
         #  @ref tui_translation "Example"
-        def MakeTranslationVector(self,theObject, theVector):
+        def MakeTranslationVector(self, theObject, theVector, theName=None):
             """
             Translate the given object along the given vector,
             creating its copy before the translation.
@@ -5496,6 +6934,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             Parameters: 
                 theObject The object to be translated.
                 theVector The translation vector.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 New GEOM.GEOM_Object, containing the translated object.
@@ -5503,6 +6944,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.TrsfOp.TranslateVectorCopy(theObject, theVector)
             RaiseIfFailed("TranslateVectorCopy", self.TrsfOp)
+            self._autoPublish(anObj, theName, "translated")
             return anObj
 
         ## Translate the given object along the given vector on given distance.
@@ -5510,10 +6952,11 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theVector The translation vector.
         #  @param theDistance The translation distance.
         #  @param theCopy Flag used to translate object itself or create a copy.
-        #  @return New GEOM.GEOM_Object, containing the translated object.
+        #  @return Translated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
+        #  new GEOM.GEOM_Object, containing the translated object if @a theCopy flag is @c True.
         #
         #  @ref tui_translation "Example"
-        def TranslateVectorDistance(self, theObject, theVector, theDistance, theCopy):
+        def TranslateVectorDistance(self, theObject, theVector, theDistance, theCopy=False):
             """
             Translate the given object along the given vector on given distance.
 
@@ -5524,7 +6967,8 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theCopy Flag used to translate object itself or create a copy.
 
             Returns: 
-                New GEOM.GEOM_Object, containing the translated object.
+                Translated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
+                new GEOM.GEOM_Object, containing the translated object if theCopy flag is True.
             """
             # Example: see GEOM_TestAll.py
             theDistance,Parameters = ParseParameters(theDistance)
@@ -5538,10 +6982,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theObject The object to be translated.
         #  @param theVector The translation vector.
         #  @param theDistance The translation distance.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the translated object.
         #
         #  @ref tui_translation "Example"
-        def MakeTranslationVectorDistance(self, theObject, theVector, theDistance):
+        def MakeTranslationVectorDistance(self, theObject, theVector, theDistance, theName=None):
             """
             Translate the given object along the given vector on given distance,
             creating its copy before the translation.
@@ -5550,6 +6998,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theObject The object to be translated.
                 theVector The translation vector.
                 theDistance The translation distance.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 New GEOM.GEOM_Object, containing the translated object.
@@ -5559,16 +7010,20 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.TrsfOp.TranslateVectorDistance(theObject, theVector, theDistance, 1)
             RaiseIfFailed("TranslateVectorDistance", self.TrsfOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "translated")
             return anObj
 
         ## Rotate the given object around the given axis on the given angle.
         #  @param theObject The object to be rotated.
         #  @param theAxis Rotation axis.
         #  @param theAngle Rotation angle in radians.
-        #  @return New GEOM.GEOM_Object, containing the rotated object.
+        #  @param theCopy Flag used to rotate object itself or create a copy.
+        #
+        #  @return Rotated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
+        #  new GEOM.GEOM_Object, containing the rotated object if @a theCopy flag is @c True.
         #
         #  @ref tui_rotation "Example"
-        def Rotate(self,theObject, theAxis, theAngle):
+        def Rotate(self, theObject, theAxis, theAngle, theCopy=False):
             """
             Rotate the given object around the given axis on the given angle.
 
@@ -5576,9 +7031,11 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theObject The object to be rotated.
                 theAxis Rotation axis.
                 theAngle Rotation angle in radians.
+                theCopy Flag used to rotate object itself or create a copy.
 
-            Returns: 
-                New GEOM.GEOM_Object, containing the rotated object.
+            Returns:
+                Rotated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
+                new GEOM.GEOM_Object, containing the rotated object if theCopy flag is True.
             """
             # Example: see GEOM_TestAll.py
             flag = False
@@ -5587,8 +7044,11 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             theAngle, Parameters = ParseParameters(theAngle)
             if flag:
                 theAngle = theAngle*math.pi/180.0
-            anObj = self.TrsfOp.Rotate(theObject, theAxis, theAngle)
-            RaiseIfFailed("RotateCopy", self.TrsfOp)
+            if theCopy:
+                anObj = self.TrsfOp.RotateCopy(theObject, theAxis, theAngle)
+            else:
+                anObj = self.TrsfOp.Rotate(theObject, theAxis, theAngle)
+            RaiseIfFailed("Rotate", self.TrsfOp)
             anObj.SetParameters(Parameters)
             return anObj
 
@@ -5597,10 +7057,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theObject The object to be rotated.
         #  @param theAxis Rotation axis.
         #  @param theAngle Rotation angle in radians.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the rotated object.
         #
         #  @ref tui_rotation "Example"
-        def MakeRotation(self,theObject, theAxis, theAngle):
+        def MakeRotation(self, theObject, theAxis, theAngle, theName=None):
             """
             Rotate the given object around the given axis
             on the given angle, creating its copy before the rotatation.
@@ -5609,6 +7073,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theObject The object to be rotated.
                 theAxis Rotation axis.
                 theAngle Rotation angle in radians.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the rotated object.
@@ -5623,6 +7090,39 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.TrsfOp.RotateCopy(theObject, theAxis, theAngle)
             RaiseIfFailed("RotateCopy", self.TrsfOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "rotated")
+            return anObj
+
+        ## Rotate given object around vector perpendicular to plane
+        #  containing three points.
+        #  @param theObject The object to be rotated.
+        #  @param theCentPoint central point the axis is the vector perpendicular to the plane
+        #  containing the three points.
+        #  @param thePoint1,thePoint2 points in a perpendicular plane of the axis.
+        #  @param theCopy Flag used to rotate object itself or create a copy.
+        #  @return Rotated @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
+        #  new GEOM.GEOM_Object, containing the rotated object if @a theCopy flag is @c True.
+        def RotateThreePoints(self, theObject, theCentPoint, thePoint1, thePoint2, theCopy=False):
+            """
+            Rotate given object around vector perpendicular to plane
+            containing three points.
+
+            Parameters:
+                theObject The object to be rotated.
+                theCentPoint central point  the axis is the vector perpendicular to the plane
+                             containing the three points.
+                thePoint1,thePoint2 points in a perpendicular plane of the axis.
+                theCopy Flag used to rotate object itself or create a copy.
+
+            Returns:
+                Rotated theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
+                new GEOM.GEOM_Object, containing the rotated object if theCopy flag is True.
+            """
+            if theCopy:
+                anObj = self.TrsfOp.RotateThreePointsCopy(theObject, theCentPoint, thePoint1, thePoint2)
+            else:
+                anObj = self.TrsfOp.RotateThreePoints(theObject, theCentPoint, thePoint1, thePoint2)
+            RaiseIfFailed("RotateThreePoints", self.TrsfOp)
             return anObj
 
         ## Rotate given object around vector perpendicular to plane
@@ -5631,10 +7131,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theCentPoint central point the axis is the vector perpendicular to the plane
         #  containing the three points.
         #  @param thePoint1,thePoint2 in a perpendicular plane of the axis.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the rotated object.
         #
         #  @ref tui_rotation "Example"
-        def MakeRotationThreePoints(self,theObject, theCentPoint, thePoint1, thePoint2):
+        def MakeRotationThreePoints(self, theObject, theCentPoint, thePoint1, thePoint2, theName=None):
             """
             Rotate given object around vector perpendicular to plane
             containing three points, creating its copy before the rotatation.
@@ -5644,6 +7148,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theCentPoint central point  the axis is the vector perpendicular to the plane
                              containing the three points.
                 thePoint1,thePoint2  in a perpendicular plane of the axis.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the rotated object.
@@ -5651,6 +7158,40 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.TrsfOp.RotateThreePointsCopy(theObject, theCentPoint, thePoint1, thePoint2)
             RaiseIfFailed("RotateThreePointsCopy", self.TrsfOp)
+            self._autoPublish(anObj, theName, "rotated")
+            return anObj
+
+        ## Scale the given object by the specified factor.
+        #  @param theObject The object to be scaled.
+        #  @param thePoint Center point for scaling.
+        #                  Passing None for it means scaling relatively the origin of global CS.
+        #  @param theFactor Scaling factor value.
+        #  @param theCopy Flag used to scale object itself or create a copy.
+        #  @return Scaled @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
+        #  new GEOM.GEOM_Object, containing the scaled object if @a theCopy flag is @c True.
+        def Scale(self, theObject, thePoint, theFactor, theCopy=False):
+            """
+            Scale the given object by the specified factor.
+
+            Parameters:
+                theObject The object to be scaled.
+                thePoint Center point for scaling.
+                         Passing None for it means scaling relatively the origin of global CS.
+                theFactor Scaling factor value.
+                theCopy Flag used to scale object itself or create a copy.
+
+            Returns:    
+                Scaled theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
+                new GEOM.GEOM_Object, containing the scaled object if theCopy flag is True.
+            """
+            # Example: see GEOM_TestAll.py
+            theFactor, Parameters = ParseParameters(theFactor)
+            if theCopy:
+                anObj = self.TrsfOp.ScaleShapeCopy(theObject, thePoint, theFactor)
+            else:
+                anObj = self.TrsfOp.ScaleShape(theObject, thePoint, theFactor)
+            RaiseIfFailed("Scale", self.TrsfOp)
+            anObj.SetParameters(Parameters)
             return anObj
 
         ## Scale the given object by the factor, creating its copy before the scaling.
@@ -5658,10 +7199,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param thePoint Center point for scaling.
         #                  Passing None for it means scaling relatively the origin of global CS.
         #  @param theFactor Scaling factor value.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the scaled shape.
         #
         #  @ref tui_scale "Example"
-        def MakeScaleTransform(self, theObject, thePoint, theFactor):
+        def MakeScaleTransform(self, theObject, thePoint, theFactor, theName=None):
             """
             Scale the given object by the factor, creating its copy before the scaling.
 
@@ -5670,6 +7215,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 thePoint Center point for scaling.
                          Passing None for it means scaling relatively the origin of global CS.
                 theFactor Scaling factor value.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:    
                 New GEOM.GEOM_Object, containing the scaled shape.
@@ -5679,6 +7227,42 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.TrsfOp.ScaleShapeCopy(theObject, thePoint, theFactor)
             RaiseIfFailed("ScaleShapeCopy", self.TrsfOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "scaled")
+            return anObj
+
+        ## Scale the given object by different factors along coordinate axes.
+        #  @param theObject The object to be scaled.
+        #  @param thePoint Center point for scaling.
+        #                  Passing None for it means scaling relatively the origin of global CS.
+        #  @param theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
+        #  @param theCopy Flag used to scale object itself or create a copy.
+        #  @return Scaled @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
+        #  new GEOM.GEOM_Object, containing the scaled object if @a theCopy flag is @c True.
+        def ScaleAlongAxes(self, theObject, thePoint, theFactorX, theFactorY, theFactorZ, theCopy=False):
+            """
+            Scale the given object by different factors along coordinate axes.
+
+            Parameters:
+                theObject The object to be scaled.
+                thePoint Center point for scaling.
+                            Passing None for it means scaling relatively the origin of global CS.
+                theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
+                theCopy Flag used to scale object itself or create a copy.
+
+            Returns:    
+                Scaled theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
+                new GEOM.GEOM_Object, containing the scaled object if theCopy flag is True.
+            """
+            # Example: see GEOM_TestAll.py
+            theFactorX, theFactorY, theFactorZ, Parameters = ParseParameters(theFactorX, theFactorY, theFactorZ)
+            if theCopy:
+                anObj = self.TrsfOp.ScaleShapeAlongAxesCopy(theObject, thePoint,
+                                                            theFactorX, theFactorY, theFactorZ)
+            else:
+                anObj = self.TrsfOp.ScaleShapeAlongAxes(theObject, thePoint,
+                                                        theFactorX, theFactorY, theFactorZ)
+            RaiseIfFailed("ScaleAlongAxes", self.TrsfOp)
+            anObj.SetParameters(Parameters)
             return anObj
 
         ## Scale the given object by different factors along coordinate axes,
@@ -5687,10 +7271,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param thePoint Center point for scaling.
         #                  Passing None for it means scaling relatively the origin of global CS.
         #  @param theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the scaled shape.
         #
         #  @ref swig_scale "Example"
-        def MakeScaleAlongAxes(self, theObject, thePoint, theFactorX, theFactorY, theFactorZ):
+        def MakeScaleAlongAxes(self, theObject, thePoint, theFactorX, theFactorY, theFactorZ, theName=None):
             """
             Scale the given object by different factors along coordinate axes,
             creating its copy before the scaling.
@@ -5700,6 +7288,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 thePoint Center point for scaling.
                             Passing None for it means scaling relatively the origin of global CS.
                 theFactorX,theFactorY,theFactorZ Scaling factors along each axis.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the scaled shape.
@@ -5710,22 +7301,56 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                                                         theFactorX, theFactorY, theFactorZ)
             RaiseIfFailed("MakeScaleAlongAxes", self.TrsfOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "scaled")
+            return anObj
+
+        ## Mirror an object relatively the given plane.
+        #  @param theObject The object to be mirrored.
+        #  @param thePlane Plane of symmetry.
+        #  @param theCopy Flag used to mirror object itself or create a copy.
+        #  @return Mirrored @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
+        #  new GEOM.GEOM_Object, containing the mirrored object if @a theCopy flag is @c True.
+        def MirrorByPlane(self, theObject, thePlane, theCopy=False):
+            """
+            Mirror an object relatively the given plane.
+
+            Parameters:
+                theObject The object to be mirrored.
+                thePlane Plane of symmetry.
+                theCopy Flag used to mirror object itself or create a copy.
+
+            Returns:
+                Mirrored theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
+                new GEOM.GEOM_Object, containing the mirrored object if theCopy flag is True.
+            """
+            if theCopy:
+                anObj = self.TrsfOp.MirrorPlaneCopy(theObject, thePlane)
+            else:
+                anObj = self.TrsfOp.MirrorPlane(theObject, thePlane)
+            RaiseIfFailed("MirrorByPlane", self.TrsfOp)
             return anObj
 
         ## Create an object, symmetrical
         #  to the given one relatively the given plane.
         #  @param theObject The object to be mirrored.
         #  @param thePlane Plane of symmetry.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the mirrored shape.
         #
         #  @ref tui_mirror "Example"
-        def MakeMirrorByPlane(self,theObject, thePlane):
+        def MakeMirrorByPlane(self, theObject, thePlane, theName=None):
             """
             Create an object, symmetrical to the given one relatively the given plane.
 
             Parameters:
                 theObject The object to be mirrored.
                 thePlane Plane of symmetry.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the mirrored shape.
@@ -5733,22 +7358,56 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.TrsfOp.MirrorPlaneCopy(theObject, thePlane)
             RaiseIfFailed("MirrorPlaneCopy", self.TrsfOp)
+            self._autoPublish(anObj, theName, "mirrored")
+            return anObj
+
+        ## Mirror an object relatively the given axis.
+        #  @param theObject The object to be mirrored.
+        #  @param theAxis Axis of symmetry.
+        #  @param theCopy Flag used to mirror object itself or create a copy.
+        #  @return Mirrored @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
+        #  new GEOM.GEOM_Object, containing the mirrored object if @a theCopy flag is @c True.
+        def MirrorByAxis(self, theObject, theAxis, theCopy=False):
+            """
+            Mirror an object relatively the given axis.
+
+            Parameters:
+                theObject The object to be mirrored.
+                theAxis Axis of symmetry.
+                theCopy Flag used to mirror object itself or create a copy.
+
+            Returns:
+                Mirrored theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
+                new GEOM.GEOM_Object, containing the mirrored object if theCopy flag is True.
+            """
+            if theCopy:
+                anObj = self.TrsfOp.MirrorAxisCopy(theObject, theAxis)
+            else:
+                anObj = self.TrsfOp.MirrorAxis(theObject, theAxis)
+            RaiseIfFailed("MirrorByAxis", self.TrsfOp)
             return anObj
 
         ## Create an object, symmetrical
         #  to the given one relatively the given axis.
         #  @param theObject The object to be mirrored.
         #  @param theAxis Axis of symmetry.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the mirrored shape.
         #
         #  @ref tui_mirror "Example"
-        def MakeMirrorByAxis(self,theObject, theAxis):
+        def MakeMirrorByAxis(self, theObject, theAxis, theName=None):
             """
             Create an object, symmetrical to the given one relatively the given axis.
 
             Parameters:
                 theObject The object to be mirrored.
                 theAxis Axis of symmetry.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 New GEOM.GEOM_Object, containing the mirrored shape.
@@ -5756,16 +7415,48 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.TrsfOp.MirrorAxisCopy(theObject, theAxis)
             RaiseIfFailed("MirrorAxisCopy", self.TrsfOp)
+            self._autoPublish(anObj, theName, "mirrored")
+            return anObj
+
+        ## Mirror an object relatively the given point.
+        #  @param theObject The object to be mirrored.
+        #  @param thePoint Point of symmetry.
+        #  @param theCopy Flag used to mirror object itself or create a copy.
+        #  @return Mirrored @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
+        #  new GEOM.GEOM_Object, containing the mirrored object if @a theCopy flag is @c True.
+        def MirrorByPoint(self, theObject, thePoint, theCopy=False):
+            """
+            Mirror an object relatively the given point.
+
+            Parameters:
+                theObject The object to be mirrored.
+                thePoint Point of symmetry.
+                theCopy Flag used to mirror object itself or create a copy.
+
+            Returns:
+                Mirrored theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
+                new GEOM.GEOM_Object, containing the mirrored object if theCopy flag is True.
+            """
+            # Example: see GEOM_TestAll.py
+            if theCopy:
+                anObj = self.TrsfOp.MirrorPointCopy(theObject, thePoint)
+            else:
+                anObj = self.TrsfOp.MirrorPoint(theObject, thePoint)
+            RaiseIfFailed("MirrorByPoint", self.TrsfOp)
             return anObj
 
         ## Create an object, symmetrical
         #  to the given one relatively the given point.
         #  @param theObject The object to be mirrored.
         #  @param thePoint Point of symmetry.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the mirrored shape.
         #
         #  @ref tui_mirror "Example"
-        def MakeMirrorByPoint(self,theObject, thePoint):
+        def MakeMirrorByPoint(self, theObject, thePoint, theName=None):
             """
             Create an object, symmetrical
             to the given one relatively the given point.
@@ -5773,6 +7464,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             Parameters:
                 theObject The object to be mirrored.
                 thePoint Point of symmetry.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:  
                 New GEOM.GEOM_Object, containing the mirrored shape.
@@ -5780,6 +7474,44 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.TrsfOp.MirrorPointCopy(theObject, thePoint)
             RaiseIfFailed("MirrorPointCopy", self.TrsfOp)
+            self._autoPublish(anObj, theName, "mirrored")
+            return anObj
+
+        ## Modify the location of the given object.
+        #  @param theObject The object to be displaced.
+        #  @param theStartLCS Coordinate system to perform displacement from it.\n
+        #                     If \a theStartLCS is NULL, displacement
+        #                     will be performed from global CS.\n
+        #                     If \a theObject itself is used as \a theStartLCS,
+        #                     its location will be changed to \a theEndLCS.
+        #  @param theEndLCS Coordinate system to perform displacement to it.
+        #  @param theCopy Flag used to displace object itself or create a copy.
+        #  @return Displaced @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
+        #  new GEOM.GEOM_Object, containing the displaced object if @a theCopy flag is @c True.
+        def Position(self, theObject, theStartLCS, theEndLCS, theCopy=False):
+            """
+            Modify the Location of the given object by LCS, creating its copy before the setting.
+
+            Parameters:
+                theObject The object to be displaced.
+                theStartLCS Coordinate system to perform displacement from it.
+                            If theStartLCS is NULL, displacement
+                            will be performed from global CS.
+                            If theObject itself is used as theStartLCS,
+                            its location will be changed to theEndLCS.
+                theEndLCS Coordinate system to perform displacement to it.
+                theCopy Flag used to displace object itself or create a copy.
+
+            Returns:
+                Displaced theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
+                new GEOM.GEOM_Object, containing the displaced object if theCopy flag is True.
+            """
+            # Example: see GEOM_TestAll.py
+            if theCopy:
+                anObj = self.TrsfOp.PositionShapeCopy(theObject, theStartLCS, theEndLCS)
+            else:
+                anObj = self.TrsfOp.PositionShape(theObject, theStartLCS, theEndLCS)
+            RaiseIfFailed("Displace", self.TrsfOp)
             return anObj
 
         ## Modify the Location of the given object by LCS,
@@ -5791,10 +7523,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #                     If \a theObject itself is used as \a theStartLCS,
         #                     its location will be changed to \a theEndLCS.
         #  @param theEndLCS Coordinate system to perform displacement to it.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the displaced shape.
         #
         #  @ref tui_modify_location "Example"
-        def MakePosition(self,theObject, theStartLCS, theEndLCS):
+        def MakePosition(self, theObject, theStartLCS, theEndLCS, theName=None):
             """
             Modify the Location of the given object by LCS, creating its copy before the setting.
 
@@ -5806,6 +7542,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                             If theObject itself is used as theStartLCS,
                             its location will be changed to theEndLCS.
                 theEndLCS Coordinate system to perform displacement to it.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:  
                 New GEOM.GEOM_Object, containing the displaced shape.
@@ -5820,20 +7559,22 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.TrsfOp.PositionShapeCopy(theObject, theStartLCS, theEndLCS)
             RaiseIfFailed("PositionShapeCopy", self.TrsfOp)
+            self._autoPublish(anObj, theName, "displaced")
             return anObj
 
-        ## Modify the Location of the given object by Path,
+        ## Modify the Location of the given object by Path.
         #  @param  theObject The object to be displaced.
         #  @param  thePath Wire or Edge along that the object will be translated.
         #  @param  theDistance progress of Path (0 = start location, 1 = end of path location).
         #  @param  theCopy is to create a copy objects if true.
         #  @param  theReverse  0 - for usual direction, 1 - to reverse path direction.
-        #  @return New GEOM.GEOM_Object, containing the displaced shape.
+        #  @return Displaced @a theObject (GEOM.GEOM_Object) if @a theCopy is @c False or
+        #          new GEOM.GEOM_Object, containing the displaced shape if @a theCopy is @c True.
         #
         #  @ref tui_modify_location "Example"
         def PositionAlongPath(self,theObject, thePath, theDistance, theCopy, theReverse):
             """
-            Modify the Location of the given object by Path
+            Modify the Location of the given object by Path.
 
             Parameters:
                  theObject The object to be displaced.
@@ -5843,7 +7584,8 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                  theReverse  0 - for usual direction, 1 - to reverse path direction.
 
             Returns:  
-                New GEOM.GEOM_Object, containing the displaced shape.
+                 Displaced theObject (GEOM.GEOM_Object) if theCopy is False or
+                 new GEOM.GEOM_Object, containing the displaced shape if theCopy is True.
 
             Example of usage:
                 position = geompy.PositionAlongPath(cylinder, circle, 0.75, 1, 1)
@@ -5853,19 +7595,86 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             RaiseIfFailed("PositionAlongPath", self.TrsfOp)
             return anObj
 
+        ## Modify the Location of the given object by Path, creating its copy before the operation.
+        #  @param theObject The object to be displaced.
+        #  @param thePath Wire or Edge along that the object will be translated.
+        #  @param theDistance progress of Path (0 = start location, 1 = end of path location).
+        #  @param theReverse  0 - for usual direction, 1 - to reverse path direction.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
+        #  @return New GEOM.GEOM_Object, containing the displaced shape.
+        def MakePositionAlongPath(self, theObject, thePath, theDistance, theReverse, theName=None):
+            """
+            Modify the Location of the given object by Path, creating its copy before the operation.
+
+            Parameters:
+                 theObject The object to be displaced.
+                 thePath Wire or Edge along that the object will be translated.
+                 theDistance progress of Path (0 = start location, 1 = end of path location).
+                 theReverse  0 - for usual direction, 1 - to reverse path direction.
+                 theName Object name; when specified, this parameter is used
+                         for result publication in the study. Otherwise, if automatic
+                         publication is switched on, default value is used for result name.
+
+            Returns:  
+                New GEOM.GEOM_Object, containing the displaced shape.
+            """
+            # Example: see GEOM_TestAll.py
+            anObj = self.TrsfOp.PositionAlongPath(theObject, thePath, theDistance, 1, theReverse)
+            RaiseIfFailed("PositionAlongPath", self.TrsfOp)
+            self._autoPublish(anObj, theName, "displaced")
+            return anObj
+
+        ## Offset given shape.
+        #  @param theObject The base object for the offset.
+        #  @param theOffset Offset value.
+        #  @param theCopy Flag used to offset object itself or create a copy.
+        #  @return Modified @a theObject (GEOM.GEOM_Object) if @a theCopy flag is @c False (default) or
+        #  new GEOM.GEOM_Object, containing the result of offset operation if @a theCopy flag is @c True.
+        def Offset(self, theObject, theOffset, theCopy=False):
+            """
+            Offset given shape.
+
+            Parameters:
+                theObject The base object for the offset.
+                theOffset Offset value.
+                theCopy Flag used to offset object itself or create a copy.
+
+            Returns: 
+                Modified theObject (GEOM.GEOM_Object) if theCopy flag is False (default) or
+                new GEOM.GEOM_Object, containing the result of offset operation if theCopy flag is True.
+            """
+            theOffset, Parameters = ParseParameters(theOffset)
+            if theCopy:
+                anObj = self.TrsfOp.OffsetShapeCopy(theObject, theOffset)
+            else:
+                anObj = self.TrsfOp.OffsetShape(theObject, theOffset)
+            RaiseIfFailed("Offset", self.TrsfOp)
+            anObj.SetParameters(Parameters)
+            return anObj
+
         ## Create new object as offset of the given one.
         #  @param theObject The base object for the offset.
         #  @param theOffset Offset value.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the offset object.
         #
         #  @ref tui_offset "Example"
-        def MakeOffset(self,theObject, theOffset):
+        def MakeOffset(self, theObject, theOffset, theName=None):
             """
             Create new object as offset of the given one.
 
             Parameters:
                 theObject The base object for the offset.
                 theOffset Offset value.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:  
                 New GEOM.GEOM_Object, containing the offset object.
@@ -5880,21 +7689,29 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.TrsfOp.OffsetShapeCopy(theObject, theOffset)
             RaiseIfFailed("OffsetShapeCopy", self.TrsfOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "offset")
             return anObj
 
         ## Create new object as projection of the given one on a 2D surface.
         #  @param theSource The source object for the projection. It can be a point, edge or wire.
         #  @param theTarget The target object. It can be planar or cylindrical face.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the projection.
         #
         #  @ref tui_projection "Example"
-        def MakeProjection(self, theSource, theTarget):
+        def MakeProjection(self, theSource, theTarget, theName=None):
             """
             Create new object as projection of the given one on a 2D surface.
 
             Parameters:
                 theSource The source object for the projection. It can be a point, edge or wire.
                 theTarget The target object. It can be planar or cylindrical face.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:  
                 New GEOM.GEOM_Object, containing the projection.
@@ -5902,6 +7719,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestAll.py
             anObj = self.TrsfOp.ProjectShapeCopy(theSource, theTarget)
             RaiseIfFailed("ProjectShapeCopy", self.TrsfOp)
+            self._autoPublish(anObj, theName, "projection")
             return anObj
 
         # -----------------------------------------------------------------------------
@@ -5910,22 +7728,29 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
 
         ## Translate the given object along the given vector a given number times
         #  @param theObject The object to be translated.
-        #  @param theVector Direction of the translation.
+        #  @param theVector Direction of the translation. DX if None.
         #  @param theStep Distance to translate on.
         #  @param theNbTimes Quantity of translations to be done.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing compound of all
         #          the shapes, obtained after each translation.
         #
         #  @ref tui_multi_translation "Example"
-        def MakeMultiTranslation1D(self,theObject, theVector, theStep, theNbTimes):
+        def MakeMultiTranslation1D(self, theObject, theVector, theStep, theNbTimes, theName=None):
             """
             Translate the given object along the given vector a given number times
 
             Parameters:
                 theObject The object to be translated.
-                theVector Direction of the translation.
+                theVector Direction of the translation. DX if None.
                 theStep Distance to translate on.
                 theNbTimes Quantity of translations to be done.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:     
                 New GEOM.GEOM_Object, containing compound of all
@@ -5939,33 +7764,41 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.TrsfOp.MultiTranslate1D(theObject, theVector, theStep, theNbTimes)
             RaiseIfFailed("MultiTranslate1D", self.TrsfOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "multitranslation")
             return anObj
 
         ## Conseqently apply two specified translations to theObject specified number of times.
         #  @param theObject The object to be translated.
-        #  @param theVector1 Direction of the first translation.
+        #  @param theVector1 Direction of the first translation. DX if None.
         #  @param theStep1 Step of the first translation.
         #  @param theNbTimes1 Quantity of translations to be done along theVector1.
-        #  @param theVector2 Direction of the second translation.
+        #  @param theVector2 Direction of the second translation. DY if None.
         #  @param theStep2 Step of the second translation.
         #  @param theNbTimes2 Quantity of translations to be done along theVector2.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing compound of all
         #          the shapes, obtained after each translation.
         #
         #  @ref tui_multi_translation "Example"
-        def MakeMultiTranslation2D(self,theObject, theVector1, theStep1, theNbTimes1,
-                                   theVector2, theStep2, theNbTimes2):
+        def MakeMultiTranslation2D(self, theObject, theVector1, theStep1, theNbTimes1,
+                                   theVector2, theStep2, theNbTimes2, theName=None):
             """
             Conseqently apply two specified translations to theObject specified number of times.
 
             Parameters:
                 theObject The object to be translated.
-                theVector1 Direction of the first translation.
+                theVector1 Direction of the first translation. DX if None.
                 theStep1 Step of the first translation.
                 theNbTimes1 Quantity of translations to be done along theVector1.
-                theVector2 Direction of the second translation.
+                theVector2 Direction of the second translation. DY if None.
                 theStep2 Step of the second translation.
                 theNbTimes2 Quantity of translations to be done along theVector2.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing compound of all
@@ -5980,39 +7813,142 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                                                  theVector2, theStep2, theNbTimes2)
             RaiseIfFailed("MultiTranslate2D", self.TrsfOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "multitranslation")
             return anObj
 
         ## Rotate the given object around the given axis a given number times.
         #  Rotation angle will be 2*PI/theNbTimes.
         #  @param theObject The object to be rotated.
-        #  @param theAxis The rotation axis.
+        #  @param theAxis The rotation axis. DZ if None.
         #  @param theNbTimes Quantity of rotations to be done.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing compound of all the
         #          shapes, obtained after each rotation.
         #
         #  @ref tui_multi_rotation "Example"
-        def MultiRotate1D(self,theObject, theAxis, theNbTimes):
+        def MultiRotate1DNbTimes (self, theObject, theAxis, theNbTimes, theName=None):
             """
             Rotate the given object around the given axis a given number times.
             Rotation angle will be 2*PI/theNbTimes.
 
             Parameters:
                 theObject The object to be rotated.
-                theAxis The rotation axis.
+                theAxis The rotation axis. DZ if None.
                 theNbTimes Quantity of rotations to be done.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:     
                 New GEOM.GEOM_Object, containing compound of all the
                 shapes, obtained after each rotation.
 
             Example of usage:
-                rot1d = geompy.MultiRotate1D(prism, vect, 4)
+                rot1d = geompy.MultiRotate1DNbTimes(prism, vect, 4)
             """
             # Example: see GEOM_TestAll.py
-            theAxis, theNbTimes, Parameters = ParseParameters(theAxis, theNbTimes)
+            theNbTimes, Parameters = ParseParameters(theNbTimes)
             anObj = self.TrsfOp.MultiRotate1D(theObject, theAxis, theNbTimes)
-            RaiseIfFailed("MultiRotate1D", self.TrsfOp)
+            RaiseIfFailed("MultiRotate1DNbTimes", self.TrsfOp)
+            anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "multirotation")
+            return anObj
+
+        ## Rotate the given object around the given axis
+        #  a given number times on the given angle.
+        #  @param theObject The object to be rotated.
+        #  @param theAxis The rotation axis. DZ if None.
+        #  @param theAngleStep Rotation angle in radians.
+        #  @param theNbTimes Quantity of rotations to be done.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
+        #  @return New GEOM.GEOM_Object, containing compound of all the
+        #          shapes, obtained after each rotation.
+        #
+        #  @ref tui_multi_rotation "Example"
+        def MultiRotate1DByStep(self, theObject, theAxis, theAngleStep, theNbTimes, theName=None):
+            """
+            Rotate the given object around the given axis
+            a given number times on the given angle.
+
+            Parameters:
+                theObject The object to be rotated.
+                theAxis The rotation axis. DZ if None.
+                theAngleStep Rotation angle in radians.
+                theNbTimes Quantity of rotations to be done.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
+
+            Returns:     
+                New GEOM.GEOM_Object, containing compound of all the
+                shapes, obtained after each rotation.
+
+            Example of usage:
+                rot1d = geompy.MultiRotate1DByStep(prism, vect, math.pi/4, 4)
+            """
+            # Example: see GEOM_TestAll.py
+            theAngleStep, theNbTimes, Parameters = ParseParameters(theAngleStep, theNbTimes)
+            anObj = self.TrsfOp.MultiRotate1DByStep(theObject, theAxis, theAngleStep, theNbTimes)
+            RaiseIfFailed("MultiRotate1DByStep", self.TrsfOp)
+            anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "multirotation")
+            return anObj
+
+        ## Rotate the given object around the given axis a given
+        #  number times and multi-translate each rotation result.
+        #  Rotation angle will be 2*PI/theNbTimes1.
+        #  Translation direction passes through center of gravity
+        #  of rotated shape and its projection on the rotation axis.
+        #  @param theObject The object to be rotated.
+        #  @param theAxis Rotation axis. DZ if None.
+        #  @param theNbTimes1 Quantity of rotations to be done.
+        #  @param theRadialStep Translation distance.
+        #  @param theNbTimes2 Quantity of translations to be done.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
+        #  @return New GEOM.GEOM_Object, containing compound of all the
+        #          shapes, obtained after each transformation.
+        #
+        #  @ref tui_multi_rotation "Example"
+        def MultiRotate2DNbTimes(self, theObject, theAxis, theNbTimes1, theRadialStep, theNbTimes2, theName=None):
+            """
+            Rotate the given object around the
+            given axis on the given angle a given number
+            times and multi-translate each rotation result.
+            Translation direction passes through center of gravity
+            of rotated shape and its projection on the rotation axis.
+
+            Parameters:
+                theObject The object to be rotated.
+                theAxis Rotation axis. DZ if None.
+                theNbTimes1 Quantity of rotations to be done.
+                theRadialStep Translation distance.
+                theNbTimes2 Quantity of translations to be done.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
+
+            Returns:    
+                New GEOM.GEOM_Object, containing compound of all the
+                shapes, obtained after each transformation.
+
+            Example of usage:
+                rot2d = geompy.MultiRotate2D(prism, vect, 60, 4, 50, 5)
+            """
+            # Example: see GEOM_TestAll.py
+            theNbTimes1, theRadialStep, theNbTimes2, Parameters = ParseParameters(theNbTimes1, theRadialStep, theNbTimes2)
+            anObj = self.TrsfOp.MultiRotate2DNbTimes(theObject, theAxis, theNbTimes1, theRadialStep, theNbTimes2)
+            RaiseIfFailed("MultiRotate2DNbTimes", self.TrsfOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "multirotation")
             return anObj
 
         ## Rotate the given object around the
@@ -6021,16 +7957,20 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  Translation direction passes through center of gravity
         #  of rotated shape and its projection on the rotation axis.
         #  @param theObject The object to be rotated.
-        #  @param theAxis Rotation axis.
-        #  @param theAngle Rotation angle in graduces.
+        #  @param theAxis Rotation axis. DZ if None.
+        #  @param theAngleStep Rotation angle in radians.
         #  @param theNbTimes1 Quantity of rotations to be done.
-        #  @param theStep Translation distance.
+        #  @param theRadialStep Translation distance.
         #  @param theNbTimes2 Quantity of translations to be done.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing compound of all the
         #          shapes, obtained after each transformation.
         #
         #  @ref tui_multi_rotation "Example"
-        def MultiRotate2D(self,theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2):
+        def MultiRotate2DByStep (self, theObject, theAxis, theAngleStep, theNbTimes1, theRadialStep, theNbTimes2, theName=None):
             """
             Rotate the given object around the
             given axis on the given angle a given number
@@ -6040,80 +7980,197 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
 
             Parameters:
                 theObject The object to be rotated.
-                theAxis Rotation axis.
-                theAngle Rotation angle in graduces.
+                theAxis Rotation axis. DZ if None.
+                theAngleStep Rotation angle in radians.
                 theNbTimes1 Quantity of rotations to be done.
-                theStep Translation distance.
+                theRadialStep Translation distance.
                 theNbTimes2 Quantity of translations to be done.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:    
                 New GEOM.GEOM_Object, containing compound of all the
                 shapes, obtained after each transformation.
 
             Example of usage:
-                rot2d = geompy.MultiRotate2D(prism, vect, 60, 4, 50, 5)
+                rot2d = geompy.MultiRotate2D(prism, vect, math.pi/3, 4, 50, 5)
             """
             # Example: see GEOM_TestAll.py
-            theAngle, theNbTimes1, theStep, theNbTimes2, Parameters = ParseParameters(theAngle, theNbTimes1, theStep, theNbTimes2)
-            anObj = self.TrsfOp.MultiRotate2D(theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2)
-            RaiseIfFailed("MultiRotate2D", self.TrsfOp)
+            theAngleStep, theNbTimes1, theRadialStep, theNbTimes2, Parameters = ParseParameters(theAngleStep, theNbTimes1, theRadialStep, theNbTimes2)
+            anObj = self.TrsfOp.MultiRotate2DByStep(theObject, theAxis, theAngleStep, theNbTimes1, theRadialStep, theNbTimes2)
+            RaiseIfFailed("MultiRotate2DByStep", self.TrsfOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "multirotation")
             return anObj
 
-        ## The same, as MultiRotate1D(), but axis is given by direction and point
+        ## The same, as MultiRotate1DNbTimes(), but axis is given by direction and point
+        #
+        #  @ref swig_MakeMultiRotation "Example"
+        def MakeMultiRotation1DNbTimes(self, aShape, aDir, aPoint, aNbTimes, theName=None):
+            """
+            The same, as geompy.MultiRotate1DNbTimes, but axis is given by direction and point
+
+            Example of usage:
+                pz = geompy.MakeVertex(0, 0, 100)
+                vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
+                MultiRot1D = geompy.MakeMultiRotation1DNbTimes(prism, vy, pz, 6)
+            """
+            # Example: see GEOM_TestOthers.py
+            aVec = self.MakeLine(aPoint,aDir)
+            # note: auto-publishing is done in self.MultiRotate1D()
+            anObj = self.MultiRotate1DNbTimes(aShape, aVec, aNbTimes, theName)
+            return anObj
+
+        ## The same, as MultiRotate1DByStep(), but axis is given by direction and point
         #
         #  @ref swig_MakeMultiRotation "Example"
-        def MakeMultiRotation1D(self,aShape,aDir,aPoint,aNbTimes):
+        def MakeMultiRotation1DByStep(self, aShape, aDir, aPoint, anAngle, aNbTimes, theName=None):
             """
             The same, as geompy.MultiRotate1D, but axis is given by direction and point
 
             Example of usage:
                 pz = geompy.MakeVertex(0, 0, 100)
                 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
-                MultiRot1D = geompy.MakeMultiRotation1D(prism, vy, pz, 6)
+                MultiRot1D = geompy.MakeMultiRotation1DByStep(prism, vy, pz, math.pi/3, 6)
             """
             # Example: see GEOM_TestOthers.py
             aVec = self.MakeLine(aPoint,aDir)
-            anObj = self.MultiRotate1D(aShape,aVec,aNbTimes)
+            # note: auto-publishing is done in self.MultiRotate1D()
+            anObj = self.MultiRotate1DByStep(aShape, aVec, anAngle, aNbTimes, theName)
             return anObj
 
-        ## The same, as MultiRotate2D(), but axis is given by direction and point
+        ## The same, as MultiRotate2DNbTimes(), but axis is given by direction and point
         #
         #  @ref swig_MakeMultiRotation "Example"
-        def MakeMultiRotation2D(self,aShape,aDir,aPoint,anAngle,nbtimes1,aStep,nbtimes2):
+        def MakeMultiRotation2DNbTimes(self, aShape, aDir, aPoint, nbtimes1, aStep, nbtimes2, theName=None):
             """
-            The same, as MultiRotate2D(), but axis is given by direction and point
+            The same, as MultiRotate2DNbTimes(), but axis is given by direction and point
             
             Example of usage:
                 pz = geompy.MakeVertex(0, 0, 100)
                 vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
-                MultiRot2D = geompy.MakeMultiRotation2D(f12, vy, pz, 45, 6, 30, 3)
+                MultiRot2D = geompy.MakeMultiRotation2DNbTimes(f12, vy, pz, 6, 30, 3)
+            """
+            # Example: see GEOM_TestOthers.py
+            aVec = self.MakeLine(aPoint,aDir)
+            # note: auto-publishing is done in self.MultiRotate2DNbTimes()
+            anObj = self.MultiRotate2DNbTimes(aShape, aVec, nbtimes1, aStep, nbtimes2, theName)
+            return anObj
+
+        ## The same, as MultiRotate2DByStep(), but axis is given by direction and point
+        #
+        #  @ref swig_MakeMultiRotation "Example"
+        def MakeMultiRotation2DByStep(self, aShape, aDir, aPoint, anAngle, nbtimes1, aStep, nbtimes2, theName=None):
+            """
+            The same, as MultiRotate2DByStep(), but axis is given by direction and point
+            
+            Example of usage:
+                pz = geompy.MakeVertex(0, 0, 100)
+                vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
+                MultiRot2D = geompy.MakeMultiRotation2DByStep(f12, vy, pz, math.pi/4, 6, 30, 3)
             """
             # Example: see GEOM_TestOthers.py
             aVec = self.MakeLine(aPoint,aDir)
-            anObj = self.MultiRotate2D(aShape,aVec,anAngle,nbtimes1,aStep,nbtimes2)
+            # note: auto-publishing is done in self.MultiRotate2D()
+            anObj = self.MultiRotate2DByStep(aShape, aVec, anAngle, nbtimes1, aStep, nbtimes2, theName)
             return anObj
 
         # end of l3_transform
         ## @}
 
+        ## @addtogroup l3_transform_d
+        ## @{
+
+        ## Deprecated method. Use MultiRotate1DNbTimes instead.
+        def MultiRotate1D(self, theObject, theAxis, theNbTimes, theName=None):
+            """
+            Deprecated method. Use MultiRotate1DNbTimes instead.
+            """
+            print "The method MultiRotate1D is DEPRECATED. Use MultiRotate1DNbTimes instead."
+            return self.MultiRotate1DNbTimes(theObject, theAxis, theNbTimes, theName)
+
+        ## The same, as MultiRotate2DByStep(), but theAngle is in degrees.
+        #  This method is DEPRECATED. Use MultiRotate2DByStep() instead.
+        def MultiRotate2D(self, theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2, theName=None):
+            """
+            The same, as MultiRotate2DByStep(), but theAngle is in degrees.
+            This method is DEPRECATED. Use MultiRotate2DByStep() instead.
+
+            Example of usage:
+                rot2d = geompy.MultiRotate2D(prism, vect, 60, 4, 50, 5)
+            """
+            print "The method MultiRotate2D is DEPRECATED. Use MultiRotate2DByStep instead."
+            theAngle, theNbTimes1, theStep, theNbTimes2, Parameters = ParseParameters(theAngle, theNbTimes1, theStep, theNbTimes2)
+            anObj = self.TrsfOp.MultiRotate2D(theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2)
+            RaiseIfFailed("MultiRotate2D", self.TrsfOp)
+            anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "multirotation")
+            return anObj
+
+        ## The same, as MultiRotate1D(), but axis is given by direction and point
+        #  This method is DEPRECATED. Use MakeMultiRotation1DNbTimes instead.
+        def MakeMultiRotation1D(self, aShape, aDir, aPoint, aNbTimes, theName=None):
+            """
+            The same, as geompy.MultiRotate1D, but axis is given by direction and point.
+            This method is DEPRECATED. Use MakeMultiRotation1DNbTimes instead.
+
+            Example of usage:
+                pz = geompy.MakeVertex(0, 0, 100)
+                vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
+                MultiRot1D = geompy.MakeMultiRotation1D(prism, vy, pz, 6)
+            """
+            print "The method MakeMultiRotation1D is DEPRECATED. Use MakeMultiRotation1DNbTimes instead."
+            aVec = self.MakeLine(aPoint,aDir)
+            # note: auto-publishing is done in self.MultiRotate1D()
+            anObj = self.MultiRotate1D(aShape, aVec, aNbTimes, theName)
+            return anObj
+
+        ## The same, as MultiRotate2D(), but axis is given by direction and point
+        #  This method is DEPRECATED. Use MakeMultiRotation2DByStep instead.
+        def MakeMultiRotation2D(self, aShape, aDir, aPoint, anAngle, nbtimes1, aStep, nbtimes2, theName=None):
+            """
+            The same, as MultiRotate2D(), but axis is given by direction and point
+            This method is DEPRECATED. Use MakeMultiRotation2DByStep instead.
+            
+            Example of usage:
+                pz = geompy.MakeVertex(0, 0, 100)
+                vy = geompy.MakeVectorDXDYDZ(0, 100, 0)
+                MultiRot2D = geompy.MakeMultiRotation2D(f12, vy, pz, 45, 6, 30, 3)
+            """
+            print "The method MakeMultiRotation2D is DEPRECATED. Use MakeMultiRotation2DByStep instead."
+            aVec = self.MakeLine(aPoint,aDir)
+            # note: auto-publishing is done in self.MultiRotate2D()
+            anObj = self.MultiRotate2D(aShape, aVec, anAngle, nbtimes1, aStep, nbtimes2, theName)
+            return anObj
+
+        # end of l3_transform_d
+        ## @}
+
         ## @addtogroup l3_local
         ## @{
 
         ## Perform a fillet on all edges of the given shape.
         #  @param theShape Shape, to perform fillet on.
         #  @param theR Fillet radius.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the result shape.
         #
         #  @ref tui_fillet "Example 1"
         #  \n @ref swig_MakeFilletAll "Example 2"
-        def MakeFilletAll(self,theShape, theR):
+        def MakeFilletAll(self, theShape, theR, theName=None):
             """
             Perform a fillet on all edges of the given shape.
 
             Parameters:
                 theShape Shape, to perform fillet on.
                 theR Fillet radius.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 New GEOM.GEOM_Object, containing the result shape.
@@ -6126,6 +8183,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.LocalOp.MakeFilletAll(theShape, theR)
             RaiseIfFailed("MakeFilletAll", self.LocalOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "fillet")
             return anObj
 
         ## Perform a fillet on the specified edges/faces of the given shape
@@ -6133,11 +8191,16 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theR Fillet radius.
         #  @param theShapeType Type of shapes in <VAR>theListShapes</VAR> (see ShapeType())
         #  @param theListShapes Global indices of edges/faces to perform fillet on.
-        #    \note Global index of sub-shape can be obtained, using method GetSubShapeID().
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
+        #  @note Global index of sub-shape can be obtained, using method GetSubShapeID().
+        #
         #  @return New GEOM.GEOM_Object, containing the result shape.
         #
         #  @ref tui_fillet "Example"
-        def MakeFillet(self,theShape, theR, theShapeType, theListShapes):
+        def MakeFillet(self, theShape, theR, theShapeType, theListShapes, theName=None):
             """
             Perform a fillet on the specified edges/faces of the given shape
 
@@ -6146,6 +8209,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theR Fillet radius.
                 theShapeType Type of shapes in theListShapes (see geompy.ShapeTypes)
                 theListShapes Global indices of edges/faces to perform fillet on.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Note:
                 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
@@ -6173,10 +8239,11 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 anObj = self.LocalOp.MakeFilletFaces(theShape, theR, theListShapes)
                 RaiseIfFailed("MakeFilletFaces", self.LocalOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "fillet")
             return anObj
 
         ## The same that MakeFillet() but with two Fillet Radius R1 and R2
-        def MakeFilletR1R2(self, theShape, theR1, theR2, theShapeType, theListShapes):
+        def MakeFilletR1R2(self, theShape, theR1, theR2, theShapeType, theListShapes, theName=None):
             """
             The same that geompy.MakeFillet but with two Fillet Radius R1 and R2
 
@@ -6199,6 +8266,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 anObj = self.LocalOp.MakeFilletFacesR1R2(theShape, theR1, theR2, theListShapes)
                 RaiseIfFailed("MakeFilletFacesR1R2", self.LocalOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "fillet")
             return anObj
 
         ## Perform a fillet on the specified edges of the given shape
@@ -6214,10 +8282,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #         the fillet point, and such two (or more) edges can be united to allow
         #         bigger radius. Set this flag to TRUE to allow collinear edges union,
         #         thus ignoring the secant vertex (vertices).
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the result shape.
         #
         #  @ref tui_fillet2d "Example"
-        def MakeFillet1D(self,theShape, theR, theListOfVertexes, doIgnoreSecantVertices = True):
+        def MakeFillet1D(self, theShape, theR, theListOfVertexes, doIgnoreSecantVertices = True, theName=None):
             """
             Perform a fillet on the specified edges of the given shape
 
@@ -6231,6 +8303,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                     the fillet point, and such two (or more) edges can be united to allow
                     bigger radius. Set this flag to TRUE to allow collinear edges union,
                     thus ignoring the secant vertex (vertices).
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
             Note:
                 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
 
@@ -6250,17 +8325,23 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.LocalOp.MakeFillet1D(theShape, theR, theListOfVertexes, doIgnoreSecantVertices)
             RaiseIfFailed("MakeFillet1D", self.LocalOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "fillet")
             return anObj
 
         ## Perform a fillet at the specified vertices of the given face/shell.
         #  @param theShape Face or Shell shape to perform fillet on.
         #  @param theR Fillet radius.
         #  @param theListOfVertexes Global indices of vertexes to perform fillet on.
-        #    \note Global index of sub-shape can be obtained, using method GetSubShapeID().
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
+        #  @note Global index of sub-shape can be obtained, using method GetSubShapeID().
+        #
         #  @return New GEOM.GEOM_Object, containing the result shape.
         #
         #  @ref tui_fillet2d "Example"
-        def MakeFillet2D(self, theShape, theR, theListOfVertexes):
+        def MakeFillet2D(self, theShape, theR, theListOfVertexes, theName=None):
             """
             Perform a fillet at the specified vertices of the given face/shell.
 
@@ -6268,6 +8349,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theShape  Face or Shell shape to perform fillet on.
                 theR  Fillet radius.
                 theListOfVertexes Global indices of vertexes to perform fillet on.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
             Note:
                 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
 
@@ -6283,22 +8367,30 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.LocalOp.MakeFillet2D(theShape, theR, theListOfVertexes)
             RaiseIfFailed("MakeFillet2D", self.LocalOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "fillet")
             return anObj
 
         ## Perform a symmetric chamfer on all edges of the given shape.
         #  @param theShape Shape, to perform chamfer on.
         #  @param theD Chamfer size along each face.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the result shape.
         #
         #  @ref tui_chamfer "Example 1"
         #  \n @ref swig_MakeChamferAll "Example 2"
-        def MakeChamferAll(self,theShape, theD):
+        def MakeChamferAll(self, theShape, theD, theName=None):
             """
             Perform a symmetric chamfer on all edges of the given shape.
 
             Parameters:
                 theShape Shape, to perform chamfer on.
                 theD Chamfer size along each face.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:     
                 New GEOM.GEOM_Object, containing the result shape.
@@ -6311,6 +8403,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.LocalOp.MakeChamferAll(theShape, theD)
             RaiseIfFailed("MakeChamferAll", self.LocalOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "chamfer")
             return anObj
 
         ## Perform a chamfer on edges, common to the specified faces,
@@ -6319,11 +8412,16 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theD1 Chamfer size along \a theFace1.
         #  @param theD2 Chamfer size along \a theFace2.
         #  @param theFace1,theFace2 Global indices of two faces of \a theShape.
-        #    \note Global index of sub-shape can be obtained, using method GetSubShapeID().
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
+        #  @note Global index of sub-shape can be obtained, using method GetSubShapeID().
+        #
         #  @return New GEOM.GEOM_Object, containing the result shape.
         #
         #  @ref tui_chamfer "Example"
-        def MakeChamferEdge(self,theShape, theD1, theD2, theFace1, theFace2):
+        def MakeChamferEdge(self, theShape, theD1, theD2, theFace1, theFace2, theName=None):
             """
             Perform a chamfer on edges, common to the specified faces,
             with distance D1 on the Face1
@@ -6333,6 +8431,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theD1 Chamfer size along theFace1.
                 theD2 Chamfer size along theFace2.
                 theFace1,theFace2 Global indices of two faces of theShape.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Note:
                 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
@@ -6351,6 +8452,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.LocalOp.MakeChamferEdge(theShape, theD1, theD2, theFace1, theFace2)
             RaiseIfFailed("MakeChamferEdge", self.LocalOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "chamfer")
             return anObj
 
         ## Perform a chamfer on edges
@@ -6358,9 +8460,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theD Chamfer length
         #  @param theAngle Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
         #  @param theFace1,theFace2 Global indices of two faces of \a theShape.
-        #    \note Global index of sub-shape can be obtained, using method GetSubShapeID().
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
+        #  @note Global index of sub-shape can be obtained, using method GetSubShapeID().
+        #
         #  @return New GEOM.GEOM_Object, containing the result shape.
-        def MakeChamferEdgeAD(self, theShape, theD, theAngle, theFace1, theFace2):
+        def MakeChamferEdgeAD(self, theShape, theD, theAngle, theFace1, theFace2, theName=None):
             """
             Perform a chamfer on edges
 
@@ -6369,6 +8476,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theD1 Chamfer size along theFace1.
                 theAngle Angle of chamfer (angle in radians or a name of variable which defines angle in degrees).
                 theFace1,theFace2 Global indices of two faces of theShape.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Note:
                 Global index of sub-shape can be obtained, using method geompy.GetSubShapeID
@@ -6392,6 +8502,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.LocalOp.MakeChamferEdgeAD(theShape, theD, theAngle, theFace1, theFace2)
             RaiseIfFailed("MakeChamferEdgeAD", self.LocalOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "chamfer")
             return anObj
 
         ## Perform a chamfer on all edges of the specified faces,
@@ -6402,11 +8513,16 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #               will be get along face, which is nearer to \a theFaces beginning.
         #  @param theD2 Chamfer size along another of two faces, connected to the edge.
         #  @param theFaces Sequence of global indices of faces of \a theShape.
-        #    \note Global index of sub-shape can be obtained, using method GetSubShapeID().
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
+        #  @note Global index of sub-shape can be obtained, using method GetSubShapeID().
+        #
         #  @return New GEOM.GEOM_Object, containing the result shape.
         #
         #  @ref tui_chamfer "Example"
-        def MakeChamferFaces(self,theShape, theD1, theD2, theFaces):
+        def MakeChamferFaces(self, theShape, theD1, theD2, theFaces, theName=None):
             """
             Perform a chamfer on all edges of the specified faces,
             with distance D1 on the first specified face (if several for one edge)
@@ -6418,7 +8534,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                       will be get along face, which is nearer to theFaces beginning.
                 theD2 Chamfer size along another of two faces, connected to the edge.
                 theFaces Sequence of global indices of faces of theShape.
-
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
                 
             Note: Global index of sub-shape can be obtained, using method geompy.GetSubShapeID().
 
@@ -6430,13 +8548,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.LocalOp.MakeChamferFaces(theShape, theD1, theD2, theFaces)
             RaiseIfFailed("MakeChamferFaces", self.LocalOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "chamfer")
             return anObj
 
         ## The Same that MakeChamferFaces() but with params theD is chamfer lenght and
         #  theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
         #
         #  @ref swig_FilletChamfer "Example"
-        def MakeChamferFacesAD(self, theShape, theD, theAngle, theFaces):
+        def MakeChamferFacesAD(self, theShape, theD, theAngle, theFaces, theName=None):
             """
             The Same that geompy.MakeChamferFaces but with params theD is chamfer lenght and
             theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
@@ -6450,6 +8569,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.LocalOp.MakeChamferFacesAD(theShape, theD, theAngle, theFaces)
             RaiseIfFailed("MakeChamferFacesAD", self.LocalOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "chamfer")
             return anObj
 
         ## Perform a chamfer on edges,
@@ -6457,10 +8577,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theShape Shape, to perform chamfer on.
         #  @param theD1,theD2 Chamfer size
         #  @param theEdges Sequence of edges of \a theShape.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the result shape.
         #
         #  @ref swig_FilletChamfer "Example"
-        def MakeChamferEdges(self, theShape, theD1, theD2, theEdges):
+        def MakeChamferEdges(self, theShape, theD1, theD2, theEdges, theName=None):
             """
             Perform a chamfer on edges,
             with distance D1 on the first specified face (if several for one edge)
@@ -6469,6 +8593,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theShape Shape, to perform chamfer on.
                 theD1,theD2 Chamfer size
                 theEdges Sequence of edges of theShape.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the result shape.
@@ -6477,11 +8604,12 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.LocalOp.MakeChamferEdges(theShape, theD1, theD2, theEdges)
             RaiseIfFailed("MakeChamferEdges", self.LocalOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "chamfer")
             return anObj
 
         ## The Same that MakeChamferEdges() but with params theD is chamfer lenght and
         #  theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
-        def MakeChamferEdgesAD(self, theShape, theD, theAngle, theEdges):
+        def MakeChamferEdgesAD(self, theShape, theD, theAngle, theEdges, theName=None):
             """
             The Same that geompy.MakeChamferEdges but with params theD is chamfer lenght and
             theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees)
@@ -6495,21 +8623,23 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.LocalOp.MakeChamferEdgesAD(theShape, theD, theAngle, theEdges)
             RaiseIfFailed("MakeChamferEdgesAD", self.LocalOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "chamfer")
             return anObj
 
-        ## /sa MakeChamferEdge() and MakeChamferFaces()
+        ## @sa MakeChamferEdge(), MakeChamferFaces()
         #
         #  @ref swig_MakeChamfer "Example"
-        def MakeChamfer(self,aShape,d1,d2,aShapeType,ListShape):
+        def MakeChamfer(self, aShape, d1, d2, aShapeType, ListShape, theName=None):
             """
             See geompy.MakeChamferEdge() and geompy.MakeChamferFaces() functions for more information.
             """
             # Example: see GEOM_TestOthers.py
             anObj = None
+            # note: auto-publishing is done in self.MakeChamferEdge() or self.MakeChamferFaces()
             if aShapeType == ShapeType["EDGE"]:
-                anObj = self.MakeChamferEdge(aShape,d1,d2,ListShape[0],ListShape[1])
+                anObj = self.MakeChamferEdge(aShape,d1,d2,ListShape[0],ListShape[1],theName)
             else:
-                anObj = self.MakeChamferFaces(aShape,d1,d2,ListShape)
+                anObj = self.MakeChamferFaces(aShape,d1,d2,ListShape,theName)
             return anObj
             
         ## Remove material from a solid by extrusion of the base shape on the given distance.
@@ -6518,10 +8648,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theBase Closed edge or wire defining the base shape to be extruded.
         #  @param theH Prism dimension along the normal to theBase
         #  @param theAngle Draft angle in degrees.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the initial shape with removed material 
         #
         #  @ref tui_creation_prism "Example"
-        def MakeExtrudedCut(self, theInit, theBase, theH, theAngle):
+        def MakeExtrudedCut(self, theInit, theBase, theH, theAngle, theName=None):
             """
             Add material to a solid by extrusion of the base shape on the given distance.
 
@@ -6530,6 +8664,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theBase Closed edge or wire defining the base shape to be extruded.
                 theH Prism dimension along the normal  to theBase
                 theAngle Draft angle in degrees.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object,  containing the initial shape with removed material.
@@ -6539,6 +8676,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.PrimOp.MakeDraftPrism(theInit, theBase, theH, theAngle, False)
             RaiseIfFailed("MakeExtrudedBoss", self.PrimOp)
             #anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "extrudedCut")
             return anObj   
             
         ## Add material to a solid by extrusion of the base shape on the given distance.
@@ -6547,10 +8685,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theBase Closed edge or wire defining the base shape to be extruded.
         #  @param theH Prism dimension along the normal to theBase
         #  @param theAngle Draft angle in degrees.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the initial shape with added material 
         #
         #  @ref tui_creation_prism "Example"
-        def MakeExtrudedBoss(self, theInit, theBase, theH, theAngle):
+        def MakeExtrudedBoss(self, theInit, theBase, theH, theAngle, theName=None):
             """
             Add material to a solid by extrusion of the base shape on the given distance.
 
@@ -6559,6 +8701,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theBase Closed edge or wire defining the base shape to be extruded.
                 theH Prism dimension along the normal  to theBase
                 theAngle Draft angle in degrees.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object,  containing the initial shape with added material.
@@ -6568,6 +8713,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.PrimOp.MakeDraftPrism(theInit, theBase, theH, theAngle, True)
             RaiseIfFailed("MakeExtrudedBoss", self.PrimOp)
             #anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "extrudedBoss")
             return anObj   
 
         # end of l3_local
@@ -6582,11 +8728,15 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theWeight Weight og the shape.
         #  @param theWaterDensity Density of the water.
         #  @param theMeshDeflection Deflection of the mesh, using to compute the section.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing a section of \a theShape
         #          by a plane, corresponding to water level.
         #
         #  @ref tui_archimede "Example"
-        def Archimede(self,theShape, theWeight, theWaterDensity, theMeshDeflection):
+        def Archimede(self, theShape, theWeight, theWaterDensity, theMeshDeflection, theName=None):
             """
             Perform an Archimde operation on the given shape with given parameters.
             The object presenting the resulting face is returned.
@@ -6596,6 +8746,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theWeight Weight og the shape.
                 theWaterDensity Density of the water.
                 theMeshDeflection Deflection of the mesh, using to compute the section.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 New GEOM.GEOM_Object, containing a section of theShape
@@ -6607,6 +8760,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.LocalOp.MakeArchimede(theShape, theWeight, theWaterDensity, theMeshDeflection)
             RaiseIfFailed("MakeArchimede", self.LocalOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "archimede")
             return anObj
 
         # end of l3_basic_op
@@ -6629,7 +8783,61 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestMeasures.py
             aTuple = self.MeasuOp.PointCoordinates(Point)
             RaiseIfFailed("PointCoordinates", self.MeasuOp)
-            return aTuple
+            return aTuple 
+        
+        ## Get vector coordinates
+        #  @return [x, y, z]
+        #
+        #  @ref tui_measurement_tools_page "Example"
+        def VectorCoordinates(self,Vector):
+            """
+            Get vector coordinates
+
+            Returns:
+                [x, y, z]
+            """
+
+            p1=self.GetFirstVertex(Vector)
+            p2=self.GetLastVertex(Vector)
+            
+            X1=self.PointCoordinates(p1)
+            X2=self.PointCoordinates(p2)
+
+            return (X2[0]-X1[0],X2[1]-X1[1],X2[2]-X1[2])
+
+
+        ## Compute cross product
+        #  @return vector w=u^v
+        #
+        #  @ref tui_measurement_tools_page "Example"
+        def CrossProduct(self, Vector1, Vector2):
+            """ 
+            Compute cross product
+            
+            Returns: vector w=u^v
+            """
+            u=self.VectorCoordinates(Vector1)
+            v=self.VectorCoordinates(Vector2)
+            w=self.MakeVectorDXDYDZ(u[1]*v[2]-u[2]*v[1], u[2]*v[0]-u[0]*v[2], u[0]*v[1]-u[1]*v[0])
+            
+            return w
+        
+        ## Compute cross product
+        #  @return dot product  p=u.v
+        #
+        #  @ref tui_measurement_tools_page "Example"
+        def DotProduct(self, Vector1, Vector2):
+            """ 
+            Compute cross product
+            
+            Returns: dot product  p=u.v
+            """
+            u=self.VectorCoordinates(Vector1)
+            v=self.VectorCoordinates(Vector2)
+            p=u[0]*v[0]+u[1]*v[1]+u[2]*v[2]
+            
+            return p
+
 
         ## Get summarized length of all wires,
         #  area of surface and volume of the given shape.
@@ -6667,7 +8875,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  Zmin,Zmax: Limits of shape along OZ axis.
         #
         #  @ref tui_measurement_tools_page "Example"
-        def BoundingBox(self,theShape):
+        def BoundingBox (self, theShape):
             """
             Get parameters of bounding box of the given shape
 
@@ -6685,6 +8893,34 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             RaiseIfFailed("GetBoundingBox", self.MeasuOp)
             return aTuple
 
+        ## Get bounding box of the given shape
+        #  @param theShape Shape to obtain bounding box of.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
+        #  @return New GEOM.GEOM_Object, containing the created box.
+        #
+        #  @ref tui_measurement_tools_page "Example"
+        def MakeBoundingBox (self, theShape, theName=None):
+            """
+            Get bounding box of the given shape
+
+            Parameters: 
+                theShape Shape to obtain bounding box of.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
+
+            Returns:
+                New GEOM.GEOM_Object, containing the created box.
+            """
+            # Example: see GEOM_TestMeasures.py
+            anObj = self.MeasuOp.MakeBoundingBox(theShape)
+            RaiseIfFailed("MakeBoundingBox", self.MeasuOp)
+            self._autoPublish(anObj, theName, "bndbox")
+            return anObj
+
         ## Get inertia matrix and moments of inertia of theShape.
         #  @param theShape Shape to calculate inertia of.
         #  @return [I11,I12,I13, I21,I22,I23, I31,I32,I33, Ix,Iy,Iz]
@@ -6750,7 +8986,8 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
 
         ## Get minimal distance between the given shapes.
         #  @param theShape1,theShape2 Shapes to find minimal distance between.
-        #  @return Value of the minimal distance between the given shapes.
+        #  @return Value of the minimal distance between the given shapes, in form of list
+        #          [Distance, DX, DY, DZ].
         #
         #  @ref swig_all_measure "Example"
         def MinDistanceComponents(self, theShape1, theShape2):
@@ -6761,7 +8998,8 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theShape1,theShape2 Shapes to find minimal distance between.
 
             Returns:  
-                Value of the minimal distance between the given shapes.
+                Value of the minimal distance between the given shapes, in form of list
+                [Distance, DX, DY, DZ]
             """
             # Example: see GEOM_TestMeasures.py
             aTuple = self.MeasuOp.GetMinDistance(theShape1, theShape2)
@@ -6769,6 +9007,28 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             aRes = [aTuple[0], aTuple[4] - aTuple[1], aTuple[5] - aTuple[2], aTuple[6] - aTuple[3]]
             return aRes
 
+        ## Get closest points of the given shapes.
+        #  @param theShape1,theShape2 Shapes to find closest points of.
+        #  @return The number of found solutions (-1 in case of infinite number of
+        #          solutions) and a list of (X, Y, Z) coordinates for all couples of points.
+        #
+        #  @ref tui_measurement_tools_page "Example"
+        def ClosestPoints (self, theShape1, theShape2):
+            """
+            Get closest points of the given shapes.
+
+            Parameters: 
+                theShape1,theShape2 Shapes to find closest points of.
+
+            Returns:    
+                The number of found solutions (-1 in case of infinite number of
+                solutions) and a list of (X, Y, Z) coordinates for all couples of points.
+            """
+            # Example: see GEOM_TestMeasures.py
+            aTuple = self.MeasuOp.ClosestPoints(theShape1, theShape2)
+            RaiseIfFailed("ClosestPoints", self.MeasuOp)
+            return aTuple
+
         ## Get angle between the given shapes in degrees.
         #  @param theShape1,theShape2 Lines or linear edges to find angle between.
         #  @note If both arguments are vectors, the angle is computed in accordance
@@ -7114,15 +9374,22 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
 
         ## Get a point, situated at the centre of mass of theShape.
         #  @param theShape Shape to define centre of mass of.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created point.
         #
         #  @ref tui_measurement_tools_page "Example"
-        def MakeCDG(self,theShape):
+        def MakeCDG(self, theShape, theName=None):
             """
             Get a point, situated at the centre of mass of theShape.
 
             Parameters:
                 theShape Shape to define centre of mass of.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created point.
@@ -7130,21 +9397,29 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestMeasures.py
             anObj = self.MeasuOp.GetCentreOfMass(theShape)
             RaiseIfFailed("GetCentreOfMass", self.MeasuOp)
+            self._autoPublish(anObj, theName, "centerOfMass")
             return anObj
 
         ## Get a vertex sub-shape by index depended with orientation.
         #  @param theShape Shape to find sub-shape.
         #  @param theIndex Index to find vertex by this index (starting from zero)
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created vertex.
         #
         #  @ref tui_measurement_tools_page "Example"
-        def GetVertexByIndex(self,theShape, theIndex):
+        def GetVertexByIndex(self, theShape, theIndex, theName=None):
             """
             Get a vertex sub-shape by index depended with orientation.
 
             Parameters:
                 theShape Shape to find sub-shape.
                 theIndex Index to find vertex by this index (starting from zero)
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created vertex.
@@ -7152,46 +9427,63 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestMeasures.py
             anObj = self.MeasuOp.GetVertexByIndex(theShape, theIndex)
             RaiseIfFailed("GetVertexByIndex", self.MeasuOp)
+            self._autoPublish(anObj, theName, "vertex")
             return anObj
 
         ## Get the first vertex of wire/edge depended orientation.
         #  @param theShape Shape to find first vertex.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created vertex.
         #
         #  @ref tui_measurement_tools_page "Example"
-        def GetFirstVertex(self,theShape):
+        def GetFirstVertex(self, theShape, theName=None):
             """
             Get the first vertex of wire/edge depended orientation.
 
             Parameters:
                 theShape Shape to find first vertex.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:    
                 New GEOM.GEOM_Object, containing the created vertex.
             """
             # Example: see GEOM_TestMeasures.py
-            anObj = self.GetVertexByIndex(theShape, 0)
+            # note: auto-publishing is done in self.GetVertexByIndex()
+            anObj = self.GetVertexByIndex(theShape, 0, theName)
             RaiseIfFailed("GetFirstVertex", self.MeasuOp)
             return anObj
 
         ## Get the last vertex of wire/edge depended orientation.
         #  @param theShape Shape to find last vertex.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created vertex.
         #
         #  @ref tui_measurement_tools_page "Example"
-        def GetLastVertex(self,theShape):
+        def GetLastVertex(self, theShape, theName=None):
             """
             Get the last vertex of wire/edge depended orientation.
 
             Parameters: 
                 theShape Shape to find last vertex.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:   
                 New GEOM.GEOM_Object, containing the created vertex.
             """
             # Example: see GEOM_TestMeasures.py
             nb_vert =  self.ShapesOp.NumberOfSubShapes(theShape, ShapeType["VERTEX"])
-            anObj = self.GetVertexByIndex(theShape, (nb_vert-1))
+            # note: auto-publishing is done in self.GetVertexByIndex()
+            anObj = self.GetVertexByIndex(theShape, (nb_vert-1), theName)
             RaiseIfFailed("GetLastVertex", self.MeasuOp)
             return anObj
 
@@ -7199,10 +9491,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  the normale is calculated at the center of mass.
         #  @param theFace Face to define normale of.
         #  @param theOptionalPoint Point to compute the normale at.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created vector.
         #
         #  @ref swig_todo "Example"
-        def GetNormal(self, theFace, theOptionalPoint = None):
+        def GetNormal(self, theFace, theOptionalPoint = None, theName=None):
             """
             Get a normale to the given face. If the point is not given,
             the normale is calculated at the center of mass.
@@ -7210,6 +9506,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             Parameters: 
                 theFace Face to define normale of.
                 theOptionalPoint Point to compute the normale at.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:   
                 New GEOM.GEOM_Object, containing the created vector.
@@ -7217,6 +9516,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestMeasures.py
             anObj = self.MeasuOp.GetNormal(theFace, theOptionalPoint)
             RaiseIfFailed("GetNormal", self.MeasuOp)
+            self._autoPublish(anObj, theName, "normal")
             return anObj
 
         ## Check a topology of the given shape.
@@ -7372,10 +9672,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #         If format 'IGES_SCALE' is used instead of 'IGES' or
         #            format 'STEP_SCALE' is used instead of 'STEP',
         #            length unit will be set to 'meter' and result model will be scaled.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the imported shape.
         #
         #  @ref swig_Import_Export "Example"
-        def ImportFile(self, theFileName, theFormatName):
+        def ImportFile(self, theFileName, theFormatName, theName=None):
             """
             Import a shape from the BREP or IGES or STEP file
             (depends on given format) with given name.
@@ -7387,44 +9691,55 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                     If format 'IGES_SCALE' is used instead of 'IGES' or
                        format 'STEP_SCALE' is used instead of 'STEP',
                        length unit will be set to 'meter' and result model will be scaled.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the imported shape.
             """
             # Example: see GEOM_TestOthers.py
             anObj = self.InsertOp.ImportFile(theFileName, theFormatName)
-            RaiseIfFailed("Import", self.InsertOp)
+            RaiseIfFailed("ImportFile", self.InsertOp)
+            self._autoPublish(anObj, theName, "imported")
             return anObj
 
         ## Deprecated analog of ImportFile()
-        def Import(self, theFileName, theFormatName):
+        def Import(self, theFileName, theFormatName, theName=None):
             """
-            Deprecated analog of geompy.ImportFile
+            Deprecated analog of geompy.ImportFile, kept for backward compatibility only.
             """
             print "WARNING: Function Import is deprecated, use ImportFile instead"
-            anObj = self.InsertOp.ImportFile(theFileName, theFormatName)
-            RaiseIfFailed("Import", self.InsertOp)
-            return anObj
+            # note: auto-publishing is done in self.ImportFile()
+            return self.ImportFile(theFileName, theFormatName, theName)
 
         ## Shortcut to ImportFile() for BREP format.
         #  Import a shape from the BREP file with given name.
         #  @param theFileName The file, containing the shape.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the imported shape.
         #
         #  @ref swig_Import_Export "Example"
-        def ImportBREP(self, theFileName):
+        def ImportBREP(self, theFileName, theName=None):
             """
             geompy.ImportFile(...) function for BREP format
             Import a shape from the BREP file with given name.
 
             Parameters: 
                 theFileName The file, containing the shape.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the imported shape.
             """
             # Example: see GEOM_TestOthers.py
-            return self.ImportFile(theFileName, "BREP")
+            # note: auto-publishing is done in self.ImportFile()
+            return self.ImportFile(theFileName, "BREP", theName)
 
         ## Shortcut to ImportFile() for IGES format
         #  Import a shape from the IGES file with given name.
@@ -7432,10 +9747,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param ignoreUnits If True, file length units will be ignored (set to 'meter')
         #                     and result model will be scaled, if its units are not meters.
         #                     If False (default), file length units will be taken into account.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the imported shape.
         #
         #  @ref swig_Import_Export "Example"
-        def ImportIGES(self, theFileName, ignoreUnits = False):
+        def ImportIGES(self, theFileName, ignoreUnits = False, theName=None):
             """
             geompy.ImportFile(...) function for IGES format
 
@@ -7444,14 +9763,18 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 ignoreUnits If True, file length units will be ignored (set to 'meter')
                             and result model will be scaled, if its units are not meters.
                             If False (default), file length units will be taken into account.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the imported shape.
             """
             # Example: see GEOM_TestOthers.py
+            # note: auto-publishing is done in self.ImportFile()
             if ignoreUnits:
-                return self.ImportFile(theFileName, "IGES_SCALE")
-            return self.ImportFile(theFileName, "IGES")
+                return self.ImportFile(theFileName, "IGES_SCALE", theName)
+            return self.ImportFile(theFileName, "IGES", theName)
 
         ## Return length unit from given IGES file
         #  @param theFileName The file, containing the shape.
@@ -7478,10 +9801,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param ignoreUnits If True, file length units will be ignored (set to 'meter')
         #                     and result model will be scaled, if its units are not meters.
         #                     If False (default), file length units will be taken into account.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the imported shape.
         #
         #  @ref swig_Import_Export "Example"
-        def ImportSTEP(self, theFileName, ignoreUnits = False):
+        def ImportSTEP(self, theFileName, ignoreUnits = False, theName=None):
             """
             geompy.ImportFile(...) function for STEP format
 
@@ -7490,14 +9817,18 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 ignoreUnits If True, file length units will be ignored (set to 'meter')
                             and result model will be scaled, if its units are not meters.
                             If False (default), file length units will be taken into account.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the imported shape.
             """
             # Example: see GEOM_TestOthers.py
+            # note: auto-publishing is done in self.ImportFile()
             if ignoreUnits:
-                return self.ImportFile(theFileName, "STEP_SCALE")
-            return self.ImportFile(theFileName, "STEP")
+                return self.ImportFile(theFileName, "STEP_SCALE", theName)
+            return self.ImportFile(theFileName, "STEP", theName)
 
         ## Return length unit from given IGES or STEP file
         #  @param theFileName The file, containing the shape.
@@ -7522,10 +9853,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @note This method will not be dumped to the python script by DumpStudy functionality.
         #  @note GEOM.GEOM_Object.GetShapeStream() method can be used to obtain the shape's BRep stream.
         #  @param theStream The BRep binary stream.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM_Object, containing the shape, read from theStream.
         #
         #  @ref swig_Import_Export "Example"
-        def RestoreShape (self, theStream):
+        def RestoreShape (self, theStream, theName=None):
             """
             Read a shape from the binary stream, containing its bounding representation (BRep).
 
@@ -7534,6 +9869,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
 
             Parameters: 
                 theStream The BRep binary stream.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM_Object, containing the shape, read from theStream.
@@ -7541,13 +9879,15 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestOthers.py
             anObj = self.InsertOp.RestoreShape(theStream)
             RaiseIfFailed("RestoreShape", self.InsertOp)
+            self._autoPublish(anObj, theName, "restored")
             return anObj
 
         ## Export the given shape into a file with given name.
         #  @param theObject Shape to be stored in the file.
         #  @param theFileName Name of the file to store the given shape in.
         #  @param theFormatName Specify format for the shape storage.
-        #         Available formats can be obtained with InsertOp.ImportTranslators() method.
+        #         Available formats can be obtained with
+        #         geompy.InsertOp.ExportTranslators()[0] method.
         #
         #  @ref swig_Import_Export "Example"
         def Export(self, theObject, theFileName, theFormatName):
@@ -7558,7 +9898,8 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theObject Shape to be stored in the file.
                 theFileName Name of the file to store the given shape in.
                 theFormatName Specify format for the shape storage.
-                              Available formats can be obtained with geompy.InsertOp.ImportTranslators() method.
+                              Available formats can be obtained with
+                              geompy.InsertOp.ExportTranslators()[0] method.
             """
             # Example: see GEOM_TestOthers.py
             self.InsertOp.Export(theObject, theFileName, theFormatName)
@@ -7606,16 +9947,23 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         ## Create a quadrangle face from four edges. Order of Edges is not
         #  important. It is  not necessary that edges share the same vertex.
         #  @param E1,E2,E3,E4 Edges for the face bound.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created face.
         #
         #  @ref tui_building_by_blocks_page "Example"
-        def MakeQuad(self,E1, E2, E3, E4):
+        def MakeQuad(self, E1, E2, E3, E4, theName=None):
             """
             Create a quadrangle face from four edges. Order of Edges is not
             important. It is  not necessary that edges share the same vertex.
 
             Parameters: 
                 E1,E2,E3,E4 Edges for the face bound.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 New GEOM.GEOM_Object, containing the created face.
@@ -7626,21 +9974,29 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_Spanner.py
             anObj = self.BlocksOp.MakeQuad(E1, E2, E3, E4)
             RaiseIfFailed("MakeQuad", self.BlocksOp)
+            self._autoPublish(anObj, theName, "quad")
             return anObj
 
         ## Create a quadrangle face on two edges.
         #  The missing edges will be built by creating the shortest ones.
         #  @param E1,E2 Two opposite edges for the face.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created face.
         #
         #  @ref tui_building_by_blocks_page "Example"
-        def MakeQuad2Edges(self,E1, E2):
+        def MakeQuad2Edges(self, E1, E2, theName=None):
             """
             Create a quadrangle face on two edges.
             The missing edges will be built by creating the shortest ones.
 
             Parameters: 
                 E1,E2 Two opposite edges for the face.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 New GEOM.GEOM_Object, containing the created face.
@@ -7660,22 +10016,30 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_Spanner.py
             anObj = self.BlocksOp.MakeQuad2Edges(E1, E2)
             RaiseIfFailed("MakeQuad2Edges", self.BlocksOp)
+            self._autoPublish(anObj, theName, "quad")
             return anObj
 
         ## Create a quadrangle face with specified corners.
         #  The missing edges will be built by creating the shortest ones.
         #  @param V1,V2,V3,V4 Corner vertices for the face.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created face.
         #
         #  @ref tui_building_by_blocks_page "Example 1"
         #  \n @ref swig_MakeQuad4Vertices "Example 2"
-        def MakeQuad4Vertices(self,V1, V2, V3, V4):
+        def MakeQuad4Vertices(self, V1, V2, V3, V4, theName=None):
             """
             Create a quadrangle face with specified corners.
             The missing edges will be built by creating the shortest ones.
 
             Parameters: 
                 V1,V2,V3,V4 Corner vertices for the face.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 New GEOM.GEOM_Object, containing the created face.
@@ -7692,22 +10056,30 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_Spanner.py
             anObj = self.BlocksOp.MakeQuad4Vertices(V1, V2, V3, V4)
             RaiseIfFailed("MakeQuad4Vertices", self.BlocksOp)
+            self._autoPublish(anObj, theName, "quad")
             return anObj
 
         ## Create a hexahedral solid, bounded by the six given faces. Order of
         #  faces is not important. It is  not necessary that Faces share the same edge.
         #  @param F1,F2,F3,F4,F5,F6 Faces for the hexahedral solid.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created solid.
         #
         #  @ref tui_building_by_blocks_page "Example 1"
         #  \n @ref swig_MakeHexa "Example 2"
-        def MakeHexa(self,F1, F2, F3, F4, F5, F6):
+        def MakeHexa(self, F1, F2, F3, F4, F5, F6, theName=None):
             """
             Create a hexahedral solid, bounded by the six given faces. Order of
             faces is not important. It is  not necessary that Faces share the same edge.
 
             Parameters: 
                 F1,F2,F3,F4,F5,F6 Faces for the hexahedral solid.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:    
                 New GEOM.GEOM_Object, containing the created solid.
@@ -7718,22 +10090,30 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_Spanner.py
             anObj = self.BlocksOp.MakeHexa(F1, F2, F3, F4, F5, F6)
             RaiseIfFailed("MakeHexa", self.BlocksOp)
+            self._autoPublish(anObj, theName, "hexa")
             return anObj
 
         ## Create a hexahedral solid between two given faces.
         #  The missing faces will be built by creating the smallest ones.
         #  @param F1,F2 Two opposite faces for the hexahedral solid.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the created solid.
         #
         #  @ref tui_building_by_blocks_page "Example 1"
         #  \n @ref swig_MakeHexa2Faces "Example 2"
-        def MakeHexa2Faces(self,F1, F2):
+        def MakeHexa2Faces(self, F1, F2, theName=None):
             """
             Create a hexahedral solid between two given faces.
             The missing faces will be built by creating the smallest ones.
 
             Parameters: 
                 F1,F2 Two opposite faces for the hexahedral solid.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the created solid.
@@ -7744,6 +10124,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_Spanner.py
             anObj = self.BlocksOp.MakeHexa2Faces(F1, F2)
             RaiseIfFailed("MakeHexa2Faces", self.BlocksOp)
+            self._autoPublish(anObj, theName, "hexa")
             return anObj
 
         # end of l3_blocks
@@ -7757,10 +10138,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theX,theY,theZ Coordinates of the sought vertex.
         #  @param theEpsilon Maximum allowed distance between the resulting
         #                    vertex and point with the given coordinates.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the found vertex.
         #
         #  @ref swig_GetPoint "Example"
-        def GetPoint(self, theShape, theX, theY, theZ, theEpsilon):
+        def GetPoint(self, theShape, theX, theY, theZ, theEpsilon, theName=None):
             """
             Get a vertex, found in the given shape by its coordinates.
 
@@ -7769,6 +10154,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theX,theY,theZ Coordinates of the sought vertex.
                 theEpsilon Maximum allowed distance between the resulting
                            vertex and point with the given coordinates.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:                  
                 New GEOM.GEOM_Object, containing the found vertex.
@@ -7779,21 +10167,29 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestOthers.py
             anObj = self.BlocksOp.GetPoint(theShape, theX, theY, theZ, theEpsilon)
             RaiseIfFailed("GetPoint", self.BlocksOp)
+            self._autoPublish(anObj, theName, "vertex")
             return anObj
 
         ## Find a vertex of the given shape, which has minimal distance to the given point.
         #  @param theShape Any shape.
         #  @param thePoint Point, close to the desired vertex.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the found vertex.
         #
         #  @ref swig_GetVertexNearPoint "Example"
-        def GetVertexNearPoint(self, theShape, thePoint):
+        def GetVertexNearPoint(self, theShape, thePoint, theName=None):
             """
             Find a vertex of the given shape, which has minimal distance to the given point.
 
             Parameters: 
                 theShape Any shape.
                 thePoint Point, close to the desired vertex.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the found vertex.
@@ -7805,21 +10201,29 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestOthers.py
             anObj = self.BlocksOp.GetVertexNearPoint(theShape, thePoint)
             RaiseIfFailed("GetVertexNearPoint", self.BlocksOp)
+            self._autoPublish(anObj, theName, "vertex")
             return anObj
 
         ## Get an edge, found in the given shape by two given vertices.
         #  @param theShape Block or a compound of blocks.
         #  @param thePoint1,thePoint2 Points, close to the ends of the desired edge.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the found edge.
         #
         #  @ref swig_GetEdge "Example"
-        def GetEdge(self, theShape, thePoint1, thePoint2):
+        def GetEdge(self, theShape, thePoint1, thePoint2, theName=None):
             """
             Get an edge, found in the given shape by two given vertices.
 
             Parameters: 
                 theShape Block or a compound of blocks.
                 thePoint1,thePoint2 Points, close to the ends of the desired edge.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the found edge.
@@ -7827,21 +10231,29 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_Spanner.py
             anObj = self.BlocksOp.GetEdge(theShape, thePoint1, thePoint2)
             RaiseIfFailed("GetEdge", self.BlocksOp)
+            self._autoPublish(anObj, theName, "edge")
             return anObj
 
         ## Find an edge of the given shape, which has minimal distance to the given point.
         #  @param theShape Block or a compound of blocks.
         #  @param thePoint Point, close to the desired edge.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the found edge.
         #
         #  @ref swig_GetEdgeNearPoint "Example"
-        def GetEdgeNearPoint(self, theShape, thePoint):
+        def GetEdgeNearPoint(self, theShape, thePoint, theName=None):
             """
             Find an edge of the given shape, which has minimal distance to the given point.
 
             Parameters: 
                 theShape Block or a compound of blocks.
                 thePoint Point, close to the desired edge.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the found edge.
@@ -7849,21 +10261,29 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestOthers.py
             anObj = self.BlocksOp.GetEdgeNearPoint(theShape, thePoint)
             RaiseIfFailed("GetEdgeNearPoint", self.BlocksOp)
+            self._autoPublish(anObj, theName, "edge")
             return anObj
 
         ## Returns a face, found in the given shape by four given corner vertices.
         #  @param theShape Block or a compound of blocks.
         #  @param thePoint1,thePoint2,thePoint3,thePoint4 Points, close to the corners of the desired face.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the found face.
         #
         #  @ref swig_todo "Example"
-        def GetFaceByPoints(self,theShape, thePoint1, thePoint2, thePoint3, thePoint4):
+        def GetFaceByPoints(self, theShape, thePoint1, thePoint2, thePoint3, thePoint4, theName=None):
             """
             Returns a face, found in the given shape by four given corner vertices.
 
             Parameters:
                 theShape Block or a compound of blocks.
                 thePoint1,thePoint2,thePoint3,thePoint4 Points, close to the corners of the desired face.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the found face.
@@ -7871,21 +10291,29 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_Spanner.py
             anObj = self.BlocksOp.GetFaceByPoints(theShape, thePoint1, thePoint2, thePoint3, thePoint4)
             RaiseIfFailed("GetFaceByPoints", self.BlocksOp)
+            self._autoPublish(anObj, theName, "face")
             return anObj
 
         ## Get a face of block, found in the given shape by two given edges.
         #  @param theShape Block or a compound of blocks.
         #  @param theEdge1,theEdge2 Edges, close to the edges of the desired face.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the found face.
         #
         #  @ref swig_todo "Example"
-        def GetFaceByEdges(self,theShape, theEdge1, theEdge2):
+        def GetFaceByEdges(self, theShape, theEdge1, theEdge2, theName=None):
             """
             Get a face of block, found in the given shape by two given edges.
 
             Parameters:
                 theShape Block or a compound of blocks.
                 theEdge1,theEdge2 Edges, close to the edges of the desired face.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the found face.
@@ -7893,21 +10321,29 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_Spanner.py
             anObj = self.BlocksOp.GetFaceByEdges(theShape, theEdge1, theEdge2)
             RaiseIfFailed("GetFaceByEdges", self.BlocksOp)
+            self._autoPublish(anObj, theName, "face")
             return anObj
 
         ## Find a face, opposite to the given one in the given block.
         #  @param theBlock Must be a hexahedral solid.
         #  @param theFace Face of \a theBlock, opposite to the desired face.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the found face.
         #
         #  @ref swig_GetOppositeFace "Example"
-        def GetOppositeFace(self,theBlock, theFace):
+        def GetOppositeFace(self, theBlock, theFace, theName=None):
             """
             Find a face, opposite to the given one in the given block.
 
             Parameters:
                 theBlock Must be a hexahedral solid.
                 theFace Face of theBlock, opposite to the desired face.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 New GEOM.GEOM_Object, containing the found face.
@@ -7915,21 +10351,29 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_Spanner.py
             anObj = self.BlocksOp.GetOppositeFace(theBlock, theFace)
             RaiseIfFailed("GetOppositeFace", self.BlocksOp)
+            self._autoPublish(anObj, theName, "face")
             return anObj
 
         ## Find a face of the given shape, which has minimal distance to the given point.
         #  @param theShape Block or a compound of blocks.
         #  @param thePoint Point, close to the desired face.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the found face.
         #
         #  @ref swig_GetFaceNearPoint "Example"
-        def GetFaceNearPoint(self, theShape, thePoint):
+        def GetFaceNearPoint(self, theShape, thePoint, theName=None):
             """
             Find a face of the given shape, which has minimal distance to the given point.
 
             Parameters:
                 theShape Block or a compound of blocks.
                 thePoint Point, close to the desired face.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the found face.
@@ -7937,21 +10381,29 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_Spanner.py
             anObj = self.BlocksOp.GetFaceNearPoint(theShape, thePoint)
             RaiseIfFailed("GetFaceNearPoint", self.BlocksOp)
+            self._autoPublish(anObj, theName, "face")
             return anObj
 
         ## Find a face of block, whose outside normale has minimal angle with the given vector.
         #  @param theBlock Block or a compound of blocks.
         #  @param theVector Vector, close to the normale of the desired face.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the found face.
         #
         #  @ref swig_todo "Example"
-        def GetFaceByNormale(self, theBlock, theVector):
+        def GetFaceByNormale(self, theBlock, theVector, theName=None):
             """
             Find a face of block, whose outside normale has minimal angle with the given vector.
 
             Parameters:
                 theBlock Block or a compound of blocks.
                 theVector Vector, close to the normale of the desired face.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the found face.
@@ -7959,6 +10411,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_Spanner.py
             anObj = self.BlocksOp.GetFaceByNormale(theBlock, theVector)
             RaiseIfFailed("GetFaceByNormale", self.BlocksOp)
+            self._autoPublish(anObj, theName, "face")
             return anObj
 
         ## Find all sub-shapes of type \a theShapeType of the given shape,
@@ -7969,10 +10422,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theTolerance The tolerance for distances comparison. All shapes
         #                      with distances to the given point in interval
         #                      [minimal_distance, minimal_distance + theTolerance] will be gathered.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM_Object, containing a group of all found shapes.
         #
         #  @ref swig_GetShapesNearPoint "Example"
-        def GetShapesNearPoint(self, theShape, thePoint, theShapeType, theTolerance = 1e-07):
+        def GetShapesNearPoint(self, theShape, thePoint, theShapeType, theTolerance = 1e-07, theName=None):
             """
             Find all sub-shapes of type theShapeType of the given shape,
             which have minimal distance to the given point.
@@ -7984,6 +10441,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theTolerance The tolerance for distances comparison. All shapes
                                 with distances to the given point in interval
                                 [minimal_distance, minimal_distance + theTolerance] will be gathered.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM_Object, containing a group of all found shapes.
@@ -7991,6 +10451,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestOthers.py
             anObj = self.BlocksOp.GetShapesNearPoint(theShape, thePoint, theShapeType, theTolerance)
             RaiseIfFailed("GetShapesNearPoint", self.BlocksOp)
+            self._autoPublish(anObj, theName, "group")
             return anObj
 
         # end of l3_blocks_op
@@ -8039,6 +10500,10 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
 
         ## Retrieve all non blocks solids and faces from \a theShape.
         #  @param theShape The shape to explore.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return A tuple of two GEOM_Objects. The first object is a group of all
         #          non block solids (= not 6 faces, or with 6 faces, but with the
         #          presence of non-quadrangular faces). The second object is a
@@ -8046,12 +10511,15 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #
         #  @ref tui_measurement_tools_page "Example 1"
         #  \n @ref swig_GetNonBlocks "Example 2"
-        def GetNonBlocks (self, theShape):
+        def GetNonBlocks (self, theShape, theName=None):
             """
             Retrieve all non blocks solids and faces from theShape.
 
             Parameters:
                 theShape The shape to explore.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 A tuple of two GEOM_Objects. The first object is a group of all
@@ -8065,6 +10533,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_Spanner.py
             aTuple = self.BlocksOp.GetNonBlocks(theShape)
             RaiseIfFailed("GetNonBlocks", self.BlocksOp)
+            self._autoPublish(aTuple, theName, ("groupNonHexas", "groupNonQuads"))
             return aTuple
 
         ## Remove all seam and degenerated edges from \a theShape.
@@ -8073,10 +10542,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theShape The compound or single solid to remove irregular edges from.
         #  @param doUnionFaces If True, then unite faces. If False (the default value),
         #         do not unite faces.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return Improved shape.
         #
         #  @ref swig_RemoveExtraEdges "Example"
-        def RemoveExtraEdges(self, theShape, doUnionFaces=False):
+        def RemoveExtraEdges(self, theShape, doUnionFaces=False, theName=None):
             """
             Remove all seam and degenerated edges from theShape.
             Unite faces and edges, sharing one surface. It means that
@@ -8086,6 +10559,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theShape The compound or single solid to remove irregular edges from.
                 doUnionFaces If True, then unite faces. If False (the default value),
                              do not unite faces.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 Improved shape.
@@ -8095,16 +10571,21 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             if doUnionFaces is True: nbFacesOptimum = 0 # 0 means unite faces
             anObj = self.BlocksOp.RemoveExtraEdges(theShape, nbFacesOptimum)
             RaiseIfFailed("RemoveExtraEdges", self.BlocksOp)
+            self._autoPublish(anObj, theName, "removeExtraEdges")
             return anObj
 
         ## Check, if the given shape is a blocks compound.
         #  Fix all detected errors.
         #    \note Single block can be also fixed by this method.
         #  @param theShape The compound to check and improve.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return Improved compound.
         #
         #  @ref swig_CheckAndImprove "Example"
-        def CheckAndImprove(self,theShape):
+        def CheckAndImprove(self, theShape, theName=None):
             """
             Check, if the given shape is a blocks compound.
             Fix all detected errors.
@@ -8114,6 +10595,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
 
             Parameters:
                 theShape The compound to check and improve.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 Improved compound.
@@ -8121,6 +10605,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestOthers.py
             anObj = self.BlocksOp.CheckAndImprove(theShape)
             RaiseIfFailed("CheckAndImprove", self.BlocksOp)
+            self._autoPublish(anObj, theName, "improved")
             return anObj
 
         # end of l4_blocks_measure
@@ -8133,12 +10618,17 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theCompound The compound to explode.
         #  @param theMinNbFaces If solid has lower number of faces, it is not a block.
         #  @param theMaxNbFaces If solid has higher number of faces, it is not a block.
-        #    \note If theMaxNbFaces = 0, the maximum number of faces is not restricted.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
+        #  @note If theMaxNbFaces = 0, the maximum number of faces is not restricted.
+        #
         #  @return List of GEOM.GEOM_Object, containing the retrieved blocks.
         #
         #  @ref tui_explode_on_blocks "Example 1"
         #  \n @ref swig_MakeBlockExplode "Example 2"
-        def MakeBlockExplode(self,theCompound, theMinNbFaces, theMaxNbFaces):
+        def MakeBlockExplode(self, theCompound, theMinNbFaces, theMaxNbFaces, theName=None):
             """
             Get all the blocks, contained in the given compound.
 
@@ -8146,6 +10636,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theCompound The compound to explode.
                 theMinNbFaces If solid has lower number of faces, it is not a block.
                 theMaxNbFaces If solid has higher number of faces, it is not a block.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Note:
                 If theMaxNbFaces = 0, the maximum number of faces is not restricted.
@@ -8160,16 +10653,21 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             for anObj in aList:
                 anObj.SetParameters(Parameters)
                 pass
+            self._autoPublish(aList, theName, "block")
             return aList
 
         ## Find block, containing the given point inside its volume or on boundary.
         #  @param theCompound Compound, to find block in.
         #  @param thePoint Point, close to the desired block. If the point lays on
         #         boundary between some blocks, we return block with nearest center.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the found block.
         #
         #  @ref swig_todo "Example"
-        def GetBlockNearPoint(self,theCompound, thePoint):
+        def GetBlockNearPoint(self, theCompound, thePoint, theName=None):
             """
             Find block, containing the given point inside its volume or on boundary.
 
@@ -8177,6 +10675,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theCompound Compound, to find block in.
                 thePoint Point, close to the desired block. If the point lays on
                          boundary between some blocks, we return block with nearest center.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the found block.
@@ -8184,21 +10685,29 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_Spanner.py
             anObj = self.BlocksOp.GetBlockNearPoint(theCompound, thePoint)
             RaiseIfFailed("GetBlockNearPoint", self.BlocksOp)
+            self._autoPublish(anObj, theName, "block")
             return anObj
 
         ## Find block, containing all the elements, passed as the parts, or maximum quantity of them.
         #  @param theCompound Compound, to find block in.
         #  @param theParts List of faces and/or edges and/or vertices to be parts of the found block.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the found block.
         #
         #  @ref swig_GetBlockByParts "Example"
-        def GetBlockByParts(self,theCompound, theParts):
+        def GetBlockByParts(self, theCompound, theParts, theName=None):
             """
              Find block, containing all the elements, passed as the parts, or maximum quantity of them.
 
              Parameters:
                 theCompound Compound, to find block in.
                 theParts List of faces and/or edges and/or vertices to be parts of the found block.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns: 
                 New GEOM_Object, containing the found block.
@@ -8206,21 +10715,29 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestOthers.py
             anObj = self.BlocksOp.GetBlockByParts(theCompound, theParts)
             RaiseIfFailed("GetBlockByParts", self.BlocksOp)
+            self._autoPublish(anObj, theName, "block")
             return anObj
 
         ## Return all blocks, containing all the elements, passed as the parts.
         #  @param theCompound Compound, to find blocks in.
         #  @param theParts List of faces and/or edges and/or vertices to be parts of the found blocks.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return List of GEOM.GEOM_Object, containing the found blocks.
         #
         #  @ref swig_todo "Example"
-        def GetBlocksByParts(self,theCompound, theParts):
+        def GetBlocksByParts(self, theCompound, theParts, theName=None):
             """
             Return all blocks, containing all the elements, passed as the parts.
 
             Parameters:
                 theCompound Compound, to find blocks in.
                 theParts List of faces and/or edges and/or vertices to be parts of the found blocks.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 List of GEOM.GEOM_Object, containing the found blocks.
@@ -8228,6 +10745,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_Spanner.py
             aList = self.BlocksOp.GetBlocksByParts(theCompound, theParts)
             RaiseIfFailed("GetBlocksByParts", self.BlocksOp)
+            self._autoPublish(aList, theName, "block")
             return aList
 
         ## Multi-transformate block and glue the result.
@@ -8236,11 +10754,16 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param DirFace1 ID of First direction face.
         #  @param DirFace2 ID of Second direction face.
         #  @param NbTimes Quantity of transformations to be done.
-        #    \note Unique ID of sub-shape can be obtained, using method GetSubShapeID().
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
+        #  @note Unique ID of sub-shape can be obtained, using method GetSubShapeID().
+        #
         #  @return New GEOM.GEOM_Object, containing the result shape.
         #
         #  @ref tui_multi_transformation "Example"
-        def MakeMultiTransformation1D(self,Block, DirFace1, DirFace2, NbTimes):
+        def MakeMultiTransformation1D(self, Block, DirFace1, DirFace2, NbTimes, theName=None):
             """
             Multi-transformate block and glue the result.
             Transformation is defined so, as to superpose direction faces.
@@ -8250,6 +10773,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 DirFace1 ID of First direction face.
                 DirFace2 ID of Second direction face.
                 NbTimes Quantity of transformations to be done.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Note:
                 Unique ID of sub-shape can be obtained, using method GetSubShapeID().
@@ -8262,6 +10788,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             anObj = self.BlocksOp.MakeMultiTransformation1D(Block, DirFace1, DirFace2, NbTimes)
             RaiseIfFailed("MakeMultiTransformation1D", self.BlocksOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "transformed")
             return anObj
 
         ## Multi-transformate block and glue the result.
@@ -8269,11 +10796,15 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param DirFace1U,DirFace2U IDs of Direction faces for the first transformation.
         #  @param DirFace1V,DirFace2V IDs of Direction faces for the second transformation.
         #  @param NbTimesU,NbTimesV Quantity of transformations to be done.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM.GEOM_Object, containing the result shape.
         #
         #  @ref tui_multi_transformation "Example"
-        def MakeMultiTransformation2D(self,Block, DirFace1U, DirFace2U, NbTimesU,
-                                      DirFace1V, DirFace2V, NbTimesV):
+        def MakeMultiTransformation2D(self, Block, DirFace1U, DirFace2U, NbTimesU,
+                                      DirFace1V, DirFace2V, NbTimesV, theName=None):
             """
             Multi-transformate block and glue the result.
 
@@ -8282,6 +10813,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 DirFace1U,DirFace2U IDs of Direction faces for the first transformation.
                 DirFace1V,DirFace2V IDs of Direction faces for the second transformation.
                 NbTimesU,NbTimesV Quantity of transformations to be done.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 New GEOM.GEOM_Object, containing the result shape.
@@ -8293,6 +10827,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                                                             DirFace1V, DirFace2V, NbTimesV)
             RaiseIfFailed("MakeMultiTransformation2D", self.BlocksOp)
             anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "transformed")
             return anObj
 
         ## Build all possible propagation groups.
@@ -8300,10 +10835,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  edge of this group directly or through other opposite edges.
         #  Notion of Opposite Edge make sence only on quadrangle face.
         #  @param theShape Shape to build propagation groups on.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return List of GEOM.GEOM_Object, each of them is a propagation group.
         #
         #  @ref swig_Propagate "Example"
-        def Propagate(self,theShape):
+        def Propagate(self, theShape, theName=None):
             """
             Build all possible propagation groups.
             Propagation group is a set of all edges, opposite to one (main)
@@ -8312,6 +10851,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
 
             Parameters:
                 theShape Shape to build propagation groups on.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 List of GEOM.GEOM_Object, each of them is a propagation group.
@@ -8319,6 +10861,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestOthers.py
             listChains = self.BlocksOp.Propagate(theShape)
             RaiseIfFailed("Propagate", self.BlocksOp)
+            self._autoPublish(listChains, theName, "propagate")
             return listChains
 
         # end of l3_blocks_op
@@ -8330,11 +10873,15 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         ## Creates a new group which will store sub-shapes of theMainShape
         #  @param theMainShape is a GEOM object on which the group is selected
         #  @param theShapeType defines a shape type of the group (see GEOM::shape_type)
-        #  @return a newly created GEOM group
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
+        #  @return a newly created GEOM group (GEOM.GEOM_Object)
         #
         #  @ref tui_working_with_groups_page "Example 1"
         #  \n @ref swig_CreateGroup "Example 2"
-        def CreateGroup(self,theMainShape, theShapeType):
+        def CreateGroup(self, theMainShape, theShapeType, theName=None):
             """
             Creates a new group which will store sub-shapes of theMainShape
 
@@ -8342,6 +10889,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                theMainShape is a GEOM object on which the group is selected
                theShapeType defines a shape type of the group:"COMPOUND", "COMPSOLID",
                             "SOLID", "SHELL", "FACE", "WIRE", "EDGE", "VERTEX", "SHAPE".
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                a newly created GEOM group
@@ -8353,6 +10903,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestOthers.py
             anObj = self.GroupOp.CreateGroup(theMainShape, theShapeType)
             RaiseIfFailed("CreateGroup", self.GroupOp)
+            self._autoPublish(anObj, theName, "group")
             return anObj
 
         ## Adds a sub-object with ID theSubShapeId to the group
@@ -8478,9 +11029,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  which are present in groups theGroup1 and theGroup2.
         #  @param theGroup1, theGroup2 are the initial GEOM groups
         #                              to create the united group from.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return a newly created GEOM group.
+        #
         #  @ref tui_union_groups_anchor "Example"
-        def UnionGroups (self, theGroup1, theGroup2):
+        def UnionGroups (self, theGroup1, theGroup2, theName=None):
             """
             Union of two groups.
             New group is created. It will contain all entities
@@ -8489,6 +11045,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             Parameters:
                 theGroup1, theGroup2 are the initial GEOM groups
                                      to create the united group from.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 a newly created GEOM group.
@@ -8496,15 +11055,21 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestOthers.py
             aGroup = self.GroupOp.UnionGroups(theGroup1, theGroup2)
             RaiseIfFailed("UnionGroups", self.GroupOp)
+            self._autoPublish(aGroup, theName, "group")
             return aGroup
 
         ## Intersection of two groups.
         #  New group is created. It will contain only those entities
         #  which are present in both groups theGroup1 and theGroup2.
         #  @param theGroup1, theGroup2 are the initial GEOM groups to get common part of.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return a newly created GEOM group.
+        #
         #  @ref tui_intersect_groups_anchor "Example"
-        def IntersectGroups (self, theGroup1, theGroup2):
+        def IntersectGroups (self, theGroup1, theGroup2, theName=None):
             """
             Intersection of two groups.
             New group is created. It will contain only those entities
@@ -8512,6 +11077,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
 
             Parameters:
                 theGroup1, theGroup2 are the initial GEOM groups to get common part of.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 a newly created GEOM group.
@@ -8519,6 +11087,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestOthers.py
             aGroup = self.GroupOp.IntersectGroups(theGroup1, theGroup2)
             RaiseIfFailed("IntersectGroups", self.GroupOp)
+            self._autoPublish(aGroup, theName, "group")
             return aGroup
 
         ## Cut of two groups.
@@ -8526,9 +11095,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  present in group theGroup1 but are not present in group theGroup2.
         #  @param theGroup1 is a GEOM group to include elements of.
         #  @param theGroup2 is a GEOM group to exclude elements of.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return a newly created GEOM group.
+        #
         #  @ref tui_cut_groups_anchor "Example"
-        def CutGroups (self, theGroup1, theGroup2):
+        def CutGroups (self, theGroup1, theGroup2, theName=None):
             """
             Cut of two groups.
             New group is created. It will contain entities which are
@@ -8537,6 +11111,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             Parameters:
                 theGroup1 is a GEOM group to include elements of.
                 theGroup2 is a GEOM group to exclude elements of.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 a newly created GEOM group.
@@ -8544,15 +11121,21 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestOthers.py
             aGroup = self.GroupOp.CutGroups(theGroup1, theGroup2)
             RaiseIfFailed("CutGroups", self.GroupOp)
+            self._autoPublish(aGroup, theName, "group")
             return aGroup
 
         ## Union of list of groups.
         #  New group is created. It will contain all entities that are
         #  present in groups listed in theGList.
         #  @param theGList is a list of GEOM groups to create the united group from.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return a newly created GEOM group.
+        #
         #  @ref tui_union_groups_anchor "Example"
-        def UnionListOfGroups (self, theGList):
+        def UnionListOfGroups (self, theGList, theName=None):
             """
             Union of list of groups.
             New group is created. It will contain all entities that are
@@ -8560,6 +11143,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
 
             Parameters:
                 theGList is a list of GEOM groups to create the united group from.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 a newly created GEOM group.
@@ -8567,6 +11153,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestOthers.py
             aGroup = self.GroupOp.UnionListOfGroups(theGList)
             RaiseIfFailed("UnionListOfGroups", self.GroupOp)
+            self._autoPublish(aGroup, theName, "group")
             return aGroup
 
         ## Cut of lists of groups.
@@ -8575,9 +11162,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  are not present in groups from theGList2.
         #  @param theGList1 is a list of GEOM groups to include elements of.
         #  @param theGList2 is a list of GEOM groups to exclude elements of.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return a newly created GEOM group.
+        #
         #  @ref tui_intersect_groups_anchor "Example"
-        def IntersectListOfGroups (self, theGList):
+        def IntersectListOfGroups (self, theGList, theName=None):
             """
             Cut of lists of groups.
             New group is created. It will contain only entities
@@ -8587,6 +11179,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             Parameters:
                 theGList1 is a list of GEOM groups to include elements of.
                 theGList2 is a list of GEOM groups to exclude elements of.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 a newly created GEOM group.
@@ -8594,6 +11189,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestOthers.py
             aGroup = self.GroupOp.IntersectListOfGroups(theGList)
             RaiseIfFailed("IntersectListOfGroups", self.GroupOp)
+            self._autoPublish(aGroup, theName, "group")
             return aGroup
 
         ## Cut of lists of groups.
@@ -8602,9 +11198,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  are not present in groups from theGList2.
         #  @param theGList1 is a list of GEOM groups to include elements of.
         #  @param theGList2 is a list of GEOM groups to exclude elements of.
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return a newly created GEOM group.
+        #
         #  @ref tui_cut_groups_anchor "Example"
-        def CutListOfGroups (self, theGList1, theGList2):
+        def CutListOfGroups (self, theGList1, theGList2, theName=None):
             """
             Cut of lists of groups.
             New group is created. It will contain only entities
@@ -8614,6 +11215,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             Parameters:
                 theGList1 is a list of GEOM groups to include elements of.
                 theGList2 is a list of GEOM groups to exclude elements of.
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 a newly created GEOM group.
@@ -8621,6 +11225,7 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
             # Example: see GEOM_TestOthers.py
             aGroup = self.GroupOp.CutListOfGroups(theGList1, theGList2)
             RaiseIfFailed("CutListOfGroups", self.GroupOp)
+            self._autoPublish(aGroup, theName, "group")
             return aGroup
 
         ## Returns a list of sub-objects ID stored in the group
@@ -8796,9 +11401,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param max_length maximum length of edges of theShape
         #  @param include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
         #  @param include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return a newly created GEOM group of edges
+        #
         #  @@ref swig_todo "Example"
-        def GetEdgesByLength (self, theShape, min_length, max_length, include_min = 1, include_max = 1):
+        def GetEdgesByLength (self, theShape, min_length, max_length, include_min = 1, include_max = 1, theName=None):
             """
             Create group of edges of theShape, whose length is in range [min_length, max_length].
             If include_min/max == 0, edges with length == min/max_length will not be included in result.
@@ -8809,6 +11419,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 max_length maximum length of edges of theShape
                 include_max indicating if edges with length == max_length should be included in result, 1-yes, 0-no (default=1)
                 include_min indicating if edges with length == min_length should be included in result, 1-yes, 0-no (default=1)
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
              Returns:
                 a newly created GEOM group of edges.
@@ -8828,9 +11441,10 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
 
             if len(edges_in_range) <= 0:
                 print "No edges found by given criteria"
-                return 0
+                return None
 
-            group_edges = self.CreateGroup(theShape, ShapeType["EDGE"])
+            # note: auto-publishing is done in self.CreateGroup()
+            group_edges = self.CreateGroup(theShape, ShapeType["EDGE"], theName)
             self.UnionList(group_edges, edges_in_range)
 
             return group_edges
@@ -8904,10 +11518,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theP1 1st junction point of main pipe
         #  @param theP2 2nd junction point of main pipe
         #  @param theP3 Junction point of incident pipe
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return List of GEOM.GEOM_Object, containing the created shape and propagation groups.
         #
         #  @ref tui_creation_pipetshape "Example"
-        def MakePipeTShape(self, theR1, theW1, theL1, theR2, theW2, theL2, theHexMesh=True, theP1=None, theP2=None, theP3=None):
+        def MakePipeTShape(self, theR1, theW1, theL1, theR2, theW2, theL2, theHexMesh=True, theP1=None, theP2=None, theP3=None, theName=None):
             """
             Create a T-shape object with specified caracteristics for the main
             and the incident pipes (radius, width, half-length).
@@ -8927,6 +11545,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theP1 1st junction point of main pipe
                 theP2 2nd junction point of main pipe
                 theP3 Junction point of incident pipe
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 List of GEOM_Object, containing the created shape and propagation groups.
@@ -8944,6 +11565,8 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 anObj = self.AdvOp.MakePipeTShape(theR1, theW1, theL1, theR2, theW2, theL2, theHexMesh)
             RaiseIfFailed("MakePipeTShape", self.AdvOp)
             if Parameters: anObj[0].SetParameters(Parameters)
+            def_names = [ "pipeTShape" ] + [ "pipeTShape_grp_%d" % i for i in range(1, len(anObj)) ]
+            self._autoPublish(anObj, _toListOfNames(theName, len(anObj)), def_names)
             return anObj
 
         ## Create a T-shape object with chamfer and with specified caracteristics for the main
@@ -8965,10 +11588,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theP1 1st junction point of main pipe
         #  @param theP2 2nd junction point of main pipe
         #  @param theP3 Junction point of incident pipe
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return List of GEOM.GEOM_Object, containing the created shape and propagation groups.
         #
         #  @ref tui_creation_pipetshape "Example"
-        def MakePipeTShapeChamfer(self, theR1, theW1, theL1, theR2, theW2, theL2, theH, theW, theHexMesh=True, theP1=None, theP2=None, theP3=None):
+        def MakePipeTShapeChamfer(self, theR1, theW1, theL1, theR2, theW2, theL2, theH, theW, theHexMesh=True, theP1=None, theP2=None, theP3=None, theName=None):
             """
             Create a T-shape object with chamfer and with specified caracteristics for the main
             and the incident pipes (radius, width, half-length). The chamfer is
@@ -8991,6 +11618,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theP1 1st junction point of main pipe
                 theP2 2nd junction point of main pipe
                 theP3 Junction point of incident pipe
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
                 List of GEOM_Object, containing the created shape and propagation groups.
@@ -9008,6 +11638,8 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
               anObj = self.AdvOp.MakePipeTShapeChamfer(theR1, theW1, theL1, theR2, theW2, theL2, theH, theW, theHexMesh)
             RaiseIfFailed("MakePipeTShapeChamfer", self.AdvOp)
             if Parameters: anObj[0].SetParameters(Parameters)
+            def_names = [ "pipeTShape" ] + [ "pipeTShape_grp_%d" % i for i in range(1, len(anObj)) ]
+            self._autoPublish(anObj, _toListOfNames(theName, len(anObj)), def_names)
             return anObj
 
         ## Create a T-shape object with fillet and with specified caracteristics for the main
@@ -9028,10 +11660,14 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theP1 1st junction point of main pipe
         #  @param theP2 2nd junction point of main pipe
         #  @param theP3 Junction point of incident pipe
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return List of GEOM.GEOM_Object, containing the created shape and propagation groups.
         #
         #  @ref tui_creation_pipetshape "Example"
-        def MakePipeTShapeFillet(self, theR1, theW1, theL1, theR2, theW2, theL2, theRF, theHexMesh=True, theP1=None, theP2=None, theP3=None):
+        def MakePipeTShapeFillet(self, theR1, theW1, theL1, theR2, theW2, theL2, theRF, theHexMesh=True, theP1=None, theP2=None, theP3=None, theName=None):
             """
             Create a T-shape object with fillet and with specified caracteristics for the main
             and the incident pipes (radius, width, half-length). The fillet is
@@ -9053,6 +11689,9 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
                 theP1 1st junction point of main pipe
                 theP2 2nd junction point of main pipe
                 theP3 Junction point of incident pipe
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
                 
             Returns:
                 List of GEOM_Object, containing the created shape and propagation groups.
@@ -9071,6 +11710,8 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
               anObj = self.AdvOp.MakePipeTShapeFillet(theR1, theW1, theL1, theR2, theW2, theL2, theRF, theHexMesh)
             RaiseIfFailed("MakePipeTShapeFillet", self.AdvOp)
             if Parameters: anObj[0].SetParameters(Parameters)
+            def_names = [ "pipeTShape" ] + [ "pipeTShape_grp_%d" % i for i in range(1, len(anObj)) ]
+            self._autoPublish(anObj, _toListOfNames(theName, len(anObj)), def_names)
             return anObj
 
         ## This function allows creating a disk already divided into blocks. It
@@ -9079,14 +11720,35 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theOrientation Orientation of the plane on which the disk will be built
         #         1 = XOY, 2 = OYZ, 3 = OZX
         #  @param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM_Object, containing the created shape.
         #
         #  @ref tui_creation_divideddisk "Example"
-        def MakeDividedDisk(self, theR, theOrientation, thePattern ):
+        def MakeDividedDisk(self, theR, theOrientation, thePattern, theName=None):
+            """
+            Creates a disk, divided into blocks. It can be used to create divided pipes
+            for later meshing in hexaedra.
+
+            Parameters:
+                theR Radius of the disk
+                theOrientation Orientation of the plane on which the disk will be built:
+                               1 = XOY, 2 = OYZ, 3 = OZX
+                thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
+
+            Returns:
+                New GEOM_Object, containing the created shape.
+            """
             theR, Parameters = ParseParameters(theR)
             anObj = self.AdvOp.MakeDividedDisk(theR, 67.0, theOrientation, thePattern)
             RaiseIfFailed("MakeDividedDisk", self.AdvOp)
             if Parameters: anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "dividedDisk")
             return anObj
             
         ## This function allows creating a disk already divided into blocks. It
@@ -9095,28 +11757,68 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theVector Normal vector to the plane of the created disk
         #  @param theRadius Radius of the disk
         #  @param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM_Object, containing the created shape.
         #
         #  @ref tui_creation_divideddisk "Example"
-        def MakeDividedDiskPntVecR(self, theCenter, theVector, theRadius, thePattern):
+        def MakeDividedDiskPntVecR(self, theCenter, theVector, theRadius, thePattern, theName=None):
+            """
+            Creates a disk already divided into blocks. It can be used to create divided pipes
+            for later meshing in hexaedra.
+
+            Parameters:
+                theCenter Center of the disk
+                theVector Normal vector to the plane of the created disk
+                theRadius Radius of the disk
+                thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
+
+            Returns:
+                New GEOM_Object, containing the created shape.
+            """
             theRadius, Parameters = ParseParameters(theRadius)
             anObj = self.AdvOp.MakeDividedDiskPntVecR(theCenter, theVector, theRadius, 67.0, thePattern)
             RaiseIfFailed("MakeDividedDiskPntVecR", self.AdvOp)
             if Parameters: anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "dividedDisk")
             return anObj
 
         ## Builds a cylinder prepared for hexa meshes
         #  @param theR Radius of the cylinder
         #  @param theH Height of the cylinder
         #  @param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
         #  @return New GEOM_Object, containing the created shape.
         #
         #  @ref tui_creation_dividedcylinder "Example"
-        def MakeDividedCylinder(self, theR, theH, thePattern):
+        def MakeDividedCylinder(self, theR, theH, thePattern, theName=None):
+            """
+            Builds a cylinder prepared for hexa meshes
+
+            Parameters:
+                theR Radius of the cylinder
+                theH Height of the cylinder
+                thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
+
+            Returns:
+                New GEOM_Object, containing the created shape.
+            """
             theR, theH, Parameters = ParseParameters(theR, theH)
             anObj = self.AdvOp.MakeDividedCylinder(theR, theH, thePattern)
             RaiseIfFailed("MakeDividedCylinder", self.AdvOp)
             if Parameters: anObj.SetParameters(Parameters)
+            self._autoPublish(anObj, theName, "dividedCylinder")
             return anObj
 
         #@@ insert new functions before this line @@ do not remove this line @@#
@@ -9129,22 +11831,33 @@ class geompyDC(object, GEOM._objref_GEOM_Gen):
         #  @param theOriginal geometry object for copy
         #  @return unique object identifier
         #  @ingroup l1_geompyDC_auxiliary
+        #  @param theName Object name; when specified, this parameter is used
+        #         for result publication in the study. Otherwise, if automatic
+        #         publication is switched on, default value is used for result name.
+        #
+        #  @return New GEOM_Object, containing the copied shape.
+        #
+        #  @ingroup l1_geompy_auxiliary
         #  @ref swig_MakeCopy "Example"
-        def MakeCopy(self,theOriginal):
+        def MakeCopy(self, theOriginal, theName=None):
             """
             Create a copy of the given object
 
             Paremeters:
                 theOriginal geometry object for copy
+                theName Object name; when specified, this parameter is used
+                        for result publication in the study. Otherwise, if automatic
+                        publication is switched on, default value is used for result name.
 
             Returns:
-                unique object identifier
+                New GEOM_Object, containing the copied shape.
 
             Example of usage: Copy = geompy.MakeCopy(Box)
             """
             # Example: see GEOM_TestAll.py
             anObj = self.InsertOp.MakeCopy(theOriginal)
             RaiseIfFailed("MakeCopy", self.InsertOp)
+            self._autoPublish(anObj, theName, "copy")
             return anObj
 
         ## Add Path to load python scripts from