問題タブ [revit-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 挿入中にファミリ インスタンスのサイズを変更する
Revit 2014 用のアドインを作成しています。平行六面体をプロジェクト内に挿入したいのですが、挿入時に平行六面体の幅、奥行き、高さを設定する必要があります。1x1x1 の立方体と、値に応じて立方体のサイズを自動的に変更する 3 つのインスタンス パラメータを持つファミリを作成しました (パラメータの名前は「幅」、「深さ」、「高さ」です)。
ファミリを図面に読み込んでそのインスタンスを配置し、配置後にパラメータを変更すると、立方体のサイズが正しく変更されます。
プロジェクト内にインスタンスを挿入する前にキューブのサイズを変更する方法はあるのだろうか。マウス カーソルの下のプレビューが正しいサイズになるようにしたい。
インスタンスを配置するために、次の手順を使用しています。
ありがとうございました
c# - ファイルまたはアセンブリを読み込めませんでした 'Xceed.Wpf.Toolkit
別のアプリケーションである Autodesk Revit 用のアドインを開発しています。このアドインは、別個の DLL クラス ライブラリとして構築されています。WPF ウィンドウの 1 つでWpf Tool Kit プロパティ グリッドを使用しようとしています。プロパティ グリッドは Visual Studio で正常に表示され、IntelliSense も機能します。しかし、アドインをロードした状態で Revit を起動しようとすると、次の例外が発生します。
通常、Revit プラグインからサード パーティのアセンブリを参照する場合、サード パーティの DLL がプラグイン DLL と同じ場所にコピーされていることを確認します。チェックしXceed.Wpf.Toolkit.dll
たところ、プラグイン DLL を含むディレクトリにコピーされています。
エラーのログ メッセージから、Revit プログラム ディレクトリで DLL を探していることがわかりました。このディレクトリにコピーXceed.Wpf.Toolkit.dll
した後、エラーは表示されなくなりました。
ただし、独自の分離フォルダーにあるプラグイン ファイルに依存する既存のプラグイン展開ツールがあります。
それで、プラグインを入手してWPF Toolkitライブラリを見つける方法を知っている人はいますか?
c# - Revit で面または PlanarFace 要素の中心点を取得する方法
Revit マクロを実行して、パーツ (床パーツ) の中心点を取得し、部屋またはスペース内にあるかどうかを確認しています。BoundingBox
パーツの外側にポイントを与えるオブジェクトの多くを取得できなかったので、Geometry
要素の内部面を使用してメッシュの頂点を取得しようとしましたが、中間点の計算に行き詰まりました。以下のスニペットに示すかなり単純なアルゴリズムを使用していますが、最小/最大変数の初期デフォルトの影響を受けているように見えるため、誤った結果が得られます。助言がありますか?
PS: DebugTools は、私自身のカスタム ヘルパー クラスです。
c# - API C# で Revit 2014 の要素名を変更する方法
APIで要素名を変更したいのですが、次のコードがあります。
しかし、なぜこのエラーが発生したのでしょうか? 「この要素は、ユーザー指定の名前の割り当てをサポートしていません。」または、別の方法で名前を変更する必要がありますか?
助けてください!
c# - タイプ 'Autodesk.Revit.DB.Element' にはコンストラクタが定義されていません
Autodesk.Revit.DB.Element
クラスを作成し、そのクラスを継承させたい
しかし、コードをコンパイルすると、次のエラーが発生します
この型Autodesk.Revit.DB.Element
にはコンストラクターが定義されていません。
vb.net - Autodesk.Revit.Application.ActiveDocument.Create メソッドはどこに行ったのですか?
Application.ActiveDocument
2014 Revit APIの名前空間はどこにありますか?
API を使用して Revit モデルでスケッチ平面の下に線を引こうとしていますが、現時点では失敗しています。ほとんどの「Revit」については、 The Building Coder のJeremy Tammik に従っています。しかし今回は、オートデスクが名前空間を更新/変更しているため、彼は私を間違った方向に導きました。彼がしばらく前に投稿した C# をVB.NET に変換しました。おそらく 2011 年より前に、スケッチ平面を作成して線を描画します。問題は、彼がオブジェクトのインスタンス化に使用した名前空間が変更されたことです。たとえば、彼は変数 'X' をAutodesk.Revit.Application
オブジェクトとしてディメンション化しますが、この時点で、その名前空間は に変更されていAutodesk.Revit.ApplicationServices.Application
ます。
Creation
ドキュメントを作成し、Application
そのドキュメントをメソッドに設定しようとしてAutoDesk.Revit.ApplicationServices.ActiveDocument.Create
いますが、もう存在しないようです。Google で高低を検索しましたが、何も見つからないようです。
誰かが私を正しい方向に向けることができますか?
c# - Revit でカスタマイズされたビュー ファミリ名にビューを設定するにはどうすればよいですか?
ビュー ファミリ タイプを別のビュー ファミリ名に変更する方法を確認できませんでした... たとえば、新しいセクション"Detail Views (Detail)"
を配置するブラウザの既定の場所である があります。ViewSection.CreateDetail
しかし、私が作成した別のブラウザーの場所にビューを配置したいと思います"Detail Views (Beam Top Detail Views)"
。
私が試したのはsection.get_Parameter(BuiltInParameter.VIEW_TYPE)
、それが使用した名前を教えてくれますが、それをフォローアップすることはできません.Set(NewViewName)
(同じトランザクション)。エントリ中に直接設定する方法はありますCreateDetail
か、または特定のパターンのすべてのビューを探して別のトランザクションを実行し、そこで設定を変更する必要がありますか?
c# - Revit C# の実行コード「OnShutDown」および「OnStartup」
「AIPAppStartup」の Revit SDK サンプルには、実行される「OnShutDown」(Revit セッションを閉じるとき) または「OnStartup」(Revit セッションを開始するとき) のコードのセクションが事前に作成されていますが、読み込まれたドキュメントごとにコードを実行できるようにしたいと考えています。具体的には、ロードされた特定のモデルに関連付けられた一時ファイルを Revit に消去させたいと考えています。
新しい結果 public Autodesk.Revit.UI.Result OnLoad(UIControlledApplication application) を作成しようとしましたが、うまくいきませんでした。また、別のいくつかの On**** の可能性 (OnOpen など) も試しましたが、これも失敗しました。
私の欲求を達成するために使用する特定の「On********」結果はありますか?
c# - Revit で変換の set_Basis 値を修正する
Revit でトランスフォームを使用して、個々の梁の立面図を表示しています (詳細化のため)。これは、梁が平らである限り (始点と終点のオフセットが同じ) うまく機能しますが、梁が傾斜している場合は、終点を「平らにする」必要があります。
実際の始点/終点に沿って単位ベクトルを定義しようとしました。また、変換の定義された「.Origin」を通る XY 平面上でそのベクトルに垂直な線を定義しようとしました。次に、単純な方程式を使用して、これら 2 つのベクトルの法線を定義しました... double newx = first.Y * second.Z - first.Z * second.Y; double newy = first.Z * second.X - first.X * second.Z; double newz = first.X * second.Y - first.Y * second.X; double vectlong = Math.Sqrt(newx * newx + newy * newy + newz * newz); XYZ 法線 = new Autodesk.Revit.DB.XYZ(newx / vectlong, newy / vectlong, newz / vectlong);
次に、これらの 3 つのベクトルを ".set_Basis" 0、1、および 2 として使用しました。
このコードは、梁の始点と終点を強制的に平坦にしている限り (生成された「法線」が有効であることを示しています) 機能しますが、コードを削除して平坦化し、終点の実際の Z 値を使用するとこれらの値を使用しようとすると、プログラムが失敗します。
ビームの中央を通るセクションを生成する SDK サンプル (CreateViewSection) も同じ問題を発見したようですが、プログラマーはあきらめて、同じ XY 平面上に既に存在するビームのみを受け入れるようにプログラムを単純に強制しました。ビームの実際の「ルール」です。
3 つのベクトルの計算値をエクスポートし、それらがすべて単位長で正規直交であることを確認しました。変換に必要なのはこれだけです。これらの基底値が失敗する理由を誰か説明できますか?