Revit二次开发知识分享(二) View相关知识分享

今天分享的知识点比较杂碎,也是平时在学习和工作中经常会使用到的知识。
切换视图
代码切换视图,需要注意的是,切换视图不需要开启事务。

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);

这次的的知识分享就到这里了啦,希望这些琐碎的知识可以帮到你,谢谢你观看,有什么问题可以直接私信联系博主。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

baobao熊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值