RevitAPI之镜像(Mirror)一个元素

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平面垂直的平面作为镜像平面


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


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值