วันเสาร์ที่ 23 มีนาคม พ.ศ. 2562

สร้าง Ribbon button ใน Revit Addins

ต่อจากบทความที่แล้ว เมื่อสร้าง โปรแกรมด้วย Wizard จะสร้าง App.cs ด้วย ซื่งสามารถ สร้าง Panel Button ได้

ตัวอย่าง การสร้าง
ให้ไปที่ Project Explorer และทำการสร้าง Image เพื่อเป็น Icon ก่อน
โดย
Add->Resource


double click ที่ Resouce1.resx

->Add Image

เขียนรูปแล้ว Save


ใน Code ให้เพิ่ม ใน App.cs


namespace RevitAddin1
{
    class App : IExternalApplication { 
    
        static string AddInPath = Assembly.GetExecutingAssembly().Location;
        static string ButtonIconsFolder = Path.GetDirectoryName(AddInPath);
        static UIApplication uiApplication = null;
        public Autodesk.Revit.UI.Result OnStartup(UIControlledApplication application)
        {
            try
            {
                // create customer Ribbon Items
                CreateRibbonPanel(application);

                return Autodesk.Revit.UI.Result.Succeeded;
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.ToString(), "Ribbon Sample");
                return Autodesk.Revit.UI.Result.Failed;
            }
        }

        private void CreateRibbonPanel(UIControlledApplication application)
        { // build button here
            string tabName = "CAAD"; // panale name
            System.Windows.Forms.MessageBox.Show(AddInPath);
            RibbonPanel ribbonPanel = application.CreateRibbonPanel("CAAD Project");

            // Create two push buttons

        //    PushButtonData button2 = new PushButtonData("Button2", "listData",
        //       AddInPath, "RevitAddin1.Command2");

            {
                PushButton pushButton = ribbonPanel.AddItem(new PushButtonData("Button1", "seeInLink", AddInPath, "RevitAddin1.Command")) as PushButton;
// ชื่อ RevitAddin1.Command ต้องตรงกับใน Command.cs จะเป็น Namespace.Class
                pushButton.Image = LoadImage(Resource1.Image1);
                pushButton.LargeImage = LoadImage(Resource1.Image1);
            }
        }

        public Autodesk.Revit.UI.Result OnShutdown(UIControlledApplication application)
        {
            return Autodesk.Revit.UI.Result.Succeeded;
        }

        public static BitmapImage LoadImage(Bitmap imageToLoad)
        {
            BitmapImage image2;
            BitmapImage image = new BitmapImage();
            try
            {
                Bitmap bitmap = imageToLoad;
                MemoryStream stream = new MemoryStream();
                bitmap.Save(stream, ImageFormat.Png);
                image.BeginInit();
                image.StreamSource = stream;
                image.EndInit();
                image2 = image;
            }
            catch (System.Exception exception1)
            {
                image2 = null;
            }
            return image2;
        }
    }

}

จะแสดงใน Tab Addins


ตัวอย่าง อยู่ใน
RevitAddins1.rar





ไม่มีความคิดเห็น:

แสดงความคิดเห็น