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