最近在做项目的剖面出图,相信做过项目的读者也经历过出图的痛苦,在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发展、研究建筑新技术,汇集建筑前沿信息!
← 微信扫一扫,关注我们+
评论前必须登录!
注册