1

Revit アドインを使用すると、リンク モデル内のパラメータを含め、タイプ パラメータを参照して設定できます。Revit 2011 以前では正常に機能していましたが、Revit 2012 および 2013 ではこれらを設定できなくなりました。リンクされたドキュメントでトランザクションを作成すると、「Autodesk.Revit.Exceptions.ArguementException: ドキュメントはリンクされたファイルです。トランザクションはプライマリ ドキュメント (プロジェクトまたはファミリ) でのみ使用できます。」

リンクされたモデルではトランザクションを使用できません。そのため、トランザクションなしでパラメーターを設定しようとしましたが、トランザクションの外でモデルを変更できないという例外が発生しました。

リンク モデルでトランザクションを作成できず、トランザクション外でモデルを修正することはできません。Revit 2012/2013 でリンク モデルを修正するにはどうすればよいですか? 2011 年には同じコードで問題なく動作しました。The Building Coder ブログを含め、オンラインでかなりの量の検索を行いましたが、この重大な変更やその回避方法についての言及は見つかりませんでした。誰か手を貸してくれませんか?

コードは簡単です。モデルでパラメーターを取得し、トランザクションを開始して、パラメーター値を設定しようとします。Revit 2011 では、同じコードがエラーなしで機能します。

// elementType is an ElementType in document doc 
// for which we want to set a type parameter.
Parameter typeParameter = elementType.get_Parameter(pararmeterName);
Transaction transaction = new Transaction(doc, "Update Revit Type"); // Exception thrown here if doc is a linked model
transaction.Start();

typeParameter.Set("FooValue");

transaction.Commit();
4

3 に答える 3

0

2年後...問題のドキュメントを開いてアクティブドキュメントにし、そこに必要なコードを適用してみる必要があると思います。コード例が必要な場合はお知らせください。

于 2015-04-15T13:44:36.430 に答える
0

Revit 2012 で作業を開始しましたが、リンク ファイル内のトランザクションの動作がわかりませんでした。しかし、リンクされたファイルにパラメーターを設定する必要もあり、適切に行う方法が見つかりませんでした。また、RevitAPI のヘルプでは、トランザクションはプライマリ ドキュメント (プロジェクトまたはファミリ) でのみ使用できることが示されています。

Revit 2011 でリンクされたファイルのパラメータを設定することは、安全ではない可能性があるため、機能ではなくバグであると推測できます。

于 2012-07-11T02:49:24.133 に答える