Revit 2022 の新機能と改良された機能をシリーズでご紹介しております。
今回は、API の新機能と機能向上の内容となりますが、この記事内で全ての API をご紹介すると膨大になってしまうため、ここではその一部をご紹介させて頂きます。
なお、3月に実施された DevDays Online 2021 の Revit API のパートにて、網羅的に把握いただける動画が配信されております。 ADN に加入されている方は、専用サイトにて限定動画(英語)と日本語プレゼンテーション資料(PDF)をダウンロードしていただくことが出来ます。詳しくは、配信済の Autodesk Developer News - 2021年3月 をご確認ください。
天井と床の API
これまで長年にわたり、Revit API では天井(Ceiling オブジェクト)を作成する方法はサポートされておりませんでした。
そのため、Revit 2021 までは、スラブを作成する方法が回避策として提示されておりましたが、その要素は、Floor オブジェクトとなるため、UI 操作で作成できる天井とは大きなギャップがありました。
そして Revit 2022 では、ついに天井を作成する API がサポートされました。
この変更により、スラブに関連する API は廃止予定となり、Floor.Create() メソッドに統一されますのでご注意ください。
壁のプロファイルスケッチ
次のメソッドで、プロファイル スケッチを追加および削除できるようになりました。
- Wall.CreateProfileSketch()
- Wall.RemoveProfileSketch()
Wall.CanHaveProfileSketch() は、壁がプロファイル スケッチをサポートしている場合に True を返します。円弧壁および楕円形の壁は、編集済みのプロファイルの設定をサポートしていない壁ジオメトリです。スケッチを追加すると、SketchEditScope を使用してプロファイル スケッチを編集できます。
スケッチ編集 API
さらに、Revit 2022 では、天井、床、壁、開口部のスケッチを編集できる API が追加されました。
次のプロパティを使用して、要素のスケッチの要素 ID を取得することができます。
- Ceiling.SketchId
- Floor.SketchId
- Opening.SketchId
- Wall.SketchId
指定したスケッチについて、そのスケッチを所有する要素(床、壁など)を Sketch.OwnerId プロパティで取得できます。
スケッチを編集するには、SketchEditScope クラスを使用します。
スケッチ編集セッションがアクティブな間は、スケッチ要素(曲線、寸法、参照面)を追加、削除、修正できます。
セッションが終了すると、スケッチベースの要素が更新されます。
主なメソッドは次のとおりです。
- SketchEditScope コンストラクタ
- 新しい SketchEditScope を作成します。
- Start() メソッド
- 特定のスケッチの編集を開始します。関連付けられたトランザクションも開始します。
- Commit() メソッド
- 変更をコミットします。
- IsSketchEditingSupported() メソッド
- スケッチが SketchEditScope で編集できるかどうかを確認します。
サンプルコードは、こちらのページをご参照ください。
カラー凡例の作成 API
新しい Autodesk.Revit.DB.ColorFillLegend では、特定のビューのカラー凡例要素のプロパティの読み取り、作成、および修正ができるようになりました。
ColorFillLegend.Create() メソッド を使用すると、ビューに新しいカラー凡例を作成できます。
- ColorFillLegend.Create(document, viewId, categoryId, origin)
- ColorFillLegend.GetColumnWidths()
- ColorFillLegend.SetColumnWidths(IList<double> widths)
- ColorFillLegend.ColorFillCategoryId
- ColorFillLegend.Height
- ColorFillLegend.Origin
カラースキーム API
新しい Revit.DB.ColorFillScheme を通じて、平面図ビューと断面図ビューにカラー スキームを適用できるようになりました。Revit.DB.ColorFillSchemeEntry は、カラースキームのエントリを表します。
ビューの特定のカテゴリに紐づくカラースキーム ID を取得・設定するために下記のメソッドが追加されています。
- View.Get/SetColorFillSchemeId()
サンプルコードは、こちらのページ、及び、 Revit 2022 SDK に追加された「ColorFill サンプル」をご参照ください。
クラウドモデル API
ワークシェアされているクラウドモデルの初期化をサポート
現在のモデルを BIM 360 にクラウド モデルとして保存し、ワークシェアされているローカル ファイルを Revit Cloud Worksharing の中央モデルとして BIM 360 Design にアップロードする操作をサポートしました。
- Document.SaveAsCloudModel()
クラウドモデルへの Revit リンク
既存のリンクメソッドがクラウドモデルをサポートするようになりました。
- RevitLinkType.Create(Document, ModelPath, RevitLinkOptions)
- RevitLinkType.LoadFrom(ModelPath, WorksetConfiguration)
- ModelPathUtils.ConvertCloudGUIDsToCloudPath()
モデルの Forge ID を取得する
次のメソッドを使用して、クラウド モデルの Forge ID を取得できるようになりました。
- Document.GetHubId()
- モデルが配置されている場所の ForgeDM ハブ ID
- Document.GetProjectId()
- モデルが配置されている場所の ForgeDM プロジェクト ID
- Document.GetCloudFolderId(bool forceRefresh)
- モデルが配置されている場所の ForgeDM フォルダ ID
- Document.GetCloudModelUrn()
- モデルを特定する ForgeDM Urn。クラウド モデルではないドキュメントの場合は空の文字列を返します。
クラウドモデル API の詳細は、こちらのページ、及び、Revit 2022 SDK に追加された「CloudAPISample」というサンプルをご参照ください。
By Ryuji Ogasawara
コメント