zoukankan      html  css  js  c++  java
  • 关于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
  • 相关阅读:
    pygame “音乐盒”---- 播放一首歌& 点击对话框后背景以及对话框大小改变
    虚拟机VMware里 windows server 2003 扩充C盘方法
    pygame简单动态图 & 动态图片的移动
    用C++ 自娱自乐
    Linux学习笔记----(2)
    Linux学习笔记--(1)
    JSON.stringify语法解析(自己留存)
    css 框架——base.css,作用是重设浏览器默认样式和提供通用原子类。自己留存
    div里嵌套了img底部会有白块问题和图片一像素问题解决
    全面解析Linux数字文件权限
  • 原文地址:https://www.cnblogs.com/greatverve/p/revit-api-parameter.html
Copyright © 2011-2022 走看看