关于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
分享
相关文章
AI提示词入门教程
前言 在当前的信息时代,人工智能(AI)已成为我们日常生活和工作中不可或缺的一部分。尤其是在处理语言和文本的应用中,AI的效率和能力已经展现出巨大潜力。然而,要充分利用AI的能力,有效地与之交互是关键。本文旨在探讨如何通过合适的提示词来指导AI,以确保任务的准确性和效率。我们将重点讨论基本原则和技巧,这些内容对于任何希望通过AI实现特定目标的用户都是极其有用的。
733 0
Revit & Navisworks 二次开发—获取材质贴图
Revit & Navisworks 二次开发—获取材质贴图
Revit & Navisworks 二次开发—获取材质贴图
Revit二次开发—修改元素的Material Color(图形颜色)
Revit二次开发—修改元素的Material Color(图形颜色)
Revit二次开发—修改元素的Material Color(图形颜色)
CTP协议的组成原理与具体实现(实验篇,含代码)_物联网竞赛挑战赛
CTP协议的组成原理与具体实现(实验篇,含代码)_物联网竞赛挑战赛
268 0
ZooKeeper【搭建 01】apache-zookeeper-3.6.2 单机版安装+配置+添加到service服务+开机启动配置+验证+chkconfig配置(一篇入门zookeeper)
【4月更文挑战第8天】ZooKeeper【搭建 01】apache-zookeeper-3.6.2 单机版安装+配置+添加到service服务+开机启动配置+验证+chkconfig配置(一篇入门zookeeper)
322 0
Google Earth Engine ——MCD43A2 V6双向反射分布函数和反照率(BRDF/Albedo)质量500m数据集是一个500米的每日16天产品。包含质量信息!
Google Earth Engine ——MCD43A2 V6双向反射分布函数和反照率(BRDF/Albedo)质量500m数据集是一个500米的每日16天产品。包含质量信息!
374 0
Google Earth Engine ——MCD43A2 V6双向反射分布函数和反照率(BRDF/Albedo)质量500m数据集是一个500米的每日16天产品。包含质量信息!
Winform控件优化之背景透明那些事2:窗体背景透明、镂空穿透、SetStyle、GDI透明效果等
两行代码就能实现Form窗体的(背景)透明效果,它不是Opacity属性的整个窗体透明,`TransparencyKey`实现窗体的透明、窗体中间部分镂空效果...
3410 0
Winform控件优化之背景透明那些事2:窗体背景透明、镂空穿透、SetStyle、GDI透明效果等