I wonder if maybe it would be better to create a script that creates a new .blend file for each .obj and then links/imports from there? That way, you’d have access to the Blender data.
At any rate, you should use USD, or ABC if you can, since those importers are faster (C++ instead of Python). Also, I think USD will allow you to query info about the scene before you import it.
Could explain a little more what you mean by immutable objects and why this is desirable/useful? Wikipedia says In object-oriented and functional programming, an immutable object is an object whose state cannot be modified after it is created.
To me, this seems backwards… in Blender’s API, everything is conceived of as modifying the data of objects, rather than running operations on objects (side effects are mostly avoided). From my experience with MEL, it seems the opposite convention is followed. Instead of object.member.property = value
it is something like setattr("object.member.property", value)
. Is this related? Am I missing the mark? I just wonder if the paradigm in Blender’s API is more different than you expected and it is throwing you off?
Then again, I’ve never used “OpenMaya” (what a ridiculous name), so I don’t know how it compares to MEL. Well, I don’t know how much we should talk about Maya stuff, anyways. Ton recently had to remove a bunch of images from the forum because it used images of other softwares (want to avoid copyright trouble).