zoukankan      html  css  js  c++  java
  • 【Revit API】Revit读取当前rvt的所有视图与其名称

    1)读取所有视图:

    public static ViewSet GetAllViews(Document doc)
    {
        ViewSet views = new ViewSet();
        FilteredElementCollector collector = new FilteredElementCollector(doc);
        FilteredElementIterator it = collector.OfClass(typeof(View)).GetElementIterator();
        it.Reset();
        while (it.MoveNext())
        {
             View view = it.Current as View3D;
             if (null != view && !view.IsTemplate && view.CanBePrinted)
             {
                 views.Insert(view);
             }
             else if (null == view)
             {
                  View view2D = it.Current as View;
                  if (view2D.ViewType == ViewType.FloorPlan   | 
    view2D.ViewType == ViewType.CeilingPlan |
    view2D.ViewType == ViewType.AreaPlan |
    view2D.ViewType == ViewType.Elevation |
    view2D.ViewType == ViewType.Section) { views.Insert(view2D); } } } return views; }

    2)读取视图的名称:

    public static string GetViewDisplayName(View view)
    {
    
         String name = view.ViewName;
    
         //special treament to sheet name
         if (view.ViewType == ViewType.DrawingSheet)
         {
             ViewSheet sheet = view as ViewSheet;
             name = String.Format("{0} - {1}", sheet.SheetNumber, name);
         }
         if(view.ViewType == ViewType.ThreeD)
         {
              if (name.Contains("{")&&name.Contains("}"))
              {
                  int bracketStart = name.IndexOf("{");
                  int bracketEnd = name.IndexOf("}");
                  name = name.Substring(bracketStart + 1, bracketEnd - bracketStart - 1);
              }
         }
         else if(view.ViewType == ViewType.FloorPlan)
         {
              name = string.Format("楼层平面:{0}", name);
         }
         else if (view.ViewType == ViewType.CeilingPlan)
         {
              name = string.Format("天花板平面:{0}", name);
         }
         else if (view.ViewType == ViewType.AreaPlan)
         {
              name = string.Format("面积平面:{0}", name);
         }
         else if (view.ViewType == ViewType.Elevation)
         {
              name = string.Format("建筑立面:{0}", name);
         }
         else if (view.ViewType == ViewType.Section)
         {
              name = string.Format("建筑剖面:{0}", name);
         }
         return name;
    }        
  • 相关阅读:
    别人走的路--2
    win7下80端口被(Pid=4)占用的解决方法
    实习第一天原来是配置环境
    api接口大全
    java计算两个日期之间相隔的天数
    【转】overload与override的区别
    Overload和Override的区别?
    浅析Java中的final关键字
    JAVA中的finalize()方法
    封装
  • 原文地址:https://www.cnblogs.com/lovecsharp094/p/5819515.html
Copyright © 2011-2022 走看看