Python bpy 模块,utils() 实例源码

我们从Python开源项目中,提取了以下43个代码示例,用于说明如何使用bpy.utils()

项目:bpy_lambda    作者:bcongdon    | 项目源码 | 文件源码
def draw_preset(self, context):
        """
        Define these on the subclass:
        - preset_operator (string)
        - preset_subdir (string)

        Optionally:
        - preset_extensions (set of strings)
        - preset_operator_defaults (dict of keyword args)
        """
        import bpy
        ext_valid = getattr(self, "preset_extensions", {".py", ".xml"})
        props_default = getattr(self, "preset_operator_defaults", None)
        self.path_menu(bpy.utils.preset_paths(self.preset_subdir),
                       self.preset_operator,
                       props_default=props_default,
                       filter_ext=lambda ext: ext.lower() in ext_valid)
项目:visp_cao_editor    作者:lagadic    | 项目源码 | 文件源码
def register():
    from bpy.utils import register_class
    for mod in _modules_loaded:
        for cls in mod.classes:
            register_class(cls)

    bpy.types.Scene.ignit_panel = bpy.props.PointerProperty(type=_modules_loaded[0].classes[0])
    bpy.types.Scene.custom_vertices = CollectionProperty(type=_modules_loaded[0].classes[1])
    bpy.types.Scene.custom_vertices_index = IntProperty()

    bpy.types.Scene.custom_faces = CollectionProperty(type=_modules_loaded[1].classes[0])
    bpy.types.Scene.custom_faces_index = IntProperty()

    bpy.types.Scene.custom_lines = CollectionProperty(type=_modules_loaded[2].classes[0])
    bpy.types.Scene.custom_lines_index = IntProperty()

    bpy.types.Scene.custom_cylinder = CollectionProperty(type=_modules_loaded[3].classes[0])
    bpy.types.Scene.custom_cylinder_index = IntProperty()

    bpy.types.Scene.custom_circle = CollectionProperty(type=_modules_loaded[4].classes[0])
    bpy.types.Scene.custom_circle_index = IntProperty()

    bpy.utils.register_module(__name__)
    bpy.types.INFO_MT_file_export.append(menu_func_export)
项目:visp_cao_editor    作者:lagadic    | 项目源码 | 文件源码
def unregister():
    from bpy.utils import unregister_class
    for mod in reversed(_modules_loaded):
        for cls in reversed(mod.classes):
            if cls.is_registered:
                unregister_class(cls)
    del bpy.types.Scene.custom_circle
    del bpy.types.Scene.custom_circle_index
    del bpy.types.Scene.custom_cylinder
    del bpy.types.Scene.custom_cylinder_index

    bpy.utils.unregister_module(__name__)
    bpy.types.INFO_MT_file_export.remove(menu_func_export)
    del bpy.types.Scene.ignit_panel

# if __name__ == "__main__":
#     register()
项目:bpy_lambda    作者:bcongdon    | 项目源码 | 文件源码
def banner(context):
    sc = context.space_data
    version_string = sys.version.strip().replace('\n', ' ')

    add_scrollback("PYTHON INTERACTIVE CONSOLE %s" % version_string, 'OUTPUT')
    add_scrollback("", 'OUTPUT')
    add_scrollback("Command History:     Up/Down Arrow", 'OUTPUT')
    add_scrollback("Cursor:              Left/Right Home/End", 'OUTPUT')
    add_scrollback("Remove:              Backspace/Delete", 'OUTPUT')
    add_scrollback("Execute:             Enter", 'OUTPUT')
    add_scrollback("Autocomplete:        Ctrl-Space", 'OUTPUT')
    add_scrollback("Zoom:                Ctrl +/-, Ctrl-Wheel", 'OUTPUT')
    add_scrollback("Builtin Modules:     bpy, bpy.data, bpy.ops, "
                   "bpy.props, bpy.types, bpy.context, bpy.utils, "
                   "bgl, blf, mathutils",
                   'OUTPUT')
    add_scrollback("Convenience Imports: from mathutils import *; "
                   "from math import *", 'OUTPUT')
    add_scrollback("Convenience Variables: C = bpy.context, D = bpy.data",
                   'OUTPUT')
    add_scrollback("", 'OUTPUT')
    sc.prompt = PROMPT

    return {'FINISHED'}


# workaround for readline crashing, see: T43491
项目:bpy_lambda    作者:bcongdon    | 项目源码 | 文件源码
def _setup_classes(self):
        import bpy
        assert(self._class_store is None)
        self._class_store = self.class_ignore()
        from bpy.utils import unregister_class
        for cls in self._class_store:
            unregister_class(cls)
项目:bpy_lambda    作者:bcongdon    | 项目源码 | 文件源码
def _teardown_classes(self):
        assert(self._class_store is not None)

        from bpy.utils import register_class
        for cls in self._class_store:
            register_class(cls)
        self._class_store = None
项目:bpy_lambda    作者:bcongdon    | 项目源码 | 文件源码
def update_panel(self, context):
    try:
        bpy.utils.unregister_class(TOOLS_PT_Archipack_PolyLib)
        bpy.utils.unregister_class(TOOLS_PT_Archipack_Tools)
        bpy.utils.unregister_class(TOOLS_PT_Archipack_Create)
    except:
        pass
    prefs = context.user_preferences.addons[__name__].preferences
    TOOLS_PT_Archipack_PolyLib.bl_category = prefs.tools_category
    bpy.utils.register_class(TOOLS_PT_Archipack_PolyLib)
    TOOLS_PT_Archipack_Tools.bl_category = prefs.tools_category
    bpy.utils.register_class(TOOLS_PT_Archipack_Tools)
    TOOLS_PT_Archipack_Create.bl_category = prefs.create_category
    bpy.utils.register_class(TOOLS_PT_Archipack_Create)
项目:bpy_lambda    作者:bcongdon    | 项目源码 | 文件源码
def unregister():
    global icons_collection
    bpy.types.INFO_MT_mesh_add.remove(menu_func)
    bpy.utils.unregister_class(ARCHIPACK_create_menu)

    bpy.utils.unregister_class(TOOLS_PT_Archipack_PolyLib)
    bpy.utils.unregister_class(TOOLS_PT_Archipack_Tools)
    bpy.utils.unregister_class(TOOLS_PT_Archipack_Create)
    bpy.utils.unregister_class(Archipack_Pref)
    # unregister subs
    archipack_snap.unregister()
    archipack_manipulator.unregister()
    archipack_reference_point.unregister()
    archipack_autoboolean.unregister()
    archipack_door.unregister()
    archipack_window.unregister()
    archipack_stair.unregister()
    archipack_wall.unregister()
    archipack_wall2.unregister()
    # archipack_roof2d.unregister()
    archipack_slab.unregister()
    archipack_fence.unregister()
    archipack_truss.unregister()
    # archipack_toolkit.unregister()
    archipack_floor.unregister()
    archipack_rendering.unregister()

    if HAS_POLYLIB:
        archipack_polylib.unregister()

    bpy.utils.unregister_class(archipack_data)
    del WindowManager.archipack

    for icons in icons_collection.values():
        previews.remove(icons)
    icons_collection.clear()

    addon_updater_ops.unregister()

    # bpy.utils.unregister_module(__name__)
项目:bpy_lambda    作者:bcongdon    | 项目源码 | 文件源码
def register_property_groups():
    bpy.utils.register_class(OverrideCustomProperty)

    Override.custom_properties = CollectionProperty(type=OverrideCustomProperty)
    bpy.utils.register_class(Override)

    bpy.types.Scene.overrides = CollectionProperty(type=Override)
项目:bpy_lambda    作者:bcongdon    | 项目源码 | 文件源码
def unregister_property_groups():
    del bpy.types.Scene.overrides
    bpy.utils.unregister_class(OverrideCustomProperty)
    bpy.utils.unregister_class(Override)

# ======================================================================================
项目:bpy_lambda    作者:bcongdon    | 项目源码 | 文件源码
def path_menu(self, searchpaths, operator, props_default={}):
        layout = self.layout
        # hard coded to set the operators 'filepath' to the filename.
        import os
        import bpy.utils

        layout = self.layout
        if not searchpaths[0]:
            layout.label("* Missing Paths *")

        # collect paths
        else:
            files = []
            for directory in searchpaths:
                files.extend([(f, os.path.join(directory, f)) for f in os.listdir(directory)])

            files.sort()

            for f, filepath in files:

                if f.startswith("."):
                    continue

                preset_name = bpy.path.display_name(f)
                props = layout.operator(operator, text=preset_name)

                for attr, value in props_default.items():
                    setattr(props, attr, value)

                props.filepath = filepath
                if operator == "palette.load_gimp_palette":
                    props.menu_idname = self.bl_idname
项目:bpy_lambda    作者:bcongdon    | 项目源码 | 文件源码
def register():
    bpy.utils.register_module(__name__)

    bpy.types.Scene.palette_props = PointerProperty(
                                        type=PaletteProps,
                                        name="Palette Props",
                                        description=""
                                        )
    pass
项目:bpy_lambda    作者:bcongdon    | 项目源码 | 文件源码
def register():
    bpy.types.INFO_MT_file_export.append(menu_func)

    from bpy.utils import register_class
    for cls in classes:
        register_class(cls)
项目:bpy_lambda    作者:bcongdon    | 项目源码 | 文件源码
def unregister():
    bpy.types.INFO_MT_file_export.remove(menu_func)

    from bpy.utils import unregister_class
    for cls in reversed(classes):
        unregister_class(cls)
项目:bpy_lambda    作者:bcongdon    | 项目源码 | 文件源码
def draw(self, context):
        self.path_menu(
            bpy.utils.script_paths("templates_py"),
            "text.open",
            props_default={"internal": True},
        )
项目:bpy_lambda    作者:bcongdon    | 项目源码 | 文件源码
def draw(self, context):
        self.path_menu(
            bpy.utils.script_paths("templates_osl"),
            "text.open",
            props_default={"internal": True},
        )
项目:bpy_lambda    作者:bcongdon    | 项目源码 | 文件源码
def draw_ex(self, context, *, use_splash=False, use_default=False, use_install=False):
        import os

        layout = self.layout

        # now draw the presets
        layout.operator_context = 'EXEC_DEFAULT'

        if use_default:
            props = layout.operator("wm.read_homefile", text="Default")
            props.use_splash = True
            props.app_template = ""
            layout.separator()

        template_paths = bpy.utils.app_template_paths()

        # expand template paths
        app_templates = []
        for path in template_paths:
            for d in os.listdir(path):
                if d.startswith(("__", ".")):
                    continue
                template = os.path.join(path, d)
                if os.path.isdir(template):
                    # template_paths_expand.append(template)
                    app_templates.append(d)

        for d in sorted(app_templates):
            props = layout.operator(
                "wm.read_homefile",
                text=bpy.path.display_name(d),
            )
            props.use_splash = True
            props.app_template = d

        if use_install:
            layout.separator()
            layout.operator_context = 'INVOKE_DEFAULT'
            props = layout.operator("wm.app_template_install")
项目:bpy_lambda    作者:bcongdon    | 项目源码 | 文件源码
def is_user_addon(mod, user_addon_paths):
        import os

        if not user_addon_paths:
            for path in (bpy.utils.script_path_user(),
                         bpy.utils.script_path_pref()):
                if path is not None:
                    user_addon_paths.append(os.path.join(path, "addons"))

        for path in user_addon_paths:
            if bpy.path.is_subdir(mod.__file__, path):
                return True
        return False
项目:bpy_lambda    作者:bcongdon    | 项目源码 | 文件源码
def unregister():
    from bpy.utils import unregister_class
    for mod in reversed(_modules_loaded):
        for cls in reversed(mod.classes):
            if cls.is_registered:
                unregister_class(cls)

# Define a default UIList, when a list does not need any custom drawing...
# Keep in sync with its #defined name in UI_interface.h
项目:bpy_lambda    作者:bcongdon    | 项目源码 | 文件源码
def register():
    from bpy.utils import register_class
    for mod in _modules_loaded:
        for cls in mod.classes:
            register_class(cls)
项目:bpy_lambda    作者:bcongdon    | 项目源码 | 文件源码
def unregister():
    from bpy.utils import unregister_class
    for mod in reversed(_modules_loaded):
        for cls in reversed(mod.classes):
            if cls.is_registered:
                unregister_class(cls)
项目:bpy_lambda    作者:bcongdon    | 项目源码 | 文件源码
def unregister():
    from bpy.utils import unregister_class
    for cls in classes:
        unregister_class(cls)
项目:BlenderRobotDesigner    作者:HBPNeurorobotics    | 项目源码 | 文件源码
def unregister(cls):
        """
        Called from the top-level :func:`robot_designer_plugin.unregister` function in the ``__init__.py`` of the
        plugin.
        Removes all data collected during import.
        """
        report = ['\n']
        try:
            for class_ in cls._registered_classes:
                bpy.utils.unregister_class(class_)
                report.append("\t- class {0:35} in {1:40}".format(class_.__name__,
                                                                  "/".join(class_.__module__.split('.')[1:])))

            for prop, extends in cls._registered_properties:
                bpy.utils.unregister_class(prop)
                if extends in (bpy.types.Object, bpy.types.Scene, bpy.types.Bone):
                    delattr(extends, "RobotEditor")

            for prop in cls._registered_bools:
                delattr(bpy.types.Scene, prop)

            core_logger.info("\n".join(report))

            if cls._bl_icons_dict:
                bpy.utils.previews.remove(cls._bl_icons_dict)

        except Exception as e:
            report.append("Error occured during clean up. You should restart blender!")
            core_logger.info("\n".join(report) + '\n')
            core_logger.error(EXCEPTION_MESSAGE,
                              type(e).__name__, e, log_callstack(), log_callstack(back_trace=True))

        cls._registered_classes.clear()
        cls._property_groups_to_register.clear()
        cls._registered_bools.clear()
项目:archipack    作者:s-leger    | 项目源码 | 文件源码
def update_panel(self, context):
    try:
        bpy.utils.unregister_class(TOOLS_PT_Archipack_PolyLib)
        bpy.utils.unregister_class(TOOLS_PT_Archipack_Tools)
        bpy.utils.unregister_class(TOOLS_PT_Archipack_Create)
    except:
        pass
    prefs = context.user_preferences.addons[__name__].preferences
    TOOLS_PT_Archipack_PolyLib.bl_category = prefs.tools_category
    bpy.utils.register_class(TOOLS_PT_Archipack_PolyLib)
    TOOLS_PT_Archipack_Tools.bl_category = prefs.tools_category
    bpy.utils.register_class(TOOLS_PT_Archipack_Tools)
    TOOLS_PT_Archipack_Create.bl_category = prefs.create_category
    bpy.utils.register_class(TOOLS_PT_Archipack_Create)
项目:archipack    作者:s-leger    | 项目源码 | 文件源码
def register():
    global icons_collection
    icons = previews.new()
    icons_dir = os.path.join(os.path.dirname(__file__), "icons")
    for icon in os.listdir(icons_dir):
        name, ext = os.path.splitext(icon)
        icons.load(name, os.path.join(icons_dir, icon), 'IMAGE')
    icons_collection["main"] = icons

    archipack_progressbar.register()
    archipack_material.register()
    archipack_snap.register()
    archipack_manipulator.register()
    archipack_reference_point.register()
    archipack_autoboolean.register()
    archipack_door.register()
    archipack_window.register()
    archipack_stair.register()
    archipack_wall.register()
    archipack_wall2.register()
    archipack_roof.register()
    archipack_slab.register()
    archipack_fence.register()
    archipack_truss.register()
    # archipack_toolkit.register()
    archipack_floor.register()
    archipack_rendering.register()

    if HAS_POLYLIB:
        archipack_polylib.register()

    bpy.utils.register_class(archipack_data)
    WindowManager.archipack = PointerProperty(type=archipack_data)
    bpy.utils.register_class(Archipack_Pref)
    update_panel(None, bpy.context)
    bpy.utils.register_class(ARCHIPACK_create_menu)
    bpy.types.INFO_MT_mesh_add.append(menu_func)

    addon_updater_ops.register(bl_info)
项目:archipack    作者:s-leger    | 项目源码 | 文件源码
def unregister():
    global icons_collection
    bpy.types.INFO_MT_mesh_add.remove(menu_func)
    bpy.utils.unregister_class(ARCHIPACK_create_menu)

    bpy.utils.unregister_class(TOOLS_PT_Archipack_PolyLib)
    bpy.utils.unregister_class(TOOLS_PT_Archipack_Tools)
    bpy.utils.unregister_class(TOOLS_PT_Archipack_Create)
    bpy.utils.unregister_class(Archipack_Pref)
    # unregister subs
    archipack_progressbar.unregister()
    archipack_material.unregister()
    archipack_snap.unregister()
    archipack_manipulator.unregister()
    archipack_reference_point.unregister()
    archipack_autoboolean.unregister()
    archipack_door.unregister()
    archipack_window.unregister()
    archipack_stair.unregister()
    archipack_wall.unregister()
    archipack_wall2.unregister()
    archipack_roof.unregister()
    archipack_slab.unregister()
    archipack_fence.unregister()
    archipack_truss.unregister()
    # archipack_toolkit.unregister()
    archipack_floor.unregister()
    archipack_rendering.unregister()

    if HAS_POLYLIB:
        archipack_polylib.unregister()

    bpy.utils.unregister_class(archipack_data)
    del WindowManager.archipack

    for icons in icons_collection.values():
        previews.remove(icons)
    icons_collection.clear()

    addon_updater_ops.unregister()
项目:blender-addons    作者:scorpion81    | 项目源码 | 文件源码
def path_menu(self, searchpaths, operator, props_default={}):
        layout = self.layout
        # hard coded to set the operators 'filepath' to the filename.
        import os
        import bpy.utils

        layout = self.layout
        if not searchpaths[0]:
            layout.label("* Missing Paths *")

        # collect paths
        else :
            files = []
            for directory in searchpaths:
                files.extend([(f, os.path.join(directory, f)) for f in os.listdir(directory)])

            files.sort()

            for f, filepath in files:

                if f.startswith("."):
                    continue

                preset_name = bpy.path.display_name(f)
                props = layout.operator(operator, text=preset_name)

                for attr, value in props_default.items():
                    setattr(props, attr, value)

                props.filepath = filepath
                if operator == "palette.load_gimp_palette":
                    props.menu_idname = self.bl_idname
项目:blender-addons    作者:scorpion81    | 项目源码 | 文件源码
def register():
    bpy.utils.register_module(__name__)

    bpy.types.Scene.palette_props = PointerProperty(
            type=PaletteProps, name="Palette Props", description="")
    pass
项目:blender-addons    作者:scorpion81    | 项目源码 | 文件源码
def unregister():
    bpy.utils.unregister_module(__name__)

    del bpy.types.Scene.palette_props
    pass
项目:NeuroSurf    作者:pelednoam    | 项目源码 | 文件源码
def register():
    try:
        unregister()
        bpy.utils .register_class(ColoringPanel)
        bpy.utils .register_class(ColorCompartment)
    except:
        print("Can't register Coloring Panel!")
        print(traceback.format_exc())
项目:NeuroSurf    作者:pelednoam    | 项目源码 | 文件源码
def unregister():
    try:
        bpy.utils .unregister_class(ColoringPanel)
        bpy.utils .unregister_class(ColorCompartment)
    except:
        pass
项目:blue-noise-particles    作者:BorisTheBrave    | 项目源码 | 文件源码
def register():
    bpy.utils.register_module(__name__)
    bpy.types.INFO_MT_mesh_add.append(menu_func)
项目:blue-noise-particles    作者:BorisTheBrave    | 项目源码 | 文件源码
def unregister():
    bpy.types.INFO_MT_mesh_add.remove(menu_func)
    bpy.utils.unregister_module(__name__)
项目:CreatingAdd-onsForBlender    作者:varkenvarken    | 项目源码 | 文件源码
def load_icon():
    import os
    import bpy
    import bpy.utils

    try: # if anything goes wrong, for example because we are not running 2.75+ we just ignore it
        import bpy.utils.previews
        pcoll = bpy.utils.previews.new()
        # the path is calculated relative to this py file inside the addon folder
        my_icons_dir = os.path.join(os.path.dirname(__file__), "icons")
        # load a preview thumbnail of the circle icon
        pcoll.load("circle_icon", os.path.join(my_icons_dir, "circle32.png"), 'IMAGE')
        preview_collections['icons'] = pcoll
    except Exception as e:
        pass
项目:CreatingAdd-onsForBlender    作者:varkenvarken    | 项目源码 | 文件源码
def register():
    load_icon()
    bpy.utils.register_module(__name__)
    bpy.types.VIEW3D_MT_object.append(menu_func)
项目:CreatingAdd-onsForBlender    作者:varkenvarken    | 项目源码 | 文件源码
def unregister():
    bpy.utils.unregister_module(__name__)
    bpy.types.VIEW3D_MT_object.remove(menu_func)
    for pcoll in preview_collections.values():
        bpy.utils.previews.remove(pcoll)
    preview_collections.clear()
项目:CreatingAdd-onsForBlender    作者:varkenvarken    | 项目源码 | 文件源码
def load_icon():
    import os
    import bpy
    import bpy.utils

    try: # if anything goes wrong, for example because we are not running 2.75+ we just ignore it
        import bpy.utils.previews
        pcoll = bpy.utils.previews.new()
        # the path is calculated relative to this py file inside the addon folder
        my_icons_dir = os.path.join(os.path.dirname(__file__), "icons")
        # load a preview thumbnail of the circle icon
        pcoll.load("circle_icon", os.path.join(my_icons_dir, "circle32.png"), 'IMAGE')
        preview_collections['icons'] = pcoll
    except Exception as e:
        pass
项目:CreatingAdd-onsForBlender    作者:varkenvarken    | 项目源码 | 文件源码
def register():
    load_icon()
    bpy.utils.register_module(__name__)
    bpy.types.VIEW3D_MT_object.append(menu_func)
项目:CreatingAdd-onsForBlender    作者:varkenvarken    | 项目源码 | 文件源码
def load_icon():
    import os
    import bpy
    import bpy.utils

    try: # if anything goes wrong, for example because we are not running 2.75+ we just ignore it
        import bpy.utils.previews
        pcoll = bpy.utils.previews.new()
        # the path is calculated relative to this py file inside the addon folder
        my_icons_dir = os.path.join(os.path.dirname(__file__), "icons")
        # load a preview thumbnail of the circle icon
        pcoll.load("circle_icon", os.path.join(my_icons_dir, "circle32.png"), 'IMAGE')
        preview_collections['icons'] = pcoll
    except Exception as e:
        pass
项目:CreatingAdd-onsForBlender    作者:varkenvarken    | 项目源码 | 文件源码
def register():
    load_icon()
    bpy.utils.register_module(__name__)
    bpy.types.VIEW3D_MT_object.append(menu_func)
项目:CreatingAdd-onsForBlender    作者:varkenvarken    | 项目源码 | 文件源码
def unregister():
    bpy.utils.unregister_module(__name__)
    bpy.types.VIEW3D_MT_object.remove(menu_func)
    for pcoll in preview_collections.values():
        bpy.utils.previews.remove(pcoll)
    preview_collections.clear()
项目:bpy_lambda    作者:bcongdon    | 项目源码 | 文件源码
def register():
    from bpy.utils import register_class
    for mod in _modules_loaded:
        for cls in mod.classes:
            register_class(cls)

    # space_userprefs.py
    from bpy.props import StringProperty, EnumProperty
    from bpy.types import WindowManager

    def addon_filter_items(self, context):
        import addon_utils

        items = [('All', "All", "All Add-ons"),
                 ('User', "User", "All Add-ons Installed by User"),
                 ('Enabled', "Enabled", "All Enabled Add-ons"),
                 ('Disabled', "Disabled", "All Disabled Add-ons"),
                 ]

        items_unique = set()

        for mod in addon_utils.modules(refresh=False):
            info = addon_utils.module_bl_info(mod)
            items_unique.add(info["category"])

        items.extend([(cat, cat, "") for cat in sorted(items_unique)])
        return items

    WindowManager.addon_search = StringProperty(
            name="Search",
            description="Search within the selected filter",
            options={'TEXTEDIT_UPDATE'},
            )
    WindowManager.addon_filter = EnumProperty(
            items=addon_filter_items,
            name="Category",
            description="Filter add-ons by category",
            )

    WindowManager.addon_support = EnumProperty(
            items=[('OFFICIAL', "Official", "Officially supported"),
                   ('COMMUNITY', "Community", "Maintained by community developers"),
                   ('TESTING', "Testing", "Newly contributed scripts (excluded from release builds)")
                   ],
            name="Support",
            description="Display support level",
            default={'OFFICIAL', 'COMMUNITY'},
            options={'ENUM_FLAG'},
            )
    # done...
项目:BlenderRobotDesigner    作者:HBPNeurorobotics    | 项目源码 | 文件源码
def register(cls):
        """
        Called from the top-level :func:`robot_designer_plugin.register` function in the ``__init__.py`` of the plugin.
        Registers all data collected during import.
        """
        report = ['\n']
        try:
            for class_, dependencies in cls._classes_to_register:
                bpy.utils.register_class(class_)
                report.append('\t+ class {0:35} in {1:40}'.format(class_.__name__,
                                                                  "/".join(class_.__module__.split('.')[1:])))
                cls._registered_classes.append(class_)
            core_logger.info('Done')

            core_logger.debug("Properties: %s", cls._property_groups_to_register)
            for prop, extends in cls._property_groups_to_register:
                report.append("\t+ propery {0:33} {1:8} in {2:40}".format(prop.__name__,
                                                                          "(%s)" % extends.__name__ if extends else '',
                                                                          "/".join(prop.__module__.split('.')[1:])))

                bpy.utils.register_class(prop)
                if extends in (bpy.types.Object, bpy.types.Scene, bpy.types.Bone):
                    setattr(extends, 'RobotEditor', bpy.props.PointerProperty(type=getattr(bpy.types, prop.__name__)))
                cls._registered_properties.append((prop, extends))

            for i in cls._property_fields.items():
                print(i)

            for prop in cls._bools_to_register:
                setattr(bpy.types.Scene, prop, bpy.props.BoolProperty())
                cls._registered_bools.append(prop)

            if cls._icons_to_register:
                cls._bl_icons_dict = bpy.utils.previews.new()

                for icon in cls._icons_to_register:
                    report.append("\t+ icon {0:36} from {1:40}".format(icon[0], icon[1]))
                    cls._bl_icons_dict.load(*icon)
            core_logger.info("\n".join(report))

        except Exception as e:
            report.append("Error occured")
            core_logger.info("\n".join(report))
            core_logger.error(EXCEPTION_MESSAGE,
                              type(e).__name__, e, log_callstack(), log_callstack(back_trace=True))

        cls.clear()