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

 
这里回答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):

public void GetViewType(Autodesk.Revit.DB.View view)
{
    // Get the view type of the given view, and format the prompt string
    String prompt = "The view is ";

    switch (view.ViewType)
    {
        case ViewType.AreaPlan:
            prompt += "an area view.";
            break;
        case ViewType.CeilingPlan:
            prompt += "a reflected ceiling plan view.";
            break;
        case ViewType.ColumnSchedule:
            prompt += "a column schedule view.";
            break;
        case ViewType.CostReport:
            prompt += "a cost report view.";
            break;
        case ViewType.Detail:
            prompt += "a detail view.";
            break;
        case ViewType.DraftingView:
            prompt += "a drafting view.";
            break;
        case ViewType.DrawingSheet:
            prompt += "a drawing sheet view.";
            break;
        case ViewType.Elevation:
            prompt += "an elevation view.";
            break;
        case ViewType.EngineeringPlan:
            prompt += "an engineering view.";
            break;
        case ViewType.FloorPlan:
            prompt += "afloor plan view.";
            break;
        case ViewType.Internal:
            prompt += "Revit's internal view.";
            break;
        case ViewType.Legend:
            prompt += "a legend view.";
            break;
        case ViewType.LoadsReport:
            prompt += "a loads report view.";
            break;
        case ViewType.PanelSchedule:
            prompt += "a panel schedule view.";
            break;
        case ViewType.PresureLossReport:
            prompt += "a pressure loss report view.";
            break;
        case ViewType.Rendering:
            prompt += "a rendering view.";
            break;
        case ViewType.Report:
            prompt += "a report view.";
            break;
        case ViewType.Schedule:
            prompt += "a schedule view.";
            break;
        case ViewType.Section:
            prompt += "a cross section view.";
            break;
        case ViewType.ThreeD:
            prompt += "a 3-D view.";
            break;
        case ViewType.Undefined:
            prompt += "an undefined/unspecified view.";
            break;
        case ViewType.Walkthrough:
            prompt += "a walkthrough view.";
            break;
        default:
            break;
    }

    // Give the user some information
    TaskDialog.Show("Revit",prompt);
}


 

 

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

 

至于读取明细表的单元格值,Revit 2011,2012都没有提供这个API。从目前的资料看,2013 目前也不能读取单元格的内容。不过2013支持导出schedule到外部数据文件,你可以导出后再从数据文件中读取单元格的数据。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值