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.