Extension CategoriesΒΆ

Each extension provided with Bana is written to answer a specific need belonging to one of these categories:

Maya’s implementation was deemed ambiguous possibly because of a lack of well-defined specification or documentation.
A specific method needs to be modified but creating a new method prefixed with bn isn’t an option. Therefore, the original method is fixed in place by being replaced. This approach is only used for magic methods such as __str__() and __hash__().
The extension is considered as a fundamental functionality that is missing from Maya’s API.
The original method needs to be wrapped to abstract away the used of the maya.OpenMaya.MScriptUtil class. Some of these methods are marked as not implemented to document a better alternative approach.
no throw
By default, exceptions are being thrown whenever a method returns a maya.OpenMaya.MStatus object with a value that is not kSuccess. This is not justified in cases where it is acceptable that the call to a method might or might not output a valid result. For example, it is expected for a MFn* class instance to fail accessing its maya.OpenMaya.MObject object if the function set hasn’t been fully initialized yet, this doesn’t have to be considered as an error. A better suited return value here is None since it carries the information that no valid object can be retrieved at the moment, while being even more convenient to check validity against.


The category for a specific extension can be found in the documentation associated with that extension.