<Revit二次开发>HelloWorld

本文介绍如何使用Visual Studio 2010与C#开发一个简单的Revit插件。包括项目搭建、引用添加及必要的配置步骤,并展示了核心代码示例。

HelloWorld

开发环境:Vsual Studio 2010 C# 一、建立一个新项目: 第一步项目类型选择Vsual Studio 2010 C#,并且创建一个新的类库(Class Library)。 1、从“文件”,选择 新建-项目。 2、选择 C#。 3、选择以后,在右边栏,选择“类库”(Class Library)。一般,项目都保存在用户--文档-- Vsual Studio 2010--Project文件夹里。 4、在“名称”里面,输入项目名称:HelloWorld. 5、点击 OK。 二、增加引用: 1、增加 RevitAPI.dll 的引用:从“解决方案资料管理器”里面,右键“引用”,选择“添加引用”。在弹出的窗口里面,选择“浏览”然后找到RevitAPI.dll文件。(位置:Rveit安装目录下面,例如:C:\Program Files\Autodesk\Revit Architecture 2012\Program\RevitAPI.dll)。RevitAPIUI.dll 文件也在同一个目录下。以上RevitAPI.dll,RevitAPIUI.dll都要引用。 2、完成以后,在“引用”列表下,就会出现以上两个文件,当然,配置还没有结束,你需要,右键 RevitAPI.dll,选择“属性”,在“本地复制”里将true,修改为False。(解释:如果是true,会增加项目容量过大,一般情况,我们都会选择"False") RevitAPIUI.dll设置同理。 3、项目环境配置结束。接下来,我们进入代码。 using System; using Autodesk.Revit.UI; using Autodesk.Revit.DB; namespace HelloWorld { [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Automatic)] public class Class1 : IExternalCommand { public Autodesk.Revit.UI.Result Execute(ExternalCommandData revit, ref string message, ElementSet elements) { TaskDialog.Show("Revit", "Hello World"); return Autodesk.Revit.UI.Result.Succeeded; } } } 注意: TransactionMode.Automatic (自动)修改为:Manual(手动)。 以上代码,检查没有错误以后。接下来,就是准备运行了。 在运行之前,需要建立一个HelloWorld.addin 的配置文件。 在Vsual Studio里面,新建“文件”,选择“文本文件”然后复制以下代码: <?xml version="1.0" encoding="utf-8" standalone="no"?> <RevitAddIns> <AddIn Type="Command"> <Assembly>D:\Sample\HelloWorld\bin\Debug\HelloWorld.dll</Assembly> <AddInId>239BD853-36E4-461f-9171-C5ACEDA4E721</AddInId> <FullClassName>HelloWorld.Class1</FullClassName> <Text>HelloWorld</Text> <VendorId>ADSK</VendorId> <VendorDescription>Autodesk, www.autodesk.com</VendorDescription> </AddIn> </RevitAddIns> 其中: <FullClassName>HelloWorld.Class1</FullClassName> 前面HelloWorld是项目名称,后面是类名。注意看你的程序代码。( public class Class1 : IExternalCommand)这里的Class1名称,一定要由上面的HelloWorld.后面的类名,同名。切记 <Assembly>C:\Autodesk\HelloWorld.dll</Assembly>(这是我的HelloWorld.dll路径) 这里就是在Revit软件里面,加载你的程序的路径,很重要,千万不能弄错了。那么HelloWorld.dll文件,哪里来的,通过你的项目生成(运行)出来的撒。明白了吗? 4、如何“运行”程序,我就不讲了,自己找找。 5、运行成功以后,HelloWorld.dll保存在用户--文档-- Vsual Studio 2010--Project--bin文件夹下(可以复制在其它的盘符下面,方便你查找,这个路径太长了。:) 6、把建立好的 HelloWorld.addin 复制到 C:\ProgramData\Autodesk\Revit\Addins\2012下。 以上终于结束了。 现在运行Revit软件,然后选择“附加模块”--“外部工具”--就会出现"HelloWorld"。点击试试。:)终于成功了吧。。。。 。。。。祝贺你!

### 实现Revit API C# 输出 'hello world' 为了在Revit环境中使用C#输出'hello world',可以创建一个外部命令类并重写`Execute`方法,在该方法内编写控制台打印语句来展示消息[^1]。 下面是一个简单的例子: ```csharp using Autodesk.Revit.Attributes; using Autodesk.Revit.DB; using Autodesk.Revit.UI; [Transaction(TransactionMode.Manual)] public class HelloWorldCommand : IExternalCommand { public Result Execute( ExternalCommandData commandData, ref string message, ElementSet elements) { // 获取当前文档实例 Document doc = commandData.Application.ActiveUIDocument.Document; // 使用TaskDialog显示信息给用户 TaskDialog.Show("Message", "Hello World"); return Result.Succeeded; } } ``` 此代码片段展示了如何利用Revit的API接口向用户弹窗显示“Hello World”。这里采用了`TaskDialog.Show()`函数用于呈现对话框窗口[^3]。当加载含有上述代码逻辑的插件DLL文件至Revit环境时,执行对应的命令将会触发这个弹窗事件。 对于希望进一步扩展功能的情况,比如为项目文件添加自定义属性,则可参照如下方式操作: ```csharp Document doc = commandData.Application.ActiveUIDocument.Document; doc.ProjectInformation.Description = "This is a test"; // 添加自定义属性 if (null == doc.ProjectInformation.LookupParameter("CustomProp")) { Parameter p = doc.ProjectInformation.get_Parameter(new Guid("{A76F45B2-8D9E-4CE0-A3CF-EDEAECAEA3FF}")); if (p != null && !p.IsReadOnly) { p.Set("Hello"); } // 或者直接设置自定义参数值 using (Transaction trans = new Transaction(doc)) { trans.Start("Add Custom Property"); IndependentTag tag = ... ; // 假设已经获取到了某个标签对象 tag.GetAssociatedElementId(out ElementId elemId); FamilyInstance fi = doc.GetElement(elemId) as FamilyInstance; if (fi != null) { fi.get_Parameter("Comments").Set("world"); // 如果存在名为"Comments"的参数则赋值 } trans.Commit(); } } else { doc.ProjectInformation.set_ParameterValueByName("CustomProp", "world"); } // 对于其他类型的元素也可以采用类似的方法为其附加额外的信息 file.CustomProperties.Add("Hello", "world")[^2]; ``` 需要注意的是,实际应用中应当根据具体需求调整代码细节,以上仅作为概念性的指导说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值