Revit二次开发小技巧(二) 用ViewFamily枚举来收集楼层平面视图
用ViewFamily枚举来收集楼层平面视图
我们在写功能的时候,会遇到需要收集特定的楼层平面视图的情况,总会写一个方法,先收集所有的ViewPlan,然后再通过ViewFamilyType的名称去判断是不是楼层平面视图。
public List<ViewPlan> GetFloorViewPlan(Document doc, List<ViewPlan> viewPlans, string floorName)
{List<ViewPlan> views = new List<ViewPlan>();foreach (ViewPlan v in viewPlans){ViewFamilyType viewType = doc.GetElement(v.GetTypeId()) as ViewFamilyType;if (viewType == null) continue;if (viewType.Name != floorName) continue;views.Add(v);}return views;
}
但是由于收集到的ViewPlan中包括太多种视图类型,这样子会大大的提高了我们的运行的循环的次数,也增加代码量。因此,我们完全可以在一开始收集ViewPlan的时候,直接加上一个ViewPlan的ViewFamily类型的判断。
ViewFamiiy枚举值

ViewFamily枚举中提供了所有视图的枚举类型,其中有我们常用的ThreeDimensional(三维视图)、FloorPlan(楼层平面视图)、CeilingPlan(天花板平面视图)。
因此我们可以这样子去收集楼层平面视图:
List<ViewPlan> floorPlan = new FilteredElementCollector(doc).OfClass(typeof(ViewPlan)).Where(x => (doc.GetElement(x.GetTypeId()) as ViewFamilyType).ViewFamily == ViewFamily.FloorPlan).Cast<ViewPlan>().ToList();
这次分享的小知识到这里啦,如果有存在错误,还请指出。谢谢!!
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
