0

現在、シート上の位置に基づいて、シートのビュー番号 (「詳細番号」) の名前を変更するツールを作成しました。これが壊れているのはトランザクションです。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ファイルです

4

2 に答える 2

0

したがって、この問題は実際にはトランザクションやドキュメントの再生成とは何の関係もありませんでした。私は(いくつかの助けを借りて:))、問題はパラメーターの設定/取得方法にあることを発見しました。多くのパラメーターと同様に、「詳細番号」には、ビューポート要素で同じ説明的なパラメーター名を共有する重複バージョンがあります。

どうやらこれの理由はレガシーの問題かもしれませんが、よくわかりません。したがって、詳細番号を取得/設定しようとしたときに、何らかの形で誤った読み取り専用パラメーターを取得していました。これは、ビルトイン列挙として「VIEWER _DETAIL_NUMBER」と呼ばれるものです。正しいものは「VIEWPORT _DETAIL_NUMBER」と呼ばれます。これは、説明的なパラメーター名「詳細番号」を渡すだけでパラメーターを取得しようとしたために発生していました。以下の画像を参照してください。

視覚的な説明については、pdf を参照してください: https://www.docdroid.net/WbAHBGj/161206-detail-number.pdf.html

于 2016-12-02T18:48:59.073 に答える