Open benblo opened 4 years ago
That's probably because Maya doesn't support default values for non numeric types. You can't even do that manually.
String.default() should be removed to avoid confusion (or at least removed at addAttr)
Strange that it assigns the value at all. :/
We could remove it, but I think we should handle it instead. No reason this shouldn't work other than a Maya API limitation, and we can just regularly assign it post-creation to keep all attributes uniform and working as expected.
Anyone interested in tackling this?
I have a workaround already, it’s ugly but I can kick a PR tomorrow-ish. What’s weird is the OM API accepts the default for TypedAttr, it’s even custom handled by cmdx to convert the python str to MObj (plus reassigning the same value doesn’t trigger a dirty so the default is tracked)... so it really looks like it should work, it’s just not saved in scene.
If I create an attribute with a default value, but don't change it, the value is lost after saving & reloading the scene. I don't know if it's by design or not, but I do see the default value I set appear correctly in the attribute editor, so it's extremely confusing to have the attribute be wiped after reloading the scene.
Here's an all-in-one example: