编程读取Revit中材料的渲染属性
在Revit的材料属性里,有一个是渲染属性。读取软然属性看起来不是那么直接。
下面的代码演示如何获取渲染属性中的具体属性。但是Revit还是尚未完全开放出所有属性可供访问,比如获取材料的表现文件名称。
基本的思路是从Material.RenderAppearance, 返回Asset对象。然后从Asset的item属性获取其中的属性。
请看下面详细VSTA代码演示:
public void MaterialAppearanceProperties(){//Document doc = this.ActiveUIDocument.Document;FilteredElementCollector collector = new FilteredElementCollector(doc);collector.OfClass(typeof(Material));foreach(Element elem in collector){if(elem.Name == "Wood - Flooring")//if(elem.Name == "Concrete - Cast-in-Place Concrete") {Material mat = elem as Material;Asset set = mat.RenderAppearance;string props = null;props = "Size = " + set.Size.ToString() + "\r\n";props += "Title = " + set.Title + "\r\n";props += "Lirary name = " + set.LibraryName + "\r\n";props += "Asettype" + set.AssetType.ToString();for(int i = 0; i < set.Size; i++){AssetProperty property = set[i];if(property is AssetPropertyString){AssetPropertyString val = property as AssetPropertyString;props += val.Name + "= " + val.Value.ToString() +"\r\n";}else if(property is AssetPropertyInteger){AssetPropertyInteger val = property as AssetPropertyInteger;props += val.Name + "= " + val.Value.ToString() +"\r\n";}else if(property is AssetPropertyEnum){AssetPropertyEnum val = property as AssetPropertyEnum;props += val.Name + "= " + val.Value.ToString() +"\r\n";} else if(property is AssetPropertyDouble){AssetPropertyDouble val = property as AssetPropertyDouble;props += val.Name + "= " + val.Value.ToString() +"\r\n";}else if(property is AssetPropertyBoolean){AssetPropertyBoolean val = property as AssetPropertyBoolean;props += val.Name + "= " + val.Value.ToString() +"\r\n";} else if(property is AssetPropertyReference){AssetPropertyReference val = property as AssetPropertyReference;AssetProperty value = val.Value;if(value is AssetPropertyString){AssetPropertyString valueString = value as AssetPropertyString;props += val.Name + "= " + valueString.Value.ToString() +" Reference \r\n";}} else {props += property.Name + property.ToString() +"Other Type " + "\r\n";}}TaskDialog.Show("asdf",props);} }}
转载请复制以下信息:
原文链接: http://blog.csdn.net/joexiongjin/article/details/8674183
作者: 叶雄进 , Autodesk ADN
编程读取Revit中材料的渲染属性相关推荐
- 读取revit中dwg信息
Autodesk Revit 是一款建筑信息模型(BIM)软件,支持读取 DWG 文件.使用 Revit 读取 DWG 信息的步骤如下: 打开 Revit 软件. 选择"文件"菜单 ...
- Revit中元素重要的属性和方法
Category(类别),Location(位置),LevelId(标高), GroupId(组),Id,UniqueId(唯一Id)等都是元素的几个重要属性. 重要的方法:GetMaterials( ...
- 博图读取温度的指令_如何用TIA15编程读取S7-300中PT100温度值-工业支持中心-西门子中国...
1.6ES7 322-1BL00-0AA0 是数字量输出模块,不能连接 PT100 的热电阻信号.要用 SM 331 模块,具体选择及使用要看<模块数据手册> 比如专用的热电阻模块 6ES ...
- java串口编程-读取称重仪表中净重
一.需求说明 将仪表和计算机串口相连,计算机通过软件向仪表发送指令,然后仪表返回结果,在计算机软件界面上显示. 二.实现过程 1.查看仪表说明书 仪表型号为XK3190-A9,主要是查看相关参数(波特 ...
- 在Revit中,如何编程创建新类型(如窗户或墙)
在我们的ADN中,有许多人都问这个问题.这里与大家分享下. Revit的对象基本上都是基于类型的,把具有相同属性放在类型中保存,不熟悉类型这个概念的请看看帮助,我就不再多啰嗦了 :).在Revit中创 ...
- android读取工程目录下的文件,Android编程实现读取工程中的txt文件功能
本文实例讲述了Android编程实现读取工程中的txt文件功能.分享给大家供大家参考,具体如下: 1. 众所周知,Android的res文件夹是用来存储资源的,可以在res文件夹下建立一个raw文件夹 ...
- Springboot中,如何读取配置文件中的属性
摘要:在比较大型的项目的开发中,比较经常修改的属性我们一般都是不会在代码里面写死的,而是将其定义在配置文件中,之后如果修改的话,我们可以直接去配置文件中修改,那么在springboot的项目中,我们应 ...
- 在springboot中,如何读取配置文件中的属性
摘要:在比较大型的项目的开发中,比较经常修改的属性我们一般都是不会在代码里面写死的,而是将其定义在配置文件中,之后如果修改的话,我们可以直接去配置文件中修改,那么在springboot的项目中,我们应 ...
- MySQL中的事务相关属性以及JDBC编程
MySQL中的事务相关属性以及JDBC编程 事务
最新文章
- 再谈session共享
- ECS控制台支持创建资源时绑定标签
- c语言合法的数据类型关键字有哪些,C语言提供的合法的数据类型关键字是_________....
- dom加载完再执行 vue_vue中等页面dom加载完毕后执行某方法?
- 退出MFC应用程序的方法集
- 【BCVP升级】泛型主键的使用
- 160826、浏览器渲染页面过程描述,DOM编程技巧以及重排和重绘
- JAVA minaio模型_分布式系统之Java IO模型
- 利用C++实现自定义插件
- 信息学奥赛一本通 1191:流感传染 | OpenJudge NOI 2.3 6262:流感传染
- 爬虫-scrapy数据的持久化存储
- MFC工作笔记0005---::在vc++中是什么意思
- 总结前端常用控件和疑难杂症的解决方法
- Gstreamer之pts/dts(十九)
- C#:Access数据库的连接、读取,字段的增加、删除、更新、查询操作
- 简单了解机器学习(Machine Learning)
- Oracle 11g企业版下载
- 常用计算机防治病毒软件有哪些,如何防治计算机病毒?常用的反病毒软件有哪些?...
- 如何关闭服务器系统防火墙设置方法,怎么关闭防火墙 Windows自带防火墙关闭方法...
- 小程序源码:游戏扫码登录多功能工具箱集合