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 Oalembicgenerator

Oalembicgenerator

Attributes

  • ENGLISH NAME : Alembic
  • NAME : Oalembicgenerator
  • INCLUDE : Obase
  • PATH : alembic/description/Oalembicgenerator.res
  • PLUGIN : alembic
  • MAXON online help (may not exist): OALEMBICGENERATOR

Elements

ID UI Name Type Parameters Cycle
ALEMBIC_UNIT_SCALE Scale UNITSCALE ANIM
ALEMBIC_SDS_WEIGHT_SCALE SDSWeightScale REAL
MIN 0.0
MAXSLIDER 100.0
STEP 0.1
UNIT PERCENT
CUSTOMGUI REALSLIDER
ALEMBIC_PATH PathtoAlembicFile FILENAME
ANIM OFF
SCALE_H
ALEMBIC_PATH_STATE BOOL  
ALEMBIC_IDENTIFIER ObjectIdentifier STRING
ANIM OFF
SCALE_H
ALEMBIC_IDENT_STATE BOOL  
ALEMBIC_USE_ANIMATION UseAnimation BOOL  
ALEMBIC_ANIMATION_FRAME Frame BASETIME  
ALEMBIC_INTERPOLATION Interpolation BOOL ANIM
ALEMBIC_ANIMATION_OFFSET Offset BASETIME  
ALEMBIC_ANIMATION_MODE Mode LONG
DEFAULT ALEMBIC_ANIMATION_MODE_PLAY
ANIM OFF
ALEMBIC_ANIMATION_MODE_PLAY Play
ALEMBIC_ANIMATION_MODE_LOOP Loop
ALEMBIC_ANIMATION_MODE_PINGPONG PingPong
ALEMBIC_ANIMATION_SPEED Speed REAL
MIN 0.0
UNIT PERCENT
ALEMBIC_ANIMATION_RESET Reset BUTTON  
ALEMBIC_ANIMATION_CURVE RemappingCurve SPLINE  
ALEMBIC_OVERRIDE_FOR_RENDERING OverrideObjectforRendering BOOL  
ALEMBIC_USE_ORIGINAL_PATH UseOriginalPath BOOL ANIM
ALEMBIC_PATH_FOR_RENDERING PathtoAlembicFile FILENAME
PARENTID ALEMBIC_OVERRIDE_FOR_RENDERING
ANIM OFF
SCALE_H
ALEMBIC_PATH_STATE_RENDERING BOOL  
ALEMBIC_IDENTIFIER_FOR_RENDERING ObjectIdentifier STRING
PARENTID ALEMBIC_OVERRIDE_FOR_RENDERING
ANIM OFF
SCALE_H
ALEMBIC_IDENT_STATE_RENDERING BOOL  
ALEMBIC_UPDATE_XFORM UpdateTransform BOOL ANIM
ALEMBIC_UPDATE_GEOMETRY UpdateGeometry BOOL ANIM
ALEMBIC_USE_VISIBILITY Visibility BOOL ANIM
ALEMBIC_USE_NORMALS Normals BOOL ANIM
ALEMBIC_USE_UVS UVSet BOOL ANIM
ALEMBIC_USE_FACESETS FaceSets BOOL ANIM
ALEMBIC_USE_COLORMAPS ColorMaps BOOL ANIM
ALEMBIC_USE_SDSWEIGHTS CreasesandCorners BOOL ANIM
ALEMBIC_USE_OTHERATTR OtherAttributes BOOL ANIM
ALEMBIC_INSTANCE Instance LONG
DEFAULT ALEMBIC_INSTANCE_RENDERINSTANCE
ANIM OFF
ALEMBIC_INSTANCE_NONE None
ALEMBIC_INSTANCE_INSTANCE Instance
ALEMBIC_INSTANCE_RENDERINSTANCE RenderInstance

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.Oalembicgenerator)
    doc.InsertObject(obj)
    c4d.EventAdd(c4d.EVENT_FORCEREDRAW)
    
    #You can set parameters two different ways. 
    #First way              
    obj[c4d.ALEMBIC_SDS_WEIGHT_SCALE] = 0.1
    obj[c4d.ALEMBIC_PATH] = "c:\\SomeFile.txt"
    obj[c4d.ALEMBIC_PATH_STATE] = True
    obj[c4d.ALEMBIC_IDENTIFIER] = "Hello World"
    obj[c4d.ALEMBIC_IDENT_STATE] = True
    obj[c4d.ALEMBIC_USE_ANIMATION] = True
    obj[c4d.ALEMBIC_INTERPOLATION] = True
    obj[c4d.ALEMBIC_ANIMATION_MODE] = c4d.ALEMBIC_ANIMATION_MODE_PLAY
    obj[c4d.ALEMBIC_ANIMATION_SPEED] = 0.1
    obj[c4d.ALEMBIC_OVERRIDE_FOR_RENDERING] = True
    obj[c4d.ALEMBIC_USE_ORIGINAL_PATH] = True
    obj[c4d.ALEMBIC_PATH_FOR_RENDERING] = "c:\\SomeFile.txt"
    obj[c4d.ALEMBIC_PATH_STATE_RENDERING] = True
    obj[c4d.ALEMBIC_IDENTIFIER_FOR_RENDERING] = "Hello World"
    obj[c4d.ALEMBIC_IDENT_STATE_RENDERING] = True
    obj[c4d.ALEMBIC_UPDATE_XFORM] = True
    obj[c4d.ALEMBIC_UPDATE_GEOMETRY] = True
    obj[c4d.ALEMBIC_USE_VISIBILITY] = True
    obj[c4d.ALEMBIC_USE_NORMALS] = True
    obj[c4d.ALEMBIC_USE_UVS] = True
    obj[c4d.ALEMBIC_USE_FACESETS] = True
    obj[c4d.ALEMBIC_USE_COLORMAPS] = True
    obj[c4d.ALEMBIC_USE_SDSWEIGHTS] = True
    obj[c4d.ALEMBIC_USE_OTHERATTR] = True
    obj[c4d.ALEMBIC_INSTANCE] = c4d.ALEMBIC_INSTANCE_NONE
    
    #Second way, using the base container.
    bc = obj.GetDataInstance()
    bc.SetFloat(c4d.ALEMBIC_SDS_WEIGHT_SCALE,0.1)
    bc.SetFileName(c4d.ALEMBIC_PATH,"c:\\SomeFile.txt")
    bc.SetBool(c4d.ALEMBIC_PATH_STATE,True)
    bc.SetString(c4d.ALEMBIC_IDENTIFIER,"Hello World")
    bc.SetBool(c4d.ALEMBIC_IDENT_STATE,True)
    bc.SetBool(c4d.ALEMBIC_USE_ANIMATION,True)
    bc.SetBool(c4d.ALEMBIC_INTERPOLATION,True)
    bc.SetInt32(c4d.ALEMBIC_ANIMATION_MODE,c4d.ALEMBIC_ANIMATION_MODE_PLAY)
    bc.SetFloat(c4d.ALEMBIC_ANIMATION_SPEED,0.1)
    bc.SetBool(c4d.ALEMBIC_OVERRIDE_FOR_RENDERING,True)
    bc.SetBool(c4d.ALEMBIC_USE_ORIGINAL_PATH,True)
    bc.SetFileName(c4d.ALEMBIC_PATH_FOR_RENDERING,"c:\\SomeFile.txt")
    bc.SetBool(c4d.ALEMBIC_PATH_STATE_RENDERING,True)
    bc.SetString(c4d.ALEMBIC_IDENTIFIER_FOR_RENDERING,"Hello World")
    bc.SetBool(c4d.ALEMBIC_IDENT_STATE_RENDERING,True)
    bc.SetBool(c4d.ALEMBIC_UPDATE_XFORM,True)
    bc.SetBool(c4d.ALEMBIC_UPDATE_GEOMETRY,True)
    bc.SetBool(c4d.ALEMBIC_USE_VISIBILITY,True)
    bc.SetBool(c4d.ALEMBIC_USE_NORMALS,True)
    bc.SetBool(c4d.ALEMBIC_USE_UVS,True)
    bc.SetBool(c4d.ALEMBIC_USE_FACESETS,True)
    bc.SetBool(c4d.ALEMBIC_USE_COLORMAPS,True)
    bc.SetBool(c4d.ALEMBIC_USE_SDSWEIGHTS,True)
    bc.SetBool(c4d.ALEMBIC_USE_OTHERATTR,True)
    bc.SetInt32(c4d.ALEMBIC_INSTANCE,c4d.ALEMBIC_INSTANCE_NONE)

if __name__=='__main__':
    main()
             

C++

#include "c4d.h"
#include "../alembic/description/Oalembicgenerator.h"
void SampleFunction()
{
    BaseDocument *pDoc = GetActiveDocument();
    BaseObject *pObject = BaseObject::Alloc(Oalembicgenerator);
    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(ALEMBIC_SDS_WEIGHT_SCALE),GeData(0.1),flags);
    pObject->SetParameter(DescID(ALEMBIC_PATH),GeData(Filename("c:\\SomeFile.txt"),flags);
    pObject->SetParameter(DescID(ALEMBIC_PATH_STATE),GeData(true),flags);
    pObject->SetParameter(DescID(ALEMBIC_IDENTIFIER),GeData("Hello World"),flags);
    pObject->SetParameter(DescID(ALEMBIC_IDENT_STATE),GeData(true),flags);
    pObject->SetParameter(DescID(ALEMBIC_USE_ANIMATION),GeData(true),flags);
    pObject->SetParameter(DescID(ALEMBIC_INTERPOLATION),GeData(true),flags);
    pObject->SetParameter(DescID(ALEMBIC_ANIMATION_MODE),GeData(ALEMBIC_ANIMATION_MODE_PLAY),flags);
    pObject->SetParameter(DescID(ALEMBIC_ANIMATION_SPEED),GeData(0.1),flags);
    pObject->SetParameter(DescID(ALEMBIC_OVERRIDE_FOR_RENDERING),GeData(true),flags);
    pObject->SetParameter(DescID(ALEMBIC_USE_ORIGINAL_PATH),GeData(true),flags);
    pObject->SetParameter(DescID(ALEMBIC_PATH_FOR_RENDERING),GeData(Filename("c:\\SomeFile.txt"),flags);
    pObject->SetParameter(DescID(ALEMBIC_PATH_STATE_RENDERING),GeData(true),flags);
    pObject->SetParameter(DescID(ALEMBIC_IDENTIFIER_FOR_RENDERING),GeData("Hello World"),flags);
    pObject->SetParameter(DescID(ALEMBIC_IDENT_STATE_RENDERING),GeData(true),flags);
    pObject->SetParameter(DescID(ALEMBIC_UPDATE_XFORM),GeData(true),flags);
    pObject->SetParameter(DescID(ALEMBIC_UPDATE_GEOMETRY),GeData(true),flags);
    pObject->SetParameter(DescID(ALEMBIC_USE_VISIBILITY),GeData(true),flags);
    pObject->SetParameter(DescID(ALEMBIC_USE_NORMALS),GeData(true),flags);
    pObject->SetParameter(DescID(ALEMBIC_USE_UVS),GeData(true),flags);
    pObject->SetParameter(DescID(ALEMBIC_USE_FACESETS),GeData(true),flags);
    pObject->SetParameter(DescID(ALEMBIC_USE_COLORMAPS),GeData(true),flags);
    pObject->SetParameter(DescID(ALEMBIC_USE_SDSWEIGHTS),GeData(true),flags);
    pObject->SetParameter(DescID(ALEMBIC_USE_OTHERATTR),GeData(true),flags);
    pObject->SetParameter(DescID(ALEMBIC_INSTANCE),GeData(ALEMBIC_INSTANCE_NONE),flags);
    pObject->Message(MSG_UPDATE);            

    //Second way, using the base container.
    BaseContainer *bc =     pObject->GetDataInstance();
    bc->SetFloat(ALEMBIC_SDS_WEIGHT_SCALE,0.1);
    bc->SetFileName(ALEMBIC_PATH,"c:\\SomeFile.txt");
    bc->SetBool(ALEMBIC_PATH_STATE,true);
    bc->SetString(ALEMBIC_IDENTIFIER,"Hello World");
    bc->SetBool(ALEMBIC_IDENT_STATE,true);
    bc->SetBool(ALEMBIC_USE_ANIMATION,true);
    bc->SetBool(ALEMBIC_INTERPOLATION,true);
    bc->SetInt32(ALEMBIC_ANIMATION_MODE,ALEMBIC_ANIMATION_MODE_PLAY);
    bc->SetFloat(ALEMBIC_ANIMATION_SPEED,0.1);
    bc->SetBool(ALEMBIC_OVERRIDE_FOR_RENDERING,true);
    bc->SetBool(ALEMBIC_USE_ORIGINAL_PATH,true);
    bc->SetFileName(ALEMBIC_PATH_FOR_RENDERING,"c:\\SomeFile.txt");
    bc->SetBool(ALEMBIC_PATH_STATE_RENDERING,true);
    bc->SetString(ALEMBIC_IDENTIFIER_FOR_RENDERING,"Hello World");
    bc->SetBool(ALEMBIC_IDENT_STATE_RENDERING,true);
    bc->SetBool(ALEMBIC_UPDATE_XFORM,true);
    bc->SetBool(ALEMBIC_UPDATE_GEOMETRY,true);
    bc->SetBool(ALEMBIC_USE_VISIBILITY,true);
    bc->SetBool(ALEMBIC_USE_NORMALS,true);
    bc->SetBool(ALEMBIC_USE_UVS,true);
    bc->SetBool(ALEMBIC_USE_FACESETS,true);
    bc->SetBool(ALEMBIC_USE_COLORMAPS,true);
    bc->SetBool(ALEMBIC_USE_SDSWEIGHTS,true);
    bc->SetBool(ALEMBIC_USE_OTHERATTR,true);
    bc->SetInt32(ALEMBIC_INSTANCE,ALEMBIC_INSTANCE_NONE);
    pObject->Message(MSG_UPDATE);                                                      
}
             

Buttons

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

Python

c4d.CallButton(obj,c4d.ALEMBIC_ANIMATION_RESET)

C++

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