I want to create an add-on to help generate floor plan. The ideas is drawing the floor plan in 2D first and automatically creating the 3D model. It will be something similar to http://furnishup.github.io/blueprint3d/example/
I want to add a new panel for the 2D drawing part. But I don’t seem to find any python api that allows me to extend the ui with a new panel. Is this true?
Is there a good way to implement something like this within blender?
The purpose of this add on is to allow people who are not fluent blender users to create 3d floor plan. So I need a very simplified and focused ui. Creating this on top of the current modeling panel would be less ideal, as the modeling panel is quite complex.
The term Panel is used wrong all the time in un-official documentation/tutorials. I think that’s because Maya uses the term differently (maybe some other apps too). In Blender, the rectangles subdividing the Blender window into sub-windows are called Areas. They contain Editors (3D View, Node Editor, Properties, Sequencer, …). And AFAIK what’s an Area in Blender matches a Panel in Maya.
In Blender, Panels are containers for buttons: https://docs.blender.org/manual/en/latest/interface/window_system/tabs_panels.html#panels
So are you indeed asking about a custom panel, or a custom editor?
A custom editor I think,
because in addition to buttons, I also need to provide an area for 2D drawing.
Custom (Python defined) editors are not supported currently.
In my experience, add-on authors are usually a bit rash with wanting to place things in custom editors. Usually the features make more sense to integrate well into existing editors.
For example this could be a tool inside the image editor, or even inside the 3D view itself as some kind of overlay in top view.