[ブログに戻る](/ja/blog) # BimNv SDK: 複数のシートを持つデータベースを操作する

Vadim Asandiy 2月 18, 2022 [\#BimNv](/ja/blog/tag/bimnv) [\#getting started](/ja/blog/tag/getting-started)

<a class="a2a_button_facebook"></a><a class="a2a_button_twitter"></a><a class="a2a_button_linkedin"></a>

.nwd、.nwc、および.nwfファイルは、複数のシートを含むことができます。シートを操作することは、互いに関連のない複数のファイルを操作することに似ていますが、変更は一箇所に保存されます。このセクションでは、シートを操作する際の基本について説明します。

ファイル内の既存のシートに関する情報を取得するには、.nwd、.nwc、または.nwfファイルデータベースを読み取ります。

```
OdString szSource;//path to file
OdNwDatabasePtr pDb = svcs.readFile(szSource);
```

ファイルを開くと、データベースには現在アクティブなシートがあり、これはファイル内でアクティブとして保存されたシートです。ファイルにシートが1つしかない場合、ファイルを開いた後、このシートがアクティブになります。現在アクティブなシートを取得するには、メソッド OdNwObjectId getActiveSheetId() const を使用します。

```
OdNwObjectId activeSheetId = pDb->getActiveSheetId();
OdNwSheetInfoPtr pActiveSheet = activeSheetId.openObject();
```

ファイルに存在するシートのリストを取得するには、メソッド OdResult OdNwDatabase::getSheets(OdNwObjectIdArray&amp; aSheets) const を使用します。

```
OdNwObjectIdArray aSheets;
pDb->getSheets(aSheets);
```

aSheets 配列の各要素は、シートオブジェクトの OdNwObjectId 要素です。たとえば、インデックス1のシートのデータを取得するには、次のようにします。

```
//Required index must be in the range of the array, otherwise an exception is thrown.
OdNwSheetInfoPtr pSheet = aSheets[1].openObject();
//Get the type of the sheet: 2D or 3D
NwSheetType::Enum sheetType = pSheet->getSheetType();
//Get the ID of the selected sheet info object
OdString newSheetId = pSheet->getSheetId();
```

データベースで選択したシートをアクティブにするには、シートIDを指定してメソッド OdResult OdNwDatabase::setActiveSheet(const OdString&amp; sheetId) を使用します。

```
pDb->setActiveSheet(newSheetId);
```

シートがアクティブ状態に設定されると、データベースはその現在のシートを指します。現在のシートからデータを取得するには、次のメソッドを使用します。

- OdNwObjectId OdNwDatabase::getCurrentViewId() const;
- OdNwObjectId OdNwDatabase::getCurrrentViewClippingPlanesId() const;
- OdResult OdNwDatabase::getSavedViewsElements(OdNwObjectIdArray&amp; aSavedViewsElementIds) const;
- OdNwObjectId OdNwDatabase::getBackgroundElementId() const;
- OdNwObjectId OdNwDatabase::getClashElementId() const;
- OdResult OdNwDatabase::getModels(OdNwObjectIdArray&amp; arrModels) const;
- OdNwObjectId OdNwDatabase::getModelItemRootId() const;
- OdGeMatrix3d OdNwDatabase::getModelTransform() const;
- NwModelUnits::Enum OdNwDatabase::getUnits() const;
- OdResult OdNwDatabase::getLightElements(OdNwObjectIdArray&amp; arrLights) const;
- OdNwGridSystemElementPtr OdNwDatabase::getGridSystemElement() const;
- OdNwObjectId OdNwDatabase::getSelectionSetsElementId() const;
- OdNwObjectId OdNwDatabase::getSavedAnimationElementId() const;

.nwfファイルの場合、メソッド OdNwObjectId OdNwDatabase::addModel(const OdString&amp; sourcePath, OdResult\* pResCode = NULL); を使用して、現在アクティブなシートにモデルを追加することもできます。

## 今すぐ始める

**ODAソフトウェアを60日間無料でお試しください。  
リスクなし、クレジットカード不要。**

[無料で試す](https://www.opendesign.com/ja/free-trial)
