Revit API:View 视图概述

前言

本文介绍 Revit 视图相关的基本接口。

内容

View 继承结构

所有的视图都是继承自 Autodesk.Revit.DB.View,分别对应各种视图类型。
在这里插入图片描述

View 的实例

以官方给的文件为例:

  1. 楼层平面:ViewPlan
  2. 三维视图:View3D
  3. 立面、剖面、详细视图:ViewSection
  4. 渲染:ImageView
  5. 图例:View
  6. 明细表:ViewSchedule
  7. 图纸:ViewSheet
    在这里插入图片描述

获取 View 的信息

视图的基本信息,包括:

  1. 视图名称,view.Name
  2. 视图裁剪区域,view.CropBox
  3. 视图起始点,view.Origin
  4. 视图平面投影区域,view.Outline
  5. 视图往右、往上、指向观察者的方向,view.RightDirectionview.UpDirectionview.ViewDirection
  6. 视图缩放比例,view.Scale

来自 Revit API 官方文档:

private void Getinfo_View(Autodesk.Revit.DB.View view)
{
    string message = "View: ";

    // 得到视图的名称
    message += "\nView name: " + view.Name;

    // 视图裁剪区域包围盒
    BoundingBoxXYZ cropBox = view.CropBox;
    XYZ max = cropBox.Max; // 最大值,包围盒右上角
    XYZ min = cropBox.Min; // 最小值,包围盒左下角
    message += "\nCrop Box: ";
    message += "\nMaximum coordinates: (" + max.X + ", " + max.Y + ", " + max.Z + ")";
    message += "\nMinimum coordinates: (" + min.X + ", " + min.Y + ", " + min.Z + ")";


   // 视图的起始点(想象一下透视视图)
    XYZ origin = view.Origin;
    message += "\nOrigin: (" + origin.X + ", " + origin.Y + ", " + origin.Z + ")";


    //视图投影到平面的范围框
    BoundingBoxUV outline = view.Outline;
    UV maxUv = outline.Max; // 最大值,包围盒右上角
    UV minUv = outline.Min; // 最小值,包围盒左下角
    message += "\nOutline: ";
    message += "\nMaximum coordinates: (" + maxUv.U + ", " + maxUv.V + ")";
    message += "\nMinimum coordinates: (" + minUv.U + ", " + minUv.V + ")";

    // 视图往右的方向
    XYZ rightDirection = view.RightDirection;
    message += "\nRight direction: (" + rightDirection.X + ", " +
                   rightDirection.Y + ", " + rightDirection.Z + ")";

    // 视图往上的方向
    XYZ upDirection = view.UpDirection;
    message += "\nUp direction: (" + upDirection.X + ", " +
                   upDirection.Y + ", " + upDirection.Z + ")";

    // 视图指向观察者(即我)的方向
    XYZ viewDirection = view.ViewDirection;
    message += "\nView direction: (" + viewDirection.X + ", " +
                   viewDirection.Y + ", " + viewDirection.Z + ")";

    // 视图的缩放比例
    message += "\nScale: " + view.Scale;
    // Scale is meaningless for Schedules
    if (view.ViewType != ViewType.Schedule)
    {
        int testScale = 5;
        //设置视图比例,需要 Transaction
        view.Scale = testScale;
        message += "\nScale after set: " + view.Scale;
    }

    TaskDialog.Show("Revit",message);
}

下面以三维视图为例。代码中加入了,X.ToString("F2"),来使数据简练一点。
前视图数据:可知 Revit 中的坐标系,往右是 X 方向,往上是 Z 方向。因此前视图是从 Y 方向从屏幕外指向屏幕里面。
在这里插入图片描述
左视图:
在这里插入图片描述
俯视图:
在这里插入图片描述

左前俯视视图:
在这里插入图片描述

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

极客BIM工作室

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

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

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

打赏作者

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

抵扣说明:

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

余额充值