NWD/NWCファイルに保存されているビューポイントにアクセスするには、OdResult OdNwDatabase::getSavedViewsElements(OdNwObjectIdArray& aSavedViewsElementIds) const メソッドを使用します。
//…
OdNwDatabasePtr pDb;
//…
OdNwObjectIdArray aSavedViewElements;
if (pDb->getSavedViewsElements(aSavedViewElements) == eOk)
//…
これらのオブジェクトはすべて、OdNwSavedItemクラスから派生しています。
//…
for (OdInt32 i = 0; i < aSavedViewElements.size(); i++)
{
OdNwSavedItemPtr pSI = aSavedViewElements[i].openObject();
//…
各保存されたアイテムには、共通のプロパティセットがあります。
//…
OdArray<OdNwComment> aComments = pSI->getCommentCollection();
for (OdInt32 i = 0; i < aComments.size(); i++)
{
OdNwComment& comment = aComments[i];
//comment author
OdString sAuthor = comment.getAuthor();
//comment's content
OdString sBody = comment.getBody();
//when this comment was created
tm createDate = comment.getCreateDate();
//is this comment – new, active, approved or resolved
NwCommentStatus::Enum status = comment.getStatus();
}
OdString sSIName = pSI->getDisplayName();
OdGUID guidSI = pSI->getGuID();
OdNwObjectId parentId = pSI->getParentId();
//…
- コメントリスト — OdArray<OdNwComment> getCommentCollection() const メソッドを使用して取得します。
- 保存されたアイテムの名前 — OdString getDisplayName() const メソッドを使用して取得します。
- グローバルGUID — OdGUID getGuID() const メソッドを使用して取得します。
- 現在のアイテムの親 — 保存されたアイテムのルートツリー構造の階層にアクセスするOdNwObjectId getParentId() const メソッドを使用して取得します。
保存されたビューポイントは、以下のいずれかになります。
- ネストされた保存済みアイテムを子として含むフォルダーアイテム:
//… if (pSI->isA() == OdNwSavedFolderItem::desc()) { OdNwSavedFolderItemPtr pFolder = OdNwSavedFolderItem::cast(pSI); OdNwObjectIdArray aChildren; if (pFolder->getChildren(aChildren) == eOk) { for (OdInt32 i = 0; i < aChildren.size(); i++) { OdNwSavedItem pChildSI = aChildren[i].openObject(); //… } //… - アニメーションから切り取られた1フレーム:
//… if (pSI->isA() == OdNwSavedViewpointAnimationCut::desc()) { OdNwSavedViewpointAnimationCutPtr pAnimCut = OdNwSavedViewpointAnimationCut::cast(pSI); double cutDelay = pAnimCut-> getDelay(); } //… - ネストされた保存済みアイテムを子として含むことができるアニメーション:
//… if (pSI->isA() == OdNwSavedViewpointAnimation::desc()) { OdNwSavedViewpointAnimationPtr pAnim = OdNwSavedViewpointAnimation::cast(pSI); OdInt32 loopPlayback = pAnim->getLoopPlayback(); NwAnimationSmoothing::Enum smoothing = pAnim->getSmoothing(); OdNwObjectIdArray aChildren; if (pAnim->getChildren(aChildren) == eOk) { for (OdInt32 i = 0; i < aChildren.size(); i++) { OdNwSavedItem pChildSI = aChildren[i].openObject(); //… } //… - パラメータ、切断平面、赤線データ、および外観オーバーライド情報を含む、取得された保存済みビューポイント:
//… if (pSI->isA() == OdNwSavedViewpoint::desc()) { OdNwSavedViewpointPtr pSavedViewpoint = OdNwSavedViewpoint::cast(pSI); // get viewpoint OdNwViewpoint pView = pSavedViewpoint->getViewpointId().openObject(); // get section data OdNwClipPlaneSetPtr pClipPlane = pSavedViewpoint->getClippingPlanesId().openObject(); // get redline data if saved viewpoints has OdNwObjectIdArray aRedLines; pSavedViewpoint->getRedLineList(aRedLines); // get override appearance info for this saved viewpoint OdNwObjectIdArray aHiddensMIs; pSavedViewpoint->getHiddens(aHiddensMIs); OdNwObjectIdArray aRequiredsMIs; pSavedViewpoint->getRequireds (aRequiredsMIs); OdUInt32 cntOfAppearanceOverride = pSavedViewpoint->getAppearanceOverrideCount(); OdNwObjectIdArray aOverrideAppearanceMIs; OdNwObjectId matId; pSavedViewpoint->getAppearanceOverride(0, aOverrideAppearanceMIs, matId); } //…
保存されたビューポイントを操作する方法を示すコード例は、Nw2Visualizeプラグインのソースコードにあります。
たとえば、NWDファイルから保存されたビューポイントをインポートするには:
- OdVisualizeViewerを実行し、NWD/NWCファイルを開く際に「保存された視点をインポート」にチェックを入れます。

- 赤線なしのすべての保存された視点は、TvCameraオブジェクトとしてデータベース > モデル > サービスモデル > モデル $ODA_TVVIEWER_SAVEDVIEWS> にインポートされます。

Autodesk® Navisworks®からの保存された視点階層は次のとおりです。

- 保存された視点をアクティブビューとして設定するには、Visualize Object Explorerで必要なカメラを選択し、プロパティウィンドウからアクティブビューとして割り当てます。

- NavisworksとOdVisualizeViewerでのビューの比較をご覧ください。
- 内部
Navisworksでのビュー OdVisualizeViewerでのビュー - 後部駆動
Navisworksでのビュー OdVisualizeViewerでのビュー - 概要


- 内部
- 内部
Navisworksでのビュー OdVisualizeViewerでのビュー - 後部駆動
Navisworksでのビュー OdVisualizeViewerでのビュー - 概要


詳細については、当社のドキュメントをご覧ください。https://docs.opendesign.com/bimnv/bimnv_saving_viewpoints.html