[摘要] 最近在做项目的剖面出图,相信做过项目的读者也经历过出图的痛苦,在Revit中出图需要很多细致且任务量繁重的造操作,比如作者在本文中要讲
最近在做项目的剖面出图,相信做过项目的读者也经历过出图的痛苦,在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(); } }
以上就是标高隐藏的所有内容,这篇文章就到这里!