首页 > 其他分享 >revit 插件开发_hello revit

revit 插件开发_hello revit

时间:2023-04-11 14:35:17浏览次数:32  
标签:插件 Autodesk hello revit 添加 Result using Revit

创建Revit插件示例

以下示例基于 Revit 2018 完成

新建Demo类库项目

使用 Visual Studio 创建名为 RevitPluginDemo 的类库项目,使用 Framework 4.6.1

image-20230411125208283

添加Revit相关DLL引用

注:需要本地先安装Revit软件

右击引用,添加引用,点击浏览按钮,查找本地revit安装路径下的 RevitAPI.dllRevitAPIUI.dll ,添加引用到项目。

image-20230411140226101

image-20230411135904659

设置引用属性,不复制到本地

image-20230411140038687

添加类文件

添加 RevitPluginDemo.cs

using Autodesk.Revit.Attributes;
using Autodesk.Revit.UI;
using System;
using System.Reflection;

namespace RevitDemo
{

    [Transaction(TransactionMode.Manual)]
    [Regeneration(RegenerationOption.Manual)]
    public class RevitPluginDemo : IExternalApplication
    {
        public Result OnShutdown(UIControlledApplication application)
        {
            return Result.Succeeded;
        }

        public Result OnStartup(UIControlledApplication application)
        {

            try
            {

                var tabName = $"Revit Plugin Demo";
                application.CreateRibbonTab(tabName);
                var panel = application.CreateRibbonPanel(tabName, "面板一");

                //添加按钮
                var roomEditBtnData = new PushButtonData("test", "测试按钮", Assembly.GetExecutingAssembly().Location, typeof(SayHello).FullName);
                panel.AddItem(roomEditBtnData);

                panel.AddSeparator();


                return Result.Succeeded;
            }
            catch (Exception)
            {

                return Result.Failed;
            }
        }
    }
}

添加 SayHello.cs

using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;

namespace RevitDemo
{
    [Transaction(TransactionMode.Manual)]
    [Regeneration(RegenerationOption.Manual)]
    public class SayHello : IExternalCommand
    {
        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
        {
            TaskDialog.Show("提示", "Hello Revit!!!");
            return Result.Succeeded;
        }
    }
}

添加插件描述文件

在本地路径 C:\ProgramData\Autodesk\Revit\Addins\2018 下添加 RevitPluginDemo.addin 文件

若安装的 Revit 软件为其他版本,在对应版本的目录下添加

文件内容如下:

<?xml version="1.0" encoding="utf-8"?>
<RevitAddIns>
  <AddIn Type="Application">
    <Name>RevitPluginDemo</Name>
    <Assembly>D:\GitProjects\RevitDemo\RevitDemo\bin\Debug\RevitDemo.dll</Assembly>
    <ClientId>c71dfd42-a3db-2b42-08e0-316ec4ff4cb2</ClientId>
    <FullClassName>RevitDemo.RevitPluginDemo</FullClassName>
    <VendorId>programmer.zheng</VendorId>
    <VendorDescription>programmer.zheng</VendorDescription>
  </AddIn>
</RevitAddIns>
标签 解释
Name 插件名称
Assembly 插件对应的程序集所属位置,可使用绝对路径或相对路径,相对路径为 .addin相对位置
ClientId 插件ID,可随意生成Guid,不要与其他插件重复即可
FullClassName 插件入口完全名称(命名空间 + 类名)
VendorId 插件供应商名称
VendorDescription 插件供应商描述

插件加载效果

完成上述步骤后,打开 Revit ,即可看到插件加载效果

image-20230411135311190

image-20230411135405679

image-20230411135423064

标签:插件,Autodesk,hello,revit,添加,Result,using,Revit
From: https://www.cnblogs.com/qingshang/p/17306093.html

相关文章

  • 从零开始USRP 03 实现一个USRP收发demo(hello world)
    这里用的源码来自:UHDC/C++编程实例USRP发送、接收数据我所使用的USRP型号是N210r4,因此默认地址的最后一位是4,使用Ubuntu20.04运行(至于为什么之前配的是18.04,那是因为之前是在我的虚拟机上玩耍的,但是我的虚拟机配网络有点麻烦,因此我给学姐的学长借了一台Linux笔记本,用这台笔......
  • WebAssembly 助力云原生:APISIX 如何借助 Wasm 插件实现扩展功能?
    本文将介绍Wasm,以及ApacheAPISIX如何实现Wasm功能。作者朱欣欣,API7.ai技术工程师原文链接什么是WasmWasm是WebAssembly的缩写。WebAssembly/Wasm是一个基于堆栈的虚拟机设计的指令格式。在Wasm未出现之前,浏览器中只能支持运行Javascript语言。当Wasm出现......
  • ios的百度网盘web版本视频播放器的字幕插件功能
    详情见https://coding.net/u/qidizi/p/pan.baidu.com.srt.plugin/git这里放一张效果图。......
  • 一统天下 flutter - 插件: flutter 与 android 原生之间的数据通信
    一统天下flutterhttps://github.com/webabcd/flutter_demo作者webabcd一统天下flutter-插件:flutter与android原生之间的数据通信示例如下:lib\plugin\plugin.dart/**插件*本例用于演示flutter与android/ios原生之间的数据通信**一、android插件......
  • 【学习笔记】rabbitmq设置队列ttl和使用延迟插件的代码示例
    文章目录设置队列ttl配置文件生产者消费者设置消息ttl延迟插件的使用修改配置文件修改生产者修改消费者设置队列ttl代码架构:创建两个队列QA和QB,两者队列TTL分别设置为10S和40S,然后在创建一个交换机X和死信交换机Y,它们的类型都是direct,创建一个死信队列QD配置文件spring.rabbitmq.h......
  • Blender动画节点插件用户指南-接口
    推荐:将 NSDT场景编辑器 加入你的3D开发工具链。接口大部分界面位于节点编辑器中,而其余部分该界面存在于其他区域,例如3D视口。动画节点有自己的节点编辑器,您可以通过以下方式选择单击“涂料表”图标在工具栏中。一个新的可以通过单击“新建”按钮来添加节点树。节点......
  • 欢迎使用园子的 vscode 插件
    为了方便大家通过vscode编辑博文,我们做了一个小插件,插件名称是“博客园Cnblogs客户端”,插件列表中搜索“博客园”或者"cnblogs"可以找到。插件商店下载地址:https://marketplace.visualstudio.com/items?itemName=cnblogs.vscode-cnb插件安装好之后会在activitybar中出现......
  • vscode launch&attach及常用插件使用必备指南
    .vscode下创建文件launch.json{//使用IntelliSense了解相关属性。//悬停以查看现有属性的描述。//欲了解更多信息,请访问:https://go.microsoft.com/fwlink/?linkid=830387"version":"0.2.0","configurations":[{"na......
  • 『0004』- 基于Ethereum Wallet的Solidity HelloWorld智能合约(Smart Contract)
    作者:黎跃春,相信大家都有学习各种开发语言的经历,一般学习任何一门语言都会先从最简单的HelloWorld开始,所以本篇文章,我们将编写一个最基本的合约代码,并且一步步讲解如何通过EthereumWallet将合约部署到区块链,同时我们将通过本demo的演示如何通过发送数据和接收数据和合约进行交互。S......
  • 『0002』 - Atom编辑器编写智能合约(Smart Contract)插件安装配置
    作者:黎跃春,编辑器选择理论上讲任何编辑器都可以编写Solidity合约代码,比如:WebStorm,VSCode,Sublime,等等。我选择的是Atom,没有任何理由,因为Atom轻量并且界面漂亮。移步https://atom.io/地址,下载安装Atom。autocomplete-solidity代码自动补齐linter-solium、linter-solidity代码错误检查......