2

I am trying to invoke bpy.ops.outliner.group_operation(type='LINK') in an addon but unable to get the right context.

From a bit of searching, it appears I would need to have the OUTLINER area active before calling the op, but cannot figure out how to do that.

How can I set the right context in order to call bpy.ops.outliner.group_operation()?

Edit: The ultimate objective is to 'Link Group objects to Scene' which is an option available in the context menu for a group. I managed to make it run by overriding the context but it doesn't appear to actually do anything when run this way.

RSS
  • 175
  • 7
  • I think it would be useful if you could give some context as to what you are attempting as it may turn out that there is a better alternative to group_operation. – Ray Mairlot Mar 04 '17 at 16:49
  • 1
    @RayMairlot thanks for the suggestion. I have edited the question. – RSS Mar 04 '17 at 17:20

1 Answers1

1

Overriding the context finally worked for me, with the help of this answer:

override = bpy.context.copy()
for area in bpy.context.screen.areas:
    if area.type == 'OUTLINER':
        override['area'] = area
bpy.ops.outliner.group_operation(override, type='LINK')
RSS
  • 175
  • 7
  • 1
    I gave this a try, but couldn't get it going due to having to have the group highlighted in the Outliner. Without the highlight, it wouldn't work. What is your workaround? How did you make it target a specific group? – Draise Aug 18 '17 at 22:41
  • check this https://blender.stackexchange.com/questions/6101/poll-failed-context-incorrect-example-bpy-ops-view3d-background-image-add – Harry McKenzie Jul 30 '22 at 02:07