c4d.documents

Follow me to the Inheritance diagramm.

Functions

c4d.documents.GetActiveDocument()

Returns the active document of Cinema 4D.

Return type:c4d.documents.BaseDocument
Returns:The actve document.
c4d.documents.GetFirstDocument()

Returns the first document in the list of documents within Cinema 4D.

Return type:c4d.documents.BaseDocument
Returns:The first document.
c4d.documents.SetActiveDocument(doc)

Sets doc as active document in Cinema 4D.

Parameters:doc (c4d.documents.BaseDocument) – The document.
c4d.documents.SaveDocument(doc, name, saveflags, format)

Saves the document to a file.

See also

The script that shows how to effectively access and change the settings of an importer/exporter.

See also

Warning note in SceneSaverData.Save().

Parameters:
  • doc (c4d.documents.BaseDocument) – Command ID
  • name (str or MemoryFileStruct) – File to save the document to.
  • saveflags (int) –

    The flags

    SAVEDOCUMENTFLAGS_0 No flags.
    SAVEDOCUMENTFLAGS_DIALOGSALLOWED Flag to inform your plugin that a dialog can be displayed if you wish. If this flag is not set then no dialogs must be opened.
    SAVEDOCUMENTFLAGS_SAVEAS Forces a “Save As” and opens the file requester.
    SAVEDOCUMENTFLAGS_DONTADDTORECENTLIST Do not add the saved document to recent file list.
    SAVEDOCUMENTFLAGS_AUTOSAVE Sets the Autosave mode. Files are not added to the recent file list and the document change star will not be reset.
    SAVEDOCUMENTFLAGS_SAVECACHES Caches of objects will also be written (only supported by Cinema 4D file format).
    SAVEDOCUMENTFLAGS_EXPORTDIALOG Opens the Export settings dialog.
  • format (int) –

    The file format to save the document as.

    FORMAT_C4DEXPORT Cinema 4D export.
    FORMAT_XMLEXPORT XML export.
    FORMAT_VRML1EXPORT VRML export.
    FORMAT_VRML2EXPORT VRML export.
    FORMAT_DXFEXPORT DXF export.
    FORMAT_3DSEXPORT 3DS export.
    FORMAT_OBJEXPORT OBJ export.
    FORMAT_Q3DEXPORT QuickDraw 3D export
    FORMAT_D3DEXPORT Direct3D import
Return type:

bool

Returns:

True if successful, otherwise False.

c4d.documents.RenderDocument(doc, rdata, bmp[, renderflags=0, th=None])

Renders the document to a bitmap. You need to initialize the image with the size of the render data:

import c4d
from c4d import bitmaps, documents

doc = documents.GetActiveDocument()
rd = doc.GetActiveRenderData().GetData()
xres = int(rd[c4d.RDATA_XRES])
yres = int(rd[c4d.RDATA_YRES])

bmp = bitmaps.BaseBitmap()
#Initialize the bitmap with the result size
#The resolution must match with the output size of the render settings
bmp.Init(x=xres, y=yres, depth=24)

res = documents.RenderDocument(doc, rd, bmp, c4d.RENDERFLAGS_EXTERNAL)
if res==c4d.RENDERRESULT_OK:
  bitmaps.ShowBitmap(bmp)

A MultipassBitmap must be passed to render the image with an alpha channel:

import c4d
from c4d import bitmaps, documents

doc = documents.GetActiveDocument()
rd = doc.GetActiveRenderData().GetData()
xres = int(rd[c4d.RDATA_XRES])
yres = int(rd[c4d.RDATA_YRES])

bmp = bitmaps.MultipassBitmap(xres, yres, c4d.COLORMODE_RGB)
bmp.AddChannel(True, True)

res = documents.RenderDocument(doc, rd, bmp, c4d.RENDERFLAGS_EXTERNAL)
if res==c4d.RENDERRESULT_OK:
  bitmaps.ShowBitmap(bmp)
Parameters:
  • doc (c4d.documents.BaseDocument) – The document you want to render.
  • rdata (c4d.BaseContainer) – The render data.
  • bmp (c4d.bitmaps.BaseBitmap) – The bitmap where the rendered picture will be saved in. Initialize the image with the size of the render data.
  • renderflags (int) –

    Some renderflags.

    RENDERFLAGS_0 None.
    RENDERFLAGS_EXTERNAL Use render settings for LOD etc. (Otherwise the current document settings are used.)
    RENDERFLAGS_NODOCUMENTCLONE Set this flag to avoid an automatic clone of the scene sent to RenderDocument().
    RENDERFLAGS_SHOWERRORS Show error messages.
    RENDERFLAGS_PREVIEWRENDER Preview render.
    RENDERFLAGS_IRR Interactive region render.
    RENDERFLAGS_CREATE_PICTUREVIEWER Renders in a new Picture Viewer.
    RENDERFLAGS_OPEN_PICTUREVIEWER Opens the Picture Viewer.
    RENDERFLAGS_DONTANIMATE

    New in version R17.032.

    Do not animate document before rendering. This should only be used in combination with RENDERFLAGS_PREVIEWRENDER.

    Note

    If you are in a safe context you might use RENDERFLAG_NODOCUMENTCLONE to speed up the render process especially on big scenes.

  • th (c4d.threading.BaseThread) – The thread to test for a break or None.
Return type:

int

Returns:

The result:

RENDERRESULT_OK Function was successful.
RENDERRESULT_OUTOFMEMORY Not enough memory.
RENDERRESULT_ASSETMISSING Assets (textures etc.) are missing.
RENDERRESULT_SAVINGFAILED Failed to save.
RENDERRESULT_USERBREAK User stopped the processing.
RENDERRESULT_GICACHEMISSING GI cache is missing.

c4d.documents.MergeDocument(doc, name, loadflags[, thread])

Merges the file name into the document doc.

Parameters:
  • doc (c4d.documents.BaseDocument) – The document to merge the loaded document name into.
  • name (str or MemoryFileStruct) – The file to merge into doc.
  • loadflags (int) –

    The scene filter flags for the loader:

    SCENEFILTER_0 No flags.
    SCENEFILTER_OBJECTS Load/save objects.
    SCENEFILTER_MATERIALS Load/save materials.
    SCENEFILTER_DIALOGSALLOWED Flag to inform your plugin that a dialog can be displayed if you wish, if this flag not set then no dialogs must be opened.
    SCENEFILTER_PROGRESSALLOWED Flag to inform your plugin that a progress bar can be displayed if you wish. The progress bar can be set by calling StatusSetBar().
    SCENEFILTER_MERGESCENE Flag to inform your plugin that this is a merge operation, i.e. that the document you are inserting to is an existing scene.
    SCENEFILTER_NONEWMARKERS Objects loaded from disk will keep their markers.
    SCENEFILTER_SAVECACHES Caches of objects will also be written (only supported by Cinema 4D file format). This equals the global option “Save Polygon Objects for Melange Exchange”.
  • thread (c4d.threading.BaseThread) – The current thread, or None for the main Cinema 4D thread.
Return type:

bool

Returns:

True if successful, otherwise False.

c4d.documents.LoadFile(name)

Loads a file into Cinema 4D and opens it.

Note

This function can be used to open any kind of file Cinema 4D handles i.e. a document, an image, a layout, a C.O.F.F.E.E. script or a lib4d/cat4d file.

Parameters:name (str) – The file to load.
c4d.documents.KillDocument(doc)

Removes and free all resources of this document.

Parameters:doc (c4d.documents.BaseDocument) – The document to free.
c4d.documents.InsertBaseDocument(doc)

Inserts a document into the Cinema 4D editor list of documents.

Parameters:doc (c4d.documents.BaseDocument) – The document to insert.
c4d.documents.LoadDocument(name, loadflags[, thread])

Similar to LoadFile() but this time the document is not put into the editors list of documents and it gives control over the loaded document.

Parameters:
  • name (str or MemoryFileStruct) – The name of the file to load the document from.
  • loadflags (int) –

    The scene filter flags for the loader:

    SCENEFILTER_0 No flags.
    SCENEFILTER_OBJECTS Load/save objects.
    SCENEFILTER_MATERIALS Load/save materials.
    SCENEFILTER_DIALOGSALLOWED Flag to inform your plugin that a dialog can be displayed if you wish, if this flag not set then no dialogs must be opened.
    SCENEFILTER_PROGRESSALLOWED Flag to inform your plugin that a progress bar can be displayed if you wish. The progress bar can be set by calling StatusSetBar().
    SCENEFILTER_MERGESCENE Flag to inform your plugin that this is a merge operation, i.e. that the document you are inserting to is an existing scene.
    SCENEFILTER_NONEWMARKERS Objects loaded from disk will keep their markers.
    SCENEFILTER_SAVECACHES Caches of objects will also be written (only supported by Cinema 4D file format). This equals the global option “Save Polygon Objects for Melange Exchange”.
  • thread (c4d.threading.BaseThread) – The current thread, or None for the main Cinema 4D thread.
Return type:

c4d.documents.BaseDocument

Returns:

The document that was loaded, or None if it failed.

c4d.documents.CloseAllDocuments()

Closes all open documents in Cinema 4D.

Return type:bool
Returns:True on success, otherwise False
c4d.documents.SetDocumentTime(doc, time)

Controls the time of the active document doc. Unlike BaseDocument.SetTime() it handles running animation.

Parameters:
Return type:

bool

Returns:

True on success, otherwise False

c4d.documents.RunAnimation(doc, stop[, forward])

Controls the animation in the active document doc.

Parameters:
  • doc (c4d.documents.BaseDocument) – The document to control. Usually GetActiveDocument()
  • stop (bool) – If this is True the animation is stopped, otherwise it is running.
  • forward (bool) – If this is True the direction is set to forward, otherwise it is set to backward.
Return type:

bool

Returns:

True on success, otherwise False

c4d.documents.InteractiveModeling_Restart(doc)

Used for modeling tools with GUI input. Applies the last modeling undo so that new values of the modeling tool can be applied. An example from the edge cut code:

from c4d import documents, plugins

class TestTool(plugins.ToolData):

  def MouseInput(self, doc, data, draw, win, msg):
    if not doc: return False

    if doc.GetMode() == documents.Medges:
      active = p.GetActiveObjects(True)

    #undo step before
    documents.InteractiveModeling_Restart(doc)

    self.ModelingEdgeCut(active, c4d.MODIFY_EDGESELECTION, data, doc, win, msg, True)
    c4d.EventAdd()

    return True
Parameters:doc (c4d.documents.BaseDocument) – The document.
Return type:bool
Returns:True if successful, otherwise False.
c4d.documents.IsolateObjects(doc, t_objects)

A helper routine to copy the objects t_objects of document doc to a new document (returned). All materials associated are also copied over and the links are corrected.

Parameters:
Return type:

c4d.documents.BaseDocument

Returns:

The document containing the isolated objects.

c4d.documents.StopExternalRenderer()

Stop the external renderer.

Return type:bool
Returns:True if the rendering has been canceled, otherwise False.
c4d.documents.GetBatchRender()

Get the batch render instance.

Return type:c4d.documents.BatchRender
Returns:The batch render.
c4d.documents.GetAllAssets(doc, allowDialogs, lastPath)

New in version R15.057.

Get all assets from a document. It is e.g. used by “Save Project with Assets” menu and SaveProject().

Parameters:
  • doc (c4d.documents.BaseDocument) – The document to save as project.
  • allowDialogs (bool) – If True this function can open dialogs. For example a file select dialog will be opened if a node of the scene points to a file which does not exist anymore.
  • lastPath (str) –
If a file dialog is opened and the user selects the missing file on the harddisk, the folder of this asset is assigned to lastPath.
The developer can store this value somewhere and pass it next time so Cinema 4D knows where to look first before asking the user again.
Return type:list of dict{filename: str, assetname: str, channelId: int, netRequestOnDemand: bool}
Returns:The assets in the document doc or None if there was an error.
c4d.documents.SaveProject(doc, flags, targetPath[, assets][, missingAssets])

New in version R15.057.

Save the document as a project (menu “Save Project with Assets”).

Parameters:
  • doc (c4d.documents.BaseDocument) – The document to save as project.
  • flags (int) –

    Flags:

    SAVEPROJECT_0 None.
    SAVEPROJECT_ASSETS Pass if the assets will be taken into account.
    SAVEPROJECT_SCENEFILE Pass if the scene will be taken into account.
    SAVEPROJECT_DIALOGSALLOWED Show dialogs like error messages, a file selection for missing assets or alerts if necessary.
    SAVEPROJECT_SHOWMISSINGASSETDIALOG If an asset is missing show a warning dialog. Flag can be set without SAVEPROJECT_DIALOGSALLOWED.
    SAVEPROJECT_ADDTORECENTLIST Add document to the recent list.
    SAVEPROJECT_DONTCOPYFILES Does the same as without this flag but does not copy the files to the destination. Flag used to simulate the function.
    SAVEPROJECT_PROGRESSALLOWED Show the progress bar in the main window.
    SAVEPROJECT_DONTTOUCHDOCUMENT Document will be in the same state as before the call was made.
    SAVEPROJECT_DONTFAILONMISSINGASSETS If this flag is passed, the function does not fail anymore when assets are missing.
    SAVEPROJECT_ISNET Private. Set only if NET module is collecting assets.
  • targetPath (str) – The path to save the project to.
  • assets (list of dict{filename: str, assetname: str, channelId: int, netRequestOnDemand: bool}) – Assigned the found assets.
  • missingAssets (list of dict{filename: str, assetname: str, channelId: int, netRequestOnDemand: bool}) – Assigned the missing assets.
Return type:

bool

Returns:

True if the document was successfully saved as a project, otherwise False.

c4d.documents.Assemble(inputpath, inputname, rdata, context, assembleRegular, assembleMultipass, bt, ifrom, ito, errorstring, clearimages)

New in version R16.050.

Private.

c4d.documents.GetFirstMarker(doc)

Returns the first timeline marker of the document.

Parameters:doc (c4d.documents.BaseDocument) – The document.
Return type:c4d.BaseList2D
Returns:The first timeline marker.
c4d.documents.AddMarker(doc, pPred, time, name)

Inserts a timeline marker into the document at a given time. Optionally an insertion point pPred in the timeline marker list can be specified, giving the marker before the wanted insertion point.

Parameters:
  • doc (c4d.documents.BaseDocument) – The document in which to insert.
  • pPred (c4d.BaseList2D) – The optional timeline marker to use as list insertion point.
  • time (c4d.BaseTime) – The time position of the timeline marker.
  • name (str) – The name of the timeline marker.
Return type:

c4d.BaseList2D

Returns:

The added timeline marker, or None if insertion failed.