... using Tekla.Structures; using Tekla.Structures.Drawing; using Tekla.Structures.Model; ... Model model; DrawingHandler CurrentDrawingHandler; public MainForm() { model = new Model(); // CurrentDrawingHandler = new DrawingHandler(); // // if (model.GetConnectionStatus() && CurrentDrawingHandler.GetConnectionStatus()) { InitializeComponent(); } else MessageBox.Show("Tekla Structures must be opened!"); }
... DrawingEnumerator drawingsEnum; if (rbSelectedDrawings.Checked) drawingsEnum = CurrentDrawingHandler.GetDrawingSelector().GetSelected(); // , else drawingsEnum = CurrentDrawingHandler.GetDrawings(); // ...
Assembly assembly = model.SelectModelObject(((drawingsEnum.Current as AssemblyDrawing)).AssemblyIdentifier) as Assembly;
Tekla.Structures.Model.Part part = model.SelectModelObject((drawingsEnum.Current as SinglePartDrawing).PartIdentifier) as Tekla.Structures.Model.Part;
int number = 0; assembly.GetReportProperty("MODEL_TOTAL", ref number); // string assembly_pos = ""; assembly.GetReportProperty("ASSEMBLY_POS", ref assembly_pos); // double thickness = 0.0; part.GetReportProperty("PROFILE.WIDTH", ref thickness); // ...
... NameElement = ""; ProjectInfo projectInfo = model.GetProjectInfo(); // - , , .. ModelInfo modelInfo = model.GetInfo(); // - TreeNode parentNode = new TreeNode(); parentNode.Text = projectInfo.ProjectNumber; // - ( ) while (drawingsEnum.MoveNext()) // { if (drawingsEnum.Current is AssemblyDrawing) // { Assembly assembly = model.SelectModelObject(((drawingsEnum.Current as AssemblyDrawing)).AssemblyIdentifier) as Assembly; string assembly_pos = ""; assembly.GetReportProperty("ASSEMBLY_POS", ref assembly_pos); NameElement = assembly_pos; } else if (drawingsEnum.Current is SinglePartDrawing) // { Tekla.Structures.Model.Part part = model.SelectModelObject((drawingsEnum.Current as SinglePartDrawing).PartIdentifier) as Tekla.Structures.Model.Part; string part_pos = ""; part.GetReportProperty("PART_POS", ref part_pos); NameElement = part_pos; } TreeNode drawingNode = new TreeNode(); drawingNode.Tag = drawingsEnum.Current; drawingNode.Text = NameElement; if (drawingsEnum.Current is AssemblyDrawing) AddChildDrawingObjectsToTreeNode(drawingNode, drawing as AssemblyDrawing); // parentNode.Nodes.Add(drawingNode); } ...
private void AddChildDrawingObjectsToTreeNode(TreeNode parentNode, AssemblyDrawing parentDrawing) { Assembly assembly = model.SelectModelObject(parentDrawing.AssemblyIdentifier) as Assembly; Tekla.Structures.Model.Part part = assembly.GetMainPart() as Tekla.Structures.Model.Part; string part_pos = ""; part.GetReportProperty("PART_POS", ref part_pos); TreeNode objectNode = new TreeNode(); objectNode.Tag = part; objectNode.Text = part_pos; parentNode.Nodes.Add(objectNode); ArrayList secondaries = assembly.GetSecondaries(); for (int i = 0; i < secondaries.Count; i++) { Tekla.Structures.Model.ModelObject modelObject = secondaries[i] as Tekla.Structures.Model.ModelObject; part_pos = ""; modelObject.GetReportProperty("PART_POS", ref part_pos); objectNode = new TreeNode(); objectNode.Tag = modelObject; objectNode.Text = part_pos; parentNode.Nodes.Add(objectNode); } }
ModelObjectEnumerator modelObjectEnum = part.GetChildren();
Source: https://habr.com/ru/post/262281/
All Articles