首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修改Python更改参数组

修改Python更改参数组
EN

Stack Overflow用户
提问于 2017-11-20 20:12:11
回答 1查看 709关注 0票数 1

我正在尝试编写一个快速脚本来打开一个家庭文档,更改由2个指定参数组成的参数组,然后关闭并保存文档。我已经做了多个测试,并且能够更改指定参数的参数组,但是组的更改不会保存回家庭文件。当我打开新保存的家庭时,参数组会恢复到原来的组。

这是与Revit 2017.2。

同样的脚本,在Revit2018中在RPS中运行时,也会按需要运行。

代码语言:javascript
复制
import clr
import os
clr.AddReference('RevitAPI')
clr.AddReference('RevitAPIUI')
from Autodesk.Revit.DB import *
from Autodesk.Revit.UI import UIApplication

from System.IO import Directory, SearchOption

searchstring = "*.rfa"
dir = r"C:\Users\dboghean\Desktop\vanity\2017"

docs = []

if Directory.Exists(dir):
    files = Directory.GetFiles(dir, searchstring, SearchOption.AllDirectories)
    for f in files:
        name, extension = os.path.splitext(f)
        name2, extension2 = os.path.splitext(name)
        if extension2:
            os.remove(f)
        else:
            docs.append(f)
else:
    print("Directory does not exist")

doc = __revit__.ActiveUIDocument.Document
app = __revit__.Application
uiapp = UIApplication(app)

currentPath = doc.PathName

pgGroup = BuiltInParameterGroup.PG_GRAPHICS

for i in docs:

    doc = app.OpenDocumentFile(i)

    paramList = [i for i in doc.FamilyManager.Parameters]

    t = Transaction(doc, "test")
    t.Start()

    for i in paramList:
        if i.Definition.Name in ["Right Sidesplash Edge line", "Left Sidesplash Edge line"]:
            i.Definition.ParameterGroup = pgGroup

    t.Commit()

    doc.Close(True)

有什么想法吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-22 04:16:40

我可以证实,这种情况发生在2017年的Revit。奇怪!

一个简单的方法是使用doc.FamilyManager.RenameParameter任意重命名参数,然后将其重命名为原始名称。

因此,在您的示例中,这将是更改参数组后的另外三行代码:

代码语言:javascript
复制
originalName = i.Definition.Name
doc.FamilyManager.RenameParameter(i, "temp")
doc.FamilyManager.RenameParameter(i, originalName)

没有找到根本的问题,而是解决了这个问题

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

https://stackoverflow.com/questions/47400255

复制
相关文章

相似问题

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