51 |
51 |
{
|
52 |
52 |
// Equipment Modeling
|
53 |
53 |
foreach (Equipment equipment in document.Equipments)
|
54 |
|
{
|
55 |
54 |
SymbolModeling(equipment as Symbol, null, null);
|
56 |
|
}
|
57 |
55 |
// LineRun Symbol Modeling
|
58 |
56 |
foreach (LineNumber lineNumber in document.LINENUMBERS)
|
59 |
|
{
|
60 |
57 |
foreach (LineRun run in lineNumber.RUNS)
|
61 |
|
{
|
62 |
58 |
SymbolModelingByRun(run);
|
63 |
|
}
|
64 |
|
}
|
65 |
59 |
// TrimLineRun Symbol Modeling
|
66 |
60 |
foreach (TrimLine trimLine in document.TRIMLINES)
|
67 |
|
{
|
68 |
61 |
foreach (LineRun run in trimLine.RUNS)
|
69 |
|
{
|
70 |
62 |
SymbolModelingByRun(run);
|
71 |
|
}
|
72 |
|
}
|
73 |
63 |
// LineRun Line Modeling
|
74 |
64 |
foreach (LineNumber lineNumber in document.LINENUMBERS)
|
75 |
|
{
|
76 |
65 |
foreach (LineRun run in lineNumber.RUNS)
|
77 |
|
{
|
78 |
66 |
LineModelingByRun(run);
|
79 |
|
}
|
80 |
|
}
|
81 |
67 |
// TrimLineRun Line Modeling
|
82 |
68 |
foreach (TrimLine trimLine in document.TRIMLINES)
|
83 |
|
{
|
84 |
69 |
foreach (LineRun run in trimLine.RUNS)
|
85 |
|
{
|
86 |
70 |
LineModelingByRun(run);
|
87 |
|
}
|
88 |
|
}
|
89 |
71 |
// Branch Line Modeling
|
90 |
72 |
foreach (var item in BranchLines)
|
91 |
|
{
|
92 |
73 |
BranchLineModeling(item);
|
93 |
|
}
|
94 |
74 |
// EndBreak Modeling
|
95 |
75 |
foreach (var item in document.EndBreaks)
|
96 |
|
{
|
97 |
76 |
EndBreakModeling(item);
|
98 |
|
}
|
99 |
77 |
// LineNumber Modeling
|
100 |
78 |
foreach (var item in document.LINENUMBERS)
|
101 |
|
{
|
102 |
79 |
LineNumberModeling(item);
|
103 |
|
}
|
104 |
80 |
// Input Symbol Attribute
|
105 |
81 |
foreach (var item in document.SYMBOLS)
|
106 |
|
{
|
107 |
82 |
InputSymbolAttribute(item);
|
108 |
|
}
|
109 |
83 |
// Input Line Attribute
|
110 |
84 |
|
111 |
85 |
// Input LineNumber Attribute
|
112 |
86 |
|
113 |
87 |
// Note Modeling
|
114 |
|
|
|
88 |
foreach (var item in document.NOTES)
|
|
89 |
NoteModeling(item);
|
115 |
90 |
// Text Modeling
|
116 |
|
|
|
91 |
foreach (var item in document.TEXTINFOS)
|
|
92 |
TextModeling(item);
|
117 |
93 |
// LineRun Line Join
|
118 |
94 |
foreach (LineNumber lineNumber in document.LINENUMBERS)
|
119 |
95 |
{
|
... | ... | |
264 |
240 |
}
|
265 |
241 |
}
|
266 |
242 |
|
267 |
|
private void TestSource()
|
268 |
|
{
|
269 |
|
|
270 |
|
}
|
271 |
|
|
272 |
|
private void SymbolModeling(Symbol symbol, Symbol prevSymbol, object prevItem, bool IsFirst)
|
273 |
|
{
|
274 |
|
if (!string.IsNullOrEmpty(symbol.SPPID.RepresentationId))
|
275 |
|
return;
|
276 |
|
|
277 |
|
LMSymbol _LMSymbol = null;
|
278 |
|
|
279 |
|
string mappingPath = symbol.SPPID.MAPPINGNAME;
|
280 |
|
double x = symbol.SPPID.ORIGINAL_X;
|
281 |
|
double y = symbol.SPPID.ORIGINAL_Y;
|
282 |
|
int mirror = 0;
|
283 |
|
double angle = symbol.ANGLE;
|
284 |
|
LMSymbol _TargetItem = null;
|
285 |
|
|
286 |
|
if (IsFirst)
|
287 |
|
{
|
288 |
|
foreach (var connector in symbol.CONNECTORS)
|
289 |
|
{
|
290 |
|
object item = SPPIDUtil.FindObjectByUID(document, connector.CONNECTEDITEM);
|
291 |
|
if (item != null &&
|
292 |
|
(item.GetType() == typeof(Symbol) || item.GetType() == typeof(Equipment)) &&
|
293 |
|
!IsSameLineNumber(symbol, item))
|
294 |
|
{
|
295 |
|
_TargetItem = dataSource.GetSymbol(((Symbol)item).SPPID.RepresentationId);
|
296 |
|
break;
|
297 |
|
}
|
298 |
|
}
|
299 |
|
}
|
300 |
|
else if (prevItem != null && prevItem.GetType() == typeof(Symbol))
|
301 |
|
_TargetItem = dataSource.GetSymbol(((Symbol)prevItem).SPPID.RepresentationId);
|
302 |
|
|
303 |
|
if (prevSymbol != null)
|
304 |
|
{
|
305 |
|
SlopeType slopeType = SPPIDUtil.CalcSlope(x, y, prevSymbol.SPPID.ORIGINAL_X, prevSymbol.SPPID.ORIGINAL_Y);
|
306 |
|
LMSymbol prevLMSymbol = dataSource.GetSymbol(prevSymbol.SPPID.RepresentationId);
|
307 |
|
double prevX = prevLMSymbol.get_XCoordinate();
|
308 |
|
double prevY = prevLMSymbol.get_YCoordinate();
|
309 |
|
if (slopeType == SlopeType.HORIZONTAL)
|
310 |
|
y = prevY;
|
311 |
|
else if (slopeType == SlopeType.VERTICAL)
|
312 |
|
x = prevX;
|
313 |
|
|
314 |
|
ReleaseCOMObjects(prevLMSymbol);
|
315 |
|
}
|
316 |
|
|
317 |
|
if (_TargetItem == null)
|
318 |
|
_LMSymbol = _placement.PIDPlaceSymbol(mappingPath, x, y, Mirror: mirror, Rotation: angle);
|
319 |
|
else
|
320 |
|
_LMSymbol = _placement.PIDPlaceSymbol(mappingPath, x, y, Mirror: mirror, Rotation: angle, TargetItem: _TargetItem);
|
321 |
|
|
322 |
|
if (_LMSymbol != null)
|
323 |
|
{
|
324 |
|
_LMSymbol.Commit();
|
325 |
|
symbol.SPPID.RepresentationId = _LMSymbol.AsLMRepresentation().Id;
|
326 |
|
}
|
327 |
|
|
328 |
|
if (_TargetItem != null)
|
329 |
|
ReleaseCOMObjects(_TargetItem);
|
330 |
|
|
331 |
|
ReleaseCOMObjects(_LMSymbol);
|
332 |
|
}
|
333 |
|
|
334 |
243 |
private void SymbolModeling(Symbol symbol, Symbol targetSymbol, Symbol prevSymbol)
|
335 |
244 |
{
|
336 |
245 |
if (!string.IsNullOrEmpty(symbol.SPPID.RepresentationId))
|
... | ... | |
610 |
519 |
#region 양쪽이 다른 Branch
|
611 |
520 |
else
|
612 |
521 |
{
|
613 |
|
_LMAItem _LMAItem = _placement.PIDCreateItem(lines[0].SPPID.MAPPINGNAME);
|
614 |
|
PlaceRunInputs placeRunInputs = new PlaceRunInputs();
|
615 |
|
|
616 |
522 |
// Branch 시작 Connector
|
617 |
523 |
if (_StartConnector != null)
|
618 |
|
{
|
619 |
|
LMConnector _EndTargetConnector = null;
|
620 |
|
LMSymbol _EndTargetSymbol = null;
|
621 |
|
// Branch 반대편이 Line
|
622 |
|
foreach (var item in connectorVertices)
|
623 |
|
{
|
624 |
|
if (item.Key == _StartConnector)
|
625 |
|
continue;
|
|
524 |
BranchLineModelingByConnector(branch, _StartConnector, startPoints, true);
|
626 |
525 |
|
627 |
|
if (item.Key.ConnectItem1SymbolID == _StartConnector.ConnectItem2SymbolID)
|
628 |
|
{
|
629 |
|
_EndTargetConnector = item.Key;
|
630 |
|
break;
|
631 |
|
}
|
632 |
|
}
|
633 |
|
// Branch 반대편이 Symbol
|
634 |
|
if (_EndTargetConnector == null)
|
635 |
|
{
|
636 |
|
foreach (var line in lines)
|
637 |
|
{
|
638 |
|
foreach (var connector in line.CONNECTORS)
|
639 |
|
{
|
640 |
|
Symbol symbol = SPPIDUtil.FindObjectByUID(document, connector.CONNECTEDITEM) as Symbol;
|
641 |
|
if (symbol != null)
|
642 |
|
{
|
643 |
|
_EndTargetSymbol = dataSource.GetSymbol(symbol.SPPID.RepresentationId);
|
644 |
|
break;
|
645 |
|
}
|
646 |
|
}
|
647 |
|
}
|
648 |
|
}
|
|
526 |
// Branch 끝 Connector
|
|
527 |
if (_EndConnector != null)
|
|
528 |
BranchLineModelingByConnector(branch, _EndConnector, endPoints, false);
|
|
529 |
}
|
|
530 |
#endregion
|
649 |
531 |
|
650 |
|
_placement.PIDRemovePlacement(_StartConnector.AsLMRepresentation());
|
|
532 |
if (_StartConnector != null)
|
|
533 |
ReleaseCOMObjects(_StartConnector);
|
|
534 |
if (_EndConnector != null)
|
|
535 |
ReleaseCOMObjects(_EndConnector);
|
|
536 |
foreach (var item in connectorVertices)
|
|
537 |
ReleaseCOMObjects(item.Key);
|
|
538 |
}
|
651 |
539 |
|
652 |
|
Dictionary<LMConnector, List<double[]>> startConnectorVertices = GetPipeRunVertices(branch.Item2.SPPID.ModelItemId);
|
653 |
|
LMConnector _StartTargetConnector = FindTargetLMConnector(startConnectorVertices, startPoints[0][0], startPoints[0][1], startPoints[1][0], startPoints[1][1]);
|
|
540 |
private void BranchLineModelingByConnector(Tuple<string, Line, Line> branch, LMConnector _Connector, List<double[]> points, bool IsStart)
|
|
541 |
{
|
|
542 |
List<Line> lines = SPPIDUtil.FindLinesByModelId(document, branch.Item1);
|
|
543 |
Dictionary<LMConnector, List<double[]>> connectorVertices = GetPipeRunVertices(branch.Item1);
|
|
544 |
LMConnector _SameRunTargetConnector = null;
|
|
545 |
LMSymbol _SameRunTargetSymbol = null;
|
|
546 |
Dictionary<LMConnector, List<double[]>> branchConnectorVertices = null;
|
|
547 |
LMConnector _BranchTargetConnector = null;
|
|
548 |
PlaceRunInputs placeRunInputs = new PlaceRunInputs();
|
654 |
549 |
|
655 |
|
for (int i = 0; i < startPoints.Count; i++)
|
656 |
|
{
|
657 |
|
double[] point = startPoints[i];
|
658 |
|
if (i == 0)
|
659 |
|
placeRunInputs.AddConnectorTarget(_StartTargetConnector, point[0], point[1]);
|
660 |
|
else if (i == startPoints.Count - 1)
|
661 |
|
{
|
662 |
|
if (_EndTargetConnector != null)
|
663 |
|
placeRunInputs.AddConnectorTarget(_EndTargetConnector, point[0], point[1]);
|
664 |
|
else if (_EndTargetSymbol != null)
|
665 |
|
placeRunInputs.AddSymbolTarget(_EndTargetSymbol, point[0], point[1]);
|
666 |
|
else
|
667 |
|
placeRunInputs.AddPoint(point[0], point[1]);
|
668 |
|
}
|
669 |
|
else
|
670 |
|
placeRunInputs.AddPoint(point[0], point[1]);
|
671 |
|
}
|
|
550 |
// 같은 Line Run의 Connector 찾기
|
|
551 |
foreach (var item in connectorVertices)
|
|
552 |
{
|
|
553 |
if (item.Key == _Connector)
|
|
554 |
continue;
|
672 |
555 |
|
673 |
|
LMConnector _LMConnector = _placement.PIDPlaceRun(_LMAItem, placeRunInputs);
|
674 |
|
if (_LMConnector != null )
|
|
556 |
if (IsStart &&
|
|
557 |
!DBNull.Value.Equals(item.Key.ConnectItem1SymbolID) &&
|
|
558 |
!DBNull.Value.Equals(_Connector.ConnectItem2SymbolID)&&
|
|
559 |
item.Key.ConnectItem1SymbolID == _Connector.ConnectItem2SymbolID)
|
|
560 |
{
|
|
561 |
_SameRunTargetConnector = item.Key;
|
|
562 |
break;
|
|
563 |
}
|
|
564 |
else if (!IsStart &&
|
|
565 |
!DBNull.Value.Equals(item.Key.ConnectItem2SymbolID) &&
|
|
566 |
!DBNull.Value.Equals(_Connector.ConnectItem1SymbolID) &&
|
|
567 |
item.Key.ConnectItem2SymbolID == _Connector.ConnectItem1SymbolID)
|
|
568 |
{
|
|
569 |
_SameRunTargetConnector = item.Key;
|
|
570 |
break;
|
|
571 |
}
|
|
572 |
}
|
|
573 |
|
|
574 |
// Branch 반대편이 Symbol
|
|
575 |
if (_SameRunTargetConnector == null)
|
|
576 |
{
|
|
577 |
foreach (var line in lines)
|
|
578 |
{
|
|
579 |
foreach (var connector in line.CONNECTORS)
|
675 |
580 |
{
|
676 |
|
if (_EndTargetConnector != null)
|
|
581 |
Symbol symbol = SPPIDUtil.FindObjectByUID(document, connector.CONNECTEDITEM) as Symbol;
|
|
582 |
if (symbol != null)
|
677 |
583 |
{
|
678 |
|
JoinPipeRun(_LMConnector.ModelItemID, _EndTargetConnector.ModelItemID);
|
679 |
|
}
|
680 |
|
else
|
681 |
|
{
|
682 |
|
foreach (var item in lines)
|
683 |
|
item.SPPID.ModelItemId = _LMConnector.ModelItemID;
|
|
584 |
_SameRunTargetSymbol = dataSource.GetSymbol(symbol.SPPID.RepresentationId);
|
|
585 |
break;
|
684 |
586 |
}
|
685 |
|
|
686 |
|
_LMConnector.Commit();
|
687 |
|
ReleaseCOMObjects(_LMConnector);
|
688 |
587 |
}
|
|
588 |
}
|
|
589 |
}
|
689 |
590 |
|
690 |
|
if (_EndTargetConnector != null)
|
691 |
|
ReleaseCOMObjects(_EndTargetConnector);
|
692 |
|
if (_EndTargetSymbol != null)
|
693 |
|
ReleaseCOMObjects(_EndTargetSymbol);
|
694 |
|
foreach (var item in startConnectorVertices)
|
695 |
|
ReleaseCOMObjects(item.Key);
|
|
591 |
// 기존 Connector 제거
|
|
592 |
_placement.PIDRemovePlacement(_Connector.AsLMRepresentation());
|
|
593 |
|
|
594 |
// 시작 Connector일 경우 첫 Point가 TargetConnector를 찾아야함
|
|
595 |
if (IsStart)
|
|
596 |
{
|
|
597 |
branchConnectorVertices = GetPipeRunVertices(branch.Item2.SPPID.ModelItemId);
|
|
598 |
_BranchTargetConnector = FindTargetLMConnector(branchConnectorVertices, points[0][0], points[0][1], points[1][0], points[1][1]);
|
|
599 |
}
|
|
600 |
// 끝 Conenctor일 경우 마지막 Point가 TargetConnector를 찾아야함
|
|
601 |
else
|
|
602 |
{
|
|
603 |
branchConnectorVertices = GetPipeRunVertices(branch.Item3.SPPID.ModelItemId);
|
|
604 |
_BranchTargetConnector = FindTargetLMConnector(branchConnectorVertices,
|
|
605 |
points[points.Count - 1][0],
|
|
606 |
points[points.Count - 1][1],
|
|
607 |
points[points.Count - 2][0],
|
|
608 |
points[points.Count - 2][1]);
|
|
609 |
}
|
696 |
610 |
|
697 |
|
}
|
698 |
|
// Branch 끝 Connector
|
699 |
|
if (_EndConnector != null)
|
|
611 |
for (int i = 0; i < points.Count; i++)
|
|
612 |
{
|
|
613 |
double[] point = points[i];
|
|
614 |
if (i == 0)
|
700 |
615 |
{
|
701 |
|
LMConnector _StartTargetConnector = null;
|
702 |
|
LMSymbol _StartTargetSymbol = null;
|
703 |
|
// Branch 반대편이 Line
|
704 |
|
foreach (var item in connectorVertices)
|
|
616 |
if (IsStart)
|
705 |
617 |
{
|
706 |
|
if (item.Key == _EndConnector)
|
707 |
|
continue;
|
708 |
|
|
709 |
|
if (item.Key.ConnectItem2SymbolID == _EndConnector.ConnectItem1SymbolID)
|
710 |
|
{
|
711 |
|
_StartTargetConnector = item.Key;
|
712 |
|
break;
|
713 |
|
}
|
|
618 |
placeRunInputs.AddConnectorTarget(_BranchTargetConnector, point[0], point[1]);
|
714 |
619 |
}
|
715 |
|
// Branch 반대편이 Symbol
|
716 |
|
if (_StartTargetConnector == null)
|
|
620 |
else
|
717 |
621 |
{
|
718 |
|
foreach (var line in lines)
|
719 |
|
{
|
720 |
|
foreach (var connector in line.CONNECTORS)
|
721 |
|
{
|
722 |
|
Symbol symbol = SPPIDUtil.FindObjectByUID(document, connector.CONNECTEDITEM) as Symbol;
|
723 |
|
if (symbol != null)
|
724 |
|
{
|
725 |
|
_StartTargetSymbol = dataSource.GetSymbol(symbol.SPPID.RepresentationId);
|
726 |
|
break;
|
727 |
|
}
|
728 |
|
}
|
729 |
|
}
|
|
622 |
if (_SameRunTargetConnector != null)
|
|
623 |
placeRunInputs.AddConnectorTarget(_SameRunTargetConnector, point[0], point[1]);
|
|
624 |
else if (_SameRunTargetConnector != null)
|
|
625 |
placeRunInputs.AddSymbolTarget(_SameRunTargetSymbol, point[0], point[1]);
|
|
626 |
else
|
|
627 |
placeRunInputs.AddPoint(point[0], point[1]);
|
730 |
628 |
}
|
731 |
|
|
732 |
|
_placement.PIDRemovePlacement(_EndConnector.AsLMRepresentation());
|
733 |
|
|
734 |
|
Dictionary<LMConnector, List<double[]>> startConnectorVertices = GetPipeRunVertices(branch.Item3.SPPID.ModelItemId);
|
735 |
|
LMConnector _EndTargetConnector = FindTargetLMConnector(startConnectorVertices,
|
736 |
|
endPoints[endPoints.Count - 1][0],
|
737 |
|
endPoints[endPoints.Count - 1][1],
|
738 |
|
endPoints[endPoints.Count - 2][0],
|
739 |
|
endPoints[endPoints.Count - 2][1]);
|
740 |
|
|
741 |
|
for (int i = 0; i < endPoints.Count; i++)
|
|
629 |
}
|
|
630 |
else if (i == points.Count - 1)
|
|
631 |
{
|
|
632 |
if (IsStart)
|
742 |
633 |
{
|
743 |
|
double[] point = endPoints[i];
|
744 |
|
if (i == 0)
|
745 |
|
{
|
746 |
|
if (_StartTargetConnector != null)
|
747 |
|
placeRunInputs.AddConnectorTarget(_StartTargetConnector, point[0], point[1]);
|
748 |
|
else if (_StartTargetSymbol != null)
|
749 |
|
placeRunInputs.AddSymbolTarget(_StartTargetSymbol, point[0], point[1]);
|
750 |
|
else
|
751 |
|
placeRunInputs.AddPoint(point[0], point[1]);
|
752 |
|
}
|
753 |
|
else if (i == endPoints.Count - 1)
|
754 |
|
{
|
755 |
|
placeRunInputs.AddConnectorTarget(_EndTargetConnector, point[0], point[1]);
|
756 |
|
}
|
|
634 |
if (_SameRunTargetConnector != null)
|
|
635 |
placeRunInputs.AddConnectorTarget(_SameRunTargetConnector, point[0], point[1]);
|
|
636 |
else if (_SameRunTargetSymbol != null)
|
|
637 |
placeRunInputs.AddSymbolTarget(_SameRunTargetSymbol, point[0], point[1]);
|
757 |
638 |
else
|
758 |
639 |
placeRunInputs.AddPoint(point[0], point[1]);
|
759 |
640 |
}
|
760 |
|
|
761 |
|
LMConnector _LMConnector = _placement.PIDPlaceRun(_LMAItem, placeRunInputs);
|
762 |
|
if (_LMConnector != null)
|
|
641 |
else
|
763 |
642 |
{
|
764 |
|
if (_StartTargetConnector != null)
|
765 |
|
{
|
766 |
|
JoinPipeRun(_LMConnector.ModelItemID, _StartTargetConnector.ModelItemID);
|
767 |
|
}
|
768 |
|
else
|
769 |
|
{
|
770 |
|
foreach (var item in lines)
|
771 |
|
item.SPPID.ModelItemId = _LMConnector.ModelItemID;
|
772 |
|
}
|
773 |
|
|
774 |
|
_LMConnector.Commit();
|
775 |
|
ReleaseCOMObjects(_LMConnector);
|
|
643 |
placeRunInputs.AddConnectorTarget(_BranchTargetConnector, point[0], point[1]);
|
776 |
644 |
}
|
|
645 |
}
|
|
646 |
else
|
|
647 |
placeRunInputs.AddPoint(point[0], point[1]);
|
|
648 |
}
|
|
649 |
_LMAItem _LMAItem = _placement.PIDCreateItem(lines[0].SPPID.MAPPINGNAME);
|
|
650 |
LMConnector _LMConnector = _placement.PIDPlaceRun(_LMAItem, placeRunInputs);
|
777 |
651 |
|
778 |
|
if (_StartTargetConnector != null)
|
779 |
|
ReleaseCOMObjects(_StartTargetConnector);
|
780 |
|
if (_StartTargetSymbol != null)
|
781 |
|
ReleaseCOMObjects(_StartTargetSymbol);
|
782 |
|
foreach (var item in startConnectorVertices)
|
783 |
|
ReleaseCOMObjects(item.Key);
|
|
652 |
if (_LMConnector != null)
|
|
653 |
{
|
|
654 |
if (_SameRunTargetConnector != null)
|
|
655 |
{
|
|
656 |
JoinPipeRun(_LMConnector.ModelItemID, _SameRunTargetConnector.ModelItemID);
|
|
657 |
}
|
|
658 |
else
|
|
659 |
{
|
|
660 |
foreach (var item in lines)
|
|
661 |
item.SPPID.ModelItemId = _LMConnector.ModelItemID;
|
784 |
662 |
}
|
785 |
663 |
|
786 |
|
ReleaseCOMObjects(_LMAItem);
|
787 |
|
ReleaseCOMObjects(placeRunInputs);
|
|
664 |
_LMConnector.Commit();
|
|
665 |
ReleaseCOMObjects(_LMConnector);
|
788 |
666 |
}
|
789 |
|
#endregion
|
790 |
667 |
|
791 |
|
if (_StartConnector != null)
|
792 |
|
ReleaseCOMObjects(_StartConnector);
|
793 |
|
if (_EndConnector != null)
|
794 |
|
ReleaseCOMObjects(_EndConnector);
|
|
668 |
ReleaseCOMObjects(placeRunInputs);
|
|
669 |
ReleaseCOMObjects(_LMAItem);
|
|
670 |
if (_BranchTargetConnector != null)
|
|
671 |
ReleaseCOMObjects(_BranchTargetConnector);
|
|
672 |
if (_SameRunTargetConnector != null)
|
|
673 |
ReleaseCOMObjects(_SameRunTargetConnector);
|
|
674 |
if (_SameRunTargetSymbol != null)
|
|
675 |
ReleaseCOMObjects(_SameRunTargetSymbol);
|
795 |
676 |
foreach (var item in connectorVertices)
|
796 |
677 |
ReleaseCOMObjects(item.Key);
|
|
678 |
foreach (var item in branchConnectorVertices)
|
|
679 |
ReleaseCOMObjects(item.Key);
|
797 |
680 |
}
|
798 |
681 |
|
799 |
682 |
private void EndBreakModeling(EndBreak endBreak)
|
... | ... | |
1090 |
973 |
}
|
1091 |
974 |
}
|
1092 |
975 |
|
1093 |
|
|
1094 |
|
|
1095 |
976 |
private void TextModeling(Text text)
|
1096 |
977 |
{
|
|
978 |
LMSymbol _LMSymbol = null;
|
|
979 |
LMItemNote _LMItemNote = null;
|
|
980 |
LMAAttribute _LMAAttribute = null;
|
|
981 |
|
|
982 |
try
|
|
983 |
{
|
|
984 |
_LMSymbol = _placement.PIDPlaceSymbol(text.SPPID.MAPPINGNAME, text.SPPID.ORIGINAL_X, text.SPPID.ORIGINAL_Y);
|
|
985 |
_LMSymbol.Commit();
|
|
986 |
_LMItemNote = _placement.PIDDataSource.GetItemNote(_LMSymbol.ModelItemID);
|
|
987 |
_LMItemNote.Commit();
|
|
988 |
_LMAAttribute = _LMItemNote.Attributes["Note.Body"];
|
|
989 |
_LMAAttribute.set_Value(text.VALUE);
|
|
990 |
_LMItemNote.Commit();
|
|
991 |
}
|
|
992 |
catch (Exception ex)
|
|
993 |
{
|
1097 |
994 |
|
|
995 |
}
|
|
996 |
finally
|
|
997 |
{
|
|
998 |
if (_LMAAttribute != null)
|
|
999 |
ReleaseCOMObjects(_LMAAttribute);
|
|
1000 |
if (_LMItemNote != null)
|
|
1001 |
ReleaseCOMObjects(_LMItemNote);
|
|
1002 |
if (_LMSymbol != null)
|
|
1003 |
ReleaseCOMObjects(_LMSymbol);
|
|
1004 |
}
|
1098 |
1005 |
}
|
1099 |
1006 |
|
1100 |
1007 |
private void NoteModeling(Note note)
|
1101 |
1008 |
{
|
|
1009 |
LMSymbol _LMSymbol = null;
|
|
1010 |
LMItemNote _LMItemNote = null;
|
|
1011 |
LMAAttribute _LMAAttribute = null;
|
|
1012 |
|
|
1013 |
try
|
|
1014 |
{
|
|
1015 |
_LMSymbol = _placement.PIDPlaceSymbol(note.SPPID.MAPPINGNAME, note.SPPID.ORIGINAL_X, note.SPPID.ORIGINAL_Y);
|
|
1016 |
_LMSymbol.Commit();
|
|
1017 |
_LMItemNote = _placement.PIDDataSource.GetItemNote(_LMSymbol.ModelItemID);
|
|
1018 |
_LMItemNote.Commit();
|
|
1019 |
_LMAAttribute = _LMItemNote.Attributes["Note.Body"];
|
|
1020 |
_LMAAttribute.set_Value(note.VALUE);
|
|
1021 |
_LMItemNote.Commit();
|
|
1022 |
}
|
|
1023 |
catch (Exception ex)
|
|
1024 |
{
|
1102 |
1025 |
|
|
1026 |
}
|
|
1027 |
finally
|
|
1028 |
{
|
|
1029 |
if (_LMAAttribute != null)
|
|
1030 |
ReleaseCOMObjects(_LMAAttribute);
|
|
1031 |
if (_LMItemNote != null)
|
|
1032 |
ReleaseCOMObjects(_LMItemNote);
|
|
1033 |
if (_LMSymbol != null)
|
|
1034 |
ReleaseCOMObjects(_LMSymbol);
|
|
1035 |
}
|
|
1036 |
|
1103 |
1037 |
}
|
1104 |
1038 |
|
1105 |
1039 |
public void ReleaseCOMObjects(params object[] objVars)
|