关于Revit 共享参数的那点事

简介: 关于Revit 共享参数的那点事

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

1. 共享参数的概念

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


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

20200227231009725.png

2. 操作方法

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

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

20200227225111557.png


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

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


20200227225453513.png


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


20200227225759236.png


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


20200227230008694.png

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

20200227230258386.png


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


20200227230419667.png


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

20200227230601394.png


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

20200227231328452.png


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


20200227230736321.png

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

3. 代码实现

private void CreateSharInfo(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.Insert(wallCategory);
                bool instanceParameter = true;
                BuiltInParameterGroup parameterGroup = BuiltInParameterGroup.PG_DATA;
                if (!System.IO.File.Exists(sharedParametersFilename))
                {
                    try
                    {
                        System.IO.StreamWriter sw = System.IO.File.CreateText(sharedParametersFilename);
                        sw.Close();
                    }
                    catch (Exception)
                    {
                        throw new Exception(string.Format("Can't create 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.Create(groupName);
                }
                Definition definition = group.Definitions.get_Item(definitionName);
                if (definition == null)
                {
                    definition = group.Definitions.Create(new ExternalDefinitionCreationOptions(definitionName, parameterType));
                }
                ElementBinding binding = null;
                if (instanceParameter)
                {
                    binding = revitApp.Create.NewInstanceBinding(categorySet);
                }
                else
                {
                    binding = revitApp.Create.NewTypeBinding(categorySet);
                }
                bool insertSuccess = revitDoc.ParameterBindings.Insert(definition, binding, parameterGroup);
                if (!insertSuccess)
                {
                    throw new Exception("Failed to bind definition to category");
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

4. 注意事项


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

新建共享参数文件时,必须采用unicode编码,否则系统无法识别;

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

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



目录
打赏
0
0
0
0
6
分享
相关文章
如何使用渐变块创建自定义聊天机器人
本文是一篇使用Gradio库的Blocks API创建自定义聊天机器人界面的教程,涵盖了从基础聊天机器人到支持流式响应、用户反馈(喜欢/不喜欢)以及Markdown、图像、音频和视频等多媒体内容的高级功能实现方法。
如何使用渐变块创建自定义聊天机器人
【阿里云】一键部署创建函数计算服务以处理多媒体文件
通过阿里云的一键部署功能,轻松创建函数计算服务以处理多媒体文件。首先选择地域并配置资源栈名称及其他必要参数,如登录凭证、实例类型及数据库配置。过程中可能需开通相关服务如消息服务MNS,并确保账户有足够的余额。完成配置后,系统自动创建资源栈。当状态显示“创建成功”即部署完毕。最后,通过提供的URL及凭据访问应用,上传PPTX文件进行处理,并下载处理后的结果。
127 5
Python中的仅限位置参数:简化函数调用与提升代码清晰度
【4月更文挑战第17天】Python 3.8 引入了仅限位置参数,增强函数调用清晰度和安全性。通过`/`语法,开发者可指定某些参数只能按位置传递,防止顺序错误和不必要的关键字参数。这有助于提高代码可读性,确保参数正确传递,并在复杂函数中提升安全性。在实际应用中,仅限位置参数可用于明确参数位置、保持向后兼容性和增强函数安全性。
Revit二次开发—载入族并交互式放置
Revit二次开发—载入族并交互式放置
Revit二次开发—载入族并交互式放置
Revit二次开发—更改激活视图(activeview)失败原因
Revit二次开发—更改激活视图(activeview)失败原因
Revit二次开发—更改激活视图(activeview)失败原因
Revit 二次开发——设置内置类别在激活视图下的可见性
Revit 二次开发——设置内置类别在激活视图下的可见性
Revit 二次开发—通过视图名激活对应视图
Revit 二次开发—通过视图名激活对应视图

相关实验场景

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等