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

在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; //<==原点
}


你可能感兴趣的:(RevitAPI)