Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
Project-PLATEAU-Admin authored Mar 30, 2023
1 parent b7a859d commit a04c8e7
Show file tree
Hide file tree
Showing 87 changed files with 6,772 additions and 0 deletions.
37 changes: 37 additions & 0 deletions Documentation/docfx.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{
"metadata": [
],
"build": {
"globalMetadata": {
"_appTitle": "Volume-Shape-Generator",
"_appFooter": "Volume-Shape-Generator",
"_disableContribution": true,
"_enableSearch": true
},
"content": [
{
"files": [
"toc.yml",
"index.md"
]
},
{
"src": "manual",
"files": [
"toc.yml",
"*.md"
],
"dest": "manual"
}
],
"resource": [
{
"files": [
"resources/**/*"
]
}
],

"dest": "../docs"
}
}
46 changes: 46 additions & 0 deletions Documentation/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# 令和4年度 民間ユースケース開発 UC22-003「容積率可視化シミュレータ」の成果物(Volume Shape Generator)


![](resources/index/applicationWindow.png)

## ユースケースの概要

近年、マンションの老朽化の急増が問題視される中、維持管理の適正化とともに、建替えの円滑化によるマンション再生の重要性が高まっています。 また、マンション建替円滑化法の施行により老朽化したマンションの建替えルールが整備されているものの、マンション所有者同士の合意形成及び建替えまでの実行プロセスの難易度がハードルとして存在しています。

今回の実証実験では、3D都市モデルの建築物モデルや都市計画モデルを解析し、建物の未消化容積率を直感的でわかりやすく可視化するアプリケーションを開発することにより、マンション所有者及び民間事業者による開発余地の把握を可能とし、建替え・有効活用等の活性化への寄与を目指しています。

## 開発システムの概要
今回の実証実験では、3D 都市モデルの建築物モデル及び道路モデルを活用して、都市計画及び建築基準法に基づく指定容積率によって建築可能な建物の最大ボリューム(以下、容積ボリューム)と既存建築物の差分(余剰容積)を三次元的に分析して可視化するシステムを開発しました。

GitHubリポジトリにて、以下の処理を行うアプリケーションをOSSとして公開しています。

- 建築物情報をJSON形式で受け取り、建築可能な建物の最大ボリュームと既存建築物の差分を3Dモデルを生成します。
- 建築物の3Dモデルデータの生成や、隣地斜線制限などの条件に従いモデルの加工を行う必要があるため、ブラウザ上で動くリアルタイム3Dエンジンの```Babylon.js```を使用しています。
- 生成した3Dモデルから、容積値の算出とGLB形式の書き出しを行います。
- 本アプリケーションでは機能確認用のサンプルを用意しています。SampleのJSON情報から3Dモデルを生成し、容積の数値表示とGLBファイルのダウンロードをテストできます。

Volume Shape Generatorは以下の機能を有したアプリケーションです。

- ボリューム生成処理を行い、生成したボリュームから容積値とGLBファイルを取得する機能
- 上記ボリューム生成、データ取得を呼び出すAPI機能
- API機能を使ってサンプルの建築物データからボリューム生成処理を行い、
生成したボリュームの容積値の表示とGLBファイルのダウンロードを行う画面を表示する機能確認用サンプル

各機能のソースコードは以下のディレクトリに格納されています。
- ボリューム生成機能、API機能のソースコードは```src/service```ディレクトリに格納されています。
- 確認用サンプルのソースコードは```src/sample```ディレクトリに格納されています。
- src下の```index.html``````main.ts``````style.css```ファイルはアプリケーションを実行した際にサンプルが実行されるように記述しています。

## ライセンス
- 本マニュアルの著作権は国土交通省に帰属します。
- 本マニュアルはProject [PLATEAUのサイトポリシー](https://www.mlit.go.jp/plateau/site-policy/)(CCBY4.0および政府標準利用規約2.0)に従い提供されています。

## 注意事項
- 本マニュアルは参考資料として提供しているものです。動作保証は行っておりません。
- 予告なく変更・削除する可能性があります。
- 本マニュアルの利用により生じた損失及び損害等について、国土交通省はいかなる責任も負わないものとします。

## 参考資料 
- [容積率可視化シミュレータ技術検証レポート](https://www.mlit.go.jp/plateau/libraries/technical-reports/)
- [PLATEAU Webサイト Use caseページ「容積率可視化シミュレータ」](https://www.mlit.go.jp/plateau/use-case/uc22-003/)
- [Babylon.js Webサイト](https://www.babylonjs.com/)
58 changes: 58 additions & 0 deletions Documentation/manual/APISpecifications.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# API仕様

## APIの概要

```src/service/api/VolumeShapeGenerator.ts```ファイルの関数を利用し
容積値とGLBファイルの取得、Babylon.jsのScene上のObjectを破棄を行うことができます。

- 容積値とGLBの取得は```getVolumeShapesData```関数を利用します。
- Babylon.jsのScene上のObjectを破棄する場合は```disposeObject```関数を利用します。

## APIの処理の流れ

### getVolumeShapesData関数

関数の引数に渡すデータを用意します。

- 建築可能な建物の最大ボリュームと既存建築物の差分のモデル生成に必要な建物情報のJSONを用意します。
- JSON作成に関しては「生成条件を指定したボリューム生成」のページの「3Dモデルデータ生成に必要な情報」の章を参照ください。
- Babylon.js上で3Dモデルの加工処理を行うため、Babylon.jsのSceneを生成します。

関数を実行します。

- ```src/service/api/VolumeShapeGenerator.ts``````getVolumeShapesData```関数を実行します。
- 建物情報のJSONテキスト、```Babylon.js``````Scene```、容積計算の詳細値、その他、取得するGLBファイルのPrefixやテストモードフラグのパラメータを引数として入力します。
- 容積計算の詳細値、取得するGLBファイルのPrefix、テストモードフラグにはデフォルト値が割り当てられていますので入力しなくても実行可能です。
- 容積計算の詳細値は容積の精度に関わります。値が小さい程詳細な計算を行いますが処理時間に影響します。

APIは実行されると以下の処理を行います。

1: 建築可能な建物の最大ボリュームの3Dモデルデータ生成を開始します。

- 建物形状のモデルデータを生成します。生成するモデルの高さは地域の高さ制限の値にします。
- 各種条件に従い、ブーリアン処理を行うためのモデルを作成し、既に生成した建物モデル対して減算処理を行います。
- 隣地斜線制限に従いブーリアン処理を行うためのモデルを作成し、同様に減算処理を続けていきます。
- 道路斜線制限に従い、同様に減算処理を続けていきます。
- 「階高の各フロア面積合計 ÷ 敷地面積 が 容積率以下」となる条件の最大の高さを算出し、その高さ以上を減算処理で削ります。

以上の処理で、建築可能な建物の最大ボリュームの生成が完了します。

2: 容積形状の体積計算とGLBの作成を行います。

- 建築可能な建物の最大ボリュームのモデルをGLBとして書き出します
- 建築可能な建物の最大ボリュームの容積を取得します。
- 容積は積層の面積 x 積層の間隔となる```volumeCalcDetailVal```の値で求め算出します。
- 建築可能な建物の最大ボリュームと既存建築物の差分データの取得に取りかかります。
- 元のビルの高さの情報に従い、その高さ以下を減算処理で削ります。このモデルが建築可能な建物の最大ボリュームと既存建築物の差分になります。
- 差分のモデルの容積を取得し、GLBを書き出します。
- 最大ボリュームの容積 - 残ったモデルの容積 で建築可能な建物の最大ボリュームと既存建築物の差分
- 元のビルの高さ以下のモデルも生成し、容積の取得とGLB書き出しを行います。

取得した各容積値とGLBをAPI実行の結果として返します。

### disposeObject関数

Babylon.jsのScene上のObjectを破棄します。

- 第一引数にBABYLON.Sceneを入れます。
- 破棄しないObjectがある場合は第二引数のstring配列にObject名を入れます。
Loading

0 comments on commit a04c8e7

Please sign in to comment.