After some discussion with Campbell, changed the way cstruct sizeof is fetched. Moved DataSize() to Blender.Types.CSizeof(Blendertype). Supported types return sizeof(data struct), otherwise -1. To quickly check what types are supported: import Blender.Types as bt x = dir(bt) for t in x: if t[0] != '_': s = 'bt.CSizeof(bt.' + t + ')' print t,"=", eval(s)