完善主体资料,免费赠送VIP会员!
* 主体类型
* 企业名称
* 信用代码
* 所在行业
* 企业规模
* 所在职位
* 姓名
* 所在行业
* 学历
* 工作性质
请先选择行业
您还可以选择以下福利:
行业福利,领完即止!

下载app免费领取会员

NULL

ad.jpg

Revit选中点怎么搞?如何从revit中选取元素?

发布于:2020-07-03 15:05:52
首页/BIM专题
分享

在项目实施、应用Revit软件的过程中,经常会被问到很多具体的关于Revit软件的使用问题;由于软件在操作使用过程中存在多样性和专业性,大家总会有这些疑问:Revit选中点怎么搞?如何从revit中选取元素?

腿腿教学网-Revit选中点怎么搞?如何从revit中选取元素?

1.RevitAPI的交互方式有以下两种:

(1)先选择元素,再执行命令。

(2)先执行命令,再选择元素。

2.选择的方式有以下几种:

(1)单选:只能选取一个元素

(2)多选:可以选择多个元素

(3)框选:选取一定范围内的元素

(4)选点:选择试图中的一个坐标点

下面我们演示一下怎么选择元素,这里用API的第一种交互方式来演示:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

usingSystem.IO;

usingSystem.Data;

usingAutodesk.Revit;

usingAutodesk.Revit.UI;

usingAutodesk.Revit.UI.Selection;

usingAutodesk.Revit.DB;

usingAutodesk.Revit.DB.Architecture;

namespacezpx

{

[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]

[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]

[Autodesk.Revit.Attributes.Journaling(Autodesk.Revit.Attributes.JournalingMode.NoCommandData)]

publicclassHelloRevit:IExternalCommand

{

publicAutodesk.Revit.UI.ResultExecute(ExternalCommandDatacommandData,refstringmessage,Autodesk.Revit.DB.ElementSetelements)

{

//创建应用程序对象

Autodesk.Revit.ApplicationServices.Applicationapp=commandData.Application.Application;

//创建文档对象

Autodesk.Revit.DB.Documentdoc=commandData.Application.ActiveUIDocument.Document;

//创建应用程序对象

Autodesk.Revit.UI.UIApplicationuiapp=commandData.Application;

//创建文档对象

Autodesk.Revit.UI.UIDocumentuiDoc=uiapp.ActiveUIDocument;

//开始事务

Transactionts=newTransaction(doc,"HelloRevit");

ts.Start();

 

Selectionselection=uiDoc.Selection;

ICollection<ElementId>selectedIds=uiDoc.Selection.GetElementIds();

if(0==selectedIds.Count)

{

//如果选中的构件数量为0既没选中任何构件。

TaskDialog.Show("Revit","你没有选择任何元素");

}

else

{

Stringinfo="所选择的元素ID为:";

foreach(ElementIdidinselectedIds)

{

info+="\n\t"+id.IntegerValue;

}

TaskDialog.Show("Revit",info);

}

 

ts.Commit();

returnResult.Succeeded;

}

}

}

然后我们调试代码,要先选中构件再运行。

运行结果为:

大家看网上的其他教程或者参考卢石碧先生写的那本《Revit二次开发基础教程》的时候会发现和我这有出入,他们是这么写的

然后你会发现这里会提示

一般情况下这种提示首先想到是不是缺少引用,但这里是因为Revit版本变动而它开放的API也在变动,这种写法是Revit2014版本的API写法,只要你用的版本是2015版及以上,他就已经改变了API的写法。

很多人到这可能都会有疑问,那我怎么知道它的API变动了啊,小编这就给新手们提供一个方法,那就是去查阅RevitAPI这个文件。

打开RevitAPI通过检索去查看所有开放的API是目前最好最快速的办法

通过这可以看到所有你想知道的东西哦!

下面演示如何通过框选来选择构件

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

usingSystem.IO;

usingSystem.Data;

usingAutodesk.Revit;

usingAutodesk.Revit.UI;

usingAutodesk.Revit.UI.Selection;

usingAutodesk.Revit.DB;

usingAutodesk.Revit.DB.Architecture;

namespacezpx

{

[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]

[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]

[Autodesk.Revit.Attributes.Journaling(Autodesk.Revit.Attributes.JournalingMode.NoCommandData)]

publicclassHelloRevit:IExternalCommand

{

publicAutodesk.Revit.UI.ResultExecute(ExternalCommandDatacommandData,refstringmessage,Autodesk.Revit.DB.ElementSetelements)

{

//创建应用程序对象

Autodesk.Revit.ApplicationServices.Applicationapp=commandData.Application.Application;

//创建文档对象

Autodesk.Revit.DB.Documentdoc=commandData.Application.ActiveUIDocument.Document;

//创建应用程序对象

Autodesk.Revit.UI.UIApplicationuiapp=commandData.Application;

//创建文档对象

Autodesk.Revit.UI.UIDocumentuiDoc=uiapp.ActiveUIDocument;

//开始事务

Transactionts=newTransaction(doc,"HelloRevit");

ts.Start();

 

 

Selectionselection=uiDoc.Selection;

ICollection<Element>selectedIds=uiDoc.Selection.PickElementsByRectangle();

if(0==selectedIds.Count)

{

//如果没有选择构件.

TaskDialog.Show("Revit","你没有选择任何元素");

}

else

{

Stringinfo="所选择的元素名称为:";

foreach(ElementidinselectedIds)

{

info+="\n\t"+id.GetParameters("族")[0].AsValueString().ToString();

}

TaskDialog.Show("Revit",info);

}

 

ts.Commit();

returnResult.Succeeded;

}

}

}

一般会这两种常用的选择方法,在平时的大多数Revit二次开发中都是没问题的哦。下面我们来看演示结果:运行之后需要鼠标框选构件。完成框选后释放鼠标就会弹出对话框。

这里的代码都是公开给各位的,粘贴过来可能会出现格式变化,如果截图的话,不方便大家复制代码,请大家理解。

腿腿教学网-Revit选中点怎么搞?如何从revit中选取元素?

文章来源:精讲Revit二次开发

仅作分享交流,版权归原作者所有。

转载请注明来源本文地址:https://www.tuituisoft/bim/11347.html

未标题-1.jpg

上一篇:没有了

下一篇:没有了