活动项目位置。Revit链接内Revit链接的名称。

2024-04-26 06:24:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我打开文件A,其中有x个文件B链接到它。 文件B中还链接了x个文件C。我想知道文件C的位置名称

我使用dynamo for revit收集文件A中的RevitLinkInstances(B),然后使用以前的RevitLinkInstances(B)收集它们的RevitLinkInstances(C)。这部分工作得很好,可以使用自定义节点或python来完成。从那里我可以从C RevitLinkInstances收集任意数量的项目信息(据我所知,在上次打开C RevitLinkInstances时处于保存状态)

我从C RevitLinkInstances得到了我想要的一切,而没有在后台打开它们:文件名、实例名、固定状态、设计选项、实例工作集、类型工作集。你知道吗

当我试图收集ActiveProjectLocation.名称在我的C文件中,我得到了空值,当我在前面尝试GetDocument()时,得到了相同的结果。如果该信息不存储在B RevitLinkInstances中,那么似乎是合乎逻辑的。你知道吗

Image of Dynamo Script

我将下面的python用于我的C revitlink实例 首先描述一下我的问题https://forum.dynamobim.com/t/get-project-location-name-of-revit-links-in-revit-links-inception-like-question

import clr

# clr.AddReference loads and imports .net assembly(dll) as python module
# load RevitAPI.dll and RevitServices.dll
clr.AddReference("RevitAPI")
clr.AddReference("RevitServices")

# import filtered element collector and revit link instance classes
from Autodesk.Revit.DB import FilteredElementCollector, RevitLinkInstance

# import document manager
from RevitServices.Persistence import DocumentManager

# collect link documents from current document
link_docs = UnwrapElement(IN[0])
#rvtLinks = link_docs.ToElements()

ProjectLocation = []

#Queries


for i in link_docs :

    projloc = i.GetLinkDocument().ActiveProjectLocation.Name


#Append Output Lists    

    ProjectLocation.Add(projloc)


OUT = ProjectLocation
  1. 有可能拿到A吗ActiveProjectLocation.名称C RevitLink实例的数量?你知道吗
  2. 在后台打开文件的情况下,我可以获取@C level多少信息?你知道吗
  3. 是API限制还是文件数据存储限制?你知道吗

Tags: and文件实例fromimport名称信息docs
1条回答
网友
1楼 · 发布于 2024-04-26 06:24:59

我看到这个问题已经在getting project location name of Revit links in Revit links上的dynamobim forum线程中进行了深入讨论。你知道吗

据我所知,布伦丹•卡西迪在那篇文章中的最初回答非常准确:

  • 基本上,您需要将每个链接作为自己的文档,然后从链接的文档中获取这些revit链接。我认为这篇文章将帮助你实现你的目标。。。你知道吗

我建议您按照他的建议,递归地将每个链接作为单独的文档打开,从中检索所需的信息。你知道吗

相关问题 更多 >