c4d.BaseList2D

The base class of many other classes.

Members

BaseList2D.__init__(type)
Parameters: type (int) – The id of the object, e.g: (Ocube). See also: Descriptions in CINEMA 4D.
Return type: BaseList2D
Returns: The new object.
BaseList2D.__setitem__(self, key, value)

Uses a description ID as a key into the container, and stores the specified data.

Parameters:
BaseList2D.__getitem__(self, key)

Uses a description ID as a key into the container, and retrieves the stored data.

Parameters: key (int, list or DescID) – The description ID.
Return type: any
Returns: See __setitem__()
BaseList2D.__str__()

New in version R13.016.

Returns the BaseList2D as string. Called if str() is wrapped around an instance of BaseList2D. (see __str__).

Return type: str
Returns: The string representation of BaseList2D.
BaseList2D.GetCTrackRoot()

Private - Get the track root of this object. To get the tracks of an object use GetCTracks() instead.

Return type: GeListNode
Returns: Track root.
BaseList2D.GetFirstCTrack()

Returns the first CTrack of an object..

Return type: CTrack
Returns: First track, or None if there are no tracks.
BaseList2D.GetCTracks()

Returns all CTracks of an object.

Return type: list of type CTrack
Returns: The CTrack
BaseList2D.FindCTrack(id)

Find the track for the specified description id.

Parameters: id (DescID) – The description ID to check.
Return type: CTrack
Returns: The track found, or None if there was no match.
BaseList2D.InsertTrackSorted(track)

Inserts a track and automatically places it at the right place (so that Y comes after Y etc.)

Parameters: track (CTrack) – The track to insert.
BaseList2D.GetMain()

Goes up the next level, e.g. from tag to object or Xpresso node to tag, or object to document, etc.

Return type: BaseList2D
Returns: The main object of this object or None.
BaseList2D.SetBit(mask)

Each object contains a number of flags. See GetAllBits() for the flags.

Parameters: mask (int) – Bit mask of the flags.
BaseList2D.GetBit(mask)

Each object contains a number of flags. See GetAllBits() for the flags.

Parameters: mask (int) – Bit mask of the flags.
Return type: bool:
Returns: The state of the object flags denoted by mask.
BaseList2D.DelBit(mask)

Deletes the object flags denoted by mask, i.e. sets the corresponding bit’s to 0. See GetAllBits() for the flags.

Parameters: mask (int) – Bit mask of the flags.
BaseList2D.ToggleBit(mask)

Toggles the state of the object flags denoted by the mask. See GetAllBits() for the flags.

Parameters: mask (int) – Bit mask of the flags.
BaseList2D.GetAllBits()

Returns all of the object’s bits.

Parameters: mask (int) – The bit
Return type: int
Returns: The flags:
BIT_ACTIVE Active element.
BIT_ACTIVE2 Private.
BIT_ACTIVERENDERDATA Active render data.
BIT_ACTIVESELECTIONDRAW Draws active selection.
BIT_ANIM_CONSTANTVELOCITY Constant velocity of the track.
BIT_ANIM_OFF Inactive sequence.
BIT_ANIM_SOLO Solo track.
BIT_BP_FOLDLAYERS Fold layers in material manager.
BIT_CONTROLOBJECT Internal bit set by generators.
BIT_DOCUMENT_CHECKREWIND Check rewind.
BIT_EDITOBJECT Private.
BIT_ENABLEPAINT Enable painting.
BIT_HIGHLIGHT Private.
BIT_IGNOREDRAW Ignore object during draw.
BIT_IGNOREDRAWBOX Ignores object drawing box.
BIT_MATMARK Marked material.
BIT_MFOLD Folded in material manager.
BIT_OFOLD Folded in object manager.
BIT_RECALCPREVIEW Recalculate preview.
BIT_RECMARK Private.
BIT_TEMPDRAW_VISIBLE_CACHECHILD Private.
BIT_TEMPDRAW_VISIBLE_CHILD Private.
BIT_TEMPDRAW_VISIBLE_DEFCACHECHILD Private.
BIT_TRACKPROCESSED Track has been processed, avoid recursions.
BIT_VPDISABLED Video post is disabled.
BaseList2D.SetAllBits(mask)

Set the object’s bits. See GetAllBits() to see which bits you can set.

Parameters: mask (int) – Bit mask of the flags.
BaseList2D.GetIcon()

Returns the original bitmap pattern.

Warning

Please, never edit the returned bitmap - read only.

An example:

icon = obj.GetIcon()
print icon["bmp"], icon["x"], icon["y"], icon["w"], icon["h"]
Return type: dict{bmp: BaseBitmap, x: int, y: int, w: int, h: int}
Returns: The image and size information like height, width and X/Y position in the icon table.
BaseList2D.GetFirstShader()

Returns the first shader of the object.

Note

Normally you dont have to deal with this list. But if you want to create or modify shader trees via the API you need to read the following lines:

If you’re programming shader links you need to make sure that every shader is referenced only once; it is not allowed that a shader is referenced multiple times. If the referencing object is a shader the referenced shader must be a child of it, otherwise it must be inserted via InsertShader().

Example 1: A tag references a shader. The shader must be inserted into the tag using tag.InsertShader(...); Example 2: A Shader (A) references another shader (B): the shader B must be a child of the shader A.

Return type: BaseList2D
Returns: The first shader of the object, or None if there is no shader.
BaseList2D.GetLayerData(doc[, rawdata=False])

Get the layer data for this object.

Parameters:
  • doc (BaseDocument) – The document.
  • rawdata (bool) – Usually GetLayerData() takes special global modes like SOLO Layer automatically into account. But if you want to see the original layer values without any additional global changes you can set rawdata to True to get them.
Return type:

dict{solo: bool, view: bool, render: bool, manager: bool, locked: bool, generators: bool, expressions: bool, animation: bool, color: Vector}

BaseList2D.SetLayerData(doc, data)

Set the layer data for this object.

Parameters:
  • doc (BaseDocument) – The document.
  • data (dict{solo: bool, view: bool, render: bool, manager: bool, locked: bool, generators: bool, expressions: bool, animation: bool, color: Vector}) – The new layer data. It’s possible to leave values in the dictionary out.
Return type:

bool

Returns:

True if successful, otherwise False.

BaseList2D.GetLayerObject(doc)

Get the layer of this object.

Parameters: doc (BaseDocument) – The document.
Return type: LayerObject
Returns: The layer.
BaseList2D.SetLayerObject(layer)

Set the layer of this object.

Parameters: layer (LayerObject) – The new layer.
Return type: bool
Returns: True if successful, otherwise False.
BaseList2D.InsertShader(shader[, pred=None])

Inserts a shader in the object’s shader list:

import c4d

mat = doc.GetFirstMaterial()
if mat is None: return False

shd = c4d.BaseList2D(c4d.Xbitmap)

mat[c4d.MATERIAL_COLOR_SHADER] = shd
mat.InsertShader(shd)
mat.Message(c4d.MSG_UPDATE)
mat.Update(True, True)

c4d.EventAdd()
Parameters:
  • shader (BaseList2D) – The shader to insert.
  • pred (BaseList2D) – THhe shader to insert the new shader after, or None to insert the new shader first. The pointed shader must already be inserted into the list.
BaseList2D.GetInfo()

Returns the information flags for the object. The interpretation depends on the object type.

Return type: int
Returns: The flags. This is the same as the info parameter of the registration function of the registration function of the NodeData.
BaseList2D.KeyframeSelectionContent()

Checks if there are any active keyframe selections.

Note

This is not the same as BIT_ACTIVE, it’s the possibility to restrict autokeyframing to certain description parameters. See “Animation->Add Keyframe Selection” in the Attributes Manager.

Return type: bool
Returns: True if there is a keyframe selection, otherwise False.
BaseList2D.ClearKeyframeSelection()

Clears the current keyframe selection.

BaseList2D.FindKeyframeSelection(id)

Checks if id is included in the keyframe selection.

Parameters: id (DescID) – The description ID to check.
Return type: bool
Returns: True if thegiven id is selected, otherwise False.
BaseList2D.SetKeyframeSelection(id, selection)

Sets the keyframe selection status of id to selection.

Parameters: id (DescID) – The description ID to set.
Returns: True to select the key, otherwise id is selected, otherwise False.
BaseList2D.TransferGoal(dst, undolink)

Transfer goals from this object to dst. This changes all internal links that point to this object to point to dst instead.

Parameters:
  • dst (BaseList2D) – The destination
  • undolink (bool) – This has to be set to False. Private.
BaseList2D.GetRealSpline()

Get a real spline representation of a primitive spline object. This can for example be used to calculate the length of the spline. If the object is a real spline it returns this. Otherwise None.

Return type: SplineObject
Returns: The created spline object or None.
BaseList2D.GetVisibility(parent)

The object’s visibility depends upon its parent, if it has no visibility track this will return the parent’s visibility which is passed. The range of values are 0.0<=visibility<=1.0.

Parameters: parent (float) – The parent objects visibility.
Return type: float
Returns: The visibility.
BaseList2D.KillTag(type[, nr=0])

Removes a tag from the object and free its resources.

Parameters:
  • type (int) – A tag type.
  • nr (int) – The starting tag index to find of this type.
BaseList2D.GetDataInstance()

This method returns the original container of the object. The container is only alive as long as the host object is alive. If you access the container even the host object is dead, Python will raise a ReferenceError. The elements of the container are type protected when you set touch them via __setitem__(), that means, you can just overwrite an element with a new object when its of the same type. When you want to overwrite the element with another type, you need to delete the previous element with del(bc[ELEMENT_ID]), or use the manual BaseContainer.Set* methods.

Raises:
  • ReferenceError – If the container is dead. The container is just alive as long as the host object is alive. Access to a dead container leads to this error.
  • TypeError – When you set an element of the wrong expected type.
Return type:

BaseContainer

Returns:

The original container reference.

BaseList2D.GetData()

New in version R13.016.

Returns a copy of the object’s container.

Return type: BaseContainer
Returns: The container reference.
BaseList2D.SetData(bc[, add=True])

New in version R13.016.

Sets the object container. By default the contents of bc are merged with the existing container. You can control this behaviour with add.

Note

Don’t forget to send a C4DAtom.Message() if you change any settings.

Parameters:
  • bc (BaseContainer) – The container.
  • add (bool) – If this is True the values are merged, otherwise the old values are discarded.
Return type:

BaseContainer

Returns:

The container reference.

BaseList2D.GetColor()

Returns the palette number of the object (0-7).

Return type: int
Returns: The number
BaseList2D.SetColor(c)

Set the palette number of the object (0-7).

Raises IndexError:
  If the param c is not between 0-7.
Parameters: c (int) – The number
BaseList2D.GetTypeName()

The name of the object category, for example Phong, Spline, Bone, etc.

Return type: str
Returns: The type name.
BaseList2D.SetName(name)

Set the name of the object.

Parameters: name (str) – Set the name.
BaseList2D.GetName()

Returns the name of the object.

Return type: str
Returns: The name.
BaseList2D.GetNLARoot()

Private.

BaseList2D.Scale(scale)

Scale the object.

Parameters: scale (float) – The size.
BaseList2D.Edit()

Triggers the edit action for this object. For most types this brings up the node in the attributes manager. Some still show a separate dialog.

Return type: bool
Returns: False if an error occurred, otherwise True.
BaseList2D.GetBubbleHelp()

Returns the bubble help of the object.

Return type: str
Returns: The bubble help.
BaseList2D.GetDocument()

Returns the document where the object is stored in.

Return type: BaseDocument
Returns: The document if the object is stored in a document, otherwise returns None.
BaseList2D.AddUserData(datadescription)

Allocates a new user data and return its ID. Use c4d.GetCustomDatatypeDefault() to create a default container for user data:

import c4d

def AddLongDataType(obj):
    if obj is None: return

    bc = c4d.GetCustomDatatypeDefault(c4d.DTYPE_LONG) # Create default container
    bc[c4d.DESC_NAME] = "Test"                        # Rename the entry

    element = obj.AddUserData(bc)     # Add userdata container
    obj[element] = 30                 # Assign a value
    c4d.EventAdd()                    # Update
Para bc: Settings of the new user data.
Return type: DescID
Returns: The description ID.
BaseList2D.RemoveUserData(id)

Removes a userdata element. There are several ways how to delete a user data.

This function supports several types to identify a user data entry:

obj.RemoveUserData(1)#removes the first user data
obj.RemoveUserData([c4d.ID_USERDATA, 1])
obj.RemoveUserData(c4d.DescID(c4d.DescLevel(c4d.ID_USERDATA), c4d.DescLevel(1)))
Parameters: id (int, list or DescID) – The id of the userdata.
Return type: bool
Returns: True if the userdata is removed, otherwise False.
BaseList2D.GetUserDataContainer()

Browse through the user data container sequence:

for id, bc in op.GetUserDataContainer():
    print id, bc
Return type: list[(DescID, BaseContainer),]
Returns: A list of tuples.
BaseList2D.SetUserDataContainer(descid, datadescription)

Insert a new user data with the specified ID.

Parameters:
  • descid (DescID) – ID of the new user data.
  • datadescription (BaseContainer) – Settings to the new user data.
Return type:

True if the user data was inserted, otherwise False.

BaseList2D.GetHighlightHandle(bd)

Checks if a highlight handle has been hit, by returning the ID previously returned by ObjectData.DetectHandle(). The handle can then be drawn in the highlight mode.

Parameters: bd (BaseDraw) – A base draw.
Return type: int
Returns: The Handle ID.

Table Of Contents