Revit开发之共享参数

来源:互联网 发布:看电视免费的软件 编辑:程序博客网 时间:2024/05/02 01:11


在Revit中有一个共享参数,他可以绑定到某一个Category中。


API中创建共享参数的方法在Revit2015以后做了一些调整,本文

是Revit2015及以后的方法。


创建共享参数,必须要有一个共享参数的txt 文件,这个文件的

路径是:

string txtFile = app.SharedParametersFilename;

这个路径是可以get和set的,


下面结合一个小程序具体介绍,这个例子实现的是,给所有的墙

加一个名为“特别注释” 的实例参数,当然创建类型参数也是可以的,

方法都大同小异


        private void CreateSharedParm()
        {

// 获取创建共享参数的txt路径
            string txtFile = app.SharedParametersFilename;

       // 判断 路径是否有效,如果为空,读者可以创建一txt文件

//将路径赋值给app.SharedParametersFilename


            if (!string.IsNullOrEmpty(txtFile))
            {

       // 判断 路径是否有效,如果为空,读者可以创建一txt文件

//将路径赋值给app.SharedParametersFilename

                if (File.Exists(txtFile))
                {

                    DefinitionFile dfile = app.OpenSharedParameterFile();

// 创建一个共享参数分组
                    DefinitionGroup dg = dfile.Groups.Create("MyGroup");

// 参数创建的选项,包括参数名字,参数类型,用户是不是可以修改。。
                    ExternalDefinitionCreationOptions edco = new ExternalDefinitionCreationOptions("特别注释", ParameterType.Text);

// 创建参数
                    Definition df = dg.Definitions.Create(edco);
// 上面就创建了 一个名为“MyGroup” 的分组,并在这个分组下创建了一个名为“特别注释”的参数


      // 创建一个Category集合

                   CategorySet cateSet = app.Create.NewCategorySet();

// 获取墙的category
                    Category wallCate = Category.GetCategory(doc, BuiltInCategory.OST_Walls);

// 在Category集合中加入 墙的category
                    bool flag = cateSet.Insert(wallCate);

// 给 这个Category集合中的Category 创建一个实例绑定
                    InstanceBinding wallInsBd = app.Create.NewInstanceBinding(cateSet);

// 获取当前Document的BindingMap
                    BindingMap bmap = doc.ParameterBindings;

//创建共享参数和Category之间的Binding
                    bmap.Insert(df, wallInsBd);
                }
            }
        }



博主会经常更新一些技术文章,请大家多多关注,多多交流

更多技术交流,请加qq群480950299



1 0