現在、シート上の位置に基づいて、シートのビュー番号 (「詳細番号」) の名前を変更するツールを作成しました。これが壊れているのはトランザクションです。Revit Python Shell で 2 つのトランザクションを順番に実行しようとしています。私ももともとダイナモでこれを行いましたが、同様の失敗があったため、トランザクションと関係があることはわかっています。
トランザクション #1:各詳細番号にサフィックス (「-x」) を追加して、新しい番号が競合しないようにします (1 は 1-x、4 は 4-x など)。
トランザクション #2:ビューポートの位置に基づいて計算された新しい番号で詳細番号を変更します (1-x は 3、4-x は 2 など)。
ここでより良い視覚的な説明: https://www.docdroid.net/EP1K9Di/161115-viewport-diagram-.pdf.html Py ファイルはこちら: http://pastebin.com/7PyWA0gV
添付されているのはpythonファイルですが、基本的に私がやろうとしていることは次のとおりです。
# <---- Make unique numbers
t = Transaction(doc, 'Rename Detail Numbers')
t.Start()
for i, viewport in enumerate(viewports):
setParam(viewport, "Detail Number",getParam(viewport,"Detail Number")+"x")
t.Commit()
# <---- Do the thang
t2 = Transaction(doc, 'Rename Detail Numbers')
t2.Start()
for i, viewport in enumerate(viewports):
setParam(viewport, "Detail Number",detailViewNumberData[i])
t2.Commit()
添付はpyファイルです