最近在做项目的剖面出图,相信做过项目的读者也经历过出图的痛苦,在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();
 }
 }

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

0

评论0

请先
超全总包单位机电安装工程施工工艺培训PPT课件,共230页,可编辑
超全总包单位机电安装工程施工工艺培训PPT课件,共230页,可编辑
6分钟前 有人购买 去瞅瞅看

社交账号快速登录

微信扫一扫关注
扫码关注后会自动登录网站