今天分享的知识点比较杂碎,也是平时在学习和工作中经常会使用到的知识。
切换视图
代码切换视图,需要注意的是,切换视图不需要开启事务。
List<ViewPlan> allView = new FilteredElementCollector(doc).OfClass(typeof(ViewPlan)).Cast<ViewPlan>().ToList();
uidoc.ActiveView = allView[0];
刷新界面
一般切换完后需要处理这个视图里面的构件时,这个时候往往Revit会卡顿一下,这样子会导致我们没有进去到这个视图中就开始进行下面的操作,因此往往会得不到我们想要的结果。我们需要再这里加一个刷新revit的功能。
doc.Regenerate();
获取当前视图
View nowView = doc.ActiveView;
获取当前视图的法向量
我们一般在计算方向的时候,会用到叉乘。我们往往需要求垂直于当前平面的向量,即法向量;
XYZ normal = doc.ActiveView.ViewDirection;
新建三维视图
ViewFamilyType viewtype = new FilteredElementCollector(doc).OfClass(typeof(ViewFamilyType)).Cast<ViewFamilyType>().FirstOrDefault(x => ViewFamily.ThreeDimensional == x.ViewFamily);
View3D nwView3D = View3D.CreateIsometric(doc, viewtype.Id);
nwView3D.Name = "新的三维视图";
调整视图的详细程度和视觉样式
view为视图对象
//详细程度
view.get_Parameter(BuiltInParameter.VIEW_DETAIL_LEVEL).Set((int)ViewDetailLevel.Fine);
//视觉样式
view.get_Parameter(BuiltInParameter.MODEL_GRAPHICS_STYLE).Set((int)DisplayStyle.FlatColors);
构件亮显
在平面视图亮显构件 elementIds为需要显示构件的ElementId集合。
uidoc.Selection.SetElementIds(elementIds);
隔离构件
//隔离图元并且展示出来 elementId为需要隔离和展示出来的构件ID
doc.ActiveView.IsolateElementTemporary(elementId);
uidoc.ShowElements(elementId);
这次的的知识分享就到这里了啦,希望这些琐碎的知识可以帮到你,谢谢你观看,有什么问题可以直接私信联系博主。
 View相关知识分享&spm=1001.2101.3001.5002&articleId=107945239&d=1&t=3&u=dd1211d1a9594cb9bbf86a9d92121b4e)
3103

被折叠的 条评论
为什么被折叠?



