構文
BOOL GetFitAttr2(LONG * pItemNo, LONG * pTypeNo);
(JavaScript用) string GetFitAttr2JS();
カレントのオブジェクトが、建具の場合、その種類を取得します。
パラメータ
pItemNo
建具の種類。次のいずれかの値です。
- 0ドア
- 1窓
pTypeNo
建具のタイプ。
ドアの場合、次のいずれかの値です。
ドアの場合、次のいずれかの値です。
- 1    片開き
- 3    両開き
- 10  親子
- 20  片引き戸
- 22  両引き戸
- 23  引違い戸(2枚)
- 24  引違い戸(3枚)
- 25  引違い戸(4枚)
- 30  折戸(片開き)
- 32  折戸(両開き)
- 40  ガレージシャッター
- 41  折戸(片開き6枚)
- 42  折戸(両開き6枚)
- 43  折戸(片開き8枚)
- 44  袖付き片開きドア(片袖)
- 45  袖付き片開きドア(両袖_広)
- 46  袖付き片開きドア(両袖_狭)
- 47  片開きドア(2重扉)
- 48  片引き戸(2枚)
- 49  片引き戸(3枚)
- 50  ガレージシャッター(裏表あり)
- 51  片引き戸(玄関)
- 52  折戸片開き2枚+片開き
- 53  引違い戸(3枚)_4方向
- 54  引違い戸(3枚)_4方向(「47」とは違う)YKKAP用
- 55  両引き戸(4枚)
- 56  p壁開口
- 57  p片引き戸(2枚)_手前奥
- 58  片引き戸(2枚\収まり無し)_手前奥
- 59  円形ドア
- 60  エレベータ(1基)
- 61  エレベータ(2基)
- 69  片引き戸(玄関2)
- 72  引違い戸(3枚)_4方向(「47」とは違う)YKKAP用
- 74  引違い戸(3枚)_前後方向_YA掃窓H01L.m3d用
- 75  片開きドア(ローリング式)
- 78  折戸_両開き8枚
- 80  スイングドア(両開き)
- 81  スイングドア(片開き)
- 82  片引き戸(前後方向)
- 94  エレベータ(1基)
- 95  エレベータ(2基)
- 101DK室内折戸Q09
- 0    その他
窓の場合、次のいずれかの値です。
※タイプとシンボルは必ずしも1対1対応ではありません。
- 1    腰窓(引違2枚)
- 2    縦スベリ窓
- 3    腰窓(引違4枚)
- 4    FIX窓
- 5    掃出し窓(引違2枚)
- 6    掃出し窓・腰窓(引違3枚)
- 7    掃出し窓(引違4枚)
- 8    装飾窓
- 10  出窓 2枚
- 11  折戸(両開き)
- 12  YA掃窓A001.m3d, YA掃窓N05.m3d
- 13  両開き窓
- 14  両開き4枚
- 15  Fix+開き
- 16  Fix+開き
- 17  両開き窓・真ん中Fix
- 18  SN腰窓D03.m3d
- 21  出窓(台形)
- 22  三角の出窓
- 54  3枚
- 60  縦スベリ窓(右)+FIX窓_開き逆
- 61  縦スベリ窓(左)+FIX窓_開き逆
- 62  縦スベリ窓2枚+FIX窓_開き逆
- 63  横スベリ窓+FIX窓
- 64  横スベリ窓2枚+FIX窓
- 65  出窓(ボウウィンドウ)
- 66  回転窓
- 67  出窓(三角形2)
- 68  出窓(三角形3)
- 70  出窓(ボウウィンドウ4枚W=2537)
- 71  出窓(ボウウィンドウ4枚W=1628)
- 73  引違い+FIX窓
- 76  横スベリ窓+FIX窓(「45」と左右逆
- 77  縦スベリ窓+FIX窓
- 79  回転窓(左右前後に開く)
- 83  壁開口(窓タイプ)
- 84  引違い+FIX窓
- 85  全開片引き窓(2枚)
- 86  全開両引き窓(4枚)
- 87  掃き出し窓(引違い3枚)
- 88  コーナー用壁開口左開き(窓タイプ)厨房プランナー用
- 89  コーナー用壁開口右開き(窓タイプ)厨房プランナー用
- 90  腰窓片引+FIX窓+格子
- 91  腰窓両引(3枚)+FIX窓+格子
- 92  掃出し窓片引+FIX窓+格子
- 93  掃出し窓両袖片引(3枚)+FIX窓+格子
- 99  3枚
- 103掃出し2枚 + ルーパー
- 104掃出し2枚 + ルーパー
- 105縦スベリ窓
- 0    その他
戻り値
建具の種類を取得できた場合 0 以外を返します。できなかった場合は 0 を返します。
使用例
// 間取りオブジェクトへ接続
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 lRet = m_MadoriDoc->GetTopObject();
if(lRet == 0) AfxMessageBox(TEXT("何もない"));
while(lRet){
ULONG uType = m_MadoriDoc->GetCurrentObjectType();
short nLayer = m_MadoriDoc->GetCurrentObjectLayer();
CString strMsg;
strMsg.Format(TEXT("[%X]type[%d]layer[%d]"), lRet, uType,nLayer);
AfxMessageBox(strMsg);
switch(uType){
case 8: // door
case 27: // window
{
BSTR szFileName = NULL;
double dXPos, dYPos, dZPos, dRZ, dWidth, dHeight;
unsigned short bReversed;
long nItemNo, nType;
m_MadoriDoc->GetFit(&szFileName, &dXPos, &dYPos, &dZPos,
&dRZ, &dWidth, &dHeight, &bReversed);
m_MadoriDoc->GetFitAttr2(&nItemNo, &nType);
CString strFileName;
AfxBSTR2CString(&strFileName, szFileName);
strMsg.Format(TEXT("%s name[%s]pos[%lf,%lf]z[%lf]r[%lf]w[%lf]h[%lf]rev[%u]item[%d]type[%d]"),
(uType==8)?TEXT("Door"):TEXT("Window"), strFileName, dXPos, dYPos, dZPos,
dRZ, dWidth, dHeight, bReversed, nItemNo, nType);
AfxMessageBox(strMsg);
if(szFileName){
::SysFreeString(szFileName);
}
}
break;
}
lRet = m_MadoriDoc->GetNextObject();
}
// JavaScript sample
var doc = new CMadoriDoc();
var lRet = doc.GetTopObject();
while(lRet){
var uType =doc.GetCurrentObjectType();
alert(uType);
switch (uType){
case 8: // ドア
case 27:// 窓
var data = eval( doc.GetFitAttr2JS() );
var nItemNo = data.ItemNo;
var nType = data.TypeNo;
break;
}
lRet = doc.GetNextObject();
}