• How to simulate a drag behavior with UA?

    windows python 2025
    5
    0 Votes
    5 Posts
    786 Views
    DunhouD
    @ferdinand said in How to simulate a drag behavior with UA?: All it it does when the users starts to drag, according to Maxime, is inject the asset object into the document, make sure there is no object selected and then enable the place tool (and probably set the mouse cursor) This is my solution in my mind, definitely take a try after work.
  • Docked Dialog Problem with width of CUSTOMGUI_FILENAME

    windows python 2025
    6
    0 Votes
    6 Posts
    896 Views
    i_mazlovI
    Hi Sebastian, correct, it hasn't been included into 2025.2.0. The next minor release will likely have it fixed though. Cheers, Ilia
  • find out if generator object? (in case of a Field object)

    python
    6
    0 Votes
    6 Posts
    858 Views
    indexofrefractionI
    hi, i came up with this now... def hasGenFlag(op): description = op.GetDescription(c4d.DESCFLAGS_DESC_NONE) bc = description.GetParameter(c4d.ID_BASEOBJECT_GENERATOR_FLAG) return not bc[c4d.DESC_HIDE] if bc else False also its clear that "Generator" is a wide definition which doesn't match the Green Checkmark / Enabled GUI Element. in this sense the topic title is wrong bc i was just searching for a way to distinct objects having this GUI element from others which don't. (i can't change the topic title, i guess)
  • Automating ColorSpace Change for Textures in Redshift

    2025 python windows
    5
    0 Votes
    5 Posts
    873 Views
    M
    Hi sorry I fixed my code. Cheers, Maxime.
  • Tree view boolean column bug

    python windows
    2
    0 Votes
    2 Posts
    390 Views
    M
    Hi @Gregor-M please make sure that your script is executable before sending it to us. Since in it's current state it does raise Traceback (most recent call last): File "scriptmanager", line 53, in GetDown File "scriptmanager", line 33, in GetChildren AttributeError: 'Entity' object has no attribute 'children'. Did you mean: 'GetChildren'? I added self.children = [] within the __init__ of Entity and it fixed the issue but this indicate that you are working on a different version than us. But even with it I'm not able to reproduce any issue and everything is working as expected. With that's said your else statement within the SetCheck looks very suspicious and I won't be surprised that the behavior you are experiencing is coming from this else statement. Finally note that you can call the function TreeViewCustomGui.SetRoot to define a root. Then the root argument that is available in all functions will be pointing to it. Cheers, Maxime.
  • Change Icon Color parameter

    2024 python
    6
    0 Votes
    6 Posts
    805 Views
    chuanzhenC
    @i_mazlov Thanks for your help, it works well.
  • 0 Votes
    3 Posts
    501 Views
    ymoonY
    @ferdinand Thank you for your kind explanation. I will explore other options.
  • 0 Votes
    3 Posts
    504 Views
    ferdinandF
    Hey @skibinvitaliy, Welcome to the Maxon developers forum and its community, it is great to have you with us! Getting Started Before creating your next postings, we would recommend making yourself accustomed with our forum and support procedures. You did not do anything wrong, we point all new users to these rules. Forum Overview: Provides a broad overview of the fundamental structure and rules of this forum, such as the purpose of the different sub-forums or the fact that we will ban users who engage in hate speech or harassment. Support Procedures: Provides a more in detail overview of how we provide technical support for APIs here. This topic will tell you how to ask good questions and limits of our technical support. Forum Features: Provides an overview of the technical features of this forum, such as Markdown markup or file uploads. It is strongly recommended to read the first two topics carefully, especially the section Support Procedures: How to Ask Questions. About your First Question No one is judging you here, problems are part of the game and what we are here for to help with . But please familiarize yourself with our forum rules, such question should be accompanied by example code and the version you are migrating from, as we otherwise mostly have to guess what is going wrong. I am assuming you are migrating from a pre-2025 SDK, that is at least what your errors imply. With 2025 we introduced our cinema namespace. Please follow our Migrating Plugins to the 2025.0 API guide. You are likely just missing a couple of using namespace cinema; at the top of your files. Cheers, Ferdinand
  • Hiding Node Previews for all Redshift Nodes in Redshift Materials

    python 2025
    6
    0 Votes
    6 Posts
    883 Views
    ferdinandF
    Hey, there is no NOT in the query syntax, if that is what you are asking for, although that could be a cool idea. What you would have to do, is apply two partial descriptions in one ApplyDescription call, one that first selects all nodes with an enabled preview and disables it, and then one which selects the end node and disables its preview. Or just carry out two successive ApplyDescription calls. Cheers, Ferdinand PS: You can of course do whatever you want with your module attributes, and things like __author__, __license__, __email__, etc are not formally standardized, but the quasi standard module attribute is called __author__, there is no __authors__. When you have multiple authors, you usually put them semicolon separated into the __author__ field. When you use __authors__, tools which support that quasi standard won't find your attribute and the whole purpose of these module attributes is being machine readable, as you could otherwise also just write things into the doc string of the module. See: The original Python Enhancement Proposal by Guido van Rossum (the now famous pep8) which introduced the concept of module dunder attributes and one of the many guides of how people interpret this, what this has evolved into.
  • How to Activate Polygon Selection in the Selection Filter

    2024 python
    3
    1
    0 Votes
    3 Posts
    501 Views
    S
    @ferdinand Your response was helpful. Thank you:)
  • 0 Votes
    4 Posts
    670 Views
    ferdinandF
    Hey, Yes, parallel/orthographic projection is effectively just the dot product. The modelling examples cover point plane projections with a function very similar to yours. There is also c4d.utils.PointLineSegmentDistance but I never use it, as it strikes me as more cumbersome to use than just doing the math yourself. Cheers, Ferdinand
  • Python Tag: Detecting Edge Selection Changes

    windows 2025 python
    3
    0 Votes
    3 Posts
    505 Views
    ymoonY
    Thanks, I'll test Dirty on selection.
  • GUI shows M (meters) instead of CM (centimeters) in CUSTOMGUI_VECTOR

    c++
    4
    0 Votes
    4 Posts
    672 Views
    ferdinandF
    Hey, it seems I was a bit too tightlipped here. So in more verbose: You cannot customize the chosen unit of a parameter. This is impossible as this is a globally set value (which is also just smoke and mirrors as explained in the link above). There is a UnitScale custom GUI but it does not what you want, it is the field used in the document settings and is not really meant to store a value and unit but just a unit. [image: 1742223539308-cd7250f7-2ea2-4efe-be63-70e67e574078-image.png] When you really-really-really want this, you can implement you own custom GUI, either targeting your own custom data types or existing data types. There you could then do whatever you want. But that might not mesh so well with the rest of Cinema 4D, given that Cinema 4D does not operate like that. Cheers, Ferdinand
  • autocreate RS node material based texture sets in tex folder

    2025 python windows
    9
    0 Votes
    9 Posts
    1k Views
    A
    thanks @ferdinand this makes perfect sense now. I appreciate the time you took to explaint he best practice.
  • Start CUSTOMGUI_LINKBOX expanded

    c++
    2
    0 Votes
    2 Posts
    455 Views
    ferdinandF
    Hey @ECHekman, thank you for reaching out to us. This GUI does not support any of these flags (DESC_DEFAULT, i.e., DEFAULT is also not for gadgets but groups). This means that you cannot toggle the collapsed state of a link box (be it a normal one or a texture one) by setting a description flag either in a resource file or programmatically. Which makes sense, because other than for example a color field or a group, a link box is not guaranteed to have content which could be unfolded. Cheers, Ferdinand
  • 0 Votes
    2 Posts
    533 Views
    i_mazlovI
    Hi @BigRoy, Please check our Support Procedures in regards of the question structure, namely: Singular Question: The initial posting of a support topic must contain a singular question. Do not ask ten things at once, that makes it extremely hard to answer topics. Break up your questions into multiple topics. Asking follow-up questions is allowed but they must be bound to the initial subject. Singular Subject: From all this follows that a topic must have a singular and sparse subject tied to a specific problem. 'My Nodes API Questions' is not a valid topic as it splits up into too many subtopics. A valid subject could be 'accessing node attributes' or 'traversing a node graph'. One could for example first ask 'how to get the name attribute of a node?' and then ask a follow up question about 'how to get the icon attribute too?'. This specifically applies to plugins, just because you have two problems with one plugin does not mean that they should be asked in the same topic. Regarding you question, there's no high level API that allows you to get a list of all files you've mentioned at once. This effectively means that not only do you need to access this yourself, but you also need to do so for the render engines you'd like to support, as these are likely going to differ among them. Specifically for the Redshift AOVs and output files question, please check related threads: get the names of redshift multi passes AOV names from the render settings Add Expression Value in Render Settings Save Path As for the takes, the only application where they make any sense is the Render Queue. If you're not using it, it's only the active take that's being rendered. Of course you can deal with it by using SetCurrentTake function. I suggest you keeping this thread for the "render output files" part of your initial question and encourage you to make separate postings for your other questions that diverse from this topic here. Cheers, Ilia
  • 0 Votes
    5 Posts
    841 Views
    V
    @ferdinand You are correct, there was no further question, I was just closing the loop in case someone else ran into something similar. Thanks for the additional suggestions. -v
  • Efficient way of saving array to BaseContainer

    r21 2025 linux macos windows
    3
    0 Votes
    3 Posts
    657 Views
    B
    Thank you @ferdinand for the help! Write raw memory does help a lot, appreciate!
  • Changing OCIO View Transform doesn't work using Python

    python 2025
    4
    0 Votes
    4 Posts
    573 Views
    ferdinandF
    Hey @Smolak, I understood what you wanted to do, but it is still not possible. First of all, the OCIO color space enum values are dynamically assigned, i.e., the value 3 might not always mean the same space. In the OCIO API there are special conversion functions for that, but you could also do that manually by parsing the description of the document. But you will never be able to apply such value then, because to do that, you have to call BaseDocument::UpdateOcioColorSpaces which does not exist in Python (yet). See the C++ Docs for an example. Cheers, Ferdinand
  • Show or Hide Object in Viewport

    2024 python
    4
    1
    0 Votes
    4 Posts
    694 Views
    ferdinandF
    Sorry, I am rotating on the spot right now, did not yet get to answering here. @gheyret is right, there is still a bug, will give @m_adam a note on Monday.