# How to properly call redo panel for bps.ops?

**URL:** <https://blenderartists.org/t/how-to-properly-call-redo-panel-for-bps-ops/1325775>\
**Category:** Python Support\
**Created:** [September 3, 2021, 9:49am UTC](https://blenderartists.org/t/how-to-properly-call-redo-panel-for-bps-ops/1325775 "2021-09-03T09:49:02Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![SoundDifferent](https://blenderartists.org/letter_avatar_proxy/v4/letter/s/ed8c4c/32.png) [@SoundDifferent](https://blenderartists.org/u/SoundDifferent)\
**Post date:** [September 3, 2021, 9:49am UTC](https://blenderartists.org/t/how-to-properly-call-redo-panel-for-bps-ops/1325775/1 "2021-09-03T09:49:02Z")

</div>

Hi guys

Im almost copy&paste code from [Interactive Tools for Blender 2.8](https://blenderartists.org/t/interactive-tools-for-blender-2-8/1164932)

My test code to make a Bridge Edge Loops:

```auto
import bpy
import bmesh
        
class SmartConnect(bpy.types.Operator):
    bl_idname = "mesh.smart_connect"
    bl_label = "SmartConnect"
    bl_description = "Context Sensitive Connect"
    bl_options = {'REGISTER', 'UNDO'}
    
    def smart_connect(self):
        bpy.ops.mesh.bridge_edge_loops("INVOKE_DEFAULT")
    
    def execute(self, context):
        self.smart_connect()
        return{'FINISHED'}

```

Class SmartConnect are registered in **init**.py file, so addon are properly installed to blender and basiсally it works.  
But bpy.ops.mesh.bridge\_edge\_loops(“INVOKE\_DEFAULT”) - make a bridge as expected but didnt show redu pop-up panel as normal operation called from Mesh menu.

Comparing to Maxivz tools, for his function CS Bevel:

```auto

class CSBevel(bpy.types.Operator):
	bl_idname = "mesh.cs_bevel"
	bl_label = "CS Bevel"
	bl_description = "Context Sensitive Bevels and Inset"
	bl_options = {'REGISTER', 'UNDO'}

	def smart_hard_ops(self):
		selectionMode = (tuple(bpy.context.scene.tool_settings.mesh_select_mode))
		#if Vertex is selected
		if selectionMode[0]:
			bpy.ops.mesh.bevel('INVOKE_DEFAULT',vertex_only=True) 
		#if Edge is selected
		elif selectionMode[1]:
			bpy.ops.mesh.bevel('INVOKE_DEFAULT',vertex_only=False)  		  
		elif selectionMode[2]:
		#if Face is selected		   
			bpy.ops.mesh.inset('INVOKE_DEFAULT')

	def execute(self, context):
		self.smart_hard_ops()
		return{'FINISHED'}

```

In his case bevel for face (which would be Inset operation) will properly call pop-up redu panel.
