博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Revit API封装一个通用函数“过名称找元素”
阅读量:5940 次
发布时间:2019-06-19

本文共 1540 字,大约阅读时间需要 5 分钟。

感觉这个函数不错。通过这种方式寻找元素经常需要用到。
//
封装一个通用函数“过名称找元素”
[TransactionAttribute(Autodesk.Revit.Attributes.TransactionMode.Manual)]
public 
class cmdFindElementByName : IExternalCommand
{
    
//
通过类型与名称找Element
    Element findElement(Document _rvtDoc, Type targetType, 
string targetName)
    {
        
//
 get the elements of the given type
        
//
        FilteredElementCollector collector = 
new FilteredElementCollector(_rvtDoc);
        collector.WherePasses(
new ElementClassFilter(targetType));
        
//
 parse the collection for the given name
        
//
 using LINQ query here. 
        
//
 
        
var targetElems = 
from element 
in collector 
where element.Name.Equals(targetName) 
select element;
        List<Element> elems = targetElems.ToList<Element>();
        
if (elems.Count > 
0)
        {  
//
 we should have only one with the given name. 
            
return elems[
0];
        }
        
//
 cannot find it.
        
return 
null;
    }
    
public Result Execute(ExternalCommandData commandData, 
ref 
string messages, ElementSet elements)
    {
        UIApplication app = commandData.Application;
        Document doc = app.ActiveUIDocument.Document;
        Selection sel = app.ActiveUIDocument.Selection;
        View pViewPlan = (View)findElement(doc,
typeof(ViewPlan), 
"
Lower Ref. Level
");
        ReferencePlane refFront = (ReferencePlane)findElement(doc, 
typeof(ReferencePlane), 
"
Front
");
        Level lowerLevel = findElement(doc,
typeof(Level), 
"
Lower Ref. Level
"
as Level;
        Material pMat = findElement(doc, 
typeof(Material), 
"
Glass
"
as Material;
        
if (refFront != 
null)
            TaskDialog.Show(
"
info
", refFront.Name.ToString());
        
return Result.Succeeded;
    }
}
url:

转载于:https://www.cnblogs.com/greatverve/p/FindElementByName.html

你可能感兴趣的文章
办公室几台电脑怎么连一台打印机的具体步骤
查看>>
linux安全---cacti+ntop监控
查看>>
鸟哥的linux私房菜-shell简单学习-1
查看>>
nagios配置监控的一些思路和工作流程
查看>>
通讯组基本管理任务三
查看>>
赫夫曼编码实现
查看>>
html页面显示div源代码
查看>>
基础复习-算法设计基础 | 复杂度计算
查看>>
debian、ubuntu系统下,常用的下载工具
查看>>
带以太网的MicroPython开发板:TPYBoardv201温湿度上传实例
查看>>
如何解压缩后缀名为zip.001,zip.002等的文件
查看>>
OSGI企业应用开发(十二)OSGI Web应用开发(一)
查看>>
Python 以指定概率获取元素
查看>>
微信公众平台图文教程(二) 群发功能和素材管理
查看>>
关于System.Collections空间
查看>>
MPP(大规模并行处理)
查看>>
Centos下基于Hadoop安装Spark(分布式)
查看>>
Java 位运算
查看>>
好用的CSS模块化打包工具CSS-COMBO
查看>>
python 中的字符和字符串
查看>>