The Maxon SDK Team is currently short staffed due to the winter holidays. No forum support is being provided between 15/12/2025 and 5/1/2026. For details see Maxon SDK 2025 Winter Holidays.
  • Bug with GetLink/SetLink & Hyperfile

    sdk python
    3
    1 Votes
    3 Posts
    405 Views
    ?
    My apologies: I didn't understand how BaseLink worked and this clarified things. Thank you!
  • Toggle knife cut planes

    Moved r21 python
    4
    0 Votes
    4 Posts
    675 Views
    ManuelM
    i forgot to mention: For your next threads, please help us keeping things organised and clean. I know it's not your priority but it really simplify our work here. Q&A New Functionality. How to Post Questions especially the tagging part. I've added the tags and marked this thread as a question so when you considered it as solved, please change the state Cheers, Manuel
  • Trouble with GetAndCheckHierarchyClone

    8
    2
    0 Votes
    8 Posts
    1k Views
    matniedobaM
    Amazing! Thank you Manuel! It works with multiple objects, Cloners etc. Without your help I would not make it
  • How to find back a specific BaseTag assigned to a BaseObject

    r19 r20 r21 c++
    6
    0 Votes
    6 Posts
    657 Views
    r_giganteR
    Hi @C4DS , maybe I wasn't enough clear. you end up with a single merged object, which has 2 selection tags, and both still have the specific name ... but none have the added unique ID. Surely you start to think something is really wrong. Actually you end up in a new mesh with new selection tags which beside having the data copied from the two source selection tags, they are NEW and hence the UniqueID is not supposed to be kept. The names are kept for convenience but I don't see any reason to have also the UniqueID being kept considering that - in the end - they are indeed new instances and have nothing to do with the source selection tags. Cheers, R
  • Merge Tags

    r19 r20 r21 c++
    9
    0 Votes
    9 Posts
    1k Views
    r_giganteR
    Hi @C4DS, thanks for following up. One note that it's worthy to share: the outcomes of this thread are valid as long as you need to stick to Classic API. In Maxon API (R20 and higher) you can make very good use of the CustomDataTag (see also GitHub example) whose data merging is managed directly by the modeling kernel. Last but not least, as usual, if the discussion has come to an end, please don't forget to mark the question as SOLVED. Cheers, R
  • 0 Votes
    4 Posts
    911 Views
    ManuelM
    hi, thanks a lot for sharing your code Don't forget to change the state of this thread to solved. (if it is) cheers, Manuel
  • detect the selection of an object

    Moved python
    13
    0 Votes
    13 Posts
    3k Views
    Passion3DP
    @C4DS Although a solution has not been given (as I wish to do), explanations have been provided. I have therefore considered it resolved. For IRL reasons, I could not do so. I will be able to get back to it, and if I find THE solution, I will post it
  • Drag & Drop to Reorder in GUI

    python
    14
    0 Votes
    14 Posts
    2k Views
    ?
    @m_adam Terrific work, Maxime! This is very helpful to me and I'm sure the many others who want to learn about dragging in Cinema 4D's UI. Excellent job!
  • This topic is deleted!

    7
    1
    0 Votes
    7 Posts
    122 Views
  • AddEditNumberArrows Stops Working on Keyed objects

    r21 python
    12
    0 Votes
    12 Posts
    2k Views
    ManuelM
    hi, no trouble at all, you are here to ask questions, we are here to answer. Cheers, Manuel.
  • R21 Notarization Testing on Mac Catalina

    r21 c++ macos
    3
    0 Votes
    3 Posts
    358 Views
    D
    Thank you! That does it exactly!
  • Keyframing UserData with Value Tracks

    python sdk
    5
    3
    0 Votes
    5 Posts
    601 Views
    ?
    @m_adam You are a genius! Thank you, Maxime
  • Welding point for a polygon

    2
    0 Votes
    2 Posts
    503 Views
    r_giganteR
    Hi Kantronin, thanks for reaching out us and welcome to PluginCafé. To make Cinema 4D programatically executing modeling commands, you can make use of SendModelingCommand which properly satisfy your scope. Aside from the example shown in the documentation you can also have a look at this post from @maxime and this other post about Optimize command. Last but not least be aware that the modeling command settings are specified in the BaseContainer passed to the SendModelingCommand and whose parameters can be found in the MCOMMAND page. Finally please remind to use Tags and Ask as a question for any future support entries
  • BaseShader global vs local filename

    c++ r19 r20 r21
    6
    0 Votes
    6 Posts
    662 Views
    kbarK
    @C4DS That was the most normal happy smiling glad you solved your issue emoji I could find. Any of the others could definitely have been interpreted in many ways. Hope that one came across alright
  • Trigger on BaseShader change

    r19 r20 r21 c++
    4
    0 Votes
    4 Posts
    559 Views
    C4DSC
    @m_magalhaes Thanks for reminding me of the GeDialog::CoreMessage. I totally overlooked that.
  • Changing font size.

    python r20
    4
    0 Votes
    4 Posts
    572 Views
    P
    Great example, thank you. -Pim
  • FieldList.GetCount Bug

    Moved r21 r20 r19 python
    2
    0 Votes
    2 Posts
    589 Views
    M
    Hi @pyr, I've just reached the development team about it. So for them, this is not a bug since FieldList store only baseLink. In Python, we don't have BaseLink, but if you are not aware of what it is, please read BaseLink Manual. But since there is no BaseLink in Python, if a link points to a destructed object (like in your case, Python simply returns None) So I guess your workaround is ok. Cheers, Maxime
  • BaseBitmap.ScaleIt() IS NOT WORKING

    r21 python
    3
    1
    0 Votes
    3 Posts
    348 Views
    gheyretG
    @C4DS Thank you for your help! It works! Cheers~
  • Adding a icon to a treeview field.

    r20 r21 python
    9
    1
    0 Votes
    9 Posts
    2k Views
    P
    Yes, that solved it. Thanks.
  • Commiting Xrefs to the scene

    r21
    3
    0 Votes
    3 Posts
    947 Views
    ManuelM
    hello, the xref will import the material unless it's on Generator mode. You can maybe juste merge de target document with your current document. This work with a simple scene of course but can go really more complicated. def main(): if op is None: raise ValueError("you have to select at least one object") if not op.IsInstanceOf(c4d.Oxref): raise ValueError("selected object must be a xref") # Starts Undo doc.StartUndo() # if the xref is in generator mode, we need to import the material from the target document. if op[c4d.ID_CA_XREF_GENERATOR]: targetDoc = op[c4d.ID_CA_XREF_FILE] c4d.documents.MergeDocument(doc, targetDoc, c4d.SCENEFILTER_MATERIALS | c4d.SCENEFILTER_OBJECTS, None) else: result = c4d.utils.SendModelingCommand(command = c4d.MCOMMAND_CURRENTSTATETOOBJECT, list = [op] , doc=doc) if result: doc.InsertObject(result[0]) doc.AddUndo(c4d.UNDOTYPE_NEW, result[0]) else: raise ValueError("couldn't retrieves the CSTO of the xref") #remove the existing xref doc.AddUndo(c4d.UNDOTYPE_CHANGE, op) op.Remove() doc.EndUndo() c4d.EventAdd() Cheers, Manuel