1. 使用RebarGroup创建钢筋组,需要把钢筋组的所有属性均赋值完,否则RebarGroup无法生成;
private bool CreateRebarGroup_InTekla(CXML_Object.Mesh_Bar mesh_Bar, TSM.ContourPlate cplate,
double width, double length)
{
TSM.Model model = new TSM.Model();
TSM.RebarGroup rg = new TSM.RebarGroup();
rg.Father = cplate;
rg.Polygons = GetRebarGroupPolygons(mesh_Bar, width, length);
rg.RadiusValues = new ArrayList() { mesh_Bar.RebarDiameter * 2.0 };
var spacings = GetRebarGroupSpacings(mesh_Bar.RebarSpace);
rg.Spacings = spacings;
rg.SpacingType = (spacings.Count > 1
? TSM.BaseRebarGroup.RebarGroupSpacingTypeEnum.SPACING_TYPE_EXACT_SPACINGS
: TSM.BaseRebarGroup.RebarGroupSpacingTypeEnum.SPACING_TYPE_EXACT_SPACE_FLEX_AT_BOTH);
rg.ExcludeType = TSM.BaseRebarGroup.ExcludeTypeEnum.EXCLUDE_TYPE_NONE;
rg.Name = "R";
// 该例子中Class忘记赋值,导致钢筋无法生成
rg.Class = Convert.ToInt32(mesh_Bar.RebarDiameter);
rg.NumberingSeries = new TSM.NumberingSeries("R", 1);
rg.Grade = mesh_Bar.RebarClass;
rg.Size = mesh_Bar.RebarDiameter.ToString().Trim();
rg.StartHook.Shape = TSM.RebarHookData.RebarHookShapeEnum.NO_HOOK;
rg.EndHook.Shape = TSM.RebarHookData.RebarHookShapeEnum.NO_HOOK;
rg.OnPlaneOffsets = new ArrayList() { 0.0 };
rg.FromPlaneOffset = 0.0;
rg.StartFromPlaneOffset = 0.0;
rg.EndFromPlaneOffset = 0.0;
rg.StartPointOffsetType = TSM.Reinforcement.RebarOffsetTypeEnum.OFFSET_TYPE_COVER_THICKNESS;
rg.StartPointOffsetValue = 0.0;
rg.EndPointOffsetType = TSM.Reinforcement.RebarOffsetTypeEnum.OFFSET_TYPE_COVER_THICKNESS;
rg.EndPointOffsetValue = 0.0;
bool result = rg.Insert();
model.CommitChanges();
return result;
}