Revit二次开发---链接文件碰撞检测

本文介绍了一种检测Revit项目中链接文件及其内部构件与项目元素之间冲突的方法。通过获取链接文件中构件的solid并转换,进而检测实体间的碰撞。具体步骤包括过滤链接文件及其内部构件、获取solid及面边信息、实现碰撞检测等。

功能大概就是检测项目中的元素(包括链接文件中的构件)是否冲突

大致思路:

1、先获取到链接文件中所有构件转换后的solid,转化后的solid就可以直接和项目中的元素做检测了

2、获取要对比的元素所有边、面、solid

3、如果元素有边:用边和solid做检测,如没检测到还需面和边做检测;   如果元素没有边:用面和面做检测

----------------------------------------------------------------------

过滤链接文件内部构件

//key:链接文件id   value:内部构件id
Dictionary<ElementId,List<ElementId>> m_dicLinkIns;
//过滤链接文件
FilteredElementCollector fecLinks = new FilteredElementCollector(doc);
List<Element> lstElem = fecLinks.ofClass(typeof(RevitLinkInstance)).ToElements().ToList();
//过滤内部构件
foreach(Element elem in lstElem)
{
    RevitLinkInstance rvtLinkIns = elem as RevitLinkInstance;
    if(rvtLinkIns == null) continue;
    //得到链接文件文档
    Document linkDoc = rvtLinkIns.GetLinkDocument();
    if(linkDoc == null) continue;
    FilteredElementCollector fecLinkElems = new FilteredElementCollector;
    ElementClassFilter insFilter = new ElementClassFilter (typeof(F
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嘿呦嘿呦嘿呦嘿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值