BIM网校

revit pickobject 触发什么事件

2020-05-04 11:22 发布

1条回答
Hans Dreidimens
2020-05-04 12:37 .
Revit插件制作实例步骤:
1.创建你的第一步骤插件

启动 Visual C# 速成版开发环境:
打开 Visual C# 2010年速成版使用 Windows 开始菜单,选择所有程序,然后 Microsoft Visual Studio 2010 速成,然后 Microsoft Visual C# 2010年速成版的子菜单项。

2.创建一个类库项目:
里面 Visual C# 速成版,在文件菜单上单击新建项目。在已安装的模板选项卡的左侧窗口中,单击 Visual C#。在中间的窗口中,单击类库。在名称框中输入 Lab1PlaceGroup。然后单击确定。

3.Visual C# 速成版将会为您创建一个默认的代码项目并在代码窗口中显示的代码。
保存项目:
在文件菜单上单击全部保存。在显示窗口中键入 C:\test 在位置框中的,然后单击保存。

4.添加引用的文件:
在 Visual C# 速成版窗口右侧的解决方案资源管理器窗口中,右键单击引用,然后单击添加引用的文件

5.单击浏览选项卡在添加引用对话框中的,浏览到 Revit 产品安装的子文件夹。(子文件夹路径上取决于在安装有 Revit 建筑 201x。默认的路径是 C:\Program Files\Autodesk\Revit Architecture 201x\Program)。

路径不同可能因您使用 Autodesk Revit安装的位置。

您将从该文件夹中添加两个引用文件。选择 RevitAPI.dll,在按住 Ctrl 键和选择 RevitAPIUI.dll,然后单击确定。现在这两个接口在您的项目中引用的 DLL 文件。所有 Revit Api 都公开的这些接口文件和您的项目可以使用那些可用的 Api。
6.设置引用的文件副本属性值:

在解决方案资源管理器窗口中您看到在步骤 5 中,单击 RevitAPI 引用节点下。在属性窗口中,单击复制本地属性,然后单击下拉列表中,选择 False。重复相同的步骤,RevitAPIUI 的复制本地属性值更改为 False。

7.设置目标.NET 框架:
注意: Autodesk Revit 2011 支持.NET Framework 3.5 的使用。欧特克 Revit 2012 以及更高支持.NET 框架 4.0,Visual C# 2010年表示使用默认情况下的使用。需要以下步骤,以便使用正确的版本。如果您正在使用的 Revit 体系结构版本支持.NET 框架 4.0,你可以跳过步骤 7、 8 和 9。

在解决方案资源管理器窗口中,右击 Lab1PlaceGroup 项目,然后单击属性

8.在显示项目属性表单中,请单击应用程序选项卡上的窗口左侧,单击目标框架下方的下拉列表,然后单击列表中的.NET Framework 3.5 选项。

9.下面的消息框会显示要求您确认。单击是以确认更改。

10.添加的代码:
Class1.cs 在解决方案资源管理器窗口中的显示代码编辑窗口,请双击。删除在此窗口中的所有内容,然后键入下面的 C# 代码。
包括例如智能感知功能的使用 ,与开发经验我们建议您键入从本指南,而不是复制和粘贴代码。说,如果你也可以复制并粘贴到 Visual C# 速成版代码窗口中,虽然这减少了从直接与代码工作获得的经验,最好是自己写一遍。
using System;
using System.Collections.Generic;
using System.Linq;
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Architecture;
using Autodesk.Revit.UI;
using Autodesk.Revit.UI.Selection;
using Autodesk.Revit.ApplicationServices;
using Autodesk.Revit.Attributes;

[TransactionAttribute(TransactionMode.Manual)]
[RegenerationAttribute(RegenerationOption.Manual)]public class Lab1PlaceGroup : IExternalCommand{ public Result Execute( ExternalCommandData commandData, ref string message, ElementSet elements)
{ //Get application and document objects
UIApplication uiApp = commandData.Application;
Document doc = uiApp.ActiveUIDocument.Document; //Define a Reference object to accept the pick result.
Reference pickedRef = null;

//Pick a group
Selection sel = uiApp.ActiveUIDocument.Selection;
pickedRef = sel.PickObject(ObjectType.Element, "Please select a group"); Element elem = pickedRef.Element;
Group group = elem as Group; //Pick a point
XYZ point = sel.PickPoint("Please pick a point to place group"); //Place the group
Transaction trans = new Transaction(doc);
trans.Start("Lab");
doc.Create.PlaceGroup(point, group.GroupType);
trans.Commit(); return Result.Succeeded;
}
}

不要太担心看不懂代码,我们在下面将会看到这些代码的效果,慢慢的体会其中的意思!

11.保存该文件:
在文件菜单上单击全部保存。
12.生成项目:

注意: 如果您正在使用 Revit 2012 API,您将看到一个警告,指出 'Autodesk.Revit.DB.Reference.Element' 已过时。此时,不要担心此警告
如果您正在使用 Revit 2013 年和更高的 API,你将需要替换下面的代码行:
Element elem = pickedRef.Element;

替换成
Element elem = doc.GetElement(pickedRef);

就这么简单 !这就是一个简单的Revit插件!
转载请注明来源:www.bimsq.com

一周热门 更多>