Revit API 开发 (6): 构件的复制移动旋转等操作 - ElementTransformUtils Class

摘要

通过 Revit API 来对模型中的构件进行移动和旋转等操作是一个非常基本的需求。Revit API 当然也提供了这个功能,并且把它打包在一个类中,方便开发者使用。这个类就是 ElementTransformUtils

细节

先从一个例子开始,然后介绍类 ElementTransformUtils

例子

可以直接打开 Revit 的“宏”这项功能,把下面这段代码贴上去,编译完成之后,就可以使用了。他们分别完成了移动和旋转的功能:ElementTransformUtils.MoveElementElementTransformUtils.RotateElement

public void MoveElement()
{
	Reference refer = Application.ActiveUIDocument.Selection.PickObject(ObjectType.Element);
	Transaction tran = new Transaction(Document, "Move Element");
	tran.Start();
	ElementTransformUtils.MoveElement(Document, refer.ElementId, new XYZ(10, 10, 10));
	tran.Commit();
}

public void rotateElement()
{
	Reference refer = Application.ActiveUIDocument.Selection.PickObject(ObjectType.Element);
	Line zAxis = Line.CreateBound(new XYZ(0, 0, 0), new XYZ(0, 0, 1));
	Transaction tran = new Transaction(Document, "Move Element");
	tran.Start();
	ElementTransformUtils.RotateElement(Document, refer.ElementId, zAxis, 90);
	tran.Commit();
}

ElementTransformUtils

可以实现四种操作:

名称接口
复制ElementTransformUtils::CopyElement(s)
镜像ElementTransformUtils::MirrorElement(s)
移动ElementTransformUtils::MoveElement(s)
旋转ElementTransformUtils::RotateElement(s)

每种操作都是大同小异,并且都会对文档进行修改。

从一个文档复制到另一个文档

需要特别指出的一个接口, Revit API 可以进行文档之间的构件复制。

public static ICollection<ElementId> CopyElements(
	Document sourceDocument,
	ICollection<ElementId> elementsToCopy,
	Document destinationDocument,
	Transform transform,
	CopyPasteOptions options
)
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极客BIM工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值