RevitAPI: 如何获取RevitLinkInstance链接模型的位置?

本文介绍如何在Revit API中通过GetTransform方法获取RevitLinkInstance对象的位置信息。通常情况下,直接调用Location属性无法获取具体位置,本文提供了一种解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在RevitAPI中获取RevitLinkInstance对象然后调用Location方法的时候,发现它返回一个Location对象,该对象没有任何方法可以获取位置。

RevitDoc = commandData.Application.ActiveUIDocument.Document;
var linkFilter = new ElementClassFilter(typeof(RevitLinkInstance));
FilteredElementCollector linkInstances = new FilteredElementCollector(RevitDoc);
linkInstances = linkInstances.WherePasses(linkFilter);
foreach (RevitLinkInstance element in linkInstances)
{
    var location = element.Location; //<==无法获取位置信息
}

怎么办?

这里我们可以使用Instance.GetTransform()方法。该方法返回的是一个矩阵变换,代表的是链接文件的中心点和当前文件中心点之间的相对位置。代码如下:

foreach (RevitLinkInstance element in linkInstances)
{
    var transform = element.GetTransform(); //<==获取相对位置关系
    var location = transform.Origin; //<==原点
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值