-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLinkInstance.GetProperty_publish_13.dyn
70 lines (56 loc) · 3.48 KB
/
LinkInstance.GetProperty_publish_13.dyn
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<Workspace Version="1.3.4.6666" X="-24" Y="23.2" zoom="1" ScaleFactor="1" Name="Default" Description="" RunType="Manual" RunPeriod="1000" HasRunWithoutCrash="True">
<NamespaceResolutionMap />
<Elements>
<PythonNodeModels.PythonNode guid="34cf0ae2-7d83-4e23-a956-c8b5522e6e73" type="PythonNodeModels.PythonNode" nickname="Python Script" x="301.2" y="251.2" isVisible="true" isUpstreamVisible="true" lacing="Disabled" isSelectedInput="False" IsFrozen="false" isPinned="true" inputcount="1">
<PortInfo index="0" default="False" />
<Script>import clr
from System.Collections.Generic import *
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *
clr.AddReference("RevitAPIUI")
from Autodesk.Revit.UI import *
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
uiapp = DocumentManager.Instance.CurrentUIApplication
app = uiapp.Application
uidoc=DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
ObjType = Autodesk.Revit.UI.Selection.ObjectType
StructType = Autodesk.Revit.DB.Structure.StructuralType.NonStructural
linkInstances = FilteredElementCollector(doc).OfClass(RevitLinkInstance)
linkDocument = [i.GetLinkDocument() for i in linkInstances]
elem_link = uidoc.Selection.PickObject(ObjType.LinkedElement, "Выберите элемент связанного файла")#.LinkedElementId
_debug =[]
host = []
res = {}
el = None
for link in linkDocument:
try:
el = link.GetElement(elem_link.LinkedElementId)
except: pass
if el != None:
res[el.Document.Title] = el
res_string = ''
for key in res:
res_string += 'Id {0} ({1}), {2}; \n'.format(res[key].Category.Name)
if len(host) == 0:
TaskDialog.Show('Выбранный элемент',
res_string)
OUT = host, elem_link.CreateReferenceInLink()</Script>
</PythonNodeModels.PythonNode>
<CoreNodeModels.Input.BoolSelector guid="4a836a29-1fce-447c-9e57-7c2c0ee34c02" type="CoreNodeModels.Input.BoolSelector" nickname="Boolean" x="141.2" y="255.2" isVisible="true" isUpstreamVisible="true" lacing="Disabled" isSelectedInput="True" IsFrozen="false" isPinned="false">
<System.Boolean>True</System.Boolean>
</CoreNodeModels.Input.BoolSelector>
</Elements>
<Notes>
<Dynamo.Graph.Notes.NoteModel guid="15622c12-b9be-452f-9940-11dc0238fdc1" text="Инструкция:
Запустить скрипт и выбрать элемент связанной модели. Скрипт позволит выбрать элементы только из связанных файлов.
В результате появится диалоговое окно, в котором будет выданы следующие данные:
<id элемента> (Имя категории), <Имя связанного файла>;

Возможна ситуация, когда будут выданы две и более строчек информации об элементы. В данном случае следует выбрать необходимые параметры исходя из имени документа." x="194" y="-11.2" />
</Notes>
<Annotations />
<Presets />
<Cameras>
<Camera Name="Фоновый просмотр" eyeX="-17" eyeY="24" eyeZ="50" lookX="12" lookY="-13" lookZ="-58" upX="0" upY="1" upZ="0" />
</Cameras>
</Workspace>