Here you will find documentation on all the descriptions that Cinema 4D currently has. You can list them Alphabetically, by Type or Plugin . The sample Python and C++ code is automatically generated and in some cases may not be 100% correct. If something doesn't work then please refer to the official Cinema 4D SDK documentation for more information.

IDs and information for Oxmodnull

Oxmodnull

Attributes

  • ENGLISH NAME : X-ParticlesModifiersFolder
  • NAME : Oxmodnull
  • INCLUDE : Obase
  • PATH : res/description/oxmodnull.res
  • PLUGIN : X-Particles
  • MAXON online help (may not exist): OXMODNULL

Elements

ID UI Name Type Parameters Cycle
XMODNULL_MAKEFOLDER CreateSub-Folder BUTTON  
XMODNULL_NAME FolderName STRING  
XMODNULL_MODS1 ControlModifiers LONG
ANIM OFF
CUSTOMGUI CYCLE
XMODNULL_CHOOSE_1 ChooseControlModifier...
1029576
XMODNULL_CHANGEGROUP ChangeGroup
1028704
XMODNULL_COLOUR Color
1031808
XMODNULL_FREEZE Freeze
1027690
XMODNULL_INHERIT Inheritance
1033797
XMODNULL_KILL Kill
1030476
XMODNULL_PLIFE ParticleLife
1027691
XMODNULL_PHYSICAL Physical
1033736
XMODNULL_PYTHON Python
1030729
XMODNULL_REWIND Rewind
1032421
XMODNULL_SOUND Sound
1035482
XMODNULL_TRANSFORM Transform
1032143
XMODNULL_ACTION TriggerAction
1030914
XMODNULL_UNLINKTP UnlinkTP
1028231
XMODNULL_WEIGHT Weight
1031653
XMODNULL_MODS2 MotionModifiers LONG
ANIM OFF
CUSTOMGUI CYCLE
XMODNULL_CHOOSE_2 ChooseMotionModifier...
1029576
XMODNULL_ATTRACTOR Attractor
1029473
XMODNULL_AVOID Avoid
1032382
XMODNULL_COVERTARGET Cover/Target
1027732
XMODNULL_DIRECTION Direction
1027694
XMODNULL_DRAG Drag
1034299
XMODNULL_EXPLODE Explode
1032295
XMODNULL_FLOCKING Flocking
1027435
XMODNULL_FPATH FollowPath
1030775
XMODNULL_FSPLINE FollowSpline
1029994
XMODNULL_MOS FollowSurface
1031213
XMODNULL_GASEOUS Gaseous
1033594
XMODNULL_GRAVITY Gravity
1027669
XMODNULL_VECMASK Limit
1031969
XMODNULL_NETWORK Network
1031609
XMODNULL_ROTATOR Rotator
1029151
XMODNULL_SPEED Speed
1027668
XMODNULL_SPIN Spin
1027710
XMODNULL_TURB Turbulence
1027629
XMODNULL_VORTEX Vortex
1033565
XMODNULL_VORTICITY Vorticity
1033618
XMODNULL_WIND Wind
1029148
XMODNULL_MODS3 SpritesModifiers LONG
ANIM OFF
CUSTOMGUI CYCLE
XMODNULL_CHOOSE_3 ChooseSpritesModifier...
1029576
XMODNULL_LIGHT Light
1027988
XMODNULL_SPRITEM Sprite
1028062
XMODNULL_SPSHADER SpriteShader
1029093
XMODNULL_TEXT Text
1029133
XMODNULL_MODS4 GenerateModifiers LONG
ANIM OFF
CUSTOMGUI CYCLE
XMODNULL_CHOOSE_4 ChooseGenerateModifier...
1029576
XMODNULL_BRANCH Branch
1031838
XMODNULL_DYNPART DynamicParticles
1033835
XMODNULL_GEOMETRY Geometry
1027711
XMODNULL_MORPH Morph
1029117
XMODNULL_SCALE Scale
1027708
XMODNULL_SPAWN Spawn
1027705
XMODNULL_TENDRIL Tendril
1032041
XMODNULL_HELP_BUTTON BITMAPBUTTON  

Example Code

The following code does not use the correct values when setting the data. You should check directly in C4D for the correct values that you should use in place of the ones that are shown. This code is just to show you how to access the values for getting and setting the parameters.

Python

import c4d
from c4d import gui
def main():
    obj = c4d.BaseObject(c4d.Oxmodnull)
    doc.InsertObject(obj)
    c4d.EventAdd(c4d.EVENT_FORCEREDRAW)
    
    #You can set parameters two different ways. 
    #First way              
    obj[c4d.XMODNULL_NAME] = "Hello World"
    obj[c4d.XMODNULL_MODS1] = c4d.XMODNULL_CHOOSE_1
    obj[c4d.XMODNULL_MODS2] = c4d.XMODNULL_CHOOSE_2
    obj[c4d.XMODNULL_MODS3] = c4d.XMODNULL_CHOOSE_3
    obj[c4d.XMODNULL_MODS4] = c4d.XMODNULL_CHOOSE_4
    
    #Second way, using the base container.
    bc = obj.GetDataInstance()
    bc.SetString(c4d.XMODNULL_NAME,"Hello World")
    bc.SetInt32(c4d.XMODNULL_MODS1,c4d.XMODNULL_CHOOSE_1)
    bc.SetInt32(c4d.XMODNULL_MODS2,c4d.XMODNULL_CHOOSE_2)
    bc.SetInt32(c4d.XMODNULL_MODS3,c4d.XMODNULL_CHOOSE_3)
    bc.SetInt32(c4d.XMODNULL_MODS4,c4d.XMODNULL_CHOOSE_4)

if __name__=='__main__':
    main()
             

C++

#include "c4d.h"
#include "../res/description/oxmodnull.h"
void SampleFunction()
{
    BaseDocument *pDoc = GetActiveDocument();
    BaseObject *pObject = BaseObject::Alloc(Oxmodnull);
    pDoc->InsertObject(pObject);
    pDoc->StartUndo();
    pDoc->AddUndo(UNDO_NEW,pObject);
    pDoc->EndUndo();
    EventAdd(EVENT_FORCEREDRAW);
    
    //You can set parameters two different ways. 

    //First way              
    //Some objects do not store all their data in the container. You need to use GetParameter()/SetParameter() instead. 

    DESCFLAGS_SET flags = DESCFLAGS_SET_PARAM_SET;
    pObject->SetParameter(DescID(XMODNULL_NAME),GeData("Hello World"),flags);
    pObject->SetParameter(DescID(XMODNULL_MODS1),GeData(XMODNULL_CHOOSE_1),flags);
    pObject->SetParameter(DescID(XMODNULL_MODS2),GeData(XMODNULL_CHOOSE_2),flags);
    pObject->SetParameter(DescID(XMODNULL_MODS3),GeData(XMODNULL_CHOOSE_3),flags);
    pObject->SetParameter(DescID(XMODNULL_MODS4),GeData(XMODNULL_CHOOSE_4),flags);
    pObject->Message(MSG_UPDATE);            

    //Second way, using the base container.
    BaseContainer *bc =     pObject->GetDataInstance();
    bc->SetString(XMODNULL_NAME,"Hello World");
    bc->SetInt32(XMODNULL_MODS1,XMODNULL_CHOOSE_1);
    bc->SetInt32(XMODNULL_MODS2,XMODNULL_CHOOSE_2);
    bc->SetInt32(XMODNULL_MODS3,XMODNULL_CHOOSE_3);
    bc->SetInt32(XMODNULL_MODS4,XMODNULL_CHOOSE_4);
    pObject->Message(MSG_UPDATE);                                                      
}
             

Buttons

This node has buttons. Buttons can manually be executed by calling the following code

Python

c4d.CallButton(obj,c4d.XMODNULL_MAKEFOLDER)
c4d.CallButton(obj,c4d.XMODNULL_HELP_BUTTON)

C++

DescriptionCommand dc;
dc.id = DescID(XMODNULL_MAKEFOLDER);             
pObject->Message(MSG_DESCRIPTION_COMMAND, &dc);

DescriptionCommand dc; dc.id = DescID(XMODNULL_HELP_BUTTON); pObject->Message(MSG_DESCRIPTION_COMMAND, &dc);