关于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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值