프로젝트

일반

사용자정보

통계
| 개정판:

hytos / DTI_PID / SPPIDAutoModeling / ItemObject.cs @ 21be5063

이력 | 보기 | 이력해설 | 다운로드 (22.3 KB)

1
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
using System.Text;
5
using System.Threading.Tasks;
6
using Llama;
7
using Plaice;
8

    
9
namespace SPPIDAutoModeling
10
{
11
    public enum SPPID_ITEM_TYPE
12
    {
13
        SYMBOL = 1,
14
        LINE = 2,
15
        LABEL = 3,
16
        TEXT = 4,
17
    }
18

    
19
    public class SymbolChild
20
    {
21
        private string _Arrow;
22
        private string _Name;
23
        private int _Index;
24
        private string _SPPIDMAPPINGNAME;
25
        private object _SPPID_ITEM_OBJECT;
26

    
27
        public string Arrow { get => _Arrow; set => _Arrow = value; }
28
        public string Name { get => _Name; set => _Name = value; }
29
        public int Index { get => _Index; set => _Index = value; }
30
        public string SPPIDMAPPINGNAME { get => _SPPIDMAPPINGNAME; set => _SPPIDMAPPINGNAME = value; }
31
        public object SPPID_ITEM_OBJECT { get => _SPPID_ITEM_OBJECT; set => _SPPID_ITEM_OBJECT = value; }
32
    }
33

    
34

    
35
    public class Group
36
    {
37
        private List<Symbol> _SYMBOLS = new List<Symbol>();
38
        private List<Line> _LINES = new List<Line>();
39

    
40
        public List<Symbol> SYMBOLS { get => _SYMBOLS; set => _SYMBOLS = value; }
41
        public List<Line> LINES { get => _LINES; set => _LINES = value; }
42
    }
43

    
44
    
45

    
46
    public class Drawing
47
    {
48
        #region Property
49
        private string _DWGNAME;
50
        private string _SIZE;
51
        private string _UNIT;
52
        private List<Symbol> _SYMBOLS = new List<Symbol>();
53
        private List<Line> _LINES = new List<Line>();
54
        private List<LineNumber> _LINENUMBERS = new List<LineNumber>();
55
        private List<Text> _TEXTS = new List<Text>();
56
        private Dictionary<string, List<PointdInfo>> _PipeRunPoint = new Dictionary<string, List<PointdInfo>>();
57
        private List<Group> _GROUP = new List<Group>();
58

    
59
        private double _WIDTH;
60
        private double _HEIGHT;
61

    
62
        public string DWGNAME { get => _DWGNAME; set => _DWGNAME = value; }
63
        public string SIZE
64
        {
65
            get { return _SIZE; }
66
            set
67
            {
68
                _SIZE = value;
69
                SPPIDUtill.ConvertPointBystring(_SIZE, ref _WIDTH, ref _HEIGHT);
70
            }
71
        }
72
        public string UNIT { get => _UNIT; set => _UNIT = value; }
73
        public Dictionary<string, List<PointdInfo>> PipeRunPoint { get => _PipeRunPoint; set => _PipeRunPoint = value; }
74
        public List<Symbol> SYMBOLS { get => _SYMBOLS; set => _SYMBOLS = value; }
75
        public List<Line> LINES { get => _LINES; set => _LINES = value; }
76
        public List<LineNumber> LINENUMBERS { get => _LINENUMBERS; set => _LINENUMBERS = value; }
77
        public List<Text> TEXTS { get => _TEXTS; set => _TEXTS = value; }
78
        public double WIDTH { get => _WIDTH; set => _WIDTH = value; }
79
        public double HEIGHT { get => _HEIGHT; set => _HEIGHT = value; }
80
        public List<Group> GROUP { get => _GROUP; set => _GROUP = value; }
81
        #endregion
82
    }
83
    public class PointdInfo
84
    {
85
        public enum PointType
86
        {
87
            None = 0,
88
            Run = 1,
89
            Branch = 2,
90
        }
91
        #region Property
92
        private Pointd _Pointd;
93
        private PointType _Type;
94
        private string _SP_ID;
95

    
96
        public Pointd Pointd { get => _Pointd; set => _Pointd = value; }
97
        public PointType Type { get => _Type; set => _Type = value; }
98
        public string SP_ID { get => _SP_ID; set => _SP_ID = value; }
99
        #endregion
100
    }
101
    public struct Pointd
102
    {
103
        public Pointd(double x, double y)
104
        {
105
            X = x;
106
            Y = y;
107
        }
108
        public double X;
109
        public double Y;
110
    }
111

    
112

    
113
    public abstract class SPPID_ITEM
114
    {
115
        #region Property
116
        private string _UID;
117
        private string _TYPE;
118
        private string _NAME;
119
        private SPPID_ITEM_TYPE _SPPID_TYPE ;
120
        private string _SPPIDMAPPINGNAME;
121
        private bool _GROUPING = true;
122
        private string _AREA;
123
        private List<Attribute> _ATTRIBUTES = new List<Attribute>();
124
        private object _SPPID_ITEM_OBJECT;
125

    
126
        public string UID { get => _UID; set => _UID = value; }
127
        public string TYPE { get => _TYPE; set => _TYPE = value; }
128
        public string NAME { get => _NAME; set => _NAME = value; }
129
        public string SPPIDMAPPINGNAME { get => _SPPIDMAPPINGNAME; set => _SPPIDMAPPINGNAME = value; }
130
        public bool GROUPING { get => _GROUPING; set => _GROUPING = value; }
131
        public string AREA { get => _AREA; set => _AREA = value; }
132
        public object SPPID_ITEM_OBJECT { get => _SPPID_ITEM_OBJECT; set => _SPPID_ITEM_OBJECT = value; }
133
        public SPPID_ITEM_TYPE SPPID_TYPE { get => _SPPID_TYPE; set => _SPPID_TYPE = value; }
134
        public List<Attribute> ATTRIBUTES { get => _ATTRIBUTES; set => _ATTRIBUTES = value; }
135
        #endregion
136

    
137
        public abstract void Modeling();
138
        public abstract void AfterSetting();
139
        public abstract void SetAttribute();
140
    }
141

    
142
    public class Symbol : SPPID_ITEM
143
    {
144
        #region Property
145
        private string _ORIGINALPOINT;
146
        private List<Connector> _CONNECTORS = new List<Connector>();
147
        private string _CONNECTIONPOINT;
148
        private string _LOCATION;
149
        private string _SIZE;
150
        private double _ANGLE;
151
        private string _PARENT;
152
        private string _CHILD;
153
        private List<SymbolChild> _CHILD_LIST = new List<SymbolChild>();
154
        private string _HASINSTRUMENTLABEL;
155
        private string _CURRENTPOINTMODEINDEX;
156
        private bool _DRAWCHECKED;
157
        private double _LOCATION_X;
158
        private double _LOCATION_Y;
159
        private int _MIRROR = 0;
160

    
161
        public string ORIGINALPOINT { get => _ORIGINALPOINT; set => _ORIGINALPOINT = value; }
162
        public string LOCATION { get => _LOCATION; set => _LOCATION = value; }
163
        public string SIZE { get => _SIZE; set => _SIZE = value; }
164
        public double ANGLE { get => _ANGLE; set => _ANGLE = value; }
165
        public string PARENT { get => _PARENT; set => _PARENT = value; }
166
        public string CHILD { get => _CHILD; set => _CHILD = value; }
167
        public string HASINSTRUMENTLABEL { get => _HASINSTRUMENTLABEL; set => _HASINSTRUMENTLABEL = value; }
168
        public string CURRENTPOINTMODEINDEX { get => _CURRENTPOINTMODEINDEX; set => _CURRENTPOINTMODEINDEX = value; }
169
        public bool DRAWCHECKED { get => _DRAWCHECKED; set => _DRAWCHECKED = value; }
170
        public double LOCATION_X { get => _LOCATION_X; set => _LOCATION_X = value; }
171
        public double LOCATION_Y { get => _LOCATION_Y; set => _LOCATION_Y = value; }
172
        public int MIRROR { get => _MIRROR; set => _MIRROR = value; }
173
        public List<Connector> CONNECTORS { get => _CONNECTORS; set => _CONNECTORS = value; }
174
        public string CONNECTIONPOINT { get => _CONNECTIONPOINT; set => _CONNECTIONPOINT = value; }
175
        public List<SymbolChild> CHILD_LIST { get => _CHILD_LIST; set => _CHILD_LIST = value; }
176
        #endregion
177
        public override void AfterSetting()
178
        {
179
            // SPPIDMAPPINGNAME Setting
180
            SPPIDMAPPINGNAME = SPPIDUtill.GetSPPIDMappingName(NAME);
181
            // End
182

    
183
            // Angle Setting
184
            if (ANGLE == 1.57)
185
                ANGLE = 90 * Math.PI / 180;
186
            else if (ANGLE == 3.14)
187
                ANGLE = Math.PI;
188
            else if (ANGLE == 4.71)
189
                ANGLE = 270 * Math.PI / 180;
190
            else
191
                ANGLE = 0;
192
            // End
193

    
194
            // Location Setting
195
            SPPIDUtill.ConvertPointBystring(_ORIGINALPOINT, ref _LOCATION_X, ref _LOCATION_Y);
196
            SPPIDUtill.ConvertSPPIDPoint(ref _LOCATION_X, ref _LOCATION_Y, AutoModeling.DrawingItem.WIDTH, AutoModeling.DrawingItem.HEIGHT);
197
            // End
198

    
199
            // SPPID Type Setting
200
            SPPID_TYPE = SPPID_ITEM_TYPE.SYMBOL;
201
            // End
202

    
203
            // Child Setting
204
            if (!string.IsNullOrEmpty(CHILD) && CHILD != "None")
205
            {
206
                string[] childArray = CHILD.Split(new char[] { ',' });
207
                for (int i = 0; i < childArray.Length; i++)
208
                {
209
                    SymbolChild child = new SymbolChild()
210
                    {
211
                        Arrow = childArray[0],
212
                        Name = childArray[1],
213
                        Index = i
214
                    };
215
                    child.SPPIDMAPPINGNAME = SPPIDUtill.GetSPPIDMappingName(child.Name);
216
                    CHILD_LIST.Add(child);
217
                }
218
            }
219
            // End
220

    
221
            // Input Drawing
222
            AutoModeling.DrawingItem.SYMBOLS.Add(this);
223
            // End
224
        }
225

    
226
        public override void Modeling()
227
        {
228
            try
229
            {
230
                Placement _placement = new Placement();
231
                LMSymbol lmSymbol = null;
232
                SPPID_ITEM_OBJECT = null;
233

    
234
                if (!string.IsNullOrEmpty(SPPIDMAPPINGNAME))
235
                {
236
                    LMSymbol connectedSymbol = null;
237
                    foreach (Connector connector in CONNECTORS)
238
                    {
239
                        if (!string.IsNullOrEmpty(connector.CONNECTEDITEM) || connector.CONNECTEDITEM != "None")
240
                        {
241
                            object _obj = SPPIDUtill.FindObjectByUID(connector.CONNECTEDITEM);
242
                            if (_obj != null && typeof(Symbol) == _obj.GetType())
243
                            {
244
                                Symbol _symbol = _obj as Symbol;
245
                                if (_symbol.SPPID_ITEM_OBJECT != null)
246
                                    connectedSymbol = _symbol.SPPID_ITEM_OBJECT as LMSymbol;
247
                            }
248
                        }
249
                    }
250

    
251
                    if (connectedSymbol != null)
252
                        lmSymbol = _placement.PIDPlaceSymbol(SPPIDMAPPINGNAME, LOCATION_X, LOCATION_Y, Mirror: MIRROR, Rotation: ANGLE, TargetItem: connectedSymbol);
253
                    else
254
                        lmSymbol = _placement.PIDPlaceSymbol(SPPIDMAPPINGNAME, LOCATION_X, LOCATION_Y, Mirror: MIRROR, Rotation: ANGLE);
255

    
256
                    // Commit and input sppid item object
257
                    lmSymbol.Commit();
258
                    SPPID_ITEM_OBJECT = lmSymbol;
259
                    // End
260

    
261
                    // Check Child And Modeling
262
                    foreach (SymbolChild symoblChild in CHILD_LIST)
263
                    {
264
                        try
265
                        {
266
                            string sArrow = symoblChild.Arrow;
267
                            string sMappingName = symoblChild.SPPIDMAPPINGNAME;
268

    
269
                            double dChildAngle = 0;
270
                            if (sArrow == "UP")
271
                                dChildAngle = 0;
272
                            else if (sArrow == "RIGHT")
273
                                dChildAngle = 90 * Math.PI / 180;
274
                            else if (sArrow == "DOWN")
275
                                dChildAngle = Math.PI;
276
                            else
277
                                dChildAngle = 270 * Math.PI / 180;
278

    
279
                            LMSymbol _childLmSymbol = _placement.PIDPlaceSymbol(sMappingName, LOCATION_X, LOCATION_Y, Mirror: 0, Rotation: dChildAngle, TargetItem: SPPID_ITEM_OBJECT);
280
                            _childLmSymbol.Commit();
281
                            symoblChild.SPPID_ITEM_OBJECT = _childLmSymbol;
282
                        }
283
                        catch (Exception)
284
                        {
285

    
286
                        }
287
                    }
288
                    // End
289
                }
290
            }
291
            catch (Exception)
292
            {
293

    
294
            }
295
        }
296

    
297
        public override void SetAttribute()
298
        {
299
            throw new NotImplementedException();
300
        }
301
    }
302

    
303
    public class Line : SPPID_ITEM
304
    {
305
        public enum SlopType
306
        {
307
            NONE = 0,
308
            VERTICAL = 1,
309
            HORIZONTAL = 2,
310
            SLOPE = 3,
311
        }
312
        #region Property
313
        private string _STARTPOINT;
314
        private string _ENDPOINT;
315
        private List<Connector> _CONNECTORS = new List<Connector>();
316
        private string _LMCONNECTOR_MODELID;
317
        private SlopType _SLOPTYPE;
318
        private double _START_X;
319
        private double _START_Y;
320
        private double _END_X;
321
        private double _END_Y;
322

    
323
        public string STARTPOINT { get => _STARTPOINT; set => _STARTPOINT = value; }
324
        public string ENDPOINT { get => _ENDPOINT; set => _ENDPOINT = value; }
325
        public string LMCONNECTOR_MODELID { get => _LMCONNECTOR_MODELID; set => _LMCONNECTOR_MODELID = value; }
326
        public double START_X { get => _START_X; set => _START_X = value; }
327
        public double START_Y { get => _START_Y; set => _START_Y = value; }
328
        public double END_X { get => _END_X; set => _END_X = value; }
329
        public double END_Y { get => _END_Y; set => _END_Y = value; }
330
        public List<Connector> CONNECTORS { get => _CONNECTORS; set => _CONNECTORS = value; }
331
        public SlopType SLOPTYPE { get => _SLOPTYPE; set => _SLOPTYPE = value; }
332
        #endregion
333
        public override void AfterSetting()
334
        {
335
            // SPPIDMAPPINGNAME Setting
336
            SPPIDMAPPINGNAME = SPPIDUtill.GetSPPIDMappingName(NAME);
337
            // End
338

    
339
            // Point Setting
340
            SPPIDUtill.ConvertPointBystring(_STARTPOINT, ref _START_X, ref _START_Y);
341
            SPPIDUtill.ConvertSPPIDPoint(ref _START_X, ref _START_Y, AutoModeling.DrawingItem.WIDTH, AutoModeling.DrawingItem.HEIGHT);
342
            SPPIDUtill.ConvertPointBystring(_ENDPOINT, ref _END_X, ref _END_Y);
343
            SPPIDUtill.ConvertSPPIDPoint(ref _END_X,ref _END_Y, AutoModeling.DrawingItem.WIDTH, AutoModeling.DrawingItem.HEIGHT);
344
            // End
345

    
346
            // Slop Setting
347
            _SLOPTYPE = SPPIDUtill.CalcSlop(new Pointd(_START_X, _START_Y), new Pointd(_END_X, _END_Y));
348
            // End
349

    
350
            // SPPID Type Setting
351
            SPPID_TYPE = SPPID_ITEM_TYPE.LINE;
352
            // End
353

    
354
            // Input Drawing
355
            AutoModeling.DrawingItem.LINES.Add(this);
356
            // End
357
        }
358

    
359
        public override void Modeling()
360
        {
361
            throw new MissingMethodException();
362
        }
363

    
364
        public override void SetAttribute()
365
        {
366
            throw new NotImplementedException();
367
        }
368
    }
369

    
370
    public class LineNumber : SPPID_ITEM
371
    {
372
        public enum LineNumberType
373
        {
374
            LineNumber = 1,
375
            TrimLine = 2,
376
        }
377
        #region Property
378
        private double _ANGLE;
379
        private string _LOCATION;
380
        private double _LOCATION_X;
381
        private double _LOCATION_Y;
382
        private string _TEXT;
383
        private string _CONNECTLINE;
384
        private Line _TARGETLINE;
385
        private LineNumberType _LINENUMBERTYPE;
386

    
387
        public double ANGLE { get => _ANGLE; set => _ANGLE = value; }
388
        public string LOCATION { get => _LOCATION; set => _LOCATION = value; }
389
        public double LOCATION_X { get => _LOCATION_X; set => _LOCATION_X = value; }
390
        public double LOCATION_Y { get => _LOCATION_Y; set => _LOCATION_Y = value; }
391
        public string TEXT { get => _TEXT; set => _TEXT = value; }
392
        public string CONNECTLINE { get => _CONNECTLINE; set => _CONNECTLINE = value; }
393
        public Line TARGETLINE { get => _TARGETLINE; set => _TARGETLINE = value; }
394
        public LineNumberType LINENUMBERTYPE { get => _LINENUMBERTYPE; set => _LINENUMBERTYPE = value; }
395
        #endregion
396

    
397
        public override void AfterSetting()
398
        {
399
            // SPPIDMAPPINGNAME Setting
400
            SPPIDMAPPINGNAME = SPPIDUtill.GetSPPIDMappingName(NAME);
401
            // End
402

    
403
            // Angle Setting
404
            if (ANGLE == 1.57)
405
                ANGLE = 90 * Math.PI / 180;
406
            else if (ANGLE == 3.14)
407
                ANGLE = Math.PI;
408
            else if (ANGLE == 4.71)
409
                ANGLE = 270 * Math.PI / 180;
410
            else
411
                ANGLE = 0;
412
            // End
413

    
414
            // Location Setting
415
            SPPIDUtill.ConvertPointBystring(_LOCATION, ref _LOCATION_X, ref _LOCATION_Y);
416
            SPPIDUtill.ConvertSPPIDPoint(ref _LOCATION_X, ref _LOCATION_Y, AutoModeling.DrawingItem.WIDTH, AutoModeling.DrawingItem.HEIGHT);
417
            // End
418

    
419
            // SPPID  Type Setting
420
            SPPID_TYPE = SPPID_ITEM_TYPE.LABEL;
421
            // End
422

    
423
            // Input Drawing
424
            AutoModeling.DrawingItem.LINENUMBERS.Add(this);
425
            // End
426
        }
427

    
428
        public override void Modeling()
429
        {
430
            try
431
            {
432
                if (TARGETLINE != null && !string.IsNullOrEmpty(TARGETLINE.LMCONNECTOR_MODELID))
433
                {
434
                    Placement _placement = new Placement();
435
                    Array points = new double[] { LOCATION_X, LOCATION_Y };
436
                    LMPipeRun _pipeRun = _placement.PIDDataSource.GetPipeRun(TARGETLINE.LMCONNECTOR_MODELID);
437
                    if (_pipeRun != null)
438
                    {
439
                        foreach (LMRepresentation rep in _pipeRun.Representations)
440
                        {
441
                            if (rep.get_RepresentationType() == "Connector" && rep.get_ItemStatus() == "Active")
442
                            {
443
                                LMConnector _LmConnector = _placement.PIDDataSource.GetConnector(rep.Id);
444
                                LMLabelPersist _LmLabelPresist = _placement.PIDPlaceLabel(SPPIDMAPPINGNAME, ref points, Rotation: ANGLE, LabeledItem: _LmConnector.AsLMRepresentation(), IsLeaderVisible: true);
445
                                _LmLabelPresist.Commit();
446
                                SPPID_ITEM_OBJECT = _LmLabelPresist;
447
                            }
448
                        }
449
                    }
450
                }
451
            }
452
            catch (Exception)
453
            {
454

    
455
            }
456
        }
457

    
458
        public override void SetAttribute()
459
        {
460
            throw new NotImplementedException();
461
        }
462
    }
463

    
464
    public class Text : SPPID_ITEM
465
    {
466
        #region Property
467
        private double _ANGLE;
468
        private string _LOCATION;
469
        private double _LOCATION_X;
470
        private double _LOCATION_Y;
471
        private string _TEXT;
472
        private string _OWNER;
473

    
474
        public double ANGLE { get => _ANGLE; set => _ANGLE = value; }
475
        public string LOCATION { get => _LOCATION; set => _LOCATION = value; }
476
        public double LOCATION_X { get => _LOCATION_X; set => _LOCATION_X = value; }
477
        public double LOCATION_Y { get => _LOCATION_Y; set => _LOCATION_Y = value; }
478
        public string TEXT { get => _TEXT; set => _TEXT = value; }
479
        public string OWNER { get => _OWNER; set => _OWNER = value; }
480
        #endregion
481
        public override void AfterSetting()
482
        {
483
            // SPPIDMAPPINGNAME Setting
484
            SPPIDMAPPINGNAME = SPPIDUtill.GetSPPIDMappingName(NAME);
485
            // End
486

    
487
            // Angle Setting
488
            if (ANGLE == 1.57)
489
                ANGLE = 90 * Math.PI / 180;
490
            else if (ANGLE == 3.14)
491
                ANGLE = Math.PI;
492
            else if (ANGLE == 4.71)
493
                ANGLE = 270 * Math.PI / 180;
494
            else
495
                ANGLE = 0;
496
            // End
497

    
498
            // Location Setting
499
            SPPIDUtill.ConvertPointBystring(_LOCATION, ref _LOCATION_X, ref _LOCATION_Y);
500
            SPPIDUtill.ConvertSPPIDPoint(ref _LOCATION_X, ref _LOCATION_Y, AutoModeling.DrawingItem.WIDTH, AutoModeling.DrawingItem.HEIGHT);
501
            // End
502

    
503
            // SPPID  Type Setting
504
            SPPID_TYPE = SPPID_ITEM_TYPE.TEXT;
505
            // End
506

    
507
            // Input Drawing
508
            AutoModeling.DrawingItem.TEXTS.Add(this);
509
            // End
510
        }
511

    
512
        public override void Modeling()
513
        {
514
            try
515
            {
516
                Placement _placement = new Placement();
517
                if (NAME == "TEXT" || NAME == "NOTE")
518
                {
519
                    LMSymbol _LmSymbol = _placement.PIDPlaceSymbol(SPPIDMAPPINGNAME, LOCATION_X, LOCATION_Y, Rotation: ANGLE);
520
                    LMItemNote _LmItemNote = _placement.PIDDataSource.GetItemNote(_LmSymbol.ModelItemID);
521
                    _LmItemNote.Attributes["Note.Body"].set_Value(TEXT);
522
                    _LmItemNote.Commit();
523
                    SPPID_ITEM_OBJECT = _LmItemNote;
524
                }
525
                else if (NAME == "SIZE" && !string.IsNullOrEmpty(OWNER))
526
                {
527
                    object _obj = SPPIDUtill.FindObjectByUID(OWNER);
528

    
529
                    Array array = new double[] { LOCATION_X, LOCATION_Y };
530

    
531
                    if (typeof(Symbol) == _obj.GetType())
532
                    {
533
                        Symbol _symbol = _obj as Symbol;
534
                        LMSymbol _LmSymbol = _symbol.SPPID_ITEM_OBJECT as LMSymbol;
535

    
536
                        string fileName = _LmSymbol.get_FileName();
537
                        if (fileName.Contains("Piping"))
538
                            SPPIDMAPPINGNAME = @"\Piping\Labels - Piping Components\Nominal Diameter.sym";
539
                        else if (fileName.Contains("Instrumentation"))
540
                            SPPIDMAPPINGNAME = @"\Instrumentation\Labels - General Instrument\Nominal Diameter.sym";
541

    
542
                        LMLabelPersist _LmLabelPersist = _placement.PIDPlaceLabel(SPPIDMAPPINGNAME, ref array, Rotation: ANGLE, LabeledItem: _LmSymbol.AsLMRepresentation(), IsLeaderVisible: true);
543
                        _LmLabelPersist.Commit();
544

    
545
                        SPPID_ITEM_OBJECT = _LmLabelPersist;
546
                    }
547
                }
548
            }
549
            catch (Exception)
550
            {
551

    
552
            }
553
        }
554

    
555
        public override void SetAttribute()
556
        {
557
            throw new NotImplementedException();
558
        }
559
    }
560

    
561

    
562
    public class Attribute
563
    {
564
        #region Property
565
        private string _UID;
566
        private string _NAME;
567
        private string _VALUE;
568

    
569
        public string UID { get => _UID; set => _UID = value; }
570
        public string NAME { get => _NAME; set => _NAME = value; }
571
        public string VALUE { get => _VALUE; set => _VALUE = value; }
572
        #endregion
573
    }
574

    
575
    public class Connector
576
    {
577
        #region Property
578
        private string _CONNECTEDITEM;
579
        private string _CONNECTPOINT;
580
        private string _SCENECONNECTPOINT;
581
        private string _INDEX;
582

    
583
        public string CONNECTEDITEM { get => _CONNECTEDITEM; set => _CONNECTEDITEM = value; }
584
        public string CONNECTPOINT { get => _CONNECTPOINT; set => _CONNECTPOINT = value; }
585
        public string SCENECONNECTPOINT { get => _SCENECONNECTPOINT; set => _SCENECONNECTPOINT = value; }
586
        public string INDEX { get => _INDEX; set => _INDEX = value; }
587
        #endregion
588
    }
589
}
클립보드 이미지 추가 (최대 크기: 500 MB)