Building Coder(Revit 二次开发) - 内置参数名称和LabelUtils类
2011-08-22 10:51
891 查看
Building Code 链接:http://thebuildingcoder.typepad.com/blog/2011/08/built-in-parameter-name-and-labelutils.html
Revit二次开发论坛链接:http://revit.5d6d.com/viewthread.php?tid=1281&extra=
之前我曾经提到过Revit 2011引入了一个新的辅助类:LabelUtils。现在另外一个问题让我觉得有必要再讨论一下 LabelUtils 的使用。
问题:
我需要得到一个内置参数的 Autodesk.Revit.DB.Definition.Name 属性。我知道 Element 的 get_Parameter() 方法有一个以 BuiltinParameter 为参数的重载版本。
但我找不到一个元素可以让我取得参数的名称。我期望是一个类似 Document.Settings.Categories(提供全局性的内置类别集合)的属性。我尝试过 Document.ParameterBindings。
但是这个字典映射好像只包含外部定义(即共享参数的定义),而不是内置参数。
回答:
下面这段代码可以取得所有内置参数的枚举值。这是你需要的代码吗?
问题:
不,我想要的是显示在用户界面上的内置参数名称。而且它们需要是本地化了的。实际上 Parameter.Definition.Name 的值应该就是我需要的结果。但是我现在的问题是
找不到一种方法可以让我取得所有这些内置参数的 Parameter.Definition.Name 的集合。假设有元素“e”包含这个内置参数集合,我就可以利用下面这段代码创建一个内置
参数名称与它对应的显示字符串之间的字典映射。
回答:
请看看 LabelUtils 类,特别是它的 GetLabelFor(BuiltinParameter p) 方法。这个方法返回给定内置参数 p 的本地化显示字符串。
Revit二次开发论坛链接:http://revit.5d6d.com/viewthread.php?tid=1281&extra=
之前我曾经提到过Revit 2011引入了一个新的辅助类:LabelUtils。现在另外一个问题让我觉得有必要再讨论一下 LabelUtils 的使用。
问题:
我需要得到一个内置参数的 Autodesk.Revit.DB.Definition.Name 属性。我知道 Element 的 get_Parameter() 方法有一个以 BuiltinParameter 为参数的重载版本。
但我找不到一个元素可以让我取得参数的名称。我期望是一个类似 Document.Settings.Categories(提供全局性的内置类别集合)的属性。我尝试过 Document.ParameterBindings。
但是这个字典映射好像只包含外部定义(即共享参数的定义),而不是内置参数。
回答:
下面这段代码可以取得所有内置参数的枚举值。这是你需要的代码吗?
string s = string.Empty; foreach( BuiltInParameter bip in Enum.GetValues( typeof( BuiltInParameter ) ) ) { s += "\r\n" + bip.ToString(); } TaskDialog.Show( "arameter Names", s );
问题:
不,我想要的是显示在用户界面上的内置参数名称。而且它们需要是本地化了的。实际上 Parameter.Definition.Name 的值应该就是我需要的结果。但是我现在的问题是
找不到一种方法可以让我取得所有这些内置参数的 Parameter.Definition.Name 的集合。假设有元素“e”包含这个内置参数集合,我就可以利用下面这段代码创建一个内置
参数名称与它对应的显示字符串之间的字典映射。
Element e; Dictionary<BuiltInParameter, string> mapBipToName = new Dictionary<BuiltInParameter, string>(); foreach( BuiltInParameter bip in Enum.GetValues( typeof( BuiltInParameter ) ) ) { // translate built-in enum to parameter name Parameter p = e.get_Parameter( bip ); if( null != p ) { mapBipToName.Add( bip, p.Definition.Name ); } }
回答:
请看看 LabelUtils 类,特别是它的 GetLabelFor(BuiltinParameter p) 方法。这个方法返回给定内置参数 p 的本地化显示字符串。
相关文章推荐
- Building Coder(Revit 二次开发) - 共享类型参数
- Building Coder(Revit 二次开发) - 为一个共享参数绑定添加一个类别
- Building Coder(Revit 二次开发) - 参数访问和计划信息
- Building Coder(Revit 二次开发) - 真实世界中的角坐标
- Building Coder(Revit 二次开发) - 可扩展存储
- Building Coder(Revit 二次开发) - 失败处理API(上)
- Building Coder(Revit 二次开发) - 临时事务的使用技巧
- Building Coder(Revit 二次开发) - 分解DWG文件
- Building Coder(Revit 二次开发) - NewFamilyInstance() 重载版本的选择
- Building Coder(Revit 二次开发)- 在新建族中进行镜像操作,并切换当前视图
- Building Coder(Revit 二次开发) - 复制 Legend 组件
- Building Coder(Revit 二次开发) - RevitLoopup 更新
- Building Coder(Revit 二次开发) - 在一个倾斜的面上创建墙
- Building Coder(Revit 二次开发)- 关于楼板边界的重新思考
- Building Coder(Revit 二次开发) - 针对视图和阶段进行过滤
- Building Coder(Revit 二次开发) - 元素层级事件(上)
- Building Coder(Revit 二次开发)- 在两条线之间创建尺寸
- Building Coder(Revit 二次开发) - 列出链接文件和 TransmissionData
- Building Coder(Revit 二次开发) - 设置标签类型
- Building Coder(Revit 二次开发) - 失败回滚(Failure Rollback)