Revit中ComputerStructure中的ShellType 报错:Too many shell layers: there must be at least one core layer.

今天碰到一个群友问关于

cs.SetNumberOfShellLayers(ShellLayerType.Interior,2);
                    cs.SetNumberOfShellLayers(ShellLayerType.Exterior,1);

设置出错的问题
There must be at least one core layer, i.e. one layer which is not a shell layer.
发现这块没有涉及过,便研究了一下


报错的翻译为:需要存在至少一个核心层
这块单纯的开发人员可能因为使用Revit过少导致的问题。
ShellLayerType.Interior:指核心外层
ShellLayerType.Exterior:指核心内层
CoreLayer:指核心层
详下图:
在这里插入图片描述
其中核心层必须存在一层,我们通过Revit软件逻辑也可以发现当核心层只有一层是,向上向下按钮为不可选状态
在这里插入图片描述
所以当我们想人工干预外层内层时,需要对总层数进行判定,回到最开始的代码,修改为:

	n = i + j ;
	if(cs.getLayers()>n+1){
					cs.SetNumberOfShellLayers(ShellLayerType.Interior,i);
                    cs.SetNumberOfShellLayers(ShellLayerType.Exterior,j);
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值