首页
问题库
资讯专栏
软件下载
百科
课程中心
NEW
大家都在搜
revit
下载
教学
课程
免费
建筑
登录
注册
客服
QQ群
一群
二群
三群
四群
五群
返回顶部
加入BIM圈
首页
问题库
Revit
revit pickobject 触发什么事件
revit
revit pickobject 触发什么事件
2020-05-04 11:22
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
BIM
/
Revit
3452
1
4
发送
看不清?
×
付费偷看金额在0.1-10元之间
确定
1条回答
Hans Dreidimens
BIM小白
1楼 · 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
登陆查看全部
加载中...
一周热门
更多
>
相关问题
BIM模型发起事件和根据事项发起事件管理两者有什么区别?
1 个回答
Bentley Ottmann扫描线算法中,事件队列(event queue)的空间规模?
0 个回答
Revit频繁关闭,怎么才能修复?
0 个回答
什么是Revit图元、Revit族、Revit项目文件,它们有什么关系?
1 个回答
revit悬挑是什么
0 个回答
revit偏移量是什么意思
1 个回答
revit为什么提示输入小于9144米
1 个回答
revit建筑样板和结构样板 有什么区别?
1 个回答
revit2016中楼层平面里场地是什么意思,有什么用
1 个回答
相关文章
BIM内部的天气和气候数据,以确保安全高效的施工
0个评论
BIM是如何推动数字进程的?
0个评论
BIM与AI:两种思想的结合
0个评论
基于BIM技术的进度执行与控制
0个评论
Graitec的免费BIMUP会议为AEC行业提供了200多个课程
0个评论
BIM应用特征有哪些?关于BIM在运维阶段应用特征介绍
0个评论
基于BIM技术的工程项目数据管理信息化研究与应用
0个评论
BIM证书今年这么火,到底要不要学?
0个评论
全球BIM市场状况
0个评论
建筑企业使用BIM更具有市场力
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
revit
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人