Revit API 更改 Python 中的组
Revit API Change Groups in Python
我正在尝试编写一个脚本,将组从一种类型更改为另一种类型。本质上,我想完成 UI 相当于右键单击组类型,选择所有实例并更改类型。
我可以使用类似下面的代码,但是当有很多组(例如 270 左右)时,它比 UI 方法花费的时间长得多。 UI 中不到 5 分钟的内容,以编程方式需要大约 20 分钟或更长时间。
有没有比 UI 方法花费的时间不那么长的更好方法?
这是我在 Revit 中用来测试的代码 Python Shell:
import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
uidoc = __revit__.ActiveUIDocument
doc = uidoc.Document
sel = uidoc.Selection.GetElementIds()
t = Transaction(doc, "Test")
t.Start()
g1 = doc.GetElement(sel[0])
g2 = doc.GetElement(sel[1])
for group in g2.Groups:
group.GroupType = g1
t.Commit()
我可能是错的,但我认为这是你唯一的选择。有一些实用程序可以一次移动一堆对象,但我不知道有什么方法可以同时更改多个对象的类型。 Revit API 尚未完成,因此有些事情您无法在 python/c# 中完成,但 Revit 可以自行完成。
有一个工具可以一次复制多个元素(ElementTranformUtils.CopyElements);虽然,这将要求您在复制之前删除所有现有族。这可能不值得,而且我不确定那是否会更快。
由于团体人数众多,一般来说他们的工作速度很慢,这无济于事。我正在编写一个脚本,该脚本将编辑组以检查组内的元素。这需要取消分组,编辑元素,重新分组,然后将所有现有分组更改为他的新类型。 运行 一个有相当多小组的项目花了几个小时。
我正在尝试编写一个脚本,将组从一种类型更改为另一种类型。本质上,我想完成 UI 相当于右键单击组类型,选择所有实例并更改类型。
我可以使用类似下面的代码,但是当有很多组(例如 270 左右)时,它比 UI 方法花费的时间长得多。 UI 中不到 5 分钟的内容,以编程方式需要大约 20 分钟或更长时间。
有没有比 UI 方法花费的时间不那么长的更好方法?
这是我在 Revit 中用来测试的代码 Python Shell:
import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
uidoc = __revit__.ActiveUIDocument
doc = uidoc.Document
sel = uidoc.Selection.GetElementIds()
t = Transaction(doc, "Test")
t.Start()
g1 = doc.GetElement(sel[0])
g2 = doc.GetElement(sel[1])
for group in g2.Groups:
group.GroupType = g1
t.Commit()
我可能是错的,但我认为这是你唯一的选择。有一些实用程序可以一次移动一堆对象,但我不知道有什么方法可以同时更改多个对象的类型。 Revit API 尚未完成,因此有些事情您无法在 python/c# 中完成,但 Revit 可以自行完成。
有一个工具可以一次复制多个元素(ElementTranformUtils.CopyElements);虽然,这将要求您在复制之前删除所有现有族。这可能不值得,而且我不确定那是否会更快。
由于团体人数众多,一般来说他们的工作速度很慢,这无济于事。我正在编写一个脚本,该脚本将编辑组以检查组内的元素。这需要取消分组,编辑元素,重新分组,然后将所有现有分组更改为他的新类型。 运行 一个有相当多小组的项目花了几个小时。