首页 > 其他分享 >Revit二次开发的IExternalEventHandler

Revit二次开发的IExternalEventHandler

时间:2023-04-14 23:13:12浏览次数:32  
标签:IExternalEventHandler endregion region System Revit 二次开发 using public

看了revit二次开发书籍中关于IExternalEventHandler的用法,个人认为过于麻烦,且在实现外部事件并改变winform或wpf表格的内容时,代码的功能直接过于纠缠,作者根据wpf+prism框架重新写了一个外部事件的demo

xaml语言如下

<Window x:Class="RevitDevFrame.Views.TestView"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:RevitDevFrame.Views"
        xmlns:prism="http://prismlibrary.com/"
        prism:ViewModelLocator.AutoWireViewModel="True"
        mc:Ignorable="d"
        Title="TestView" Height="450" Width="800">
    <Grid>
        <Button Content="测试按钮" VerticalAlignment="Center" HorizontalAlignment="Center" Command="{Binding TestCommand}"></Button>
    </Grid>
</Window>

viewmodel如下

using Autodesk.Revit.UI;
using Prism.Commands;
using Prism.Mvvm;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace RevitDevFrame.ViewModels
{
    public class TestViewModel : BindableBase, IExternalEventHandler
    {
        #region 构造器
        public TestViewModel() {
            externalEvent = ExternalEvent.Create(this);
            TestCommand = new DelegateCommand(Test);
        }


        #endregion

        #region 字段
        private ExternalEvent externalEvent;
        
        #endregion

        #region 字段-属性

        #endregion

        #region 委托-方法
        public DelegateCommand TestCommand { get;private set; }
        private void Test()
        {
            externalEvent.Raise();
        }
        #endregion

        #region 方法
        public void Execute(UIApplication app)
        {
            TaskDialog.Show("Revit", "Hello World!");
        }

        public string GetName()
        {
            return "Test";
        }
        #endregion

    }
}

根据改代码即可实现点击按钮输出 helloworld对话框

标签:IExternalEventHandler,endregion,region,System,Revit,二次开发,using,public
From: https://www.cnblogs.com/HRDK-CADeveloper/p/17320212.html

相关文章

  • revit 插件开发_hello revit
    创建Revit插件示例以下示例基于Revit2018完成新建Demo类库项目使用VisualStudio创建名为RevitPluginDemo的类库项目,使用Framework4.6.1添加Revit相关DLL引用注:需要本地先安装Revit软件右击引用,添加引用,点击浏览按钮,查找本地revit安装路径下的RevitAPI.dll和R......
  • 对蓝牙以及wifi的二次开发的理解。
    问题:一直在进行蓝牙以及wifi的移植,但是对蓝牙以及wifi的二次开发不是很理解。网上的截图:     我移植的蓝牙以及wifi的驱动,应该指的是,底层硬件的操作,这些个协议应该是不涉及底层硬件的,这样才具有通用型。具体的硬件具体的去实现。 还可能的一个问题就是,如果支......
  • 加密与解密之二次开发
    描述二次开发的含义:通过直接编辑二进制,来修改已编译好的程序,实现目标功能本文的原程序模拟一个windows是最常见的采用事件循环机制的窗口程序,通过二次开发,给这个程序上锁,加上一个验证身份框,只有输对用户名密码,才能正常使用程序功能原程序创建一个窗口,加入事件循环,响应窗口......
  • Revit附加模块Add-in Manager里一次性加载所有.dll文件
    publicResultExecute(ExternalCommandDatacommandData,refstringmessage,ElementSetelements){GlobalRevitData.commandData=commandData;AppDomain.CurrentDomain.AssemblyResolve+=CurrentDomain_AssemblyResolve;//在Execute方法体内添加这行......
  • 【转】【Revit】revit二次开发——基于teigha读取CAD几何与文字(提供源码、引用包与异
    1.下载64位Teigha完整包:链接:https://pan.baidu.com/s/1KXW54YlkkWJZNQYhbc99kw提取码:05052.VS平台架构选择64位,.net版本4.0以上:  3.dll必须手动指定引用:(重点)staticstringdll=@"D:\Desktop\Rvt\bin\Debug\TD_Mgd.dll";//引用位置Assemblya=Assembly.UnsafeL......
  • revit专用卸载工具,完全彻底卸载删除干净revit各种残留注册表和文件的方法和步骤。
    revit专用卸载工具,完全彻底卸载删除干净revit各种残留注册表和文件的方法和步骤。如何卸载revit呢?有很多同学想把revit卸载后重新安装,但是发现revit安装到一半就失败了或者显示revit已安装或者安装未完成,大多数情况下其实是revit没有被卸载干净。还有的同学会遇到安装错误1625,然后......
  • OPCServer DA OPC服务端opcserver发包)二次开发源代码,C#开发
    OPCServer DA OPC服务端opcserver发包)好用,几百个应用现场二次开发源代码,C#开发,可二次开发。已应用到多个行业的几百个应用现场,长时间运行稳定,可靠。本项目中提供测......
  • 上位机SDK二次开发硬件(一)
    问题描述:移动平台厂家提供了二次开发工具,基于项目的需求,要重新编写新代码控制设备。厂家提供ocx控件,下面记录一下如何将ocx生成.h和.cpp文件。(1)将xxx.lic和xxx.ocx复制......
  • Revit 机电模型导入 Unity (二)
    解决思路通过Revit导出FBX格式不同过滤器的机电模型并拿到各个不同过滤器的颜色设置将FBX格式机电模型统一到Unity当中,设置材质、修改构件为ID解决步骤此篇文件先完......
  • NX二次开发:保存时导出PDF并打开
    该工程为在保存时执行开发的功能,函数入口点ufput。其他还有新建、打开、另存等都可以加入开发的操作,具体看UF_EXIT下的介绍。用户出口是一个可选特性,允许你在NX中某些预定......