根据Autodesk官方的定义,共享参数是参数定义,可用于多个族或项目中。它最牛掰的功能在于可以直接在项目文档里给族添加参数>>>>就是这么简单粗暴,来我们一起了解一下Revit中这个神奇的参数定义功能!

    1.共享参数的概念

    刚才已经提到过了共享参数是用于参数定义的,而且它不仅可以在族文档中定义参数,还可以在项目文档中再定义参数,简直逆天!不仅如此,它的作用对象是族类别(注意不是族类型,族类别包括:墙啊、结构柱啊、公制常规模型等等),这些参数随后可以用于创建明细表,这是一般参数没有的待遇呀!最重要的是,共享参数定义保存在与任何族文件或Revit项目不相关的txt文件中,这样就可以从其他族或项目中访问此文件,不用重复定义啦!

    话不多说,直接上效果图!

    2.操作方法

    (1)首先你得找到“共享参数”的功能按钮在哪吧

    它位于“管理”面板下,和Dynamo大兄弟在一个面板下哦!

    (2)创建共享参数定义文件

    点击创建按钮,选择文件保存的路径,如果有已经定义好的文件直接浏览即可。

    (3)创建参数组,方便对参数的管理。

    (4)新建一个参数作为测试,我这边取了一个“MyDefinition”的文字类型参数。

    (5)点击“确定”之后,在管理面板下打开“项目参数”

    (6)添加参数,参数类型为“共享参数”,点击进行参数选择

    选择“MyGroup”参数组下的参数定义,并确定。

    设定共享参数的类型和参数的分组位置!

    (7)添加共享参数的作用类别,可多选。

    (8)确定之后,验证是否成功,查看常规模型是否存在名为“MyDefinition”的文字类型参数。

    3.代码实现

 

private void SharInfo(Application revitApp, Document revitDoc)

        {

            try

            {

                string sharedParametersFilename = @”C:Users炳勇OneDrive桌面shared-parameters.txt”;

                string groupName = “MyGroup”;

                string definitionName = “MyDefinition”;

                ParameterType parameterType = ParameterType.Text;

                CategorySet categorySet = new CategorySet();

                Category wallCategory = revitDoc.Settings.Categories.get_Item(BuiltInCategory.OST_GenericModel);

                categorySet.(wallCategory);

                bool instanceParameter = true;

                BuiltInParameterGroup parameterGroup = BuiltInParameterGroup.PG_DATA;

                if (!System.IO.File.Exists(sharedParametersFilename))

                {

                    try

                    {

                        System.IO.StreamWriter sw = System.IO.File.Text(sharedParametersFilename);

                        sw.Close();

                    }

                    catch (Exception)

                    {

                        throw new Exception(string.Format(“Can’t shared parameter file:{0}”, sharedParametersFilename));

                    }

                }

                revitApp.SharedParametersFilename = sharedParametersFilename;

 

                DefinitionFile definitionFile = revitApp.OpenSharedParameterFile();

                if (definitionFile == null)

                {

                    throw new Exception(“Can not open shared parameter file”);

                }

 

                DefinitionGroups groups = definitionFile.Groups;

                DefinitionGroup group = groups.get_Item(groupName);

                if (group == null)

                {

                    group = groups.(groupName);

                }

                Definition definition = group.Definitions.get_Item(definitionName);

                if (definition == null)

                {

                    definition = group.Definitions.(new ExternalDefinitionCreationOptions(definitionName, parameterType));

                }

                ElementBinding binding = null;

                if (instanceParameter)

                {

                    binding = revitApp..NewInstanceBinding(categorySet);

                }

                else

                {

                    binding = revitApp..NewTypeBinding(categorySet);

                }

                bool Success = revitDoc.ParameterBindings.(definition, binding, parameterGroup);

                if (!Success)

                {

                    throw new Exception(“Failed to bind definition to category”);

                }

            }

            catch (Exception ex)

            {

                throw ex;

            }

        }

    4.注意事项

    共享参数不仅可以通过代码进行创建,还能提取并赋值,修改方法可参照其他类型参数更改的代码:RevitAPI修改项目文档中族参数的几个要点;

    共享参数的定义文件删除后,并不会影响到已经添加到模型中的参数;

    好像没有什么要注意的了!

   

    

    

l  

l  

l  

0

评论0

请先
高清无水印 通桥(2021)4362-Ⅲ 时速350公里高速铁路 常用跨度 续梁圆端形实体桥墩 跨度:(40+64+40)m (直、曲线)
高清无水印 通桥(2021)4362-Ⅲ 时速350公里高速铁路 常用跨度 续梁圆端形实体桥墩 跨度:(40+64+40)m (直、曲线)
1分钟前 有人购买 去瞅瞅看

社交账号快速登录

微信扫一扫关注
扫码关注后会自动登录网站