关于Revit API修改元素参数的问题?


>ADN: DEVR3894 
>ADN service level: Professional 
>产品:Revit MEP 2012 
>版本:2012 
>语言:中文 
>操作系统:window7 64bit 
>联系电话:137xxxx1960
>问题标题:关于修改元素参数的问题?
>问题内容: 
上次提问,关于遍历链接文档创建空间的问题。
最终解决办法是:在链接文档的时候选择“原点到原点”
失败的原因就是坐标系没有对正。
这次的问题如下:
我希望在风管连接弯头之前,设置好首选的弯头类型。
1.元素参数如果是int或者double可以直接修改。
如果是ElementId如何知道从哪里得到这些Id
2.如图所示,编辑风管类型。
如何改变T形三通,接头,这样的参数的值。
参考代码:
[Transaction(TransactionMode.Manual)]
[Regeneration(RegenerationOption.Manual)]
public  class cmd : IExternalCommand
{
     public Result Execute(ExternalCommandData cmdData,  ref  string msg, ElementSet elements)
    {
        UIDocument uiDoc = cmdData.Application.ActiveUIDocument;
        UIApplication uiApp = cmdData.Application;
        Document doc = uiDoc.Document;
        Selection selection = uiDoc.Selection;

        Transaction ts =  new Transaction(doc,  " www ");
        ts.Start();
         // 找个风管类型
        FilteredElementCollector collector =  new FilteredElementCollector(doc);
        collector.OfClass( typeof(Duct)).OfCategory(BuiltInCategory.OST_DuctCurves);
        Duct duct =  null;
         foreach (Element el  in collector)
        {
            duct = el  as Duct;
             break;
        }
         // 找个弯头类型
        FilteredElementCollector collectorFitting =  new FilteredElementCollector(doc);
        collectorFitting.OfClass( typeof(FamilyInstance)).OfCategory(BuiltInCategory.OST_DuctFitting);
        FamilyInstance fitting =  null;
         foreach (Element el  in collectorFitting)
        {
            fitting = el  as FamilyInstance;
             break;
        }
         //
         foreach (Parameter p  in duct.DuctType.Parameters)
        {
             if (p.Definition.Name ==  " 首选连接类型 ")
            {
                p.Set( 1); // p.StorageType为Intger所以用此法修改
            }
             if (p.Definition.Name ==  " 接头 ")
            {
                p.Set(fitting.Category.Id); // p.StorageType为ElementId
            }
        }

        ts.Commit();

         return Result.Succeeded;
    }
}
url:http://greatverve.cnblogs.com/archive/2012/02/29/revit-api-parameter.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM