今天碰到一个群友问关于
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);
}