BIM建筑网
更专业的BIM技术学习网站!


Revit二次开发|隐藏视图中的图元(以标高为例)

免费的Ai上线啦!
BIM建筑网自主研发,你想要Ai功能都在这里!
Ai·提升效率 技术答疑

最近在做项目的剖面出图,相信做过项目的读者也经历过出图的痛苦,在Revit中出图需要很多细致且任务量繁重的造操作,比如作者在本文中要讲到的隐藏不需要的图元。下面是作者做的一个剖面中隐藏标高的小功能,具体如下:

首先要收集视图中的所有标高:


 FilteredElementCollector coll = new FilteredElementCollector(doc);
 
 coll.OfClass(typeof(Level)).OfCategory(BuiltInCategory.OST_Levels);
 ICollection<ElementId> elementIds = coll.ToElementIds();

然后就是排除掉自己不需要,留下需要的标高:

View view = doc.ActiveView;
LevelSelecionFilter levelSelectionFilter = new LevelSelecionFilter();
Reference refer =uidoc.Selection.PickObject(ObjectType.Element,"点选不需要隐藏的轴网!");
Level level = doc.GetElement(refer) as Level;

if (elementIds.Contains(level.Id)) {
 
 elementIds.Remove(level.Id);
 
}

接下来就是开启事务,调用视图的隐藏图元方法,对标高进行隐藏处理:

Transaction trans = new Transaction(doc);

trans.Start("隐藏轴网");
 
view.HideElements(elementIds);
trans.Commit();

这就是隐藏标高的基本思路,当然了对于初学者可能还需要用到的LevelSelectionFilter过滤器的具体代码,如下:

 class LevelSelecionFilter : ISelectionFilter
 {
 public bool AllowElement(Element elem)
 {
 if (elem is Level)
 {
 return true;
 }
 return false; ;
 }

 public bool AllowReference(Reference reference, XYZ position)
 {
 throw new NotImplementedException();
 }
 }

以上就是标高隐藏的所有内容,这篇文章就到这里!

微信公众号:xuebim
关注建筑行业BIM发展、研究建筑新技术,汇集建筑前沿信息!
← 微信扫一扫,关注我们+
赞(0) 打赏
BIM建筑网 » Revit二次开发|隐藏视图中的图元(以标高为例)

评论 抢沙发

评论前必须登录!

 

BIM建筑网,更专业的BIM技术学习网站!

关注建筑新动态,分享建筑新技术

联系我们关于BIM建筑网

觉得文章有用就打赏一下小编吧

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

扫码登录

微信「关注」,快捷登录
扫码关注后会自动登录
注册登录代表您已同意《用户许可协议》
账号登录 | 其他登录

|登录

找回密码

|账号登录注册