完善主體資料,免費贈送VIP會員!
* 主體類型
* 企業(yè)名稱
* 信用代碼
* 所在行業(yè)
* 企業(yè)規(guī)模
* 所在職位
* 姓名
* 所在行業(yè)
* 學歷
* 工作性質
請先選擇行業(yè)
您還可以選擇以下福利:
行業(yè)福利,領完即止!

下載app免費領取會員

NULL

ad.jpg

二次開發(fā)教程:Revit開發(fā)實現(xiàn)在modeless對話框中無法刪除構件

發(fā)布于:2019-08-26 16:47:24

網(wǎng)友投稿

更多

在Revit API 論壇里看到了一個人在問,怎樣實現(xiàn)在modeless對話框中


禁止刪除操作,大概想了一下,可以通過下面3個步驟實現(xiàn)


1.在對話框顯示的時候,復寫刪除命令


2.寫一個外部命令來刪除1中復寫的命令


3.在對話框關閉后調(diào)用這個外部事件




下面是關鍵代碼:


            UIApplication uiapp = commandData.Application;

            Window1 myWin = new Window1(uiapp);

            myWin.Show();

            return Result.Succeeded;




    public partial class Window1 : Window

    {

        UIApplication uiapp = null;

             ExEvent myEvent =null;

             ExternalEvent myEventHandler = null;

        public Window1()

        {

            InitializeComponent();

        }

        public Window1(UIApplication uiapp)

        {         

            InitializeComponent();

            AddInCommandBinding binding = uiapp.CreateAddInCommandBinding(RevitCommandId.LookupPostableCommandId(PostableCommand.Delete));

            binding.Executed += Execute;

            this.uiapp = uiapp;

             myEvent = new ExEvent();

             myEventHandler = ExternalEvent.Create(myEvent);

        }

        private void Execute(object sender, Autodesk.Revit.UI.Events.ExecutedEventArgs e)

        {

            MessageBox.Show("窗體關閉之前無法做刪除操作!");

        }


        private void Window_Closed(object sender, EventArgs e)

        {

            myEventHandler.Raise();

        }       

    }

    public class ExEvent : IExternalEventHandler

    {

        public void Execute(UIApplication app)

        {

            app.RemoveAddInCommandBinding(RevitCommandId.LookupPostableCommandId(PostableCommand.Delete));   

        }

        public string GetName()

        {

            return "test";

        }

    }

本文版權歸腿腿教學網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權,謝絕轉載。

未標題-1.jpg

上一篇:二次開發(fā)教程:Revit開發(fā)通過Category設置構件顏色

下一篇:二次開發(fā)教程:Revit開發(fā)之調(diào)用過濾器設置窗體設置過濾器

60acb4e0ef112.png