1

ファミリ ドキュメントを開き、指定された 2 つのパラメータのパラメータ グループを変更し、ドキュメントを閉じて保存する簡単なスクリプトを作成しようとしています。複数のテストを行ったところ、指定したパラメータのパラメータ グループを変更できましたが、グループの変更がファミリ ファイルに保存されません。新しく保存したファミリを開くと、パラメータ グループが元のグループに戻ります。

これは Revit 2017.2 の場合です。

Revit 2018 の RPS で実行すると、同じスクリプトが必要に応じて実行されます。

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)

何か案は?

ありがとう!

4

1 に答える 1