您的位置:首页 > 产品设计 > UI/UE

Revit二次开发之“遍历材质判断材质类别的新方法”BuiltInParameter.PHY_MATERIAL_PARAM_CLASS

2011-09-19 08:11 411 查看
老版本API的方法:
if (material is MaterialSteel)
新版本API的方法:
Parameter curPara = material.get_Parameter(BuiltInParameter.PHY_MATERIAL_PARAM_CLASS);
if (curPara.AsInteger()==(int)StructuralMaterialType.Steel)
全部代码如下:[Transaction(TransactionMode.Manual)]
[Regeneration(RegenerationOption.Manual)]
public class cmdMaterial : IExternalCommand
{
public Result Execute(ExternalCommandData cmdData, ref string msg, ElementSet elements)
{
UIDocument uiDoc = cmdData.Application.ActiveUIDocument;
FilteredElementCollector collector = new FilteredElementCollector(uiDoc.Document);
collector.OfClass(typeof(Material));
FilteredElementIterator materialItr = collector.GetElementIterator();
materialItr.Reset();
int i = 0;
#region 新方法
while (materialItr.MoveNext())
{
Material material = materialItr.Current as Material;
Parameter curPara = material.get_Parameter(BuiltInParameter.PHY_MATERIAL_PARAM_CLASS);
switch (curPara.AsInteger())
{
case (int)StructuralMaterialType.Steel:
TaskDialog.Show("新方法", material.Name);
break;
}
}
#endregion
#region 过时的方法
materialItr.Reset();
while (materialItr.MoveNext())
{
i = i + 1;
Material material = materialItr.Current as Material;

if (material is MaterialSteel)//steel金属
{
MaterialSteel steelMa = material as MaterialSteel;
TaskDialog.Show("steel", steelMa.Name);
}
}
#endregion
TaskDialog.Show("count", i + "");

return Result.Succeeded;
}
}from:http://revit.5d6d.com/thread-1253-1-1.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐