![](/img/trans.png)
[英]Revit API. Get a room from the linked model in which the main model element is located
[英]Access elements from a linked revit model
我有两个revit项目,MainProject.rvt和ProjectToLink.rvt。 MainProject.rvt包含ProjectToLink.rvt的链接。 在MainProject.rvt文档中使用下面的代码我可以访问链接本身:
FilteredElementCollector linkedModelCollector = new FilteredElementCollector(document);
linkedModelCollector.OfCategory(BuiltInCategory.OST_RvtLinks);
foreach (Element linkedModel in linkedModelCollector)
{
//Do something
}
如何从MainProject.rvt访问链接模型ProjectToLink.rvt中的元素? 我可以像上面的代码一样使用链接元素本身,还是有其他机制?
PS - 我需要这个用于Revit 2011
在Revit 2012中,我使用以下功能:
public IEnumerable<ExternalFileReference> GetLinkedFileReferences()
{
//ElementFilter categoryFilter = new ElementCategoryFilter(BuiltInCategory.OST_RvtLinks);
//ElementFilter typeFilter = new ElementClassFilter(typeof(Instance));
//ElementFilter logicalFilter = new LogicalAndFilter(categoryFilter, typeFilter);
var collector = new FilteredElementCollector(_document);
var linkedElements = collector
.OfClass(typeof (RevitLinkType))
//.OfCategory(BuiltInCategory.OST_RvtLinks)
//.WherePasses(logicalFilter)
.Select(x => x.GetExternalFileReference())
.ToList();
return linkedElements;
}
和
public IEnumerable<Document> GetLinkedDocuments()
{
var linkedfiles = GetLinkedFileReferences();
//List<String> linkedFileName = new List<string>(linkedfiles.Count);
var linkedFileNames = linkedfiles
.Select(x => ModelPathUtils.ConvertModelPathToUserVisiblePath(x.GetAbsolutePath()))
.ToList();
//linkedFileName.AddRange
// (from linkedfile in linkedfiles
// select linkedfile.GetTypeId() into typeId
// where typeId != null
// select document.get_Element(typeId).Name);
return _document.Application.Documents
.Cast<Document>()
.Where(doc => linkedFileNames
.Any(fileName => doc.PathName.Equals(fileName)));
}
第一个获取链接文件的链接(如在您的代码中),第二个获取表示链接文件的文档。 因此,当您拥有Document时,您可以通过FilteredElementCollector从中获取任何元素。 但请记住,您无法更改链接文件中的元素。
尝试在Revit 2011 API中查找类似的功能。 并阅读这篇文章
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.