c4d.storage

class c4d.storage

Types

Functions Signatures

c4d.storage.LoadDialog([type, title, flags, ...])

Open a load dialog. The look of this dialog depends on the operating system.

c4d.storage.SaveDialog([type, title, ...])

Open a save dialog. The look of this dialog depends on the operating system.

c4d.storage.ShowInFinder(path, open)

Show the file/path in the Finder (OSX) or Explorer (Windows).

c4d.storage.GeGetPluginPath()

Retrieve the path of the current module.

c4d.storage.GeGetC4DPath(whichpath)

Gets one of the Cinema 4D paths.

c4d.storage.GeGetStartupApplication()

Returns the complete path of the host application (Cinema 4D, BODYPAINT 3D, NET) of the plugin:

c4d.storage.GeGetStartupWritePath()

Returns the writeable startup directory. This is the directory where all user data (preferences, libraries etc.) are stored:

c4d.storage.GeGetMemoryStat()

Gets Cinema 4D memory statistics.

c4d.storage.GeMemGetFreePhysicalMemoryEstimate()

Get the estimated free physical memory.

c4d.storage.WriteHyperFile(doc, node, filename, ident)

Writes a single list node to disk as a hyper file.

c4d.storage.ReadHyperFile(doc, node, filename, ident)

Reads a single list node from a hyper file on disk. The read data replaces the data in node.

c4d.storage.GeGetStartupPath()

Get the path for the main folder Cinema 4D:

c4d.storage.GetUserSiteSpecificPath()

Get the path to the site folder in the user folder.

c4d.storage.GetFreeVolumeSpace(drive)

Calculate the free space on a volume.

c4d.storage.GeExecuteProgram(app, path)

Executes an application.

c4d.storage.GeExecuteFile(path)

Executes a file.

c4d.storage.GeGetMovieInfo(path)

Get information from a movie file.

c4d.storage.GeIdentifyFile(name, probe, recognition)

Identify the file in name.

Functions Documentation

c4d.storage.LoadDialog(type=FILESELECTTYPE_ANYTHING, title='', flags=FILESELECT_LOAD, force_suffix='', def_path='', def_file='')

Open a load dialog. The look of this dialog depends on the operating system.

../../_images/storage_load.png

Warning

If the filename returned by LoadDialog() will be passed to a non-Cinema 4D function it must be decoded to an utf-8 object.

import c4d



fn = c4d.storage.LoadDialog()

f = open(fn.decode("utf-8"))



# open() is a non-Cinema 4D function so it needs a decode but it works with a Cinema 4D function:



doc = c4d.documents.LoadDocument(fn)

# or

doc = c4d.documentsLoadDocument(fn.decode("utf8"))

Parameters
  • type (int) –

    One of the following flags:

    FILESELECTTYPE_ANYTHING

    Any file.

    FILESELECTTYPE_IMAGES

    Image files.

    FILESELECTTYPE_SCENES

    3D scene files.

    FILESELECTTYPE_BODYPAINT

    BodyPaint 3D files.

  • title (str) – The title.

  • flags (int) –

    The flags:

    FILESELECT_LOAD

    Load dialog.

    FILESELECT_SAVE

    Save dialog.

    FILESELECT_DIRECTORY

    Folder selection dialog.

  • force_suffix (str) – Currently not used.

  • def_path (str) – The default path on popup.

  • def_file (str) –

    New in version R18.057: The default file on popup.

Return type

str

Returns

The selected path.

c4d.storage.SaveDialog(type=FILESELECTTYPE_ANYTHING, title='', force_suffix='', def_path='', def_file='')

Open a save dialog. The look of this dialog depends on the operating system.

../../_images/storage_save.png
Parameters
  • type (int) –

    One of the following flags:

    FILESELECTTYPE_ANYTHING

    Any file.

    FILESELECTTYPE_IMAGES

    Image files.

    FILESELECTTYPE_SCENES

    3D scene files.

    FILESELECTTYPE_BODYPAINT

    BodyPaint 3D files.

  • title (str) – The title.

  • force_suffix (str) – The suffix.

  • def_path (str) – The default path on popup.

  • def_file (str) –

    New in version R18.057: The default file on popup.

Return type

str

Returns

The selected path.

c4d.storage.ShowInFinder(path, open)

Show the file/path in the Finder (OSX) or Explorer (Windows).

Parameters
  • path (str) – The file/path to show.

  • open (bool) – If True the file will be opened by the assigned application.

Return type

bool

Returns

True if the path/file exists, otherwise False.

c4d.storage.GeGetPluginPath()

Retrieve the path of the current module.

Warning

The Python implementation is different from the C++. In the Python SDK, this function returns the path of the Python SDK module. To get the path of your Python plugin use __file__.

Return type

str

Returns

The path of the Python SDK module.

c4d.storage.GeGetC4DPath(whichpath)

Gets one of the Cinema 4D paths.

Parameters

whichpath (int) –

The path to get:

C4D_PATH_PREFS

Cinema 4D preferences directory.

C4D_PATH_RESOURCE

Cinema 4D resource directory.

C4D_PATH_LIBRARY

Cinema 4D library directory. (Built-in.)

C4D_PATH_LIBRARY_USER

Cinema 4D library path. (Different if multi-user mode is enabled.)

C4D_PATH_ONLINE_HELP

Cinema 4D online help directory.

C4D_PATH_DESKTOP

OS desktop directory.

C4D_PATH_HOME

OS home directory.

C4D_PATH_STARTUPWRITE

Writable startup directory.

C4D_PATH_MYDOCUMENTS

The user’s documents directory.

C4D_PATH_APPLICATION

OS application directory.

Return type

str

Returns

The retrieved path.

c4d.storage.GeGetStartupApplication()

Returns the complete path of the host application (Cinema 4D, BODYPAINT 3D, NET) of the plugin:

(Mac) e.g: ‘/Applications/MAXON/Cinema 4D R21_022/Cinema 4D.app’ (Windows) e.g: ‘C:Program FilesMAXONCinema 4D R21_022Cinema 4D.exe’

Return type

str

Returns

The complete path to the host application.

c4d.storage.GeGetStartupWritePath()

Returns the writeable startup directory. This is the directory where all user data (preferences, libraries etc.) are stored:

(Mac) e.g: ‘/Users/UserName/Library/Preferences/MAXON/Cinema 4D R12_C333CB6C’ (Windows) e.g: ‘C:UsersUserNameAppDataRoamingMaxonCinema 4D R21_022_95E9A228’

Note

For example to store plugin preferences since modern OS do not allow to write files into the application folder.

Return type

str

Returns

The writeable startup directory.

c4d.storage.GeGetMemoryStat()

Gets Cinema 4D memory statistics.

Return type

c4d.BaseContainer

Returns

Can be None if receiving memory container failed. Assigned statistics:

C4D_MEMORY_STAT_MEMORY_INUSE

long

Bytes in use.

C4D_MEMORY_STAT_MEMORY_PEAK

long

Peak usage in bytes.

C4D_MEMORY_STAT_NO_OF_ALLOCATIONS_TOTAL

long

Total number of allocations.

C4D_MEMORY_STAT_NO_OF_ALLOCATIONS_CURRENT

long

Current number of allocations.

C4D_MEMORY_STAT_EOGL_TEXBUFFER

long

Texture buffer usage.

C4D_MEMORY_STAT_EOGL_VERTEXBUFFER

long

Vertex buffer usage.

C4D_MEMORY_STAT_LOWMEMCNT

int

Number of low memory conditions (out of memory).

C4D_MEMORY_STAT_EOGL_VERTEXBUFFER_CNT

int

Number of VBOs (Vertex Buffer Objects).

C4D_MEMORY_STAT_EOGL_TEXTUREBUFFER_CNT

int

Number of texture buffers.

C4D_MEMORY_STAT_OPENGL_TOTAL

int

Total OpenGL memory in KB.

C4D_MEMORY_STAT_OPENGL_FREE

int

Free OpenGL memory in KB.

c4d.storage.GeMemGetFreePhysicalMemoryEstimate()

Get the estimated free physical memory.

Return type

long

Returns

The estiumated free physical memory.

c4d.storage.WriteHyperFile(doc, node, filename, ident)

Writes a single list node to disk as a hyper file.

Parameters
Return type

int

Returns

The result:

FILEERROR_NONE

No error.

FILEERROR_OPEN

Problems opening the file.

FILEERROR_CLOSE

Problems closing the file.

FILEERROR_READ

Problems reading the file.

FILEERROR_WRITE

Problems writing the file.

FILEERROR_SEEK

Problems seeking the file.

FILEERROR_INVALID

Invalid parameter or operation (e.g. writing in read-mode).

FILEERROR_MEMORY

Not enough memory.

FILEERROR_USERBREAK

User break.

FILEERROR_WRONG_VALUE

Other value detected than expected.

FILEERROR_CHUNK_NUMBER

Wrong number of chunks or sub-chunks detected.

FILEERROR_VALUE_NO_CHUNK

There was a value without any enclosing start/stop chunks.

FILEERROR_FILE_END

The file end was reached without finishing reading.

FILEERROR_UNKNOWN_VALUE

Unknown value detected.

c4d.storage.ReadHyperFile(doc, node, filename, ident)

Reads a single list node from a hyper file on disk. The read data replaces the data in node.

Parameters
Return type

int

Returns

The result:

FILEERROR_NONE

No error.

FILEERROR_OPEN

Problems opening the file.

FILEERROR_CLOSE

Problems closing the file.

FILEERROR_READ

Problems reading the file.

FILEERROR_WRITE

Problems writing the file.

FILEERROR_SEEK

Problems seeking the file.

FILEERROR_INVALID

Invalid parameter or operation (e.g. writing in read-mode).

FILEERROR_MEMORY

Not enough memory.

FILEERROR_USERBREAK

User break.

FILEERROR_WRONG_VALUE

Other value detected than expected.

FILEERROR_CHUNK_NUMBER

Wrong number of chunks or sub-chunks detected.

FILEERROR_VALUE_NO_CHUNK

There was a value without any enclosing start/stop chunks.

FILEERROR_FILE_END

The file end was reached without finishing reading.

FILEERROR_UNKNOWN_VALUE

Unknown value detected.

c4d.storage.GeGetStartupPath()

Get the path for the main folder Cinema 4D:

(Mac) e.g: ‘/Applications/MAXON/Cinema 4D R12’ (Windows) e.g: ‘C:Program FilesMAXONCinema 4D R21_022’

Return type

str

Returns

The main path for the Cinema 4D application.

c4d.storage.GetUserSiteSpecificPath()

Get the path to the site folder in the user folder.

(Windows 64-bits) e.g: ‘C:/Users/$UserName/AppData/Roaming/MAXON/R15/library/python/packages/win64’

New in version R15.037.

Note

This folder exists so that 3rd party packages can be installed in it.

Return type

str

Returns

The path to the site folder in the user folder.

c4d.storage.GetFreeVolumeSpace(drive)

Calculate the free space on a volume.

New in version R16.021.

Parameters

drive (str) – Can point to a volume or directory.

Return type

tuple(long, long)

Returns

The number of available bytes on the volume and the total size of the volume in bytes.

c4d.storage.GeExecuteProgram(app, path)

Executes an application.

Note

The application is started asynchronously.

Parameters
  • app (str) – The name of the application to execute.

  • path (str) – The name of a file to open using the application.

Return type

bool

Returns

True if the application was executed, otherwise False.

c4d.storage.GeExecuteFile(path)

Executes a file.

Note

Opens a file as if the user double-clicked it: the default application for this file will open.

Parameters

path (str) – The name of the application to execute.

Return type

bool

Returns

True if the application was executed, otherwise False.

c4d.storage.GeGetMovieInfo(path)

Get information from a movie file.

Parameters

path (Union[str, c4d.storage.MemoryFileStruct]) – The path of the movie file.

Return type

dict{frames: int, fps: float}

Returns

The number of frames and frames per second.

c4d.storage.GeIdentifyFile(name, probe, recognition)

Identify the file in name.

Parameters
  • name (Union[str, c4d.storage.MemoryFileStruct]) – The file to check.

  • probe (buffer) – The start of a small chunk of data from the start of the file for testing this file type. Usually the probe size is 1024 bytes.

  • recognition (int) –

    Identification flags:

    IDENTIFYFILE_NONE

    None.

    IDENTIFYFILE_SCENE

    Scene file.

    IDENTIFYFILE_IMAGE

    Image file.

    IDENTIFYFILE_MOVIE

    Movie file.

    IDENTIFYFILE_SKIPQUICKTIME

    Skip files that require Quicktime.

    IDENTIFYFILE_SCRIPT

    Script file.

    IDENTIFYFILE_SOUND

    Sound file.

    IDENTIFYFILE_LAYOUT

    Layout file.

    IDENTIFYFILE_PYTHON

    Python file.

Return type

tuple(int, BasePlugin)

Returns

The result and, for image formats, the image loader that was identified.

IDENTIFYFILE_NONE

None.

IDENTIFYFILE_SCENE

Scene file.

IDENTIFYFILE_IMAGE

Image file.

IDENTIFYFILE_MOVIE

Movie file.

IDENTIFYFILE_SKIPQUICKTIME

Skip files that require Quicktime.

IDENTIFYFILE_SCRIPT

Script file.

IDENTIFYFILE_SOUND

Sound file.

IDENTIFYFILE_LAYOUT

Layout file.

IDENTIFYFILE_PYTHON

Python file.