Revit API获得材质参数值

通过Materials类来管理材质

using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Text;

using  WinForm  =  System.Windows.Forms;

using  Autodesk.Revit.UI;
using  Autodesk.Revit.DB;
using  Autodesk.Revit.Attributes;

using  Autodesk.Revit.DB.Mechanical;
using  Autodesk.Revit.UI.Selection;
using  Autodesk.Revit.ApplicationServices;

using  Autodesk.Revit.DB.Structure;
using  Autodesk.Revit.DB.ExtensibleStorage;

using  System.Xml;

namespace  RevitCodes
{
    [TransactionAttribute(Autodesk.Revit.Attributes.TransactionMode.Manual)]
    
public   class  cmdMaterial : IExternalCommand
    {
        
public  Result Execute(ExternalCommandData commandData,  ref   string  messages, ElementSet elements)
        {
            UIApplication uiApp 
=  commandData.Application;
            Document doc 
=  uiApp.ActiveUIDocument.Document;
            Selection sel 
=  uiApp.ActiveUIDocument.Selection;

            Transaction ts 
=   new  Transaction(doc,  " http://revit.5d6d.com " );
            ts.Start();

            
// 选中一个窗户
            Element element  =  doc.GetElement(sel.PickObject(ObjectType.Element,  " 请选择个对象 " ));
            FamilyInstance fi 
=  element  as  FamilyInstance;

            GetMaterial(doc, fi);

            ts.Commit();

            
return  Result.Succeeded;
        }
        
public   void  GetMaterial(Document document, FamilyInstance familyInstance)
        {
            Materials materials 
=  document.Settings.Materials;
            
string  str  =   "" ;
            
foreach  (Parameter pa  in  familyInstance.Symbol.Parameters) // 通过族符号
            {
                Definition definition 
=  pa.Definition; // 参数的基类
                
// 过滤参数
                 if  (definition.ParameterGroup  ==  BuiltInParameterGroup.PG_MATERIALS  &&
                        definition.ParameterType 
==  ParameterType.Material)
                {
                    Material ma 
=  materials.get_Item(pa.AsElementId()); // 得到材料参数值的方法
                    str  +=  definition.Name  +   " : "   +  ma.Name  +   " \n " ;
                }
            }
            TaskDialog.Show(
" 材质信息 " , str);
        }
    }

}
from: http://revit.5d6d.com/thread-1293-1-1.html
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值