blender-syntax-panels

Enforce Blender panel registration and layout contracts for add-on UI classes.

30|4|Updated Mar 5, 2026
One-click install
npx skills add https://github.com/Impertio-Studio/Blender-Bonsai-ifcOpenshell-Sverchok-Claude-Skill-Package --skill blender-syntax-panels-impertio-studio
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: blender-syntax-panels
Source: https://github.com/Impertio-Studio/Blender-Bonsai-ifcOpenshell-Sverchok-Claude-Skill-Package/tree/main/skills/blender/syntax/blender-syntax-panels
Command: npx skills add https://github.com/Impertio-Studio/Blender-Bonsai-ifcOpenshell-Sverchok-Claude-Skill-Package --skill blender-syntax-panels-impertio-studio

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Prevents common Blender UI authoring mistakes that cause custom Panels/Menus/UILists to fail to register or not appear in the intended editor/region.

Core Features & Use Cases

  • Correct registration & placement: Ensures bl_space_type, bl_region_type, and bl_category are set consistently so the panel shows in the right sidebar (N-panel vs popover vs Properties editor).
  • Safe draw() patterns: Avoids infinite redraw loops and Blender draw-contract violations by keeping Panel.draw() read-only and operator-trigger based.
  • Reliable UI composition: Covers essential UILayout containers (row/column/box/split/grid_flow) and UI patterns (headers, collapsible sections, UIList rendering, menus, pie menus).
  • Use Case: You’re writing a Blender add-on with a custom sidebar tool panel, a collapsible “advanced” section, and a UIList of user-managed items—this skill helps you implement the UI so it registers cleanly across Blender 3.x/4.x/5.x.

Quick Start

Use the blender-syntax-panels skill to generate a Blender add-on panel template with correct bl_space_type/bl_region_type/bl_category, read-only draw() implementation, and validated UILayout patterns for your target editor.

Frequently Asked Questions about blender-syntax-panels

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
Why does my Blender Python UI panel fail to register or not show up in the sidebar?

Blender panels fail to register when mandatory attributes like `bl_space_type` and `bl_region_type` are missing or incorrect. Setting proper type-tagged `bl_idname` and consistent `bl_category` ensures the panel appears in the correct N-panel or Properties editor.

How do I build a Blender add-on panel with a collapsible section and UIList?

Build Blender add-on panels with collapsible sections and UILists by using validated UILayout containers like `box` and `column` to compose the hierarchy, ensuring reliable rendering and clean registration across Blender 3.x, 4.x, and 5.x.

What is the correct way to implement the draw() method in a bpy.types.Panel class?

Implement the `draw()` method in a `bpy.types.Panel` by keeping it read-only and side-effect-free. Avoiding state mutations and direct operator calls that trigger redraws prevents infinite loops and Blender draw-contract violations.

Can I use the same Python panel syntax for Blender Properties editor and node editor sidebars?

You can use the same Python panel syntax for the Properties editor and node editor sidebars by adjusting the `bl_space_type` and `bl_region_type` attributes. Correctly mapping these values targets the specific editor and region for your custom UI.

How do I prevent infinite redraw loops when drawing custom menus in Blender?

Prevent infinite redraw loops when drawing custom menus in Blender by ensuring the `draw()` function remains side-effect-free and only triggers operators through UI buttons. Violating the draw-contract by modifying scene data directly causes continuous UI refreshes.