bl_info = { "name": "My Addon", "category": "3D View"} import bpy class MyOperator1(bpy.types.Operator): bl_idname = "w1.append" bl_label = "Insert window 1" def execute(self, context): bpy.ops.wm.append( filepath="w1.blend", directory="D:/Project_Blender/windows/w1.blend/Object/", filename="Cube") return {'FINISHED'}class MyOperator2(bpy.types.Operator): bl_idname = "w2.append" bl_label = "Insert window 2" def execute(self, context): bpy.ops.wm.append( filepath="w2.blend", directory="D:/Project_Blender/windows/w2.blend/Object/", filename="Cube") return {'FINISHED'} class MyOperator3(bpy.types.Operator): bl_idname = "w3.append" bl_label = "Insert window 3" def execute(self, context): bpy.ops.wm.append( filepath="w3.blend", directory="D:/Project_Blender/windows/w3.blend/Object/", filename="Cube") return {'FINISHED'} class MyOperator4(bpy.types.Operator): bl_idname = "w4.append" bl_label = "Insert window 4" def execute(self, context): bpy.ops.wm.append( filepath="w4.blend", directory="D:/Project_Blender/windows/w4.blend/Object/", filename="Cube") return {'FINISHED'} class MyOperator5(bpy.types.Operator): bl_idname = "w5.append" bl_label = "Insert window 5" def execute(self, context): bpy.ops.wm.append( filepath="w5.blend", directory="D:/Project_Blender/windows/w5.blend/Object/", filename="Cube") return {'FINISHED'} class MyOperator6(bpy.types.Operator): bl_idname = "w6.append" bl_label = "Insert window 6" def execute(self, context): bpy.ops.wm.append( filepath="w6.blend", directory="D:/Project_Blender/windows/w6.blend/Object/", filename="Cube") return {'FINISHED'} class MyOperator7(bpy.types.Operator): bl_idname = "d1.append" bl_label = "Insert door 1" def execute(self, context): bpy.ops.wm.append( filepath="d1.blend", directory="D:/Project_Blender/doors/d1.blend/Object/", filename="Cube") return {'FINISHED'} class MyOperator8(bpy.types.Operator): bl_idname = "d2.append" bl_label = "Insert door 2" def execute(self, context): bpy.ops.wm.append( filepath="d2.blend", directory="D:/Project_Blender/doors/d2.blend/Object/", filename="Cube") return {'FINISHED'} class MyOperator9(bpy.types.Operator): bl_idname = "d3.append" bl_label = "Insert door 3" def execute(self, context): bpy.ops.wm.append( filepath="d3.blend", directory="D:/Project_Blender/doors/d3.blend/Object/", filename="Cube") return {'FINISHED'} class MyOperator10(bpy.types.Operator): bl_idname = "r1.append" bl_label = "Insert roof 1" def execute(self, context): bpy.ops.wm.append( filepath="r1.blend", directory="D:/Project_Blender/roofs/r1.blend/Object/", filename="Cube") return {'FINISHED'} class MyOperator11(bpy.types.Operator): bl_idname = "r2.append" bl_label = "Insert roof 2" def execute(self, context): bpy.ops.wm.append( filepath="r2.blend", directory="D:/Project_Blender/roofs/r2.blend/Object/", filename="Cube") return {'FINISHED'} class MyOperator12(bpy.types.Operator): bl_idname = "r3.append" bl_label = "Insert roof 3" def execute(self, context): bpy.ops.wm.append( filepath="r3.blend", directory="D:/Project_Blender/roofs/r3.blend/Object/", filename="Cube") return {'FINISHED'} class MyOperator13(bpy.types.Operator): bl_idname = "f.append" bl_label = "Insert foundation" def execute(self, context): bpy.ops.wm.append( filepath="f.blend", directory="D:/Project_Blender/foundation/f.blend/Object/", filename="Cube") return {'FINISHED'} class MyOperator14(bpy.types.Operator): bl_idname = "c.append" bl_label = "Insert angle" def execute(self, context): bpy.ops.wm.append( filepath="c.blend", directory="D:/Project_Blender/corner/c.blend/Object/", filename="Cube") return {'FINISHED'} class MyOperator15(bpy.types.Operator): bl_idname = "ar1.append" bl_label = "Change settings" count = bpy.props.IntProperty( name = "Count", min = 0, default = 2 ) oninsert = bpy.props.StringProperty( name = "To insert", default = "x" ) def invoke(self, context, event): wm = context.window_manager return wm.invoke_props_dialog(self) def execute(self, context): ob = context.active_object if not ob: return {'CANCELLED'} bpy.ops.object.modifier_add(type='ARRAY') ob.modifiers["Array"].count = self.count if self.oninsert == "x": bpy.data.objects["Cube"].modifiers["Array"].relative_offset_displace=(1,0,0) if self.oninsert == "y": bpy.data.objects["Cube"].modifiers["Array"].relative_offset_displace=(0,1,0) if self.oninsert == "z": bpy.data.objects["Cube"].modifiers["Array"].relative_offset_displace=(0,0,1) bpy.ops.object.modifier_apply(apply_as='DATA') return {'FINISHED'}class MyPanel1(bpy.types.Panel): bl_label = "Foundation" bl_space_type = 'VIEW_3D' bl_region_type = 'TOOLS' def draw(self, context): layout = self.layout layout.operator("f.append") class MyPanel2(bpy.types.Panel): bl_label = "Angle" bl_space_type = 'VIEW_3D' bl_region_type = 'TOOLS' def draw(self, context): layout = self.layout layout.operator("c.append") class MyPanel3(bpy.types.Panel): bl_label = "Windows" bl_space_type = 'VIEW_3D' bl_region_type = 'TOOLS' def draw(self, context): layout = self.layout layout.operator("w1.append") layout.operator("w2.append") layout.operator("w3.append") layout.operator("w4.append") layout.operator("w5.append") layout.operator("w6.append") class MyPanel4(bpy.types.Panel): bl_label = "Doors" bl_space_type = 'VIEW_3D' bl_region_type = 'TOOLS' def draw(self, context): layout = self.layout layout.operator("d1.append") layout.operator("d2.append") layout.operator("d3.append") class MyPanel5(bpy.types.Panel): bl_label = "Roofs" bl_space_type = 'VIEW_3D' bl_region_type = 'TOOLS' def draw(self, context): layout = self.layout layout.operator("r1.append") layout.operator("r2.append") layout.operator("r3.append") class MyPanel6(bpy.types.Panel): bl_label = "Parametrix" bl_space_type = 'VIEW_3D' bl_region_type = 'TOOLS' def draw(self, context): layout = self.layout layout.operator("ar1.append") def register(): bpy.utils.register_class(MyOperator1) bpy.utils.register_class(MyOperator2) bpy.utils.register_class(MyOperator3) bpy.utils.register_class(MyOperator4) bpy.utils.register_class(MyOperator5) bpy.utils.register_class(MyOperator6) bpy.utils.register_class(MyOperator7) bpy.utils.register_class(MyOperator8) bpy.utils.register_class(MyOperator9) bpy.utils.register_class(MyOperator10) bpy.utils.register_class(MyOperator11) bpy.utils.register_class(MyOperator12) bpy.utils.register_class(MyOperator13) bpy.utils.register_class(MyOperator14) bpy.utils.register_class(MyOperator15) bpy.utils.register_class(MyPanel1) bpy.utils.register_class(MyPanel2) bpy.utils.register_class(MyPanel3) bpy.utils.register_class(MyPanel4) bpy.utils.register_class(MyPanel5) bpy.utils.register_class(MyPanel6) def unregister(): bpy.utils.unregister_class(MyOperator1) bpy.utils.unregister_class(MyOperator2) bpy.utils.unregister_class(MyOperator3) bpy.utils.unregister_class(MyOperator4) bpy.utils.unregister_class(MyOperator5) bpy.utils.unregister_class(MyOperator6) bpy.utils.unregister_class(MyOperator7) bpy.utils.unregister_class(MyOperator8) bpy.utils.unregister_class(MyOperator9) bpy.utils.unregister_class(MyOperator10) bpy.utils.unregister_class(MyOperator11) bpy.utils.unregister_class(MyOperator12) bpy.utils.unregister_class(MyOperator13) bpy.utils.unregister_class(MyOperator14) bpy.utils.unregister_class(MyOperator15) bpy.utils.unregister_class(MyPanel1) bpy.utils.unregister_class(MyPanel2) bpy.utils.unregister_class(MyPanel3) bpy.utils.unregister_class(MyPanel4) bpy.utils.unregister_class(MyPanel5) bpy.utils.unregister_class(MyPanel6) if __name__ == "__main__": register()