Archicad插件开发-获取楼层信息

一般在项目中我们需要获取AC项目中的楼层设置信息。可用以下方式来获取:

typedef struct tabStruStory
{
    int m_nIndex;
    std::string m_strName;
    double m_dLevel;
    double m_dHeight;
}StruStory;

std::map<int, StruStory> m_mapStoriesInfo;   //楼层数据key 楼层索引

//获取楼层数据
API_StoryInfo    storyInfo;
Int32            i;
err = ACAPI_Environment(APIEnv_GetStorySettingsID, &storyInfo, nullptr);
if (err != NoError) {
    ErrorBeep("APIEnv_GetStorySettingsID", err);
    return err;
}

for (i = storyInfo.lastStory - storyInfo.firstStory; i >= 0; i--)
{
	int nIdex = (*storyInfo.data)[i].index;
	std::string strName = GS::UniString((*storyInfo.data)[i].uName).ToCStr().Get();
	double dLevel = (*storyInfo.data)[i].level;
	double dHeight = (*storyInfo.data)[i + 1].level - (*storyInfo.data)[i].level;

	StruStory story = { nIdex, strName, dLevel, dHeight };
	m_mapStoriesInfo.insert(std::make_pair(nIdex, story));
}
BMKillHandle(reinterpret_cast<GSHandle*> (&storyInfo.data));
 //后续在使用楼层数据时可根据楼层索引获取相应楼层的数据
 //TODO:

同时也可将元素根据不同楼层归类
元素的楼层索引保存于元素header的floorInd中
int nFloorIdx = element.header.floorInd;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值