打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
编程读取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() + "rn";					props += "Title = " + set.Title + "rn";					props += "Lirary name = " + set.LibraryName + "rn";					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() +"rn";						}						else if(property is AssetPropertyInteger)						{							AssetPropertyInteger val = property as AssetPropertyInteger;							props += val.Name + "= " + val.Value.ToString() +"rn";						}						else if(property is AssetPropertyEnum)						{							AssetPropertyEnum val = property as AssetPropertyEnum;							props += val.Name + "= " + val.Value.ToString() +"rn";						}							else if(property is AssetPropertyDouble)						{							AssetPropertyDouble val = property as AssetPropertyDouble;							props += val.Name + "= " + val.Value.ToString() +"rn";						}						else if(property is AssetPropertyBoolean)						{							AssetPropertyBoolean val = property as AssetPropertyBoolean;							props += val.Name + "= " + val.Value.ToString() +"rn";						}												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 rn";							}						}													else 						{							props += property.Name + property.ToString() +"Other Type " + "rn";						}															}					TaskDialog.Show("asdf",props);								}						}					}			



(责任编辑:admin)
转载请注明链接:http://www.68dl.com//bigdata_tech/2015/0224/19947.html

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
修改properties文件
React Native组件的生命周期
RN总结
Spring--Core 模块
prototype.js dojo 中 javascript继承实现
金融记数法 普通数字 相互转换
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服