Reference/Release Notes/3.0/Python API

Blender 3.0: Python API

Other changes

  • Added Operator.poll_message_set(message, ...)
    Operators can now set a message for why an operators poll function fails (ebe04bd3ca).
  • New bpy.app.handlers.xr_session_start_pre handler, executes when starting a virtual reality session. Main use-case is to pass a VR controller action map (the XR equivalent of a key-map) to the session.
  • New Matrix.LocRotScale constructor for combining all transformation channels into a matrix in one call. (rBa86e815d).

Breaking Changes

  • Replaced PoseBone.custom_shape_scale scalar with a PoseBone.custom_shape_scale_xyz vector; in addition, custom_shape_translation and custom_shape_rotation_euler were added. (rBfc5bf09f)
  • Renamed bbone_curveiny/bbone_curveouty to bbone_curveinz/bbone_curveoutz. Combined scale channels into bbone_scalein.x/y/z and bbone_scaleout.x/y/z vectors, with original y also becoming z. (rB682a74e0)
  • Remove unused BMesh.from_object deform argument (ead084b6e1).
  • Remove context.active_base (44db4e50b2).
  • Remove use of wiki_url for add-ons bl_info (use "doc_url" instead) (aaa07a3a8f).
  • Remove IDPropertyGroup.iteritems, now keys, values & items all use iterators (B265d97556).
  • Some RNA accessors were creating data, which is very bad on design level for several reasons, the following were changed:
    • Force fields and collision settings (Object.field, Object.collision, ParticleSettings.force_field_1 and ParticleSettings.force_field_2). Object ones can be None and need to be added explicitly now (Collision modifier and forcefield_toggle operator), particle ones are always generated together with particles settings.
    • ID preview can be None, can use the new preview_ensure function first then.
  • Remove bpy.app.binary_path_python (90b0fb135f) (use sys.executable instead)

Use Keyword Only Arguments

  • addon_utils.module_bl_info 2nd arg info_basis.
  • addon_utils.modules 1st module_cache, 2nd arg refresh.
  • addon_utils.modules_refresh 1st arg module_cache.
  • bl_app_template_utils.activate 1nd arg template_id.
  • bl_app_template_utils.import_from_id 2nd arg ignore_not_found.
  • bl_app_template_utils.import_from_path 2nd arg ignore_not_found.
  • bl_keymap_utils.keymap_from_toolbar.generate 2nd & 3rd args use_fallback_keys & use_reset.
  • bl_keymap_utils.platform_helpers.keyconfig_data_oskey_from_ctrl 2nd arg filter_fn.
  • bl_ui_utils.bug_report_url.url_prefill_from_blender 1st arg addon_info.
  • bmesh.types.BMFace.copy 1st & 2nd args verts, edges.
  • bmesh.types.BMesh.calc_volume 1st arg signed.
  • bmesh.types.BMesh.from_mesh 2nd..4th args face_normals, use_shape_key, shape_key_index.
  • bmesh.types.BMesh.from_object 3rd & 4th args cage, face_normals.
  • bmesh.types.BMesh.transform 2nd arg filter.
  • bmesh.types.BMesh.update_edit_mesh 2nd & 3rd args loop_triangles, destructive.
  • bmesh.types.{BMVertSeq,BMEdgeSeq,BMFaceSeq}.sort 1st & 2nd arg key, reverse.
  • bmesh.utils.face_split 4th..6th args coords, use_exist, example.
  • bpy.data.libraries.load 2nd..4th args link, relative, assets_only.
  • bpy.data.user_map 1st..3rd args subset, key_types, value_types.
  • bpy.msgbus.subscribe_rna 5th arg options.
  • bpy.path.abspath 2nd & 3rd args start & library.
  • bpy.path.clean_name 2nd arg replace.
  • bpy.path.ensure_ext 3rd arg case_sensitive.
  • bpy.path.module_names 2nd arg recursive.
  • bpy.path.relpath 2nd arg start.
  • bpy.types.EditBone.transform 2nd & 3rd arg scale, roll.
  • bpy.types.Operator.as_keywords 1st arg ignore.
  • bpy.types.Struct.{keyframe_insert,keyframe_delete} 2nd..5th args index, frame, group, options.
  • bpy.types.WindowManager.popup_menu 2nd & 3rd arg title, icon.
  • bpy.types.WindowManager.popup_menu_pie 3rd & 4th arg title, icon.
  • bpy.utils.app_template_paths 1st arg subdir.
  • bpy.utils.app_template_paths 1st arg subdir.
  • bpy.utils.blend_paths 1st..3rd args absolute, packed, local.
  • bpy.utils.execfile 2nd arg mod.
  • bpy.utils.keyconfig_set 2nd arg report.
  • bpy.utils.load_scripts 1st & 2nd reload_scripts & refresh_scripts.
  • bpy.utils.preset_find 3rd & 4th args display_name, ext.
  • bpy.utils.resource_path 2nd & 3rd arg major, minor.
  • bpy.utils.script_paths 1st..4th args subdir, user_pref, check_all, use_user.
  • bpy.utils.smpte_from_frame 2nd & 3rd args fps, fps_base.
  • bpy.utils.smpte_from_seconds 2nd & 3rd args fps, fps_base.
  • bpy.utils.system_resource 2nd arg subdir.
  • bpy.utils.time_from_frame 2nd & 3rd args fps, fps_base.
  • bpy.utils.time_to_frame 2nd & 3rd args fps, fps_base.
  • bpy.utils.units.to_string 4th..6th precision, split_unit, compatible_unit.
  • bpy.utils.units.to_value 4th arg str_ref_unit.
  • bpy.utils.user_resource 2nd & 3rd args subdir, create
  • bpy_extras.view3d_utils.location_3d_to_region_2d 4th arg default.
  • bpy_extras.view3d_utils.region_2d_to_origin_3d 4th arg clamp.
  • gpu.offscreen.unbind 1st arg restore.
  • gpu_extras.batch.batch_for_shader 4th arg indices.
  • gpu_extras.batch.presets.draw_circle_2d 4th arg segments.
  • gpu_extras.presets.draw_circle_2d 4th arg segments.
  • imbuf.types.ImBuf.resize 2nd arg resize.
  • imbuf.write 2nd arg filepath.
  • mathutils.kdtree.KDTree.find 2nd arg filter.
  • nodeitems_utils.NodeCategory 3rd & 4th arg descriptions, items.
  • nodeitems_utils.NodeItem 2nd..4th args label, settings, poll.
  • nodeitems_utils.NodeItemCustom 1st & 2nd arg poll, draw.
  • rna_prop_ui.draw 5th arg use_edit.
  • rna_prop_ui.rna_idprop_ui_get 2nd arg create.
  • rna_prop_ui.rna_idprop_ui_prop_clear 3rd arg remove.
  • rna_prop_ui.rna_idprop_ui_prop_get 3rd arg create.
  • rna_xml.xml2rna 2nd arg root_rna.
  • rna_xml.xml_file_write 4th arg skip_typemap.

See commit (f29a738e23).