チュートリアル データは、[Help] メニュー → [Download Tutorials and Examples…] を選択し、[CityEngine Tutorial] からダウンロードできます。
このチュートリアルでは、CSV ファイルからデータをインポートし、配列を使用して CGA コードで使用する方法を学習します。 CSV ファイルをインポートするには、建物をフロア毎に分割し、各フロアにスペース使用状況を割り当てることができるルールを使用します。CSV ファイルには、使用可能なスペースの使用状況とその色、および床の高さのリストが含まれています。CGA コードでは、CSV ファイルのデータが配列に読み込まれ、Inspector でルールと対応する UI を駆動するために使用されます。
| 演習 | 
|---|
| ・Part 1: CSV ファイルからデータをインポート | 
| ・Part 2: ダッシュボードの作成 | 
例のセットアップ

行を削除する必要がある場合は、各エレメントの横にある灰色の配列インデックスを右クリックして、Delete Row をクリックします。

このルールは、2D の建物フットプリント (左) と 3D のマスモデル (右) に適用されます。この初期状態では、ルールにはデフォルトの使用状況、色、および各フロアに割り当てられたフロアの高さがあります。

// read usages data from csv file 
const usages_filename = "usages.csv" 
const usages_data = readStringTable(usages_filename) 
const numUsages = nRows(usages_data) 
readStringTable 関数は、CSV ファイルデータを読み取り、文字列配列を返し、usages_data に格納します。配列の次元は 15 x 3 で、これはデータファイルの行と列の数に対応します。nRows 関数は、配列の行数を返します。
@Hidden 
attr usages = usages_data[0:numUsages-1,0] 
@Enum(valuesAttr=usages) 
attr floor_usages = stringArray()  

const colors = usages_data[0:numUsages-1,1] 
const floor_heights = floatArray(usages_data[0:numUsages-1,2])  
getUsageColor(usage) = _getUsageColorFromIndex(findFirst(usages, usage)) 
_getUsageColorFromIndex(usageInd) = 
	case usageInd==-1:           default_color 
	else:                        colors[usageInd] 
getFloorHeight(usage) = _getFloorHeightFromIndex(findFirst(usages, usage)) 
_getFloorHeightFromIndex(usageInd) = 
	case usageInd==-1:           default_floor_height 
	else:                        floor_heights[usageInd]  
getFloorHeight(floor_usages[floorInd])  
getUsageColor(floor_usages[floorInd]) 

ルールがインポートされた CSV ファイルのデータを使用して、フロアごとに指定された使用状況に従い、各フロアの高さと色を定めるようになりました。
floor_usages[floorInd] 
CGA ルールファイルを保存して、モデルを再度生成します。
ダッシュボード カードを作成して、使用ごとの総床面積 (GFA) を視覚化します。
a) [Window] メニューから [Dashboard] をクリックします。
b) [Add a Chart] をクリックして、[Bar Chart] を選択します。
c) [Icon & Title] に「GFA by Usage」と入力します。
d) [Report] で [GFA.*.] をクリックして、Unit に「sqm」と入力します。
e) 最後に [Add Card] をクリックします。
