Revit二次开发,获取族的实例参数和类型参数

编程入门 行业动态 更新时间:2024-10-10 10:33:09

Revit二次开发,获取族的实例<a href=https://www.elefans.com/category/jswz/34/1771441.html style=参数和类型参数"/>

Revit二次开发,获取族的实例参数和类型参数

在Revit中,如何获取族的实例参数和类型参数?这两种的获取方式有些区别。

一、实例参数

如上图,左侧的是实例参数,我们如何取“标高”这个参数呢?

答:直接使用LookupParameter方法即可实现。

Element element = new Element();
var parameter = element.LookupParameter("标高");
var value = parameter.AsValueString();

二、类型参数

这个有点小麻烦,不过我们可以通过下面的方式来查找一个族的类型参数,然后再去编写代码。

1.选中一个图元后,我们使用Revit Lookup查看器去看一下参数

2.找到GetValidTypes,点进去

3.注意看下图的2个红圈,左上角的表示它的类型,右边的则表示可以获取Parameters参数。注意左上角的红圈类型,是因为我们写代码的时候要用。

4.进入Parameters后,我们就会看到所有的类型参数了。这样,我们就可以有办法写出对应的程序代码。

5.编写获取类型参数的程序代码

Element element = new Element();
var types = element.GetValidTypes();
foreach (var elementId in types)
{var familySymbol = this.Document.GetElement(elementId) as FamilySymbol;var parameter = familySymbol.LookupParameter("带宽");
}

三、终极办法

为什么叫“实例参数”?为什么叫“类型参数”?

实例参数,就是它是一个图元的实例对象,转到C#就是被new了一下。

类型参数,就是它本身为该图元的参数,不需要new,你就可以直接用,所以,它的影响是全局的,凡是使用该图元来new的对象,都会受到影响。

好的,基于上面的2条论点,可能没有那么准确,但意思你大概明白了:

一个是new一下对象后给参数赋值,另一个是不new,就直接给参数赋值,赋完后才被人new。

 

终极代码编写:

//1.假设instance是你使用Revit自带的NewFamilyInstance方法new一下出来的“实例”对象
var instance = this.Document.Create.NewFamilyInstance(point, bracketSymbol, level, StructuralType.NonStructural);
//2.那么,给instance这个实例对象的任何参数赋值,等同于就是“实例参数”。
var parameter = instance.LookupParameter("支腿角度");
parameter.Set(100);
//3.如果给instance这个实例对象的Symbol类型赋值,则等同于就是“类型参数”
var parameter1 = instance.Symbol.LookupParameter("支腿角度");
parameter1.Set(100);

于是,不管你是实例参数,不是类型参数,都可以用上面代码两三句搞定。

 

祝您用餐愉快。

更多推荐

Revit二次开发,获取族的实例参数和类型参数

本文发布于:2024-03-09 05:59:25,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1724081.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:参数   实例   类型   Revit

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!