Revit二次开发 零件创建
Posted minhost
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Revit二次开发 零件创建相关的知识,希望对你有一定的参考价值。
Revit中的零件,可以将一个图元元素,分割成许多小的零件,而这些零件对原来元素的图元没影响,只会是显示一个效果,零件可以单独列入明细表、进行标记、过滤和导出。
一、不是所有元素都可以创建零件,能够创建零件的元素有以下几个:
- 墙(不包括叠层墙和幕墙);
- 基础墙;
- 楼板(不包括多层的形状编辑楼板);
- 屋顶;
- 天花板;
- 结构楼板基础;
- 楼板边缘;
- 封檐带;
- 檐沟;
- 结构框架;
- 柱;
- 结构柱。
- 可以进行零件创建的图元有:
二、创建零件主要通过PartUtils的几个静态方法:
1、AreElementsValidForCreateParts 验证给定的元素是否能创建零件
//给定的元素是否能够创建零件 public static bool AreElementsValidForCreateParts( Document document, ICollection<ElementId> elementIds )
2、ArePartsValidForDivide 验证给定的元素是否能被当前零件分割
public static bool ArePartsValidForDivide( Document document, ICollection<ElementId> elementIdsToDivide )
3、ArePartsValidForMerge 验证给定的零件元素是否能够合并
public static bool ArePartsValidForMerge( Document document, ICollection<ElementId> partIds )
4、CreateMergedPart 将指定的部件合并为一个部件
public static PartMaker CreateMergedPart( Document document, ICollection<ElementId> partIds )
5、CreateParts 将指定的元素创建为部件
//将指定元素创建为零件 public static void CreateParts( Document document, ICollection<ElementId> elementIds ) //将链接元素创建为零件 public static void CreateParts( Document document, ICollection<LinkElementId> hostOrLinkElementIds )
5、DivideParts 拆分零件类,比较核心,需要详细讲解,其函数功能是将传入的零件对象拆分更多小的零件,其函数的定义如下:
public static PartMaker DivideParts( Document document, ICollection<ElementId> elementIdsToDivide, ICollection<ElementId> intersectingReferenceIds, IList<Curve> curveArray, ElementId sketchPlaneId )
参数说明如下:
elementIdsToDivide 需要拆分的元素对象
intersectingReferenceIds 和当前元素相交的参照面
curveArray 用于划分元素的线段
sketchPlaneId :当前对应的草图平面
其基本理解为:主要是在草图平面上绘制线段和参照面,把草图平面分割,然后拆分为小零件,比如一个楼板,其平行的两个面共享一个草图平面,所以一个楼板总共有三个草图平面,墙体也是。
6、FindMergeableClusters 查找指定元素的子部件
public static IList<ICollection<ElementId>> FindMergeableClusters( Document doc, ICollection<ElementId> partIds )
7、GetAssociatedPartMaker 获取指定元素关联的部件集合
public static PartMaker GetAssociatedPartMaker( Document hostDocument, ElementId elementId )
8、HasAssociatedParts 判断指定元素是否存在部件
public static bool HasAssociatedParts( Document hostDocument, ElementId elementId )
9、其他几个函数,可以看API,很容易理解。
三、PartMaker与Part的区别
看类的名字就知道,PartMaker是零件创建器,Part是零件,零件不用说,代表一个零件的定义,那么零件创建器PartMaker是干什么用的呢?
我们将一个墙体创建零件后,会直接返回PartMaker对象,PartMaker对象起始就是Part的一个集合,PartMake元素管为一个或多个原始元素生成零件元素的策略。
以上是关于Revit二次开发 零件创建的主要内容,如果未能解决你的问题,请参考以下文章