首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取当前选择的GetElementIds()出现问题

获取当前选择的GetElementIds()出现问题
EN

Stack Overflow用户
提问于 2019-05-28 22:08:32
回答 1查看 182关注 0票数 1

我有一个小代码来提取当前的选择从revit,但我得到一个错误说预期的选择,得到listelementId

我也试着像在API中一样传递GetElementIds(),但它说它需要1个参数(给定了0)。

代码语言:javascript
复制
import clr
import System
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

clr.AddReference('RevitAPI')
import Autodesk
from Autodesk.Revit.DB import *

clr.AddReference('RevitAPIUI')
from Autodesk.Revit.UI.Selection import *

clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.Elements)

clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager

# Import iron python packages
import sys
pyt_path = r'C:\Program Files (x86)\IronPython 2.7\Lib'
sys.path.append(pyt_path)



app = __revit__.Application
doc = __revit__.ActiveUIDocument.Document

#get current selection from Document

from Autodesk.Revit.UI import Selection
from System.Collections.Generic import List as CL

sel = CL[ElementId]()
Selected=Selection.Selection.GetElementIds()
print(len(Selected))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-29 09:32:47

下面这行代码中的错误:

代码语言:javascript
复制
Selected=Selection.Selection.GetElementIds()

您需要添加一个指向ui的链接,然后您可以使用它来获取选择:

代码语言:javascript
复制
ui = __revit__.ActiveUIDocument
Selected=ui.Selection.GetElementIds()

下面是获取用户选择的完整代码:

代码语言:javascript
复制
import clr
clr.AddReference('RevitAPI') 
clr.AddReference('RevitAPIUI') 
app = __revit__.Application
doc = __revit__.ActiveUIDocument.Document
ui = __revit__.ActiveUIDocument

selectedElements = []
for elementId in ui.Selection.GetElementIds():
    selectedElements.Add(doc.GetElement(elementId))

for item in selectedElements:
    print item
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56344108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档