問題タブ [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 C# API ビュー サーフェス パターンでグラフィックスをオーバーライドする
オプションを Revit OverrideGraphicsSettings に割り当てようとしています:
これは、次の 2 つの問題を除いて機能します。
- 「By Material」から Solid Fill へのサーフェス パターンをビューで既にオーバーライドしている場合、上記のコードはこのオーバーライドを無効にし、By Material に戻します。
- ソリッド フィルの有効な FillPatternId を取得する方法が明確でないため、SetProjectionFillPatternId の行は無効になっています。
答えを見つけようとする私の試みには、定義されたすべてのマテリアルを収集し、それらをループして割り当てられたサーフェス パターンを見つけることが含まれますが、適切な FillPatternId が見つかりません。他の誰かがこの問題に対処しましたか?
c# - Revit 2014 でスイープを反転する
Sweep
読み込まれたプロファイルを使用して を正常に作成しました。次に、パスに沿って反転する必要があります。私はこの声明を試しました:
ただし、実行後IsFlipped
は常にfalse
. 私が間違っていることは何ですか?
c# - Revit 2014 で面ホストのネストされたファミリ インスタンスを挿入するときに Z 座標が無視される
一般的な特殊機器ファミリ内にボイド押し出しを含む面ホスト ファミリを挿入しようとしています。シナリオは次のとおりです。
「親」ファミリには、Z = 100 mm、高さ = 40 mm で配置された長方形の押し出しがあります。押し出しはプログラムで作成されます
私は単純なボイド シリンダーを持つ .rfa を持っています。この rfa はファミリであり、「 」を true に
Generic model
設定しましたCut with voids
押し出しを貫通するために、このボイド ファミリのインスタンスを親ファミリ内に挿入したいと考えています。
私が使用しているコードは次のとおりです。
問題は、円柱が常に Z=0 に配置されることです。必要に応じて、穴ファミリと結果プロジェクトを送信できます。
c# - 要素のコレクションを Revit の「現在の選択」に変換するにはどうすればよいですか?
Revit の「フィルタ」と同様に機能する「スマート フィルタ」を作成しようとしていますが、要素を他の方法でグループ化します(ファミリ タイプ、ワークセット、レベル、さらには「マーク」など)。これらのパラメーターを分離するコレクションを作成するのは簡単ですが、「チェック」したままにした要素のみを含めるように変更された document.selection でプログラムを終了できないようです。
私のプログラムは、「Hide In View」、「Halftone」、「Delete」などの残りの「チェック済み」要素を操作できますが、結果の選択に対して実行できる操作のリストが長すぎて、それらを含めることができませんすべてがダイアログフォームに含まれています - 「選択を設定」というラジオボタンを選択するだけで、選択した要素でプログラムを終了させるオプションが必要です。
私が試してみました:
これらは、「オブジェクトのインスタンスではありません」というエラーを返します。
Revit の「フィルタ」を終了すると、結果は変更された選択になります。C# アドインで同じことを行う方法はありますか?
c# - Revit API - 垂直柱を作成するようにユーザーに促す
Revit 2014 用のプラグインを作成しています。その機能の 1 つは、ユーザーが縦の列を配置することです。PromptForFamilyInstancePlacement
Revit API では、次のように、私が使用しているものであるメソッドを使用して、ユーザーがファミリ インスタンスを配置できます。
このコードはModify | Place structural column
、Revit アプリケーションでツールを有効にします。希望どおりに機能しますが、ユーザーが垂直柱と傾斜柱を切り替えることはできません。このオプションは、上記のコードを実行する前に設定されていたものに設定されます。
以下を使用して実行する前に、シンボルパラメータを設定しようとしましたPromptForFamilyInstancePlacement
:
しかし、get_Parameter()
上記のリターンnull
。
ユーザーに列を配置するように求める前に、列タイプを垂直列に設定する方法はありますか? また、列の高さを事前に設定する方法はありますか?
c# - テスト済みの GetAnalytical を使用するプログラムがありますが、突然失敗します
(答えについては、以下の私のコメントを参照してください)私は、厳密にテストされた(私が思った)以下を使用するプログラムを持っています:
これは以前は問題なく機能していましたが、現在はプロジェクトで (以前に使用されていたものと同じファミリのビームを使用して) 使用すると、「Curvy.GetEndPoint(0)」を実行しようとすると失敗します。
「Revit で System.NullReferenceException が発生しました: オブジェクト参照がオブジェクトのインスタンスに設定されていません」というエラーが表示されます。
もちろん、これは非常に奇妙です。要素 Source_Beam は確かにビームであり、そこから GetAnalyticalModel を取得する方法を認識しており、コンパイラは喜んで「model.GetCurve()」を許可します。
そのコードを追加した行の例を見たので、エラーにパッチを当てようとして最初に失敗した後、「as AnalyticalModel」を追加したことに注意してください-キャストの有無にかかわらず失敗します。前述したように、このプログラムはまったく同じ梁ファミリを使用したテスト プロジェクトで使用されていました。
私の現実のプロジェクトに GetAnalyticalModel の機能を無効にする設定があるかどうか、またはビームの定義された開始点/終了点を単に取得するためのより良い方法があるかどうか、誰かが知っていますか?
c# - Autodesk Revit Architecture 2014 .NET API C# リンクで部屋の境界要素を見つける
ここに Revit 2014 があります。リンクされたドキュメントの壁を部屋の境界としてマークできることを知っています。はい、それはうまくいきます。ただし、API からは、これらのリンクされたドキュメントのどの壁が自分の部屋の部屋の境界であるかを見つけることができません。どのリンクされたドキュメントが自分の部屋の境界として機能するかはわかりますが、それらのリンクされたドキュメントのどの壁が使用されているかはわかりません。これを見つける方法はありますか?
敬具。