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

EaBIM

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 671|回复: 6
打印 上一主题 下一主题

读取参数类型是一个对象的参数值

[复制链接]

1514

主题

7465

帖子

1万

积分

admin

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

积分
12404

社区QQ达人

跳转到指定楼层
楼主
发表于 2014-1-15 13:54:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Revit的参数类型包含很多,比如下面列表所示。



        Text       
The parameter data should be interpreted as a string of text.
        Integer       
The parameter data should be interpreted as a whole number, positive or negative.
        Number       
The parameter data should be interpreted as a real number, possibly including decimal points.
        Length       
The parameter data represents a length.
        Area       
The parameter data represents an area.
        Volume       
The parameter data represents a volume.
        Angle       
The parameter data represents an angle.
        URL       
A text string that represents a web address.
        Material       
The value of this property is considered to be a material.
        YesNo       
A boolean value that will be represented as Yes or No.
        Force       
The data value will be represented as a force.
        LinearForce       
The data value will be represented as a linear force.
        AreaForce       
The data value will be represented as an area force.
        Moment       
The data value will be represented as a moment.
        NumberOfPoles       
A parameter value that represents the number of poles, as used in electrical disciplines.
        FixtureUnit       
A parameter value that represents the fixture units, as used in piping disciplines.
        FamilyType       
A parameter used to control the type of a family nested within another family.


其中我们看到有的是Material型,或FamilyType型。



对于字符串,整形,长度(double)型,我们可以分别通过Parameter.AsString(), Parameter.AsInteger(), AsDouble()等来访问。

那么如果是Material类型的,怎么获取具体这个材料是什么呢? 此时存在在参数中的实际上是一个元素id即ElementId。

可以用Parameter.AsElementId()方法获得元素Id,然后用Document.get_Element(ElementId id) 方法获取这个材料对象。



请看下面的代码获取柱子的材料,并在任务框上显示材料名称。


  1. [c-sharp] view plaincopy
  2. public class RevitCommand : IExternalCommand  
  3. {  
  4.     public Result Execute(ExternalCommandData commandData, ref string messages, ElementSet elements)  
  5.     {  
  6.   
  7.       UIApplication app = commandData.Application;  
  8.       Document doc = app.ActiveUIDocument.Document;  
  9.   
  10.   
  11.       //pick the column,  
  12.   
  13.       Selection sel = app.ActiveUIDocument.Selection;  
  14.       Reference ref1 = sel.PickObject(ObjectType.Element, "Please pick a column to get its Materai parameter value");  
  15.       Element elem = ref1.Element;  
  16.   
  17.   
  18.      // the material parameter name for column is "Column Material"  
  19.       Parameter param = room.get_Parameter("Column Material");  
  20.       ElementId idMaterial = param.AsElementId();  
  21.   
  22.       Material mat = doc.get_Element(idMaterial) as Material;  
  23.       MessageBox.Show("The material name is" + mat.Name);  
  24.       
  25.         return Result.Succeeded ;  
  26.     }  
  27. }  
复制代码
这个方法可以获取任何参数值是其它Revit对象的参数值。
作者:叶雄进文章来源:http://blog.csdn.net/joexiongjin/article/category/782739

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 转播转播 分享分享 分享淘帖 支持支持 反对反对
工作时间:工作日的9:00-12:00/13:30-18:00,节假日不在线,请勿留言

28

主题

927

帖子

1777

积分

BIM经理

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

积分
1777
2F
发表于 2014-2-14 10:16:34 | 只看该作者
路过!!! 不发表意见……

11

主题

888

帖子

1723

积分

BIM经理

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

积分
1723
6F
发表于 2014-2-18 12:06:18 | 只看该作者
顶...... 楼下跟上.....
*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 22:21

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

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