• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

DomCR / ACadSharp / 22018280625

14 Feb 2026 01:30PM UTC coverage: 77.356% (-0.1%) from 77.463%
22018280625

Pull #978

github

web-flow
Merge cd1c403d2 into 4609c0caf
Pull Request #978: issue-976 context data

8148 of 11392 branches covered (71.52%)

Branch coverage included in aggregate %.

28 of 90 new or added lines in 6 files covered. (31.11%)

722 existing lines in 9 files now uncovered.

29481 of 37252 relevant lines covered (79.14%)

151138.57 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

92.49
/src/ACadSharp/Classes/DxfClassCollection.cs
1
using System;
2
using System.Collections;
3
using System.Collections.Generic;
4
using System.Linq;
5

6
namespace ACadSharp.Classes
7
{
8
        public class DxfClassCollection : ICollection<DxfClass>
9
        {
10
                /// <inheritdoc/>
11
                public int Count { get { return this._entries.Count; } }
234,978✔
12

13
                /// <inheritdoc/>
14
                public bool IsReadOnly => false;
×
15

16
                public Dictionary<string, DxfClass> _entries = new Dictionary<string, DxfClass>(StringComparer.OrdinalIgnoreCase);
2,350✔
17

18
                /// <summary>
19
                /// Adds or updates the classes in a specific document
20
                /// </summary>
21
                /// <param name="doc"></param>
22
                public static void UpdateDxfClasses(CadDocument doc)
23
                {
1,694✔
24
                        //AcDbDictionaryWithDefault
25
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
26
                        {
1,694✔
27
                                CppClassName = DxfSubclassMarker.DictionaryWithDefault,
1,694✔
28
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
29
                                DwgVersion = (ACadVersion)22,
1,694✔
30
                                DxfName = DxfFileToken.ObjectDictionaryWithDefault,
1,694✔
31
                                ItemClassId = 499,
1,694✔
32
                                MaintenanceVersion = 42,
1,694✔
33
                                ProxyFlags = ProxyFlags.R13FormatProxy,
1,694✔
34
                                WasZombie = false,
1,694✔
35
                        });
1,694✔
36

37
                        //AcDbPlaceHolder
38
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
39
                        {
1,694✔
40
                                CppClassName = DxfSubclassMarker.AcDbPlaceHolder,
1,694✔
41
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
42
                                DwgVersion = (ACadVersion)0,
1,694✔
43
                                DxfName = DxfFileToken.ObjectPlaceholder,
1,694✔
44
                                ItemClassId = 499,
1,694✔
45
                                MaintenanceVersion = 0,
1,694✔
46
                                ProxyFlags = ProxyFlags.None,
1,694✔
47
                                WasZombie = false,
1,694✔
48
                        });
1,694✔
49

50
                        //AcDbLayout
51
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
52
                        {
1,694✔
53
                                CppClassName = DxfSubclassMarker.Layout,
1,694✔
54
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
55
                                DwgVersion = (ACadVersion)0,
1,694✔
56
                                DxfName = DxfFileToken.ObjectLayout,
1,694✔
57
                                ItemClassId = 499,
1,694✔
58
                                MaintenanceVersion = 0,
1,694✔
59
                                ProxyFlags = ProxyFlags.None,
1,694✔
60
                                WasZombie = false,
1,694✔
61
                        });
1,694✔
62

63
                        //AcDbDictionaryVar
64
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
65
                        {
1,694✔
66
                                CppClassName = DxfSubclassMarker.DictionaryVar,
1,694✔
67
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
68
                                DwgVersion = (ACadVersion)20,
1,694✔
69
                                DxfName = DxfFileToken.ObjectDictionaryVar,
1,694✔
70
                                ItemClassId = 499,
1,694✔
71
                                MaintenanceVersion = 0,
1,694✔
72
                                ProxyFlags = ProxyFlags.None,
1,694✔
73
                                WasZombie = false,
1,694✔
74
                        });
1,694✔
75

76
                        //AcDbTableStyle
77
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
78
                        {
1,694✔
79
                                CppClassName = DxfSubclassMarker.TableStyle,
1,694✔
80
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
81
                                DwgVersion = ACadVersion.AC1018,
1,694✔
82
                                DxfName = DxfFileToken.ObjectTableStyle,
1,694✔
83
                                ItemClassId = 499,
1,694✔
84
                                MaintenanceVersion = 0,
1,694✔
85
                                ProxyFlags = (ProxyFlags)4095,
1,694✔
86
                                WasZombie = false,
1,694✔
87
                        });
1,694✔
88

89
                        //AcDbMaterial
90
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
91
                        {
1,694✔
92
                                CppClassName = DxfSubclassMarker.Material,
1,694✔
93
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
94
                                DwgVersion = 0,
1,694✔
95
                                DxfName = DxfFileToken.ObjectMaterial,
1,694✔
96
                                ItemClassId = 499,
1,694✔
97
                                MaintenanceVersion = 0,
1,694✔
98
                                ProxyFlags = ProxyFlags.EraseAllowed | ProxyFlags.CloningAllowed | ProxyFlags.DisablesProxyWarningDialog,
1,694✔
99
                                WasZombie = false,
1,694✔
100
                        });
1,694✔
101

102
                        //AcDbVisualStyle
103
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
104
                        {
1,694✔
105
                                CppClassName = DxfSubclassMarker.VisualStyle,
1,694✔
106
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
107
                                DwgVersion = ACadVersion.AC1021,
1,694✔
108
                                DxfName = DxfFileToken.ObjectVisualStyle,
1,694✔
109
                                ItemClassId = 499,
1,694✔
110
                                MaintenanceVersion = 0,
1,694✔
111
                                ProxyFlags = (ProxyFlags)4095,
1,694✔
112
                                WasZombie = false,
1,694✔
113
                        });
1,694✔
114

115
                        //AcDbScale
116
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
117
                        {
1,694✔
118
                                CppClassName = DxfSubclassMarker.Scale,
1,694✔
119
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
120
                                DwgVersion = ACadVersion.AC1021,
1,694✔
121
                                DxfName = DxfFileToken.ObjectScale,
1,694✔
122
                                ItemClassId = 499,
1,694✔
123
                                MaintenanceVersion = 1,
1,694✔
124
                                ProxyFlags = ProxyFlags.EraseAllowed | ProxyFlags.CloningAllowed | ProxyFlags.DisablesProxyWarningDialog,
1,694✔
125
                                WasZombie = false,
1,694✔
126
                        });
1,694✔
127

128
                        //AcDbMLeaderStyle
129
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
130
                        {
1,694✔
131
                                CppClassName = DxfSubclassMarker.MLeaderStyle,
1,694✔
132
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
133
                                DwgVersion = ACadVersion.AC1021,
1,694✔
134
                                DxfName = DxfFileToken.ObjectMLeaderStyle,
1,694✔
135
                                ItemClassId = 499,
1,694✔
136
                                MaintenanceVersion = 25,
1,694✔
137
                                ProxyFlags = (ProxyFlags)4095,
1,694✔
138
                                WasZombie = false,
1,694✔
139
                        });
1,694✔
140

141
                        //AcDbCellStyleMap
142
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
143
                        {
1,694✔
144
                                CppClassName = DxfSubclassMarker.CellStyleMap,
1,694✔
145
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
146
                                DwgVersion = ACadVersion.AC1021,
1,694✔
147
                                DxfName = DxfFileToken.ObjectCellStyleMap,
1,694✔
148
                                ItemClassId = 499,
1,694✔
149
                                MaintenanceVersion = 25,
1,694✔
150
                                ProxyFlags = ProxyFlags.CloningAllowed | ProxyFlags.DisablesProxyWarningDialog,
1,694✔
151
                                WasZombie = false,
1,694✔
152
                        });
1,694✔
153

154
                        //ExAcXREFPanelObject
155
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
156
                        {
1,694✔
157
                                CppClassName = "ExAcXREFPanelObject",
1,694✔
158
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
159
                                DwgVersion = 0,
1,694✔
160
                                DxfName = "EXACXREFPANELOBJECT",
1,694✔
161
                                ItemClassId = 499,
1,694✔
162
                                MaintenanceVersion = 0,
1,694✔
163
                                ProxyFlags = ProxyFlags.EraseAllowed | ProxyFlags.DisablesProxyWarningDialog,
1,694✔
164
                                WasZombie = false,
1,694✔
165
                        });
1,694✔
166

167
                        //AcDbImpNonPersistentObjectsCollection
168
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
169
                        {
1,694✔
170
                                CppClassName = "AcDbImpNonPersistentObjectsCollection",
1,694✔
171
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
172
                                DwgVersion = 0,
1,694✔
173
                                DxfName = "NPOCOLLECTION",
1,694✔
174
                                ItemClassId = 499,
1,694✔
175
                                MaintenanceVersion = 0,
1,694✔
176
                                ProxyFlags = ProxyFlags.EraseAllowed | ProxyFlags.CloningAllowed | ProxyFlags.DisablesProxyWarningDialog,
1,694✔
177
                                WasZombie = false,
1,694✔
178
                        });
1,694✔
179

180
                        //AcDbLayerIndex
181
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
182
                        {
1,694✔
183
                                CppClassName = "AcDbLayerIndex",
1,694✔
184
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
185
                                DwgVersion = 0,
1,694✔
186
                                DxfName = "LAYER_INDEX",
1,694✔
187
                                ItemClassId = 499,
1,694✔
188
                                MaintenanceVersion = 0,
1,694✔
189
                                ProxyFlags = ProxyFlags.None,
1,694✔
190
                                WasZombie = false,
1,694✔
191
                        });
1,694✔
192

193
                        //AcDbSpatialIndex
194
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
195
                        {
1,694✔
196
                                CppClassName = "AcDbSpatialIndex",
1,694✔
197
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
198
                                DwgVersion = 0,
1,694✔
199
                                DxfName = "SPATIAL_INDEX",
1,694✔
200
                                ItemClassId = 499,
1,694✔
201
                                MaintenanceVersion = 0,
1,694✔
202
                                ProxyFlags = ProxyFlags.None,
1,694✔
203
                                WasZombie = false,
1,694✔
204
                        });
1,694✔
205

206
                        //AcDbIdBuffer
207
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
208
                        {
1,694✔
209
                                CppClassName = "AcDbIdBuffer",
1,694✔
210
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
211
                                DwgVersion = ACadVersion.AC1014,
1,694✔
212
                                DxfName = "IDBUFFER",
1,694✔
213
                                ItemClassId = 499,
1,694✔
214
                                MaintenanceVersion = 0,
1,694✔
215
                                ProxyFlags = ProxyFlags.R13FormatProxy,
1,694✔
216
                                WasZombie = false,
1,694✔
217
                        });
1,694✔
218

219
                        //AcDbSectionViewStyle
220
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
221
                        {
1,694✔
222
                                CppClassName = "AcDbSectionViewStyle",
1,694✔
223
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
224
                                DwgVersion = 0,
1,694✔
225
                                DxfName = "ACDBSECTIONVIEWSTYLE",
1,694✔
226
                                ItemClassId = 499,
1,694✔
227
                                MaintenanceVersion = 0,
1,694✔
228
                                ProxyFlags = ProxyFlags.EraseAllowed | ProxyFlags.DisablesProxyWarningDialog,
1,694✔
229
                                WasZombie = false,
1,694✔
230
                        });
1,694✔
231

232
                        //AcDbDetailViewStyle
233
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
234
                        {
1,694✔
235
                                CppClassName = "AcDbDetailViewStyle",
1,694✔
236
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
237
                                DwgVersion = 0,
1,694✔
238
                                DxfName = "ACDBDETAILVIEWSTYLE",
1,694✔
239
                                ItemClassId = 499,
1,694✔
240
                                MaintenanceVersion = 0,
1,694✔
241
                                ProxyFlags = ProxyFlags.EraseAllowed | ProxyFlags.DisablesProxyWarningDialog,
1,694✔
242
                                WasZombie = false,
1,694✔
243
                        });
1,694✔
244

245
                        //AcDbSubDMesh
246
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
247
                        {
1,694✔
248
                                CppClassName = DxfSubclassMarker.Mesh,
1,694✔
249
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
250
                                DwgVersion = 0,
1,694✔
251
                                DxfName = DxfFileToken.EntityMesh,
1,694✔
252
                                ItemClassId = 498,
1,694✔
253
                                MaintenanceVersion = 0,
1,694✔
254
                                ProxyFlags = ProxyFlags.None,
1,694✔
255
                                WasZombie = false,
1,694✔
256
                        });
1,694✔
257

258
                        //AcDbSortentsTable
259
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
260
                        {
1,694✔
261
                                CppClassName = DxfSubclassMarker.SortentsTable,
1,694✔
262
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
263
                                DwgVersion = ACadVersion.AC1014,
1,694✔
264
                                DxfName = DxfFileToken.ObjectSortEntsTable,
1,694✔
265
                                ItemClassId = 499,
1,694✔
266
                                MaintenanceVersion = 0,
1,694✔
267
                                ProxyFlags = ProxyFlags.None,
1,694✔
268
                                WasZombie = false,
1,694✔
269
                        });
1,694✔
270

271
                        //AcDbTextObjectContextData
272
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
273
                        {
1,694✔
274
                                CppClassName = "AcDbTextObjectContextData",
1,694✔
275
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
276
                                DwgVersion = 0,
1,694✔
277
                                DxfName = "ACDB_TEXTOBJECTCONTEXTDATA_CLASS",
1,694✔
278
                                ItemClassId = 499,
1,694✔
279
                                MaintenanceVersion = 0,
1,694✔
280
                                ProxyFlags = ProxyFlags.EraseAllowed | ProxyFlags.CloningAllowed | ProxyFlags.DisablesProxyWarningDialog,
1,694✔
281
                                WasZombie = false,
1,694✔
282
                        });
1,694✔
283

284
                        //AcDbWipeout
285
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
286
                        {
1,694✔
287
                                ApplicationName = "WipeOut",
1,694✔
288
                                CppClassName = DxfSubclassMarker.Wipeout,
1,694✔
289
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
290
                                DwgVersion = ACadVersion.AC1015,
1,694✔
291
                                DxfName = DxfFileToken.EntityWipeout,
1,694✔
292
                                ItemClassId = 498,
1,694✔
293
                                MaintenanceVersion = 0,
1,694✔
294
                                ProxyFlags = ProxyFlags.EraseAllowed | ProxyFlags.TransformAllowed | ProxyFlags.ColorChangeAllowed | ProxyFlags.LayerChangeAllowed | ProxyFlags.LinetypeChangeAllowed | ProxyFlags.LinetypeScaleChangeAllowed | ProxyFlags.VisibilityChangeAllowed | ProxyFlags.R13FormatProxy,
1,694✔
295
                                WasZombie = false,
1,694✔
296
                        });
1,694✔
297

298
                        //AcDbWipeoutVariables
299
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
300
                        {
1,694✔
301
                                ApplicationName = "WipeOut",
1,694✔
302
                                CppClassName = "AcDbWipeoutVariables",
1,694✔
303
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
304
                                DwgVersion = ACadVersion.AC1015,
1,694✔
305
                                DxfName = "WIPEOUTVARIABLES",
1,694✔
306
                                ItemClassId = 499,
1,694✔
307
                                MaintenanceVersion = 0,
1,694✔
308
                                ProxyFlags = ProxyFlags.R13FormatProxy,
1,694✔
309
                                WasZombie = false,
1,694✔
310
                        });
1,694✔
311

312
                        //AcDbDimAssoc
313
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
314
                        {
1,694✔
315
                                ApplicationName = "AcDbDimAssoc",
1,694✔
316
                                CppClassName = "AcDbDimAssoc",
1,694✔
317
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
318
                                DwgVersion = 0,
1,694✔
319
                                DxfName = "DIMASSOC",
1,694✔
320
                                ItemClassId = 499,
1,694✔
321
                                MaintenanceVersion = 0,
1,694✔
322
                                ProxyFlags = ProxyFlags.None,
1,694✔
323
                                WasZombie = false,
1,694✔
324
                        });
1,694✔
325

326
                        //AcDbTable
327
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
328
                        {
1,694✔
329
                                CppClassName = DxfSubclassMarker.TableEntity,
1,694✔
330
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
331
                                DwgVersion = ACadVersion.AC1018,
1,694✔
332
                                DxfName = DxfFileToken.EntityTable,
1,694✔
333
                                ItemClassId = 498,
1,694✔
334
                                MaintenanceVersion = 0,
1,694✔
335
                                ProxyFlags = ProxyFlags.EraseAllowed | ProxyFlags.DisablesProxyWarningDialog,
1,694✔
336
                                WasZombie = false,
1,694✔
337
                        });
1,694✔
338

339
                        //AcDbTableContent
340
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
341
                        {
1,694✔
342
                                CppClassName = DxfSubclassMarker.TableContent,
1,694✔
343
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
344
                                DwgVersion = ACadVersion.AC1018,
1,694✔
345
                                DxfName = DxfFileToken.ObjectTableContent,
1,694✔
346
                                ItemClassId = 499,
1,694✔
347
                                MaintenanceVersion = 21,
1,694✔
348
                                ProxyFlags = ProxyFlags.CloningAllowed | ProxyFlags.DisablesProxyWarningDialog,
1,694✔
349
                                WasZombie = false,
1,694✔
350
                        });
1,694✔
351

352
                        //AcDbTableGeometry
353
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
354
                        {
1,694✔
355
                                CppClassName = "AcDbTableGeometry",
1,694✔
356
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
357
                                DwgVersion = 0,
1,694✔
358
                                DxfName = "TABLEGEOMETRY",
1,694✔
359
                                ItemClassId = 499,
1,694✔
360
                                MaintenanceVersion = 0,
1,694✔
361
                                ProxyFlags = ProxyFlags.CloningAllowed | ProxyFlags.DisablesProxyWarningDialog,
1,694✔
362
                                WasZombie = false,
1,694✔
363
                        });
1,694✔
364

365
                        //AcDbRasterImage
366
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
367
                        {
1,694✔
368
                                ApplicationName = "ISM",
1,694✔
369
                                CppClassName = DxfSubclassMarker.RasterImage,
1,694✔
370
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
371
                                DwgVersion = (ACadVersion)20,
1,694✔
372
                                DxfName = DxfFileToken.EntityImage,
1,694✔
373
                                ItemClassId = 498,
1,694✔
374
                                MaintenanceVersion = 0,
1,694✔
375
                                ProxyFlags = ProxyFlags.EraseAllowed | ProxyFlags.TransformAllowed | ProxyFlags.ColorChangeAllowed | ProxyFlags.LayerChangeAllowed | ProxyFlags.LinetypeChangeAllowed | ProxyFlags.LinetypeScaleChangeAllowed | ProxyFlags.VisibilityChangeAllowed | ProxyFlags.R13FormatProxy,
1,694✔
376
                                WasZombie = false,
1,694✔
377
                        });
1,694✔
378

379
                        //AcDbRasterImageDef
380
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
381
                        {
1,694✔
382
                                ApplicationName = "ISM",
1,694✔
383
                                CppClassName = DxfSubclassMarker.RasterImageDef,
1,694✔
384
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
385
                                DwgVersion = (ACadVersion)20,
1,694✔
386
                                DxfName = DxfFileToken.ObjectImageDefinition,
1,694✔
387
                                ItemClassId = 499,
1,694✔
388
                                MaintenanceVersion = 0,
1,694✔
389
                                ProxyFlags = ProxyFlags.None,
1,694✔
390
                                WasZombie = false,
1,694✔
391
                        });
1,694✔
392

393
                        ////AcDbRasterImageDefReactor
394
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
395
                        {
1,694✔
396
                                ApplicationName = "ISM",
1,694✔
397
                                CppClassName = DxfSubclassMarker.RasterImageDefReactor,
1,694✔
398
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
399
                                DwgVersion = (ACadVersion)20,
1,694✔
400
                                DxfName = DxfFileToken.ObjectImageDefinitionReactor,
1,694✔
401
                                ItemClassId = 499,
1,694✔
402
                                MaintenanceVersion = 0,
1,694✔
403
                                ProxyFlags = ProxyFlags.EraseAllowed,
1,694✔
404
                                WasZombie = false,
1,694✔
405
                        });
1,694✔
406

407
                        //AcDbColor
408
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
409
                        {
1,694✔
410
                                CppClassName = DxfSubclassMarker.DbColor,
1,694✔
411
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
412
                                DwgVersion = ACadVersion.AC1015,
1,694✔
413
                                DxfName = DxfFileToken.ObjectDBColor,
1,694✔
414
                                ItemClassId = 499,
1,694✔
415
                                MaintenanceVersion = 14,
1,694✔
416
                                ProxyFlags = ProxyFlags.None,
1,694✔
417
                                WasZombie = false,
1,694✔
418
                        });
1,694✔
419

420
                        //AcDbGeoData
421
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
422
                        {
1,694✔
423
                                CppClassName = DxfSubclassMarker.GeoData,
1,694✔
424
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
425
                                DwgVersion = ACadVersion.AC1021,
1,694✔
426
                                DxfName = DxfFileToken.ObjectGeoData,
1,694✔
427
                                ItemClassId = 499,
1,694✔
428
                                MaintenanceVersion = 45,
1,694✔
429
                                ProxyFlags = (ProxyFlags)4095,
1,694✔
430
                                WasZombie = false,
1,694✔
431
                        });
1,694✔
432

433
                        //AcDbMLeader
434
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
435
                        {
1,694✔
436
                                CppClassName = DxfSubclassMarker.MultiLeader,
1,694✔
437
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
438
                                DwgVersion = ACadVersion.MC0_0,
1,694✔
439
                                DxfName = DxfFileToken.EntityMultiLeader,
1,694✔
440
                                ItemClassId = 499,
1,694✔
441
                                MaintenanceVersion = 0,
1,694✔
442
                                ProxyFlags = ProxyFlags.EraseAllowed | ProxyFlags.DisablesProxyWarningDialog,
1,694✔
443
                                WasZombie = false,
1,694✔
444
                        });
1,694✔
445

446
                        //AcDbPdfReference
447
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
448
                        {
1,694✔
449
                                CppClassName = DxfSubclassMarker.PdfReference,
1,694✔
450
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
451
                                DwgVersion = (ACadVersion)26,
1,694✔
452
                                DxfName = DxfFileToken.EntityPdfUnderlay,
1,694✔
453
                                ItemClassId = 498,
1,694✔
454
                                MaintenanceVersion = 0,
1,694✔
455
                                ProxyFlags = (ProxyFlags)4095,
1,694✔
456
                                WasZombie = false,
1,694✔
457
                        });
1,694✔
458

459
                        //AcDbPdfDefinition
460
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
461
                        {
1,694✔
462
                                CppClassName = DxfSubclassMarker.PdfDefinition,
1,694✔
463
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
464
                                DwgVersion = (ACadVersion)26,
1,694✔
465
                                DxfName = DxfFileToken.ObjectPdfDefinition,
1,694✔
466
                                ItemClassId = 499,
1,694✔
467
                                MaintenanceVersion = 0,
1,694✔
468
                                ProxyFlags = ProxyFlags.EraseAllowed | ProxyFlags.CloningAllowed | ProxyFlags.DisablesProxyWarningDialog,
1,694✔
469
                                WasZombie = false,
1,694✔
470
                        });
1,694✔
471

472
                        //AcDbRasterVariables
473
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
474
                        {
1,694✔
475
                                ApplicationName = "ISM",
1,694✔
476
                                CppClassName = DxfSubclassMarker.RasterVariables,
1,694✔
477
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
478
                                DwgVersion = (ACadVersion)20,
1,694✔
479
                                DxfName = DxfFileToken.ObjectRasterVariables,
1,694✔
480
                                ItemClassId = 499,
1,694✔
481
                                MaintenanceVersion = 0,
1,694✔
482
                                ProxyFlags = ProxyFlags.None,
1,694✔
483
                                WasZombie = false,
1,694✔
484
                        });
1,694✔
485

486
                        //AcDbSpatialFilter
487
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
488
                        {
1,694✔
489
                                CppClassName = DxfSubclassMarker.SpatialFilter,
1,694✔
490
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
491
                                DwgVersion = (ACadVersion)20,
1,694✔
492
                                DxfName = DxfFileToken.ObjectSpatialFilter,
1,694✔
493
                                ItemClassId = 499,
1,694✔
494
                                MaintenanceVersion = 0,
1,694✔
495
                                ProxyFlags = ProxyFlags.None,
1,694✔
496
                                WasZombie = false,
1,694✔
497
                        });
1,694✔
498

499
                        //AcDbMLeaderObjectContextData
500
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
501
                        {
1,694✔
502
                                CppClassName = DxfSubclassMarker.MultiLeaderObjectContextData,
1,694✔
503
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
504
                                DwgVersion = ACadVersion.MC0_0,
1,694✔
505
                                DxfName = DxfFileToken.ObjectMLeaderContextData,
1,694✔
506
                                ItemClassId = 499,
1,694✔
507
                                MaintenanceVersion = 0,
1,694✔
508
                                ProxyFlags = ProxyFlags.EraseAllowed | ProxyFlags.DisablesProxyWarningDialog,
1,694✔
509
                                WasZombie = false,
1,694✔
510
                        });
1,694✔
511

512
                        //AcDbPlotSettings
513
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
514
                        {
1,694✔
515
                                CppClassName = DxfSubclassMarker.PlotSettings,
1,694✔
516
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
517
                                DwgVersion = ACadVersion.AC1015,
1,694✔
518
                                DxfName = DxfFileToken.ObjectPlotSettings,
1,694✔
519
                                ItemClassId = 499,
1,694✔
520
                                MaintenanceVersion = 42,
1,694✔
521
                                ProxyFlags = ProxyFlags.None,
1,694✔
522
                                WasZombie = false,
1,694✔
523
                        });
1,694✔
524

525
                        //AcDbField
526
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
527
                        {
1,694✔
528
                                CppClassName = DxfSubclassMarker.Field,
1,694✔
529
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
530
                                DwgVersion = ACadVersion.AC1018,
1,694✔
531
                                DxfName = DxfFileToken.ObjectField,
1,694✔
532
                                ItemClassId = 499,
1,694✔
533
                                MaintenanceVersion = 0,
1,694✔
534
                                ProxyFlags = ProxyFlags.CloningAllowed | ProxyFlags.DisablesProxyWarningDialog,
1,694✔
535
                                WasZombie = false,
1,694✔
536
                        });
1,694✔
537

538
                        //AcDbFieldList
539
                        doc.Classes.AddOrUpdate(new DxfClass
1,694✔
540
                        {
1,694✔
541
                                CppClassName = DxfSubclassMarker.FieldList,
1,694✔
542
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,694✔
543
                                DwgVersion = ACadVersion.AC1018,
1,694✔
544
                                DxfName = DxfFileToken.ObjectFieldList,
1,694✔
545
                                ItemClassId = 499,
1,694✔
546
                                MaintenanceVersion = 0,
1,694✔
547
                                ProxyFlags = ProxyFlags.CloningAllowed | ProxyFlags.DisablesProxyWarningDialog,
1,694✔
548
                                WasZombie = false,
1,694✔
549
                        });
1,694✔
550
                }
1,694✔
551

552
                /// <summary>
553
                /// Add a dxf class to the collection if the <see cref="DxfClass.DxfName"/> is not present
554
                /// </summary>
555
                /// <param name="item"></param>
556
                public void Add(DxfClass item)
557
                {
×
558
                        this._entries.Add(item.DxfName, item);
×
559
                }
×
560

561
                /// <summary>
562
                /// Add a dxf class to the collection or updates the existing one if the <see cref="DxfClass.DxfName"/> is already in the collection
563
                /// </summary>
564
                /// <param name="item"></param>
565
                public void AddOrUpdate(DxfClass item)
566
                {
92,599✔
567
                        if (this._entries.TryGetValue(item.DxfName, out DxfClass result))
92,599✔
568
                        {
29,942✔
569
                                result.InstanceCount = item.InstanceCount;
29,942✔
570
                        }
29,942✔
571
                        else
572
                        {
62,657✔
573
                                this._entries.Add(item.DxfName, item);
62,657✔
574
                        }
62,657✔
575
                }
92,599✔
576

577
                /// <inheritdoc/>
578
                public void Clear()
UNCOV
579
                {
×
UNCOV
580
                        _entries.Clear();
×
UNCOV
581
                }
×
582

583
                /// <summary>
584
                /// Determines whether the Collection contains a specific <see cref="DxfClass.DxfName"/>.
585
                /// </summary>
586
                /// <param name="dxfname"></param>
587
                /// <returns></returns>
588
                public bool Contains(string dxfname)
UNCOV
589
                {
×
UNCOV
590
                        return this._entries.ContainsKey(dxfname);
×
UNCOV
591
                }
×
592

593
                /// <inheritdoc/>
594
                public bool Contains(DxfClass item)
UNCOV
595
                {
×
UNCOV
596
                        return _entries.Values.Contains(item);
×
UNCOV
597
                }
×
598

599
                /// <inheritdoc/>
600
                public void CopyTo(DxfClass[] array, int arrayIndex)
UNCOV
601
                {
×
UNCOV
602
                        this._entries.Values.CopyTo(array, arrayIndex);
×
UNCOV
603
                }
×
604

605
                /// <summary>
606
                /// Gets the dxf class associated with <see cref="DxfClass.ClassNumber"/>.
607
                /// </summary>
608
                /// <param name="id"></param>
609
                /// <returns></returns>
610
                public DxfClass GetByClassNumber(short id)
UNCOV
611
                {
×
UNCOV
612
                        return this._entries.Values.FirstOrDefault(c => c.ClassNumber == id);
×
UNCOV
613
                }
×
614

615
                /// <summary>
616
                /// Gets the dxf class associated with <see cref="DxfClass.DxfName"/>.
617
                /// </summary>
618
                /// <param name="dxfname"></param>
619
                /// <returns></returns>
620
                public DxfClass GetByName(string dxfname)
621
                {
×
622
                        if (this._entries.TryGetValue(dxfname, out DxfClass result))
×
623
                        {
×
UNCOV
624
                                return result;
×
625
                        }
626
                        else
627
                        {
×
628
                                return null;
×
629
                        }
UNCOV
630
                }
×
631

632
                /// <inheritdoc/>
633
                public IEnumerator<DxfClass> GetEnumerator()
634
                {
1,976✔
635
                        return _entries.Values.GetEnumerator();
1,976✔
636
                }
1,976✔
637

638
                /// <inheritdoc/>
639
                IEnumerator IEnumerable.GetEnumerator()
UNCOV
640
                {
×
UNCOV
641
                        return this._entries.Values.GetEnumerator();
×
UNCOV
642
                }
×
643

644
                /// <inheritdoc/>
645
                public bool Remove(DxfClass item)
UNCOV
646
                {
×
647
                        return this._entries.Remove(item.DxfName);
×
648
                }
×
649

650
                /// <summary>
651
                /// Gets the dxf class associated with <see cref="DxfClass.ClassNumber"/>.
652
                /// </summary>
653
                /// <param name="id"></param>
654
                /// <param name="result"></param>
655
                /// <returns></returns>
656
                public bool TryGetByClassNumber(short id, out DxfClass result)
UNCOV
657
                {
×
UNCOV
658
                        result = this._entries.Values.FirstOrDefault(c => c.ClassNumber == id);
×
UNCOV
659
                        return result != null;
×
UNCOV
660
                }
×
661

662
                /// <summary>
663
                /// Gets the dxf class associated with <see cref="DxfClass.DxfName"/>.
664
                /// </summary>
665
                /// <param name="dxfname"></param>
666
                /// <param name="result"></param>
667
                /// <returns>true if the Collection contains an element with the specified key; otherwise, false.</returns>
668
                public bool TryGetByName(string dxfname, out DxfClass result)
669
                {
12,621✔
670
                        return this._entries.TryGetValue(dxfname, out result);
12,621✔
671
                }
12,621✔
672
        }
673
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc