Today met a group friend asking about setting error of

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

Problem
There must be at least one core layer, i.e. one layer which is not a shell layer.
Found haven’t involved in this area, so researched a bit


The translation of error report is: At least one core layer must exist
This piece pure developer might cause problem because of too little usage of Revit.
ShellLayerType.Interior:Refers to core outer layer
ShellLayerType.Exterior: Refers to core inner layer
CoreLayer:Refers to core layer
See figure below for details:
Image Description
Among them core layer must exist one layer. We can also find through Revit software logic that when core layer has only one layer, Up Down buttons are unselectable state
Image Description
So when we want to manually intervene outer layer inner layer, need to judge total layer number. Return to beginning code, modify to:

1
2
3
4
5
n = i + j ;
if(cs.getLayers()>n+1){
cs.SetNumberOfShellLayers(ShellLayerType.Interior,i);
cs.SetNumberOfShellLayers(ShellLayerType.Exterior,j);
}