<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Objects with tags inside python generator]]></title><description><![CDATA[<p dir="auto"><em>On 17/09/2015 at 11:52, <strong>xxxxxxxx</strong> wrote:</em></p>
<p dir="auto">Hi, I'm very newbie with python so I hope you can help me with this little problem.</p>
<p dir="auto">I'm trying to make python generator object where you can link object (spline, primitive, polygon, cloner, matrix) and python generator object will make clone to every vertex point to that linked object. Clones are spline text objects so you can visualize vertex points' or clones' id's.</p>
<p dir="auto">My setup is now pretty complicated. I have python generator object that takes object link input via userdata. Python generator makes cloner object and cloner is set to object mode and it uses linked object as object. There is also dummy cloner object and xpresso tag which I'm using to get count of clones in cloner. Python generator gets total count via userdata. This setup is working actually pretty well but I'm trying to optimize it that one python generator could do everything.</p>
<p dir="auto"><strong>TL;DR</strong><br />
I have no idea how can insert xpresso tag to object with python generator and put some nodes and connections to that xpresso tag. Also I don't know how can I add or edit userdata input with python generator. Is that even possible? Python documentation is very confusing with this section.</p>
<p dir="auto">Second way to do this what I tried was to import mograph module and try to get clones count with GeGetMoData(op) command. But looks like it works only with python effector not with python generator. Am I right?</p>
<p dir="auto">I can give link to my current file if needed.</p>
<p dir="auto">Any help will be appreciated. <img src="http://developers.maxon.net/forum/assets/plugins/nodebb-plugin-emoji/emoji/android/1f44d.png?v=0b8ddba251d" class="not-responsive emoji emoji-android emoji--+1" style="height:23px;width:auto;vertical-align:middle" title=":thumbsup:" alt="👍" /></p>
]]></description><link>http://developers.maxon.net/forum/topic/9072/12048_objects-with-tags-inside-python-generator</link><generator>RSS for Node</generator><lastBuildDate>Wed, 24 Jun 2026 05:59:06 GMT</lastBuildDate><atom:link href="http://developers.maxon.net/forum/topic/9072.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 10 May 2018 16:11:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Objects with tags inside python generator on Thu, 10 May 2018 16:11:24 GMT]]></title><description><![CDATA[<p dir="auto"><em>On 25/09/2015 at 09:05, <strong>xxxxxxxx</strong> wrote:</em></p>
<p dir="auto">Hello,</p>
<p dir="auto">it seems that you are using the "op" variable in line 6 of your code. In the code you provided "basenodeobjectoutput" is not defined.</p>
<p dir="auto">You are creating a Object Node without defining what object this node should reference. You can define the referenced object by setting the GV_OBJECT_OBJECT_ID parameter. Something like this:</p>
<pre><code>  
objectNode.SetParameter(c4d.GV_OBJECT_OBJECT_ID, linkedObject, c4d.DESCFLAGS_SET_0)  
</code></pre>
<p dir="auto">best wishes,<br />
Sebastian</p>
]]></description><link>http://developers.maxon.net/forum/post/46655</link><guid isPermaLink="true">http://developers.maxon.net/forum/post/46655</guid><dc:creator><![CDATA[Helper]]></dc:creator><pubDate>Thu, 10 May 2018 16:11:24 GMT</pubDate></item><item><title><![CDATA[Reply to Objects with tags inside python generator on Thu, 10 May 2018 16:11:23 GMT]]></title><description><![CDATA[<p dir="auto"><em>On 24/09/2015 at 14:01, <strong>xxxxxxxx</strong> wrote:</em></p>
<p dir="auto">Hello,</p>
<p dir="auto">I'm using this code in Python Generator.</p>
<pre><code>import c4d  
  
def main() :  
  nul = c4d.BaseObject(5140)                                      # create a null  
  clr = c4d.BaseObject(1018544)                                   # create a cloner  
  link = op[c4d.ID_USERDATA,2]                                    # object  
  num = 5                                                         # number  
  userdata = c4d.GetCustomDatatypeDefault(c4d.DTYPE_BASELISTLINK) # user data type  
  userdata[c4d.DESC_NAME] = "Object Data"                         # user data name  
  clr.InsertUnder(nul)                                            # insert cloner under the null  
  clr[c4d.ID_MG_MOTIONGENERATOR_MODE] = 0                         # set cloner to object mode  
  clr[c4d.MG_OBJECT_LINK] = link                                  # link object to cloner  
   
  ###     
   
  # create user data field  
  linkobject = clr.AddUserData(userdata)  
  clr[linkobject] = clr  
  
  # xpresso stuff  
  xpressotag = c4d.BaseTag(c4d.Texpresso)  
  clr.InsertTag(xpressotag)  
  nodemaster = xpressotag.GetNodeMaster()  
    
  # create nodes  
  basenode = nodemaster.CreateNode(nodemaster.GetRoot(), c4d.ID_OPERATOR_OBJECT, None, 100, 100)  
  datanode = nodemaster.CreateNode(nodemaster.GetRoot(), 1019010, None, 0, 0)  
    
  # create ports  
  basenode.AddPort(c4d.GV_PORT_OUTPUT, c4d.DescID\  
  (c4d.DescLevel(c4d.ID_USERDATA, c4d.DTYPE_SUBCONTAINER, 0), c4d.DescLevel(1)), message = True)  
    
  # create connections  
  basenodeobjectoutput = basenode.GetOutPort(0)  
    
  datanodeinput = datanode.GetInPort(0)  
  datanodeoutput = datanode.GetOutPort(0)  
    
  basenodeobjectoutput.Connect(datanodeinput)                     # &lt;&lt; error &gt;&gt;  
  
  ####  
  
  for i in xrange(num) :  
      obj = c4d.BaseObject(5159)                                  # base spline text  
      obj.InsertUnderLast(clr)                                    # insert clone under the cloner  
  
  # return final object  
  return nul  
</code></pre>
<p dir="auto">If I don't insert cloner under the null object I don't get user data tab to the cloner.</p>
]]></description><link>http://developers.maxon.net/forum/post/46654</link><guid isPermaLink="true">http://developers.maxon.net/forum/post/46654</guid><dc:creator><![CDATA[Helper]]></dc:creator><pubDate>Thu, 10 May 2018 16:11:23 GMT</pubDate></item><item><title><![CDATA[Reply to Objects with tags inside python generator on Thu, 10 May 2018 16:11:23 GMT]]></title><description><![CDATA[<p dir="auto"><em>On 24/09/2015 at 09:40, <strong>xxxxxxxx</strong> wrote:</em></p>
<p dir="auto">Hello,</p>
<p dir="auto">what code do you use in your Python Generator?</p>
<p dir="auto">Best wishes,<br />
Sebastian</p>
]]></description><link>http://developers.maxon.net/forum/post/46653</link><guid isPermaLink="true">http://developers.maxon.net/forum/post/46653</guid><dc:creator><![CDATA[Helper]]></dc:creator><pubDate>Thu, 10 May 2018 16:11:23 GMT</pubDate></item><item><title><![CDATA[Reply to Objects with tags inside python generator on Thu, 10 May 2018 16:11:23 GMT]]></title><description><![CDATA[<p dir="auto"><em>On 24/09/2015 at 07:21, <strong>xxxxxxxx</strong> wrote:</em></p>
<p dir="auto">Hi,</p>
<p dir="auto">I know that. I'm not using op variable in Python Generator.</p>
]]></description><link>http://developers.maxon.net/forum/post/46652</link><guid isPermaLink="true">http://developers.maxon.net/forum/post/46652</guid><dc:creator><![CDATA[Helper]]></dc:creator><pubDate>Thu, 10 May 2018 16:11:23 GMT</pubDate></item><item><title><![CDATA[Reply to Objects with tags inside python generator on Thu, 10 May 2018 16:11:23 GMT]]></title><description><![CDATA[<p dir="auto"><em>On 24/09/2015 at 00:53, <strong>xxxxxxxx</strong> wrote:</em></p>
<p dir="auto">Hello,</p>
<p dir="auto">in a Script Manager script "<em>op</em>" refers to the currently selected object. In a Python Generator it refers to the Generator Object. Maybe this is the difference.</p>
<p dir="auto">Best wishes,<br />
Sebastian</p>
]]></description><link>http://developers.maxon.net/forum/post/46651</link><guid isPermaLink="true">http://developers.maxon.net/forum/post/46651</guid><dc:creator><![CDATA[Helper]]></dc:creator><pubDate>Thu, 10 May 2018 16:11:23 GMT</pubDate></item><item><title><![CDATA[Reply to Objects with tags inside python generator on Thu, 10 May 2018 16:11:23 GMT]]></title><description><![CDATA[<p dir="auto"><em>On 23/09/2015 at 12:48, <strong>xxxxxxxx</strong> wrote:</em></p>
<p dir="auto">Hi,</p>
<p dir="auto">I'm having now weird problems. Adding object port with DescID is not working. I'm using command:</p>
<pre><code>basenode.AddPort(c4d.GV_PORT_OUTPUT, c4d.DescID(c4d.DescLevel(c4d.ID_USERDATA, c4d.DTYPE_SUBCONTAINER, 0), c4d.DescLevel(1)), message = True)
</code></pre>
<p dir="auto">I "emulated" the problem with manually made objects and script manager.</p>
<p dir="auto">Null<br />
--&gt;Cloner</p>
<p dir="auto">This code works perfectly:</p>
<pre><code>import c4d  
  
def main() :  
  #doc = c4d.documents.GetActiveDocument()  
  #pointobject = doc.GetActiveObject()  
     
  userdata = c4d.GetCustomDatatypeDefault(c4d.DTYPE_BASELISTLINK)  
  userdata[c4d.DESC_NAME] = "Object Data"  
  
  child = op.GetDown()  
    
  linkobject = child.AddUserData(userdata)  
  child[linkobject] = child  
  
  xpressotag = c4d.BaseTag(c4d.Texpresso)  
  xpressotag.SetName("PointLock XPresso")  
    
  child.InsertTag(xpressotag)  
    
  nodemaster = xpressotag.GetNodeMaster()  
  basenode = nodemaster.CreateNode(nodemaster.GetRoot(), c4d.ID_OPERATOR_OBJECT, None, 100, 100)  
    
  basenodeobjectoutput = basenode.AddPort(c4d.GV_PORT_OUTPUT, c4d.DescID(c4d.DescLevel(c4d.ID_USERDATA, c4d.DTYPE_SUBCONTAINER, 0),\  
c4d.DescLevel(1)), message = True)  
    
  #basenodepositionoutput = basenode.AddPort(c4d.GV_PORT_OUTPUT, c4d.ID_BASEOBJECT_REL_POSITION)  
  #c4d.modules.graphview.RedrawMaster(nodemaster)  
  
    
  c4d.EventAdd()  
  
if __name__=='__main__':  
  main()
</code></pre>
<p dir="auto">But when I try to run same kind of code with python generator it is not making the object port. I also first need to insert cloner under null object and return the null to get user data field to cloner. If I try to return only the cloner it comes without user data. Is it the bug or do I need to play with DescID?</p>
]]></description><link>http://developers.maxon.net/forum/post/46650</link><guid isPermaLink="true">http://developers.maxon.net/forum/post/46650</guid><dc:creator><![CDATA[Helper]]></dc:creator><pubDate>Thu, 10 May 2018 16:11:23 GMT</pubDate></item><item><title><![CDATA[Reply to Objects with tags inside python generator on Thu, 10 May 2018 16:11:23 GMT]]></title><description><![CDATA[<p dir="auto"><em>On 23/09/2015 at 00:28, <strong>xxxxxxxx</strong> wrote:</em></p>
<p dir="auto">Thank you so much!</p>
<p dir="auto">Now everything makes sense. Now I'm gonna work with this my thing and I will share the final product when and if I get it done.</p>
]]></description><link>http://developers.maxon.net/forum/post/46649</link><guid isPermaLink="true">http://developers.maxon.net/forum/post/46649</guid><dc:creator><![CDATA[Helper]]></dc:creator><pubDate>Thu, 10 May 2018 16:11:23 GMT</pubDate></item><item><title><![CDATA[Reply to Objects with tags inside python generator on Thu, 10 May 2018 16:11:22 GMT]]></title><description><![CDATA[<p dir="auto"><em>On 22/09/2015 at 10:21, <strong>xxxxxxxx</strong> wrote:</em></p>
<p dir="auto">Hello,</p>
<p dir="auto">the problem is that the ports could not be found. Access the ports by the index:</p>
<pre><code>  
portA = mathNode.GetInPort(0)  
portB = formulaNode.GetOutPort(0)  
  
portA.Connect(portB)  
</code></pre>
<p dir="auto">best wishes,<br />
Sebastian</p>
]]></description><link>http://developers.maxon.net/forum/post/46648</link><guid isPermaLink="true">http://developers.maxon.net/forum/post/46648</guid><dc:creator><![CDATA[Helper]]></dc:creator><pubDate>Thu, 10 May 2018 16:11:22 GMT</pubDate></item><item><title><![CDATA[Reply to Objects with tags inside python generator on Thu, 10 May 2018 16:11:22 GMT]]></title><description><![CDATA[<p dir="auto"><em>On 22/09/2015 at 07:14, <strong>xxxxxxxx</strong> wrote:</em></p>
<p dir="auto">Hi and thanks,</p>
<p dir="auto">So there is way to go around that object port bug with user data field. Very nice!</p>
<p dir="auto">I'm also able to add other kind of ports to nodes, but when I try to connect two ports together, no matter what nodes type is, I get error message: **AttributeError: 'NoneTpye' object has no attribute 'Connect'.<br />
**<br />
Sample code</p>
<pre><code>formulaNode = nm.CreateNode(nm.GetRoot(), 400001133, None, 0, 0)  
mathNode = nm.CreateNode(nm.GetRoot(), 400001121, None, 0, 0)  
    
portA = mathNode.GetPort(c4d.GV_MATH_INPUT)  
portB = formulaNode.GetPort(c4d.GV_FORMULA_OUTPUT)  
        
portA.Connect(portB)
</code></pre>
]]></description><link>http://developers.maxon.net/forum/post/46647</link><guid isPermaLink="true">http://developers.maxon.net/forum/post/46647</guid><dc:creator><![CDATA[Helper]]></dc:creator><pubDate>Thu, 10 May 2018 16:11:22 GMT</pubDate></item><item><title><![CDATA[Reply to Objects with tags inside python generator on Thu, 10 May 2018 16:11:22 GMT]]></title><description><![CDATA[<p dir="auto"><em>On 22/09/2015 at 00:16, <strong>xxxxxxxx</strong> wrote:</em></p>
<p dir="auto">Hello,</p>
<p dir="auto">currently there is a bug with creating object ports. See "<a href="https://developers.maxon.net/forum/topic/8310/10841_objectoperatorobjectout" target="_blank" rel="noopener noreferrer nofollow ugc">OBJECT_OPERATOR_OBJECT_OUT</a>".</p>
<p dir="auto">best wishes,<br />
Sebastian</p>
]]></description><link>http://developers.maxon.net/forum/post/46646</link><guid isPermaLink="true">http://developers.maxon.net/forum/post/46646</guid><dc:creator><![CDATA[Helper]]></dc:creator><pubDate>Thu, 10 May 2018 16:11:22 GMT</pubDate></item><item><title><![CDATA[Reply to Objects with tags inside python generator on Thu, 10 May 2018 16:11:22 GMT]]></title><description><![CDATA[<p dir="auto"><em>On 21/09/2015 at 13:31, <strong>xxxxxxxx</strong> wrote:</em></p>
<p dir="auto">Nice! Thank you.</p>
<p dir="auto">I'm able to get node's ID with this script. I leave it here so it might be helpful for those who are struggling with same problem.</p>
<p dir="auto">(Run in Script Manager)</p>
<pre><code>import c4d  
  
# make xpresso tag and node manually  
# select xpresso tag and run the script  
  
def main() :  
  selection = doc.GetSelection()  
    
  for x in selection:  
        
      nm = x.GetNodeMaster()  
      root = nm.GetRoot()  
    
      firstNode = root.GetDown()          
      firstNodeID = firstNode.GetOperatorID()  
        
      print firstNodeID  
    
  c4d.EventAdd()  
  
if __name__=='__main__':  
  main()  
</code></pre>
<p dir="auto">I'm almost there. Messing with ports are now giving me a headache.</p>
<pre><code>nm = x.GetNodeMaster()  
root = nm.GetRoot()  
  
objectNode = nm.CreateNode(nm.GetRoot(), 400001000, None, 0, 0)  
objectIndexNode = nm.CreateNode(nm.GetRoot(), 400001152, None, 0, 0)  
  
# Check it is OK to add port?  
print objectNode.AddPortIsOK(c4d.GV_PORT_INPUT, c4d.GV_OBJECT_OPERATOR_OBJECT_IN)  
 **# prints True - everything should be fine**  
  
# Try to add port  
objectNode.AddPort(c4d.GV_PORT_INPUT, c4d.GV_OBJECT_OPERATOR_OBJECT_IN)  
 **# Nothing happens - port does not appear**  
  
# Try to connect two ports  
portA_IN = objectNode.GetInPort(0)  
portB_OUT = objectIndexNode.GetOutPort(0)         
portA_IN.Connect(portB_OUT)  
 **# AttributeError: 'NoneType' object has no attribute 'Connect'** 
</code></pre>
<p dir="auto">I'm not sure what is wrong.</p>
]]></description><link>http://developers.maxon.net/forum/post/46645</link><guid isPermaLink="true">http://developers.maxon.net/forum/post/46645</guid><dc:creator><![CDATA[Helper]]></dc:creator><pubDate>Thu, 10 May 2018 16:11:22 GMT</pubDate></item><item><title><![CDATA[Reply to Objects with tags inside python generator on Thu, 10 May 2018 16:11:22 GMT]]></title><description><![CDATA[<p dir="auto"><em>On 21/09/2015 at 09:42, <strong>xxxxxxxx</strong> wrote:</em></p>
<p dir="auto">Hello,</p>
<p dir="auto">like most classes of the API, <a href="https://developers.maxon.net/docs/py/2023_2/modules/c4d.modules/graphview/GvNode/index.html?highlight=gvnode" target="_blank" rel="noopener noreferrer nofollow ugc">GvNode </a>ist based on <a href="https://developers.maxon.net/docs/py/2023_2/modules/c4d/C4DAtom/GeListNode/BaseList2D/index.html#c4d.BaseList2D" target="_blank" rel="noopener noreferrer nofollow ugc">BaseList2D </a>and <a href="https://developers.maxon.net/docs/py/2023_2/modules/c4d/C4DAtom/GeListNode/index.html#c4d.GeListNode" target="_blank" rel="noopener noreferrer nofollow ugc">GeListNode</a>. This means you can get the child objects of the root node with <a href="https://developers.maxon.net/docs/py/2023_2/modules/c4d/C4DAtom/GeListNode/index.html#GeListNode.GetDown" target="_blank" rel="noopener noreferrer nofollow ugc">GeListNode.GetDown()</a>. Then you can loop through the nodes using <a href="https://developers.maxon.net/docs/py/2023_2/modules/c4d/C4DAtom/GeListNode/index.html#GeListNode.GetNext" target="_blank" rel="noopener noreferrer nofollow ugc">GeListNode. GetNext()</a>.</p>
<p dir="auto">As long as your questions are related to the topic of creating Xpresso nodes you can continue in this threads. For other questions please open a new thread.</p>
<p dir="auto">Best wishes,<br />
Sebastian</p>
]]></description><link>http://developers.maxon.net/forum/post/46644</link><guid isPermaLink="true">http://developers.maxon.net/forum/post/46644</guid><dc:creator><![CDATA[Helper]]></dc:creator><pubDate>Thu, 10 May 2018 16:11:22 GMT</pubDate></item><item><title><![CDATA[Reply to Objects with tags inside python generator on Thu, 10 May 2018 16:11:22 GMT]]></title><description><![CDATA[<p dir="auto"><em>On 21/09/2015 at 07:15, <strong>xxxxxxxx</strong> wrote:</em></p>
<p dir="auto">Thanks again Sebastian,</p>
<p dir="auto">I feel really stupid to ask this, but how can I call manually made xpresso node when I don't know its ID? There is no any command like GetFirstNode(). As far I can get is to call the main XGroup with this code:</p>
<pre><code>nm = x.GetNodeMaster()  
root = nm.GetRoot()  
owner = nm.GetOwner()  
print root
</code></pre>
<p dir="auto">I'm sorry that I keep asking different questions in this same topic. Should I make everytime new topic for every question?</p>
]]></description><link>http://developers.maxon.net/forum/post/46643</link><guid isPermaLink="true">http://developers.maxon.net/forum/post/46643</guid><dc:creator><![CDATA[Helper]]></dc:creator><pubDate>Thu, 10 May 2018 16:11:22 GMT</pubDate></item><item><title><![CDATA[Reply to Objects with tags inside python generator on Thu, 10 May 2018 16:11:21 GMT]]></title><description><![CDATA[<p dir="auto"><em>On 21/09/2015 at 00:35, <strong>xxxxxxxx</strong> wrote:</em></p>
<p dir="auto">Hello,</p>
<p dir="auto">the Mograph Xpresso Nodes are no core nodes so they are not documented. You can get the ID of a given node by creating it manually and getting its ID with <a href="https://developers.maxon.net/docs/py/2023_2/modules/c4d.modules/graphview/GvNode/index.html#GvNode.GetOperatorID" target="_blank" rel="noopener noreferrer nofollow ugc">GetOperatorID()</a>. In the case of the Data node the ID is <em>1019010</em>.</p>
<p dir="auto">The IDs or symbols of the ports can be found in the corresponding header file or in the <a href="https://developers.maxon.net/docs/cpp/2023_2/gvmograph__data_8h.html" target="_blank" rel="noopener noreferrer nofollow ugc">C++ documentation</a>.</p>
<p dir="auto">Best wishes,<br />
Sebastian</p>
]]></description><link>http://developers.maxon.net/forum/post/46642</link><guid isPermaLink="true">http://developers.maxon.net/forum/post/46642</guid><dc:creator><![CDATA[Helper]]></dc:creator><pubDate>Thu, 10 May 2018 16:11:21 GMT</pubDate></item><item><title><![CDATA[Reply to Objects with tags inside python generator on Thu, 10 May 2018 16:11:21 GMT]]></title><description><![CDATA[<p dir="auto"><em>On 18/09/2015 at 06:16, <strong>xxxxxxxx</strong> wrote:</em></p>
<p dir="auto">Hi and thank you very much!</p>
<p dir="auto">Now I can create a xpresso tag to cloner object inside python generator, but where can i find xpresso nodes port ids so I can add them to the node? Can you only use nodes which are in this list (<code>Graph View Node Types</code>[URL-REMOVED])? I can't find any Motion Graphics nodes.</p>
<pre><code># create a xpresso tag  
tag = c4d.BaseTag(c4d.Texpresso)  
  
# insert xpresso tag to cloner  
clr.InsertTag(tag)  
  
nodeMaster = tag.GetNodeMaster()  
  
# create xpresso node (New Node &gt; Motion Graphics &gt; Data)  
modataNode = nodeMaster.CreateNode(nodeMaster.GetRoot(),c4d.ID_OPERATOR_MOGRAPH_DATA?, None, 0, 0)  
  
# add position port  
modataNode.AddPort(c4d.GV_PORT_OUTPUT, c4d.ID_POSITION? ,c4d.GV_PORT_FLAG_IS_VISIBLE,True)  
</code></pre>
<p dir="auto">Edit:<br />
Looks like it is not possible to do it this way. When I convert python generator (with c key) and open xpresso Cinema 4D will crash.</p>
<hr />
<p dir="auto">[URL-REMOVED] <a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/maxon">@<bdi>maxon</bdi></a>: This section contained a non-resolving link which has been removed.</p>
]]></description><link>http://developers.maxon.net/forum/post/46641</link><guid isPermaLink="true">http://developers.maxon.net/forum/post/46641</guid><dc:creator><![CDATA[Helper]]></dc:creator><pubDate>Thu, 10 May 2018 16:11:21 GMT</pubDate></item><item><title><![CDATA[Reply to Objects with tags inside python generator on Thu, 10 May 2018 16:11:21 GMT]]></title><description><![CDATA[<p dir="auto"><em>On 18/09/2015 at 02:17, <strong>xxxxxxxx</strong> wrote:</em></p>
<p dir="auto">Hello and welcome,</p>
<p dir="auto">please post only one question per thread. This keeps the forum organized and makes it more easy to find existing answers.</p>
<p dir="auto">Please notice that you should use a Python Generator only to create new, virtual objects. A Generator should not manipulate existing objects.</p>
<p dir="auto">If you want to create a Xpresso tag you can do this using <a href="https://developers.maxon.net/docs/py/2023_2/modules/c4d/C4DAtom/GeListNode/BaseList2D/BaseObject/index.html?highlight=maketag#BaseObject.MakeTag" target="_blank" rel="noopener noreferrer nofollow ugc">MakeTag()</a> and the ID of the tag, which is <a href="https://developers.maxon.net/docs/py/2023_2/types/tags.html?highlight=texpresso" target="_blank" rel="noopener noreferrer nofollow ugc">Texpresso</a>. From this Xpresso tag you can get the node master with <a href="https://developers.maxon.net/docs/py/2023_2/modules/c4d.modules/graphview/XPressoTag/index.html?highlight=getnodemaster#XPressoTag.GetNodeMaster" target="_blank" rel="noopener noreferrer nofollow ugc">GetNodeMaster()</a>. Using that node master you can create new nodes. You will find some example code in the forum like here:</p>
<ul>
<li><a href="https://developers.maxon.net/forum/topic/8295/10822_user-data-xpresso-python-solved" target="_blank" rel="noopener noreferrer nofollow ugc">User Data, Xpresso, Python </a></li>
</ul>
<p dir="auto">You can add user data to an object using <a href="https://developers.maxon.net/docs/py/2023_2/modules/c4d/C4DAtom/GeListNode/BaseList2D/index.html?highlight=adduserdata#BaseList2D.AddUserData" target="_blank" rel="noopener noreferrer nofollow ugc">AddUserData()</a>. You find some example here:</p>
<ul>
<li><a href="https://developers.maxon.net/forum/topic/8962/11895_creating-structured-user-data" target="_blank" rel="noopener noreferrer nofollow ugc">Creating structured User Data</a></li>
</ul>
<p dir="auto">But please remember that a Python Generator typically should not edit existing objects. In what context do you want to use GeGetMoData() in your generator?</p>
<p dir="auto">If you need more information on a specific topic please open a new thread. Thanks.</p>
<p dir="auto">Best wishes,<br />
Sebastian</p>
]]></description><link>http://developers.maxon.net/forum/post/46640</link><guid isPermaLink="true">http://developers.maxon.net/forum/post/46640</guid><dc:creator><![CDATA[Helper]]></dc:creator><pubDate>Thu, 10 May 2018 16:11:21 GMT</pubDate></item></channel></rss>