EaBIM一直以来积极响应国家“十二五”推进建筑业信息化的号召,对建筑领域的信息技术开展深入技术交流和探讨!致力于打造“BIM-建筑师-生态技术”三位一体综合资源交流共享平台,希望为BIM与可持续设计理念及技术的普及做出微小的贡献!!!

EaBIM

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 783|回复: 1
打印 上一主题 下一主题

如何识别明细表,如何读取明细表信息?

[复制链接]

1514

主题

7465

帖子

1万

积分

admin

Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10

积分
12404

社区QQ达人

跳转到指定楼层
楼主
发表于 2014-1-15 13:50:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这里回答jude2008的提问:
叶老师,您好,我想问一下,REVIT 2011里有没有提供对VIEWTYPE是SCHEDULE的相关API操作,也就是PROJECT BROWSER 中Schedules/Quantities 底下的那些SCHEDULE,如果我想编程对其参数进行读取(如获取行或列中的值)应该怎么做?


明细表在Revit2012以及之前的版本都使用View类来表示,但是使用View类不能完全确定一个视图是不是明细表Schedule。恰恰schedule视图的Category属性为空。这造成如果辨别明细表有些困难。

刚才我查找了会,发现一个办法,可以使用明细表的内置参数 BuiltInParameter.VIEW_TYPE获取视图的类别,对于明细表,英文版其参数值是schedules,大家可以查下在中文版的值。 通过这个可以辨别视图是否是明细表。

更简单的办法是调用View.ViewType 来判断视图类型,其结果是一个ViewType枚举类型的成员。如下代码所示(代码摘自RevitAPI.chm):

  1. [csharp] view plaincopy
  2. public void GetViewType(Autodesk.Revit.DB.View view)  
  3. {  
  4.     // Get the view type of the given view, and format the prompt string  
  5.     String prompt = "The view is ";  
  6.   
  7.     switch (view.ViewType)  
  8.     {  
  9.         case ViewType.AreaPlan:  
  10.             prompt += "an area view.";  
  11.             break;  
  12.         case ViewType.CeilingPlan:  
  13.             prompt += "a reflected ceiling plan view.";  
  14.             break;  
  15.         case ViewType.ColumnSchedule:  
  16.             prompt += "a column schedule view.";  
  17.             break;  
  18.         case ViewType.CostReport:  
  19.             prompt += "a cost report view.";  
  20.             break;  
  21.         case ViewType.Detail:  
  22.             prompt += "a detail view.";  
  23.             break;  
  24.         case ViewType.DraftingView:  
  25.             prompt += "a drafting view.";  
  26.             break;  
  27.         case ViewType.DrawingSheet:  
  28.             prompt += "a drawing sheet view.";  
  29.             break;  
  30.         case ViewType.Elevation:  
  31.             prompt += "an elevation view.";  
  32.             break;  
  33.         case ViewType.EngineeringPlan:  
  34.             prompt += "an engineering view.";  
  35.             break;  
  36.         case ViewType.FloorPlan:  
  37.             prompt += "afloor plan view.";  
  38.             break;  
  39.         case ViewType.Internal:  
  40.             prompt += "Revit's internal view.";  
  41.             break;  
  42.         case ViewType.Legend:  
  43.             prompt += "a legend view.";  
  44.             break;  
  45.         case ViewType.LoadsReport:  
  46.             prompt += "a loads report view.";  
  47.             break;  
  48.         case ViewType.PanelSchedule:  
  49.             prompt += "a panel schedule view.";  
  50.             break;  
  51.         case ViewType.PresureLossReport:  
  52.             prompt += "a pressure loss report view.";  
  53.             break;  
  54.         case ViewType.Rendering:  
  55.             prompt += "a rendering view.";  
  56.             break;  
  57.         case ViewType.Report:  
  58.             prompt += "a report view.";  
  59.             break;  
  60.         case ViewType.Schedule:  
  61.             prompt += "a schedule view.";  
  62.             break;  
  63.         case ViewType.Section:  
  64.             prompt += "a cross section view.";  
  65.             break;  
  66.         case ViewType.ThreeD:  
  67.             prompt += "a 3-D view.";  
  68.             break;  
  69.         case ViewType.Undefined:  
  70.             prompt += "an undefined/unspecified view.";  
  71.             break;  
  72.         case ViewType.Walkthrough:  
  73.             prompt += "a walkthrough view.";  
  74.             break;  
  75.         default:  
  76.             break;  
  77.     }  
  78.   
  79.     // Give the user some information  
  80.     TaskDialog.Show("Revit",prompt);  
  81. }  

复制代码
在Revit 2013版即将提供schedule新的API功能,有一个专用的类表达明细表ViewSchedule,所以可能只用类名即可识别。



至于读取明细表的单元格值,Revit 2011,2012都没有提供这个API。从目前的资料看,2013 目前也不能读取单元格的内容。不过2013支持导出schedule到外部数据文件,你可以导出后再从数据文件中读取单元格的数据。
作者:叶雄进文章来源:http://blog.csdn.net/joexiongjin/article/category/782739

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 转播转播 分享分享 分享淘帖 支持支持 反对反对

相关帖子

工作时间:工作日的9:00-12:00/13:30-18:00,节假日不在线,请勿留言

8

主题

792

帖子

1349

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
1349
2F
发表于 2014-2-20 14:08:01 | 只看该作者
(*^__^*) 嘻嘻……
*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|EaBIM网 ( 苏ICP备2020058923号-1  苏公网安备32011502011255号

GMT+8, 2024-11-16 20:51

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表