• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

Toli

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

Revit 二次开发

开发环境:

Vs2017

Revit 2018

1.首先打开VS

2.点击添加引用

 

3.在你下载的Revit2018程序集中找到Revit API.dll与Revit APIUI.dll文件后点击引入(如果找不到文件可直接点击我的电脑--搜索来查询文件)然后勾选点击确认添加。

 

 

 

 4.然后在类中编写插件代码

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;

namespace Hello_Revit
{
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
public class Class2:IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
UIApplication uiApplication = commandData.Application;
UIDocument uiDocument = uiApplication.ActiveUIDocument;
Document document = uiDocument.Document;
ICollection<ElementId> selectedElIds = uiDocument.Selection.GetElementIds();
string info = "";
//判断用户是否选中了构件
if (selectedElIds.Count != 0)
{
//若选择集中至少含有一个构件,则循环访问每个ElementId
foreach (ElementId elementId in selectedElIds)
{
//根据ElementId得到Element
Element element = document.GetElement(elementId);
//将信息添加到info变量中
info += $"Id:{elementId.IntegerValue} Name:{element.Name}\n";
}
//利用Revit内置的对话窗口显示相关info信息
TaskDialog.Show("result", info);
}
else
{
//若选择集中至少含有一个构件,将提示信息返回给用户
TaskDialog.Show("result", "请先选择构件");
}
return Result.Succeeded;
}
}
}

 

 

 5.编写Addin文件注册,找到文件下C:\Users\ASUS\AppData\Roaming\Autodesk\Revit\Addins\2018 这个路径在这个路径下创建文本文档内容如下所示,编写完成后将后缀改为addin即可

<?xml version="1.0" encoding="utf-8"?>
<RevitAddIns>
<AddIn Type="Command">
<VendorId>miror</VendorId>
<Text>Hello Revit</Text>
<Description>Hello World to Revit.</Description>
<FullClassName>helloworld.Command</FullClassName>
<Assembly>E:\1hololens\projects\revit\helloworld\helloworld\bin\Debug\helloworld.dll</Assembly>
<AddInId>2A7F31C5-8FDE-417F-8FE7-CF38768A5D69</AddInId>
</AddIn>
</RevitAddIns>

其中,各个字段的意义如下:
【VendorId】,开发商Id,可以自己随意取名。
【Text】,Revit中插件的名称。
【Description】,插件的描述信息。(可不写这项)
【FullClassName】,类名。注意:得填写完整的【命名空间.类名】,如本例的命名空间为helloworld,类名为command。
【Assembly】,需要加载的程序集的完整路径,调试的时候,可以填写debug目录下的dll路径。
【AddIn】,在VS的【工具】→【创建GUID】,选择注册表格式,可以取得,点击复制,粘贴到字段为“{32E24397-21B3-48AC-A430-3C4E35E4E23F}”,删除前后括弧即可。

 6.打开Revit软件在任务栏中点击附加模块--点击外部工具我们就能看到我们创建的插件了!!记住addin文件中的路径一定要对

点开后就可以看到自己创建的插件咯!

我们就可以使用它了!效果如下:

如果没框选构件则会提示请选择构件。

 

 如果框选了构件,则回把被框选的构件信息显示在弹框中。

 

 

 

 

 希望可以帮助到大家!!

posted on 2019-12-19 15:54  Toli  阅读(1006)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3