RevitAPI之镜像(Mirror)一个元素

来源:互联网 发布:python matlab库 编辑:程序博客网 时间:2024/05/17 20:00
RevitAPI提供了镜像方法来镜像一个或者多个元素,API如下表。

方法

描述

MirrorElement(Document document, ElementId elementToMirror, Plane plane)

使用给定的平面,创建一个元素的镜像拷贝

MirrorElements(Document document, ICollection<ElementId> elementsToMirror,Plane plane)

使用给定的平面,创建一个元素集合的镜像拷贝

CanMirrorElement(Document ADoc, ElementId elemId)

判断元素是否可以进行镜像操作

CanMirrorElements(Document ADoc, ICollection<ElementId> elemIds)

判断元素集是否可以进行镜像操作


 

要镜像一个元素,首先判断这个元素是否支持镜像。

可以使用两个辅助方法CanMirrorElement和CanMirrorElements来判断。


以下代码显示了如何通过一个平面来镜像一根柱子:
void MirrorColumn(Autodesk.Revit.DB.Document projectDoc, FamilyInstance column)        {            using (Transaction tran = new Transaction(projectDoc, "Mirror the column"))            {                tran.Start();                if (null != column)                {                    Plane plane = new Plane(XYZ.BasisX, XYZ.Zero);                    if (ElementTransformUtils.CanMirrorElement(projectDoc, column.Id))                    {                        ElementTransformUtils.MirrorElement(projectDoc, column.Id, plane);                    }                }                tran.Commit();            }        }

在RevitAPI中,每个Familylnstance有一个Mirrored属性。通过这个属性可以判断一个FamilyInstance(如一根柱子)是否是镜像。

注意:
镜像方法需要一个平面作为镜像轴,如果这个平面是null,那么操作会失败并且抛出ArgumentNullException。因此在使用平面镜像时,需判断该平面是否为null

一般应该选择与Z平面垂直的平面作为镜像平面


=========【更多高级应用请关注公众号】========


===================================

原创粉丝点击