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

DomCR / ACadSharp / 20244298837

15 Dec 2025 07:08PM UTC coverage: 77.69% (-0.2%) from 77.847%
20244298837

push

github

web-flow
Merge pull request #919 from DomCR/image-reactor-fix

Image reactors

7578 of 10571 branches covered (71.69%)

Branch coverage included in aggregate %.

50 of 53 new or added lines in 9 files covered. (94.34%)

131 existing lines in 33 files now uncovered.

28098 of 35350 relevant lines covered (79.49%)

161916.85 hits per line

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

92.15
/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; } }
211,212✔
12

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

16
                public Dictionary<string, DxfClass> _entries = new Dictionary<string, DxfClass>(StringComparer.OrdinalIgnoreCase);
2,376✔
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,531✔
24
                        //AcDbDictionaryWithDefault
25
                        doc.Classes.AddOrUpdate(new DxfClass
1,531✔
26
                        {
1,531✔
27
                                CppClassName = DxfSubclassMarker.DictionaryWithDefault,
1,531✔
28
                                ClassNumber = (short)(500 + doc.Classes.Count),
1,531✔
29
                                DwgVersion = (ACadVersion)22,
1,531✔
30
                                DxfName = DxfFileToken.ObjectDictionaryWithDefault,
1,531✔
31
                                ItemClassId = 499,
1,531✔
32
                                MaintenanceVersion = 42,
1,531✔
33
                                ProxyFlags = ProxyFlags.R13FormatProxy,
1,531✔
34
                                WasZombie = false,
1,531✔
35
                        });
1,531✔
36

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

526
                /// <summary>
527
                /// Add a dxf class to the collection if the <see cref="DxfClass.DxfName"/> is not present
528
                /// </summary>
529
                /// <param name="item"></param>
530
                public void Add(DxfClass item)
531
                {
×
532
                        this._entries.Add(item.DxfName, item);
×
533
                }
×
534

535
                /// <summary>
536
                /// Add a dxf class to the collection or updates the existing one if the <see cref="DxfClass.DxfName"/> is already in the collection
537
                /// </summary>
538
                /// <param name="item"></param>
539
                public void AddOrUpdate(DxfClass item)
540
                {
84,470✔
541
                        if (this._entries.TryGetValue(item.DxfName, out DxfClass result))
84,470✔
542
                        {
25,552✔
543
                                result.InstanceCount = item.InstanceCount;
25,552✔
544
                        }
25,552✔
545
                        else
546
                        {
58,918✔
547
                                this._entries.Add(item.DxfName, item);
58,918✔
548
                        }
58,918✔
549
                }
84,470✔
550

551
                /// <inheritdoc/>
552
                public void Clear()
UNCOV
553
                {
×
UNCOV
554
                        _entries.Clear();
×
UNCOV
555
                }
×
556

557
                /// <summary>
558
                /// Determines whether the Collection contains a specific <see cref="DxfClass.DxfName"/>.
559
                /// </summary>
560
                /// <param name="dxfname"></param>
561
                /// <returns></returns>
562
                public bool Contains(string dxfname)
563
                {
×
564
                        return this._entries.ContainsKey(dxfname);
×
565
                }
×
566

567
                /// <inheritdoc/>
568
                public bool Contains(DxfClass item)
569
                {
×
570
                        return _entries.Values.Contains(item);
×
571
                }
×
572

573
                /// <inheritdoc/>
574
                public void CopyTo(DxfClass[] array, int arrayIndex)
575
                {
×
576
                        this._entries.Values.CopyTo(array, arrayIndex);
×
577
                }
×
578

579
                /// <summary>
580
                /// Gets the dxf class associated with <see cref="DxfClass.ClassNumber"/>.
581
                /// </summary>
582
                /// <param name="id"></param>
583
                /// <returns></returns>
584
                public DxfClass GetByClassNumber(short id)
585
                {
×
586
                        return this._entries.Values.FirstOrDefault(c => c.ClassNumber == id);
×
587
                }
×
588

589
                /// <summary>
590
                /// Gets the dxf class associated with <see cref="DxfClass.DxfName"/>.
591
                /// </summary>
592
                /// <param name="dxfname"></param>
593
                /// <returns></returns>
594
                public DxfClass GetByName(string dxfname)
595
                {
×
596
                        if (this._entries.TryGetValue(dxfname, out DxfClass result))
×
597
                        {
×
598
                                return result;
×
599
                        }
600
                        else
601
                        {
×
602
                                return null;
×
603
                        }
604
                }
×
605

606
                /// <inheritdoc/>
607
                public IEnumerator<DxfClass> GetEnumerator()
608
                {
1,811✔
609
                        return _entries.Values.GetEnumerator();
1,811✔
610
                }
1,811✔
611

612
                /// <inheritdoc/>
613
                IEnumerator IEnumerable.GetEnumerator()
614
                {
×
615
                        return this._entries.Values.GetEnumerator();
×
616
                }
×
617

618
                /// <inheritdoc/>
619
                public bool Remove(DxfClass item)
620
                {
×
621
                        return this._entries.Remove(item.DxfName);
×
622
                }
×
623

624
                /// <summary>
625
                /// Gets the dxf class associated with <see cref="DxfClass.ClassNumber"/>.
626
                /// </summary>
627
                /// <param name="id"></param>
628
                /// <param name="result"></param>
629
                /// <returns></returns>
630
                public bool TryGetByClassNumber(short id, out DxfClass result)
631
                {
×
632
                        result = this._entries.Values.FirstOrDefault(c => c.ClassNumber == id);
×
633
                        return result != null;
×
634
                }
×
635

636
                /// <summary>
637
                /// Gets the dxf class associated with <see cref="DxfClass.DxfName"/>.
638
                /// </summary>
639
                /// <param name="dxfname"></param>
640
                /// <param name="result"></param>
641
                /// <returns>true if the Collection contains an element with the specified key; otherwise, false.</returns>
642
                public bool TryGetByName(string dxfname, out DxfClass result)
643
                {
13,791✔
644
                        return this._entries.TryGetValue(dxfname, out result);
13,791✔
645
                }
13,791✔
646
        }
647
}
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