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 Oxactnull

Oxactnull

Attributes

  • ENGLISH NAME : X-ParticlesActionsFolder
  • NAME : Oxactnull
  • INCLUDE : Obase
  • PATH : res/description/oxactnull.res
  • PLUGIN : X-Particles
  • MAXON online help (may not exist): OXACTNULL

Elements

ID UI Name Type Parameters Cycle
XACTNULL_MAKEFOLDER CreateSub-Folder BUTTON  
XACTNULL_NAME FolderName STRING  
XACTNULL_ACTIONS_OBJECTS ObjectActions LONG
ANIM OFF
CUSTOMGUI CYCLE
XACTNULL_CHOOSE_OBJ ChooseObjectAction...
1029574
XACTNULL_AEMITTER ChangeEmitter
1030335
XACTNULL_AGENERATOR ChangeGenerator
1032535
XACTNULL_ATRAILS ChangeTrails
1027508
XACTNULL_ACTIONS_MODIFIERS ControlModifierActions LONG
ANIM OFF
CUSTOMGUI CYCLE
XACTNULL_CHOOSE_MOD ChooseControlModifierAction...
1029574
XACTNULL_AATTRACTOR AttractorModifier
1027507
XACTNULL_AAVOID AvoidModifier
1032398
XACTNULL_ABRANCH BranchingModifier
1031918
XACTNULL_ACOLOUR ColorModifier
1031812
XACTNULL_ACOVERTARGET Cover/TargetModifier
1027805
XACTNULL_ADRAG DragModifer
1034308
XACTNULL_ADIRECTION DirectionModifier
1027503
XACTNULL_ADYNPART DynamicParticlesModifier
1033836
XACTNULL_AFLOCKING FlockingModifier
1027801
XACTNULL_APATH FollowPathModifier
1030808
XACTNULL_AFSPLINE FollowSplineModifier
1030334
XACTNULL_AMOS FollowSurfaceModifier
1031221
XACTNULL_AINHERIT InheritanceModifier
1033798
XACTNULL_AKILL KillModifier
1033945
XACTNULL_AGASEOUS GaseousModifier
1034634
XACTNULL_AGRAVITY GravityModifier
1027627
XACTNULL_AVECMASK LimitModifier
1031995
XACTNULL_ANETWORK NetworkModifier
1031634
XACTNULL_APHYSICAL PhysicalModifier
1033741
XACTNULL_APYTHON PythonModifier
1030733
XACTNULL_AREWIND RewindModifier
1032422
XACTNULL_AROTATOR RotatorModifier
1029161
XACTNULL_ASOUND SoundModifier
1035560
XACTNULL_ASPRITEM SpriteShaderModifier
1029127
XACTNULL_ATENDRIL TendrilModifier
1032042
XACTNULL_ATEXT TextModifier
1029126
XACTNULL_ATRANSFORM TransformModifier
1032297
XACTNULL_ATRIGACT TriggerActionModifier
1030932
XACTNULL_ATURB TurbulenceModifier
1027509
XACTNULL_AVORTEX VortexModifier
1033725
XACTNULL_AVORTICITY VorticityModifier
1034635
XACTNULL_AWEIGHT WeightModifier
1033727
XACTNULL_AWIND WindModifier
1029150
XACTNULL_ACTIONS_DIRECT DirectActions LONG
ANIM OFF
CUSTOMGUI CYCLE
XACTNULL_CHOOSE_DIR ChooseDirectAction...
1029574
XACTNULL_AGEOMETRY ChangeGeometry
1027504
XACTNULL_APGROUP ChangeGroup
1028703
XACTNULL_APLIFE ChangeLife
1027511
XACTNULL_ALIGHTS ChangeLights
1028030
XACTNULL_ASCALE ChangeScale
1027803
XACTNULL_ASPEED ChangeSpeed
1027506
XACTNULL_ASPIN ChangeSpin
1027804
XACTNULL_ASPRITES ChangeSprites
1028094
XACTNULL_AMORPH ControlMorphing
1029125
XACTNULL_ASPAWN ControlSpawning
1027505
XACTNULL_AEXPLODE ExplodeParticles
1032296
XACTNULL_AFREEZE FreezeParticles
1027802
XACTNULL_ACTIONS_OTHER OtherActions LONG
ANIM OFF
CUSTOMGUI CYCLE
XACTNULL_CHOOSE_OTH ChooseOtherAction...
1029574
XACTNULL_AEDITORONLY EditorDisplayOnly
1027510
XACTNULL_ASPLINESTOP StopFollowingSpline
1028436
XACTNULL_AUNLINKTP UnlinkTP
1028182
XACTNULL_AUNSTICK UnstickfromSourceObject
1027806
XACTNULL_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.Oxactnull)
    doc.InsertObject(obj)
    c4d.EventAdd(c4d.EVENT_FORCEREDRAW)
    
    #You can set parameters two different ways. 
    #First way              
    obj[c4d.XACTNULL_NAME] = "Hello World"
    obj[c4d.XACTNULL_ACTIONS_OBJECTS] = c4d.XACTNULL_CHOOSE_OBJ
    obj[c4d.XACTNULL_ACTIONS_MODIFIERS] = c4d.XACTNULL_CHOOSE_MOD
    obj[c4d.XACTNULL_ACTIONS_DIRECT] = c4d.XACTNULL_CHOOSE_DIR
    obj[c4d.XACTNULL_ACTIONS_OTHER] = c4d.XACTNULL_CHOOSE_OTH
    
    #Second way, using the base container.
    bc = obj.GetDataInstance()
    bc.SetString(c4d.XACTNULL_NAME,"Hello World")
    bc.SetInt32(c4d.XACTNULL_ACTIONS_OBJECTS,c4d.XACTNULL_CHOOSE_OBJ)
    bc.SetInt32(c4d.XACTNULL_ACTIONS_MODIFIERS,c4d.XACTNULL_CHOOSE_MOD)
    bc.SetInt32(c4d.XACTNULL_ACTIONS_DIRECT,c4d.XACTNULL_CHOOSE_DIR)
    bc.SetInt32(c4d.XACTNULL_ACTIONS_OTHER,c4d.XACTNULL_CHOOSE_OTH)

if __name__=='__main__':
    main()
             

C++

#include "c4d.h"
#include "../res/description/oxactnull.h"
void SampleFunction()
{
    BaseDocument *pDoc = GetActiveDocument();
    BaseObject *pObject = BaseObject::Alloc(Oxactnull);
    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(XACTNULL_NAME),GeData("Hello World"),flags);
    pObject->SetParameter(DescID(XACTNULL_ACTIONS_OBJECTS),GeData(XACTNULL_CHOOSE_OBJ),flags);
    pObject->SetParameter(DescID(XACTNULL_ACTIONS_MODIFIERS),GeData(XACTNULL_CHOOSE_MOD),flags);
    pObject->SetParameter(DescID(XACTNULL_ACTIONS_DIRECT),GeData(XACTNULL_CHOOSE_DIR),flags);
    pObject->SetParameter(DescID(XACTNULL_ACTIONS_OTHER),GeData(XACTNULL_CHOOSE_OTH),flags);
    pObject->Message(MSG_UPDATE);            

    //Second way, using the base container.
    BaseContainer *bc =     pObject->GetDataInstance();
    bc->SetString(XACTNULL_NAME,"Hello World");
    bc->SetInt32(XACTNULL_ACTIONS_OBJECTS,XACTNULL_CHOOSE_OBJ);
    bc->SetInt32(XACTNULL_ACTIONS_MODIFIERS,XACTNULL_CHOOSE_MOD);
    bc->SetInt32(XACTNULL_ACTIONS_DIRECT,XACTNULL_CHOOSE_DIR);
    bc->SetInt32(XACTNULL_ACTIONS_OTHER,XACTNULL_CHOOSE_OTH);
    pObject->Message(MSG_UPDATE);                                                      
}
             

Buttons

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

Python

c4d.CallButton(obj,c4d.XACTNULL_MAKEFOLDER)
c4d.CallButton(obj,c4d.XACTNULL_HELP_BUTTON)

C++

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

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