GetFloorConfig メソッド

構文

void GetFloorConfig(long* lAboveFloorNumber, long* lBelowFloorNumber, double* dBaseHeight,
     double* dFloorHeight1F, double* dDefWallThick, VARIANT *vFloorHeight, VARIANT *vCeilingHeight);

(JavaScript用) string GetFloorConfigJS();

階数・階高・壁厚などの設定をまとめて取得します。

パラメータ

lAboveFloorNumber
地上の階数
lBelowFloorNumber
地下の階数
dBaseHeight
基礎高
dFloorHeight1F
1階床高
dDefWallThick
壁厚の既定値
vFloorHeight
階高の配列。下の階から上の階に向かって並びます。型は VT_R8 | VT_ARRAY にしてください。
vCeilingHeight
天井高の配列。下の階から上の階に向かって並びます。型は VT_R8 | VT_ARRAY にしてください。

使用例

// C++ sample
// 間取りオブジェクトへ接続
CMadoriDoc * m_MadoriDoc = new CMadoriDoc();
CLSIDFromProgID (L"MyHomeDesignerMadori.MadoriDoc", &clsid);
GetActiveObject (clsid, NULL, &pUnk);
pUnk->QueryInterface (IID_IDispatch, (void**)(&pDisp));
m_MadoriDoc->AttachDispatch (pDisp);

long lAboveFloorNumber, lBelowFloorNumber;
double dBaseHeight, dFloorHeight1F, dDefWallThick;
VARIANT vFloorHeight, vCeilingHeight;
vFloorHeight.vt = vCeilingHeight.vt = VT_R8 | VT_ARRAY;
vFloorHeight.parray = vCeilingHeight.parray = NULL;

m_MadoriDoc->GetFloorConfig(&lAboveFloorNumber, &lBelowFloorNumber, &dBaseHeight, &dFloorHeight1F,
    &dDefWallThick, &vFloorHeight, &vCeilingHeight);
ULONG uFloor = 0;
if(vFloorHeight.parray)
	uFloor = vFloorHeight.parray->rgsabound[0].cElements;

CString strMsg;
strMsg.Format(TEXT("地上%u階, 地下%u階, 基礎高:%lf, 1階床高:%lf, 壁厚:%lf"),
    lAboveFloorNumber, lBelowFloorNumber, dBaseHeight, dFloorHeight1F, dDefWallThick);
AfxMessageBox(strMsg);
if (uFloor > 0)
{
	double* pFH;
	double* pCH;
	SafeArrayAccessData(vFloorHeight.parray, (void**)&pFH);
	SafeArrayAccessData(vCeilingHeight.parray, (void**)&pCH);
	for (ULONG u = 0; u < uFloor; u++)
	{
		strMsg.Format(TEXT("FloorHeight:%lf, CeilingHeight:%lf"), pFH[u], pCH[u]);
		AfxMessageBox(strMsg);
	}
	SafeArrayUnaccessData(vFloorHeight.parray);
	SafeArrayUnaccessData(vCeilingHeight.parray);
}
if (vFloorHeight.parray) SafeArrayDestroy(vFloorHeight.parray);
if (vCeilingHeight.parray) SafeArrayDestroy(vCeilingHeight.parray);

// JavaScript sample
var doc = new CMadoriDoc();

var data = eval( doc.GetFloorConfigJS() );

var msg = " Result[" + data.Result + "]\r\n";
msg += " Above[" + data.AboveFloorNumber + "]\r\n";
msg += " Below[" + data.BelowFloorNumber + "]\r\n";
msg += " FloorHeight[" + data.FloorHeight + "]\r\n";
msg += " CeilingHeight[" + data.CeilingHeight + "]\r\n";
msg += " BaseHeight[" + data.BaseHeight + "]\r\n";
msg += " FloorHeight1F[" + data.FloorHeight1F + "]\r\n";
msg += " DefWallThick[" + data.DefWallThick + "]";
alert(msg);