Forge Viewer サンプルやデモでは、カンバスに表示するコンテンツの多くが 3D モデルになっています。見た目のインパクトを狙って意図的に扱っているためですが、もちろん 2D 図面を表示させることも可能です。具体的には、Forge Viewer:v7 コード の記事でご紹介した onDocumentLoadSuccess() の記述を 3d から 2d に置き換えていただくだけです。
var viewables = viewerDocument.getRoot().search({
'role': '2d'
});
多くの場合、2D 図面のデザイン ファイル(シード ファイル)として、Revit プロジェクト ファイル(.rvt)や AutoCAD 図面ファイル(.dwg)が利用されています。この場合、1 のデザイン ファイルの中に複数のシート(Revit)やレイアウト(AutoCAD)が含まれているのが一般的です。
Forge Viewer 用に Model Derivative API で SVF 変換すると、すべてのシート/レイアウトに表示用の viewable と呼ばれる表示情報が用意されます。複数のシート/レイアウトは、viewable の配列としてJSON 形式で情報を得ることが出来ます。この中に、シート名、あるいは、レイアウト名も含まれています。Web ページ上で表示切替用のコントロールを用意するような場面では、次のようにシート/レイアウト名の一覧を得ることが出来ます。
viewables.forEach(function (value) {
$('#sheets').append($('<option>').val(index).text(value.data.name));
});
2D 図面を表示した場合には、[設定] >> [外観] >> [2D シートの色] で背景色を白か黒に変更することが出来ます。この設定値は、Viewer3D.setSwapBlackAndWhite() で変更することも出来ます。
もし、AutoCAD で作成した図面が複数の外部参照図面が構成されているようなら、Model Derivative API での変換時に、親図面のファイルと外部参照の図面ファイルを 、1 つの ZIP ファイルにまとめて変換するようにしてください。このとき、POST job endpoint 呼び出し時の Body JSON には、親図面のファイル名と、圧縮ファイルである点を明示的に記述する必要があります。
{
input: {
urn: encodedURN,
rootFilename: "8th floor.dwg",
compressedUrn: true
},
output: {
formats: [
{
type: "svf",
views: ["2d", "3d"]
}
]
}
}
この状態で SVF 変換すると、ZIP 圧縮ファイルの URN で、外部参照した親図面ファイルの各レイアウトを表示させることが出来るようになります。
By Toshiaki Isezaki
コメント
コメントフィードを購読すればディスカッションを追いかけることができます。