Revit二次开发创建项目参数

图片说明

c#
0

3个回答

无论是手工创建共享参数,或者用代码创建,都需要一个共享参数的文件,格式是txt,内容要按照revit定义好的模板才能正确读取。要创建这个共享参数的txt模板文件,可在“”revit-管理-共享参数-创建“”这里面操作。

手动创建并绑定共享参数的流程是:

1、创建或读取共享参数文件(txt)

2、创建共享参数组

3、创建共享参数

4、在“”revit-管理-项目参数-添加-共享参数-选择“操作,然后设置好参数分组方式,设置好绑定的类别(Category)。

PS:共享参数都是一对多的关系,也即:一个共享参数文件下可创建多个共享参数组,组下可创建多个共享参数,共享参数可自定义名称、规程、参数类型。

-2
m0_37994863
上官冷月 非常感谢,但是我说的是项目参数。在我查阅了相关书籍(《Revit二次开发基础教程》)后得出结论(AutoDesk就没有提供这样的API所以无法创建)
8 个月之前 回复

项目参数无法创建

1

人家是问项目参数不是共享参数

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
revit二次开发_参数添加
基于revit2016二次开发。往系统族中添加共享参数,实例参数,类型参数以及向填加的参数中添加值,设置族参数公式等。
Revit开发之判断参数是否为项目参数
Revit里有一种参数叫项目参数,如果要判断一个 参数是否是项目参数,RevitAPI里没有直接提供 方法,那到底有没有方法来判断一个参数是否是 项目参数呢? 下面来做一些尝试: 首先通过Document.ParameterBindings 发现这里面包括了项目参数和共享参数 那如果一个参数不是共享参数,而又包含 在这里面,那它是不是就是项目参数呢? 经过简单测试,发现可以
Revit二次开发之创建共享参数及绑定共享参数【比目鱼原创】
无论是手工创建共享参数,或者用代码创建,都需要一个共享参数的文件,格式是txt,内容要按照revit定义好的模板才能正确读取。要创建这个共享参数的txt模板文件,可在“”revit-管理-共享参数-创建“”这里面操作。 手动创建并绑定共享参数的流程是: 1、创建或读取共享参数文件(txt) 2、创建共享参数组 3、创建共享参数 4、在“”revit-管理-项目参数-添加-共享参数-选择“
revit二次开发里获得指定参数并修改
revit二次开发里获得指定参数并修改
Revit二次开发—参数的读取与写入
注:本文转自公众号:BIMCoder梁老师 一、前言 在Revit二次开发中,参数是非常重要的组成部分,那么我们该如何从构件获取参数并修改该参数。   二、方法       首先得到一个Element后,有如下几个获取参数的方法: 1. e.Parameters 2. e.GetParameters(string name) 3. e.get_Parameter(BuiltInPa...
Revit二次开发之获取参数绑定的类别【比目鱼原创】
哪怕项目参数是通过共享参数创建的。项目参数在创建的时候,就已经和类别绑定了。也就是说和类别对应的元素都加上了新的参数。
revit二次开发获取基本参数
UIDocument uidoc = commandData.Application.ActiveUIDocument;            Document doc = uidoc.Document;            //获取选择的元素,讲元素转成列表形式            var elemList = uidoc.Selection.GetElementIds().ToList()...
Revit二次开发 族参数的获取
本文章代码写的是对族参数的获取,并转成DataTable可作为数据源直接绑定在form窗体控件上流程思路为:1.在固定位置找到族文件,加载到项目中2.读取族文件中所有类型:Get_FamilySymbol(Family family);3.获取族文件参数: GetParameter(Element e, string header)4. 获取族文件中所有类型参数:getSymbolpara()5....
Revit二次开发之创建共享参数及绑定共享参数
Revit二次开发,实现了创建共享参数并写入属性值。
Revit开发之参数的修改实例
Revit中的参数修改要通过Parameter的Set方法来设置, 但是Set()里面传的参数类型是和Parameter的类型 有关系的,判断参数类型,可以通过 Parameter.StorageType 这里列举了 Parameter值的5中类型, 对于IsReadOnly的parameter 是不能修改的 对None的Parameter 是不能用Set方法来设值的 对Int
Revit二次开发——关联族参数
共同精进Revit及编程开发技能兴趣群:660319009在建族的时候,有个关联族参数的操作。应用场景比如:给族里的元素关联材质,关联长度等。string paramName = "材质"; FamilyParameter familyParameter = familyDoc.FamilyManager.AddParameter(paramName, BuiltI...
Revit获取元素的选定参数
void GetElementParameterInformation(Document document, Element element) { String prompt = "Show parameters in selected Element:"; StringBuilder st = new StringBuilder(); foreach (Parameter para ...
Revit二次开发之Parameter单位转换
由于Revit内部使用英制单位,我们在很多时候需要将Revit内部的各种数值转换成我们熟悉的公制单位,尤其是对Parameter。好在Revit API为我们提供了单位转换类UnitUtils,其中定义了各种静态方法让我们能很方便地进行单位转换而不必了解各种单位之间的转换进制
Revit开发编辑族参数
注意:只有载入族的才是可以修改的 下面是一个例子:选一个载入族,删掉其中的一个参数         private void EditFamilyParm()         { //选择一个族实例             Reference re = uidoc.Selection.PickObject(ObjectType.Element);             Ele
RevitAPI: 如何创建共享参数,并和类别绑定
共享参数给我们带来很多遍历,那么如何通过API来创建它们,并和某些类别的元素进行绑定呢? 下面我们用最少的代码来演示一下: RevitApp.SharedParametersFilename = @"C:\YourDefinitionFile.txt"; // set the shared file if haven't DefinitionFile definitionFile =
Revit 二次开发获取元素的材质和外观信息以及贴图
版权声明:本文为博主原创文章,未经博主允许不得转载。 最近群里的朋友们这个问题问的比较多,有必要写一篇文章介绍利用Revit 二次开发获取元素的材质和贴图的方法! 总体来说利用Revit API 获取元素的材质和贴图比较麻烦,而且有的材质还无法获取。总结一下思路如下: 1.假设我们已经得到元素,利用Element.GetMaterialIds 方法可以获得该元素所有材质的El
Revit二次开发_使用Winform获取用户输入
       一个使用Winform窗体获取用户输入的例子。新建一个简单窗体:窗体部分代码: public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load...
Revit开发之共享参数
在Revit中有一个共享参数,他可以绑定到某一个Category中。 API中创建共享参数的方法在Revit2015以后做了一些调整,本文 是Revit2015及以后的方法。 创建共享参数,必须要有一个共享参数的txt 文件,这个文件的 路径是: string txtFile = app.SharedParametersFilename; 这个路径是可以get和set的
revit二次开发之单位转换
Revit内部基本单位是英尺,如果要获取或设置构件参数数值需要进行单位转换,比如转换为基本的毫米或米等单位 1.可以使用常规方式进行转换:   1英尺等于0.3047999995367米,等于304.7999995367毫米 2.可以使用RevitAPI内置的转换函数进行目标单位的转换   使用UnitUtils函数的public static double Convert(dou
revit 二次开发 创建尺寸标注
Dimension autoDimension = doc.Create.NewDimension(view, newline, references); view是当前要标注尺寸的视图,newline是标注尺寸直线,references是绑定的几何参照。 但是目前只能解决平面视图上的水平和垂直的标注,斜向标注无法办到。...
Revit二次开发之材料Material的设置【比目鱼原创】
材料在建筑里是一个很重要的基本概念,建筑里的各种物体都是由各种不同材料组合而成的。而且材料在建筑模型的结构分析、热量分析和可视化上面都有很重要的应用。 材料设置到物体可以大体分为下面几个方式:族类别的预定义材料,系统族的材料设置,构件的材料设置,面的材料设置。 ①、组类别的预定义材料 组类别是Revit 中的一个基本特性,几乎所有的模型元素都是属于某一个组类别的, 顶层的组类
Revit二次开发:NurbSpline中各个参数的含义
摘自百度的回答,基本满足二开需求。了解一下:NURBS是Non-Uniform Rational B-Splines的缩写,是非统一有理B样条的意思。具体解释是:.Non-Uniform(非统一):是指一个控制顶点的影响力的范围能够改变。当创建一个不规则曲面的时候这一点非常有用。同样,统一的曲线和曲面在透视投影下也不是无变化的,对于交互的3D建模来说这是一个严重的缺陷。.Rational(有理):...
Revit二次开发DockableDialog (可停靠窗体)
三个步骤 1、首先可停靠窗体为 Page 窗体,即WPF控件需继承自Page。此外还需继承 IDockablePaneProvider 接口,然后在WPF控件后台代码汇总实现函数SetupDockablePane。 2、在IExternalApplication的OnStartup函数中完成注册(RegisterDockablePane)可停靠窗口,同时添加一个Revit命令按钮。 3、在I...
Revit API修改项目文档中族实例的参数
Revit二次开发过程中,获取族的内置参数的方法为:get_Parameter(BuiltInParameter parameterId),可用Lookup查询某个参数是否为内置参数以及它的ID号,图如下,Lookup路径为:ParameterSet/InternalDefinition/properties 对于非内置参数,如下图所示,BuiltInParameter一栏显示INVALID...
通过RevitAPI创建可下拉的按钮
在Revit工具栏中可以通过加载Addin创建我们自定义的面板及按钮   1、创建一个Ribbon Tab  -- CreateRibbonTab;   2、创建一个RibbonPanel --  CreateRibbonPanel;   3、创建一个SplitButtonData实例将其添加至RibbonPanel中;   4、使用PushButtonData创建自定义按钮并将按钮添
Revit 开发之全局参数GlobalParameter
Revit2017中新增了一个全局参数:GlobalParameter 这个怎么用呢,下面简单说个例子: 比如说,墙有一个  底部偏移  参数,我可以新建一个 全局参数,然后将它关联到所得墙的 底部偏移 参数, 这样只要我改变这个参数值,所有墙的 底部偏移 都会改变 全局参数还可以添加到 标注的标签里,也是可以驱动标注尺寸的 下面是关联 墙的底部偏移到 全局参数的
Revit设置命令的可用性
public class SampleAccessibilityCheck : IExternalCommandAvailability { public bool IsCommandAvailable(AutodeskAutodesk.Revit.UI.UIApplication applicationData, CategorySet selectedCategories)...
自动将自定义的Revit样板文件显示在创建项目页面中
很多Revit插件的开发商会有自己的样板文件,根据定制的样板文件创建项目文件,实现自己特有的功能。Revit提供了手动添加样板文件的功能(主菜单>)
Revit二次开发之判断一个族实例是否基于面创建【比目鱼原创】
Revit中有些族是不基于面创建,有些族是基于面创建(如环形吸顶灯等),这时候需要查看该Family的属性【基于工作平面】这个参数进行判断,可以使用lookup查询到FamilyInstance的主体Family,然后在Parameters里查看。 【判断一个FamilyInstance基于面创建的参数,可以使用以下代码查看】 using System; using
Revit二次开发之空闲事件与DocumentChanged事件解决方案
  前段时间做Revit开发项目时遇到一个棘手的问题,我们都知道Revit运行环境是不允许多线程并发的,也就是说同一时刻只能有一个事务或操作运行,然后可以根据具体情况去触发不同的响应事件,如DocumentOpend,DocumentChanged等,那么问题是什么呢?问题是有时我们希望通过外部命令PostCommand调用Revit本身的命令,如调用绘制桥架命令,但是我们希望在此命令执行后去触...
Revit二次开发之根据房间的墙,利用墙饰条制作墙踢脚
  这段时间有一些开发同仁问了一些关于房间放置踢脚或一些相关的问题,所以今天趁着有点时间,觉得还是写一点心得体会和大家分享一下,其实我们得到了房间后,还是可以做很多事情,不仅能能获得房间的边界线,还可以获得组成房间闭合区域的图元,如墙,建筑柱,门,窗等,最近公司的设计四院要求做一个算量的插件,就是根据每一个房间的属性做地面和墙体的排砖,然后做对应的算量工作,当然算量可以使用很多软件,这里只是举一...
Revit二次开发入门——通过过滤器获取元素
1,创建一个收集器 2,创建一个过滤器 3,调用收集器的WherePasses函数对元素进行过滤 4,遍历收集器,获取用户想要的元素 FilteredElementCollector filteredElements = new FilteredElementCollector(Doc); ElementClassFilter classFilter = new ElementClassFil
RevitAPI之镜像(Mirror)一个元素
要镜像一个元素,首先判断这个元素是否支持镜像。 可以使用两个辅助方法
Revit API 进阶之隐藏Element用户可见参数.
在阅读本文章之前,应具有一定Revit API开发基础. 在RevitAPI进阶其他博文中讲到此话题,但是并没有具体代码示例,在此即贴出具体代码,如下所示: using System; using System.Linq; using Autodesk.Revit.UI; using Autodesk.Revit.Attributes; using Autodesk.Revit.DB; u
Revit二次开发——加快过滤速度,以及对ElementIntersectsSolidFilter的API的Bug的处理办法
在Revit的API中有快过滤器和慢过滤器,其中慢过滤器和快过滤器合用会加快过滤器的速度。首先来看一个例子,以下是一个用了ElementIntersectsSolidFilter 慢过滤器的例子,如果元素多达几千个,下面最后一行代码起码耗时三四十秒: FilteredElementCollector collector = new FilteredElementCollector(revitDoc...
Revit开发获取梁的宽和高
在Revit里梁的宽和高一般都会有对应的参数,要获取大多数情况可以使用GetParameter, 但这个参数名称是用户自己定义的,不同的梁对应的参数名不一样,所以可以考虑通过梁的截面Face来获取             FamilyInstance inst = doc.GetElement(uidoc.Selection.PickObject(ObjectType.Element)) as
Revit开发之设置族参数的值
族参数的值是关联于族类型的,在每个族类型中都储存了各自类型的参数值,使用API以实现读写族参数的值,读写方法略有不同。 (1)读取参数值 Autodesk. Revit. DB. FamilyType 类: • double? AsDouble(FamilyParameter familyParameter) • Elementld AsElementId(FamilyParamete
关于为什么进行Revit二次开发的理解
众所周知,BIM【Building Information Modeling】(也即建筑信息模型),这个概念在建筑领域 已深入人心,发展异常迅猛,尤其是当BIM被明确写入建筑业发展“十二五”规划并继 续列入住建部、科技部“十三五”相关规划之后,BIM发展趋势更是势不可挡。 然而,目前没有哪一款软件能够独自做到BIM全生命周期信息管理和共享,将来或许也不会出现。那么,应用程序编程接口(AP
Revit二次开发之编辑族并载入到项目文档里
族在Revit中是个很重要的概念。族是一种元素,它分为系统族、内建族 和构建族。 ·系统族是Revit内置的族,不可以自由编辑它的模型、类型和参数。 ·内建族和构建族允许编辑和创建自定义的模型、类型和参数,区别是内建族只能存储在当前的项目文档里,不能被其他文档使用。 编辑族(EditFamily)和载入族(LoadFamily)的方法: 在当前文档中,如果加载了一些构建族,并创建了这些
Revit二次开发----分割族
其实在revit里是不存在分割族的概念。 对于基于线形的族,截面沿线都是一样,要想达到分割的状态,只需要把族基于线的那条线变短,然后再在分割点复制一个新的族即可。 过程是先获得线的均分点,然后把族的线缩短,接着再复制族,即可变成均分的效果。主要方法见代码: private void DevideFamilyInstance(FamilyInstance famIns,int
文章热词 卷积神经网络参数 决策树算法参数 随机森林参数变化 xgboost模型参数 卷积神经网络参数共享
相关热词 c++无法创建项目 dev c#在revit中选择 c#k3二次开发 python教程+chm python教程百家号