Skip to main content

step_io/generated/
resolve.rs

1// @generated by codegen. DO NOT EDIT.
2// Schema-faithful model + generic 2-pass read + topo write.
3
4use super::model::*;
5
6#[derive(Clone, Copy, Debug)]
7pub enum ActionRefView<'m> {
8    Action(&'m Action),
9    Complex(&'m ComplexUnit),
10}
11impl ActionRef {
12    pub fn resolve<'m>(&self, model: &'m StepModel) -> ActionRefView<'m> {
13        match self {
14            ActionRef::Action(i) => ActionRefView::Action(model.action_arena.get(i.0)),
15            ActionRef::Complex(i) => ActionRefView::Complex(model.complex_unit_arena.get(i.0)),
16        }
17    }
18    pub fn entity_key(&self) -> EntityKey {
19        match self {
20            ActionRef::Action(i) => EntityKey::Action(*i),
21            ActionRef::Complex(i) => EntityKey::ComplexUnit(*i),
22        }
23    }
24}
25
26#[derive(Clone, Copy, Debug)]
27pub enum ActionMethodRefView<'m> {
28    ActionMethod(&'m ActionMethod),
29    Complex(&'m ComplexUnit),
30}
31impl ActionMethodRef {
32    pub fn resolve<'m>(&self, model: &'m StepModel) -> ActionMethodRefView<'m> {
33        match self {
34            ActionMethodRef::ActionMethod(i) => {
35                ActionMethodRefView::ActionMethod(model.action_method_arena.get(i.0))
36            }
37            ActionMethodRef::Complex(i) => {
38                ActionMethodRefView::Complex(model.complex_unit_arena.get(i.0))
39            }
40        }
41    }
42    pub fn entity_key(&self) -> EntityKey {
43        match self {
44            ActionMethodRef::ActionMethod(i) => EntityKey::ActionMethod(*i),
45            ActionMethodRef::Complex(i) => EntityKey::ComplexUnit(*i),
46        }
47    }
48}
49
50#[derive(Clone, Copy, Debug)]
51pub enum ActionResourceRefView<'m> {
52    ActionResource(&'m ActionResource),
53    Complex(&'m ComplexUnit),
54}
55impl ActionResourceRef {
56    pub fn resolve<'m>(&self, model: &'m StepModel) -> ActionResourceRefView<'m> {
57        match self {
58            ActionResourceRef::ActionResource(i) => {
59                ActionResourceRefView::ActionResource(model.action_resource_arena.get(i.0))
60            }
61            ActionResourceRef::Complex(i) => {
62                ActionResourceRefView::Complex(model.complex_unit_arena.get(i.0))
63            }
64        }
65    }
66    pub fn entity_key(&self) -> EntityKey {
67        match self {
68            ActionResourceRef::ActionResource(i) => EntityKey::ActionResource(*i),
69            ActionResourceRef::Complex(i) => EntityKey::ComplexUnit(*i),
70        }
71    }
72}
73
74#[derive(Clone, Copy, Debug)]
75pub enum ActionResourceTypeRefView<'m> {
76    ActionResourceType(&'m ActionResourceType),
77}
78impl ActionResourceTypeRef {
79    pub fn resolve<'m>(&self, model: &'m StepModel) -> ActionResourceTypeRefView<'m> {
80        match self {
81            ActionResourceTypeRef::ActionResourceType(i) => {
82                ActionResourceTypeRefView::ActionResourceType(
83                    model.action_resource_type_arena.get(i.0),
84                )
85            }
86        }
87    }
88    pub fn entity_key(&self) -> EntityKey {
89        match self {
90            ActionResourceTypeRef::ActionResourceType(i) => EntityKey::ActionResourceType(*i),
91        }
92    }
93}
94
95#[derive(Clone, Copy, Debug)]
96pub enum AnnotationCurveOccurrenceRefView<'m> {
97    AnnotationCurveOccurrence(&'m AnnotationCurveOccurrence),
98    LeaderCurve(&'m LeaderCurve),
99    Complex(&'m ComplexUnit),
100}
101impl AnnotationCurveOccurrenceRef {
102    pub fn resolve<'m>(&self, model: &'m StepModel) -> AnnotationCurveOccurrenceRefView<'m> {
103        match self {
104            AnnotationCurveOccurrenceRef::AnnotationCurveOccurrence(i) => {
105                AnnotationCurveOccurrenceRefView::AnnotationCurveOccurrence(
106                    model.annotation_curve_occurrence_arena.get(i.0),
107                )
108            }
109            AnnotationCurveOccurrenceRef::LeaderCurve(i) => {
110                AnnotationCurveOccurrenceRefView::LeaderCurve(model.leader_curve_arena.get(i.0))
111            }
112            AnnotationCurveOccurrenceRef::Complex(i) => {
113                AnnotationCurveOccurrenceRefView::Complex(model.complex_unit_arena.get(i.0))
114            }
115        }
116    }
117    pub fn entity_key(&self) -> EntityKey {
118        match self {
119            AnnotationCurveOccurrenceRef::AnnotationCurveOccurrence(i) => {
120                EntityKey::AnnotationCurveOccurrence(*i)
121            }
122            AnnotationCurveOccurrenceRef::LeaderCurve(i) => EntityKey::LeaderCurve(*i),
123            AnnotationCurveOccurrenceRef::Complex(i) => EntityKey::ComplexUnit(*i),
124        }
125    }
126}
127
128#[derive(Clone, Copy, Debug)]
129pub enum AnnotationOccurrenceRefView<'m> {
130    AnnotationCurveOccurrence(&'m AnnotationCurveOccurrence),
131    AnnotationFillAreaOccurrence(&'m AnnotationFillAreaOccurrence),
132    AnnotationOccurrence(&'m AnnotationOccurrence),
133    AnnotationPlaceholderOccurrence(&'m AnnotationPlaceholderOccurrence),
134    AnnotationPlaceholderOccurrenceWithLeaderLine(
135        &'m AnnotationPlaceholderOccurrenceWithLeaderLine,
136    ),
137    AnnotationPlane(&'m AnnotationPlane),
138    AnnotationSymbolOccurrence(&'m AnnotationSymbolOccurrence),
139    AnnotationTextOccurrence(&'m AnnotationTextOccurrence),
140    DraughtingAnnotationOccurrence(&'m DraughtingAnnotationOccurrence),
141    LeaderCurve(&'m LeaderCurve),
142    LeaderTerminator(&'m LeaderTerminator),
143    TerminatorSymbol(&'m TerminatorSymbol),
144    TessellatedAnnotationOccurrence(&'m TessellatedAnnotationOccurrence),
145    Complex(&'m ComplexUnit),
146}
147impl AnnotationOccurrenceRef {
148    pub fn resolve<'m>(&self, model: &'m StepModel) -> AnnotationOccurrenceRefView<'m> {
149        match self {
150            AnnotationOccurrenceRef::AnnotationCurveOccurrence(i) => {
151                AnnotationOccurrenceRefView::AnnotationCurveOccurrence(
152                    model.annotation_curve_occurrence_arena.get(i.0),
153                )
154            }
155            AnnotationOccurrenceRef::AnnotationFillAreaOccurrence(i) => {
156                AnnotationOccurrenceRefView::AnnotationFillAreaOccurrence(
157                    model.annotation_fill_area_occurrence_arena.get(i.0),
158                )
159            }
160            AnnotationOccurrenceRef::AnnotationOccurrence(i) => {
161                AnnotationOccurrenceRefView::AnnotationOccurrence(
162                    model.annotation_occurrence_arena.get(i.0),
163                )
164            }
165            AnnotationOccurrenceRef::AnnotationPlaceholderOccurrence(i) => {
166                AnnotationOccurrenceRefView::AnnotationPlaceholderOccurrence(
167                    model.annotation_placeholder_occurrence_arena.get(i.0),
168                )
169            }
170            AnnotationOccurrenceRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => {
171                AnnotationOccurrenceRefView::AnnotationPlaceholderOccurrenceWithLeaderLine(
172                    model
173                        .annotation_placeholder_occurrence_with_leader_line_arena
174                        .get(i.0),
175                )
176            }
177            AnnotationOccurrenceRef::AnnotationPlane(i) => {
178                AnnotationOccurrenceRefView::AnnotationPlane(model.annotation_plane_arena.get(i.0))
179            }
180            AnnotationOccurrenceRef::AnnotationSymbolOccurrence(i) => {
181                AnnotationOccurrenceRefView::AnnotationSymbolOccurrence(
182                    model.annotation_symbol_occurrence_arena.get(i.0),
183                )
184            }
185            AnnotationOccurrenceRef::AnnotationTextOccurrence(i) => {
186                AnnotationOccurrenceRefView::AnnotationTextOccurrence(
187                    model.annotation_text_occurrence_arena.get(i.0),
188                )
189            }
190            AnnotationOccurrenceRef::DraughtingAnnotationOccurrence(i) => {
191                AnnotationOccurrenceRefView::DraughtingAnnotationOccurrence(
192                    model.draughting_annotation_occurrence_arena.get(i.0),
193                )
194            }
195            AnnotationOccurrenceRef::LeaderCurve(i) => {
196                AnnotationOccurrenceRefView::LeaderCurve(model.leader_curve_arena.get(i.0))
197            }
198            AnnotationOccurrenceRef::LeaderTerminator(i) => {
199                AnnotationOccurrenceRefView::LeaderTerminator(
200                    model.leader_terminator_arena.get(i.0),
201                )
202            }
203            AnnotationOccurrenceRef::TerminatorSymbol(i) => {
204                AnnotationOccurrenceRefView::TerminatorSymbol(
205                    model.terminator_symbol_arena.get(i.0),
206                )
207            }
208            AnnotationOccurrenceRef::TessellatedAnnotationOccurrence(i) => {
209                AnnotationOccurrenceRefView::TessellatedAnnotationOccurrence(
210                    model.tessellated_annotation_occurrence_arena.get(i.0),
211                )
212            }
213            AnnotationOccurrenceRef::Complex(i) => {
214                AnnotationOccurrenceRefView::Complex(model.complex_unit_arena.get(i.0))
215            }
216        }
217    }
218    pub fn entity_key(&self) -> EntityKey {
219        match self {
220            AnnotationOccurrenceRef::AnnotationCurveOccurrence(i) => {
221                EntityKey::AnnotationCurveOccurrence(*i)
222            }
223            AnnotationOccurrenceRef::AnnotationFillAreaOccurrence(i) => {
224                EntityKey::AnnotationFillAreaOccurrence(*i)
225            }
226            AnnotationOccurrenceRef::AnnotationOccurrence(i) => EntityKey::AnnotationOccurrence(*i),
227            AnnotationOccurrenceRef::AnnotationPlaceholderOccurrence(i) => {
228                EntityKey::AnnotationPlaceholderOccurrence(*i)
229            }
230            AnnotationOccurrenceRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => {
231                EntityKey::AnnotationPlaceholderOccurrenceWithLeaderLine(*i)
232            }
233            AnnotationOccurrenceRef::AnnotationPlane(i) => EntityKey::AnnotationPlane(*i),
234            AnnotationOccurrenceRef::AnnotationSymbolOccurrence(i) => {
235                EntityKey::AnnotationSymbolOccurrence(*i)
236            }
237            AnnotationOccurrenceRef::AnnotationTextOccurrence(i) => {
238                EntityKey::AnnotationTextOccurrence(*i)
239            }
240            AnnotationOccurrenceRef::DraughtingAnnotationOccurrence(i) => {
241                EntityKey::DraughtingAnnotationOccurrence(*i)
242            }
243            AnnotationOccurrenceRef::LeaderCurve(i) => EntityKey::LeaderCurve(*i),
244            AnnotationOccurrenceRef::LeaderTerminator(i) => EntityKey::LeaderTerminator(*i),
245            AnnotationOccurrenceRef::TerminatorSymbol(i) => EntityKey::TerminatorSymbol(*i),
246            AnnotationOccurrenceRef::TessellatedAnnotationOccurrence(i) => {
247                EntityKey::TessellatedAnnotationOccurrence(*i)
248            }
249            AnnotationOccurrenceRef::Complex(i) => EntityKey::ComplexUnit(*i),
250        }
251    }
252}
253
254#[derive(Clone, Copy, Debug)]
255pub enum AnnotationPlaceholderLeaderLineRefView<'m> {
256    AnnotationPlaceholderLeaderLine(&'m AnnotationPlaceholderLeaderLine),
257    AnnotationToAnnotationLeaderLine(&'m AnnotationToAnnotationLeaderLine),
258    AnnotationToModelLeaderLine(&'m AnnotationToModelLeaderLine),
259    AuxiliaryLeaderLine(&'m AuxiliaryLeaderLine),
260}
261impl AnnotationPlaceholderLeaderLineRef {
262    pub fn resolve<'m>(&self, model: &'m StepModel) -> AnnotationPlaceholderLeaderLineRefView<'m> {
263        match self {
264            AnnotationPlaceholderLeaderLineRef::AnnotationPlaceholderLeaderLine(i) => {
265                AnnotationPlaceholderLeaderLineRefView::AnnotationPlaceholderLeaderLine(
266                    model.annotation_placeholder_leader_line_arena.get(i.0),
267                )
268            }
269            AnnotationPlaceholderLeaderLineRef::AnnotationToAnnotationLeaderLine(i) => {
270                AnnotationPlaceholderLeaderLineRefView::AnnotationToAnnotationLeaderLine(
271                    model.annotation_to_annotation_leader_line_arena.get(i.0),
272                )
273            }
274            AnnotationPlaceholderLeaderLineRef::AnnotationToModelLeaderLine(i) => {
275                AnnotationPlaceholderLeaderLineRefView::AnnotationToModelLeaderLine(
276                    model.annotation_to_model_leader_line_arena.get(i.0),
277                )
278            }
279            AnnotationPlaceholderLeaderLineRef::AuxiliaryLeaderLine(i) => {
280                AnnotationPlaceholderLeaderLineRefView::AuxiliaryLeaderLine(
281                    model.auxiliary_leader_line_arena.get(i.0),
282                )
283            }
284        }
285    }
286    pub fn entity_key(&self) -> EntityKey {
287        match self {
288            AnnotationPlaceholderLeaderLineRef::AnnotationPlaceholderLeaderLine(i) => {
289                EntityKey::AnnotationPlaceholderLeaderLine(*i)
290            }
291            AnnotationPlaceholderLeaderLineRef::AnnotationToAnnotationLeaderLine(i) => {
292                EntityKey::AnnotationToAnnotationLeaderLine(*i)
293            }
294            AnnotationPlaceholderLeaderLineRef::AnnotationToModelLeaderLine(i) => {
295                EntityKey::AnnotationToModelLeaderLine(*i)
296            }
297            AnnotationPlaceholderLeaderLineRef::AuxiliaryLeaderLine(i) => {
298                EntityKey::AuxiliaryLeaderLine(*i)
299            }
300        }
301    }
302}
303
304#[derive(Clone, Copy, Debug)]
305pub enum AnnotationPlaceholderOccurrenceRefView<'m> {
306    AnnotationPlaceholderOccurrence(&'m AnnotationPlaceholderOccurrence),
307    AnnotationPlaceholderOccurrenceWithLeaderLine(
308        &'m AnnotationPlaceholderOccurrenceWithLeaderLine,
309    ),
310    Complex(&'m ComplexUnit),
311}
312impl AnnotationPlaceholderOccurrenceRef {
313    pub fn resolve<'m>(&self, model: &'m StepModel) -> AnnotationPlaceholderOccurrenceRefView<'m> {
314        match self {
315            AnnotationPlaceholderOccurrenceRef::AnnotationPlaceholderOccurrence(i) => AnnotationPlaceholderOccurrenceRefView::AnnotationPlaceholderOccurrence(model.annotation_placeholder_occurrence_arena.get(i.0)),
316            AnnotationPlaceholderOccurrenceRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => AnnotationPlaceholderOccurrenceRefView::AnnotationPlaceholderOccurrenceWithLeaderLine(model.annotation_placeholder_occurrence_with_leader_line_arena.get(i.0)),
317            AnnotationPlaceholderOccurrenceRef::Complex(i) => AnnotationPlaceholderOccurrenceRefView::Complex(model.complex_unit_arena.get(i.0)),
318        }
319    }
320    pub fn entity_key(&self) -> EntityKey {
321        match self {
322            AnnotationPlaceholderOccurrenceRef::AnnotationPlaceholderOccurrence(i) => {
323                EntityKey::AnnotationPlaceholderOccurrence(*i)
324            }
325            AnnotationPlaceholderOccurrenceRef::AnnotationPlaceholderOccurrenceWithLeaderLine(
326                i,
327            ) => EntityKey::AnnotationPlaceholderOccurrenceWithLeaderLine(*i),
328            AnnotationPlaceholderOccurrenceRef::Complex(i) => EntityKey::ComplexUnit(*i),
329        }
330    }
331}
332
333#[derive(Clone, Copy, Debug)]
334pub enum AnnotationPlaneElementRefView<'m> {
335    AnnotationCurveOccurrence(&'m AnnotationCurveOccurrence),
336    AnnotationFillAreaOccurrence(&'m AnnotationFillAreaOccurrence),
337    AnnotationOccurrence(&'m AnnotationOccurrence),
338    AnnotationPlaceholderOccurrence(&'m AnnotationPlaceholderOccurrence),
339    AnnotationPlaceholderOccurrenceWithLeaderLine(
340        &'m AnnotationPlaceholderOccurrenceWithLeaderLine,
341    ),
342    AnnotationPlane(&'m AnnotationPlane),
343    AnnotationSymbolOccurrence(&'m AnnotationSymbolOccurrence),
344    AnnotationTextOccurrence(&'m AnnotationTextOccurrence),
345    ContextDependentOverRidingStyledItem(&'m ContextDependentOverRidingStyledItem),
346    DraughtingAnnotationOccurrence(&'m DraughtingAnnotationOccurrence),
347    DraughtingCallout(&'m DraughtingCallout),
348    LeaderCurve(&'m LeaderCurve),
349    LeaderDirectedCallout(&'m LeaderDirectedCallout),
350    LeaderTerminator(&'m LeaderTerminator),
351    OverRidingStyledItem(&'m OverRidingStyledItem),
352    StyledItem(&'m StyledItem),
353    TerminatorSymbol(&'m TerminatorSymbol),
354    TessellatedAnnotationOccurrence(&'m TessellatedAnnotationOccurrence),
355    Complex(&'m ComplexUnit),
356}
357impl AnnotationPlaneElementRef {
358    pub fn resolve<'m>(&self, model: &'m StepModel) -> AnnotationPlaneElementRefView<'m> {
359        match self {
360            AnnotationPlaneElementRef::AnnotationCurveOccurrence(i) => {
361                AnnotationPlaneElementRefView::AnnotationCurveOccurrence(
362                    model.annotation_curve_occurrence_arena.get(i.0),
363                )
364            }
365            AnnotationPlaneElementRef::AnnotationFillAreaOccurrence(i) => {
366                AnnotationPlaneElementRefView::AnnotationFillAreaOccurrence(
367                    model.annotation_fill_area_occurrence_arena.get(i.0),
368                )
369            }
370            AnnotationPlaneElementRef::AnnotationOccurrence(i) => {
371                AnnotationPlaneElementRefView::AnnotationOccurrence(
372                    model.annotation_occurrence_arena.get(i.0),
373                )
374            }
375            AnnotationPlaneElementRef::AnnotationPlaceholderOccurrence(i) => {
376                AnnotationPlaneElementRefView::AnnotationPlaceholderOccurrence(
377                    model.annotation_placeholder_occurrence_arena.get(i.0),
378                )
379            }
380            AnnotationPlaneElementRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => {
381                AnnotationPlaneElementRefView::AnnotationPlaceholderOccurrenceWithLeaderLine(
382                    model
383                        .annotation_placeholder_occurrence_with_leader_line_arena
384                        .get(i.0),
385                )
386            }
387            AnnotationPlaneElementRef::AnnotationPlane(i) => {
388                AnnotationPlaneElementRefView::AnnotationPlane(
389                    model.annotation_plane_arena.get(i.0),
390                )
391            }
392            AnnotationPlaneElementRef::AnnotationSymbolOccurrence(i) => {
393                AnnotationPlaneElementRefView::AnnotationSymbolOccurrence(
394                    model.annotation_symbol_occurrence_arena.get(i.0),
395                )
396            }
397            AnnotationPlaneElementRef::AnnotationTextOccurrence(i) => {
398                AnnotationPlaneElementRefView::AnnotationTextOccurrence(
399                    model.annotation_text_occurrence_arena.get(i.0),
400                )
401            }
402            AnnotationPlaneElementRef::ContextDependentOverRidingStyledItem(i) => {
403                AnnotationPlaneElementRefView::ContextDependentOverRidingStyledItem(
404                    model
405                        .context_dependent_over_riding_styled_item_arena
406                        .get(i.0),
407                )
408            }
409            AnnotationPlaneElementRef::DraughtingAnnotationOccurrence(i) => {
410                AnnotationPlaneElementRefView::DraughtingAnnotationOccurrence(
411                    model.draughting_annotation_occurrence_arena.get(i.0),
412                )
413            }
414            AnnotationPlaneElementRef::DraughtingCallout(i) => {
415                AnnotationPlaneElementRefView::DraughtingCallout(
416                    model.draughting_callout_arena.get(i.0),
417                )
418            }
419            AnnotationPlaneElementRef::LeaderCurve(i) => {
420                AnnotationPlaneElementRefView::LeaderCurve(model.leader_curve_arena.get(i.0))
421            }
422            AnnotationPlaneElementRef::LeaderDirectedCallout(i) => {
423                AnnotationPlaneElementRefView::LeaderDirectedCallout(
424                    model.leader_directed_callout_arena.get(i.0),
425                )
426            }
427            AnnotationPlaneElementRef::LeaderTerminator(i) => {
428                AnnotationPlaneElementRefView::LeaderTerminator(
429                    model.leader_terminator_arena.get(i.0),
430                )
431            }
432            AnnotationPlaneElementRef::OverRidingStyledItem(i) => {
433                AnnotationPlaneElementRefView::OverRidingStyledItem(
434                    model.over_riding_styled_item_arena.get(i.0),
435                )
436            }
437            AnnotationPlaneElementRef::StyledItem(i) => {
438                AnnotationPlaneElementRefView::StyledItem(model.styled_item_arena.get(i.0))
439            }
440            AnnotationPlaneElementRef::TerminatorSymbol(i) => {
441                AnnotationPlaneElementRefView::TerminatorSymbol(
442                    model.terminator_symbol_arena.get(i.0),
443                )
444            }
445            AnnotationPlaneElementRef::TessellatedAnnotationOccurrence(i) => {
446                AnnotationPlaneElementRefView::TessellatedAnnotationOccurrence(
447                    model.tessellated_annotation_occurrence_arena.get(i.0),
448                )
449            }
450            AnnotationPlaneElementRef::Complex(i) => {
451                AnnotationPlaneElementRefView::Complex(model.complex_unit_arena.get(i.0))
452            }
453        }
454    }
455    pub fn entity_key(&self) -> EntityKey {
456        match self {
457            AnnotationPlaneElementRef::AnnotationCurveOccurrence(i) => {
458                EntityKey::AnnotationCurveOccurrence(*i)
459            }
460            AnnotationPlaneElementRef::AnnotationFillAreaOccurrence(i) => {
461                EntityKey::AnnotationFillAreaOccurrence(*i)
462            }
463            AnnotationPlaneElementRef::AnnotationOccurrence(i) => {
464                EntityKey::AnnotationOccurrence(*i)
465            }
466            AnnotationPlaneElementRef::AnnotationPlaceholderOccurrence(i) => {
467                EntityKey::AnnotationPlaceholderOccurrence(*i)
468            }
469            AnnotationPlaneElementRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => {
470                EntityKey::AnnotationPlaceholderOccurrenceWithLeaderLine(*i)
471            }
472            AnnotationPlaneElementRef::AnnotationPlane(i) => EntityKey::AnnotationPlane(*i),
473            AnnotationPlaneElementRef::AnnotationSymbolOccurrence(i) => {
474                EntityKey::AnnotationSymbolOccurrence(*i)
475            }
476            AnnotationPlaneElementRef::AnnotationTextOccurrence(i) => {
477                EntityKey::AnnotationTextOccurrence(*i)
478            }
479            AnnotationPlaneElementRef::ContextDependentOverRidingStyledItem(i) => {
480                EntityKey::ContextDependentOverRidingStyledItem(*i)
481            }
482            AnnotationPlaneElementRef::DraughtingAnnotationOccurrence(i) => {
483                EntityKey::DraughtingAnnotationOccurrence(*i)
484            }
485            AnnotationPlaneElementRef::DraughtingCallout(i) => EntityKey::DraughtingCallout(*i),
486            AnnotationPlaneElementRef::LeaderCurve(i) => EntityKey::LeaderCurve(*i),
487            AnnotationPlaneElementRef::LeaderDirectedCallout(i) => {
488                EntityKey::LeaderDirectedCallout(*i)
489            }
490            AnnotationPlaneElementRef::LeaderTerminator(i) => EntityKey::LeaderTerminator(*i),
491            AnnotationPlaneElementRef::OverRidingStyledItem(i) => {
492                EntityKey::OverRidingStyledItem(*i)
493            }
494            AnnotationPlaneElementRef::StyledItem(i) => EntityKey::StyledItem(*i),
495            AnnotationPlaneElementRef::TerminatorSymbol(i) => EntityKey::TerminatorSymbol(*i),
496            AnnotationPlaneElementRef::TessellatedAnnotationOccurrence(i) => {
497                EntityKey::TessellatedAnnotationOccurrence(*i)
498            }
499            AnnotationPlaneElementRef::Complex(i) => EntityKey::ComplexUnit(*i),
500        }
501    }
502}
503
504#[derive(Clone, Copy, Debug)]
505pub enum AnnotationRepresentationSelectRefView<'m> {
506    DraughtingModel(&'m DraughtingModel),
507    PresentationArea(&'m PresentationArea),
508    PresentationView(&'m PresentationView),
509    SymbolRepresentation(&'m SymbolRepresentation),
510    Complex(&'m ComplexUnit),
511}
512impl AnnotationRepresentationSelectRef {
513    pub fn resolve<'m>(&self, model: &'m StepModel) -> AnnotationRepresentationSelectRefView<'m> {
514        match self {
515            AnnotationRepresentationSelectRef::DraughtingModel(i) => {
516                AnnotationRepresentationSelectRefView::DraughtingModel(
517                    model.draughting_model_arena.get(i.0),
518                )
519            }
520            AnnotationRepresentationSelectRef::PresentationArea(i) => {
521                AnnotationRepresentationSelectRefView::PresentationArea(
522                    model.presentation_area_arena.get(i.0),
523                )
524            }
525            AnnotationRepresentationSelectRef::PresentationView(i) => {
526                AnnotationRepresentationSelectRefView::PresentationView(
527                    model.presentation_view_arena.get(i.0),
528                )
529            }
530            AnnotationRepresentationSelectRef::SymbolRepresentation(i) => {
531                AnnotationRepresentationSelectRefView::SymbolRepresentation(
532                    model.symbol_representation_arena.get(i.0),
533                )
534            }
535            AnnotationRepresentationSelectRef::Complex(i) => {
536                AnnotationRepresentationSelectRefView::Complex(model.complex_unit_arena.get(i.0))
537            }
538        }
539    }
540    pub fn entity_key(&self) -> EntityKey {
541        match self {
542            AnnotationRepresentationSelectRef::DraughtingModel(i) => EntityKey::DraughtingModel(*i),
543            AnnotationRepresentationSelectRef::PresentationArea(i) => {
544                EntityKey::PresentationArea(*i)
545            }
546            AnnotationRepresentationSelectRef::PresentationView(i) => {
547                EntityKey::PresentationView(*i)
548            }
549            AnnotationRepresentationSelectRef::SymbolRepresentation(i) => {
550                EntityKey::SymbolRepresentation(*i)
551            }
552            AnnotationRepresentationSelectRef::Complex(i) => EntityKey::ComplexUnit(*i),
553        }
554    }
555}
556
557#[derive(Clone, Copy, Debug)]
558pub enum AnnotationSymbolOccurrenceRefView<'m> {
559    AnnotationSymbolOccurrence(&'m AnnotationSymbolOccurrence),
560    LeaderTerminator(&'m LeaderTerminator),
561    TerminatorSymbol(&'m TerminatorSymbol),
562    Complex(&'m ComplexUnit),
563}
564impl AnnotationSymbolOccurrenceRef {
565    pub fn resolve<'m>(&self, model: &'m StepModel) -> AnnotationSymbolOccurrenceRefView<'m> {
566        match self {
567            AnnotationSymbolOccurrenceRef::AnnotationSymbolOccurrence(i) => {
568                AnnotationSymbolOccurrenceRefView::AnnotationSymbolOccurrence(
569                    model.annotation_symbol_occurrence_arena.get(i.0),
570                )
571            }
572            AnnotationSymbolOccurrenceRef::LeaderTerminator(i) => {
573                AnnotationSymbolOccurrenceRefView::LeaderTerminator(
574                    model.leader_terminator_arena.get(i.0),
575                )
576            }
577            AnnotationSymbolOccurrenceRef::TerminatorSymbol(i) => {
578                AnnotationSymbolOccurrenceRefView::TerminatorSymbol(
579                    model.terminator_symbol_arena.get(i.0),
580                )
581            }
582            AnnotationSymbolOccurrenceRef::Complex(i) => {
583                AnnotationSymbolOccurrenceRefView::Complex(model.complex_unit_arena.get(i.0))
584            }
585        }
586    }
587    pub fn entity_key(&self) -> EntityKey {
588        match self {
589            AnnotationSymbolOccurrenceRef::AnnotationSymbolOccurrence(i) => {
590                EntityKey::AnnotationSymbolOccurrence(*i)
591            }
592            AnnotationSymbolOccurrenceRef::LeaderTerminator(i) => EntityKey::LeaderTerminator(*i),
593            AnnotationSymbolOccurrenceRef::TerminatorSymbol(i) => EntityKey::TerminatorSymbol(*i),
594            AnnotationSymbolOccurrenceRef::Complex(i) => EntityKey::ComplexUnit(*i),
595        }
596    }
597}
598
599#[derive(Clone, Copy, Debug)]
600pub enum AnnotationSymbolOccurrenceItemRefView<'m> {
601    AnnotationSymbol(&'m AnnotationSymbol),
602    DefinedSymbol(&'m DefinedSymbol),
603    Complex(&'m ComplexUnit),
604}
605impl AnnotationSymbolOccurrenceItemRef {
606    pub fn resolve<'m>(&self, model: &'m StepModel) -> AnnotationSymbolOccurrenceItemRefView<'m> {
607        match self {
608            AnnotationSymbolOccurrenceItemRef::AnnotationSymbol(i) => {
609                AnnotationSymbolOccurrenceItemRefView::AnnotationSymbol(
610                    model.annotation_symbol_arena.get(i.0),
611                )
612            }
613            AnnotationSymbolOccurrenceItemRef::DefinedSymbol(i) => {
614                AnnotationSymbolOccurrenceItemRefView::DefinedSymbol(
615                    model.defined_symbol_arena.get(i.0),
616                )
617            }
618            AnnotationSymbolOccurrenceItemRef::Complex(i) => {
619                AnnotationSymbolOccurrenceItemRefView::Complex(model.complex_unit_arena.get(i.0))
620            }
621        }
622    }
623    pub fn entity_key(&self) -> EntityKey {
624        match self {
625            AnnotationSymbolOccurrenceItemRef::AnnotationSymbol(i) => {
626                EntityKey::AnnotationSymbol(*i)
627            }
628            AnnotationSymbolOccurrenceItemRef::DefinedSymbol(i) => EntityKey::DefinedSymbol(*i),
629            AnnotationSymbolOccurrenceItemRef::Complex(i) => EntityKey::ComplexUnit(*i),
630        }
631    }
632}
633
634#[derive(Clone, Copy, Debug)]
635pub enum AnnotationTextOccurrenceItemRefView<'m> {
636    AnnotationText(&'m AnnotationText),
637    AnnotationTextCharacter(&'m AnnotationTextCharacter),
638    CompositeText(&'m CompositeText),
639    DefinedCharacterGlyph(&'m DefinedCharacterGlyph),
640    TextLiteral(&'m TextLiteral),
641    Complex(&'m ComplexUnit),
642}
643impl AnnotationTextOccurrenceItemRef {
644    pub fn resolve<'m>(&self, model: &'m StepModel) -> AnnotationTextOccurrenceItemRefView<'m> {
645        match self {
646            AnnotationTextOccurrenceItemRef::AnnotationText(i) => {
647                AnnotationTextOccurrenceItemRefView::AnnotationText(
648                    model.annotation_text_arena.get(i.0),
649                )
650            }
651            AnnotationTextOccurrenceItemRef::AnnotationTextCharacter(i) => {
652                AnnotationTextOccurrenceItemRefView::AnnotationTextCharacter(
653                    model.annotation_text_character_arena.get(i.0),
654                )
655            }
656            AnnotationTextOccurrenceItemRef::CompositeText(i) => {
657                AnnotationTextOccurrenceItemRefView::CompositeText(
658                    model.composite_text_arena.get(i.0),
659                )
660            }
661            AnnotationTextOccurrenceItemRef::DefinedCharacterGlyph(i) => {
662                AnnotationTextOccurrenceItemRefView::DefinedCharacterGlyph(
663                    model.defined_character_glyph_arena.get(i.0),
664                )
665            }
666            AnnotationTextOccurrenceItemRef::TextLiteral(i) => {
667                AnnotationTextOccurrenceItemRefView::TextLiteral(model.text_literal_arena.get(i.0))
668            }
669            AnnotationTextOccurrenceItemRef::Complex(i) => {
670                AnnotationTextOccurrenceItemRefView::Complex(model.complex_unit_arena.get(i.0))
671            }
672        }
673    }
674    pub fn entity_key(&self) -> EntityKey {
675        match self {
676            AnnotationTextOccurrenceItemRef::AnnotationText(i) => EntityKey::AnnotationText(*i),
677            AnnotationTextOccurrenceItemRef::AnnotationTextCharacter(i) => {
678                EntityKey::AnnotationTextCharacter(*i)
679            }
680            AnnotationTextOccurrenceItemRef::CompositeText(i) => EntityKey::CompositeText(*i),
681            AnnotationTextOccurrenceItemRef::DefinedCharacterGlyph(i) => {
682                EntityKey::DefinedCharacterGlyph(*i)
683            }
684            AnnotationTextOccurrenceItemRef::TextLiteral(i) => EntityKey::TextLiteral(*i),
685            AnnotationTextOccurrenceItemRef::Complex(i) => EntityKey::ComplexUnit(*i),
686        }
687    }
688}
689
690#[derive(Clone, Copy, Debug)]
691pub enum AnnotationToModelLeaderLineRefView<'m> {
692    AnnotationToModelLeaderLine(&'m AnnotationToModelLeaderLine),
693}
694impl AnnotationToModelLeaderLineRef {
695    pub fn resolve<'m>(&self, model: &'m StepModel) -> AnnotationToModelLeaderLineRefView<'m> {
696        match self {
697            AnnotationToModelLeaderLineRef::AnnotationToModelLeaderLine(i) => {
698                AnnotationToModelLeaderLineRefView::AnnotationToModelLeaderLine(
699                    model.annotation_to_model_leader_line_arena.get(i.0),
700                )
701            }
702        }
703    }
704    pub fn entity_key(&self) -> EntityKey {
705        match self {
706            AnnotationToModelLeaderLineRef::AnnotationToModelLeaderLine(i) => {
707                EntityKey::AnnotationToModelLeaderLine(*i)
708            }
709        }
710    }
711}
712
713#[derive(Clone, Copy, Debug)]
714pub enum ApplicationContextRefView<'m> {
715    ApplicationContext(&'m ApplicationContext),
716}
717impl ApplicationContextRef {
718    pub fn resolve<'m>(&self, model: &'m StepModel) -> ApplicationContextRefView<'m> {
719        match self {
720            ApplicationContextRef::ApplicationContext(i) => {
721                ApplicationContextRefView::ApplicationContext(
722                    model.application_context_arena.get(i.0),
723                )
724            }
725        }
726    }
727    pub fn entity_key(&self) -> EntityKey {
728        match self {
729            ApplicationContextRef::ApplicationContext(i) => EntityKey::ApplicationContext(*i),
730        }
731    }
732}
733
734#[derive(Clone, Copy, Debug)]
735pub enum ApprovalRefView<'m> {
736    Approval(&'m Approval),
737}
738impl ApprovalRef {
739    pub fn resolve<'m>(&self, model: &'m StepModel) -> ApprovalRefView<'m> {
740        match self {
741            ApprovalRef::Approval(i) => ApprovalRefView::Approval(model.approval_arena.get(i.0)),
742        }
743    }
744    pub fn entity_key(&self) -> EntityKey {
745        match self {
746            ApprovalRef::Approval(i) => EntityKey::Approval(*i),
747        }
748    }
749}
750
751#[derive(Clone, Copy, Debug)]
752pub enum ApprovalItemRefView<'m> {
753    Action(&'m Action),
754    ActionDirective(&'m ActionDirective),
755    ActionMethod(&'m ActionMethod),
756    ActionMethodRelationship(&'m ActionMethodRelationship),
757    ActionProperty(&'m ActionProperty),
758    ActionRequestSolution(&'m ActionRequestSolution),
759    AdvancedBrepShapeRepresentation(&'m AdvancedBrepShapeRepresentation),
760    AdvancedFace(&'m AdvancedFace),
761    AngularLocation(&'m AngularLocation),
762    AnnotationCurveOccurrence(&'m AnnotationCurveOccurrence),
763    AnnotationFillAreaOccurrence(&'m AnnotationFillAreaOccurrence),
764    AnnotationOccurrence(&'m AnnotationOccurrence),
765    AnnotationPlaceholderLeaderLine(&'m AnnotationPlaceholderLeaderLine),
766    AnnotationPlaceholderOccurrence(&'m AnnotationPlaceholderOccurrence),
767    AnnotationPlaceholderOccurrenceWithLeaderLine(
768        &'m AnnotationPlaceholderOccurrenceWithLeaderLine,
769    ),
770    AnnotationPlane(&'m AnnotationPlane),
771    AnnotationSymbol(&'m AnnotationSymbol),
772    AnnotationSymbolOccurrence(&'m AnnotationSymbolOccurrence),
773    AnnotationText(&'m AnnotationText),
774    AnnotationTextCharacter(&'m AnnotationTextCharacter),
775    AnnotationTextOccurrence(&'m AnnotationTextOccurrence),
776    AnnotationToAnnotationLeaderLine(&'m AnnotationToAnnotationLeaderLine),
777    AnnotationToModelLeaderLine(&'m AnnotationToModelLeaderLine),
778    ApllPoint(&'m ApllPoint),
779    ApllPointWithSurface(&'m ApllPointWithSurface),
780    AppliedApprovalAssignment(&'m AppliedApprovalAssignment),
781    AppliedDateAndTimeAssignment(&'m AppliedDateAndTimeAssignment),
782    AppliedDocumentReference(&'m AppliedDocumentReference),
783    AppliedExternalIdentificationAssignment(&'m AppliedExternalIdentificationAssignment),
784    AppliedPersonAndOrganizationAssignment(&'m AppliedPersonAndOrganizationAssignment),
785    AssemblyComponentUsage(&'m AssemblyComponentUsage),
786    AuxiliaryLeaderLine(&'m AuxiliaryLeaderLine),
787    Axis1Placement(&'m Axis1Placement),
788    Axis2Placement2d(&'m Axis2Placement2d),
789    Axis2Placement3d(&'m Axis2Placement3d),
790    BSplineCurve(&'m BSplineCurve),
791    BSplineCurveWithKnots(&'m BSplineCurveWithKnots),
792    BSplineSurface(&'m BSplineSurface),
793    BSplineSurfaceWithKnots(&'m BSplineSurfaceWithKnots),
794    BezierCurve(&'m BezierCurve),
795    BezierSurface(&'m BezierSurface),
796    BoundedCurve(&'m BoundedCurve),
797    BoundedPcurve(&'m BoundedPcurve),
798    BoundedSurface(&'m BoundedSurface),
799    BoundedSurfaceCurve(&'m BoundedSurfaceCurve),
800    BrepWithVoids(&'m BrepWithVoids),
801    CalendarDate(&'m CalendarDate),
802    CameraImage(&'m CameraImage),
803    CameraImage3dWithScale(&'m CameraImage3dWithScale),
804    CameraModel(&'m CameraModel),
805    CameraModelD3(&'m CameraModelD3),
806    CameraModelD3MultiClipping(&'m CameraModelD3MultiClipping),
807    CameraModelD3WithHlhsr(&'m CameraModelD3WithHlhsr),
808    CartesianPoint(&'m CartesianPoint),
809    CcDesignDateAndTimeAssignment(&'m CcDesignDateAndTimeAssignment),
810    Certification(&'m Certification),
811    CharacterizedRepresentation(&'m CharacterizedRepresentation),
812    Circle(&'m Circle),
813    ClosedShell(&'m ClosedShell),
814    ComplexTriangulatedFace(&'m ComplexTriangulatedFace),
815    ComplexTriangulatedSurfaceSet(&'m ComplexTriangulatedSurfaceSet),
816    CompositeCurve(&'m CompositeCurve),
817    CompositeText(&'m CompositeText),
818    CompoundRepresentationItem(&'m CompoundRepresentationItem),
819    ConfigurationDesign(&'m ConfigurationDesign),
820    ConfigurationEffectivity(&'m ConfigurationEffectivity),
821    ConfigurationItem(&'m ConfigurationItem),
822    Conic(&'m Conic),
823    ConicalSurface(&'m ConicalSurface),
824    ConnectedFaceSet(&'m ConnectedFaceSet),
825    ConstructiveGeometryRepresentation(&'m ConstructiveGeometryRepresentation),
826    ConstructiveGeometryRepresentationRelationship(
827        &'m ConstructiveGeometryRepresentationRelationship,
828    ),
829    ContextDependentOverRidingStyledItem(&'m ContextDependentOverRidingStyledItem),
830    Contract(&'m Contract),
831    CoordinatesList(&'m CoordinatesList),
832    Curve(&'m Curve),
833    CylindricalSurface(&'m CylindricalSurface),
834    Date(&'m Date),
835    DateAndTimeAssignment(&'m DateAndTimeAssignment),
836    DefinedCharacterGlyph(&'m DefinedCharacterGlyph),
837    DefinedSymbol(&'m DefinedSymbol),
838    DefinitionalRepresentation(&'m DefinitionalRepresentation),
839    DefinitionalRepresentationRelationship(&'m DefinitionalRepresentationRelationship),
840    DefinitionalRepresentationRelationshipWithSameContext(
841        &'m DefinitionalRepresentationRelationshipWithSameContext,
842    ),
843    DegenerateToroidalSurface(&'m DegenerateToroidalSurface),
844    DescriptiveRepresentationItem(&'m DescriptiveRepresentationItem),
845    DesignContext(&'m DesignContext),
846    DimensionalLocation(&'m DimensionalLocation),
847    DimensionalLocationWithPath(&'m DimensionalLocationWithPath),
848    DirectedDimensionalLocation(&'m DirectedDimensionalLocation),
849    Direction(&'m Direction),
850    Document(&'m Document),
851    DocumentFile(&'m DocumentFile),
852    DraughtingAnnotationOccurrence(&'m DraughtingAnnotationOccurrence),
853    DraughtingCallout(&'m DraughtingCallout),
854    DraughtingModel(&'m DraughtingModel),
855    Edge(&'m Edge),
856    EdgeCurve(&'m EdgeCurve),
857    EdgeLoop(&'m EdgeLoop),
858    Effectivity(&'m Effectivity),
859    ElementarySurface(&'m ElementarySurface),
860    Ellipse(&'m Ellipse),
861    ExternallyDefinedHatchStyle(&'m ExternallyDefinedHatchStyle),
862    ExternallyDefinedTileStyle(&'m ExternallyDefinedTileStyle),
863    Face(&'m Face),
864    FaceBound(&'m FaceBound),
865    FaceOuterBound(&'m FaceOuterBound),
866    FaceSurface(&'m FaceSurface),
867    FeatureForDatumTargetRelationship(&'m FeatureForDatumTargetRelationship),
868    FillAreaStyleHatching(&'m FillAreaStyleHatching),
869    FillAreaStyleTileColouredRegion(&'m FillAreaStyleTileColouredRegion),
870    FillAreaStyleTileCurveWithStyle(&'m FillAreaStyleTileCurveWithStyle),
871    FillAreaStyleTileSymbolWithStyle(&'m FillAreaStyleTileSymbolWithStyle),
872    FillAreaStyleTiles(&'m FillAreaStyleTiles),
873    GeneralProperty(&'m GeneralProperty),
874    GeometricCurveSet(&'m GeometricCurveSet),
875    GeometricRepresentationItem(&'m GeometricRepresentationItem),
876    GeometricSet(&'m GeometricSet),
877    GeometricallyBoundedSurfaceShapeRepresentation(
878        &'m GeometricallyBoundedSurfaceShapeRepresentation,
879    ),
880    GeometricallyBoundedWireframeShapeRepresentation(
881        &'m GeometricallyBoundedWireframeShapeRepresentation,
882    ),
883    Group(&'m Group),
884    Hyperbola(&'m Hyperbola),
885    IntegerRepresentationItem(&'m IntegerRepresentationItem),
886    IntersectionCurve(&'m IntersectionCurve),
887    LeaderCurve(&'m LeaderCurve),
888    LeaderDirectedCallout(&'m LeaderDirectedCallout),
889    LeaderTerminator(&'m LeaderTerminator),
890    Line(&'m Line),
891    Loop(&'m Loop),
892    MakeFromUsageOption(&'m MakeFromUsageOption),
893    ManifoldSolidBrep(&'m ManifoldSolidBrep),
894    ManifoldSurfaceShapeRepresentation(&'m ManifoldSurfaceShapeRepresentation),
895    MappedItem(&'m MappedItem),
896    MeasureRepresentationItem(&'m MeasureRepresentationItem),
897    MechanicalDesignAndDraughtingRelationship(&'m MechanicalDesignAndDraughtingRelationship),
898    MechanicalDesignGeometricPresentationRepresentation(
899        &'m MechanicalDesignGeometricPresentationRepresentation,
900    ),
901    MechanicalDesignPresentationRepresentationWithDraughting(
902        &'m MechanicalDesignPresentationRepresentationWithDraughting,
903    ),
904    MechanicalDesignShadedPresentationRepresentation(
905        &'m MechanicalDesignShadedPresentationRepresentation,
906    ),
907    NextAssemblyUsageOccurrence(&'m NextAssemblyUsageOccurrence),
908    OffsetSurface(&'m OffsetSurface),
909    OneDirectionRepeatFactor(&'m OneDirectionRepeatFactor),
910    OpenShell(&'m OpenShell),
911    Organization(&'m Organization),
912    OrganizationRelationship(&'m OrganizationRelationship),
913    OrganizationalAddress(&'m OrganizationalAddress),
914    OrganizationalProject(&'m OrganizationalProject),
915    OrientedClosedShell(&'m OrientedClosedShell),
916    OrientedEdge(&'m OrientedEdge),
917    OverRidingStyledItem(&'m OverRidingStyledItem),
918    Path(&'m Path),
919    Pcurve(&'m Pcurve),
920    PersonAndOrganization(&'m PersonAndOrganization),
921    PersonAndOrganizationAddress(&'m PersonAndOrganizationAddress),
922    Placement(&'m Placement),
923    PlanarBox(&'m PlanarBox),
924    PlanarExtent(&'m PlanarExtent),
925    Plane(&'m Plane),
926    Point(&'m Point),
927    PolyLoop(&'m PolyLoop),
928    Polyline(&'m Polyline),
929    PresentationArea(&'m PresentationArea),
930    PresentationRepresentation(&'m PresentationRepresentation),
931    PresentationView(&'m PresentationView),
932    Product(&'m Product),
933    ProductConcept(&'m ProductConcept),
934    ProductConceptFeature(&'m ProductConceptFeature),
935    ProductConceptFeatureCategory(&'m ProductConceptFeatureCategory),
936    ProductDefinition(&'m ProductDefinition),
937    ProductDefinitionContext(&'m ProductDefinitionContext),
938    ProductDefinitionEffectivity(&'m ProductDefinitionEffectivity),
939    ProductDefinitionFormation(&'m ProductDefinitionFormation),
940    ProductDefinitionFormationWithSpecifiedSource(
941        &'m ProductDefinitionFormationWithSpecifiedSource,
942    ),
943    ProductDefinitionRelationship(&'m ProductDefinitionRelationship),
944    ProductDefinitionShape(&'m ProductDefinitionShape),
945    ProductDefinitionSubstitute(&'m ProductDefinitionSubstitute),
946    ProductDefinitionUsage(&'m ProductDefinitionUsage),
947    ProductDefinitionWithAssociatedDocuments(&'m ProductDefinitionWithAssociatedDocuments),
948    PropertyDefinition(&'m PropertyDefinition),
949    PropertyDefinitionRepresentation(&'m PropertyDefinitionRepresentation),
950    QualifiedRepresentationItem(&'m QualifiedRepresentationItem),
951    QuasiUniformCurve(&'m QuasiUniformCurve),
952    QuasiUniformSurface(&'m QuasiUniformSurface),
953    RationalBSplineCurve(&'m RationalBSplineCurve),
954    RationalBSplineSurface(&'m RationalBSplineSurface),
955    RealRepresentationItem(&'m RealRepresentationItem),
956    RepositionedTessellatedItem(&'m RepositionedTessellatedItem),
957    Representation(&'m Representation),
958    RepresentationItem(&'m RepresentationItem),
959    RepresentationRelationship(&'m RepresentationRelationship),
960    RepresentationRelationshipWithTransformation(&'m RepresentationRelationshipWithTransformation),
961    ResourceProperty(&'m ResourceProperty),
962    SeamCurve(&'m SeamCurve),
963    SecurityClassification(&'m SecurityClassification),
964    ShapeAspectAssociativity(&'m ShapeAspectAssociativity),
965    ShapeAspectDerivingRelationship(&'m ShapeAspectDerivingRelationship),
966    ShapeAspectRelationship(&'m ShapeAspectRelationship),
967    ShapeDefinitionRepresentation(&'m ShapeDefinitionRepresentation),
968    ShapeDimensionRepresentation(&'m ShapeDimensionRepresentation),
969    ShapeRepresentation(&'m ShapeRepresentation),
970    ShapeRepresentationRelationship(&'m ShapeRepresentationRelationship),
971    ShapeRepresentationWithParameters(&'m ShapeRepresentationWithParameters),
972    ShellBasedSurfaceModel(&'m ShellBasedSurfaceModel),
973    SolidModel(&'m SolidModel),
974    SphericalSurface(&'m SphericalSurface),
975    StyledItem(&'m StyledItem),
976    Surface(&'m Surface),
977    SurfaceCurve(&'m SurfaceCurve),
978    SurfaceOfLinearExtrusion(&'m SurfaceOfLinearExtrusion),
979    SurfaceOfRevolution(&'m SurfaceOfRevolution),
980    SweptSurface(&'m SweptSurface),
981    SymbolRepresentation(&'m SymbolRepresentation),
982    SymbolTarget(&'m SymbolTarget),
983    TerminatorSymbol(&'m TerminatorSymbol),
984    TessellatedAnnotationOccurrence(&'m TessellatedAnnotationOccurrence),
985    TessellatedCurveSet(&'m TessellatedCurveSet),
986    TessellatedFace(&'m TessellatedFace),
987    TessellatedGeometricSet(&'m TessellatedGeometricSet),
988    TessellatedItem(&'m TessellatedItem),
989    TessellatedShapeRepresentation(&'m TessellatedShapeRepresentation),
990    TessellatedShell(&'m TessellatedShell),
991    TessellatedSolid(&'m TessellatedSolid),
992    TessellatedStructuredItem(&'m TessellatedStructuredItem),
993    TessellatedSurfaceSet(&'m TessellatedSurfaceSet),
994    TextLiteral(&'m TextLiteral),
995    TopologicalRepresentationItem(&'m TopologicalRepresentationItem),
996    ToroidalSurface(&'m ToroidalSurface),
997    TrimmedCurve(&'m TrimmedCurve),
998    TwoDirectionRepeatFactor(&'m TwoDirectionRepeatFactor),
999    UniformCurve(&'m UniformCurve),
1000    UniformSurface(&'m UniformSurface),
1001    ValueRepresentationItem(&'m ValueRepresentationItem),
1002    Vector(&'m Vector),
1003    VersionedActionRequest(&'m VersionedActionRequest),
1004    Vertex(&'m Vertex),
1005    VertexLoop(&'m VertexLoop),
1006    VertexPoint(&'m VertexPoint),
1007    VertexShell(&'m VertexShell),
1008    WireShell(&'m WireShell),
1009    Complex(&'m ComplexUnit),
1010}
1011impl ApprovalItemRef {
1012    pub fn resolve<'m>(&self, model: &'m StepModel) -> ApprovalItemRefView<'m> {
1013        match self {
1014            ApprovalItemRef::Action(i) => ApprovalItemRefView::Action(model.action_arena.get(i.0)),
1015            ApprovalItemRef::ActionDirective(i) => {
1016                ApprovalItemRefView::ActionDirective(model.action_directive_arena.get(i.0))
1017            }
1018            ApprovalItemRef::ActionMethod(i) => {
1019                ApprovalItemRefView::ActionMethod(model.action_method_arena.get(i.0))
1020            }
1021            ApprovalItemRef::ActionMethodRelationship(i) => {
1022                ApprovalItemRefView::ActionMethodRelationship(
1023                    model.action_method_relationship_arena.get(i.0),
1024                )
1025            }
1026            ApprovalItemRef::ActionProperty(i) => {
1027                ApprovalItemRefView::ActionProperty(model.action_property_arena.get(i.0))
1028            }
1029            ApprovalItemRef::ActionRequestSolution(i) => {
1030                ApprovalItemRefView::ActionRequestSolution(
1031                    model.action_request_solution_arena.get(i.0),
1032                )
1033            }
1034            ApprovalItemRef::AdvancedBrepShapeRepresentation(i) => {
1035                ApprovalItemRefView::AdvancedBrepShapeRepresentation(
1036                    model.advanced_brep_shape_representation_arena.get(i.0),
1037                )
1038            }
1039            ApprovalItemRef::AdvancedFace(i) => {
1040                ApprovalItemRefView::AdvancedFace(model.advanced_face_arena.get(i.0))
1041            }
1042            ApprovalItemRef::AngularLocation(i) => {
1043                ApprovalItemRefView::AngularLocation(model.angular_location_arena.get(i.0))
1044            }
1045            ApprovalItemRef::AnnotationCurveOccurrence(i) => {
1046                ApprovalItemRefView::AnnotationCurveOccurrence(
1047                    model.annotation_curve_occurrence_arena.get(i.0),
1048                )
1049            }
1050            ApprovalItemRef::AnnotationFillAreaOccurrence(i) => {
1051                ApprovalItemRefView::AnnotationFillAreaOccurrence(
1052                    model.annotation_fill_area_occurrence_arena.get(i.0),
1053                )
1054            }
1055            ApprovalItemRef::AnnotationOccurrence(i) => ApprovalItemRefView::AnnotationOccurrence(
1056                model.annotation_occurrence_arena.get(i.0),
1057            ),
1058            ApprovalItemRef::AnnotationPlaceholderLeaderLine(i) => {
1059                ApprovalItemRefView::AnnotationPlaceholderLeaderLine(
1060                    model.annotation_placeholder_leader_line_arena.get(i.0),
1061                )
1062            }
1063            ApprovalItemRef::AnnotationPlaceholderOccurrence(i) => {
1064                ApprovalItemRefView::AnnotationPlaceholderOccurrence(
1065                    model.annotation_placeholder_occurrence_arena.get(i.0),
1066                )
1067            }
1068            ApprovalItemRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => {
1069                ApprovalItemRefView::AnnotationPlaceholderOccurrenceWithLeaderLine(
1070                    model
1071                        .annotation_placeholder_occurrence_with_leader_line_arena
1072                        .get(i.0),
1073                )
1074            }
1075            ApprovalItemRef::AnnotationPlane(i) => {
1076                ApprovalItemRefView::AnnotationPlane(model.annotation_plane_arena.get(i.0))
1077            }
1078            ApprovalItemRef::AnnotationSymbol(i) => {
1079                ApprovalItemRefView::AnnotationSymbol(model.annotation_symbol_arena.get(i.0))
1080            }
1081            ApprovalItemRef::AnnotationSymbolOccurrence(i) => {
1082                ApprovalItemRefView::AnnotationSymbolOccurrence(
1083                    model.annotation_symbol_occurrence_arena.get(i.0),
1084                )
1085            }
1086            ApprovalItemRef::AnnotationText(i) => {
1087                ApprovalItemRefView::AnnotationText(model.annotation_text_arena.get(i.0))
1088            }
1089            ApprovalItemRef::AnnotationTextCharacter(i) => {
1090                ApprovalItemRefView::AnnotationTextCharacter(
1091                    model.annotation_text_character_arena.get(i.0),
1092                )
1093            }
1094            ApprovalItemRef::AnnotationTextOccurrence(i) => {
1095                ApprovalItemRefView::AnnotationTextOccurrence(
1096                    model.annotation_text_occurrence_arena.get(i.0),
1097                )
1098            }
1099            ApprovalItemRef::AnnotationToAnnotationLeaderLine(i) => {
1100                ApprovalItemRefView::AnnotationToAnnotationLeaderLine(
1101                    model.annotation_to_annotation_leader_line_arena.get(i.0),
1102                )
1103            }
1104            ApprovalItemRef::AnnotationToModelLeaderLine(i) => {
1105                ApprovalItemRefView::AnnotationToModelLeaderLine(
1106                    model.annotation_to_model_leader_line_arena.get(i.0),
1107                )
1108            }
1109            ApprovalItemRef::ApllPoint(i) => {
1110                ApprovalItemRefView::ApllPoint(model.apll_point_arena.get(i.0))
1111            }
1112            ApprovalItemRef::ApllPointWithSurface(i) => ApprovalItemRefView::ApllPointWithSurface(
1113                model.apll_point_with_surface_arena.get(i.0),
1114            ),
1115            ApprovalItemRef::AppliedApprovalAssignment(i) => {
1116                ApprovalItemRefView::AppliedApprovalAssignment(
1117                    model.applied_approval_assignment_arena.get(i.0),
1118                )
1119            }
1120            ApprovalItemRef::AppliedDateAndTimeAssignment(i) => {
1121                ApprovalItemRefView::AppliedDateAndTimeAssignment(
1122                    model.applied_date_and_time_assignment_arena.get(i.0),
1123                )
1124            }
1125            ApprovalItemRef::AppliedDocumentReference(i) => {
1126                ApprovalItemRefView::AppliedDocumentReference(
1127                    model.applied_document_reference_arena.get(i.0),
1128                )
1129            }
1130            ApprovalItemRef::AppliedExternalIdentificationAssignment(i) => {
1131                ApprovalItemRefView::AppliedExternalIdentificationAssignment(
1132                    model
1133                        .applied_external_identification_assignment_arena
1134                        .get(i.0),
1135                )
1136            }
1137            ApprovalItemRef::AppliedPersonAndOrganizationAssignment(i) => {
1138                ApprovalItemRefView::AppliedPersonAndOrganizationAssignment(
1139                    model
1140                        .applied_person_and_organization_assignment_arena
1141                        .get(i.0),
1142                )
1143            }
1144            ApprovalItemRef::AssemblyComponentUsage(i) => {
1145                ApprovalItemRefView::AssemblyComponentUsage(
1146                    model.assembly_component_usage_arena.get(i.0),
1147                )
1148            }
1149            ApprovalItemRef::AuxiliaryLeaderLine(i) => {
1150                ApprovalItemRefView::AuxiliaryLeaderLine(model.auxiliary_leader_line_arena.get(i.0))
1151            }
1152            ApprovalItemRef::Axis1Placement(i) => {
1153                ApprovalItemRefView::Axis1Placement(model.axis1_placement_arena.get(i.0))
1154            }
1155            ApprovalItemRef::Axis2Placement2d(i) => {
1156                ApprovalItemRefView::Axis2Placement2d(model.axis2_placement2d_arena.get(i.0))
1157            }
1158            ApprovalItemRef::Axis2Placement3d(i) => {
1159                ApprovalItemRefView::Axis2Placement3d(model.axis2_placement3d_arena.get(i.0))
1160            }
1161            ApprovalItemRef::BSplineCurve(i) => {
1162                ApprovalItemRefView::BSplineCurve(model.b_spline_curve_arena.get(i.0))
1163            }
1164            ApprovalItemRef::BSplineCurveWithKnots(i) => {
1165                ApprovalItemRefView::BSplineCurveWithKnots(
1166                    model.b_spline_curve_with_knots_arena.get(i.0),
1167                )
1168            }
1169            ApprovalItemRef::BSplineSurface(i) => {
1170                ApprovalItemRefView::BSplineSurface(model.b_spline_surface_arena.get(i.0))
1171            }
1172            ApprovalItemRef::BSplineSurfaceWithKnots(i) => {
1173                ApprovalItemRefView::BSplineSurfaceWithKnots(
1174                    model.b_spline_surface_with_knots_arena.get(i.0),
1175                )
1176            }
1177            ApprovalItemRef::BezierCurve(i) => {
1178                ApprovalItemRefView::BezierCurve(model.bezier_curve_arena.get(i.0))
1179            }
1180            ApprovalItemRef::BezierSurface(i) => {
1181                ApprovalItemRefView::BezierSurface(model.bezier_surface_arena.get(i.0))
1182            }
1183            ApprovalItemRef::BoundedCurve(i) => {
1184                ApprovalItemRefView::BoundedCurve(model.bounded_curve_arena.get(i.0))
1185            }
1186            ApprovalItemRef::BoundedPcurve(i) => {
1187                ApprovalItemRefView::BoundedPcurve(model.bounded_pcurve_arena.get(i.0))
1188            }
1189            ApprovalItemRef::BoundedSurface(i) => {
1190                ApprovalItemRefView::BoundedSurface(model.bounded_surface_arena.get(i.0))
1191            }
1192            ApprovalItemRef::BoundedSurfaceCurve(i) => {
1193                ApprovalItemRefView::BoundedSurfaceCurve(model.bounded_surface_curve_arena.get(i.0))
1194            }
1195            ApprovalItemRef::BrepWithVoids(i) => {
1196                ApprovalItemRefView::BrepWithVoids(model.brep_with_voids_arena.get(i.0))
1197            }
1198            ApprovalItemRef::CalendarDate(i) => {
1199                ApprovalItemRefView::CalendarDate(model.calendar_date_arena.get(i.0))
1200            }
1201            ApprovalItemRef::CameraImage(i) => {
1202                ApprovalItemRefView::CameraImage(model.camera_image_arena.get(i.0))
1203            }
1204            ApprovalItemRef::CameraImage3dWithScale(i) => {
1205                ApprovalItemRefView::CameraImage3dWithScale(
1206                    model.camera_image3d_with_scale_arena.get(i.0),
1207                )
1208            }
1209            ApprovalItemRef::CameraModel(i) => {
1210                ApprovalItemRefView::CameraModel(model.camera_model_arena.get(i.0))
1211            }
1212            ApprovalItemRef::CameraModelD3(i) => {
1213                ApprovalItemRefView::CameraModelD3(model.camera_model_d3_arena.get(i.0))
1214            }
1215            ApprovalItemRef::CameraModelD3MultiClipping(i) => {
1216                ApprovalItemRefView::CameraModelD3MultiClipping(
1217                    model.camera_model_d3_multi_clipping_arena.get(i.0),
1218                )
1219            }
1220            ApprovalItemRef::CameraModelD3WithHlhsr(i) => {
1221                ApprovalItemRefView::CameraModelD3WithHlhsr(
1222                    model.camera_model_d3_with_hlhsr_arena.get(i.0),
1223                )
1224            }
1225            ApprovalItemRef::CartesianPoint(i) => {
1226                ApprovalItemRefView::CartesianPoint(model.cartesian_point_arena.get(i.0))
1227            }
1228            ApprovalItemRef::CcDesignDateAndTimeAssignment(i) => {
1229                ApprovalItemRefView::CcDesignDateAndTimeAssignment(
1230                    model.cc_design_date_and_time_assignment_arena.get(i.0),
1231                )
1232            }
1233            ApprovalItemRef::Certification(i) => {
1234                ApprovalItemRefView::Certification(model.certification_arena.get(i.0))
1235            }
1236            ApprovalItemRef::CharacterizedRepresentation(i) => {
1237                ApprovalItemRefView::CharacterizedRepresentation(
1238                    model.characterized_representation_arena.get(i.0),
1239                )
1240            }
1241            ApprovalItemRef::Circle(i) => ApprovalItemRefView::Circle(model.circle_arena.get(i.0)),
1242            ApprovalItemRef::ClosedShell(i) => {
1243                ApprovalItemRefView::ClosedShell(model.closed_shell_arena.get(i.0))
1244            }
1245            ApprovalItemRef::ComplexTriangulatedFace(i) => {
1246                ApprovalItemRefView::ComplexTriangulatedFace(
1247                    model.complex_triangulated_face_arena.get(i.0),
1248                )
1249            }
1250            ApprovalItemRef::ComplexTriangulatedSurfaceSet(i) => {
1251                ApprovalItemRefView::ComplexTriangulatedSurfaceSet(
1252                    model.complex_triangulated_surface_set_arena.get(i.0),
1253                )
1254            }
1255            ApprovalItemRef::CompositeCurve(i) => {
1256                ApprovalItemRefView::CompositeCurve(model.composite_curve_arena.get(i.0))
1257            }
1258            ApprovalItemRef::CompositeText(i) => {
1259                ApprovalItemRefView::CompositeText(model.composite_text_arena.get(i.0))
1260            }
1261            ApprovalItemRef::CompoundRepresentationItem(i) => {
1262                ApprovalItemRefView::CompoundRepresentationItem(
1263                    model.compound_representation_item_arena.get(i.0),
1264                )
1265            }
1266            ApprovalItemRef::ConfigurationDesign(i) => {
1267                ApprovalItemRefView::ConfigurationDesign(model.configuration_design_arena.get(i.0))
1268            }
1269            ApprovalItemRef::ConfigurationEffectivity(i) => {
1270                ApprovalItemRefView::ConfigurationEffectivity(
1271                    model.configuration_effectivity_arena.get(i.0),
1272                )
1273            }
1274            ApprovalItemRef::ConfigurationItem(i) => {
1275                ApprovalItemRefView::ConfigurationItem(model.configuration_item_arena.get(i.0))
1276            }
1277            ApprovalItemRef::Conic(i) => ApprovalItemRefView::Conic(model.conic_arena.get(i.0)),
1278            ApprovalItemRef::ConicalSurface(i) => {
1279                ApprovalItemRefView::ConicalSurface(model.conical_surface_arena.get(i.0))
1280            }
1281            ApprovalItemRef::ConnectedFaceSet(i) => {
1282                ApprovalItemRefView::ConnectedFaceSet(model.connected_face_set_arena.get(i.0))
1283            }
1284            ApprovalItemRef::ConstructiveGeometryRepresentation(i) => {
1285                ApprovalItemRefView::ConstructiveGeometryRepresentation(
1286                    model.constructive_geometry_representation_arena.get(i.0),
1287                )
1288            }
1289            ApprovalItemRef::ConstructiveGeometryRepresentationRelationship(i) => {
1290                ApprovalItemRefView::ConstructiveGeometryRepresentationRelationship(
1291                    model
1292                        .constructive_geometry_representation_relationship_arena
1293                        .get(i.0),
1294                )
1295            }
1296            ApprovalItemRef::ContextDependentOverRidingStyledItem(i) => {
1297                ApprovalItemRefView::ContextDependentOverRidingStyledItem(
1298                    model
1299                        .context_dependent_over_riding_styled_item_arena
1300                        .get(i.0),
1301                )
1302            }
1303            ApprovalItemRef::Contract(i) => {
1304                ApprovalItemRefView::Contract(model.contract_arena.get(i.0))
1305            }
1306            ApprovalItemRef::CoordinatesList(i) => {
1307                ApprovalItemRefView::CoordinatesList(model.coordinates_list_arena.get(i.0))
1308            }
1309            ApprovalItemRef::Curve(i) => ApprovalItemRefView::Curve(model.curve_arena.get(i.0)),
1310            ApprovalItemRef::CylindricalSurface(i) => {
1311                ApprovalItemRefView::CylindricalSurface(model.cylindrical_surface_arena.get(i.0))
1312            }
1313            ApprovalItemRef::Date(i) => ApprovalItemRefView::Date(model.date_arena.get(i.0)),
1314            ApprovalItemRef::DateAndTimeAssignment(i) => {
1315                ApprovalItemRefView::DateAndTimeAssignment(
1316                    model.date_and_time_assignment_arena.get(i.0),
1317                )
1318            }
1319            ApprovalItemRef::DefinedCharacterGlyph(i) => {
1320                ApprovalItemRefView::DefinedCharacterGlyph(
1321                    model.defined_character_glyph_arena.get(i.0),
1322                )
1323            }
1324            ApprovalItemRef::DefinedSymbol(i) => {
1325                ApprovalItemRefView::DefinedSymbol(model.defined_symbol_arena.get(i.0))
1326            }
1327            ApprovalItemRef::DefinitionalRepresentation(i) => {
1328                ApprovalItemRefView::DefinitionalRepresentation(
1329                    model.definitional_representation_arena.get(i.0),
1330                )
1331            }
1332            ApprovalItemRef::DefinitionalRepresentationRelationship(i) => {
1333                ApprovalItemRefView::DefinitionalRepresentationRelationship(
1334                    model
1335                        .definitional_representation_relationship_arena
1336                        .get(i.0),
1337                )
1338            }
1339            ApprovalItemRef::DefinitionalRepresentationRelationshipWithSameContext(i) => {
1340                ApprovalItemRefView::DefinitionalRepresentationRelationshipWithSameContext(
1341                    model
1342                        .definitional_representation_relationship_with_same_context_arena
1343                        .get(i.0),
1344                )
1345            }
1346            ApprovalItemRef::DegenerateToroidalSurface(i) => {
1347                ApprovalItemRefView::DegenerateToroidalSurface(
1348                    model.degenerate_toroidal_surface_arena.get(i.0),
1349                )
1350            }
1351            ApprovalItemRef::DescriptiveRepresentationItem(i) => {
1352                ApprovalItemRefView::DescriptiveRepresentationItem(
1353                    model.descriptive_representation_item_arena.get(i.0),
1354                )
1355            }
1356            ApprovalItemRef::DesignContext(i) => {
1357                ApprovalItemRefView::DesignContext(model.design_context_arena.get(i.0))
1358            }
1359            ApprovalItemRef::DimensionalLocation(i) => {
1360                ApprovalItemRefView::DimensionalLocation(model.dimensional_location_arena.get(i.0))
1361            }
1362            ApprovalItemRef::DimensionalLocationWithPath(i) => {
1363                ApprovalItemRefView::DimensionalLocationWithPath(
1364                    model.dimensional_location_with_path_arena.get(i.0),
1365                )
1366            }
1367            ApprovalItemRef::DirectedDimensionalLocation(i) => {
1368                ApprovalItemRefView::DirectedDimensionalLocation(
1369                    model.directed_dimensional_location_arena.get(i.0),
1370                )
1371            }
1372            ApprovalItemRef::Direction(i) => {
1373                ApprovalItemRefView::Direction(model.direction_arena.get(i.0))
1374            }
1375            ApprovalItemRef::Document(i) => {
1376                ApprovalItemRefView::Document(model.document_arena.get(i.0))
1377            }
1378            ApprovalItemRef::DocumentFile(i) => {
1379                ApprovalItemRefView::DocumentFile(model.document_file_arena.get(i.0))
1380            }
1381            ApprovalItemRef::DraughtingAnnotationOccurrence(i) => {
1382                ApprovalItemRefView::DraughtingAnnotationOccurrence(
1383                    model.draughting_annotation_occurrence_arena.get(i.0),
1384                )
1385            }
1386            ApprovalItemRef::DraughtingCallout(i) => {
1387                ApprovalItemRefView::DraughtingCallout(model.draughting_callout_arena.get(i.0))
1388            }
1389            ApprovalItemRef::DraughtingModel(i) => {
1390                ApprovalItemRefView::DraughtingModel(model.draughting_model_arena.get(i.0))
1391            }
1392            ApprovalItemRef::Edge(i) => ApprovalItemRefView::Edge(model.edge_arena.get(i.0)),
1393            ApprovalItemRef::EdgeCurve(i) => {
1394                ApprovalItemRefView::EdgeCurve(model.edge_curve_arena.get(i.0))
1395            }
1396            ApprovalItemRef::EdgeLoop(i) => {
1397                ApprovalItemRefView::EdgeLoop(model.edge_loop_arena.get(i.0))
1398            }
1399            ApprovalItemRef::Effectivity(i) => {
1400                ApprovalItemRefView::Effectivity(model.effectivity_arena.get(i.0))
1401            }
1402            ApprovalItemRef::ElementarySurface(i) => {
1403                ApprovalItemRefView::ElementarySurface(model.elementary_surface_arena.get(i.0))
1404            }
1405            ApprovalItemRef::Ellipse(i) => {
1406                ApprovalItemRefView::Ellipse(model.ellipse_arena.get(i.0))
1407            }
1408            ApprovalItemRef::ExternallyDefinedHatchStyle(i) => {
1409                ApprovalItemRefView::ExternallyDefinedHatchStyle(
1410                    model.externally_defined_hatch_style_arena.get(i.0),
1411                )
1412            }
1413            ApprovalItemRef::ExternallyDefinedTileStyle(i) => {
1414                ApprovalItemRefView::ExternallyDefinedTileStyle(
1415                    model.externally_defined_tile_style_arena.get(i.0),
1416                )
1417            }
1418            ApprovalItemRef::Face(i) => ApprovalItemRefView::Face(model.face_arena.get(i.0)),
1419            ApprovalItemRef::FaceBound(i) => {
1420                ApprovalItemRefView::FaceBound(model.face_bound_arena.get(i.0))
1421            }
1422            ApprovalItemRef::FaceOuterBound(i) => {
1423                ApprovalItemRefView::FaceOuterBound(model.face_outer_bound_arena.get(i.0))
1424            }
1425            ApprovalItemRef::FaceSurface(i) => {
1426                ApprovalItemRefView::FaceSurface(model.face_surface_arena.get(i.0))
1427            }
1428            ApprovalItemRef::FeatureForDatumTargetRelationship(i) => {
1429                ApprovalItemRefView::FeatureForDatumTargetRelationship(
1430                    model.feature_for_datum_target_relationship_arena.get(i.0),
1431                )
1432            }
1433            ApprovalItemRef::FillAreaStyleHatching(i) => {
1434                ApprovalItemRefView::FillAreaStyleHatching(
1435                    model.fill_area_style_hatching_arena.get(i.0),
1436                )
1437            }
1438            ApprovalItemRef::FillAreaStyleTileColouredRegion(i) => {
1439                ApprovalItemRefView::FillAreaStyleTileColouredRegion(
1440                    model.fill_area_style_tile_coloured_region_arena.get(i.0),
1441                )
1442            }
1443            ApprovalItemRef::FillAreaStyleTileCurveWithStyle(i) => {
1444                ApprovalItemRefView::FillAreaStyleTileCurveWithStyle(
1445                    model.fill_area_style_tile_curve_with_style_arena.get(i.0),
1446                )
1447            }
1448            ApprovalItemRef::FillAreaStyleTileSymbolWithStyle(i) => {
1449                ApprovalItemRefView::FillAreaStyleTileSymbolWithStyle(
1450                    model.fill_area_style_tile_symbol_with_style_arena.get(i.0),
1451                )
1452            }
1453            ApprovalItemRef::FillAreaStyleTiles(i) => {
1454                ApprovalItemRefView::FillAreaStyleTiles(model.fill_area_style_tiles_arena.get(i.0))
1455            }
1456            ApprovalItemRef::GeneralProperty(i) => {
1457                ApprovalItemRefView::GeneralProperty(model.general_property_arena.get(i.0))
1458            }
1459            ApprovalItemRef::GeometricCurveSet(i) => {
1460                ApprovalItemRefView::GeometricCurveSet(model.geometric_curve_set_arena.get(i.0))
1461            }
1462            ApprovalItemRef::GeometricRepresentationItem(i) => {
1463                ApprovalItemRefView::GeometricRepresentationItem(
1464                    model.geometric_representation_item_arena.get(i.0),
1465                )
1466            }
1467            ApprovalItemRef::GeometricSet(i) => {
1468                ApprovalItemRefView::GeometricSet(model.geometric_set_arena.get(i.0))
1469            }
1470            ApprovalItemRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => {
1471                ApprovalItemRefView::GeometricallyBoundedSurfaceShapeRepresentation(
1472                    model
1473                        .geometrically_bounded_surface_shape_representation_arena
1474                        .get(i.0),
1475                )
1476            }
1477            ApprovalItemRef::GeometricallyBoundedWireframeShapeRepresentation(i) => {
1478                ApprovalItemRefView::GeometricallyBoundedWireframeShapeRepresentation(
1479                    model
1480                        .geometrically_bounded_wireframe_shape_representation_arena
1481                        .get(i.0),
1482                )
1483            }
1484            ApprovalItemRef::Group(i) => ApprovalItemRefView::Group(model.group_arena.get(i.0)),
1485            ApprovalItemRef::Hyperbola(i) => {
1486                ApprovalItemRefView::Hyperbola(model.hyperbola_arena.get(i.0))
1487            }
1488            ApprovalItemRef::IntegerRepresentationItem(i) => {
1489                ApprovalItemRefView::IntegerRepresentationItem(
1490                    model.integer_representation_item_arena.get(i.0),
1491                )
1492            }
1493            ApprovalItemRef::IntersectionCurve(i) => {
1494                ApprovalItemRefView::IntersectionCurve(model.intersection_curve_arena.get(i.0))
1495            }
1496            ApprovalItemRef::LeaderCurve(i) => {
1497                ApprovalItemRefView::LeaderCurve(model.leader_curve_arena.get(i.0))
1498            }
1499            ApprovalItemRef::LeaderDirectedCallout(i) => {
1500                ApprovalItemRefView::LeaderDirectedCallout(
1501                    model.leader_directed_callout_arena.get(i.0),
1502                )
1503            }
1504            ApprovalItemRef::LeaderTerminator(i) => {
1505                ApprovalItemRefView::LeaderTerminator(model.leader_terminator_arena.get(i.0))
1506            }
1507            ApprovalItemRef::Line(i) => ApprovalItemRefView::Line(model.line_arena.get(i.0)),
1508            ApprovalItemRef::Loop(i) => ApprovalItemRefView::Loop(model.loop_arena.get(i.0)),
1509            ApprovalItemRef::MakeFromUsageOption(i) => ApprovalItemRefView::MakeFromUsageOption(
1510                model.make_from_usage_option_arena.get(i.0),
1511            ),
1512            ApprovalItemRef::ManifoldSolidBrep(i) => {
1513                ApprovalItemRefView::ManifoldSolidBrep(model.manifold_solid_brep_arena.get(i.0))
1514            }
1515            ApprovalItemRef::ManifoldSurfaceShapeRepresentation(i) => {
1516                ApprovalItemRefView::ManifoldSurfaceShapeRepresentation(
1517                    model.manifold_surface_shape_representation_arena.get(i.0),
1518                )
1519            }
1520            ApprovalItemRef::MappedItem(i) => {
1521                ApprovalItemRefView::MappedItem(model.mapped_item_arena.get(i.0))
1522            }
1523            ApprovalItemRef::MeasureRepresentationItem(i) => {
1524                ApprovalItemRefView::MeasureRepresentationItem(
1525                    model.measure_representation_item_arena.get(i.0),
1526                )
1527            }
1528            ApprovalItemRef::MechanicalDesignAndDraughtingRelationship(i) => {
1529                ApprovalItemRefView::MechanicalDesignAndDraughtingRelationship(
1530                    model
1531                        .mechanical_design_and_draughting_relationship_arena
1532                        .get(i.0),
1533                )
1534            }
1535            ApprovalItemRef::MechanicalDesignGeometricPresentationRepresentation(i) => {
1536                ApprovalItemRefView::MechanicalDesignGeometricPresentationRepresentation(
1537                    model
1538                        .mechanical_design_geometric_presentation_representation_arena
1539                        .get(i.0),
1540                )
1541            }
1542            ApprovalItemRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => {
1543                ApprovalItemRefView::MechanicalDesignPresentationRepresentationWithDraughting(
1544                    model
1545                        .mechanical_design_presentation_representation_with_draughting_arena
1546                        .get(i.0),
1547                )
1548            }
1549            ApprovalItemRef::MechanicalDesignShadedPresentationRepresentation(i) => {
1550                ApprovalItemRefView::MechanicalDesignShadedPresentationRepresentation(
1551                    model
1552                        .mechanical_design_shaded_presentation_representation_arena
1553                        .get(i.0),
1554                )
1555            }
1556            ApprovalItemRef::NextAssemblyUsageOccurrence(i) => {
1557                ApprovalItemRefView::NextAssemblyUsageOccurrence(
1558                    model.next_assembly_usage_occurrence_arena.get(i.0),
1559                )
1560            }
1561            ApprovalItemRef::OffsetSurface(i) => {
1562                ApprovalItemRefView::OffsetSurface(model.offset_surface_arena.get(i.0))
1563            }
1564            ApprovalItemRef::OneDirectionRepeatFactor(i) => {
1565                ApprovalItemRefView::OneDirectionRepeatFactor(
1566                    model.one_direction_repeat_factor_arena.get(i.0),
1567                )
1568            }
1569            ApprovalItemRef::OpenShell(i) => {
1570                ApprovalItemRefView::OpenShell(model.open_shell_arena.get(i.0))
1571            }
1572            ApprovalItemRef::Organization(i) => {
1573                ApprovalItemRefView::Organization(model.organization_arena.get(i.0))
1574            }
1575            ApprovalItemRef::OrganizationRelationship(i) => {
1576                ApprovalItemRefView::OrganizationRelationship(
1577                    model.organization_relationship_arena.get(i.0),
1578                )
1579            }
1580            ApprovalItemRef::OrganizationalAddress(i) => {
1581                ApprovalItemRefView::OrganizationalAddress(
1582                    model.organizational_address_arena.get(i.0),
1583                )
1584            }
1585            ApprovalItemRef::OrganizationalProject(i) => {
1586                ApprovalItemRefView::OrganizationalProject(
1587                    model.organizational_project_arena.get(i.0),
1588                )
1589            }
1590            ApprovalItemRef::OrientedClosedShell(i) => {
1591                ApprovalItemRefView::OrientedClosedShell(model.oriented_closed_shell_arena.get(i.0))
1592            }
1593            ApprovalItemRef::OrientedEdge(i) => {
1594                ApprovalItemRefView::OrientedEdge(model.oriented_edge_arena.get(i.0))
1595            }
1596            ApprovalItemRef::OverRidingStyledItem(i) => ApprovalItemRefView::OverRidingStyledItem(
1597                model.over_riding_styled_item_arena.get(i.0),
1598            ),
1599            ApprovalItemRef::Path(i) => ApprovalItemRefView::Path(model.path_arena.get(i.0)),
1600            ApprovalItemRef::Pcurve(i) => ApprovalItemRefView::Pcurve(model.pcurve_arena.get(i.0)),
1601            ApprovalItemRef::PersonAndOrganization(i) => {
1602                ApprovalItemRefView::PersonAndOrganization(
1603                    model.person_and_organization_arena.get(i.0),
1604                )
1605            }
1606            ApprovalItemRef::PersonAndOrganizationAddress(i) => {
1607                ApprovalItemRefView::PersonAndOrganizationAddress(
1608                    model.person_and_organization_address_arena.get(i.0),
1609                )
1610            }
1611            ApprovalItemRef::Placement(i) => {
1612                ApprovalItemRefView::Placement(model.placement_arena.get(i.0))
1613            }
1614            ApprovalItemRef::PlanarBox(i) => {
1615                ApprovalItemRefView::PlanarBox(model.planar_box_arena.get(i.0))
1616            }
1617            ApprovalItemRef::PlanarExtent(i) => {
1618                ApprovalItemRefView::PlanarExtent(model.planar_extent_arena.get(i.0))
1619            }
1620            ApprovalItemRef::Plane(i) => ApprovalItemRefView::Plane(model.plane_arena.get(i.0)),
1621            ApprovalItemRef::Point(i) => ApprovalItemRefView::Point(model.point_arena.get(i.0)),
1622            ApprovalItemRef::PolyLoop(i) => {
1623                ApprovalItemRefView::PolyLoop(model.poly_loop_arena.get(i.0))
1624            }
1625            ApprovalItemRef::Polyline(i) => {
1626                ApprovalItemRefView::Polyline(model.polyline_arena.get(i.0))
1627            }
1628            ApprovalItemRef::PresentationArea(i) => {
1629                ApprovalItemRefView::PresentationArea(model.presentation_area_arena.get(i.0))
1630            }
1631            ApprovalItemRef::PresentationRepresentation(i) => {
1632                ApprovalItemRefView::PresentationRepresentation(
1633                    model.presentation_representation_arena.get(i.0),
1634                )
1635            }
1636            ApprovalItemRef::PresentationView(i) => {
1637                ApprovalItemRefView::PresentationView(model.presentation_view_arena.get(i.0))
1638            }
1639            ApprovalItemRef::Product(i) => {
1640                ApprovalItemRefView::Product(model.product_arena.get(i.0))
1641            }
1642            ApprovalItemRef::ProductConcept(i) => {
1643                ApprovalItemRefView::ProductConcept(model.product_concept_arena.get(i.0))
1644            }
1645            ApprovalItemRef::ProductConceptFeature(i) => {
1646                ApprovalItemRefView::ProductConceptFeature(
1647                    model.product_concept_feature_arena.get(i.0),
1648                )
1649            }
1650            ApprovalItemRef::ProductConceptFeatureCategory(i) => {
1651                ApprovalItemRefView::ProductConceptFeatureCategory(
1652                    model.product_concept_feature_category_arena.get(i.0),
1653                )
1654            }
1655            ApprovalItemRef::ProductDefinition(i) => {
1656                ApprovalItemRefView::ProductDefinition(model.product_definition_arena.get(i.0))
1657            }
1658            ApprovalItemRef::ProductDefinitionContext(i) => {
1659                ApprovalItemRefView::ProductDefinitionContext(
1660                    model.product_definition_context_arena.get(i.0),
1661                )
1662            }
1663            ApprovalItemRef::ProductDefinitionEffectivity(i) => {
1664                ApprovalItemRefView::ProductDefinitionEffectivity(
1665                    model.product_definition_effectivity_arena.get(i.0),
1666                )
1667            }
1668            ApprovalItemRef::ProductDefinitionFormation(i) => {
1669                ApprovalItemRefView::ProductDefinitionFormation(
1670                    model.product_definition_formation_arena.get(i.0),
1671                )
1672            }
1673            ApprovalItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => {
1674                ApprovalItemRefView::ProductDefinitionFormationWithSpecifiedSource(
1675                    model
1676                        .product_definition_formation_with_specified_source_arena
1677                        .get(i.0),
1678                )
1679            }
1680            ApprovalItemRef::ProductDefinitionRelationship(i) => {
1681                ApprovalItemRefView::ProductDefinitionRelationship(
1682                    model.product_definition_relationship_arena.get(i.0),
1683                )
1684            }
1685            ApprovalItemRef::ProductDefinitionShape(i) => {
1686                ApprovalItemRefView::ProductDefinitionShape(
1687                    model.product_definition_shape_arena.get(i.0),
1688                )
1689            }
1690            ApprovalItemRef::ProductDefinitionSubstitute(i) => {
1691                ApprovalItemRefView::ProductDefinitionSubstitute(
1692                    model.product_definition_substitute_arena.get(i.0),
1693                )
1694            }
1695            ApprovalItemRef::ProductDefinitionUsage(i) => {
1696                ApprovalItemRefView::ProductDefinitionUsage(
1697                    model.product_definition_usage_arena.get(i.0),
1698                )
1699            }
1700            ApprovalItemRef::ProductDefinitionWithAssociatedDocuments(i) => {
1701                ApprovalItemRefView::ProductDefinitionWithAssociatedDocuments(
1702                    model
1703                        .product_definition_with_associated_documents_arena
1704                        .get(i.0),
1705                )
1706            }
1707            ApprovalItemRef::PropertyDefinition(i) => {
1708                ApprovalItemRefView::PropertyDefinition(model.property_definition_arena.get(i.0))
1709            }
1710            ApprovalItemRef::PropertyDefinitionRepresentation(i) => {
1711                ApprovalItemRefView::PropertyDefinitionRepresentation(
1712                    model.property_definition_representation_arena.get(i.0),
1713                )
1714            }
1715            ApprovalItemRef::QualifiedRepresentationItem(i) => {
1716                ApprovalItemRefView::QualifiedRepresentationItem(
1717                    model.qualified_representation_item_arena.get(i.0),
1718                )
1719            }
1720            ApprovalItemRef::QuasiUniformCurve(i) => {
1721                ApprovalItemRefView::QuasiUniformCurve(model.quasi_uniform_curve_arena.get(i.0))
1722            }
1723            ApprovalItemRef::QuasiUniformSurface(i) => {
1724                ApprovalItemRefView::QuasiUniformSurface(model.quasi_uniform_surface_arena.get(i.0))
1725            }
1726            ApprovalItemRef::RationalBSplineCurve(i) => ApprovalItemRefView::RationalBSplineCurve(
1727                model.rational_b_spline_curve_arena.get(i.0),
1728            ),
1729            ApprovalItemRef::RationalBSplineSurface(i) => {
1730                ApprovalItemRefView::RationalBSplineSurface(
1731                    model.rational_b_spline_surface_arena.get(i.0),
1732                )
1733            }
1734            ApprovalItemRef::RealRepresentationItem(i) => {
1735                ApprovalItemRefView::RealRepresentationItem(
1736                    model.real_representation_item_arena.get(i.0),
1737                )
1738            }
1739            ApprovalItemRef::RepositionedTessellatedItem(i) => {
1740                ApprovalItemRefView::RepositionedTessellatedItem(
1741                    model.repositioned_tessellated_item_arena.get(i.0),
1742                )
1743            }
1744            ApprovalItemRef::Representation(i) => {
1745                ApprovalItemRefView::Representation(model.representation_arena.get(i.0))
1746            }
1747            ApprovalItemRef::RepresentationItem(i) => {
1748                ApprovalItemRefView::RepresentationItem(model.representation_item_arena.get(i.0))
1749            }
1750            ApprovalItemRef::RepresentationRelationship(i) => {
1751                ApprovalItemRefView::RepresentationRelationship(
1752                    model.representation_relationship_arena.get(i.0),
1753                )
1754            }
1755            ApprovalItemRef::RepresentationRelationshipWithTransformation(i) => {
1756                ApprovalItemRefView::RepresentationRelationshipWithTransformation(
1757                    model
1758                        .representation_relationship_with_transformation_arena
1759                        .get(i.0),
1760                )
1761            }
1762            ApprovalItemRef::ResourceProperty(i) => {
1763                ApprovalItemRefView::ResourceProperty(model.resource_property_arena.get(i.0))
1764            }
1765            ApprovalItemRef::SeamCurve(i) => {
1766                ApprovalItemRefView::SeamCurve(model.seam_curve_arena.get(i.0))
1767            }
1768            ApprovalItemRef::SecurityClassification(i) => {
1769                ApprovalItemRefView::SecurityClassification(
1770                    model.security_classification_arena.get(i.0),
1771                )
1772            }
1773            ApprovalItemRef::ShapeAspectAssociativity(i) => {
1774                ApprovalItemRefView::ShapeAspectAssociativity(
1775                    model.shape_aspect_associativity_arena.get(i.0),
1776                )
1777            }
1778            ApprovalItemRef::ShapeAspectDerivingRelationship(i) => {
1779                ApprovalItemRefView::ShapeAspectDerivingRelationship(
1780                    model.shape_aspect_deriving_relationship_arena.get(i.0),
1781                )
1782            }
1783            ApprovalItemRef::ShapeAspectRelationship(i) => {
1784                ApprovalItemRefView::ShapeAspectRelationship(
1785                    model.shape_aspect_relationship_arena.get(i.0),
1786                )
1787            }
1788            ApprovalItemRef::ShapeDefinitionRepresentation(i) => {
1789                ApprovalItemRefView::ShapeDefinitionRepresentation(
1790                    model.shape_definition_representation_arena.get(i.0),
1791                )
1792            }
1793            ApprovalItemRef::ShapeDimensionRepresentation(i) => {
1794                ApprovalItemRefView::ShapeDimensionRepresentation(
1795                    model.shape_dimension_representation_arena.get(i.0),
1796                )
1797            }
1798            ApprovalItemRef::ShapeRepresentation(i) => {
1799                ApprovalItemRefView::ShapeRepresentation(model.shape_representation_arena.get(i.0))
1800            }
1801            ApprovalItemRef::ShapeRepresentationRelationship(i) => {
1802                ApprovalItemRefView::ShapeRepresentationRelationship(
1803                    model.shape_representation_relationship_arena.get(i.0),
1804                )
1805            }
1806            ApprovalItemRef::ShapeRepresentationWithParameters(i) => {
1807                ApprovalItemRefView::ShapeRepresentationWithParameters(
1808                    model.shape_representation_with_parameters_arena.get(i.0),
1809                )
1810            }
1811            ApprovalItemRef::ShellBasedSurfaceModel(i) => {
1812                ApprovalItemRefView::ShellBasedSurfaceModel(
1813                    model.shell_based_surface_model_arena.get(i.0),
1814                )
1815            }
1816            ApprovalItemRef::SolidModel(i) => {
1817                ApprovalItemRefView::SolidModel(model.solid_model_arena.get(i.0))
1818            }
1819            ApprovalItemRef::SphericalSurface(i) => {
1820                ApprovalItemRefView::SphericalSurface(model.spherical_surface_arena.get(i.0))
1821            }
1822            ApprovalItemRef::StyledItem(i) => {
1823                ApprovalItemRefView::StyledItem(model.styled_item_arena.get(i.0))
1824            }
1825            ApprovalItemRef::Surface(i) => {
1826                ApprovalItemRefView::Surface(model.surface_arena.get(i.0))
1827            }
1828            ApprovalItemRef::SurfaceCurve(i) => {
1829                ApprovalItemRefView::SurfaceCurve(model.surface_curve_arena.get(i.0))
1830            }
1831            ApprovalItemRef::SurfaceOfLinearExtrusion(i) => {
1832                ApprovalItemRefView::SurfaceOfLinearExtrusion(
1833                    model.surface_of_linear_extrusion_arena.get(i.0),
1834                )
1835            }
1836            ApprovalItemRef::SurfaceOfRevolution(i) => {
1837                ApprovalItemRefView::SurfaceOfRevolution(model.surface_of_revolution_arena.get(i.0))
1838            }
1839            ApprovalItemRef::SweptSurface(i) => {
1840                ApprovalItemRefView::SweptSurface(model.swept_surface_arena.get(i.0))
1841            }
1842            ApprovalItemRef::SymbolRepresentation(i) => ApprovalItemRefView::SymbolRepresentation(
1843                model.symbol_representation_arena.get(i.0),
1844            ),
1845            ApprovalItemRef::SymbolTarget(i) => {
1846                ApprovalItemRefView::SymbolTarget(model.symbol_target_arena.get(i.0))
1847            }
1848            ApprovalItemRef::TerminatorSymbol(i) => {
1849                ApprovalItemRefView::TerminatorSymbol(model.terminator_symbol_arena.get(i.0))
1850            }
1851            ApprovalItemRef::TessellatedAnnotationOccurrence(i) => {
1852                ApprovalItemRefView::TessellatedAnnotationOccurrence(
1853                    model.tessellated_annotation_occurrence_arena.get(i.0),
1854                )
1855            }
1856            ApprovalItemRef::TessellatedCurveSet(i) => {
1857                ApprovalItemRefView::TessellatedCurveSet(model.tessellated_curve_set_arena.get(i.0))
1858            }
1859            ApprovalItemRef::TessellatedFace(i) => {
1860                ApprovalItemRefView::TessellatedFace(model.tessellated_face_arena.get(i.0))
1861            }
1862            ApprovalItemRef::TessellatedGeometricSet(i) => {
1863                ApprovalItemRefView::TessellatedGeometricSet(
1864                    model.tessellated_geometric_set_arena.get(i.0),
1865                )
1866            }
1867            ApprovalItemRef::TessellatedItem(i) => {
1868                ApprovalItemRefView::TessellatedItem(model.tessellated_item_arena.get(i.0))
1869            }
1870            ApprovalItemRef::TessellatedShapeRepresentation(i) => {
1871                ApprovalItemRefView::TessellatedShapeRepresentation(
1872                    model.tessellated_shape_representation_arena.get(i.0),
1873                )
1874            }
1875            ApprovalItemRef::TessellatedShell(i) => {
1876                ApprovalItemRefView::TessellatedShell(model.tessellated_shell_arena.get(i.0))
1877            }
1878            ApprovalItemRef::TessellatedSolid(i) => {
1879                ApprovalItemRefView::TessellatedSolid(model.tessellated_solid_arena.get(i.0))
1880            }
1881            ApprovalItemRef::TessellatedStructuredItem(i) => {
1882                ApprovalItemRefView::TessellatedStructuredItem(
1883                    model.tessellated_structured_item_arena.get(i.0),
1884                )
1885            }
1886            ApprovalItemRef::TessellatedSurfaceSet(i) => {
1887                ApprovalItemRefView::TessellatedSurfaceSet(
1888                    model.tessellated_surface_set_arena.get(i.0),
1889                )
1890            }
1891            ApprovalItemRef::TextLiteral(i) => {
1892                ApprovalItemRefView::TextLiteral(model.text_literal_arena.get(i.0))
1893            }
1894            ApprovalItemRef::TopologicalRepresentationItem(i) => {
1895                ApprovalItemRefView::TopologicalRepresentationItem(
1896                    model.topological_representation_item_arena.get(i.0),
1897                )
1898            }
1899            ApprovalItemRef::ToroidalSurface(i) => {
1900                ApprovalItemRefView::ToroidalSurface(model.toroidal_surface_arena.get(i.0))
1901            }
1902            ApprovalItemRef::TrimmedCurve(i) => {
1903                ApprovalItemRefView::TrimmedCurve(model.trimmed_curve_arena.get(i.0))
1904            }
1905            ApprovalItemRef::TwoDirectionRepeatFactor(i) => {
1906                ApprovalItemRefView::TwoDirectionRepeatFactor(
1907                    model.two_direction_repeat_factor_arena.get(i.0),
1908                )
1909            }
1910            ApprovalItemRef::UniformCurve(i) => {
1911                ApprovalItemRefView::UniformCurve(model.uniform_curve_arena.get(i.0))
1912            }
1913            ApprovalItemRef::UniformSurface(i) => {
1914                ApprovalItemRefView::UniformSurface(model.uniform_surface_arena.get(i.0))
1915            }
1916            ApprovalItemRef::ValueRepresentationItem(i) => {
1917                ApprovalItemRefView::ValueRepresentationItem(
1918                    model.value_representation_item_arena.get(i.0),
1919                )
1920            }
1921            ApprovalItemRef::Vector(i) => ApprovalItemRefView::Vector(model.vector_arena.get(i.0)),
1922            ApprovalItemRef::VersionedActionRequest(i) => {
1923                ApprovalItemRefView::VersionedActionRequest(
1924                    model.versioned_action_request_arena.get(i.0),
1925                )
1926            }
1927            ApprovalItemRef::Vertex(i) => ApprovalItemRefView::Vertex(model.vertex_arena.get(i.0)),
1928            ApprovalItemRef::VertexLoop(i) => {
1929                ApprovalItemRefView::VertexLoop(model.vertex_loop_arena.get(i.0))
1930            }
1931            ApprovalItemRef::VertexPoint(i) => {
1932                ApprovalItemRefView::VertexPoint(model.vertex_point_arena.get(i.0))
1933            }
1934            ApprovalItemRef::VertexShell(i) => {
1935                ApprovalItemRefView::VertexShell(model.vertex_shell_arena.get(i.0))
1936            }
1937            ApprovalItemRef::WireShell(i) => {
1938                ApprovalItemRefView::WireShell(model.wire_shell_arena.get(i.0))
1939            }
1940            ApprovalItemRef::Complex(i) => {
1941                ApprovalItemRefView::Complex(model.complex_unit_arena.get(i.0))
1942            }
1943        }
1944    }
1945    pub fn entity_key(&self) -> EntityKey {
1946        match self {
1947            ApprovalItemRef::Action(i) => EntityKey::Action(*i),
1948            ApprovalItemRef::ActionDirective(i) => EntityKey::ActionDirective(*i),
1949            ApprovalItemRef::ActionMethod(i) => EntityKey::ActionMethod(*i),
1950            ApprovalItemRef::ActionMethodRelationship(i) => EntityKey::ActionMethodRelationship(*i),
1951            ApprovalItemRef::ActionProperty(i) => EntityKey::ActionProperty(*i),
1952            ApprovalItemRef::ActionRequestSolution(i) => EntityKey::ActionRequestSolution(*i),
1953            ApprovalItemRef::AdvancedBrepShapeRepresentation(i) => {
1954                EntityKey::AdvancedBrepShapeRepresentation(*i)
1955            }
1956            ApprovalItemRef::AdvancedFace(i) => EntityKey::AdvancedFace(*i),
1957            ApprovalItemRef::AngularLocation(i) => EntityKey::AngularLocation(*i),
1958            ApprovalItemRef::AnnotationCurveOccurrence(i) => {
1959                EntityKey::AnnotationCurveOccurrence(*i)
1960            }
1961            ApprovalItemRef::AnnotationFillAreaOccurrence(i) => {
1962                EntityKey::AnnotationFillAreaOccurrence(*i)
1963            }
1964            ApprovalItemRef::AnnotationOccurrence(i) => EntityKey::AnnotationOccurrence(*i),
1965            ApprovalItemRef::AnnotationPlaceholderLeaderLine(i) => {
1966                EntityKey::AnnotationPlaceholderLeaderLine(*i)
1967            }
1968            ApprovalItemRef::AnnotationPlaceholderOccurrence(i) => {
1969                EntityKey::AnnotationPlaceholderOccurrence(*i)
1970            }
1971            ApprovalItemRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => {
1972                EntityKey::AnnotationPlaceholderOccurrenceWithLeaderLine(*i)
1973            }
1974            ApprovalItemRef::AnnotationPlane(i) => EntityKey::AnnotationPlane(*i),
1975            ApprovalItemRef::AnnotationSymbol(i) => EntityKey::AnnotationSymbol(*i),
1976            ApprovalItemRef::AnnotationSymbolOccurrence(i) => {
1977                EntityKey::AnnotationSymbolOccurrence(*i)
1978            }
1979            ApprovalItemRef::AnnotationText(i) => EntityKey::AnnotationText(*i),
1980            ApprovalItemRef::AnnotationTextCharacter(i) => EntityKey::AnnotationTextCharacter(*i),
1981            ApprovalItemRef::AnnotationTextOccurrence(i) => EntityKey::AnnotationTextOccurrence(*i),
1982            ApprovalItemRef::AnnotationToAnnotationLeaderLine(i) => {
1983                EntityKey::AnnotationToAnnotationLeaderLine(*i)
1984            }
1985            ApprovalItemRef::AnnotationToModelLeaderLine(i) => {
1986                EntityKey::AnnotationToModelLeaderLine(*i)
1987            }
1988            ApprovalItemRef::ApllPoint(i) => EntityKey::ApllPoint(*i),
1989            ApprovalItemRef::ApllPointWithSurface(i) => EntityKey::ApllPointWithSurface(*i),
1990            ApprovalItemRef::AppliedApprovalAssignment(i) => {
1991                EntityKey::AppliedApprovalAssignment(*i)
1992            }
1993            ApprovalItemRef::AppliedDateAndTimeAssignment(i) => {
1994                EntityKey::AppliedDateAndTimeAssignment(*i)
1995            }
1996            ApprovalItemRef::AppliedDocumentReference(i) => EntityKey::AppliedDocumentReference(*i),
1997            ApprovalItemRef::AppliedExternalIdentificationAssignment(i) => {
1998                EntityKey::AppliedExternalIdentificationAssignment(*i)
1999            }
2000            ApprovalItemRef::AppliedPersonAndOrganizationAssignment(i) => {
2001                EntityKey::AppliedPersonAndOrganizationAssignment(*i)
2002            }
2003            ApprovalItemRef::AssemblyComponentUsage(i) => EntityKey::AssemblyComponentUsage(*i),
2004            ApprovalItemRef::AuxiliaryLeaderLine(i) => EntityKey::AuxiliaryLeaderLine(*i),
2005            ApprovalItemRef::Axis1Placement(i) => EntityKey::Axis1Placement(*i),
2006            ApprovalItemRef::Axis2Placement2d(i) => EntityKey::Axis2Placement2d(*i),
2007            ApprovalItemRef::Axis2Placement3d(i) => EntityKey::Axis2Placement3d(*i),
2008            ApprovalItemRef::BSplineCurve(i) => EntityKey::BSplineCurve(*i),
2009            ApprovalItemRef::BSplineCurveWithKnots(i) => EntityKey::BSplineCurveWithKnots(*i),
2010            ApprovalItemRef::BSplineSurface(i) => EntityKey::BSplineSurface(*i),
2011            ApprovalItemRef::BSplineSurfaceWithKnots(i) => EntityKey::BSplineSurfaceWithKnots(*i),
2012            ApprovalItemRef::BezierCurve(i) => EntityKey::BezierCurve(*i),
2013            ApprovalItemRef::BezierSurface(i) => EntityKey::BezierSurface(*i),
2014            ApprovalItemRef::BoundedCurve(i) => EntityKey::BoundedCurve(*i),
2015            ApprovalItemRef::BoundedPcurve(i) => EntityKey::BoundedPcurve(*i),
2016            ApprovalItemRef::BoundedSurface(i) => EntityKey::BoundedSurface(*i),
2017            ApprovalItemRef::BoundedSurfaceCurve(i) => EntityKey::BoundedSurfaceCurve(*i),
2018            ApprovalItemRef::BrepWithVoids(i) => EntityKey::BrepWithVoids(*i),
2019            ApprovalItemRef::CalendarDate(i) => EntityKey::CalendarDate(*i),
2020            ApprovalItemRef::CameraImage(i) => EntityKey::CameraImage(*i),
2021            ApprovalItemRef::CameraImage3dWithScale(i) => EntityKey::CameraImage3dWithScale(*i),
2022            ApprovalItemRef::CameraModel(i) => EntityKey::CameraModel(*i),
2023            ApprovalItemRef::CameraModelD3(i) => EntityKey::CameraModelD3(*i),
2024            ApprovalItemRef::CameraModelD3MultiClipping(i) => {
2025                EntityKey::CameraModelD3MultiClipping(*i)
2026            }
2027            ApprovalItemRef::CameraModelD3WithHlhsr(i) => EntityKey::CameraModelD3WithHlhsr(*i),
2028            ApprovalItemRef::CartesianPoint(i) => EntityKey::CartesianPoint(*i),
2029            ApprovalItemRef::CcDesignDateAndTimeAssignment(i) => {
2030                EntityKey::CcDesignDateAndTimeAssignment(*i)
2031            }
2032            ApprovalItemRef::Certification(i) => EntityKey::Certification(*i),
2033            ApprovalItemRef::CharacterizedRepresentation(i) => {
2034                EntityKey::CharacterizedRepresentation(*i)
2035            }
2036            ApprovalItemRef::Circle(i) => EntityKey::Circle(*i),
2037            ApprovalItemRef::ClosedShell(i) => EntityKey::ClosedShell(*i),
2038            ApprovalItemRef::ComplexTriangulatedFace(i) => EntityKey::ComplexTriangulatedFace(*i),
2039            ApprovalItemRef::ComplexTriangulatedSurfaceSet(i) => {
2040                EntityKey::ComplexTriangulatedSurfaceSet(*i)
2041            }
2042            ApprovalItemRef::CompositeCurve(i) => EntityKey::CompositeCurve(*i),
2043            ApprovalItemRef::CompositeText(i) => EntityKey::CompositeText(*i),
2044            ApprovalItemRef::CompoundRepresentationItem(i) => {
2045                EntityKey::CompoundRepresentationItem(*i)
2046            }
2047            ApprovalItemRef::ConfigurationDesign(i) => EntityKey::ConfigurationDesign(*i),
2048            ApprovalItemRef::ConfigurationEffectivity(i) => EntityKey::ConfigurationEffectivity(*i),
2049            ApprovalItemRef::ConfigurationItem(i) => EntityKey::ConfigurationItem(*i),
2050            ApprovalItemRef::Conic(i) => EntityKey::Conic(*i),
2051            ApprovalItemRef::ConicalSurface(i) => EntityKey::ConicalSurface(*i),
2052            ApprovalItemRef::ConnectedFaceSet(i) => EntityKey::ConnectedFaceSet(*i),
2053            ApprovalItemRef::ConstructiveGeometryRepresentation(i) => {
2054                EntityKey::ConstructiveGeometryRepresentation(*i)
2055            }
2056            ApprovalItemRef::ConstructiveGeometryRepresentationRelationship(i) => {
2057                EntityKey::ConstructiveGeometryRepresentationRelationship(*i)
2058            }
2059            ApprovalItemRef::ContextDependentOverRidingStyledItem(i) => {
2060                EntityKey::ContextDependentOverRidingStyledItem(*i)
2061            }
2062            ApprovalItemRef::Contract(i) => EntityKey::Contract(*i),
2063            ApprovalItemRef::CoordinatesList(i) => EntityKey::CoordinatesList(*i),
2064            ApprovalItemRef::Curve(i) => EntityKey::Curve(*i),
2065            ApprovalItemRef::CylindricalSurface(i) => EntityKey::CylindricalSurface(*i),
2066            ApprovalItemRef::Date(i) => EntityKey::Date(*i),
2067            ApprovalItemRef::DateAndTimeAssignment(i) => EntityKey::DateAndTimeAssignment(*i),
2068            ApprovalItemRef::DefinedCharacterGlyph(i) => EntityKey::DefinedCharacterGlyph(*i),
2069            ApprovalItemRef::DefinedSymbol(i) => EntityKey::DefinedSymbol(*i),
2070            ApprovalItemRef::DefinitionalRepresentation(i) => {
2071                EntityKey::DefinitionalRepresentation(*i)
2072            }
2073            ApprovalItemRef::DefinitionalRepresentationRelationship(i) => {
2074                EntityKey::DefinitionalRepresentationRelationship(*i)
2075            }
2076            ApprovalItemRef::DefinitionalRepresentationRelationshipWithSameContext(i) => {
2077                EntityKey::DefinitionalRepresentationRelationshipWithSameContext(*i)
2078            }
2079            ApprovalItemRef::DegenerateToroidalSurface(i) => {
2080                EntityKey::DegenerateToroidalSurface(*i)
2081            }
2082            ApprovalItemRef::DescriptiveRepresentationItem(i) => {
2083                EntityKey::DescriptiveRepresentationItem(*i)
2084            }
2085            ApprovalItemRef::DesignContext(i) => EntityKey::DesignContext(*i),
2086            ApprovalItemRef::DimensionalLocation(i) => EntityKey::DimensionalLocation(*i),
2087            ApprovalItemRef::DimensionalLocationWithPath(i) => {
2088                EntityKey::DimensionalLocationWithPath(*i)
2089            }
2090            ApprovalItemRef::DirectedDimensionalLocation(i) => {
2091                EntityKey::DirectedDimensionalLocation(*i)
2092            }
2093            ApprovalItemRef::Direction(i) => EntityKey::Direction(*i),
2094            ApprovalItemRef::Document(i) => EntityKey::Document(*i),
2095            ApprovalItemRef::DocumentFile(i) => EntityKey::DocumentFile(*i),
2096            ApprovalItemRef::DraughtingAnnotationOccurrence(i) => {
2097                EntityKey::DraughtingAnnotationOccurrence(*i)
2098            }
2099            ApprovalItemRef::DraughtingCallout(i) => EntityKey::DraughtingCallout(*i),
2100            ApprovalItemRef::DraughtingModel(i) => EntityKey::DraughtingModel(*i),
2101            ApprovalItemRef::Edge(i) => EntityKey::Edge(*i),
2102            ApprovalItemRef::EdgeCurve(i) => EntityKey::EdgeCurve(*i),
2103            ApprovalItemRef::EdgeLoop(i) => EntityKey::EdgeLoop(*i),
2104            ApprovalItemRef::Effectivity(i) => EntityKey::Effectivity(*i),
2105            ApprovalItemRef::ElementarySurface(i) => EntityKey::ElementarySurface(*i),
2106            ApprovalItemRef::Ellipse(i) => EntityKey::Ellipse(*i),
2107            ApprovalItemRef::ExternallyDefinedHatchStyle(i) => {
2108                EntityKey::ExternallyDefinedHatchStyle(*i)
2109            }
2110            ApprovalItemRef::ExternallyDefinedTileStyle(i) => {
2111                EntityKey::ExternallyDefinedTileStyle(*i)
2112            }
2113            ApprovalItemRef::Face(i) => EntityKey::Face(*i),
2114            ApprovalItemRef::FaceBound(i) => EntityKey::FaceBound(*i),
2115            ApprovalItemRef::FaceOuterBound(i) => EntityKey::FaceOuterBound(*i),
2116            ApprovalItemRef::FaceSurface(i) => EntityKey::FaceSurface(*i),
2117            ApprovalItemRef::FeatureForDatumTargetRelationship(i) => {
2118                EntityKey::FeatureForDatumTargetRelationship(*i)
2119            }
2120            ApprovalItemRef::FillAreaStyleHatching(i) => EntityKey::FillAreaStyleHatching(*i),
2121            ApprovalItemRef::FillAreaStyleTileColouredRegion(i) => {
2122                EntityKey::FillAreaStyleTileColouredRegion(*i)
2123            }
2124            ApprovalItemRef::FillAreaStyleTileCurveWithStyle(i) => {
2125                EntityKey::FillAreaStyleTileCurveWithStyle(*i)
2126            }
2127            ApprovalItemRef::FillAreaStyleTileSymbolWithStyle(i) => {
2128                EntityKey::FillAreaStyleTileSymbolWithStyle(*i)
2129            }
2130            ApprovalItemRef::FillAreaStyleTiles(i) => EntityKey::FillAreaStyleTiles(*i),
2131            ApprovalItemRef::GeneralProperty(i) => EntityKey::GeneralProperty(*i),
2132            ApprovalItemRef::GeometricCurveSet(i) => EntityKey::GeometricCurveSet(*i),
2133            ApprovalItemRef::GeometricRepresentationItem(i) => {
2134                EntityKey::GeometricRepresentationItem(*i)
2135            }
2136            ApprovalItemRef::GeometricSet(i) => EntityKey::GeometricSet(*i),
2137            ApprovalItemRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => {
2138                EntityKey::GeometricallyBoundedSurfaceShapeRepresentation(*i)
2139            }
2140            ApprovalItemRef::GeometricallyBoundedWireframeShapeRepresentation(i) => {
2141                EntityKey::GeometricallyBoundedWireframeShapeRepresentation(*i)
2142            }
2143            ApprovalItemRef::Group(i) => EntityKey::Group(*i),
2144            ApprovalItemRef::Hyperbola(i) => EntityKey::Hyperbola(*i),
2145            ApprovalItemRef::IntegerRepresentationItem(i) => {
2146                EntityKey::IntegerRepresentationItem(*i)
2147            }
2148            ApprovalItemRef::IntersectionCurve(i) => EntityKey::IntersectionCurve(*i),
2149            ApprovalItemRef::LeaderCurve(i) => EntityKey::LeaderCurve(*i),
2150            ApprovalItemRef::LeaderDirectedCallout(i) => EntityKey::LeaderDirectedCallout(*i),
2151            ApprovalItemRef::LeaderTerminator(i) => EntityKey::LeaderTerminator(*i),
2152            ApprovalItemRef::Line(i) => EntityKey::Line(*i),
2153            ApprovalItemRef::Loop(i) => EntityKey::Loop(*i),
2154            ApprovalItemRef::MakeFromUsageOption(i) => EntityKey::MakeFromUsageOption(*i),
2155            ApprovalItemRef::ManifoldSolidBrep(i) => EntityKey::ManifoldSolidBrep(*i),
2156            ApprovalItemRef::ManifoldSurfaceShapeRepresentation(i) => {
2157                EntityKey::ManifoldSurfaceShapeRepresentation(*i)
2158            }
2159            ApprovalItemRef::MappedItem(i) => EntityKey::MappedItem(*i),
2160            ApprovalItemRef::MeasureRepresentationItem(i) => {
2161                EntityKey::MeasureRepresentationItem(*i)
2162            }
2163            ApprovalItemRef::MechanicalDesignAndDraughtingRelationship(i) => {
2164                EntityKey::MechanicalDesignAndDraughtingRelationship(*i)
2165            }
2166            ApprovalItemRef::MechanicalDesignGeometricPresentationRepresentation(i) => {
2167                EntityKey::MechanicalDesignGeometricPresentationRepresentation(*i)
2168            }
2169            ApprovalItemRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => {
2170                EntityKey::MechanicalDesignPresentationRepresentationWithDraughting(*i)
2171            }
2172            ApprovalItemRef::MechanicalDesignShadedPresentationRepresentation(i) => {
2173                EntityKey::MechanicalDesignShadedPresentationRepresentation(*i)
2174            }
2175            ApprovalItemRef::NextAssemblyUsageOccurrence(i) => {
2176                EntityKey::NextAssemblyUsageOccurrence(*i)
2177            }
2178            ApprovalItemRef::OffsetSurface(i) => EntityKey::OffsetSurface(*i),
2179            ApprovalItemRef::OneDirectionRepeatFactor(i) => EntityKey::OneDirectionRepeatFactor(*i),
2180            ApprovalItemRef::OpenShell(i) => EntityKey::OpenShell(*i),
2181            ApprovalItemRef::Organization(i) => EntityKey::Organization(*i),
2182            ApprovalItemRef::OrganizationRelationship(i) => EntityKey::OrganizationRelationship(*i),
2183            ApprovalItemRef::OrganizationalAddress(i) => EntityKey::OrganizationalAddress(*i),
2184            ApprovalItemRef::OrganizationalProject(i) => EntityKey::OrganizationalProject(*i),
2185            ApprovalItemRef::OrientedClosedShell(i) => EntityKey::OrientedClosedShell(*i),
2186            ApprovalItemRef::OrientedEdge(i) => EntityKey::OrientedEdge(*i),
2187            ApprovalItemRef::OverRidingStyledItem(i) => EntityKey::OverRidingStyledItem(*i),
2188            ApprovalItemRef::Path(i) => EntityKey::Path(*i),
2189            ApprovalItemRef::Pcurve(i) => EntityKey::Pcurve(*i),
2190            ApprovalItemRef::PersonAndOrganization(i) => EntityKey::PersonAndOrganization(*i),
2191            ApprovalItemRef::PersonAndOrganizationAddress(i) => {
2192                EntityKey::PersonAndOrganizationAddress(*i)
2193            }
2194            ApprovalItemRef::Placement(i) => EntityKey::Placement(*i),
2195            ApprovalItemRef::PlanarBox(i) => EntityKey::PlanarBox(*i),
2196            ApprovalItemRef::PlanarExtent(i) => EntityKey::PlanarExtent(*i),
2197            ApprovalItemRef::Plane(i) => EntityKey::Plane(*i),
2198            ApprovalItemRef::Point(i) => EntityKey::Point(*i),
2199            ApprovalItemRef::PolyLoop(i) => EntityKey::PolyLoop(*i),
2200            ApprovalItemRef::Polyline(i) => EntityKey::Polyline(*i),
2201            ApprovalItemRef::PresentationArea(i) => EntityKey::PresentationArea(*i),
2202            ApprovalItemRef::PresentationRepresentation(i) => {
2203                EntityKey::PresentationRepresentation(*i)
2204            }
2205            ApprovalItemRef::PresentationView(i) => EntityKey::PresentationView(*i),
2206            ApprovalItemRef::Product(i) => EntityKey::Product(*i),
2207            ApprovalItemRef::ProductConcept(i) => EntityKey::ProductConcept(*i),
2208            ApprovalItemRef::ProductConceptFeature(i) => EntityKey::ProductConceptFeature(*i),
2209            ApprovalItemRef::ProductConceptFeatureCategory(i) => {
2210                EntityKey::ProductConceptFeatureCategory(*i)
2211            }
2212            ApprovalItemRef::ProductDefinition(i) => EntityKey::ProductDefinition(*i),
2213            ApprovalItemRef::ProductDefinitionContext(i) => EntityKey::ProductDefinitionContext(*i),
2214            ApprovalItemRef::ProductDefinitionEffectivity(i) => {
2215                EntityKey::ProductDefinitionEffectivity(*i)
2216            }
2217            ApprovalItemRef::ProductDefinitionFormation(i) => {
2218                EntityKey::ProductDefinitionFormation(*i)
2219            }
2220            ApprovalItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => {
2221                EntityKey::ProductDefinitionFormationWithSpecifiedSource(*i)
2222            }
2223            ApprovalItemRef::ProductDefinitionRelationship(i) => {
2224                EntityKey::ProductDefinitionRelationship(*i)
2225            }
2226            ApprovalItemRef::ProductDefinitionShape(i) => EntityKey::ProductDefinitionShape(*i),
2227            ApprovalItemRef::ProductDefinitionSubstitute(i) => {
2228                EntityKey::ProductDefinitionSubstitute(*i)
2229            }
2230            ApprovalItemRef::ProductDefinitionUsage(i) => EntityKey::ProductDefinitionUsage(*i),
2231            ApprovalItemRef::ProductDefinitionWithAssociatedDocuments(i) => {
2232                EntityKey::ProductDefinitionWithAssociatedDocuments(*i)
2233            }
2234            ApprovalItemRef::PropertyDefinition(i) => EntityKey::PropertyDefinition(*i),
2235            ApprovalItemRef::PropertyDefinitionRepresentation(i) => {
2236                EntityKey::PropertyDefinitionRepresentation(*i)
2237            }
2238            ApprovalItemRef::QualifiedRepresentationItem(i) => {
2239                EntityKey::QualifiedRepresentationItem(*i)
2240            }
2241            ApprovalItemRef::QuasiUniformCurve(i) => EntityKey::QuasiUniformCurve(*i),
2242            ApprovalItemRef::QuasiUniformSurface(i) => EntityKey::QuasiUniformSurface(*i),
2243            ApprovalItemRef::RationalBSplineCurve(i) => EntityKey::RationalBSplineCurve(*i),
2244            ApprovalItemRef::RationalBSplineSurface(i) => EntityKey::RationalBSplineSurface(*i),
2245            ApprovalItemRef::RealRepresentationItem(i) => EntityKey::RealRepresentationItem(*i),
2246            ApprovalItemRef::RepositionedTessellatedItem(i) => {
2247                EntityKey::RepositionedTessellatedItem(*i)
2248            }
2249            ApprovalItemRef::Representation(i) => EntityKey::Representation(*i),
2250            ApprovalItemRef::RepresentationItem(i) => EntityKey::RepresentationItem(*i),
2251            ApprovalItemRef::RepresentationRelationship(i) => {
2252                EntityKey::RepresentationRelationship(*i)
2253            }
2254            ApprovalItemRef::RepresentationRelationshipWithTransformation(i) => {
2255                EntityKey::RepresentationRelationshipWithTransformation(*i)
2256            }
2257            ApprovalItemRef::ResourceProperty(i) => EntityKey::ResourceProperty(*i),
2258            ApprovalItemRef::SeamCurve(i) => EntityKey::SeamCurve(*i),
2259            ApprovalItemRef::SecurityClassification(i) => EntityKey::SecurityClassification(*i),
2260            ApprovalItemRef::ShapeAspectAssociativity(i) => EntityKey::ShapeAspectAssociativity(*i),
2261            ApprovalItemRef::ShapeAspectDerivingRelationship(i) => {
2262                EntityKey::ShapeAspectDerivingRelationship(*i)
2263            }
2264            ApprovalItemRef::ShapeAspectRelationship(i) => EntityKey::ShapeAspectRelationship(*i),
2265            ApprovalItemRef::ShapeDefinitionRepresentation(i) => {
2266                EntityKey::ShapeDefinitionRepresentation(*i)
2267            }
2268            ApprovalItemRef::ShapeDimensionRepresentation(i) => {
2269                EntityKey::ShapeDimensionRepresentation(*i)
2270            }
2271            ApprovalItemRef::ShapeRepresentation(i) => EntityKey::ShapeRepresentation(*i),
2272            ApprovalItemRef::ShapeRepresentationRelationship(i) => {
2273                EntityKey::ShapeRepresentationRelationship(*i)
2274            }
2275            ApprovalItemRef::ShapeRepresentationWithParameters(i) => {
2276                EntityKey::ShapeRepresentationWithParameters(*i)
2277            }
2278            ApprovalItemRef::ShellBasedSurfaceModel(i) => EntityKey::ShellBasedSurfaceModel(*i),
2279            ApprovalItemRef::SolidModel(i) => EntityKey::SolidModel(*i),
2280            ApprovalItemRef::SphericalSurface(i) => EntityKey::SphericalSurface(*i),
2281            ApprovalItemRef::StyledItem(i) => EntityKey::StyledItem(*i),
2282            ApprovalItemRef::Surface(i) => EntityKey::Surface(*i),
2283            ApprovalItemRef::SurfaceCurve(i) => EntityKey::SurfaceCurve(*i),
2284            ApprovalItemRef::SurfaceOfLinearExtrusion(i) => EntityKey::SurfaceOfLinearExtrusion(*i),
2285            ApprovalItemRef::SurfaceOfRevolution(i) => EntityKey::SurfaceOfRevolution(*i),
2286            ApprovalItemRef::SweptSurface(i) => EntityKey::SweptSurface(*i),
2287            ApprovalItemRef::SymbolRepresentation(i) => EntityKey::SymbolRepresentation(*i),
2288            ApprovalItemRef::SymbolTarget(i) => EntityKey::SymbolTarget(*i),
2289            ApprovalItemRef::TerminatorSymbol(i) => EntityKey::TerminatorSymbol(*i),
2290            ApprovalItemRef::TessellatedAnnotationOccurrence(i) => {
2291                EntityKey::TessellatedAnnotationOccurrence(*i)
2292            }
2293            ApprovalItemRef::TessellatedCurveSet(i) => EntityKey::TessellatedCurveSet(*i),
2294            ApprovalItemRef::TessellatedFace(i) => EntityKey::TessellatedFace(*i),
2295            ApprovalItemRef::TessellatedGeometricSet(i) => EntityKey::TessellatedGeometricSet(*i),
2296            ApprovalItemRef::TessellatedItem(i) => EntityKey::TessellatedItem(*i),
2297            ApprovalItemRef::TessellatedShapeRepresentation(i) => {
2298                EntityKey::TessellatedShapeRepresentation(*i)
2299            }
2300            ApprovalItemRef::TessellatedShell(i) => EntityKey::TessellatedShell(*i),
2301            ApprovalItemRef::TessellatedSolid(i) => EntityKey::TessellatedSolid(*i),
2302            ApprovalItemRef::TessellatedStructuredItem(i) => {
2303                EntityKey::TessellatedStructuredItem(*i)
2304            }
2305            ApprovalItemRef::TessellatedSurfaceSet(i) => EntityKey::TessellatedSurfaceSet(*i),
2306            ApprovalItemRef::TextLiteral(i) => EntityKey::TextLiteral(*i),
2307            ApprovalItemRef::TopologicalRepresentationItem(i) => {
2308                EntityKey::TopologicalRepresentationItem(*i)
2309            }
2310            ApprovalItemRef::ToroidalSurface(i) => EntityKey::ToroidalSurface(*i),
2311            ApprovalItemRef::TrimmedCurve(i) => EntityKey::TrimmedCurve(*i),
2312            ApprovalItemRef::TwoDirectionRepeatFactor(i) => EntityKey::TwoDirectionRepeatFactor(*i),
2313            ApprovalItemRef::UniformCurve(i) => EntityKey::UniformCurve(*i),
2314            ApprovalItemRef::UniformSurface(i) => EntityKey::UniformSurface(*i),
2315            ApprovalItemRef::ValueRepresentationItem(i) => EntityKey::ValueRepresentationItem(*i),
2316            ApprovalItemRef::Vector(i) => EntityKey::Vector(*i),
2317            ApprovalItemRef::VersionedActionRequest(i) => EntityKey::VersionedActionRequest(*i),
2318            ApprovalItemRef::Vertex(i) => EntityKey::Vertex(*i),
2319            ApprovalItemRef::VertexLoop(i) => EntityKey::VertexLoop(*i),
2320            ApprovalItemRef::VertexPoint(i) => EntityKey::VertexPoint(*i),
2321            ApprovalItemRef::VertexShell(i) => EntityKey::VertexShell(*i),
2322            ApprovalItemRef::WireShell(i) => EntityKey::WireShell(*i),
2323            ApprovalItemRef::Complex(i) => EntityKey::ComplexUnit(*i),
2324        }
2325    }
2326}
2327
2328#[derive(Clone, Copy, Debug)]
2329pub enum ApprovalRoleRefView<'m> {
2330    ApprovalRole(&'m ApprovalRole),
2331}
2332impl ApprovalRoleRef {
2333    pub fn resolve<'m>(&self, model: &'m StepModel) -> ApprovalRoleRefView<'m> {
2334        match self {
2335            ApprovalRoleRef::ApprovalRole(i) => {
2336                ApprovalRoleRefView::ApprovalRole(model.approval_role_arena.get(i.0))
2337            }
2338        }
2339    }
2340    pub fn entity_key(&self) -> EntityKey {
2341        match self {
2342            ApprovalRoleRef::ApprovalRole(i) => EntityKey::ApprovalRole(*i),
2343        }
2344    }
2345}
2346
2347#[derive(Clone, Copy, Debug)]
2348pub enum ApprovalStatusRefView<'m> {
2349    ApprovalStatus(&'m ApprovalStatus),
2350}
2351impl ApprovalStatusRef {
2352    pub fn resolve<'m>(&self, model: &'m StepModel) -> ApprovalStatusRefView<'m> {
2353        match self {
2354            ApprovalStatusRef::ApprovalStatus(i) => {
2355                ApprovalStatusRefView::ApprovalStatus(model.approval_status_arena.get(i.0))
2356            }
2357        }
2358    }
2359    pub fn entity_key(&self) -> EntityKey {
2360        match self {
2361            ApprovalStatusRef::ApprovalStatus(i) => EntityKey::ApprovalStatus(*i),
2362        }
2363    }
2364}
2365
2366#[derive(Clone, Copy, Debug)]
2367pub enum ApprovedItemRefView<'m> {
2368    Certification(&'m Certification),
2369    Change(&'m Change),
2370    ChangeRequest(&'m ChangeRequest),
2371    ConfigurationEffectivity(&'m ConfigurationEffectivity),
2372    ConfigurationItem(&'m ConfigurationItem),
2373    Contract(&'m Contract),
2374    Product(&'m Product),
2375    ProductDefinition(&'m ProductDefinition),
2376    ProductDefinitionFormation(&'m ProductDefinitionFormation),
2377    ProductDefinitionFormationWithSpecifiedSource(
2378        &'m ProductDefinitionFormationWithSpecifiedSource,
2379    ),
2380    ProductDefinitionWithAssociatedDocuments(&'m ProductDefinitionWithAssociatedDocuments),
2381    SecurityClassification(&'m SecurityClassification),
2382    StartRequest(&'m StartRequest),
2383    StartWork(&'m StartWork),
2384    Complex(&'m ComplexUnit),
2385}
2386impl ApprovedItemRef {
2387    pub fn resolve<'m>(&self, model: &'m StepModel) -> ApprovedItemRefView<'m> {
2388        match self {
2389            ApprovedItemRef::Certification(i) => {
2390                ApprovedItemRefView::Certification(model.certification_arena.get(i.0))
2391            }
2392            ApprovedItemRef::Change(i) => ApprovedItemRefView::Change(model.change_arena.get(i.0)),
2393            ApprovedItemRef::ChangeRequest(i) => {
2394                ApprovedItemRefView::ChangeRequest(model.change_request_arena.get(i.0))
2395            }
2396            ApprovedItemRef::ConfigurationEffectivity(i) => {
2397                ApprovedItemRefView::ConfigurationEffectivity(
2398                    model.configuration_effectivity_arena.get(i.0),
2399                )
2400            }
2401            ApprovedItemRef::ConfigurationItem(i) => {
2402                ApprovedItemRefView::ConfigurationItem(model.configuration_item_arena.get(i.0))
2403            }
2404            ApprovedItemRef::Contract(i) => {
2405                ApprovedItemRefView::Contract(model.contract_arena.get(i.0))
2406            }
2407            ApprovedItemRef::Product(i) => {
2408                ApprovedItemRefView::Product(model.product_arena.get(i.0))
2409            }
2410            ApprovedItemRef::ProductDefinition(i) => {
2411                ApprovedItemRefView::ProductDefinition(model.product_definition_arena.get(i.0))
2412            }
2413            ApprovedItemRef::ProductDefinitionFormation(i) => {
2414                ApprovedItemRefView::ProductDefinitionFormation(
2415                    model.product_definition_formation_arena.get(i.0),
2416                )
2417            }
2418            ApprovedItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => {
2419                ApprovedItemRefView::ProductDefinitionFormationWithSpecifiedSource(
2420                    model
2421                        .product_definition_formation_with_specified_source_arena
2422                        .get(i.0),
2423                )
2424            }
2425            ApprovedItemRef::ProductDefinitionWithAssociatedDocuments(i) => {
2426                ApprovedItemRefView::ProductDefinitionWithAssociatedDocuments(
2427                    model
2428                        .product_definition_with_associated_documents_arena
2429                        .get(i.0),
2430                )
2431            }
2432            ApprovedItemRef::SecurityClassification(i) => {
2433                ApprovedItemRefView::SecurityClassification(
2434                    model.security_classification_arena.get(i.0),
2435                )
2436            }
2437            ApprovedItemRef::StartRequest(i) => {
2438                ApprovedItemRefView::StartRequest(model.start_request_arena.get(i.0))
2439            }
2440            ApprovedItemRef::StartWork(i) => {
2441                ApprovedItemRefView::StartWork(model.start_work_arena.get(i.0))
2442            }
2443            ApprovedItemRef::Complex(i) => {
2444                ApprovedItemRefView::Complex(model.complex_unit_arena.get(i.0))
2445            }
2446        }
2447    }
2448    pub fn entity_key(&self) -> EntityKey {
2449        match self {
2450            ApprovedItemRef::Certification(i) => EntityKey::Certification(*i),
2451            ApprovedItemRef::Change(i) => EntityKey::Change(*i),
2452            ApprovedItemRef::ChangeRequest(i) => EntityKey::ChangeRequest(*i),
2453            ApprovedItemRef::ConfigurationEffectivity(i) => EntityKey::ConfigurationEffectivity(*i),
2454            ApprovedItemRef::ConfigurationItem(i) => EntityKey::ConfigurationItem(*i),
2455            ApprovedItemRef::Contract(i) => EntityKey::Contract(*i),
2456            ApprovedItemRef::Product(i) => EntityKey::Product(*i),
2457            ApprovedItemRef::ProductDefinition(i) => EntityKey::ProductDefinition(*i),
2458            ApprovedItemRef::ProductDefinitionFormation(i) => {
2459                EntityKey::ProductDefinitionFormation(*i)
2460            }
2461            ApprovedItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => {
2462                EntityKey::ProductDefinitionFormationWithSpecifiedSource(*i)
2463            }
2464            ApprovedItemRef::ProductDefinitionWithAssociatedDocuments(i) => {
2465                EntityKey::ProductDefinitionWithAssociatedDocuments(*i)
2466            }
2467            ApprovedItemRef::SecurityClassification(i) => EntityKey::SecurityClassification(*i),
2468            ApprovedItemRef::StartRequest(i) => EntityKey::StartRequest(*i),
2469            ApprovedItemRef::StartWork(i) => EntityKey::StartWork(*i),
2470            ApprovedItemRef::Complex(i) => EntityKey::ComplexUnit(*i),
2471        }
2472    }
2473}
2474
2475#[derive(Clone, Copy, Debug)]
2476pub enum AscribableStateRefView<'m> {
2477    AscribableState(&'m AscribableState),
2478}
2479impl AscribableStateRef {
2480    pub fn resolve<'m>(&self, model: &'m StepModel) -> AscribableStateRefView<'m> {
2481        match self {
2482            AscribableStateRef::AscribableState(i) => {
2483                AscribableStateRefView::AscribableState(model.ascribable_state_arena.get(i.0))
2484            }
2485        }
2486    }
2487    pub fn entity_key(&self) -> EntityKey {
2488        match self {
2489            AscribableStateRef::AscribableState(i) => EntityKey::AscribableState(*i),
2490        }
2491    }
2492}
2493
2494#[derive(Clone, Copy, Debug)]
2495pub enum Axis1PlacementRefView<'m> {
2496    Axis1Placement(&'m Axis1Placement),
2497}
2498impl Axis1PlacementRef {
2499    pub fn resolve<'m>(&self, model: &'m StepModel) -> Axis1PlacementRefView<'m> {
2500        match self {
2501            Axis1PlacementRef::Axis1Placement(i) => {
2502                Axis1PlacementRefView::Axis1Placement(model.axis1_placement_arena.get(i.0))
2503            }
2504        }
2505    }
2506    pub fn entity_key(&self) -> EntityKey {
2507        match self {
2508            Axis1PlacementRef::Axis1Placement(i) => EntityKey::Axis1Placement(*i),
2509        }
2510    }
2511}
2512
2513#[derive(Clone, Copy, Debug)]
2514pub enum Axis2PlacementRefView<'m> {
2515    Axis2Placement2d(&'m Axis2Placement2d),
2516    Axis2Placement3d(&'m Axis2Placement3d),
2517}
2518impl Axis2PlacementRef {
2519    pub fn resolve<'m>(&self, model: &'m StepModel) -> Axis2PlacementRefView<'m> {
2520        match self {
2521            Axis2PlacementRef::Axis2Placement2d(i) => {
2522                Axis2PlacementRefView::Axis2Placement2d(model.axis2_placement2d_arena.get(i.0))
2523            }
2524            Axis2PlacementRef::Axis2Placement3d(i) => {
2525                Axis2PlacementRefView::Axis2Placement3d(model.axis2_placement3d_arena.get(i.0))
2526            }
2527        }
2528    }
2529    pub fn entity_key(&self) -> EntityKey {
2530        match self {
2531            Axis2PlacementRef::Axis2Placement2d(i) => EntityKey::Axis2Placement2d(*i),
2532            Axis2PlacementRef::Axis2Placement3d(i) => EntityKey::Axis2Placement3d(*i),
2533        }
2534    }
2535}
2536
2537#[derive(Clone, Copy, Debug)]
2538pub enum Axis2Placement3dRefView<'m> {
2539    Axis2Placement3d(&'m Axis2Placement3d),
2540}
2541impl Axis2Placement3dRef {
2542    pub fn resolve<'m>(&self, model: &'m StepModel) -> Axis2Placement3dRefView<'m> {
2543        match self {
2544            Axis2Placement3dRef::Axis2Placement3d(i) => {
2545                Axis2Placement3dRefView::Axis2Placement3d(model.axis2_placement3d_arena.get(i.0))
2546            }
2547        }
2548    }
2549    pub fn entity_key(&self) -> EntityKey {
2550        match self {
2551            Axis2Placement3dRef::Axis2Placement3d(i) => EntityKey::Axis2Placement3d(*i),
2552        }
2553    }
2554}
2555
2556#[derive(Clone, Copy, Debug)]
2557pub enum CameraModelD3MultiClippingIntersectionSelectRefView<'m> {
2558    Plane(&'m Plane),
2559}
2560impl CameraModelD3MultiClippingIntersectionSelectRef {
2561    pub fn resolve<'m>(
2562        &self,
2563        model: &'m StepModel,
2564    ) -> CameraModelD3MultiClippingIntersectionSelectRefView<'m> {
2565        match self {
2566            CameraModelD3MultiClippingIntersectionSelectRef::Plane(i) => {
2567                CameraModelD3MultiClippingIntersectionSelectRefView::Plane(
2568                    model.plane_arena.get(i.0),
2569                )
2570            }
2571        }
2572    }
2573    pub fn entity_key(&self) -> EntityKey {
2574        match self {
2575            CameraModelD3MultiClippingIntersectionSelectRef::Plane(i) => EntityKey::Plane(*i),
2576        }
2577    }
2578}
2579
2580#[derive(Clone, Copy, Debug)]
2581pub enum CartesianPointRefView<'m> {
2582    ApllPoint(&'m ApllPoint),
2583    ApllPointWithSurface(&'m ApllPointWithSurface),
2584    CartesianPoint(&'m CartesianPoint),
2585}
2586impl CartesianPointRef {
2587    pub fn resolve<'m>(&self, model: &'m StepModel) -> CartesianPointRefView<'m> {
2588        match self {
2589            CartesianPointRef::ApllPoint(i) => {
2590                CartesianPointRefView::ApllPoint(model.apll_point_arena.get(i.0))
2591            }
2592            CartesianPointRef::ApllPointWithSurface(i) => {
2593                CartesianPointRefView::ApllPointWithSurface(
2594                    model.apll_point_with_surface_arena.get(i.0),
2595                )
2596            }
2597            CartesianPointRef::CartesianPoint(i) => {
2598                CartesianPointRefView::CartesianPoint(model.cartesian_point_arena.get(i.0))
2599            }
2600        }
2601    }
2602    pub fn entity_key(&self) -> EntityKey {
2603        match self {
2604            CartesianPointRef::ApllPoint(i) => EntityKey::ApllPoint(*i),
2605            CartesianPointRef::ApllPointWithSurface(i) => EntityKey::ApllPointWithSurface(*i),
2606            CartesianPointRef::CartesianPoint(i) => EntityKey::CartesianPoint(*i),
2607        }
2608    }
2609}
2610
2611#[derive(Clone, Copy, Debug)]
2612pub enum CcClassifiedItemRefView<'m> {
2613    AssemblyComponentUsage(&'m AssemblyComponentUsage),
2614    NextAssemblyUsageOccurrence(&'m NextAssemblyUsageOccurrence),
2615    ProductDefinitionFormation(&'m ProductDefinitionFormation),
2616    ProductDefinitionFormationWithSpecifiedSource(
2617        &'m ProductDefinitionFormationWithSpecifiedSource,
2618    ),
2619    Complex(&'m ComplexUnit),
2620}
2621impl CcClassifiedItemRef {
2622    pub fn resolve<'m>(&self, model: &'m StepModel) -> CcClassifiedItemRefView<'m> {
2623        match self {
2624            CcClassifiedItemRef::AssemblyComponentUsage(i) => {
2625                CcClassifiedItemRefView::AssemblyComponentUsage(
2626                    model.assembly_component_usage_arena.get(i.0),
2627                )
2628            }
2629            CcClassifiedItemRef::NextAssemblyUsageOccurrence(i) => {
2630                CcClassifiedItemRefView::NextAssemblyUsageOccurrence(
2631                    model.next_assembly_usage_occurrence_arena.get(i.0),
2632                )
2633            }
2634            CcClassifiedItemRef::ProductDefinitionFormation(i) => {
2635                CcClassifiedItemRefView::ProductDefinitionFormation(
2636                    model.product_definition_formation_arena.get(i.0),
2637                )
2638            }
2639            CcClassifiedItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => {
2640                CcClassifiedItemRefView::ProductDefinitionFormationWithSpecifiedSource(
2641                    model
2642                        .product_definition_formation_with_specified_source_arena
2643                        .get(i.0),
2644                )
2645            }
2646            CcClassifiedItemRef::Complex(i) => {
2647                CcClassifiedItemRefView::Complex(model.complex_unit_arena.get(i.0))
2648            }
2649        }
2650    }
2651    pub fn entity_key(&self) -> EntityKey {
2652        match self {
2653            CcClassifiedItemRef::AssemblyComponentUsage(i) => EntityKey::AssemblyComponentUsage(*i),
2654            CcClassifiedItemRef::NextAssemblyUsageOccurrence(i) => {
2655                EntityKey::NextAssemblyUsageOccurrence(*i)
2656            }
2657            CcClassifiedItemRef::ProductDefinitionFormation(i) => {
2658                EntityKey::ProductDefinitionFormation(*i)
2659            }
2660            CcClassifiedItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => {
2661                EntityKey::ProductDefinitionFormationWithSpecifiedSource(*i)
2662            }
2663            CcClassifiedItemRef::Complex(i) => EntityKey::ComplexUnit(*i),
2664        }
2665    }
2666}
2667
2668#[derive(Clone, Copy, Debug)]
2669pub enum CcPersonOrganizationItemRefView<'m> {
2670    Change(&'m Change),
2671    ChangeRequest(&'m ChangeRequest),
2672    ConfigurationItem(&'m ConfigurationItem),
2673    Contract(&'m Contract),
2674    Product(&'m Product),
2675    ProductDefinition(&'m ProductDefinition),
2676    ProductDefinitionFormation(&'m ProductDefinitionFormation),
2677    ProductDefinitionFormationWithSpecifiedSource(
2678        &'m ProductDefinitionFormationWithSpecifiedSource,
2679    ),
2680    ProductDefinitionWithAssociatedDocuments(&'m ProductDefinitionWithAssociatedDocuments),
2681    SecurityClassification(&'m SecurityClassification),
2682    StartRequest(&'m StartRequest),
2683    StartWork(&'m StartWork),
2684    Complex(&'m ComplexUnit),
2685}
2686impl CcPersonOrganizationItemRef {
2687    pub fn resolve<'m>(&self, model: &'m StepModel) -> CcPersonOrganizationItemRefView<'m> {
2688        match self {
2689            CcPersonOrganizationItemRef::Change(i) => {
2690                CcPersonOrganizationItemRefView::Change(model.change_arena.get(i.0))
2691            }
2692            CcPersonOrganizationItemRef::ChangeRequest(i) => {
2693                CcPersonOrganizationItemRefView::ChangeRequest(model.change_request_arena.get(i.0))
2694            }
2695            CcPersonOrganizationItemRef::ConfigurationItem(i) => {
2696                CcPersonOrganizationItemRefView::ConfigurationItem(
2697                    model.configuration_item_arena.get(i.0),
2698                )
2699            }
2700            CcPersonOrganizationItemRef::Contract(i) => {
2701                CcPersonOrganizationItemRefView::Contract(model.contract_arena.get(i.0))
2702            }
2703            CcPersonOrganizationItemRef::Product(i) => {
2704                CcPersonOrganizationItemRefView::Product(model.product_arena.get(i.0))
2705            }
2706            CcPersonOrganizationItemRef::ProductDefinition(i) => {
2707                CcPersonOrganizationItemRefView::ProductDefinition(
2708                    model.product_definition_arena.get(i.0),
2709                )
2710            }
2711            CcPersonOrganizationItemRef::ProductDefinitionFormation(i) => {
2712                CcPersonOrganizationItemRefView::ProductDefinitionFormation(
2713                    model.product_definition_formation_arena.get(i.0),
2714                )
2715            }
2716            CcPersonOrganizationItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => {
2717                CcPersonOrganizationItemRefView::ProductDefinitionFormationWithSpecifiedSource(
2718                    model
2719                        .product_definition_formation_with_specified_source_arena
2720                        .get(i.0),
2721                )
2722            }
2723            CcPersonOrganizationItemRef::ProductDefinitionWithAssociatedDocuments(i) => {
2724                CcPersonOrganizationItemRefView::ProductDefinitionWithAssociatedDocuments(
2725                    model
2726                        .product_definition_with_associated_documents_arena
2727                        .get(i.0),
2728                )
2729            }
2730            CcPersonOrganizationItemRef::SecurityClassification(i) => {
2731                CcPersonOrganizationItemRefView::SecurityClassification(
2732                    model.security_classification_arena.get(i.0),
2733                )
2734            }
2735            CcPersonOrganizationItemRef::StartRequest(i) => {
2736                CcPersonOrganizationItemRefView::StartRequest(model.start_request_arena.get(i.0))
2737            }
2738            CcPersonOrganizationItemRef::StartWork(i) => {
2739                CcPersonOrganizationItemRefView::StartWork(model.start_work_arena.get(i.0))
2740            }
2741            CcPersonOrganizationItemRef::Complex(i) => {
2742                CcPersonOrganizationItemRefView::Complex(model.complex_unit_arena.get(i.0))
2743            }
2744        }
2745    }
2746    pub fn entity_key(&self) -> EntityKey {
2747        match self {
2748            CcPersonOrganizationItemRef::Change(i) => EntityKey::Change(*i),
2749            CcPersonOrganizationItemRef::ChangeRequest(i) => EntityKey::ChangeRequest(*i),
2750            CcPersonOrganizationItemRef::ConfigurationItem(i) => EntityKey::ConfigurationItem(*i),
2751            CcPersonOrganizationItemRef::Contract(i) => EntityKey::Contract(*i),
2752            CcPersonOrganizationItemRef::Product(i) => EntityKey::Product(*i),
2753            CcPersonOrganizationItemRef::ProductDefinition(i) => EntityKey::ProductDefinition(*i),
2754            CcPersonOrganizationItemRef::ProductDefinitionFormation(i) => {
2755                EntityKey::ProductDefinitionFormation(*i)
2756            }
2757            CcPersonOrganizationItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => {
2758                EntityKey::ProductDefinitionFormationWithSpecifiedSource(*i)
2759            }
2760            CcPersonOrganizationItemRef::ProductDefinitionWithAssociatedDocuments(i) => {
2761                EntityKey::ProductDefinitionWithAssociatedDocuments(*i)
2762            }
2763            CcPersonOrganizationItemRef::SecurityClassification(i) => {
2764                EntityKey::SecurityClassification(*i)
2765            }
2766            CcPersonOrganizationItemRef::StartRequest(i) => EntityKey::StartRequest(*i),
2767            CcPersonOrganizationItemRef::StartWork(i) => EntityKey::StartWork(*i),
2768            CcPersonOrganizationItemRef::Complex(i) => EntityKey::ComplexUnit(*i),
2769        }
2770    }
2771}
2772
2773#[derive(Clone, Copy, Debug)]
2774pub enum CertificationTypeRefView<'m> {
2775    CertificationType(&'m CertificationType),
2776}
2777impl CertificationTypeRef {
2778    pub fn resolve<'m>(&self, model: &'m StepModel) -> CertificationTypeRefView<'m> {
2779        match self {
2780            CertificationTypeRef::CertificationType(i) => {
2781                CertificationTypeRefView::CertificationType(model.certification_type_arena.get(i.0))
2782            }
2783        }
2784    }
2785    pub fn entity_key(&self) -> EntityKey {
2786        match self {
2787            CertificationTypeRef::CertificationType(i) => EntityKey::CertificationType(*i),
2788        }
2789    }
2790}
2791
2792#[derive(Clone, Copy, Debug)]
2793pub enum ChangeRequestItemRefView<'m> {
2794    ProductDefinitionFormation(&'m ProductDefinitionFormation),
2795    ProductDefinitionFormationWithSpecifiedSource(
2796        &'m ProductDefinitionFormationWithSpecifiedSource,
2797    ),
2798    Complex(&'m ComplexUnit),
2799}
2800impl ChangeRequestItemRef {
2801    pub fn resolve<'m>(&self, model: &'m StepModel) -> ChangeRequestItemRefView<'m> {
2802        match self {
2803            ChangeRequestItemRef::ProductDefinitionFormation(i) => {
2804                ChangeRequestItemRefView::ProductDefinitionFormation(
2805                    model.product_definition_formation_arena.get(i.0),
2806                )
2807            }
2808            ChangeRequestItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => {
2809                ChangeRequestItemRefView::ProductDefinitionFormationWithSpecifiedSource(
2810                    model
2811                        .product_definition_formation_with_specified_source_arena
2812                        .get(i.0),
2813                )
2814            }
2815            ChangeRequestItemRef::Complex(i) => {
2816                ChangeRequestItemRefView::Complex(model.complex_unit_arena.get(i.0))
2817            }
2818        }
2819    }
2820    pub fn entity_key(&self) -> EntityKey {
2821        match self {
2822            ChangeRequestItemRef::ProductDefinitionFormation(i) => {
2823                EntityKey::ProductDefinitionFormation(*i)
2824            }
2825            ChangeRequestItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => {
2826                EntityKey::ProductDefinitionFormationWithSpecifiedSource(*i)
2827            }
2828            ChangeRequestItemRef::Complex(i) => EntityKey::ComplexUnit(*i),
2829        }
2830    }
2831}
2832
2833#[derive(Clone, Copy, Debug)]
2834pub enum CharacterStyleSelectRefView<'m> {
2835    CharacterGlyphStyleOutline(&'m CharacterGlyphStyleOutline),
2836    CharacterGlyphStyleStroke(&'m CharacterGlyphStyleStroke),
2837    TextStyleForDefinedFont(&'m TextStyleForDefinedFont),
2838    Complex(&'m ComplexUnit),
2839}
2840impl CharacterStyleSelectRef {
2841    pub fn resolve<'m>(&self, model: &'m StepModel) -> CharacterStyleSelectRefView<'m> {
2842        match self {
2843            CharacterStyleSelectRef::CharacterGlyphStyleOutline(i) => {
2844                CharacterStyleSelectRefView::CharacterGlyphStyleOutline(
2845                    model.character_glyph_style_outline_arena.get(i.0),
2846                )
2847            }
2848            CharacterStyleSelectRef::CharacterGlyphStyleStroke(i) => {
2849                CharacterStyleSelectRefView::CharacterGlyphStyleStroke(
2850                    model.character_glyph_style_stroke_arena.get(i.0),
2851                )
2852            }
2853            CharacterStyleSelectRef::TextStyleForDefinedFont(i) => {
2854                CharacterStyleSelectRefView::TextStyleForDefinedFont(
2855                    model.text_style_for_defined_font_arena.get(i.0),
2856                )
2857            }
2858            CharacterStyleSelectRef::Complex(i) => {
2859                CharacterStyleSelectRefView::Complex(model.complex_unit_arena.get(i.0))
2860            }
2861        }
2862    }
2863    pub fn entity_key(&self) -> EntityKey {
2864        match self {
2865            CharacterStyleSelectRef::CharacterGlyphStyleOutline(i) => {
2866                EntityKey::CharacterGlyphStyleOutline(*i)
2867            }
2868            CharacterStyleSelectRef::CharacterGlyphStyleStroke(i) => {
2869                EntityKey::CharacterGlyphStyleStroke(*i)
2870            }
2871            CharacterStyleSelectRef::TextStyleForDefinedFont(i) => {
2872                EntityKey::TextStyleForDefinedFont(*i)
2873            }
2874            CharacterStyleSelectRef::Complex(i) => EntityKey::ComplexUnit(*i),
2875        }
2876    }
2877}
2878
2879#[derive(Clone, Copy, Debug)]
2880pub enum CharacterizedActionDefinitionRefView<'m> {
2881    Action(&'m Action),
2882    ActionMethod(&'m ActionMethod),
2883    ActionMethodRelationship(&'m ActionMethodRelationship),
2884    ActionRelationship(&'m ActionRelationship),
2885    Complex(&'m ComplexUnit),
2886}
2887impl CharacterizedActionDefinitionRef {
2888    pub fn resolve<'m>(&self, model: &'m StepModel) -> CharacterizedActionDefinitionRefView<'m> {
2889        match self {
2890            CharacterizedActionDefinitionRef::Action(i) => {
2891                CharacterizedActionDefinitionRefView::Action(model.action_arena.get(i.0))
2892            }
2893            CharacterizedActionDefinitionRef::ActionMethod(i) => {
2894                CharacterizedActionDefinitionRefView::ActionMethod(
2895                    model.action_method_arena.get(i.0),
2896                )
2897            }
2898            CharacterizedActionDefinitionRef::ActionMethodRelationship(i) => {
2899                CharacterizedActionDefinitionRefView::ActionMethodRelationship(
2900                    model.action_method_relationship_arena.get(i.0),
2901                )
2902            }
2903            CharacterizedActionDefinitionRef::ActionRelationship(i) => {
2904                CharacterizedActionDefinitionRefView::ActionRelationship(
2905                    model.action_relationship_arena.get(i.0),
2906                )
2907            }
2908            CharacterizedActionDefinitionRef::Complex(i) => {
2909                CharacterizedActionDefinitionRefView::Complex(model.complex_unit_arena.get(i.0))
2910            }
2911        }
2912    }
2913    pub fn entity_key(&self) -> EntityKey {
2914        match self {
2915            CharacterizedActionDefinitionRef::Action(i) => EntityKey::Action(*i),
2916            CharacterizedActionDefinitionRef::ActionMethod(i) => EntityKey::ActionMethod(*i),
2917            CharacterizedActionDefinitionRef::ActionMethodRelationship(i) => {
2918                EntityKey::ActionMethodRelationship(*i)
2919            }
2920            CharacterizedActionDefinitionRef::ActionRelationship(i) => {
2921                EntityKey::ActionRelationship(*i)
2922            }
2923            CharacterizedActionDefinitionRef::Complex(i) => EntityKey::ComplexUnit(*i),
2924        }
2925    }
2926}
2927
2928#[derive(Clone, Copy, Debug)]
2929pub enum CharacterizedDefinitionRefView<'m> {
2930    AllAroundShapeAspect(&'m AllAroundShapeAspect),
2931    AngularLocation(&'m AngularLocation),
2932    AngularSize(&'m AngularSize),
2933    AngularityTolerance(&'m AngularityTolerance),
2934    AssemblyComponentUsage(&'m AssemblyComponentUsage),
2935    CentreOfSymmetry(&'m CentreOfSymmetry),
2936    CharacterizedItemWithinRepresentation(&'m CharacterizedItemWithinRepresentation),
2937    CharacterizedObject(&'m CharacterizedObject),
2938    CharacterizedRepresentation(&'m CharacterizedRepresentation),
2939    CircularRunoutTolerance(&'m CircularRunoutTolerance),
2940    CoaxialityTolerance(&'m CoaxialityTolerance),
2941    CommonDatum(&'m CommonDatum),
2942    CompositeGroupShapeAspect(&'m CompositeGroupShapeAspect),
2943    CompositeShapeAspect(&'m CompositeShapeAspect),
2944    ConcentricityTolerance(&'m ConcentricityTolerance),
2945    ContinuousShapeAspect(&'m ContinuousShapeAspect),
2946    CylindricityTolerance(&'m CylindricityTolerance),
2947    Datum(&'m Datum),
2948    DatumFeature(&'m DatumFeature),
2949    DatumReferenceCompartment(&'m DatumReferenceCompartment),
2950    DatumReferenceElement(&'m DatumReferenceElement),
2951    DatumSystem(&'m DatumSystem),
2952    DatumTarget(&'m DatumTarget),
2953    DefaultModelGeometricView(&'m DefaultModelGeometricView),
2954    DerivedShapeAspect(&'m DerivedShapeAspect),
2955    DimensionalLocation(&'m DimensionalLocation),
2956    DimensionalLocationWithPath(&'m DimensionalLocationWithPath),
2957    DimensionalSize(&'m DimensionalSize),
2958    DimensionalSizeWithDatumFeature(&'m DimensionalSizeWithDatumFeature),
2959    DimensionalSizeWithPath(&'m DimensionalSizeWithPath),
2960    DirectedDimensionalLocation(&'m DirectedDimensionalLocation),
2961    DocumentFile(&'m DocumentFile),
2962    DraughtingModelItemAssociation(&'m DraughtingModelItemAssociation),
2963    DraughtingModelItemAssociationWithPlaceholder(
2964        &'m DraughtingModelItemAssociationWithPlaceholder,
2965    ),
2966    FeatureForDatumTargetRelationship(&'m FeatureForDatumTargetRelationship),
2967    FlatnessTolerance(&'m FlatnessTolerance),
2968    GeneralDatumReference(&'m GeneralDatumReference),
2969    GeometricItemSpecificUsage(&'m GeometricItemSpecificUsage),
2970    GeometricTolerance(&'m GeometricTolerance),
2971    GeometricToleranceWithDatumReference(&'m GeometricToleranceWithDatumReference),
2972    GeometricToleranceWithDefinedAreaUnit(&'m GeometricToleranceWithDefinedAreaUnit),
2973    GeometricToleranceWithDefinedUnit(&'m GeometricToleranceWithDefinedUnit),
2974    GeometricToleranceWithMaximumTolerance(&'m GeometricToleranceWithMaximumTolerance),
2975    GeometricToleranceWithModifiers(&'m GeometricToleranceWithModifiers),
2976    ItemIdentifiedRepresentationUsage(&'m ItemIdentifiedRepresentationUsage),
2977    LineProfileTolerance(&'m LineProfileTolerance),
2978    MakeFromUsageOption(&'m MakeFromUsageOption),
2979    ModelGeometricView(&'m ModelGeometricView),
2980    ModifiedGeometricTolerance(&'m ModifiedGeometricTolerance),
2981    NextAssemblyUsageOccurrence(&'m NextAssemblyUsageOccurrence),
2982    ParallelismTolerance(&'m ParallelismTolerance),
2983    PerpendicularityTolerance(&'m PerpendicularityTolerance),
2984    PlacedDatumTargetFeature(&'m PlacedDatumTargetFeature),
2985    PositionTolerance(&'m PositionTolerance),
2986    ProductDefinition(&'m ProductDefinition),
2987    ProductDefinitionOccurrence(&'m ProductDefinitionOccurrence),
2988    ProductDefinitionRelationship(&'m ProductDefinitionRelationship),
2989    ProductDefinitionRelationshipRelationship(&'m ProductDefinitionRelationshipRelationship),
2990    ProductDefinitionShape(&'m ProductDefinitionShape),
2991    ProductDefinitionUsage(&'m ProductDefinitionUsage),
2992    ProductDefinitionWithAssociatedDocuments(&'m ProductDefinitionWithAssociatedDocuments),
2993    RoundnessTolerance(&'m RoundnessTolerance),
2994    ShapeAspect(&'m ShapeAspect),
2995    ShapeAspectAssociativity(&'m ShapeAspectAssociativity),
2996    ShapeAspectDerivingRelationship(&'m ShapeAspectDerivingRelationship),
2997    ShapeAspectRelationship(&'m ShapeAspectRelationship),
2998    StraightnessTolerance(&'m StraightnessTolerance),
2999    SurfaceProfileTolerance(&'m SurfaceProfileTolerance),
3000    SymmetryTolerance(&'m SymmetryTolerance),
3001    ToleranceZone(&'m ToleranceZone),
3002    ToleranceZoneWithDatum(&'m ToleranceZoneWithDatum),
3003    TotalRunoutTolerance(&'m TotalRunoutTolerance),
3004    UnequallyDisposedGeometricTolerance(&'m UnequallyDisposedGeometricTolerance),
3005    Complex(&'m ComplexUnit),
3006}
3007impl CharacterizedDefinitionRef {
3008    pub fn resolve<'m>(&self, model: &'m StepModel) -> CharacterizedDefinitionRefView<'m> {
3009        match self {
3010            CharacterizedDefinitionRef::AllAroundShapeAspect(i) => {
3011                CharacterizedDefinitionRefView::AllAroundShapeAspect(
3012                    model.all_around_shape_aspect_arena.get(i.0),
3013                )
3014            }
3015            CharacterizedDefinitionRef::AngularLocation(i) => {
3016                CharacterizedDefinitionRefView::AngularLocation(
3017                    model.angular_location_arena.get(i.0),
3018                )
3019            }
3020            CharacterizedDefinitionRef::AngularSize(i) => {
3021                CharacterizedDefinitionRefView::AngularSize(model.angular_size_arena.get(i.0))
3022            }
3023            CharacterizedDefinitionRef::AngularityTolerance(i) => {
3024                CharacterizedDefinitionRefView::AngularityTolerance(
3025                    model.angularity_tolerance_arena.get(i.0),
3026                )
3027            }
3028            CharacterizedDefinitionRef::AssemblyComponentUsage(i) => {
3029                CharacterizedDefinitionRefView::AssemblyComponentUsage(
3030                    model.assembly_component_usage_arena.get(i.0),
3031                )
3032            }
3033            CharacterizedDefinitionRef::CentreOfSymmetry(i) => {
3034                CharacterizedDefinitionRefView::CentreOfSymmetry(
3035                    model.centre_of_symmetry_arena.get(i.0),
3036                )
3037            }
3038            CharacterizedDefinitionRef::CharacterizedItemWithinRepresentation(i) => {
3039                CharacterizedDefinitionRefView::CharacterizedItemWithinRepresentation(
3040                    model
3041                        .characterized_item_within_representation_arena
3042                        .get(i.0),
3043                )
3044            }
3045            CharacterizedDefinitionRef::CharacterizedObject(i) => {
3046                CharacterizedDefinitionRefView::CharacterizedObject(
3047                    model.characterized_object_arena.get(i.0),
3048                )
3049            }
3050            CharacterizedDefinitionRef::CharacterizedRepresentation(i) => {
3051                CharacterizedDefinitionRefView::CharacterizedRepresentation(
3052                    model.characterized_representation_arena.get(i.0),
3053                )
3054            }
3055            CharacterizedDefinitionRef::CircularRunoutTolerance(i) => {
3056                CharacterizedDefinitionRefView::CircularRunoutTolerance(
3057                    model.circular_runout_tolerance_arena.get(i.0),
3058                )
3059            }
3060            CharacterizedDefinitionRef::CoaxialityTolerance(i) => {
3061                CharacterizedDefinitionRefView::CoaxialityTolerance(
3062                    model.coaxiality_tolerance_arena.get(i.0),
3063                )
3064            }
3065            CharacterizedDefinitionRef::CommonDatum(i) => {
3066                CharacterizedDefinitionRefView::CommonDatum(model.common_datum_arena.get(i.0))
3067            }
3068            CharacterizedDefinitionRef::CompositeGroupShapeAspect(i) => {
3069                CharacterizedDefinitionRefView::CompositeGroupShapeAspect(
3070                    model.composite_group_shape_aspect_arena.get(i.0),
3071                )
3072            }
3073            CharacterizedDefinitionRef::CompositeShapeAspect(i) => {
3074                CharacterizedDefinitionRefView::CompositeShapeAspect(
3075                    model.composite_shape_aspect_arena.get(i.0),
3076                )
3077            }
3078            CharacterizedDefinitionRef::ConcentricityTolerance(i) => {
3079                CharacterizedDefinitionRefView::ConcentricityTolerance(
3080                    model.concentricity_tolerance_arena.get(i.0),
3081                )
3082            }
3083            CharacterizedDefinitionRef::ContinuousShapeAspect(i) => {
3084                CharacterizedDefinitionRefView::ContinuousShapeAspect(
3085                    model.continuous_shape_aspect_arena.get(i.0),
3086                )
3087            }
3088            CharacterizedDefinitionRef::CylindricityTolerance(i) => {
3089                CharacterizedDefinitionRefView::CylindricityTolerance(
3090                    model.cylindricity_tolerance_arena.get(i.0),
3091                )
3092            }
3093            CharacterizedDefinitionRef::Datum(i) => {
3094                CharacterizedDefinitionRefView::Datum(model.datum_arena.get(i.0))
3095            }
3096            CharacterizedDefinitionRef::DatumFeature(i) => {
3097                CharacterizedDefinitionRefView::DatumFeature(model.datum_feature_arena.get(i.0))
3098            }
3099            CharacterizedDefinitionRef::DatumReferenceCompartment(i) => {
3100                CharacterizedDefinitionRefView::DatumReferenceCompartment(
3101                    model.datum_reference_compartment_arena.get(i.0),
3102                )
3103            }
3104            CharacterizedDefinitionRef::DatumReferenceElement(i) => {
3105                CharacterizedDefinitionRefView::DatumReferenceElement(
3106                    model.datum_reference_element_arena.get(i.0),
3107                )
3108            }
3109            CharacterizedDefinitionRef::DatumSystem(i) => {
3110                CharacterizedDefinitionRefView::DatumSystem(model.datum_system_arena.get(i.0))
3111            }
3112            CharacterizedDefinitionRef::DatumTarget(i) => {
3113                CharacterizedDefinitionRefView::DatumTarget(model.datum_target_arena.get(i.0))
3114            }
3115            CharacterizedDefinitionRef::DefaultModelGeometricView(i) => {
3116                CharacterizedDefinitionRefView::DefaultModelGeometricView(
3117                    model.default_model_geometric_view_arena.get(i.0),
3118                )
3119            }
3120            CharacterizedDefinitionRef::DerivedShapeAspect(i) => {
3121                CharacterizedDefinitionRefView::DerivedShapeAspect(
3122                    model.derived_shape_aspect_arena.get(i.0),
3123                )
3124            }
3125            CharacterizedDefinitionRef::DimensionalLocation(i) => {
3126                CharacterizedDefinitionRefView::DimensionalLocation(
3127                    model.dimensional_location_arena.get(i.0),
3128                )
3129            }
3130            CharacterizedDefinitionRef::DimensionalLocationWithPath(i) => {
3131                CharacterizedDefinitionRefView::DimensionalLocationWithPath(
3132                    model.dimensional_location_with_path_arena.get(i.0),
3133                )
3134            }
3135            CharacterizedDefinitionRef::DimensionalSize(i) => {
3136                CharacterizedDefinitionRefView::DimensionalSize(
3137                    model.dimensional_size_arena.get(i.0),
3138                )
3139            }
3140            CharacterizedDefinitionRef::DimensionalSizeWithDatumFeature(i) => {
3141                CharacterizedDefinitionRefView::DimensionalSizeWithDatumFeature(
3142                    model.dimensional_size_with_datum_feature_arena.get(i.0),
3143                )
3144            }
3145            CharacterizedDefinitionRef::DimensionalSizeWithPath(i) => {
3146                CharacterizedDefinitionRefView::DimensionalSizeWithPath(
3147                    model.dimensional_size_with_path_arena.get(i.0),
3148                )
3149            }
3150            CharacterizedDefinitionRef::DirectedDimensionalLocation(i) => {
3151                CharacterizedDefinitionRefView::DirectedDimensionalLocation(
3152                    model.directed_dimensional_location_arena.get(i.0),
3153                )
3154            }
3155            CharacterizedDefinitionRef::DocumentFile(i) => {
3156                CharacterizedDefinitionRefView::DocumentFile(model.document_file_arena.get(i.0))
3157            }
3158            CharacterizedDefinitionRef::DraughtingModelItemAssociation(i) => {
3159                CharacterizedDefinitionRefView::DraughtingModelItemAssociation(
3160                    model.draughting_model_item_association_arena.get(i.0),
3161                )
3162            }
3163            CharacterizedDefinitionRef::DraughtingModelItemAssociationWithPlaceholder(i) => {
3164                CharacterizedDefinitionRefView::DraughtingModelItemAssociationWithPlaceholder(
3165                    model
3166                        .draughting_model_item_association_with_placeholder_arena
3167                        .get(i.0),
3168                )
3169            }
3170            CharacterizedDefinitionRef::FeatureForDatumTargetRelationship(i) => {
3171                CharacterizedDefinitionRefView::FeatureForDatumTargetRelationship(
3172                    model.feature_for_datum_target_relationship_arena.get(i.0),
3173                )
3174            }
3175            CharacterizedDefinitionRef::FlatnessTolerance(i) => {
3176                CharacterizedDefinitionRefView::FlatnessTolerance(
3177                    model.flatness_tolerance_arena.get(i.0),
3178                )
3179            }
3180            CharacterizedDefinitionRef::GeneralDatumReference(i) => {
3181                CharacterizedDefinitionRefView::GeneralDatumReference(
3182                    model.general_datum_reference_arena.get(i.0),
3183                )
3184            }
3185            CharacterizedDefinitionRef::GeometricItemSpecificUsage(i) => {
3186                CharacterizedDefinitionRefView::GeometricItemSpecificUsage(
3187                    model.geometric_item_specific_usage_arena.get(i.0),
3188                )
3189            }
3190            CharacterizedDefinitionRef::GeometricTolerance(i) => {
3191                CharacterizedDefinitionRefView::GeometricTolerance(
3192                    model.geometric_tolerance_arena.get(i.0),
3193                )
3194            }
3195            CharacterizedDefinitionRef::GeometricToleranceWithDatumReference(i) => {
3196                CharacterizedDefinitionRefView::GeometricToleranceWithDatumReference(
3197                    model
3198                        .geometric_tolerance_with_datum_reference_arena
3199                        .get(i.0),
3200                )
3201            }
3202            CharacterizedDefinitionRef::GeometricToleranceWithDefinedAreaUnit(i) => {
3203                CharacterizedDefinitionRefView::GeometricToleranceWithDefinedAreaUnit(
3204                    model
3205                        .geometric_tolerance_with_defined_area_unit_arena
3206                        .get(i.0),
3207                )
3208            }
3209            CharacterizedDefinitionRef::GeometricToleranceWithDefinedUnit(i) => {
3210                CharacterizedDefinitionRefView::GeometricToleranceWithDefinedUnit(
3211                    model.geometric_tolerance_with_defined_unit_arena.get(i.0),
3212                )
3213            }
3214            CharacterizedDefinitionRef::GeometricToleranceWithMaximumTolerance(i) => {
3215                CharacterizedDefinitionRefView::GeometricToleranceWithMaximumTolerance(
3216                    model
3217                        .geometric_tolerance_with_maximum_tolerance_arena
3218                        .get(i.0),
3219                )
3220            }
3221            CharacterizedDefinitionRef::GeometricToleranceWithModifiers(i) => {
3222                CharacterizedDefinitionRefView::GeometricToleranceWithModifiers(
3223                    model.geometric_tolerance_with_modifiers_arena.get(i.0),
3224                )
3225            }
3226            CharacterizedDefinitionRef::ItemIdentifiedRepresentationUsage(i) => {
3227                CharacterizedDefinitionRefView::ItemIdentifiedRepresentationUsage(
3228                    model.item_identified_representation_usage_arena.get(i.0),
3229                )
3230            }
3231            CharacterizedDefinitionRef::LineProfileTolerance(i) => {
3232                CharacterizedDefinitionRefView::LineProfileTolerance(
3233                    model.line_profile_tolerance_arena.get(i.0),
3234                )
3235            }
3236            CharacterizedDefinitionRef::MakeFromUsageOption(i) => {
3237                CharacterizedDefinitionRefView::MakeFromUsageOption(
3238                    model.make_from_usage_option_arena.get(i.0),
3239                )
3240            }
3241            CharacterizedDefinitionRef::ModelGeometricView(i) => {
3242                CharacterizedDefinitionRefView::ModelGeometricView(
3243                    model.model_geometric_view_arena.get(i.0),
3244                )
3245            }
3246            CharacterizedDefinitionRef::ModifiedGeometricTolerance(i) => {
3247                CharacterizedDefinitionRefView::ModifiedGeometricTolerance(
3248                    model.modified_geometric_tolerance_arena.get(i.0),
3249                )
3250            }
3251            CharacterizedDefinitionRef::NextAssemblyUsageOccurrence(i) => {
3252                CharacterizedDefinitionRefView::NextAssemblyUsageOccurrence(
3253                    model.next_assembly_usage_occurrence_arena.get(i.0),
3254                )
3255            }
3256            CharacterizedDefinitionRef::ParallelismTolerance(i) => {
3257                CharacterizedDefinitionRefView::ParallelismTolerance(
3258                    model.parallelism_tolerance_arena.get(i.0),
3259                )
3260            }
3261            CharacterizedDefinitionRef::PerpendicularityTolerance(i) => {
3262                CharacterizedDefinitionRefView::PerpendicularityTolerance(
3263                    model.perpendicularity_tolerance_arena.get(i.0),
3264                )
3265            }
3266            CharacterizedDefinitionRef::PlacedDatumTargetFeature(i) => {
3267                CharacterizedDefinitionRefView::PlacedDatumTargetFeature(
3268                    model.placed_datum_target_feature_arena.get(i.0),
3269                )
3270            }
3271            CharacterizedDefinitionRef::PositionTolerance(i) => {
3272                CharacterizedDefinitionRefView::PositionTolerance(
3273                    model.position_tolerance_arena.get(i.0),
3274                )
3275            }
3276            CharacterizedDefinitionRef::ProductDefinition(i) => {
3277                CharacterizedDefinitionRefView::ProductDefinition(
3278                    model.product_definition_arena.get(i.0),
3279                )
3280            }
3281            CharacterizedDefinitionRef::ProductDefinitionOccurrence(i) => {
3282                CharacterizedDefinitionRefView::ProductDefinitionOccurrence(
3283                    model.product_definition_occurrence_arena.get(i.0),
3284                )
3285            }
3286            CharacterizedDefinitionRef::ProductDefinitionRelationship(i) => {
3287                CharacterizedDefinitionRefView::ProductDefinitionRelationship(
3288                    model.product_definition_relationship_arena.get(i.0),
3289                )
3290            }
3291            CharacterizedDefinitionRef::ProductDefinitionRelationshipRelationship(i) => {
3292                CharacterizedDefinitionRefView::ProductDefinitionRelationshipRelationship(
3293                    model
3294                        .product_definition_relationship_relationship_arena
3295                        .get(i.0),
3296                )
3297            }
3298            CharacterizedDefinitionRef::ProductDefinitionShape(i) => {
3299                CharacterizedDefinitionRefView::ProductDefinitionShape(
3300                    model.product_definition_shape_arena.get(i.0),
3301                )
3302            }
3303            CharacterizedDefinitionRef::ProductDefinitionUsage(i) => {
3304                CharacterizedDefinitionRefView::ProductDefinitionUsage(
3305                    model.product_definition_usage_arena.get(i.0),
3306                )
3307            }
3308            CharacterizedDefinitionRef::ProductDefinitionWithAssociatedDocuments(i) => {
3309                CharacterizedDefinitionRefView::ProductDefinitionWithAssociatedDocuments(
3310                    model
3311                        .product_definition_with_associated_documents_arena
3312                        .get(i.0),
3313                )
3314            }
3315            CharacterizedDefinitionRef::RoundnessTolerance(i) => {
3316                CharacterizedDefinitionRefView::RoundnessTolerance(
3317                    model.roundness_tolerance_arena.get(i.0),
3318                )
3319            }
3320            CharacterizedDefinitionRef::ShapeAspect(i) => {
3321                CharacterizedDefinitionRefView::ShapeAspect(model.shape_aspect_arena.get(i.0))
3322            }
3323            CharacterizedDefinitionRef::ShapeAspectAssociativity(i) => {
3324                CharacterizedDefinitionRefView::ShapeAspectAssociativity(
3325                    model.shape_aspect_associativity_arena.get(i.0),
3326                )
3327            }
3328            CharacterizedDefinitionRef::ShapeAspectDerivingRelationship(i) => {
3329                CharacterizedDefinitionRefView::ShapeAspectDerivingRelationship(
3330                    model.shape_aspect_deriving_relationship_arena.get(i.0),
3331                )
3332            }
3333            CharacterizedDefinitionRef::ShapeAspectRelationship(i) => {
3334                CharacterizedDefinitionRefView::ShapeAspectRelationship(
3335                    model.shape_aspect_relationship_arena.get(i.0),
3336                )
3337            }
3338            CharacterizedDefinitionRef::StraightnessTolerance(i) => {
3339                CharacterizedDefinitionRefView::StraightnessTolerance(
3340                    model.straightness_tolerance_arena.get(i.0),
3341                )
3342            }
3343            CharacterizedDefinitionRef::SurfaceProfileTolerance(i) => {
3344                CharacterizedDefinitionRefView::SurfaceProfileTolerance(
3345                    model.surface_profile_tolerance_arena.get(i.0),
3346                )
3347            }
3348            CharacterizedDefinitionRef::SymmetryTolerance(i) => {
3349                CharacterizedDefinitionRefView::SymmetryTolerance(
3350                    model.symmetry_tolerance_arena.get(i.0),
3351                )
3352            }
3353            CharacterizedDefinitionRef::ToleranceZone(i) => {
3354                CharacterizedDefinitionRefView::ToleranceZone(model.tolerance_zone_arena.get(i.0))
3355            }
3356            CharacterizedDefinitionRef::ToleranceZoneWithDatum(i) => {
3357                CharacterizedDefinitionRefView::ToleranceZoneWithDatum(
3358                    model.tolerance_zone_with_datum_arena.get(i.0),
3359                )
3360            }
3361            CharacterizedDefinitionRef::TotalRunoutTolerance(i) => {
3362                CharacterizedDefinitionRefView::TotalRunoutTolerance(
3363                    model.total_runout_tolerance_arena.get(i.0),
3364                )
3365            }
3366            CharacterizedDefinitionRef::UnequallyDisposedGeometricTolerance(i) => {
3367                CharacterizedDefinitionRefView::UnequallyDisposedGeometricTolerance(
3368                    model.unequally_disposed_geometric_tolerance_arena.get(i.0),
3369                )
3370            }
3371            CharacterizedDefinitionRef::Complex(i) => {
3372                CharacterizedDefinitionRefView::Complex(model.complex_unit_arena.get(i.0))
3373            }
3374        }
3375    }
3376    pub fn entity_key(&self) -> EntityKey {
3377        match self {
3378            CharacterizedDefinitionRef::AllAroundShapeAspect(i) => {
3379                EntityKey::AllAroundShapeAspect(*i)
3380            }
3381            CharacterizedDefinitionRef::AngularLocation(i) => EntityKey::AngularLocation(*i),
3382            CharacterizedDefinitionRef::AngularSize(i) => EntityKey::AngularSize(*i),
3383            CharacterizedDefinitionRef::AngularityTolerance(i) => {
3384                EntityKey::AngularityTolerance(*i)
3385            }
3386            CharacterizedDefinitionRef::AssemblyComponentUsage(i) => {
3387                EntityKey::AssemblyComponentUsage(*i)
3388            }
3389            CharacterizedDefinitionRef::CentreOfSymmetry(i) => EntityKey::CentreOfSymmetry(*i),
3390            CharacterizedDefinitionRef::CharacterizedItemWithinRepresentation(i) => {
3391                EntityKey::CharacterizedItemWithinRepresentation(*i)
3392            }
3393            CharacterizedDefinitionRef::CharacterizedObject(i) => {
3394                EntityKey::CharacterizedObject(*i)
3395            }
3396            CharacterizedDefinitionRef::CharacterizedRepresentation(i) => {
3397                EntityKey::CharacterizedRepresentation(*i)
3398            }
3399            CharacterizedDefinitionRef::CircularRunoutTolerance(i) => {
3400                EntityKey::CircularRunoutTolerance(*i)
3401            }
3402            CharacterizedDefinitionRef::CoaxialityTolerance(i) => {
3403                EntityKey::CoaxialityTolerance(*i)
3404            }
3405            CharacterizedDefinitionRef::CommonDatum(i) => EntityKey::CommonDatum(*i),
3406            CharacterizedDefinitionRef::CompositeGroupShapeAspect(i) => {
3407                EntityKey::CompositeGroupShapeAspect(*i)
3408            }
3409            CharacterizedDefinitionRef::CompositeShapeAspect(i) => {
3410                EntityKey::CompositeShapeAspect(*i)
3411            }
3412            CharacterizedDefinitionRef::ConcentricityTolerance(i) => {
3413                EntityKey::ConcentricityTolerance(*i)
3414            }
3415            CharacterizedDefinitionRef::ContinuousShapeAspect(i) => {
3416                EntityKey::ContinuousShapeAspect(*i)
3417            }
3418            CharacterizedDefinitionRef::CylindricityTolerance(i) => {
3419                EntityKey::CylindricityTolerance(*i)
3420            }
3421            CharacterizedDefinitionRef::Datum(i) => EntityKey::Datum(*i),
3422            CharacterizedDefinitionRef::DatumFeature(i) => EntityKey::DatumFeature(*i),
3423            CharacterizedDefinitionRef::DatumReferenceCompartment(i) => {
3424                EntityKey::DatumReferenceCompartment(*i)
3425            }
3426            CharacterizedDefinitionRef::DatumReferenceElement(i) => {
3427                EntityKey::DatumReferenceElement(*i)
3428            }
3429            CharacterizedDefinitionRef::DatumSystem(i) => EntityKey::DatumSystem(*i),
3430            CharacterizedDefinitionRef::DatumTarget(i) => EntityKey::DatumTarget(*i),
3431            CharacterizedDefinitionRef::DefaultModelGeometricView(i) => {
3432                EntityKey::DefaultModelGeometricView(*i)
3433            }
3434            CharacterizedDefinitionRef::DerivedShapeAspect(i) => EntityKey::DerivedShapeAspect(*i),
3435            CharacterizedDefinitionRef::DimensionalLocation(i) => {
3436                EntityKey::DimensionalLocation(*i)
3437            }
3438            CharacterizedDefinitionRef::DimensionalLocationWithPath(i) => {
3439                EntityKey::DimensionalLocationWithPath(*i)
3440            }
3441            CharacterizedDefinitionRef::DimensionalSize(i) => EntityKey::DimensionalSize(*i),
3442            CharacterizedDefinitionRef::DimensionalSizeWithDatumFeature(i) => {
3443                EntityKey::DimensionalSizeWithDatumFeature(*i)
3444            }
3445            CharacterizedDefinitionRef::DimensionalSizeWithPath(i) => {
3446                EntityKey::DimensionalSizeWithPath(*i)
3447            }
3448            CharacterizedDefinitionRef::DirectedDimensionalLocation(i) => {
3449                EntityKey::DirectedDimensionalLocation(*i)
3450            }
3451            CharacterizedDefinitionRef::DocumentFile(i) => EntityKey::DocumentFile(*i),
3452            CharacterizedDefinitionRef::DraughtingModelItemAssociation(i) => {
3453                EntityKey::DraughtingModelItemAssociation(*i)
3454            }
3455            CharacterizedDefinitionRef::DraughtingModelItemAssociationWithPlaceholder(i) => {
3456                EntityKey::DraughtingModelItemAssociationWithPlaceholder(*i)
3457            }
3458            CharacterizedDefinitionRef::FeatureForDatumTargetRelationship(i) => {
3459                EntityKey::FeatureForDatumTargetRelationship(*i)
3460            }
3461            CharacterizedDefinitionRef::FlatnessTolerance(i) => EntityKey::FlatnessTolerance(*i),
3462            CharacterizedDefinitionRef::GeneralDatumReference(i) => {
3463                EntityKey::GeneralDatumReference(*i)
3464            }
3465            CharacterizedDefinitionRef::GeometricItemSpecificUsage(i) => {
3466                EntityKey::GeometricItemSpecificUsage(*i)
3467            }
3468            CharacterizedDefinitionRef::GeometricTolerance(i) => EntityKey::GeometricTolerance(*i),
3469            CharacterizedDefinitionRef::GeometricToleranceWithDatumReference(i) => {
3470                EntityKey::GeometricToleranceWithDatumReference(*i)
3471            }
3472            CharacterizedDefinitionRef::GeometricToleranceWithDefinedAreaUnit(i) => {
3473                EntityKey::GeometricToleranceWithDefinedAreaUnit(*i)
3474            }
3475            CharacterizedDefinitionRef::GeometricToleranceWithDefinedUnit(i) => {
3476                EntityKey::GeometricToleranceWithDefinedUnit(*i)
3477            }
3478            CharacterizedDefinitionRef::GeometricToleranceWithMaximumTolerance(i) => {
3479                EntityKey::GeometricToleranceWithMaximumTolerance(*i)
3480            }
3481            CharacterizedDefinitionRef::GeometricToleranceWithModifiers(i) => {
3482                EntityKey::GeometricToleranceWithModifiers(*i)
3483            }
3484            CharacterizedDefinitionRef::ItemIdentifiedRepresentationUsage(i) => {
3485                EntityKey::ItemIdentifiedRepresentationUsage(*i)
3486            }
3487            CharacterizedDefinitionRef::LineProfileTolerance(i) => {
3488                EntityKey::LineProfileTolerance(*i)
3489            }
3490            CharacterizedDefinitionRef::MakeFromUsageOption(i) => {
3491                EntityKey::MakeFromUsageOption(*i)
3492            }
3493            CharacterizedDefinitionRef::ModelGeometricView(i) => EntityKey::ModelGeometricView(*i),
3494            CharacterizedDefinitionRef::ModifiedGeometricTolerance(i) => {
3495                EntityKey::ModifiedGeometricTolerance(*i)
3496            }
3497            CharacterizedDefinitionRef::NextAssemblyUsageOccurrence(i) => {
3498                EntityKey::NextAssemblyUsageOccurrence(*i)
3499            }
3500            CharacterizedDefinitionRef::ParallelismTolerance(i) => {
3501                EntityKey::ParallelismTolerance(*i)
3502            }
3503            CharacterizedDefinitionRef::PerpendicularityTolerance(i) => {
3504                EntityKey::PerpendicularityTolerance(*i)
3505            }
3506            CharacterizedDefinitionRef::PlacedDatumTargetFeature(i) => {
3507                EntityKey::PlacedDatumTargetFeature(*i)
3508            }
3509            CharacterizedDefinitionRef::PositionTolerance(i) => EntityKey::PositionTolerance(*i),
3510            CharacterizedDefinitionRef::ProductDefinition(i) => EntityKey::ProductDefinition(*i),
3511            CharacterizedDefinitionRef::ProductDefinitionOccurrence(i) => {
3512                EntityKey::ProductDefinitionOccurrence(*i)
3513            }
3514            CharacterizedDefinitionRef::ProductDefinitionRelationship(i) => {
3515                EntityKey::ProductDefinitionRelationship(*i)
3516            }
3517            CharacterizedDefinitionRef::ProductDefinitionRelationshipRelationship(i) => {
3518                EntityKey::ProductDefinitionRelationshipRelationship(*i)
3519            }
3520            CharacterizedDefinitionRef::ProductDefinitionShape(i) => {
3521                EntityKey::ProductDefinitionShape(*i)
3522            }
3523            CharacterizedDefinitionRef::ProductDefinitionUsage(i) => {
3524                EntityKey::ProductDefinitionUsage(*i)
3525            }
3526            CharacterizedDefinitionRef::ProductDefinitionWithAssociatedDocuments(i) => {
3527                EntityKey::ProductDefinitionWithAssociatedDocuments(*i)
3528            }
3529            CharacterizedDefinitionRef::RoundnessTolerance(i) => EntityKey::RoundnessTolerance(*i),
3530            CharacterizedDefinitionRef::ShapeAspect(i) => EntityKey::ShapeAspect(*i),
3531            CharacterizedDefinitionRef::ShapeAspectAssociativity(i) => {
3532                EntityKey::ShapeAspectAssociativity(*i)
3533            }
3534            CharacterizedDefinitionRef::ShapeAspectDerivingRelationship(i) => {
3535                EntityKey::ShapeAspectDerivingRelationship(*i)
3536            }
3537            CharacterizedDefinitionRef::ShapeAspectRelationship(i) => {
3538                EntityKey::ShapeAspectRelationship(*i)
3539            }
3540            CharacterizedDefinitionRef::StraightnessTolerance(i) => {
3541                EntityKey::StraightnessTolerance(*i)
3542            }
3543            CharacterizedDefinitionRef::SurfaceProfileTolerance(i) => {
3544                EntityKey::SurfaceProfileTolerance(*i)
3545            }
3546            CharacterizedDefinitionRef::SymmetryTolerance(i) => EntityKey::SymmetryTolerance(*i),
3547            CharacterizedDefinitionRef::ToleranceZone(i) => EntityKey::ToleranceZone(*i),
3548            CharacterizedDefinitionRef::ToleranceZoneWithDatum(i) => {
3549                EntityKey::ToleranceZoneWithDatum(*i)
3550            }
3551            CharacterizedDefinitionRef::TotalRunoutTolerance(i) => {
3552                EntityKey::TotalRunoutTolerance(*i)
3553            }
3554            CharacterizedDefinitionRef::UnequallyDisposedGeometricTolerance(i) => {
3555                EntityKey::UnequallyDisposedGeometricTolerance(*i)
3556            }
3557            CharacterizedDefinitionRef::Complex(i) => EntityKey::ComplexUnit(*i),
3558        }
3559    }
3560}
3561
3562#[derive(Clone, Copy, Debug)]
3563pub enum CharacterizedResourceDefinitionRefView<'m> {
3564    ActionResource(&'m ActionResource),
3565    ActionResourceRelationship(&'m ActionResourceRelationship),
3566    ActionResourceRequirement(&'m ActionResourceRequirement),
3567    Complex(&'m ComplexUnit),
3568}
3569impl CharacterizedResourceDefinitionRef {
3570    pub fn resolve<'m>(&self, model: &'m StepModel) -> CharacterizedResourceDefinitionRefView<'m> {
3571        match self {
3572            CharacterizedResourceDefinitionRef::ActionResource(i) => {
3573                CharacterizedResourceDefinitionRefView::ActionResource(
3574                    model.action_resource_arena.get(i.0),
3575                )
3576            }
3577            CharacterizedResourceDefinitionRef::ActionResourceRelationship(i) => {
3578                CharacterizedResourceDefinitionRefView::ActionResourceRelationship(
3579                    model.action_resource_relationship_arena.get(i.0),
3580                )
3581            }
3582            CharacterizedResourceDefinitionRef::ActionResourceRequirement(i) => {
3583                CharacterizedResourceDefinitionRefView::ActionResourceRequirement(
3584                    model.action_resource_requirement_arena.get(i.0),
3585                )
3586            }
3587            CharacterizedResourceDefinitionRef::Complex(i) => {
3588                CharacterizedResourceDefinitionRefView::Complex(model.complex_unit_arena.get(i.0))
3589            }
3590        }
3591    }
3592    pub fn entity_key(&self) -> EntityKey {
3593        match self {
3594            CharacterizedResourceDefinitionRef::ActionResource(i) => EntityKey::ActionResource(*i),
3595            CharacterizedResourceDefinitionRef::ActionResourceRelationship(i) => {
3596                EntityKey::ActionResourceRelationship(*i)
3597            }
3598            CharacterizedResourceDefinitionRef::ActionResourceRequirement(i) => {
3599                EntityKey::ActionResourceRequirement(*i)
3600            }
3601            CharacterizedResourceDefinitionRef::Complex(i) => EntityKey::ComplexUnit(*i),
3602        }
3603    }
3604}
3605
3606#[derive(Clone, Copy, Debug)]
3607pub enum ClosedShellRefView<'m> {
3608    ClosedShell(&'m ClosedShell),
3609    OrientedClosedShell(&'m OrientedClosedShell),
3610    Complex(&'m ComplexUnit),
3611}
3612impl ClosedShellRef {
3613    pub fn resolve<'m>(&self, model: &'m StepModel) -> ClosedShellRefView<'m> {
3614        match self {
3615            ClosedShellRef::ClosedShell(i) => {
3616                ClosedShellRefView::ClosedShell(model.closed_shell_arena.get(i.0))
3617            }
3618            ClosedShellRef::OrientedClosedShell(i) => {
3619                ClosedShellRefView::OrientedClosedShell(model.oriented_closed_shell_arena.get(i.0))
3620            }
3621            ClosedShellRef::Complex(i) => {
3622                ClosedShellRefView::Complex(model.complex_unit_arena.get(i.0))
3623            }
3624        }
3625    }
3626    pub fn entity_key(&self) -> EntityKey {
3627        match self {
3628            ClosedShellRef::ClosedShell(i) => EntityKey::ClosedShell(*i),
3629            ClosedShellRef::OrientedClosedShell(i) => EntityKey::OrientedClosedShell(*i),
3630            ClosedShellRef::Complex(i) => EntityKey::ComplexUnit(*i),
3631        }
3632    }
3633}
3634
3635#[derive(Clone, Copy, Debug)]
3636pub enum ColourRefView<'m> {
3637    Colour(&'m Colour),
3638    ColourRgb(&'m ColourRgb),
3639    ColourSpecification(&'m ColourSpecification),
3640    DraughtingPreDefinedColour(&'m DraughtingPreDefinedColour),
3641    PreDefinedColour(&'m PreDefinedColour),
3642    Complex(&'m ComplexUnit),
3643}
3644impl ColourRef {
3645    pub fn resolve<'m>(&self, model: &'m StepModel) -> ColourRefView<'m> {
3646        match self {
3647            ColourRef::Colour(i) => ColourRefView::Colour(model.colour_arena.get(i.0)),
3648            ColourRef::ColourRgb(i) => ColourRefView::ColourRgb(model.colour_rgb_arena.get(i.0)),
3649            ColourRef::ColourSpecification(i) => {
3650                ColourRefView::ColourSpecification(model.colour_specification_arena.get(i.0))
3651            }
3652            ColourRef::DraughtingPreDefinedColour(i) => ColourRefView::DraughtingPreDefinedColour(
3653                model.draughting_pre_defined_colour_arena.get(i.0),
3654            ),
3655            ColourRef::PreDefinedColour(i) => {
3656                ColourRefView::PreDefinedColour(model.pre_defined_colour_arena.get(i.0))
3657            }
3658            ColourRef::Complex(i) => ColourRefView::Complex(model.complex_unit_arena.get(i.0)),
3659        }
3660    }
3661    pub fn entity_key(&self) -> EntityKey {
3662        match self {
3663            ColourRef::Colour(i) => EntityKey::Colour(*i),
3664            ColourRef::ColourRgb(i) => EntityKey::ColourRgb(*i),
3665            ColourRef::ColourSpecification(i) => EntityKey::ColourSpecification(*i),
3666            ColourRef::DraughtingPreDefinedColour(i) => EntityKey::DraughtingPreDefinedColour(*i),
3667            ColourRef::PreDefinedColour(i) => EntityKey::PreDefinedColour(*i),
3668            ColourRef::Complex(i) => EntityKey::ComplexUnit(*i),
3669        }
3670    }
3671}
3672
3673#[derive(Clone, Copy, Debug)]
3674pub enum CompositeCurveSegmentRefView<'m> {
3675    CompositeCurveSegment(&'m CompositeCurveSegment),
3676    Complex(&'m ComplexUnit),
3677}
3678impl CompositeCurveSegmentRef {
3679    pub fn resolve<'m>(&self, model: &'m StepModel) -> CompositeCurveSegmentRefView<'m> {
3680        match self {
3681            CompositeCurveSegmentRef::CompositeCurveSegment(i) => {
3682                CompositeCurveSegmentRefView::CompositeCurveSegment(
3683                    model.composite_curve_segment_arena.get(i.0),
3684                )
3685            }
3686            CompositeCurveSegmentRef::Complex(i) => {
3687                CompositeCurveSegmentRefView::Complex(model.complex_unit_arena.get(i.0))
3688            }
3689        }
3690    }
3691    pub fn entity_key(&self) -> EntityKey {
3692        match self {
3693            CompositeCurveSegmentRef::CompositeCurveSegment(i) => {
3694                EntityKey::CompositeCurveSegment(*i)
3695            }
3696            CompositeCurveSegmentRef::Complex(i) => EntityKey::ComplexUnit(*i),
3697        }
3698    }
3699}
3700
3701#[derive(Clone, Copy, Debug)]
3702pub enum ConfigurationDesignRefView<'m> {
3703    ConfigurationDesign(&'m ConfigurationDesign),
3704}
3705impl ConfigurationDesignRef {
3706    pub fn resolve<'m>(&self, model: &'m StepModel) -> ConfigurationDesignRefView<'m> {
3707        match self {
3708            ConfigurationDesignRef::ConfigurationDesign(i) => {
3709                ConfigurationDesignRefView::ConfigurationDesign(
3710                    model.configuration_design_arena.get(i.0),
3711                )
3712            }
3713        }
3714    }
3715    pub fn entity_key(&self) -> EntityKey {
3716        match self {
3717            ConfigurationDesignRef::ConfigurationDesign(i) => EntityKey::ConfigurationDesign(*i),
3718        }
3719    }
3720}
3721
3722#[derive(Clone, Copy, Debug)]
3723pub enum ConfigurationDesignItemRefView<'m> {
3724    ProductDefinition(&'m ProductDefinition),
3725    ProductDefinitionFormation(&'m ProductDefinitionFormation),
3726    ProductDefinitionFormationWithSpecifiedSource(
3727        &'m ProductDefinitionFormationWithSpecifiedSource,
3728    ),
3729    ProductDefinitionOccurrence(&'m ProductDefinitionOccurrence),
3730    ProductDefinitionWithAssociatedDocuments(&'m ProductDefinitionWithAssociatedDocuments),
3731    Complex(&'m ComplexUnit),
3732}
3733impl ConfigurationDesignItemRef {
3734    pub fn resolve<'m>(&self, model: &'m StepModel) -> ConfigurationDesignItemRefView<'m> {
3735        match self {
3736            ConfigurationDesignItemRef::ProductDefinition(i) => {
3737                ConfigurationDesignItemRefView::ProductDefinition(
3738                    model.product_definition_arena.get(i.0),
3739                )
3740            }
3741            ConfigurationDesignItemRef::ProductDefinitionFormation(i) => {
3742                ConfigurationDesignItemRefView::ProductDefinitionFormation(
3743                    model.product_definition_formation_arena.get(i.0),
3744                )
3745            }
3746            ConfigurationDesignItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => {
3747                ConfigurationDesignItemRefView::ProductDefinitionFormationWithSpecifiedSource(
3748                    model
3749                        .product_definition_formation_with_specified_source_arena
3750                        .get(i.0),
3751                )
3752            }
3753            ConfigurationDesignItemRef::ProductDefinitionOccurrence(i) => {
3754                ConfigurationDesignItemRefView::ProductDefinitionOccurrence(
3755                    model.product_definition_occurrence_arena.get(i.0),
3756                )
3757            }
3758            ConfigurationDesignItemRef::ProductDefinitionWithAssociatedDocuments(i) => {
3759                ConfigurationDesignItemRefView::ProductDefinitionWithAssociatedDocuments(
3760                    model
3761                        .product_definition_with_associated_documents_arena
3762                        .get(i.0),
3763                )
3764            }
3765            ConfigurationDesignItemRef::Complex(i) => {
3766                ConfigurationDesignItemRefView::Complex(model.complex_unit_arena.get(i.0))
3767            }
3768        }
3769    }
3770    pub fn entity_key(&self) -> EntityKey {
3771        match self {
3772            ConfigurationDesignItemRef::ProductDefinition(i) => EntityKey::ProductDefinition(*i),
3773            ConfigurationDesignItemRef::ProductDefinitionFormation(i) => {
3774                EntityKey::ProductDefinitionFormation(*i)
3775            }
3776            ConfigurationDesignItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => {
3777                EntityKey::ProductDefinitionFormationWithSpecifiedSource(*i)
3778            }
3779            ConfigurationDesignItemRef::ProductDefinitionOccurrence(i) => {
3780                EntityKey::ProductDefinitionOccurrence(*i)
3781            }
3782            ConfigurationDesignItemRef::ProductDefinitionWithAssociatedDocuments(i) => {
3783                EntityKey::ProductDefinitionWithAssociatedDocuments(*i)
3784            }
3785            ConfigurationDesignItemRef::Complex(i) => EntityKey::ComplexUnit(*i),
3786        }
3787    }
3788}
3789
3790#[derive(Clone, Copy, Debug)]
3791pub enum ConfigurationItemRefView<'m> {
3792    ConfigurationItem(&'m ConfigurationItem),
3793    Complex(&'m ComplexUnit),
3794}
3795impl ConfigurationItemRef {
3796    pub fn resolve<'m>(&self, model: &'m StepModel) -> ConfigurationItemRefView<'m> {
3797        match self {
3798            ConfigurationItemRef::ConfigurationItem(i) => {
3799                ConfigurationItemRefView::ConfigurationItem(model.configuration_item_arena.get(i.0))
3800            }
3801            ConfigurationItemRef::Complex(i) => {
3802                ConfigurationItemRefView::Complex(model.complex_unit_arena.get(i.0))
3803            }
3804        }
3805    }
3806    pub fn entity_key(&self) -> EntityKey {
3807        match self {
3808            ConfigurationItemRef::ConfigurationItem(i) => EntityKey::ConfigurationItem(*i),
3809            ConfigurationItemRef::Complex(i) => EntityKey::ComplexUnit(*i),
3810        }
3811    }
3812}
3813
3814#[derive(Clone, Copy, Debug)]
3815pub enum ConnectedFaceSetRefView<'m> {
3816    ClosedShell(&'m ClosedShell),
3817    ConnectedFaceSet(&'m ConnectedFaceSet),
3818    OpenShell(&'m OpenShell),
3819    OrientedClosedShell(&'m OrientedClosedShell),
3820    Complex(&'m ComplexUnit),
3821}
3822impl ConnectedFaceSetRef {
3823    pub fn resolve<'m>(&self, model: &'m StepModel) -> ConnectedFaceSetRefView<'m> {
3824        match self {
3825            ConnectedFaceSetRef::ClosedShell(i) => {
3826                ConnectedFaceSetRefView::ClosedShell(model.closed_shell_arena.get(i.0))
3827            }
3828            ConnectedFaceSetRef::ConnectedFaceSet(i) => {
3829                ConnectedFaceSetRefView::ConnectedFaceSet(model.connected_face_set_arena.get(i.0))
3830            }
3831            ConnectedFaceSetRef::OpenShell(i) => {
3832                ConnectedFaceSetRefView::OpenShell(model.open_shell_arena.get(i.0))
3833            }
3834            ConnectedFaceSetRef::OrientedClosedShell(i) => {
3835                ConnectedFaceSetRefView::OrientedClosedShell(
3836                    model.oriented_closed_shell_arena.get(i.0),
3837                )
3838            }
3839            ConnectedFaceSetRef::Complex(i) => {
3840                ConnectedFaceSetRefView::Complex(model.complex_unit_arena.get(i.0))
3841            }
3842        }
3843    }
3844    pub fn entity_key(&self) -> EntityKey {
3845        match self {
3846            ConnectedFaceSetRef::ClosedShell(i) => EntityKey::ClosedShell(*i),
3847            ConnectedFaceSetRef::ConnectedFaceSet(i) => EntityKey::ConnectedFaceSet(*i),
3848            ConnectedFaceSetRef::OpenShell(i) => EntityKey::OpenShell(*i),
3849            ConnectedFaceSetRef::OrientedClosedShell(i) => EntityKey::OrientedClosedShell(*i),
3850            ConnectedFaceSetRef::Complex(i) => EntityKey::ComplexUnit(*i),
3851        }
3852    }
3853}
3854
3855#[derive(Clone, Copy, Debug)]
3856pub enum ConstructiveGeometryRepresentationOrShapeRepresentationRefView<'m> {
3857    AdvancedBrepShapeRepresentation(&'m AdvancedBrepShapeRepresentation),
3858    ConstructiveGeometryRepresentation(&'m ConstructiveGeometryRepresentation),
3859    GeometricallyBoundedSurfaceShapeRepresentation(
3860        &'m GeometricallyBoundedSurfaceShapeRepresentation,
3861    ),
3862    GeometricallyBoundedWireframeShapeRepresentation(
3863        &'m GeometricallyBoundedWireframeShapeRepresentation,
3864    ),
3865    ManifoldSurfaceShapeRepresentation(&'m ManifoldSurfaceShapeRepresentation),
3866    ShapeDimensionRepresentation(&'m ShapeDimensionRepresentation),
3867    ShapeRepresentation(&'m ShapeRepresentation),
3868    ShapeRepresentationWithParameters(&'m ShapeRepresentationWithParameters),
3869    TessellatedShapeRepresentation(&'m TessellatedShapeRepresentation),
3870    Complex(&'m ComplexUnit),
3871}
3872impl ConstructiveGeometryRepresentationOrShapeRepresentationRef {
3873    pub fn resolve<'m>(
3874        &self,
3875        model: &'m StepModel,
3876    ) -> ConstructiveGeometryRepresentationOrShapeRepresentationRefView<'m> {
3877        match self {
3878            ConstructiveGeometryRepresentationOrShapeRepresentationRef::AdvancedBrepShapeRepresentation(i) => ConstructiveGeometryRepresentationOrShapeRepresentationRefView::AdvancedBrepShapeRepresentation(model.advanced_brep_shape_representation_arena.get(i.0)),
3879            ConstructiveGeometryRepresentationOrShapeRepresentationRef::ConstructiveGeometryRepresentation(i) => ConstructiveGeometryRepresentationOrShapeRepresentationRefView::ConstructiveGeometryRepresentation(model.constructive_geometry_representation_arena.get(i.0)),
3880            ConstructiveGeometryRepresentationOrShapeRepresentationRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => ConstructiveGeometryRepresentationOrShapeRepresentationRefView::GeometricallyBoundedSurfaceShapeRepresentation(model.geometrically_bounded_surface_shape_representation_arena.get(i.0)),
3881            ConstructiveGeometryRepresentationOrShapeRepresentationRef::GeometricallyBoundedWireframeShapeRepresentation(i) => ConstructiveGeometryRepresentationOrShapeRepresentationRefView::GeometricallyBoundedWireframeShapeRepresentation(model.geometrically_bounded_wireframe_shape_representation_arena.get(i.0)),
3882            ConstructiveGeometryRepresentationOrShapeRepresentationRef::ManifoldSurfaceShapeRepresentation(i) => ConstructiveGeometryRepresentationOrShapeRepresentationRefView::ManifoldSurfaceShapeRepresentation(model.manifold_surface_shape_representation_arena.get(i.0)),
3883            ConstructiveGeometryRepresentationOrShapeRepresentationRef::ShapeDimensionRepresentation(i) => ConstructiveGeometryRepresentationOrShapeRepresentationRefView::ShapeDimensionRepresentation(model.shape_dimension_representation_arena.get(i.0)),
3884            ConstructiveGeometryRepresentationOrShapeRepresentationRef::ShapeRepresentation(i) => ConstructiveGeometryRepresentationOrShapeRepresentationRefView::ShapeRepresentation(model.shape_representation_arena.get(i.0)),
3885            ConstructiveGeometryRepresentationOrShapeRepresentationRef::ShapeRepresentationWithParameters(i) => ConstructiveGeometryRepresentationOrShapeRepresentationRefView::ShapeRepresentationWithParameters(model.shape_representation_with_parameters_arena.get(i.0)),
3886            ConstructiveGeometryRepresentationOrShapeRepresentationRef::TessellatedShapeRepresentation(i) => ConstructiveGeometryRepresentationOrShapeRepresentationRefView::TessellatedShapeRepresentation(model.tessellated_shape_representation_arena.get(i.0)),
3887            ConstructiveGeometryRepresentationOrShapeRepresentationRef::Complex(i) => ConstructiveGeometryRepresentationOrShapeRepresentationRefView::Complex(model.complex_unit_arena.get(i.0)),
3888        }
3889    }
3890    pub fn entity_key(&self) -> EntityKey {
3891        match self {
3892            ConstructiveGeometryRepresentationOrShapeRepresentationRef::AdvancedBrepShapeRepresentation(i) => EntityKey::AdvancedBrepShapeRepresentation(*i),
3893            ConstructiveGeometryRepresentationOrShapeRepresentationRef::ConstructiveGeometryRepresentation(i) => EntityKey::ConstructiveGeometryRepresentation(*i),
3894            ConstructiveGeometryRepresentationOrShapeRepresentationRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => EntityKey::GeometricallyBoundedSurfaceShapeRepresentation(*i),
3895            ConstructiveGeometryRepresentationOrShapeRepresentationRef::GeometricallyBoundedWireframeShapeRepresentation(i) => EntityKey::GeometricallyBoundedWireframeShapeRepresentation(*i),
3896            ConstructiveGeometryRepresentationOrShapeRepresentationRef::ManifoldSurfaceShapeRepresentation(i) => EntityKey::ManifoldSurfaceShapeRepresentation(*i),
3897            ConstructiveGeometryRepresentationOrShapeRepresentationRef::ShapeDimensionRepresentation(i) => EntityKey::ShapeDimensionRepresentation(*i),
3898            ConstructiveGeometryRepresentationOrShapeRepresentationRef::ShapeRepresentation(i) => EntityKey::ShapeRepresentation(*i),
3899            ConstructiveGeometryRepresentationOrShapeRepresentationRef::ShapeRepresentationWithParameters(i) => EntityKey::ShapeRepresentationWithParameters(*i),
3900            ConstructiveGeometryRepresentationOrShapeRepresentationRef::TessellatedShapeRepresentation(i) => EntityKey::TessellatedShapeRepresentation(*i),
3901            ConstructiveGeometryRepresentationOrShapeRepresentationRef::Complex(i) => EntityKey::ComplexUnit(*i),
3902        }
3903    }
3904}
3905
3906#[derive(Clone, Copy, Debug)]
3907pub enum ContractTypeRefView<'m> {
3908    ContractType(&'m ContractType),
3909}
3910impl ContractTypeRef {
3911    pub fn resolve<'m>(&self, model: &'m StepModel) -> ContractTypeRefView<'m> {
3912        match self {
3913            ContractTypeRef::ContractType(i) => {
3914                ContractTypeRefView::ContractType(model.contract_type_arena.get(i.0))
3915            }
3916        }
3917    }
3918    pub fn entity_key(&self) -> EntityKey {
3919        match self {
3920            ContractTypeRef::ContractType(i) => EntityKey::ContractType(*i),
3921        }
3922    }
3923}
3924
3925#[derive(Clone, Copy, Debug)]
3926pub enum CoordinatedUniversalTimeOffsetRefView<'m> {
3927    CoordinatedUniversalTimeOffset(&'m CoordinatedUniversalTimeOffset),
3928}
3929impl CoordinatedUniversalTimeOffsetRef {
3930    pub fn resolve<'m>(&self, model: &'m StepModel) -> CoordinatedUniversalTimeOffsetRefView<'m> {
3931        match self {
3932            CoordinatedUniversalTimeOffsetRef::CoordinatedUniversalTimeOffset(i) => {
3933                CoordinatedUniversalTimeOffsetRefView::CoordinatedUniversalTimeOffset(
3934                    model.coordinated_universal_time_offset_arena.get(i.0),
3935                )
3936            }
3937        }
3938    }
3939    pub fn entity_key(&self) -> EntityKey {
3940        match self {
3941            CoordinatedUniversalTimeOffsetRef::CoordinatedUniversalTimeOffset(i) => {
3942                EntityKey::CoordinatedUniversalTimeOffset(*i)
3943            }
3944        }
3945    }
3946}
3947
3948#[derive(Clone, Copy, Debug)]
3949pub enum CoordinatesListRefView<'m> {
3950    CoordinatesList(&'m CoordinatesList),
3951}
3952impl CoordinatesListRef {
3953    pub fn resolve<'m>(&self, model: &'m StepModel) -> CoordinatesListRefView<'m> {
3954        match self {
3955            CoordinatesListRef::CoordinatesList(i) => {
3956                CoordinatesListRefView::CoordinatesList(model.coordinates_list_arena.get(i.0))
3957            }
3958        }
3959    }
3960    pub fn entity_key(&self) -> EntityKey {
3961        match self {
3962            CoordinatesListRef::CoordinatesList(i) => EntityKey::CoordinatesList(*i),
3963        }
3964    }
3965}
3966
3967#[derive(Clone, Copy, Debug)]
3968pub enum CurveRefView<'m> {
3969    BSplineCurve(&'m BSplineCurve),
3970    BSplineCurveWithKnots(&'m BSplineCurveWithKnots),
3971    BezierCurve(&'m BezierCurve),
3972    BoundedCurve(&'m BoundedCurve),
3973    BoundedPcurve(&'m BoundedPcurve),
3974    BoundedSurfaceCurve(&'m BoundedSurfaceCurve),
3975    Circle(&'m Circle),
3976    CompositeCurve(&'m CompositeCurve),
3977    Conic(&'m Conic),
3978    Curve(&'m Curve),
3979    Ellipse(&'m Ellipse),
3980    Hyperbola(&'m Hyperbola),
3981    IntersectionCurve(&'m IntersectionCurve),
3982    Line(&'m Line),
3983    Pcurve(&'m Pcurve),
3984    Polyline(&'m Polyline),
3985    QuasiUniformCurve(&'m QuasiUniformCurve),
3986    RationalBSplineCurve(&'m RationalBSplineCurve),
3987    SeamCurve(&'m SeamCurve),
3988    SurfaceCurve(&'m SurfaceCurve),
3989    TrimmedCurve(&'m TrimmedCurve),
3990    UniformCurve(&'m UniformCurve),
3991    Complex(&'m ComplexUnit),
3992}
3993impl CurveRef {
3994    pub fn resolve<'m>(&self, model: &'m StepModel) -> CurveRefView<'m> {
3995        match self {
3996            CurveRef::BSplineCurve(i) => {
3997                CurveRefView::BSplineCurve(model.b_spline_curve_arena.get(i.0))
3998            }
3999            CurveRef::BSplineCurveWithKnots(i) => {
4000                CurveRefView::BSplineCurveWithKnots(model.b_spline_curve_with_knots_arena.get(i.0))
4001            }
4002            CurveRef::BezierCurve(i) => {
4003                CurveRefView::BezierCurve(model.bezier_curve_arena.get(i.0))
4004            }
4005            CurveRef::BoundedCurve(i) => {
4006                CurveRefView::BoundedCurve(model.bounded_curve_arena.get(i.0))
4007            }
4008            CurveRef::BoundedPcurve(i) => {
4009                CurveRefView::BoundedPcurve(model.bounded_pcurve_arena.get(i.0))
4010            }
4011            CurveRef::BoundedSurfaceCurve(i) => {
4012                CurveRefView::BoundedSurfaceCurve(model.bounded_surface_curve_arena.get(i.0))
4013            }
4014            CurveRef::Circle(i) => CurveRefView::Circle(model.circle_arena.get(i.0)),
4015            CurveRef::CompositeCurve(i) => {
4016                CurveRefView::CompositeCurve(model.composite_curve_arena.get(i.0))
4017            }
4018            CurveRef::Conic(i) => CurveRefView::Conic(model.conic_arena.get(i.0)),
4019            CurveRef::Curve(i) => CurveRefView::Curve(model.curve_arena.get(i.0)),
4020            CurveRef::Ellipse(i) => CurveRefView::Ellipse(model.ellipse_arena.get(i.0)),
4021            CurveRef::Hyperbola(i) => CurveRefView::Hyperbola(model.hyperbola_arena.get(i.0)),
4022            CurveRef::IntersectionCurve(i) => {
4023                CurveRefView::IntersectionCurve(model.intersection_curve_arena.get(i.0))
4024            }
4025            CurveRef::Line(i) => CurveRefView::Line(model.line_arena.get(i.0)),
4026            CurveRef::Pcurve(i) => CurveRefView::Pcurve(model.pcurve_arena.get(i.0)),
4027            CurveRef::Polyline(i) => CurveRefView::Polyline(model.polyline_arena.get(i.0)),
4028            CurveRef::QuasiUniformCurve(i) => {
4029                CurveRefView::QuasiUniformCurve(model.quasi_uniform_curve_arena.get(i.0))
4030            }
4031            CurveRef::RationalBSplineCurve(i) => {
4032                CurveRefView::RationalBSplineCurve(model.rational_b_spline_curve_arena.get(i.0))
4033            }
4034            CurveRef::SeamCurve(i) => CurveRefView::SeamCurve(model.seam_curve_arena.get(i.0)),
4035            CurveRef::SurfaceCurve(i) => {
4036                CurveRefView::SurfaceCurve(model.surface_curve_arena.get(i.0))
4037            }
4038            CurveRef::TrimmedCurve(i) => {
4039                CurveRefView::TrimmedCurve(model.trimmed_curve_arena.get(i.0))
4040            }
4041            CurveRef::UniformCurve(i) => {
4042                CurveRefView::UniformCurve(model.uniform_curve_arena.get(i.0))
4043            }
4044            CurveRef::Complex(i) => CurveRefView::Complex(model.complex_unit_arena.get(i.0)),
4045        }
4046    }
4047    pub fn entity_key(&self) -> EntityKey {
4048        match self {
4049            CurveRef::BSplineCurve(i) => EntityKey::BSplineCurve(*i),
4050            CurveRef::BSplineCurveWithKnots(i) => EntityKey::BSplineCurveWithKnots(*i),
4051            CurveRef::BezierCurve(i) => EntityKey::BezierCurve(*i),
4052            CurveRef::BoundedCurve(i) => EntityKey::BoundedCurve(*i),
4053            CurveRef::BoundedPcurve(i) => EntityKey::BoundedPcurve(*i),
4054            CurveRef::BoundedSurfaceCurve(i) => EntityKey::BoundedSurfaceCurve(*i),
4055            CurveRef::Circle(i) => EntityKey::Circle(*i),
4056            CurveRef::CompositeCurve(i) => EntityKey::CompositeCurve(*i),
4057            CurveRef::Conic(i) => EntityKey::Conic(*i),
4058            CurveRef::Curve(i) => EntityKey::Curve(*i),
4059            CurveRef::Ellipse(i) => EntityKey::Ellipse(*i),
4060            CurveRef::Hyperbola(i) => EntityKey::Hyperbola(*i),
4061            CurveRef::IntersectionCurve(i) => EntityKey::IntersectionCurve(*i),
4062            CurveRef::Line(i) => EntityKey::Line(*i),
4063            CurveRef::Pcurve(i) => EntityKey::Pcurve(*i),
4064            CurveRef::Polyline(i) => EntityKey::Polyline(*i),
4065            CurveRef::QuasiUniformCurve(i) => EntityKey::QuasiUniformCurve(*i),
4066            CurveRef::RationalBSplineCurve(i) => EntityKey::RationalBSplineCurve(*i),
4067            CurveRef::SeamCurve(i) => EntityKey::SeamCurve(*i),
4068            CurveRef::SurfaceCurve(i) => EntityKey::SurfaceCurve(*i),
4069            CurveRef::TrimmedCurve(i) => EntityKey::TrimmedCurve(*i),
4070            CurveRef::UniformCurve(i) => EntityKey::UniformCurve(*i),
4071            CurveRef::Complex(i) => EntityKey::ComplexUnit(*i),
4072        }
4073    }
4074}
4075
4076#[derive(Clone, Copy, Debug)]
4077pub enum CurveFontOrScaledCurveFontSelectRefView<'m> {
4078    CurveStyleFont(&'m CurveStyleFont),
4079    CurveStyleFontAndScaling(&'m CurveStyleFontAndScaling),
4080    DraughtingPreDefinedCurveFont(&'m DraughtingPreDefinedCurveFont),
4081    ExternallyDefinedCurveFont(&'m ExternallyDefinedCurveFont),
4082    PreDefinedCurveFont(&'m PreDefinedCurveFont),
4083    Complex(&'m ComplexUnit),
4084}
4085impl CurveFontOrScaledCurveFontSelectRef {
4086    pub fn resolve<'m>(&self, model: &'m StepModel) -> CurveFontOrScaledCurveFontSelectRefView<'m> {
4087        match self {
4088            CurveFontOrScaledCurveFontSelectRef::CurveStyleFont(i) => {
4089                CurveFontOrScaledCurveFontSelectRefView::CurveStyleFont(
4090                    model.curve_style_font_arena.get(i.0),
4091                )
4092            }
4093            CurveFontOrScaledCurveFontSelectRef::CurveStyleFontAndScaling(i) => {
4094                CurveFontOrScaledCurveFontSelectRefView::CurveStyleFontAndScaling(
4095                    model.curve_style_font_and_scaling_arena.get(i.0),
4096                )
4097            }
4098            CurveFontOrScaledCurveFontSelectRef::DraughtingPreDefinedCurveFont(i) => {
4099                CurveFontOrScaledCurveFontSelectRefView::DraughtingPreDefinedCurveFont(
4100                    model.draughting_pre_defined_curve_font_arena.get(i.0),
4101                )
4102            }
4103            CurveFontOrScaledCurveFontSelectRef::ExternallyDefinedCurveFont(i) => {
4104                CurveFontOrScaledCurveFontSelectRefView::ExternallyDefinedCurveFont(
4105                    model.externally_defined_curve_font_arena.get(i.0),
4106                )
4107            }
4108            CurveFontOrScaledCurveFontSelectRef::PreDefinedCurveFont(i) => {
4109                CurveFontOrScaledCurveFontSelectRefView::PreDefinedCurveFont(
4110                    model.pre_defined_curve_font_arena.get(i.0),
4111                )
4112            }
4113            CurveFontOrScaledCurveFontSelectRef::Complex(i) => {
4114                CurveFontOrScaledCurveFontSelectRefView::Complex(model.complex_unit_arena.get(i.0))
4115            }
4116        }
4117    }
4118    pub fn entity_key(&self) -> EntityKey {
4119        match self {
4120            CurveFontOrScaledCurveFontSelectRef::CurveStyleFont(i) => EntityKey::CurveStyleFont(*i),
4121            CurveFontOrScaledCurveFontSelectRef::CurveStyleFontAndScaling(i) => {
4122                EntityKey::CurveStyleFontAndScaling(*i)
4123            }
4124            CurveFontOrScaledCurveFontSelectRef::DraughtingPreDefinedCurveFont(i) => {
4125                EntityKey::DraughtingPreDefinedCurveFont(*i)
4126            }
4127            CurveFontOrScaledCurveFontSelectRef::ExternallyDefinedCurveFont(i) => {
4128                EntityKey::ExternallyDefinedCurveFont(*i)
4129            }
4130            CurveFontOrScaledCurveFontSelectRef::PreDefinedCurveFont(i) => {
4131                EntityKey::PreDefinedCurveFont(*i)
4132            }
4133            CurveFontOrScaledCurveFontSelectRef::Complex(i) => EntityKey::ComplexUnit(*i),
4134        }
4135    }
4136}
4137
4138#[derive(Clone, Copy, Debug)]
4139pub enum CurveOrAnnotationCurveOccurrenceRefView<'m> {
4140    AnnotationCurveOccurrence(&'m AnnotationCurveOccurrence),
4141    BSplineCurve(&'m BSplineCurve),
4142    BSplineCurveWithKnots(&'m BSplineCurveWithKnots),
4143    BezierCurve(&'m BezierCurve),
4144    BoundedCurve(&'m BoundedCurve),
4145    BoundedPcurve(&'m BoundedPcurve),
4146    BoundedSurfaceCurve(&'m BoundedSurfaceCurve),
4147    Circle(&'m Circle),
4148    CompositeCurve(&'m CompositeCurve),
4149    Conic(&'m Conic),
4150    Curve(&'m Curve),
4151    Ellipse(&'m Ellipse),
4152    Hyperbola(&'m Hyperbola),
4153    IntersectionCurve(&'m IntersectionCurve),
4154    LeaderCurve(&'m LeaderCurve),
4155    Line(&'m Line),
4156    Pcurve(&'m Pcurve),
4157    Polyline(&'m Polyline),
4158    QuasiUniformCurve(&'m QuasiUniformCurve),
4159    RationalBSplineCurve(&'m RationalBSplineCurve),
4160    SeamCurve(&'m SeamCurve),
4161    SurfaceCurve(&'m SurfaceCurve),
4162    TrimmedCurve(&'m TrimmedCurve),
4163    UniformCurve(&'m UniformCurve),
4164    Complex(&'m ComplexUnit),
4165}
4166impl CurveOrAnnotationCurveOccurrenceRef {
4167    pub fn resolve<'m>(&self, model: &'m StepModel) -> CurveOrAnnotationCurveOccurrenceRefView<'m> {
4168        match self {
4169            CurveOrAnnotationCurveOccurrenceRef::AnnotationCurveOccurrence(i) => {
4170                CurveOrAnnotationCurveOccurrenceRefView::AnnotationCurveOccurrence(
4171                    model.annotation_curve_occurrence_arena.get(i.0),
4172                )
4173            }
4174            CurveOrAnnotationCurveOccurrenceRef::BSplineCurve(i) => {
4175                CurveOrAnnotationCurveOccurrenceRefView::BSplineCurve(
4176                    model.b_spline_curve_arena.get(i.0),
4177                )
4178            }
4179            CurveOrAnnotationCurveOccurrenceRef::BSplineCurveWithKnots(i) => {
4180                CurveOrAnnotationCurveOccurrenceRefView::BSplineCurveWithKnots(
4181                    model.b_spline_curve_with_knots_arena.get(i.0),
4182                )
4183            }
4184            CurveOrAnnotationCurveOccurrenceRef::BezierCurve(i) => {
4185                CurveOrAnnotationCurveOccurrenceRefView::BezierCurve(
4186                    model.bezier_curve_arena.get(i.0),
4187                )
4188            }
4189            CurveOrAnnotationCurveOccurrenceRef::BoundedCurve(i) => {
4190                CurveOrAnnotationCurveOccurrenceRefView::BoundedCurve(
4191                    model.bounded_curve_arena.get(i.0),
4192                )
4193            }
4194            CurveOrAnnotationCurveOccurrenceRef::BoundedPcurve(i) => {
4195                CurveOrAnnotationCurveOccurrenceRefView::BoundedPcurve(
4196                    model.bounded_pcurve_arena.get(i.0),
4197                )
4198            }
4199            CurveOrAnnotationCurveOccurrenceRef::BoundedSurfaceCurve(i) => {
4200                CurveOrAnnotationCurveOccurrenceRefView::BoundedSurfaceCurve(
4201                    model.bounded_surface_curve_arena.get(i.0),
4202                )
4203            }
4204            CurveOrAnnotationCurveOccurrenceRef::Circle(i) => {
4205                CurveOrAnnotationCurveOccurrenceRefView::Circle(model.circle_arena.get(i.0))
4206            }
4207            CurveOrAnnotationCurveOccurrenceRef::CompositeCurve(i) => {
4208                CurveOrAnnotationCurveOccurrenceRefView::CompositeCurve(
4209                    model.composite_curve_arena.get(i.0),
4210                )
4211            }
4212            CurveOrAnnotationCurveOccurrenceRef::Conic(i) => {
4213                CurveOrAnnotationCurveOccurrenceRefView::Conic(model.conic_arena.get(i.0))
4214            }
4215            CurveOrAnnotationCurveOccurrenceRef::Curve(i) => {
4216                CurveOrAnnotationCurveOccurrenceRefView::Curve(model.curve_arena.get(i.0))
4217            }
4218            CurveOrAnnotationCurveOccurrenceRef::Ellipse(i) => {
4219                CurveOrAnnotationCurveOccurrenceRefView::Ellipse(model.ellipse_arena.get(i.0))
4220            }
4221            CurveOrAnnotationCurveOccurrenceRef::Hyperbola(i) => {
4222                CurveOrAnnotationCurveOccurrenceRefView::Hyperbola(model.hyperbola_arena.get(i.0))
4223            }
4224            CurveOrAnnotationCurveOccurrenceRef::IntersectionCurve(i) => {
4225                CurveOrAnnotationCurveOccurrenceRefView::IntersectionCurve(
4226                    model.intersection_curve_arena.get(i.0),
4227                )
4228            }
4229            CurveOrAnnotationCurveOccurrenceRef::LeaderCurve(i) => {
4230                CurveOrAnnotationCurveOccurrenceRefView::LeaderCurve(
4231                    model.leader_curve_arena.get(i.0),
4232                )
4233            }
4234            CurveOrAnnotationCurveOccurrenceRef::Line(i) => {
4235                CurveOrAnnotationCurveOccurrenceRefView::Line(model.line_arena.get(i.0))
4236            }
4237            CurveOrAnnotationCurveOccurrenceRef::Pcurve(i) => {
4238                CurveOrAnnotationCurveOccurrenceRefView::Pcurve(model.pcurve_arena.get(i.0))
4239            }
4240            CurveOrAnnotationCurveOccurrenceRef::Polyline(i) => {
4241                CurveOrAnnotationCurveOccurrenceRefView::Polyline(model.polyline_arena.get(i.0))
4242            }
4243            CurveOrAnnotationCurveOccurrenceRef::QuasiUniformCurve(i) => {
4244                CurveOrAnnotationCurveOccurrenceRefView::QuasiUniformCurve(
4245                    model.quasi_uniform_curve_arena.get(i.0),
4246                )
4247            }
4248            CurveOrAnnotationCurveOccurrenceRef::RationalBSplineCurve(i) => {
4249                CurveOrAnnotationCurveOccurrenceRefView::RationalBSplineCurve(
4250                    model.rational_b_spline_curve_arena.get(i.0),
4251                )
4252            }
4253            CurveOrAnnotationCurveOccurrenceRef::SeamCurve(i) => {
4254                CurveOrAnnotationCurveOccurrenceRefView::SeamCurve(model.seam_curve_arena.get(i.0))
4255            }
4256            CurveOrAnnotationCurveOccurrenceRef::SurfaceCurve(i) => {
4257                CurveOrAnnotationCurveOccurrenceRefView::SurfaceCurve(
4258                    model.surface_curve_arena.get(i.0),
4259                )
4260            }
4261            CurveOrAnnotationCurveOccurrenceRef::TrimmedCurve(i) => {
4262                CurveOrAnnotationCurveOccurrenceRefView::TrimmedCurve(
4263                    model.trimmed_curve_arena.get(i.0),
4264                )
4265            }
4266            CurveOrAnnotationCurveOccurrenceRef::UniformCurve(i) => {
4267                CurveOrAnnotationCurveOccurrenceRefView::UniformCurve(
4268                    model.uniform_curve_arena.get(i.0),
4269                )
4270            }
4271            CurveOrAnnotationCurveOccurrenceRef::Complex(i) => {
4272                CurveOrAnnotationCurveOccurrenceRefView::Complex(model.complex_unit_arena.get(i.0))
4273            }
4274        }
4275    }
4276    pub fn entity_key(&self) -> EntityKey {
4277        match self {
4278            CurveOrAnnotationCurveOccurrenceRef::AnnotationCurveOccurrence(i) => {
4279                EntityKey::AnnotationCurveOccurrence(*i)
4280            }
4281            CurveOrAnnotationCurveOccurrenceRef::BSplineCurve(i) => EntityKey::BSplineCurve(*i),
4282            CurveOrAnnotationCurveOccurrenceRef::BSplineCurveWithKnots(i) => {
4283                EntityKey::BSplineCurveWithKnots(*i)
4284            }
4285            CurveOrAnnotationCurveOccurrenceRef::BezierCurve(i) => EntityKey::BezierCurve(*i),
4286            CurveOrAnnotationCurveOccurrenceRef::BoundedCurve(i) => EntityKey::BoundedCurve(*i),
4287            CurveOrAnnotationCurveOccurrenceRef::BoundedPcurve(i) => EntityKey::BoundedPcurve(*i),
4288            CurveOrAnnotationCurveOccurrenceRef::BoundedSurfaceCurve(i) => {
4289                EntityKey::BoundedSurfaceCurve(*i)
4290            }
4291            CurveOrAnnotationCurveOccurrenceRef::Circle(i) => EntityKey::Circle(*i),
4292            CurveOrAnnotationCurveOccurrenceRef::CompositeCurve(i) => EntityKey::CompositeCurve(*i),
4293            CurveOrAnnotationCurveOccurrenceRef::Conic(i) => EntityKey::Conic(*i),
4294            CurveOrAnnotationCurveOccurrenceRef::Curve(i) => EntityKey::Curve(*i),
4295            CurveOrAnnotationCurveOccurrenceRef::Ellipse(i) => EntityKey::Ellipse(*i),
4296            CurveOrAnnotationCurveOccurrenceRef::Hyperbola(i) => EntityKey::Hyperbola(*i),
4297            CurveOrAnnotationCurveOccurrenceRef::IntersectionCurve(i) => {
4298                EntityKey::IntersectionCurve(*i)
4299            }
4300            CurveOrAnnotationCurveOccurrenceRef::LeaderCurve(i) => EntityKey::LeaderCurve(*i),
4301            CurveOrAnnotationCurveOccurrenceRef::Line(i) => EntityKey::Line(*i),
4302            CurveOrAnnotationCurveOccurrenceRef::Pcurve(i) => EntityKey::Pcurve(*i),
4303            CurveOrAnnotationCurveOccurrenceRef::Polyline(i) => EntityKey::Polyline(*i),
4304            CurveOrAnnotationCurveOccurrenceRef::QuasiUniformCurve(i) => {
4305                EntityKey::QuasiUniformCurve(*i)
4306            }
4307            CurveOrAnnotationCurveOccurrenceRef::RationalBSplineCurve(i) => {
4308                EntityKey::RationalBSplineCurve(*i)
4309            }
4310            CurveOrAnnotationCurveOccurrenceRef::SeamCurve(i) => EntityKey::SeamCurve(*i),
4311            CurveOrAnnotationCurveOccurrenceRef::SurfaceCurve(i) => EntityKey::SurfaceCurve(*i),
4312            CurveOrAnnotationCurveOccurrenceRef::TrimmedCurve(i) => EntityKey::TrimmedCurve(*i),
4313            CurveOrAnnotationCurveOccurrenceRef::UniformCurve(i) => EntityKey::UniformCurve(*i),
4314            CurveOrAnnotationCurveOccurrenceRef::Complex(i) => EntityKey::ComplexUnit(*i),
4315        }
4316    }
4317}
4318
4319#[derive(Clone, Copy, Debug)]
4320pub enum CurveOrCurveSetRefView<'m> {
4321    BSplineCurve(&'m BSplineCurve),
4322    BSplineCurveWithKnots(&'m BSplineCurveWithKnots),
4323    BezierCurve(&'m BezierCurve),
4324    BoundedCurve(&'m BoundedCurve),
4325    BoundedPcurve(&'m BoundedPcurve),
4326    BoundedSurfaceCurve(&'m BoundedSurfaceCurve),
4327    Circle(&'m Circle),
4328    CompositeCurve(&'m CompositeCurve),
4329    Conic(&'m Conic),
4330    Curve(&'m Curve),
4331    Ellipse(&'m Ellipse),
4332    GeometricCurveSet(&'m GeometricCurveSet),
4333    Hyperbola(&'m Hyperbola),
4334    IntersectionCurve(&'m IntersectionCurve),
4335    Line(&'m Line),
4336    Pcurve(&'m Pcurve),
4337    Polyline(&'m Polyline),
4338    QuasiUniformCurve(&'m QuasiUniformCurve),
4339    RationalBSplineCurve(&'m RationalBSplineCurve),
4340    SeamCurve(&'m SeamCurve),
4341    SurfaceCurve(&'m SurfaceCurve),
4342    TrimmedCurve(&'m TrimmedCurve),
4343    UniformCurve(&'m UniformCurve),
4344    Complex(&'m ComplexUnit),
4345}
4346impl CurveOrCurveSetRef {
4347    pub fn resolve<'m>(&self, model: &'m StepModel) -> CurveOrCurveSetRefView<'m> {
4348        match self {
4349            CurveOrCurveSetRef::BSplineCurve(i) => {
4350                CurveOrCurveSetRefView::BSplineCurve(model.b_spline_curve_arena.get(i.0))
4351            }
4352            CurveOrCurveSetRef::BSplineCurveWithKnots(i) => {
4353                CurveOrCurveSetRefView::BSplineCurveWithKnots(
4354                    model.b_spline_curve_with_knots_arena.get(i.0),
4355                )
4356            }
4357            CurveOrCurveSetRef::BezierCurve(i) => {
4358                CurveOrCurveSetRefView::BezierCurve(model.bezier_curve_arena.get(i.0))
4359            }
4360            CurveOrCurveSetRef::BoundedCurve(i) => {
4361                CurveOrCurveSetRefView::BoundedCurve(model.bounded_curve_arena.get(i.0))
4362            }
4363            CurveOrCurveSetRef::BoundedPcurve(i) => {
4364                CurveOrCurveSetRefView::BoundedPcurve(model.bounded_pcurve_arena.get(i.0))
4365            }
4366            CurveOrCurveSetRef::BoundedSurfaceCurve(i) => {
4367                CurveOrCurveSetRefView::BoundedSurfaceCurve(
4368                    model.bounded_surface_curve_arena.get(i.0),
4369                )
4370            }
4371            CurveOrCurveSetRef::Circle(i) => {
4372                CurveOrCurveSetRefView::Circle(model.circle_arena.get(i.0))
4373            }
4374            CurveOrCurveSetRef::CompositeCurve(i) => {
4375                CurveOrCurveSetRefView::CompositeCurve(model.composite_curve_arena.get(i.0))
4376            }
4377            CurveOrCurveSetRef::Conic(i) => {
4378                CurveOrCurveSetRefView::Conic(model.conic_arena.get(i.0))
4379            }
4380            CurveOrCurveSetRef::Curve(i) => {
4381                CurveOrCurveSetRefView::Curve(model.curve_arena.get(i.0))
4382            }
4383            CurveOrCurveSetRef::Ellipse(i) => {
4384                CurveOrCurveSetRefView::Ellipse(model.ellipse_arena.get(i.0))
4385            }
4386            CurveOrCurveSetRef::GeometricCurveSet(i) => {
4387                CurveOrCurveSetRefView::GeometricCurveSet(model.geometric_curve_set_arena.get(i.0))
4388            }
4389            CurveOrCurveSetRef::Hyperbola(i) => {
4390                CurveOrCurveSetRefView::Hyperbola(model.hyperbola_arena.get(i.0))
4391            }
4392            CurveOrCurveSetRef::IntersectionCurve(i) => {
4393                CurveOrCurveSetRefView::IntersectionCurve(model.intersection_curve_arena.get(i.0))
4394            }
4395            CurveOrCurveSetRef::Line(i) => CurveOrCurveSetRefView::Line(model.line_arena.get(i.0)),
4396            CurveOrCurveSetRef::Pcurve(i) => {
4397                CurveOrCurveSetRefView::Pcurve(model.pcurve_arena.get(i.0))
4398            }
4399            CurveOrCurveSetRef::Polyline(i) => {
4400                CurveOrCurveSetRefView::Polyline(model.polyline_arena.get(i.0))
4401            }
4402            CurveOrCurveSetRef::QuasiUniformCurve(i) => {
4403                CurveOrCurveSetRefView::QuasiUniformCurve(model.quasi_uniform_curve_arena.get(i.0))
4404            }
4405            CurveOrCurveSetRef::RationalBSplineCurve(i) => {
4406                CurveOrCurveSetRefView::RationalBSplineCurve(
4407                    model.rational_b_spline_curve_arena.get(i.0),
4408                )
4409            }
4410            CurveOrCurveSetRef::SeamCurve(i) => {
4411                CurveOrCurveSetRefView::SeamCurve(model.seam_curve_arena.get(i.0))
4412            }
4413            CurveOrCurveSetRef::SurfaceCurve(i) => {
4414                CurveOrCurveSetRefView::SurfaceCurve(model.surface_curve_arena.get(i.0))
4415            }
4416            CurveOrCurveSetRef::TrimmedCurve(i) => {
4417                CurveOrCurveSetRefView::TrimmedCurve(model.trimmed_curve_arena.get(i.0))
4418            }
4419            CurveOrCurveSetRef::UniformCurve(i) => {
4420                CurveOrCurveSetRefView::UniformCurve(model.uniform_curve_arena.get(i.0))
4421            }
4422            CurveOrCurveSetRef::Complex(i) => {
4423                CurveOrCurveSetRefView::Complex(model.complex_unit_arena.get(i.0))
4424            }
4425        }
4426    }
4427    pub fn entity_key(&self) -> EntityKey {
4428        match self {
4429            CurveOrCurveSetRef::BSplineCurve(i) => EntityKey::BSplineCurve(*i),
4430            CurveOrCurveSetRef::BSplineCurveWithKnots(i) => EntityKey::BSplineCurveWithKnots(*i),
4431            CurveOrCurveSetRef::BezierCurve(i) => EntityKey::BezierCurve(*i),
4432            CurveOrCurveSetRef::BoundedCurve(i) => EntityKey::BoundedCurve(*i),
4433            CurveOrCurveSetRef::BoundedPcurve(i) => EntityKey::BoundedPcurve(*i),
4434            CurveOrCurveSetRef::BoundedSurfaceCurve(i) => EntityKey::BoundedSurfaceCurve(*i),
4435            CurveOrCurveSetRef::Circle(i) => EntityKey::Circle(*i),
4436            CurveOrCurveSetRef::CompositeCurve(i) => EntityKey::CompositeCurve(*i),
4437            CurveOrCurveSetRef::Conic(i) => EntityKey::Conic(*i),
4438            CurveOrCurveSetRef::Curve(i) => EntityKey::Curve(*i),
4439            CurveOrCurveSetRef::Ellipse(i) => EntityKey::Ellipse(*i),
4440            CurveOrCurveSetRef::GeometricCurveSet(i) => EntityKey::GeometricCurveSet(*i),
4441            CurveOrCurveSetRef::Hyperbola(i) => EntityKey::Hyperbola(*i),
4442            CurveOrCurveSetRef::IntersectionCurve(i) => EntityKey::IntersectionCurve(*i),
4443            CurveOrCurveSetRef::Line(i) => EntityKey::Line(*i),
4444            CurveOrCurveSetRef::Pcurve(i) => EntityKey::Pcurve(*i),
4445            CurveOrCurveSetRef::Polyline(i) => EntityKey::Polyline(*i),
4446            CurveOrCurveSetRef::QuasiUniformCurve(i) => EntityKey::QuasiUniformCurve(*i),
4447            CurveOrCurveSetRef::RationalBSplineCurve(i) => EntityKey::RationalBSplineCurve(*i),
4448            CurveOrCurveSetRef::SeamCurve(i) => EntityKey::SeamCurve(*i),
4449            CurveOrCurveSetRef::SurfaceCurve(i) => EntityKey::SurfaceCurve(*i),
4450            CurveOrCurveSetRef::TrimmedCurve(i) => EntityKey::TrimmedCurve(*i),
4451            CurveOrCurveSetRef::UniformCurve(i) => EntityKey::UniformCurve(*i),
4452            CurveOrCurveSetRef::Complex(i) => EntityKey::ComplexUnit(*i),
4453        }
4454    }
4455}
4456
4457#[derive(Clone, Copy, Debug)]
4458pub enum CurveOrRenderRefView<'m> {
4459    CurveStyle(&'m CurveStyle),
4460    CurveStyleRendering(&'m CurveStyleRendering),
4461    Complex(&'m ComplexUnit),
4462}
4463impl CurveOrRenderRef {
4464    pub fn resolve<'m>(&self, model: &'m StepModel) -> CurveOrRenderRefView<'m> {
4465        match self {
4466            CurveOrRenderRef::CurveStyle(i) => {
4467                CurveOrRenderRefView::CurveStyle(model.curve_style_arena.get(i.0))
4468            }
4469            CurveOrRenderRef::CurveStyleRendering(i) => CurveOrRenderRefView::CurveStyleRendering(
4470                model.curve_style_rendering_arena.get(i.0),
4471            ),
4472            CurveOrRenderRef::Complex(i) => {
4473                CurveOrRenderRefView::Complex(model.complex_unit_arena.get(i.0))
4474            }
4475        }
4476    }
4477    pub fn entity_key(&self) -> EntityKey {
4478        match self {
4479            CurveOrRenderRef::CurveStyle(i) => EntityKey::CurveStyle(*i),
4480            CurveOrRenderRef::CurveStyleRendering(i) => EntityKey::CurveStyleRendering(*i),
4481            CurveOrRenderRef::Complex(i) => EntityKey::ComplexUnit(*i),
4482        }
4483    }
4484}
4485
4486#[derive(Clone, Copy, Debug)]
4487pub enum CurveStyleRefView<'m> {
4488    CurveStyle(&'m CurveStyle),
4489    Complex(&'m ComplexUnit),
4490}
4491impl CurveStyleRef {
4492    pub fn resolve<'m>(&self, model: &'m StepModel) -> CurveStyleRefView<'m> {
4493        match self {
4494            CurveStyleRef::CurveStyle(i) => {
4495                CurveStyleRefView::CurveStyle(model.curve_style_arena.get(i.0))
4496            }
4497            CurveStyleRef::Complex(i) => {
4498                CurveStyleRefView::Complex(model.complex_unit_arena.get(i.0))
4499            }
4500        }
4501    }
4502    pub fn entity_key(&self) -> EntityKey {
4503        match self {
4504            CurveStyleRef::CurveStyle(i) => EntityKey::CurveStyle(*i),
4505            CurveStyleRef::Complex(i) => EntityKey::ComplexUnit(*i),
4506        }
4507    }
4508}
4509
4510#[derive(Clone, Copy, Debug)]
4511pub enum CurveStyleFontPatternRefView<'m> {
4512    CurveStyleFontPattern(&'m CurveStyleFontPattern),
4513    Complex(&'m ComplexUnit),
4514}
4515impl CurveStyleFontPatternRef {
4516    pub fn resolve<'m>(&self, model: &'m StepModel) -> CurveStyleFontPatternRefView<'m> {
4517        match self {
4518            CurveStyleFontPatternRef::CurveStyleFontPattern(i) => {
4519                CurveStyleFontPatternRefView::CurveStyleFontPattern(
4520                    model.curve_style_font_pattern_arena.get(i.0),
4521                )
4522            }
4523            CurveStyleFontPatternRef::Complex(i) => {
4524                CurveStyleFontPatternRefView::Complex(model.complex_unit_arena.get(i.0))
4525            }
4526        }
4527    }
4528    pub fn entity_key(&self) -> EntityKey {
4529        match self {
4530            CurveStyleFontPatternRef::CurveStyleFontPattern(i) => {
4531                EntityKey::CurveStyleFontPattern(*i)
4532            }
4533            CurveStyleFontPatternRef::Complex(i) => EntityKey::ComplexUnit(*i),
4534        }
4535    }
4536}
4537
4538#[derive(Clone, Copy, Debug)]
4539pub enum CurveStyleFontSelectRefView<'m> {
4540    CurveStyleFont(&'m CurveStyleFont),
4541    DraughtingPreDefinedCurveFont(&'m DraughtingPreDefinedCurveFont),
4542    ExternallyDefinedCurveFont(&'m ExternallyDefinedCurveFont),
4543    PreDefinedCurveFont(&'m PreDefinedCurveFont),
4544    Complex(&'m ComplexUnit),
4545}
4546impl CurveStyleFontSelectRef {
4547    pub fn resolve<'m>(&self, model: &'m StepModel) -> CurveStyleFontSelectRefView<'m> {
4548        match self {
4549            CurveStyleFontSelectRef::CurveStyleFont(i) => {
4550                CurveStyleFontSelectRefView::CurveStyleFont(model.curve_style_font_arena.get(i.0))
4551            }
4552            CurveStyleFontSelectRef::DraughtingPreDefinedCurveFont(i) => {
4553                CurveStyleFontSelectRefView::DraughtingPreDefinedCurveFont(
4554                    model.draughting_pre_defined_curve_font_arena.get(i.0),
4555                )
4556            }
4557            CurveStyleFontSelectRef::ExternallyDefinedCurveFont(i) => {
4558                CurveStyleFontSelectRefView::ExternallyDefinedCurveFont(
4559                    model.externally_defined_curve_font_arena.get(i.0),
4560                )
4561            }
4562            CurveStyleFontSelectRef::PreDefinedCurveFont(i) => {
4563                CurveStyleFontSelectRefView::PreDefinedCurveFont(
4564                    model.pre_defined_curve_font_arena.get(i.0),
4565                )
4566            }
4567            CurveStyleFontSelectRef::Complex(i) => {
4568                CurveStyleFontSelectRefView::Complex(model.complex_unit_arena.get(i.0))
4569            }
4570        }
4571    }
4572    pub fn entity_key(&self) -> EntityKey {
4573        match self {
4574            CurveStyleFontSelectRef::CurveStyleFont(i) => EntityKey::CurveStyleFont(*i),
4575            CurveStyleFontSelectRef::DraughtingPreDefinedCurveFont(i) => {
4576                EntityKey::DraughtingPreDefinedCurveFont(*i)
4577            }
4578            CurveStyleFontSelectRef::ExternallyDefinedCurveFont(i) => {
4579                EntityKey::ExternallyDefinedCurveFont(*i)
4580            }
4581            CurveStyleFontSelectRef::PreDefinedCurveFont(i) => EntityKey::PreDefinedCurveFont(*i),
4582            CurveStyleFontSelectRef::Complex(i) => EntityKey::ComplexUnit(*i),
4583        }
4584    }
4585}
4586
4587#[derive(Clone, Copy, Debug)]
4588pub enum DateRefView<'m> {
4589    CalendarDate(&'m CalendarDate),
4590    Date(&'m Date),
4591    Complex(&'m ComplexUnit),
4592}
4593impl DateRef {
4594    pub fn resolve<'m>(&self, model: &'m StepModel) -> DateRefView<'m> {
4595        match self {
4596            DateRef::CalendarDate(i) => {
4597                DateRefView::CalendarDate(model.calendar_date_arena.get(i.0))
4598            }
4599            DateRef::Date(i) => DateRefView::Date(model.date_arena.get(i.0)),
4600            DateRef::Complex(i) => DateRefView::Complex(model.complex_unit_arena.get(i.0)),
4601        }
4602    }
4603    pub fn entity_key(&self) -> EntityKey {
4604        match self {
4605            DateRef::CalendarDate(i) => EntityKey::CalendarDate(*i),
4606            DateRef::Date(i) => EntityKey::Date(*i),
4607            DateRef::Complex(i) => EntityKey::ComplexUnit(*i),
4608        }
4609    }
4610}
4611
4612#[derive(Clone, Copy, Debug)]
4613pub enum DateAndTimeRefView<'m> {
4614    DateAndTime(&'m DateAndTime),
4615    Complex(&'m ComplexUnit),
4616}
4617impl DateAndTimeRef {
4618    pub fn resolve<'m>(&self, model: &'m StepModel) -> DateAndTimeRefView<'m> {
4619        match self {
4620            DateAndTimeRef::DateAndTime(i) => {
4621                DateAndTimeRefView::DateAndTime(model.date_and_time_arena.get(i.0))
4622            }
4623            DateAndTimeRef::Complex(i) => {
4624                DateAndTimeRefView::Complex(model.complex_unit_arena.get(i.0))
4625            }
4626        }
4627    }
4628    pub fn entity_key(&self) -> EntityKey {
4629        match self {
4630            DateAndTimeRef::DateAndTime(i) => EntityKey::DateAndTime(*i),
4631            DateAndTimeRef::Complex(i) => EntityKey::ComplexUnit(*i),
4632        }
4633    }
4634}
4635
4636#[derive(Clone, Copy, Debug)]
4637pub enum DateAndTimeItemRefView<'m> {
4638    Action(&'m Action),
4639    ActionDirective(&'m ActionDirective),
4640    ActionMethod(&'m ActionMethod),
4641    ActionProperty(&'m ActionProperty),
4642    ActionRelationship(&'m ActionRelationship),
4643    AdvancedBrepShapeRepresentation(&'m AdvancedBrepShapeRepresentation),
4644    AppliedDateAndTimeAssignment(&'m AppliedDateAndTimeAssignment),
4645    Approval(&'m Approval),
4646    ApprovalPersonOrganization(&'m ApprovalPersonOrganization),
4647    ApprovalStatus(&'m ApprovalStatus),
4648    AscribableState(&'m AscribableState),
4649    AssemblyComponentUsage(&'m AssemblyComponentUsage),
4650    CcDesignDateAndTimeAssignment(&'m CcDesignDateAndTimeAssignment),
4651    Certification(&'m Certification),
4652    CharacterizedRepresentation(&'m CharacterizedRepresentation),
4653    ConfigurationDesign(&'m ConfigurationDesign),
4654    ConfigurationEffectivity(&'m ConfigurationEffectivity),
4655    ConfigurationItem(&'m ConfigurationItem),
4656    ConstructiveGeometryRepresentation(&'m ConstructiveGeometryRepresentation),
4657    Contract(&'m Contract),
4658    DateAndTimeAssignment(&'m DateAndTimeAssignment),
4659    DefinitionalRepresentation(&'m DefinitionalRepresentation),
4660    DesignContext(&'m DesignContext),
4661    Document(&'m Document),
4662    DocumentFile(&'m DocumentFile),
4663    DraughtingModel(&'m DraughtingModel),
4664    Effectivity(&'m Effectivity),
4665    GeneralProperty(&'m GeneralProperty),
4666    GeometricallyBoundedSurfaceShapeRepresentation(
4667        &'m GeometricallyBoundedSurfaceShapeRepresentation,
4668    ),
4669    GeometricallyBoundedWireframeShapeRepresentation(
4670        &'m GeometricallyBoundedWireframeShapeRepresentation,
4671    ),
4672    MakeFromUsageOption(&'m MakeFromUsageOption),
4673    ManifoldSurfaceShapeRepresentation(&'m ManifoldSurfaceShapeRepresentation),
4674    MechanicalDesignGeometricPresentationRepresentation(
4675        &'m MechanicalDesignGeometricPresentationRepresentation,
4676    ),
4677    MechanicalDesignPresentationRepresentationWithDraughting(
4678        &'m MechanicalDesignPresentationRepresentationWithDraughting,
4679    ),
4680    MechanicalDesignShadedPresentationRepresentation(
4681        &'m MechanicalDesignShadedPresentationRepresentation,
4682    ),
4683    NextAssemblyUsageOccurrence(&'m NextAssemblyUsageOccurrence),
4684    OrganizationRelationship(&'m OrganizationRelationship),
4685    OrganizationalAddress(&'m OrganizationalAddress),
4686    OrganizationalProject(&'m OrganizationalProject),
4687    Person(&'m Person),
4688    PersonAndOrganization(&'m PersonAndOrganization),
4689    PersonAndOrganizationAddress(&'m PersonAndOrganizationAddress),
4690    PresentationArea(&'m PresentationArea),
4691    PresentationRepresentation(&'m PresentationRepresentation),
4692    PresentationView(&'m PresentationView),
4693    Product(&'m Product),
4694    ProductConcept(&'m ProductConcept),
4695    ProductDefinition(&'m ProductDefinition),
4696    ProductDefinitionContext(&'m ProductDefinitionContext),
4697    ProductDefinitionEffectivity(&'m ProductDefinitionEffectivity),
4698    ProductDefinitionFormation(&'m ProductDefinitionFormation),
4699    ProductDefinitionFormationWithSpecifiedSource(
4700        &'m ProductDefinitionFormationWithSpecifiedSource,
4701    ),
4702    ProductDefinitionRelationship(&'m ProductDefinitionRelationship),
4703    ProductDefinitionShape(&'m ProductDefinitionShape),
4704    ProductDefinitionUsage(&'m ProductDefinitionUsage),
4705    ProductDefinitionWithAssociatedDocuments(&'m ProductDefinitionWithAssociatedDocuments),
4706    PropertyDefinition(&'m PropertyDefinition),
4707    PropertyDefinitionRepresentation(&'m PropertyDefinitionRepresentation),
4708    Representation(&'m Representation),
4709    ResourceProperty(&'m ResourceProperty),
4710    SecurityClassification(&'m SecurityClassification),
4711    SecurityClassificationLevel(&'m SecurityClassificationLevel),
4712    ShapeDefinitionRepresentation(&'m ShapeDefinitionRepresentation),
4713    ShapeDimensionRepresentation(&'m ShapeDimensionRepresentation),
4714    ShapeRepresentation(&'m ShapeRepresentation),
4715    ShapeRepresentationWithParameters(&'m ShapeRepresentationWithParameters),
4716    StateObserved(&'m StateObserved),
4717    StateType(&'m StateType),
4718    SymbolRepresentation(&'m SymbolRepresentation),
4719    TessellatedShapeRepresentation(&'m TessellatedShapeRepresentation),
4720    VersionedActionRequest(&'m VersionedActionRequest),
4721    Complex(&'m ComplexUnit),
4722}
4723impl DateAndTimeItemRef {
4724    pub fn resolve<'m>(&self, model: &'m StepModel) -> DateAndTimeItemRefView<'m> {
4725        match self {
4726            DateAndTimeItemRef::Action(i) => {
4727                DateAndTimeItemRefView::Action(model.action_arena.get(i.0))
4728            }
4729            DateAndTimeItemRef::ActionDirective(i) => {
4730                DateAndTimeItemRefView::ActionDirective(model.action_directive_arena.get(i.0))
4731            }
4732            DateAndTimeItemRef::ActionMethod(i) => {
4733                DateAndTimeItemRefView::ActionMethod(model.action_method_arena.get(i.0))
4734            }
4735            DateAndTimeItemRef::ActionProperty(i) => {
4736                DateAndTimeItemRefView::ActionProperty(model.action_property_arena.get(i.0))
4737            }
4738            DateAndTimeItemRef::ActionRelationship(i) => {
4739                DateAndTimeItemRefView::ActionRelationship(model.action_relationship_arena.get(i.0))
4740            }
4741            DateAndTimeItemRef::AdvancedBrepShapeRepresentation(i) => {
4742                DateAndTimeItemRefView::AdvancedBrepShapeRepresentation(
4743                    model.advanced_brep_shape_representation_arena.get(i.0),
4744                )
4745            }
4746            DateAndTimeItemRef::AppliedDateAndTimeAssignment(i) => {
4747                DateAndTimeItemRefView::AppliedDateAndTimeAssignment(
4748                    model.applied_date_and_time_assignment_arena.get(i.0),
4749                )
4750            }
4751            DateAndTimeItemRef::Approval(i) => {
4752                DateAndTimeItemRefView::Approval(model.approval_arena.get(i.0))
4753            }
4754            DateAndTimeItemRef::ApprovalPersonOrganization(i) => {
4755                DateAndTimeItemRefView::ApprovalPersonOrganization(
4756                    model.approval_person_organization_arena.get(i.0),
4757                )
4758            }
4759            DateAndTimeItemRef::ApprovalStatus(i) => {
4760                DateAndTimeItemRefView::ApprovalStatus(model.approval_status_arena.get(i.0))
4761            }
4762            DateAndTimeItemRef::AscribableState(i) => {
4763                DateAndTimeItemRefView::AscribableState(model.ascribable_state_arena.get(i.0))
4764            }
4765            DateAndTimeItemRef::AssemblyComponentUsage(i) => {
4766                DateAndTimeItemRefView::AssemblyComponentUsage(
4767                    model.assembly_component_usage_arena.get(i.0),
4768                )
4769            }
4770            DateAndTimeItemRef::CcDesignDateAndTimeAssignment(i) => {
4771                DateAndTimeItemRefView::CcDesignDateAndTimeAssignment(
4772                    model.cc_design_date_and_time_assignment_arena.get(i.0),
4773                )
4774            }
4775            DateAndTimeItemRef::Certification(i) => {
4776                DateAndTimeItemRefView::Certification(model.certification_arena.get(i.0))
4777            }
4778            DateAndTimeItemRef::CharacterizedRepresentation(i) => {
4779                DateAndTimeItemRefView::CharacterizedRepresentation(
4780                    model.characterized_representation_arena.get(i.0),
4781                )
4782            }
4783            DateAndTimeItemRef::ConfigurationDesign(i) => {
4784                DateAndTimeItemRefView::ConfigurationDesign(
4785                    model.configuration_design_arena.get(i.0),
4786                )
4787            }
4788            DateAndTimeItemRef::ConfigurationEffectivity(i) => {
4789                DateAndTimeItemRefView::ConfigurationEffectivity(
4790                    model.configuration_effectivity_arena.get(i.0),
4791                )
4792            }
4793            DateAndTimeItemRef::ConfigurationItem(i) => {
4794                DateAndTimeItemRefView::ConfigurationItem(model.configuration_item_arena.get(i.0))
4795            }
4796            DateAndTimeItemRef::ConstructiveGeometryRepresentation(i) => {
4797                DateAndTimeItemRefView::ConstructiveGeometryRepresentation(
4798                    model.constructive_geometry_representation_arena.get(i.0),
4799                )
4800            }
4801            DateAndTimeItemRef::Contract(i) => {
4802                DateAndTimeItemRefView::Contract(model.contract_arena.get(i.0))
4803            }
4804            DateAndTimeItemRef::DateAndTimeAssignment(i) => {
4805                DateAndTimeItemRefView::DateAndTimeAssignment(
4806                    model.date_and_time_assignment_arena.get(i.0),
4807                )
4808            }
4809            DateAndTimeItemRef::DefinitionalRepresentation(i) => {
4810                DateAndTimeItemRefView::DefinitionalRepresentation(
4811                    model.definitional_representation_arena.get(i.0),
4812                )
4813            }
4814            DateAndTimeItemRef::DesignContext(i) => {
4815                DateAndTimeItemRefView::DesignContext(model.design_context_arena.get(i.0))
4816            }
4817            DateAndTimeItemRef::Document(i) => {
4818                DateAndTimeItemRefView::Document(model.document_arena.get(i.0))
4819            }
4820            DateAndTimeItemRef::DocumentFile(i) => {
4821                DateAndTimeItemRefView::DocumentFile(model.document_file_arena.get(i.0))
4822            }
4823            DateAndTimeItemRef::DraughtingModel(i) => {
4824                DateAndTimeItemRefView::DraughtingModel(model.draughting_model_arena.get(i.0))
4825            }
4826            DateAndTimeItemRef::Effectivity(i) => {
4827                DateAndTimeItemRefView::Effectivity(model.effectivity_arena.get(i.0))
4828            }
4829            DateAndTimeItemRef::GeneralProperty(i) => {
4830                DateAndTimeItemRefView::GeneralProperty(model.general_property_arena.get(i.0))
4831            }
4832            DateAndTimeItemRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => {
4833                DateAndTimeItemRefView::GeometricallyBoundedSurfaceShapeRepresentation(
4834                    model
4835                        .geometrically_bounded_surface_shape_representation_arena
4836                        .get(i.0),
4837                )
4838            }
4839            DateAndTimeItemRef::GeometricallyBoundedWireframeShapeRepresentation(i) => {
4840                DateAndTimeItemRefView::GeometricallyBoundedWireframeShapeRepresentation(
4841                    model
4842                        .geometrically_bounded_wireframe_shape_representation_arena
4843                        .get(i.0),
4844                )
4845            }
4846            DateAndTimeItemRef::MakeFromUsageOption(i) => {
4847                DateAndTimeItemRefView::MakeFromUsageOption(
4848                    model.make_from_usage_option_arena.get(i.0),
4849                )
4850            }
4851            DateAndTimeItemRef::ManifoldSurfaceShapeRepresentation(i) => {
4852                DateAndTimeItemRefView::ManifoldSurfaceShapeRepresentation(
4853                    model.manifold_surface_shape_representation_arena.get(i.0),
4854                )
4855            }
4856            DateAndTimeItemRef::MechanicalDesignGeometricPresentationRepresentation(i) => {
4857                DateAndTimeItemRefView::MechanicalDesignGeometricPresentationRepresentation(
4858                    model
4859                        .mechanical_design_geometric_presentation_representation_arena
4860                        .get(i.0),
4861                )
4862            }
4863            DateAndTimeItemRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => {
4864                DateAndTimeItemRefView::MechanicalDesignPresentationRepresentationWithDraughting(
4865                    model
4866                        .mechanical_design_presentation_representation_with_draughting_arena
4867                        .get(i.0),
4868                )
4869            }
4870            DateAndTimeItemRef::MechanicalDesignShadedPresentationRepresentation(i) => {
4871                DateAndTimeItemRefView::MechanicalDesignShadedPresentationRepresentation(
4872                    model
4873                        .mechanical_design_shaded_presentation_representation_arena
4874                        .get(i.0),
4875                )
4876            }
4877            DateAndTimeItemRef::NextAssemblyUsageOccurrence(i) => {
4878                DateAndTimeItemRefView::NextAssemblyUsageOccurrence(
4879                    model.next_assembly_usage_occurrence_arena.get(i.0),
4880                )
4881            }
4882            DateAndTimeItemRef::OrganizationRelationship(i) => {
4883                DateAndTimeItemRefView::OrganizationRelationship(
4884                    model.organization_relationship_arena.get(i.0),
4885                )
4886            }
4887            DateAndTimeItemRef::OrganizationalAddress(i) => {
4888                DateAndTimeItemRefView::OrganizationalAddress(
4889                    model.organizational_address_arena.get(i.0),
4890                )
4891            }
4892            DateAndTimeItemRef::OrganizationalProject(i) => {
4893                DateAndTimeItemRefView::OrganizationalProject(
4894                    model.organizational_project_arena.get(i.0),
4895                )
4896            }
4897            DateAndTimeItemRef::Person(i) => {
4898                DateAndTimeItemRefView::Person(model.person_arena.get(i.0))
4899            }
4900            DateAndTimeItemRef::PersonAndOrganization(i) => {
4901                DateAndTimeItemRefView::PersonAndOrganization(
4902                    model.person_and_organization_arena.get(i.0),
4903                )
4904            }
4905            DateAndTimeItemRef::PersonAndOrganizationAddress(i) => {
4906                DateAndTimeItemRefView::PersonAndOrganizationAddress(
4907                    model.person_and_organization_address_arena.get(i.0),
4908                )
4909            }
4910            DateAndTimeItemRef::PresentationArea(i) => {
4911                DateAndTimeItemRefView::PresentationArea(model.presentation_area_arena.get(i.0))
4912            }
4913            DateAndTimeItemRef::PresentationRepresentation(i) => {
4914                DateAndTimeItemRefView::PresentationRepresentation(
4915                    model.presentation_representation_arena.get(i.0),
4916                )
4917            }
4918            DateAndTimeItemRef::PresentationView(i) => {
4919                DateAndTimeItemRefView::PresentationView(model.presentation_view_arena.get(i.0))
4920            }
4921            DateAndTimeItemRef::Product(i) => {
4922                DateAndTimeItemRefView::Product(model.product_arena.get(i.0))
4923            }
4924            DateAndTimeItemRef::ProductConcept(i) => {
4925                DateAndTimeItemRefView::ProductConcept(model.product_concept_arena.get(i.0))
4926            }
4927            DateAndTimeItemRef::ProductDefinition(i) => {
4928                DateAndTimeItemRefView::ProductDefinition(model.product_definition_arena.get(i.0))
4929            }
4930            DateAndTimeItemRef::ProductDefinitionContext(i) => {
4931                DateAndTimeItemRefView::ProductDefinitionContext(
4932                    model.product_definition_context_arena.get(i.0),
4933                )
4934            }
4935            DateAndTimeItemRef::ProductDefinitionEffectivity(i) => {
4936                DateAndTimeItemRefView::ProductDefinitionEffectivity(
4937                    model.product_definition_effectivity_arena.get(i.0),
4938                )
4939            }
4940            DateAndTimeItemRef::ProductDefinitionFormation(i) => {
4941                DateAndTimeItemRefView::ProductDefinitionFormation(
4942                    model.product_definition_formation_arena.get(i.0),
4943                )
4944            }
4945            DateAndTimeItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => {
4946                DateAndTimeItemRefView::ProductDefinitionFormationWithSpecifiedSource(
4947                    model
4948                        .product_definition_formation_with_specified_source_arena
4949                        .get(i.0),
4950                )
4951            }
4952            DateAndTimeItemRef::ProductDefinitionRelationship(i) => {
4953                DateAndTimeItemRefView::ProductDefinitionRelationship(
4954                    model.product_definition_relationship_arena.get(i.0),
4955                )
4956            }
4957            DateAndTimeItemRef::ProductDefinitionShape(i) => {
4958                DateAndTimeItemRefView::ProductDefinitionShape(
4959                    model.product_definition_shape_arena.get(i.0),
4960                )
4961            }
4962            DateAndTimeItemRef::ProductDefinitionUsage(i) => {
4963                DateAndTimeItemRefView::ProductDefinitionUsage(
4964                    model.product_definition_usage_arena.get(i.0),
4965                )
4966            }
4967            DateAndTimeItemRef::ProductDefinitionWithAssociatedDocuments(i) => {
4968                DateAndTimeItemRefView::ProductDefinitionWithAssociatedDocuments(
4969                    model
4970                        .product_definition_with_associated_documents_arena
4971                        .get(i.0),
4972                )
4973            }
4974            DateAndTimeItemRef::PropertyDefinition(i) => {
4975                DateAndTimeItemRefView::PropertyDefinition(model.property_definition_arena.get(i.0))
4976            }
4977            DateAndTimeItemRef::PropertyDefinitionRepresentation(i) => {
4978                DateAndTimeItemRefView::PropertyDefinitionRepresentation(
4979                    model.property_definition_representation_arena.get(i.0),
4980                )
4981            }
4982            DateAndTimeItemRef::Representation(i) => {
4983                DateAndTimeItemRefView::Representation(model.representation_arena.get(i.0))
4984            }
4985            DateAndTimeItemRef::ResourceProperty(i) => {
4986                DateAndTimeItemRefView::ResourceProperty(model.resource_property_arena.get(i.0))
4987            }
4988            DateAndTimeItemRef::SecurityClassification(i) => {
4989                DateAndTimeItemRefView::SecurityClassification(
4990                    model.security_classification_arena.get(i.0),
4991                )
4992            }
4993            DateAndTimeItemRef::SecurityClassificationLevel(i) => {
4994                DateAndTimeItemRefView::SecurityClassificationLevel(
4995                    model.security_classification_level_arena.get(i.0),
4996                )
4997            }
4998            DateAndTimeItemRef::ShapeDefinitionRepresentation(i) => {
4999                DateAndTimeItemRefView::ShapeDefinitionRepresentation(
5000                    model.shape_definition_representation_arena.get(i.0),
5001                )
5002            }
5003            DateAndTimeItemRef::ShapeDimensionRepresentation(i) => {
5004                DateAndTimeItemRefView::ShapeDimensionRepresentation(
5005                    model.shape_dimension_representation_arena.get(i.0),
5006                )
5007            }
5008            DateAndTimeItemRef::ShapeRepresentation(i) => {
5009                DateAndTimeItemRefView::ShapeRepresentation(
5010                    model.shape_representation_arena.get(i.0),
5011                )
5012            }
5013            DateAndTimeItemRef::ShapeRepresentationWithParameters(i) => {
5014                DateAndTimeItemRefView::ShapeRepresentationWithParameters(
5015                    model.shape_representation_with_parameters_arena.get(i.0),
5016                )
5017            }
5018            DateAndTimeItemRef::StateObserved(i) => {
5019                DateAndTimeItemRefView::StateObserved(model.state_observed_arena.get(i.0))
5020            }
5021            DateAndTimeItemRef::StateType(i) => {
5022                DateAndTimeItemRefView::StateType(model.state_type_arena.get(i.0))
5023            }
5024            DateAndTimeItemRef::SymbolRepresentation(i) => {
5025                DateAndTimeItemRefView::SymbolRepresentation(
5026                    model.symbol_representation_arena.get(i.0),
5027                )
5028            }
5029            DateAndTimeItemRef::TessellatedShapeRepresentation(i) => {
5030                DateAndTimeItemRefView::TessellatedShapeRepresentation(
5031                    model.tessellated_shape_representation_arena.get(i.0),
5032                )
5033            }
5034            DateAndTimeItemRef::VersionedActionRequest(i) => {
5035                DateAndTimeItemRefView::VersionedActionRequest(
5036                    model.versioned_action_request_arena.get(i.0),
5037                )
5038            }
5039            DateAndTimeItemRef::Complex(i) => {
5040                DateAndTimeItemRefView::Complex(model.complex_unit_arena.get(i.0))
5041            }
5042        }
5043    }
5044    pub fn entity_key(&self) -> EntityKey {
5045        match self {
5046            DateAndTimeItemRef::Action(i) => EntityKey::Action(*i),
5047            DateAndTimeItemRef::ActionDirective(i) => EntityKey::ActionDirective(*i),
5048            DateAndTimeItemRef::ActionMethod(i) => EntityKey::ActionMethod(*i),
5049            DateAndTimeItemRef::ActionProperty(i) => EntityKey::ActionProperty(*i),
5050            DateAndTimeItemRef::ActionRelationship(i) => EntityKey::ActionRelationship(*i),
5051            DateAndTimeItemRef::AdvancedBrepShapeRepresentation(i) => {
5052                EntityKey::AdvancedBrepShapeRepresentation(*i)
5053            }
5054            DateAndTimeItemRef::AppliedDateAndTimeAssignment(i) => {
5055                EntityKey::AppliedDateAndTimeAssignment(*i)
5056            }
5057            DateAndTimeItemRef::Approval(i) => EntityKey::Approval(*i),
5058            DateAndTimeItemRef::ApprovalPersonOrganization(i) => {
5059                EntityKey::ApprovalPersonOrganization(*i)
5060            }
5061            DateAndTimeItemRef::ApprovalStatus(i) => EntityKey::ApprovalStatus(*i),
5062            DateAndTimeItemRef::AscribableState(i) => EntityKey::AscribableState(*i),
5063            DateAndTimeItemRef::AssemblyComponentUsage(i) => EntityKey::AssemblyComponentUsage(*i),
5064            DateAndTimeItemRef::CcDesignDateAndTimeAssignment(i) => {
5065                EntityKey::CcDesignDateAndTimeAssignment(*i)
5066            }
5067            DateAndTimeItemRef::Certification(i) => EntityKey::Certification(*i),
5068            DateAndTimeItemRef::CharacterizedRepresentation(i) => {
5069                EntityKey::CharacterizedRepresentation(*i)
5070            }
5071            DateAndTimeItemRef::ConfigurationDesign(i) => EntityKey::ConfigurationDesign(*i),
5072            DateAndTimeItemRef::ConfigurationEffectivity(i) => {
5073                EntityKey::ConfigurationEffectivity(*i)
5074            }
5075            DateAndTimeItemRef::ConfigurationItem(i) => EntityKey::ConfigurationItem(*i),
5076            DateAndTimeItemRef::ConstructiveGeometryRepresentation(i) => {
5077                EntityKey::ConstructiveGeometryRepresentation(*i)
5078            }
5079            DateAndTimeItemRef::Contract(i) => EntityKey::Contract(*i),
5080            DateAndTimeItemRef::DateAndTimeAssignment(i) => EntityKey::DateAndTimeAssignment(*i),
5081            DateAndTimeItemRef::DefinitionalRepresentation(i) => {
5082                EntityKey::DefinitionalRepresentation(*i)
5083            }
5084            DateAndTimeItemRef::DesignContext(i) => EntityKey::DesignContext(*i),
5085            DateAndTimeItemRef::Document(i) => EntityKey::Document(*i),
5086            DateAndTimeItemRef::DocumentFile(i) => EntityKey::DocumentFile(*i),
5087            DateAndTimeItemRef::DraughtingModel(i) => EntityKey::DraughtingModel(*i),
5088            DateAndTimeItemRef::Effectivity(i) => EntityKey::Effectivity(*i),
5089            DateAndTimeItemRef::GeneralProperty(i) => EntityKey::GeneralProperty(*i),
5090            DateAndTimeItemRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => {
5091                EntityKey::GeometricallyBoundedSurfaceShapeRepresentation(*i)
5092            }
5093            DateAndTimeItemRef::GeometricallyBoundedWireframeShapeRepresentation(i) => {
5094                EntityKey::GeometricallyBoundedWireframeShapeRepresentation(*i)
5095            }
5096            DateAndTimeItemRef::MakeFromUsageOption(i) => EntityKey::MakeFromUsageOption(*i),
5097            DateAndTimeItemRef::ManifoldSurfaceShapeRepresentation(i) => {
5098                EntityKey::ManifoldSurfaceShapeRepresentation(*i)
5099            }
5100            DateAndTimeItemRef::MechanicalDesignGeometricPresentationRepresentation(i) => {
5101                EntityKey::MechanicalDesignGeometricPresentationRepresentation(*i)
5102            }
5103            DateAndTimeItemRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => {
5104                EntityKey::MechanicalDesignPresentationRepresentationWithDraughting(*i)
5105            }
5106            DateAndTimeItemRef::MechanicalDesignShadedPresentationRepresentation(i) => {
5107                EntityKey::MechanicalDesignShadedPresentationRepresentation(*i)
5108            }
5109            DateAndTimeItemRef::NextAssemblyUsageOccurrence(i) => {
5110                EntityKey::NextAssemblyUsageOccurrence(*i)
5111            }
5112            DateAndTimeItemRef::OrganizationRelationship(i) => {
5113                EntityKey::OrganizationRelationship(*i)
5114            }
5115            DateAndTimeItemRef::OrganizationalAddress(i) => EntityKey::OrganizationalAddress(*i),
5116            DateAndTimeItemRef::OrganizationalProject(i) => EntityKey::OrganizationalProject(*i),
5117            DateAndTimeItemRef::Person(i) => EntityKey::Person(*i),
5118            DateAndTimeItemRef::PersonAndOrganization(i) => EntityKey::PersonAndOrganization(*i),
5119            DateAndTimeItemRef::PersonAndOrganizationAddress(i) => {
5120                EntityKey::PersonAndOrganizationAddress(*i)
5121            }
5122            DateAndTimeItemRef::PresentationArea(i) => EntityKey::PresentationArea(*i),
5123            DateAndTimeItemRef::PresentationRepresentation(i) => {
5124                EntityKey::PresentationRepresentation(*i)
5125            }
5126            DateAndTimeItemRef::PresentationView(i) => EntityKey::PresentationView(*i),
5127            DateAndTimeItemRef::Product(i) => EntityKey::Product(*i),
5128            DateAndTimeItemRef::ProductConcept(i) => EntityKey::ProductConcept(*i),
5129            DateAndTimeItemRef::ProductDefinition(i) => EntityKey::ProductDefinition(*i),
5130            DateAndTimeItemRef::ProductDefinitionContext(i) => {
5131                EntityKey::ProductDefinitionContext(*i)
5132            }
5133            DateAndTimeItemRef::ProductDefinitionEffectivity(i) => {
5134                EntityKey::ProductDefinitionEffectivity(*i)
5135            }
5136            DateAndTimeItemRef::ProductDefinitionFormation(i) => {
5137                EntityKey::ProductDefinitionFormation(*i)
5138            }
5139            DateAndTimeItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => {
5140                EntityKey::ProductDefinitionFormationWithSpecifiedSource(*i)
5141            }
5142            DateAndTimeItemRef::ProductDefinitionRelationship(i) => {
5143                EntityKey::ProductDefinitionRelationship(*i)
5144            }
5145            DateAndTimeItemRef::ProductDefinitionShape(i) => EntityKey::ProductDefinitionShape(*i),
5146            DateAndTimeItemRef::ProductDefinitionUsage(i) => EntityKey::ProductDefinitionUsage(*i),
5147            DateAndTimeItemRef::ProductDefinitionWithAssociatedDocuments(i) => {
5148                EntityKey::ProductDefinitionWithAssociatedDocuments(*i)
5149            }
5150            DateAndTimeItemRef::PropertyDefinition(i) => EntityKey::PropertyDefinition(*i),
5151            DateAndTimeItemRef::PropertyDefinitionRepresentation(i) => {
5152                EntityKey::PropertyDefinitionRepresentation(*i)
5153            }
5154            DateAndTimeItemRef::Representation(i) => EntityKey::Representation(*i),
5155            DateAndTimeItemRef::ResourceProperty(i) => EntityKey::ResourceProperty(*i),
5156            DateAndTimeItemRef::SecurityClassification(i) => EntityKey::SecurityClassification(*i),
5157            DateAndTimeItemRef::SecurityClassificationLevel(i) => {
5158                EntityKey::SecurityClassificationLevel(*i)
5159            }
5160            DateAndTimeItemRef::ShapeDefinitionRepresentation(i) => {
5161                EntityKey::ShapeDefinitionRepresentation(*i)
5162            }
5163            DateAndTimeItemRef::ShapeDimensionRepresentation(i) => {
5164                EntityKey::ShapeDimensionRepresentation(*i)
5165            }
5166            DateAndTimeItemRef::ShapeRepresentation(i) => EntityKey::ShapeRepresentation(*i),
5167            DateAndTimeItemRef::ShapeRepresentationWithParameters(i) => {
5168                EntityKey::ShapeRepresentationWithParameters(*i)
5169            }
5170            DateAndTimeItemRef::StateObserved(i) => EntityKey::StateObserved(*i),
5171            DateAndTimeItemRef::StateType(i) => EntityKey::StateType(*i),
5172            DateAndTimeItemRef::SymbolRepresentation(i) => EntityKey::SymbolRepresentation(*i),
5173            DateAndTimeItemRef::TessellatedShapeRepresentation(i) => {
5174                EntityKey::TessellatedShapeRepresentation(*i)
5175            }
5176            DateAndTimeItemRef::VersionedActionRequest(i) => EntityKey::VersionedActionRequest(*i),
5177            DateAndTimeItemRef::Complex(i) => EntityKey::ComplexUnit(*i),
5178        }
5179    }
5180}
5181
5182#[derive(Clone, Copy, Debug)]
5183pub enum DateTimeItemRefView<'m> {
5184    ApprovalPersonOrganization(&'m ApprovalPersonOrganization),
5185    Certification(&'m Certification),
5186    Change(&'m Change),
5187    ChangeRequest(&'m ChangeRequest),
5188    Contract(&'m Contract),
5189    ProductDefinition(&'m ProductDefinition),
5190    ProductDefinitionWithAssociatedDocuments(&'m ProductDefinitionWithAssociatedDocuments),
5191    SecurityClassification(&'m SecurityClassification),
5192    StartRequest(&'m StartRequest),
5193    StartWork(&'m StartWork),
5194    Complex(&'m ComplexUnit),
5195}
5196impl DateTimeItemRef {
5197    pub fn resolve<'m>(&self, model: &'m StepModel) -> DateTimeItemRefView<'m> {
5198        match self {
5199            DateTimeItemRef::ApprovalPersonOrganization(i) => {
5200                DateTimeItemRefView::ApprovalPersonOrganization(
5201                    model.approval_person_organization_arena.get(i.0),
5202                )
5203            }
5204            DateTimeItemRef::Certification(i) => {
5205                DateTimeItemRefView::Certification(model.certification_arena.get(i.0))
5206            }
5207            DateTimeItemRef::Change(i) => DateTimeItemRefView::Change(model.change_arena.get(i.0)),
5208            DateTimeItemRef::ChangeRequest(i) => {
5209                DateTimeItemRefView::ChangeRequest(model.change_request_arena.get(i.0))
5210            }
5211            DateTimeItemRef::Contract(i) => {
5212                DateTimeItemRefView::Contract(model.contract_arena.get(i.0))
5213            }
5214            DateTimeItemRef::ProductDefinition(i) => {
5215                DateTimeItemRefView::ProductDefinition(model.product_definition_arena.get(i.0))
5216            }
5217            DateTimeItemRef::ProductDefinitionWithAssociatedDocuments(i) => {
5218                DateTimeItemRefView::ProductDefinitionWithAssociatedDocuments(
5219                    model
5220                        .product_definition_with_associated_documents_arena
5221                        .get(i.0),
5222                )
5223            }
5224            DateTimeItemRef::SecurityClassification(i) => {
5225                DateTimeItemRefView::SecurityClassification(
5226                    model.security_classification_arena.get(i.0),
5227                )
5228            }
5229            DateTimeItemRef::StartRequest(i) => {
5230                DateTimeItemRefView::StartRequest(model.start_request_arena.get(i.0))
5231            }
5232            DateTimeItemRef::StartWork(i) => {
5233                DateTimeItemRefView::StartWork(model.start_work_arena.get(i.0))
5234            }
5235            DateTimeItemRef::Complex(i) => {
5236                DateTimeItemRefView::Complex(model.complex_unit_arena.get(i.0))
5237            }
5238        }
5239    }
5240    pub fn entity_key(&self) -> EntityKey {
5241        match self {
5242            DateTimeItemRef::ApprovalPersonOrganization(i) => {
5243                EntityKey::ApprovalPersonOrganization(*i)
5244            }
5245            DateTimeItemRef::Certification(i) => EntityKey::Certification(*i),
5246            DateTimeItemRef::Change(i) => EntityKey::Change(*i),
5247            DateTimeItemRef::ChangeRequest(i) => EntityKey::ChangeRequest(*i),
5248            DateTimeItemRef::Contract(i) => EntityKey::Contract(*i),
5249            DateTimeItemRef::ProductDefinition(i) => EntityKey::ProductDefinition(*i),
5250            DateTimeItemRef::ProductDefinitionWithAssociatedDocuments(i) => {
5251                EntityKey::ProductDefinitionWithAssociatedDocuments(*i)
5252            }
5253            DateTimeItemRef::SecurityClassification(i) => EntityKey::SecurityClassification(*i),
5254            DateTimeItemRef::StartRequest(i) => EntityKey::StartRequest(*i),
5255            DateTimeItemRef::StartWork(i) => EntityKey::StartWork(*i),
5256            DateTimeItemRef::Complex(i) => EntityKey::ComplexUnit(*i),
5257        }
5258    }
5259}
5260
5261#[derive(Clone, Copy, Debug)]
5262pub enum DateTimeRoleRefView<'m> {
5263    DateTimeRole(&'m DateTimeRole),
5264}
5265impl DateTimeRoleRef {
5266    pub fn resolve<'m>(&self, model: &'m StepModel) -> DateTimeRoleRefView<'m> {
5267        match self {
5268            DateTimeRoleRef::DateTimeRole(i) => {
5269                DateTimeRoleRefView::DateTimeRole(model.date_time_role_arena.get(i.0))
5270            }
5271        }
5272    }
5273    pub fn entity_key(&self) -> EntityKey {
5274        match self {
5275            DateTimeRoleRef::DateTimeRole(i) => EntityKey::DateTimeRole(*i),
5276        }
5277    }
5278}
5279
5280#[derive(Clone, Copy, Debug)]
5281pub enum DateTimeSelectRefView<'m> {
5282    CalendarDate(&'m CalendarDate),
5283    Date(&'m Date),
5284    DateAndTime(&'m DateAndTime),
5285    LocalTime(&'m LocalTime),
5286    Complex(&'m ComplexUnit),
5287}
5288impl DateTimeSelectRef {
5289    pub fn resolve<'m>(&self, model: &'m StepModel) -> DateTimeSelectRefView<'m> {
5290        match self {
5291            DateTimeSelectRef::CalendarDate(i) => {
5292                DateTimeSelectRefView::CalendarDate(model.calendar_date_arena.get(i.0))
5293            }
5294            DateTimeSelectRef::Date(i) => DateTimeSelectRefView::Date(model.date_arena.get(i.0)),
5295            DateTimeSelectRef::DateAndTime(i) => {
5296                DateTimeSelectRefView::DateAndTime(model.date_and_time_arena.get(i.0))
5297            }
5298            DateTimeSelectRef::LocalTime(i) => {
5299                DateTimeSelectRefView::LocalTime(model.local_time_arena.get(i.0))
5300            }
5301            DateTimeSelectRef::Complex(i) => {
5302                DateTimeSelectRefView::Complex(model.complex_unit_arena.get(i.0))
5303            }
5304        }
5305    }
5306    pub fn entity_key(&self) -> EntityKey {
5307        match self {
5308            DateTimeSelectRef::CalendarDate(i) => EntityKey::CalendarDate(*i),
5309            DateTimeSelectRef::Date(i) => EntityKey::Date(*i),
5310            DateTimeSelectRef::DateAndTime(i) => EntityKey::DateAndTime(*i),
5311            DateTimeSelectRef::LocalTime(i) => EntityKey::LocalTime(*i),
5312            DateTimeSelectRef::Complex(i) => EntityKey::ComplexUnit(*i),
5313        }
5314    }
5315}
5316
5317#[derive(Clone, Copy, Debug)]
5318pub enum DatumRefView<'m> {
5319    CommonDatum(&'m CommonDatum),
5320    Datum(&'m Datum),
5321    Complex(&'m ComplexUnit),
5322}
5323impl DatumRef {
5324    pub fn resolve<'m>(&self, model: &'m StepModel) -> DatumRefView<'m> {
5325        match self {
5326            DatumRef::CommonDatum(i) => {
5327                DatumRefView::CommonDatum(model.common_datum_arena.get(i.0))
5328            }
5329            DatumRef::Datum(i) => DatumRefView::Datum(model.datum_arena.get(i.0)),
5330            DatumRef::Complex(i) => DatumRefView::Complex(model.complex_unit_arena.get(i.0)),
5331        }
5332    }
5333    pub fn entity_key(&self) -> EntityKey {
5334        match self {
5335            DatumRef::CommonDatum(i) => EntityKey::CommonDatum(*i),
5336            DatumRef::Datum(i) => EntityKey::Datum(*i),
5337            DatumRef::Complex(i) => EntityKey::ComplexUnit(*i),
5338        }
5339    }
5340}
5341
5342#[derive(Clone, Copy, Debug)]
5343pub enum DatumReferenceCompartmentRefView<'m> {
5344    DatumReferenceCompartment(&'m DatumReferenceCompartment),
5345}
5346impl DatumReferenceCompartmentRef {
5347    pub fn resolve<'m>(&self, model: &'m StepModel) -> DatumReferenceCompartmentRefView<'m> {
5348        match self {
5349            DatumReferenceCompartmentRef::DatumReferenceCompartment(i) => {
5350                DatumReferenceCompartmentRefView::DatumReferenceCompartment(
5351                    model.datum_reference_compartment_arena.get(i.0),
5352                )
5353            }
5354        }
5355    }
5356    pub fn entity_key(&self) -> EntityKey {
5357        match self {
5358            DatumReferenceCompartmentRef::DatumReferenceCompartment(i) => {
5359                EntityKey::DatumReferenceCompartment(*i)
5360            }
5361        }
5362    }
5363}
5364
5365#[derive(Clone, Copy, Debug)]
5366pub enum DatumReferenceElementRefView<'m> {
5367    DatumReferenceElement(&'m DatumReferenceElement),
5368}
5369impl DatumReferenceElementRef {
5370    pub fn resolve<'m>(&self, model: &'m StepModel) -> DatumReferenceElementRefView<'m> {
5371        match self {
5372            DatumReferenceElementRef::DatumReferenceElement(i) => {
5373                DatumReferenceElementRefView::DatumReferenceElement(
5374                    model.datum_reference_element_arena.get(i.0),
5375                )
5376            }
5377        }
5378    }
5379    pub fn entity_key(&self) -> EntityKey {
5380        match self {
5381            DatumReferenceElementRef::DatumReferenceElement(i) => {
5382                EntityKey::DatumReferenceElement(*i)
5383            }
5384        }
5385    }
5386}
5387
5388#[derive(Clone, Copy, Debug)]
5389pub enum DatumSystemRefView<'m> {
5390    DatumSystem(&'m DatumSystem),
5391    Complex(&'m ComplexUnit),
5392}
5393impl DatumSystemRef {
5394    pub fn resolve<'m>(&self, model: &'m StepModel) -> DatumSystemRefView<'m> {
5395        match self {
5396            DatumSystemRef::DatumSystem(i) => {
5397                DatumSystemRefView::DatumSystem(model.datum_system_arena.get(i.0))
5398            }
5399            DatumSystemRef::Complex(i) => {
5400                DatumSystemRefView::Complex(model.complex_unit_arena.get(i.0))
5401            }
5402        }
5403    }
5404    pub fn entity_key(&self) -> EntityKey {
5405        match self {
5406            DatumSystemRef::DatumSystem(i) => EntityKey::DatumSystem(*i),
5407            DatumSystemRef::Complex(i) => EntityKey::ComplexUnit(*i),
5408        }
5409    }
5410}
5411
5412#[derive(Clone, Copy, Debug)]
5413pub enum DatumSystemOrReferenceRefView<'m> {
5414    DatumReference(&'m DatumReference),
5415    DatumSystem(&'m DatumSystem),
5416    Complex(&'m ComplexUnit),
5417}
5418impl DatumSystemOrReferenceRef {
5419    pub fn resolve<'m>(&self, model: &'m StepModel) -> DatumSystemOrReferenceRefView<'m> {
5420        match self {
5421            DatumSystemOrReferenceRef::DatumReference(i) => {
5422                DatumSystemOrReferenceRefView::DatumReference(model.datum_reference_arena.get(i.0))
5423            }
5424            DatumSystemOrReferenceRef::DatumSystem(i) => {
5425                DatumSystemOrReferenceRefView::DatumSystem(model.datum_system_arena.get(i.0))
5426            }
5427            DatumSystemOrReferenceRef::Complex(i) => {
5428                DatumSystemOrReferenceRefView::Complex(model.complex_unit_arena.get(i.0))
5429            }
5430        }
5431    }
5432    pub fn entity_key(&self) -> EntityKey {
5433        match self {
5434            DatumSystemOrReferenceRef::DatumReference(i) => EntityKey::DatumReference(*i),
5435            DatumSystemOrReferenceRef::DatumSystem(i) => EntityKey::DatumSystem(*i),
5436            DatumSystemOrReferenceRef::Complex(i) => EntityKey::ComplexUnit(*i),
5437        }
5438    }
5439}
5440
5441#[derive(Clone, Copy, Debug)]
5442pub enum DefinedGlyphSelectRefView<'m> {
5443    ExternallyDefinedCharacterGlyph(&'m ExternallyDefinedCharacterGlyph),
5444    PreDefinedCharacterGlyph(&'m PreDefinedCharacterGlyph),
5445    Complex(&'m ComplexUnit),
5446}
5447impl DefinedGlyphSelectRef {
5448    pub fn resolve<'m>(&self, model: &'m StepModel) -> DefinedGlyphSelectRefView<'m> {
5449        match self {
5450            DefinedGlyphSelectRef::ExternallyDefinedCharacterGlyph(i) => {
5451                DefinedGlyphSelectRefView::ExternallyDefinedCharacterGlyph(
5452                    model.externally_defined_character_glyph_arena.get(i.0),
5453                )
5454            }
5455            DefinedGlyphSelectRef::PreDefinedCharacterGlyph(i) => {
5456                DefinedGlyphSelectRefView::PreDefinedCharacterGlyph(
5457                    model.pre_defined_character_glyph_arena.get(i.0),
5458                )
5459            }
5460            DefinedGlyphSelectRef::Complex(i) => {
5461                DefinedGlyphSelectRefView::Complex(model.complex_unit_arena.get(i.0))
5462            }
5463        }
5464    }
5465    pub fn entity_key(&self) -> EntityKey {
5466        match self {
5467            DefinedGlyphSelectRef::ExternallyDefinedCharacterGlyph(i) => {
5468                EntityKey::ExternallyDefinedCharacterGlyph(*i)
5469            }
5470            DefinedGlyphSelectRef::PreDefinedCharacterGlyph(i) => {
5471                EntityKey::PreDefinedCharacterGlyph(*i)
5472            }
5473            DefinedGlyphSelectRef::Complex(i) => EntityKey::ComplexUnit(*i),
5474        }
5475    }
5476}
5477
5478#[derive(Clone, Copy, Debug)]
5479pub enum DefinedSymbolSelectRefView<'m> {
5480    ExternallyDefinedSymbol(&'m ExternallyDefinedSymbol),
5481    PreDefinedPointMarkerSymbol(&'m PreDefinedPointMarkerSymbol),
5482    PreDefinedSymbol(&'m PreDefinedSymbol),
5483    PreDefinedTerminatorSymbol(&'m PreDefinedTerminatorSymbol),
5484    Complex(&'m ComplexUnit),
5485}
5486impl DefinedSymbolSelectRef {
5487    pub fn resolve<'m>(&self, model: &'m StepModel) -> DefinedSymbolSelectRefView<'m> {
5488        match self {
5489            DefinedSymbolSelectRef::ExternallyDefinedSymbol(i) => {
5490                DefinedSymbolSelectRefView::ExternallyDefinedSymbol(
5491                    model.externally_defined_symbol_arena.get(i.0),
5492                )
5493            }
5494            DefinedSymbolSelectRef::PreDefinedPointMarkerSymbol(i) => {
5495                DefinedSymbolSelectRefView::PreDefinedPointMarkerSymbol(
5496                    model.pre_defined_point_marker_symbol_arena.get(i.0),
5497                )
5498            }
5499            DefinedSymbolSelectRef::PreDefinedSymbol(i) => {
5500                DefinedSymbolSelectRefView::PreDefinedSymbol(
5501                    model.pre_defined_symbol_arena.get(i.0),
5502                )
5503            }
5504            DefinedSymbolSelectRef::PreDefinedTerminatorSymbol(i) => {
5505                DefinedSymbolSelectRefView::PreDefinedTerminatorSymbol(
5506                    model.pre_defined_terminator_symbol_arena.get(i.0),
5507                )
5508            }
5509            DefinedSymbolSelectRef::Complex(i) => {
5510                DefinedSymbolSelectRefView::Complex(model.complex_unit_arena.get(i.0))
5511            }
5512        }
5513    }
5514    pub fn entity_key(&self) -> EntityKey {
5515        match self {
5516            DefinedSymbolSelectRef::ExternallyDefinedSymbol(i) => {
5517                EntityKey::ExternallyDefinedSymbol(*i)
5518            }
5519            DefinedSymbolSelectRef::PreDefinedPointMarkerSymbol(i) => {
5520                EntityKey::PreDefinedPointMarkerSymbol(*i)
5521            }
5522            DefinedSymbolSelectRef::PreDefinedSymbol(i) => EntityKey::PreDefinedSymbol(*i),
5523            DefinedSymbolSelectRef::PreDefinedTerminatorSymbol(i) => {
5524                EntityKey::PreDefinedTerminatorSymbol(*i)
5525            }
5526            DefinedSymbolSelectRef::Complex(i) => EntityKey::ComplexUnit(*i),
5527        }
5528    }
5529}
5530
5531#[derive(Clone, Copy, Debug)]
5532pub enum DefinitionalRepresentationRefView<'m> {
5533    DefinitionalRepresentation(&'m DefinitionalRepresentation),
5534    Complex(&'m ComplexUnit),
5535}
5536impl DefinitionalRepresentationRef {
5537    pub fn resolve<'m>(&self, model: &'m StepModel) -> DefinitionalRepresentationRefView<'m> {
5538        match self {
5539            DefinitionalRepresentationRef::DefinitionalRepresentation(i) => {
5540                DefinitionalRepresentationRefView::DefinitionalRepresentation(
5541                    model.definitional_representation_arena.get(i.0),
5542                )
5543            }
5544            DefinitionalRepresentationRef::Complex(i) => {
5545                DefinitionalRepresentationRefView::Complex(model.complex_unit_arena.get(i.0))
5546            }
5547        }
5548    }
5549    pub fn entity_key(&self) -> EntityKey {
5550        match self {
5551            DefinitionalRepresentationRef::DefinitionalRepresentation(i) => {
5552                EntityKey::DefinitionalRepresentation(*i)
5553            }
5554            DefinitionalRepresentationRef::Complex(i) => EntityKey::ComplexUnit(*i),
5555        }
5556    }
5557}
5558
5559#[derive(Clone, Copy, Debug)]
5560pub enum DerivedPropertySelectRefView<'m> {
5561    ActionProperty(&'m ActionProperty),
5562    AngularLocation(&'m AngularLocation),
5563    AngularSize(&'m AngularSize),
5564    AngularityTolerance(&'m AngularityTolerance),
5565    CircularRunoutTolerance(&'m CircularRunoutTolerance),
5566    CoaxialityTolerance(&'m CoaxialityTolerance),
5567    ConcentricityTolerance(&'m ConcentricityTolerance),
5568    CylindricityTolerance(&'m CylindricityTolerance),
5569    DimensionalLocation(&'m DimensionalLocation),
5570    DimensionalLocationWithPath(&'m DimensionalLocationWithPath),
5571    DimensionalSize(&'m DimensionalSize),
5572    DimensionalSizeWithDatumFeature(&'m DimensionalSizeWithDatumFeature),
5573    DimensionalSizeWithPath(&'m DimensionalSizeWithPath),
5574    DirectedDimensionalLocation(&'m DirectedDimensionalLocation),
5575    FlatnessTolerance(&'m FlatnessTolerance),
5576    GeometricTolerance(&'m GeometricTolerance),
5577    GeometricToleranceWithDatumReference(&'m GeometricToleranceWithDatumReference),
5578    GeometricToleranceWithDefinedAreaUnit(&'m GeometricToleranceWithDefinedAreaUnit),
5579    GeometricToleranceWithDefinedUnit(&'m GeometricToleranceWithDefinedUnit),
5580    GeometricToleranceWithMaximumTolerance(&'m GeometricToleranceWithMaximumTolerance),
5581    GeometricToleranceWithModifiers(&'m GeometricToleranceWithModifiers),
5582    LineProfileTolerance(&'m LineProfileTolerance),
5583    ModifiedGeometricTolerance(&'m ModifiedGeometricTolerance),
5584    ParallelismTolerance(&'m ParallelismTolerance),
5585    PerpendicularityTolerance(&'m PerpendicularityTolerance),
5586    PositionTolerance(&'m PositionTolerance),
5587    ProductDefinitionShape(&'m ProductDefinitionShape),
5588    PropertyDefinition(&'m PropertyDefinition),
5589    ResourceProperty(&'m ResourceProperty),
5590    RoundnessTolerance(&'m RoundnessTolerance),
5591    StraightnessTolerance(&'m StraightnessTolerance),
5592    SurfaceProfileTolerance(&'m SurfaceProfileTolerance),
5593    SymmetryTolerance(&'m SymmetryTolerance),
5594    TotalRunoutTolerance(&'m TotalRunoutTolerance),
5595    UnequallyDisposedGeometricTolerance(&'m UnequallyDisposedGeometricTolerance),
5596    Complex(&'m ComplexUnit),
5597}
5598impl DerivedPropertySelectRef {
5599    pub fn resolve<'m>(&self, model: &'m StepModel) -> DerivedPropertySelectRefView<'m> {
5600        match self {
5601            DerivedPropertySelectRef::ActionProperty(i) => {
5602                DerivedPropertySelectRefView::ActionProperty(model.action_property_arena.get(i.0))
5603            }
5604            DerivedPropertySelectRef::AngularLocation(i) => {
5605                DerivedPropertySelectRefView::AngularLocation(model.angular_location_arena.get(i.0))
5606            }
5607            DerivedPropertySelectRef::AngularSize(i) => {
5608                DerivedPropertySelectRefView::AngularSize(model.angular_size_arena.get(i.0))
5609            }
5610            DerivedPropertySelectRef::AngularityTolerance(i) => {
5611                DerivedPropertySelectRefView::AngularityTolerance(
5612                    model.angularity_tolerance_arena.get(i.0),
5613                )
5614            }
5615            DerivedPropertySelectRef::CircularRunoutTolerance(i) => {
5616                DerivedPropertySelectRefView::CircularRunoutTolerance(
5617                    model.circular_runout_tolerance_arena.get(i.0),
5618                )
5619            }
5620            DerivedPropertySelectRef::CoaxialityTolerance(i) => {
5621                DerivedPropertySelectRefView::CoaxialityTolerance(
5622                    model.coaxiality_tolerance_arena.get(i.0),
5623                )
5624            }
5625            DerivedPropertySelectRef::ConcentricityTolerance(i) => {
5626                DerivedPropertySelectRefView::ConcentricityTolerance(
5627                    model.concentricity_tolerance_arena.get(i.0),
5628                )
5629            }
5630            DerivedPropertySelectRef::CylindricityTolerance(i) => {
5631                DerivedPropertySelectRefView::CylindricityTolerance(
5632                    model.cylindricity_tolerance_arena.get(i.0),
5633                )
5634            }
5635            DerivedPropertySelectRef::DimensionalLocation(i) => {
5636                DerivedPropertySelectRefView::DimensionalLocation(
5637                    model.dimensional_location_arena.get(i.0),
5638                )
5639            }
5640            DerivedPropertySelectRef::DimensionalLocationWithPath(i) => {
5641                DerivedPropertySelectRefView::DimensionalLocationWithPath(
5642                    model.dimensional_location_with_path_arena.get(i.0),
5643                )
5644            }
5645            DerivedPropertySelectRef::DimensionalSize(i) => {
5646                DerivedPropertySelectRefView::DimensionalSize(model.dimensional_size_arena.get(i.0))
5647            }
5648            DerivedPropertySelectRef::DimensionalSizeWithDatumFeature(i) => {
5649                DerivedPropertySelectRefView::DimensionalSizeWithDatumFeature(
5650                    model.dimensional_size_with_datum_feature_arena.get(i.0),
5651                )
5652            }
5653            DerivedPropertySelectRef::DimensionalSizeWithPath(i) => {
5654                DerivedPropertySelectRefView::DimensionalSizeWithPath(
5655                    model.dimensional_size_with_path_arena.get(i.0),
5656                )
5657            }
5658            DerivedPropertySelectRef::DirectedDimensionalLocation(i) => {
5659                DerivedPropertySelectRefView::DirectedDimensionalLocation(
5660                    model.directed_dimensional_location_arena.get(i.0),
5661                )
5662            }
5663            DerivedPropertySelectRef::FlatnessTolerance(i) => {
5664                DerivedPropertySelectRefView::FlatnessTolerance(
5665                    model.flatness_tolerance_arena.get(i.0),
5666                )
5667            }
5668            DerivedPropertySelectRef::GeometricTolerance(i) => {
5669                DerivedPropertySelectRefView::GeometricTolerance(
5670                    model.geometric_tolerance_arena.get(i.0),
5671                )
5672            }
5673            DerivedPropertySelectRef::GeometricToleranceWithDatumReference(i) => {
5674                DerivedPropertySelectRefView::GeometricToleranceWithDatumReference(
5675                    model
5676                        .geometric_tolerance_with_datum_reference_arena
5677                        .get(i.0),
5678                )
5679            }
5680            DerivedPropertySelectRef::GeometricToleranceWithDefinedAreaUnit(i) => {
5681                DerivedPropertySelectRefView::GeometricToleranceWithDefinedAreaUnit(
5682                    model
5683                        .geometric_tolerance_with_defined_area_unit_arena
5684                        .get(i.0),
5685                )
5686            }
5687            DerivedPropertySelectRef::GeometricToleranceWithDefinedUnit(i) => {
5688                DerivedPropertySelectRefView::GeometricToleranceWithDefinedUnit(
5689                    model.geometric_tolerance_with_defined_unit_arena.get(i.0),
5690                )
5691            }
5692            DerivedPropertySelectRef::GeometricToleranceWithMaximumTolerance(i) => {
5693                DerivedPropertySelectRefView::GeometricToleranceWithMaximumTolerance(
5694                    model
5695                        .geometric_tolerance_with_maximum_tolerance_arena
5696                        .get(i.0),
5697                )
5698            }
5699            DerivedPropertySelectRef::GeometricToleranceWithModifiers(i) => {
5700                DerivedPropertySelectRefView::GeometricToleranceWithModifiers(
5701                    model.geometric_tolerance_with_modifiers_arena.get(i.0),
5702                )
5703            }
5704            DerivedPropertySelectRef::LineProfileTolerance(i) => {
5705                DerivedPropertySelectRefView::LineProfileTolerance(
5706                    model.line_profile_tolerance_arena.get(i.0),
5707                )
5708            }
5709            DerivedPropertySelectRef::ModifiedGeometricTolerance(i) => {
5710                DerivedPropertySelectRefView::ModifiedGeometricTolerance(
5711                    model.modified_geometric_tolerance_arena.get(i.0),
5712                )
5713            }
5714            DerivedPropertySelectRef::ParallelismTolerance(i) => {
5715                DerivedPropertySelectRefView::ParallelismTolerance(
5716                    model.parallelism_tolerance_arena.get(i.0),
5717                )
5718            }
5719            DerivedPropertySelectRef::PerpendicularityTolerance(i) => {
5720                DerivedPropertySelectRefView::PerpendicularityTolerance(
5721                    model.perpendicularity_tolerance_arena.get(i.0),
5722                )
5723            }
5724            DerivedPropertySelectRef::PositionTolerance(i) => {
5725                DerivedPropertySelectRefView::PositionTolerance(
5726                    model.position_tolerance_arena.get(i.0),
5727                )
5728            }
5729            DerivedPropertySelectRef::ProductDefinitionShape(i) => {
5730                DerivedPropertySelectRefView::ProductDefinitionShape(
5731                    model.product_definition_shape_arena.get(i.0),
5732                )
5733            }
5734            DerivedPropertySelectRef::PropertyDefinition(i) => {
5735                DerivedPropertySelectRefView::PropertyDefinition(
5736                    model.property_definition_arena.get(i.0),
5737                )
5738            }
5739            DerivedPropertySelectRef::ResourceProperty(i) => {
5740                DerivedPropertySelectRefView::ResourceProperty(
5741                    model.resource_property_arena.get(i.0),
5742                )
5743            }
5744            DerivedPropertySelectRef::RoundnessTolerance(i) => {
5745                DerivedPropertySelectRefView::RoundnessTolerance(
5746                    model.roundness_tolerance_arena.get(i.0),
5747                )
5748            }
5749            DerivedPropertySelectRef::StraightnessTolerance(i) => {
5750                DerivedPropertySelectRefView::StraightnessTolerance(
5751                    model.straightness_tolerance_arena.get(i.0),
5752                )
5753            }
5754            DerivedPropertySelectRef::SurfaceProfileTolerance(i) => {
5755                DerivedPropertySelectRefView::SurfaceProfileTolerance(
5756                    model.surface_profile_tolerance_arena.get(i.0),
5757                )
5758            }
5759            DerivedPropertySelectRef::SymmetryTolerance(i) => {
5760                DerivedPropertySelectRefView::SymmetryTolerance(
5761                    model.symmetry_tolerance_arena.get(i.0),
5762                )
5763            }
5764            DerivedPropertySelectRef::TotalRunoutTolerance(i) => {
5765                DerivedPropertySelectRefView::TotalRunoutTolerance(
5766                    model.total_runout_tolerance_arena.get(i.0),
5767                )
5768            }
5769            DerivedPropertySelectRef::UnequallyDisposedGeometricTolerance(i) => {
5770                DerivedPropertySelectRefView::UnequallyDisposedGeometricTolerance(
5771                    model.unequally_disposed_geometric_tolerance_arena.get(i.0),
5772                )
5773            }
5774            DerivedPropertySelectRef::Complex(i) => {
5775                DerivedPropertySelectRefView::Complex(model.complex_unit_arena.get(i.0))
5776            }
5777        }
5778    }
5779    pub fn entity_key(&self) -> EntityKey {
5780        match self {
5781            DerivedPropertySelectRef::ActionProperty(i) => EntityKey::ActionProperty(*i),
5782            DerivedPropertySelectRef::AngularLocation(i) => EntityKey::AngularLocation(*i),
5783            DerivedPropertySelectRef::AngularSize(i) => EntityKey::AngularSize(*i),
5784            DerivedPropertySelectRef::AngularityTolerance(i) => EntityKey::AngularityTolerance(*i),
5785            DerivedPropertySelectRef::CircularRunoutTolerance(i) => {
5786                EntityKey::CircularRunoutTolerance(*i)
5787            }
5788            DerivedPropertySelectRef::CoaxialityTolerance(i) => EntityKey::CoaxialityTolerance(*i),
5789            DerivedPropertySelectRef::ConcentricityTolerance(i) => {
5790                EntityKey::ConcentricityTolerance(*i)
5791            }
5792            DerivedPropertySelectRef::CylindricityTolerance(i) => {
5793                EntityKey::CylindricityTolerance(*i)
5794            }
5795            DerivedPropertySelectRef::DimensionalLocation(i) => EntityKey::DimensionalLocation(*i),
5796            DerivedPropertySelectRef::DimensionalLocationWithPath(i) => {
5797                EntityKey::DimensionalLocationWithPath(*i)
5798            }
5799            DerivedPropertySelectRef::DimensionalSize(i) => EntityKey::DimensionalSize(*i),
5800            DerivedPropertySelectRef::DimensionalSizeWithDatumFeature(i) => {
5801                EntityKey::DimensionalSizeWithDatumFeature(*i)
5802            }
5803            DerivedPropertySelectRef::DimensionalSizeWithPath(i) => {
5804                EntityKey::DimensionalSizeWithPath(*i)
5805            }
5806            DerivedPropertySelectRef::DirectedDimensionalLocation(i) => {
5807                EntityKey::DirectedDimensionalLocation(*i)
5808            }
5809            DerivedPropertySelectRef::FlatnessTolerance(i) => EntityKey::FlatnessTolerance(*i),
5810            DerivedPropertySelectRef::GeometricTolerance(i) => EntityKey::GeometricTolerance(*i),
5811            DerivedPropertySelectRef::GeometricToleranceWithDatumReference(i) => {
5812                EntityKey::GeometricToleranceWithDatumReference(*i)
5813            }
5814            DerivedPropertySelectRef::GeometricToleranceWithDefinedAreaUnit(i) => {
5815                EntityKey::GeometricToleranceWithDefinedAreaUnit(*i)
5816            }
5817            DerivedPropertySelectRef::GeometricToleranceWithDefinedUnit(i) => {
5818                EntityKey::GeometricToleranceWithDefinedUnit(*i)
5819            }
5820            DerivedPropertySelectRef::GeometricToleranceWithMaximumTolerance(i) => {
5821                EntityKey::GeometricToleranceWithMaximumTolerance(*i)
5822            }
5823            DerivedPropertySelectRef::GeometricToleranceWithModifiers(i) => {
5824                EntityKey::GeometricToleranceWithModifiers(*i)
5825            }
5826            DerivedPropertySelectRef::LineProfileTolerance(i) => {
5827                EntityKey::LineProfileTolerance(*i)
5828            }
5829            DerivedPropertySelectRef::ModifiedGeometricTolerance(i) => {
5830                EntityKey::ModifiedGeometricTolerance(*i)
5831            }
5832            DerivedPropertySelectRef::ParallelismTolerance(i) => {
5833                EntityKey::ParallelismTolerance(*i)
5834            }
5835            DerivedPropertySelectRef::PerpendicularityTolerance(i) => {
5836                EntityKey::PerpendicularityTolerance(*i)
5837            }
5838            DerivedPropertySelectRef::PositionTolerance(i) => EntityKey::PositionTolerance(*i),
5839            DerivedPropertySelectRef::ProductDefinitionShape(i) => {
5840                EntityKey::ProductDefinitionShape(*i)
5841            }
5842            DerivedPropertySelectRef::PropertyDefinition(i) => EntityKey::PropertyDefinition(*i),
5843            DerivedPropertySelectRef::ResourceProperty(i) => EntityKey::ResourceProperty(*i),
5844            DerivedPropertySelectRef::RoundnessTolerance(i) => EntityKey::RoundnessTolerance(*i),
5845            DerivedPropertySelectRef::StraightnessTolerance(i) => {
5846                EntityKey::StraightnessTolerance(*i)
5847            }
5848            DerivedPropertySelectRef::SurfaceProfileTolerance(i) => {
5849                EntityKey::SurfaceProfileTolerance(*i)
5850            }
5851            DerivedPropertySelectRef::SymmetryTolerance(i) => EntityKey::SymmetryTolerance(*i),
5852            DerivedPropertySelectRef::TotalRunoutTolerance(i) => {
5853                EntityKey::TotalRunoutTolerance(*i)
5854            }
5855            DerivedPropertySelectRef::UnequallyDisposedGeometricTolerance(i) => {
5856                EntityKey::UnequallyDisposedGeometricTolerance(*i)
5857            }
5858            DerivedPropertySelectRef::Complex(i) => EntityKey::ComplexUnit(*i),
5859        }
5860    }
5861}
5862
5863#[derive(Clone, Copy, Debug)]
5864pub enum DerivedUnitElementRefView<'m> {
5865    DerivedUnitElement(&'m DerivedUnitElement),
5866}
5867impl DerivedUnitElementRef {
5868    pub fn resolve<'m>(&self, model: &'m StepModel) -> DerivedUnitElementRefView<'m> {
5869        match self {
5870            DerivedUnitElementRef::DerivedUnitElement(i) => {
5871                DerivedUnitElementRefView::DerivedUnitElement(
5872                    model.derived_unit_element_arena.get(i.0),
5873                )
5874            }
5875        }
5876    }
5877    pub fn entity_key(&self) -> EntityKey {
5878        match self {
5879            DerivedUnitElementRef::DerivedUnitElement(i) => EntityKey::DerivedUnitElement(*i),
5880        }
5881    }
5882}
5883
5884#[derive(Clone, Copy, Debug)]
5885pub enum DesApllPointSelectRefView<'m> {
5886    ApllPoint(&'m ApllPoint),
5887    ApllPointWithSurface(&'m ApllPointWithSurface),
5888}
5889impl DesApllPointSelectRef {
5890    pub fn resolve<'m>(&self, model: &'m StepModel) -> DesApllPointSelectRefView<'m> {
5891        match self {
5892            DesApllPointSelectRef::ApllPoint(i) => {
5893                DesApllPointSelectRefView::ApllPoint(model.apll_point_arena.get(i.0))
5894            }
5895            DesApllPointSelectRef::ApllPointWithSurface(i) => {
5896                DesApllPointSelectRefView::ApllPointWithSurface(
5897                    model.apll_point_with_surface_arena.get(i.0),
5898                )
5899            }
5900        }
5901    }
5902    pub fn entity_key(&self) -> EntityKey {
5903        match self {
5904            DesApllPointSelectRef::ApllPoint(i) => EntityKey::ApllPoint(*i),
5905            DesApllPointSelectRef::ApllPointWithSurface(i) => EntityKey::ApllPointWithSurface(*i),
5906        }
5907    }
5908}
5909
5910#[derive(Clone, Copy, Debug)]
5911pub enum DescriptionAttributeSelectRefView<'m> {
5912    ActionRequestSolution(&'m ActionRequestSolution),
5913    AdvancedBrepShapeRepresentation(&'m AdvancedBrepShapeRepresentation),
5914    ApplicationContext(&'m ApplicationContext),
5915    ApprovalRole(&'m ApprovalRole),
5916    CharacterizedRepresentation(&'m CharacterizedRepresentation),
5917    ConfigurationDesign(&'m ConfigurationDesign),
5918    ConfigurationEffectivity(&'m ConfigurationEffectivity),
5919    ConstructiveGeometryRepresentation(&'m ConstructiveGeometryRepresentation),
5920    ContextDependentShapeRepresentation(&'m ContextDependentShapeRepresentation),
5921    DateRole(&'m DateRole),
5922    DateTimeRole(&'m DateTimeRole),
5923    DefinitionalRepresentation(&'m DefinitionalRepresentation),
5924    DraughtingModel(&'m DraughtingModel),
5925    Effectivity(&'m Effectivity),
5926    ExternalSource(&'m ExternalSource),
5927    GeometricallyBoundedSurfaceShapeRepresentation(
5928        &'m GeometricallyBoundedSurfaceShapeRepresentation,
5929    ),
5930    GeometricallyBoundedWireframeShapeRepresentation(
5931        &'m GeometricallyBoundedWireframeShapeRepresentation,
5932    ),
5933    ManifoldSurfaceShapeRepresentation(&'m ManifoldSurfaceShapeRepresentation),
5934    MechanicalDesignGeometricPresentationRepresentation(
5935        &'m MechanicalDesignGeometricPresentationRepresentation,
5936    ),
5937    MechanicalDesignPresentationRepresentationWithDraughting(
5938        &'m MechanicalDesignPresentationRepresentationWithDraughting,
5939    ),
5940    MechanicalDesignShadedPresentationRepresentation(
5941        &'m MechanicalDesignShadedPresentationRepresentation,
5942    ),
5943    OrganizationRole(&'m OrganizationRole),
5944    OrganizationalProject(&'m OrganizationalProject),
5945    PersonAndOrganization(&'m PersonAndOrganization),
5946    PersonAndOrganizationRole(&'m PersonAndOrganizationRole),
5947    PresentationArea(&'m PresentationArea),
5948    PresentationRepresentation(&'m PresentationRepresentation),
5949    PresentationView(&'m PresentationView),
5950    ProductDefinitionEffectivity(&'m ProductDefinitionEffectivity),
5951    PropertyDefinitionRepresentation(&'m PropertyDefinitionRepresentation),
5952    Representation(&'m Representation),
5953    ShapeDefinitionRepresentation(&'m ShapeDefinitionRepresentation),
5954    ShapeDimensionRepresentation(&'m ShapeDimensionRepresentation),
5955    ShapeRepresentation(&'m ShapeRepresentation),
5956    ShapeRepresentationWithParameters(&'m ShapeRepresentationWithParameters),
5957    SymbolRepresentation(&'m SymbolRepresentation),
5958    TessellatedShapeRepresentation(&'m TessellatedShapeRepresentation),
5959    Complex(&'m ComplexUnit),
5960}
5961impl DescriptionAttributeSelectRef {
5962    pub fn resolve<'m>(&self, model: &'m StepModel) -> DescriptionAttributeSelectRefView<'m> {
5963        match self {
5964            DescriptionAttributeSelectRef::ActionRequestSolution(i) => DescriptionAttributeSelectRefView::ActionRequestSolution(model.action_request_solution_arena.get(i.0)),
5965            DescriptionAttributeSelectRef::AdvancedBrepShapeRepresentation(i) => DescriptionAttributeSelectRefView::AdvancedBrepShapeRepresentation(model.advanced_brep_shape_representation_arena.get(i.0)),
5966            DescriptionAttributeSelectRef::ApplicationContext(i) => DescriptionAttributeSelectRefView::ApplicationContext(model.application_context_arena.get(i.0)),
5967            DescriptionAttributeSelectRef::ApprovalRole(i) => DescriptionAttributeSelectRefView::ApprovalRole(model.approval_role_arena.get(i.0)),
5968            DescriptionAttributeSelectRef::CharacterizedRepresentation(i) => DescriptionAttributeSelectRefView::CharacterizedRepresentation(model.characterized_representation_arena.get(i.0)),
5969            DescriptionAttributeSelectRef::ConfigurationDesign(i) => DescriptionAttributeSelectRefView::ConfigurationDesign(model.configuration_design_arena.get(i.0)),
5970            DescriptionAttributeSelectRef::ConfigurationEffectivity(i) => DescriptionAttributeSelectRefView::ConfigurationEffectivity(model.configuration_effectivity_arena.get(i.0)),
5971            DescriptionAttributeSelectRef::ConstructiveGeometryRepresentation(i) => DescriptionAttributeSelectRefView::ConstructiveGeometryRepresentation(model.constructive_geometry_representation_arena.get(i.0)),
5972            DescriptionAttributeSelectRef::ContextDependentShapeRepresentation(i) => DescriptionAttributeSelectRefView::ContextDependentShapeRepresentation(model.context_dependent_shape_representation_arena.get(i.0)),
5973            DescriptionAttributeSelectRef::DateRole(i) => DescriptionAttributeSelectRefView::DateRole(model.date_role_arena.get(i.0)),
5974            DescriptionAttributeSelectRef::DateTimeRole(i) => DescriptionAttributeSelectRefView::DateTimeRole(model.date_time_role_arena.get(i.0)),
5975            DescriptionAttributeSelectRef::DefinitionalRepresentation(i) => DescriptionAttributeSelectRefView::DefinitionalRepresentation(model.definitional_representation_arena.get(i.0)),
5976            DescriptionAttributeSelectRef::DraughtingModel(i) => DescriptionAttributeSelectRefView::DraughtingModel(model.draughting_model_arena.get(i.0)),
5977            DescriptionAttributeSelectRef::Effectivity(i) => DescriptionAttributeSelectRefView::Effectivity(model.effectivity_arena.get(i.0)),
5978            DescriptionAttributeSelectRef::ExternalSource(i) => DescriptionAttributeSelectRefView::ExternalSource(model.external_source_arena.get(i.0)),
5979            DescriptionAttributeSelectRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => DescriptionAttributeSelectRefView::GeometricallyBoundedSurfaceShapeRepresentation(model.geometrically_bounded_surface_shape_representation_arena.get(i.0)),
5980            DescriptionAttributeSelectRef::GeometricallyBoundedWireframeShapeRepresentation(i) => DescriptionAttributeSelectRefView::GeometricallyBoundedWireframeShapeRepresentation(model.geometrically_bounded_wireframe_shape_representation_arena.get(i.0)),
5981            DescriptionAttributeSelectRef::ManifoldSurfaceShapeRepresentation(i) => DescriptionAttributeSelectRefView::ManifoldSurfaceShapeRepresentation(model.manifold_surface_shape_representation_arena.get(i.0)),
5982            DescriptionAttributeSelectRef::MechanicalDesignGeometricPresentationRepresentation(i) => DescriptionAttributeSelectRefView::MechanicalDesignGeometricPresentationRepresentation(model.mechanical_design_geometric_presentation_representation_arena.get(i.0)),
5983            DescriptionAttributeSelectRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => DescriptionAttributeSelectRefView::MechanicalDesignPresentationRepresentationWithDraughting(model.mechanical_design_presentation_representation_with_draughting_arena.get(i.0)),
5984            DescriptionAttributeSelectRef::MechanicalDesignShadedPresentationRepresentation(i) => DescriptionAttributeSelectRefView::MechanicalDesignShadedPresentationRepresentation(model.mechanical_design_shaded_presentation_representation_arena.get(i.0)),
5985            DescriptionAttributeSelectRef::OrganizationRole(i) => DescriptionAttributeSelectRefView::OrganizationRole(model.organization_role_arena.get(i.0)),
5986            DescriptionAttributeSelectRef::OrganizationalProject(i) => DescriptionAttributeSelectRefView::OrganizationalProject(model.organizational_project_arena.get(i.0)),
5987            DescriptionAttributeSelectRef::PersonAndOrganization(i) => DescriptionAttributeSelectRefView::PersonAndOrganization(model.person_and_organization_arena.get(i.0)),
5988            DescriptionAttributeSelectRef::PersonAndOrganizationRole(i) => DescriptionAttributeSelectRefView::PersonAndOrganizationRole(model.person_and_organization_role_arena.get(i.0)),
5989            DescriptionAttributeSelectRef::PresentationArea(i) => DescriptionAttributeSelectRefView::PresentationArea(model.presentation_area_arena.get(i.0)),
5990            DescriptionAttributeSelectRef::PresentationRepresentation(i) => DescriptionAttributeSelectRefView::PresentationRepresentation(model.presentation_representation_arena.get(i.0)),
5991            DescriptionAttributeSelectRef::PresentationView(i) => DescriptionAttributeSelectRefView::PresentationView(model.presentation_view_arena.get(i.0)),
5992            DescriptionAttributeSelectRef::ProductDefinitionEffectivity(i) => DescriptionAttributeSelectRefView::ProductDefinitionEffectivity(model.product_definition_effectivity_arena.get(i.0)),
5993            DescriptionAttributeSelectRef::PropertyDefinitionRepresentation(i) => DescriptionAttributeSelectRefView::PropertyDefinitionRepresentation(model.property_definition_representation_arena.get(i.0)),
5994            DescriptionAttributeSelectRef::Representation(i) => DescriptionAttributeSelectRefView::Representation(model.representation_arena.get(i.0)),
5995            DescriptionAttributeSelectRef::ShapeDefinitionRepresentation(i) => DescriptionAttributeSelectRefView::ShapeDefinitionRepresentation(model.shape_definition_representation_arena.get(i.0)),
5996            DescriptionAttributeSelectRef::ShapeDimensionRepresentation(i) => DescriptionAttributeSelectRefView::ShapeDimensionRepresentation(model.shape_dimension_representation_arena.get(i.0)),
5997            DescriptionAttributeSelectRef::ShapeRepresentation(i) => DescriptionAttributeSelectRefView::ShapeRepresentation(model.shape_representation_arena.get(i.0)),
5998            DescriptionAttributeSelectRef::ShapeRepresentationWithParameters(i) => DescriptionAttributeSelectRefView::ShapeRepresentationWithParameters(model.shape_representation_with_parameters_arena.get(i.0)),
5999            DescriptionAttributeSelectRef::SymbolRepresentation(i) => DescriptionAttributeSelectRefView::SymbolRepresentation(model.symbol_representation_arena.get(i.0)),
6000            DescriptionAttributeSelectRef::TessellatedShapeRepresentation(i) => DescriptionAttributeSelectRefView::TessellatedShapeRepresentation(model.tessellated_shape_representation_arena.get(i.0)),
6001            DescriptionAttributeSelectRef::Complex(i) => DescriptionAttributeSelectRefView::Complex(model.complex_unit_arena.get(i.0)),
6002        }
6003    }
6004    pub fn entity_key(&self) -> EntityKey {
6005        match self {
6006            DescriptionAttributeSelectRef::ActionRequestSolution(i) => EntityKey::ActionRequestSolution(*i),
6007            DescriptionAttributeSelectRef::AdvancedBrepShapeRepresentation(i) => EntityKey::AdvancedBrepShapeRepresentation(*i),
6008            DescriptionAttributeSelectRef::ApplicationContext(i) => EntityKey::ApplicationContext(*i),
6009            DescriptionAttributeSelectRef::ApprovalRole(i) => EntityKey::ApprovalRole(*i),
6010            DescriptionAttributeSelectRef::CharacterizedRepresentation(i) => EntityKey::CharacterizedRepresentation(*i),
6011            DescriptionAttributeSelectRef::ConfigurationDesign(i) => EntityKey::ConfigurationDesign(*i),
6012            DescriptionAttributeSelectRef::ConfigurationEffectivity(i) => EntityKey::ConfigurationEffectivity(*i),
6013            DescriptionAttributeSelectRef::ConstructiveGeometryRepresentation(i) => EntityKey::ConstructiveGeometryRepresentation(*i),
6014            DescriptionAttributeSelectRef::ContextDependentShapeRepresentation(i) => EntityKey::ContextDependentShapeRepresentation(*i),
6015            DescriptionAttributeSelectRef::DateRole(i) => EntityKey::DateRole(*i),
6016            DescriptionAttributeSelectRef::DateTimeRole(i) => EntityKey::DateTimeRole(*i),
6017            DescriptionAttributeSelectRef::DefinitionalRepresentation(i) => EntityKey::DefinitionalRepresentation(*i),
6018            DescriptionAttributeSelectRef::DraughtingModel(i) => EntityKey::DraughtingModel(*i),
6019            DescriptionAttributeSelectRef::Effectivity(i) => EntityKey::Effectivity(*i),
6020            DescriptionAttributeSelectRef::ExternalSource(i) => EntityKey::ExternalSource(*i),
6021            DescriptionAttributeSelectRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => EntityKey::GeometricallyBoundedSurfaceShapeRepresentation(*i),
6022            DescriptionAttributeSelectRef::GeometricallyBoundedWireframeShapeRepresentation(i) => EntityKey::GeometricallyBoundedWireframeShapeRepresentation(*i),
6023            DescriptionAttributeSelectRef::ManifoldSurfaceShapeRepresentation(i) => EntityKey::ManifoldSurfaceShapeRepresentation(*i),
6024            DescriptionAttributeSelectRef::MechanicalDesignGeometricPresentationRepresentation(i) => EntityKey::MechanicalDesignGeometricPresentationRepresentation(*i),
6025            DescriptionAttributeSelectRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => EntityKey::MechanicalDesignPresentationRepresentationWithDraughting(*i),
6026            DescriptionAttributeSelectRef::MechanicalDesignShadedPresentationRepresentation(i) => EntityKey::MechanicalDesignShadedPresentationRepresentation(*i),
6027            DescriptionAttributeSelectRef::OrganizationRole(i) => EntityKey::OrganizationRole(*i),
6028            DescriptionAttributeSelectRef::OrganizationalProject(i) => EntityKey::OrganizationalProject(*i),
6029            DescriptionAttributeSelectRef::PersonAndOrganization(i) => EntityKey::PersonAndOrganization(*i),
6030            DescriptionAttributeSelectRef::PersonAndOrganizationRole(i) => EntityKey::PersonAndOrganizationRole(*i),
6031            DescriptionAttributeSelectRef::PresentationArea(i) => EntityKey::PresentationArea(*i),
6032            DescriptionAttributeSelectRef::PresentationRepresentation(i) => EntityKey::PresentationRepresentation(*i),
6033            DescriptionAttributeSelectRef::PresentationView(i) => EntityKey::PresentationView(*i),
6034            DescriptionAttributeSelectRef::ProductDefinitionEffectivity(i) => EntityKey::ProductDefinitionEffectivity(*i),
6035            DescriptionAttributeSelectRef::PropertyDefinitionRepresentation(i) => EntityKey::PropertyDefinitionRepresentation(*i),
6036            DescriptionAttributeSelectRef::Representation(i) => EntityKey::Representation(*i),
6037            DescriptionAttributeSelectRef::ShapeDefinitionRepresentation(i) => EntityKey::ShapeDefinitionRepresentation(*i),
6038            DescriptionAttributeSelectRef::ShapeDimensionRepresentation(i) => EntityKey::ShapeDimensionRepresentation(*i),
6039            DescriptionAttributeSelectRef::ShapeRepresentation(i) => EntityKey::ShapeRepresentation(*i),
6040            DescriptionAttributeSelectRef::ShapeRepresentationWithParameters(i) => EntityKey::ShapeRepresentationWithParameters(*i),
6041            DescriptionAttributeSelectRef::SymbolRepresentation(i) => EntityKey::SymbolRepresentation(*i),
6042            DescriptionAttributeSelectRef::TessellatedShapeRepresentation(i) => EntityKey::TessellatedShapeRepresentation(*i),
6043            DescriptionAttributeSelectRef::Complex(i) => EntityKey::ComplexUnit(*i),
6044        }
6045    }
6046}
6047
6048#[derive(Clone, Copy, Debug)]
6049pub enum DimensionalCharacteristicRefView<'m> {
6050    AngularLocation(&'m AngularLocation),
6051    AngularSize(&'m AngularSize),
6052    DimensionalLocation(&'m DimensionalLocation),
6053    DimensionalLocationWithPath(&'m DimensionalLocationWithPath),
6054    DimensionalSize(&'m DimensionalSize),
6055    DimensionalSizeWithDatumFeature(&'m DimensionalSizeWithDatumFeature),
6056    DimensionalSizeWithPath(&'m DimensionalSizeWithPath),
6057    DirectedDimensionalLocation(&'m DirectedDimensionalLocation),
6058    Complex(&'m ComplexUnit),
6059}
6060impl DimensionalCharacteristicRef {
6061    pub fn resolve<'m>(&self, model: &'m StepModel) -> DimensionalCharacteristicRefView<'m> {
6062        match self {
6063            DimensionalCharacteristicRef::AngularLocation(i) => {
6064                DimensionalCharacteristicRefView::AngularLocation(
6065                    model.angular_location_arena.get(i.0),
6066                )
6067            }
6068            DimensionalCharacteristicRef::AngularSize(i) => {
6069                DimensionalCharacteristicRefView::AngularSize(model.angular_size_arena.get(i.0))
6070            }
6071            DimensionalCharacteristicRef::DimensionalLocation(i) => {
6072                DimensionalCharacteristicRefView::DimensionalLocation(
6073                    model.dimensional_location_arena.get(i.0),
6074                )
6075            }
6076            DimensionalCharacteristicRef::DimensionalLocationWithPath(i) => {
6077                DimensionalCharacteristicRefView::DimensionalLocationWithPath(
6078                    model.dimensional_location_with_path_arena.get(i.0),
6079                )
6080            }
6081            DimensionalCharacteristicRef::DimensionalSize(i) => {
6082                DimensionalCharacteristicRefView::DimensionalSize(
6083                    model.dimensional_size_arena.get(i.0),
6084                )
6085            }
6086            DimensionalCharacteristicRef::DimensionalSizeWithDatumFeature(i) => {
6087                DimensionalCharacteristicRefView::DimensionalSizeWithDatumFeature(
6088                    model.dimensional_size_with_datum_feature_arena.get(i.0),
6089                )
6090            }
6091            DimensionalCharacteristicRef::DimensionalSizeWithPath(i) => {
6092                DimensionalCharacteristicRefView::DimensionalSizeWithPath(
6093                    model.dimensional_size_with_path_arena.get(i.0),
6094                )
6095            }
6096            DimensionalCharacteristicRef::DirectedDimensionalLocation(i) => {
6097                DimensionalCharacteristicRefView::DirectedDimensionalLocation(
6098                    model.directed_dimensional_location_arena.get(i.0),
6099                )
6100            }
6101            DimensionalCharacteristicRef::Complex(i) => {
6102                DimensionalCharacteristicRefView::Complex(model.complex_unit_arena.get(i.0))
6103            }
6104        }
6105    }
6106    pub fn entity_key(&self) -> EntityKey {
6107        match self {
6108            DimensionalCharacteristicRef::AngularLocation(i) => EntityKey::AngularLocation(*i),
6109            DimensionalCharacteristicRef::AngularSize(i) => EntityKey::AngularSize(*i),
6110            DimensionalCharacteristicRef::DimensionalLocation(i) => {
6111                EntityKey::DimensionalLocation(*i)
6112            }
6113            DimensionalCharacteristicRef::DimensionalLocationWithPath(i) => {
6114                EntityKey::DimensionalLocationWithPath(*i)
6115            }
6116            DimensionalCharacteristicRef::DimensionalSize(i) => EntityKey::DimensionalSize(*i),
6117            DimensionalCharacteristicRef::DimensionalSizeWithDatumFeature(i) => {
6118                EntityKey::DimensionalSizeWithDatumFeature(*i)
6119            }
6120            DimensionalCharacteristicRef::DimensionalSizeWithPath(i) => {
6121                EntityKey::DimensionalSizeWithPath(*i)
6122            }
6123            DimensionalCharacteristicRef::DirectedDimensionalLocation(i) => {
6124                EntityKey::DirectedDimensionalLocation(*i)
6125            }
6126            DimensionalCharacteristicRef::Complex(i) => EntityKey::ComplexUnit(*i),
6127        }
6128    }
6129}
6130
6131#[derive(Clone, Copy, Debug)]
6132pub enum DimensionalExponentsRefView<'m> {
6133    DimensionalExponents(&'m DimensionalExponents),
6134}
6135impl DimensionalExponentsRef {
6136    pub fn resolve<'m>(&self, model: &'m StepModel) -> DimensionalExponentsRefView<'m> {
6137        match self {
6138            DimensionalExponentsRef::DimensionalExponents(i) => {
6139                DimensionalExponentsRefView::DimensionalExponents(
6140                    model.dimensional_exponents_arena.get(i.0),
6141                )
6142            }
6143        }
6144    }
6145    pub fn entity_key(&self) -> EntityKey {
6146        match self {
6147            DimensionalExponentsRef::DimensionalExponents(i) => EntityKey::DimensionalExponents(*i),
6148        }
6149    }
6150}
6151
6152#[derive(Clone, Copy, Debug)]
6153pub enum DirectionRefView<'m> {
6154    Direction(&'m Direction),
6155    Complex(&'m ComplexUnit),
6156}
6157impl DirectionRef {
6158    pub fn resolve<'m>(&self, model: &'m StepModel) -> DirectionRefView<'m> {
6159        match self {
6160            DirectionRef::Direction(i) => {
6161                DirectionRefView::Direction(model.direction_arena.get(i.0))
6162            }
6163            DirectionRef::Complex(i) => {
6164                DirectionRefView::Complex(model.complex_unit_arena.get(i.0))
6165            }
6166        }
6167    }
6168    pub fn entity_key(&self) -> EntityKey {
6169        match self {
6170            DirectionRef::Direction(i) => EntityKey::Direction(*i),
6171            DirectionRef::Complex(i) => EntityKey::ComplexUnit(*i),
6172        }
6173    }
6174}
6175
6176#[derive(Clone, Copy, Debug)]
6177pub enum DocumentRefView<'m> {
6178    Document(&'m Document),
6179    DocumentFile(&'m DocumentFile),
6180    Complex(&'m ComplexUnit),
6181}
6182impl DocumentRef {
6183    pub fn resolve<'m>(&self, model: &'m StepModel) -> DocumentRefView<'m> {
6184        match self {
6185            DocumentRef::Document(i) => DocumentRefView::Document(model.document_arena.get(i.0)),
6186            DocumentRef::DocumentFile(i) => {
6187                DocumentRefView::DocumentFile(model.document_file_arena.get(i.0))
6188            }
6189            DocumentRef::Complex(i) => DocumentRefView::Complex(model.complex_unit_arena.get(i.0)),
6190        }
6191    }
6192    pub fn entity_key(&self) -> EntityKey {
6193        match self {
6194            DocumentRef::Document(i) => EntityKey::Document(*i),
6195            DocumentRef::DocumentFile(i) => EntityKey::DocumentFile(*i),
6196            DocumentRef::Complex(i) => EntityKey::ComplexUnit(*i),
6197        }
6198    }
6199}
6200
6201#[derive(Clone, Copy, Debug)]
6202pub enum DocumentReferenceItemRefView<'m> {
6203    ActionDirective(&'m ActionDirective),
6204    ActionMethod(&'m ActionMethod),
6205    ActionMethodRelationship(&'m ActionMethodRelationship),
6206    ActionProperty(&'m ActionProperty),
6207    ActionRelationship(&'m ActionRelationship),
6208    AdvancedBrepShapeRepresentation(&'m AdvancedBrepShapeRepresentation),
6209    AdvancedFace(&'m AdvancedFace),
6210    AllAroundShapeAspect(&'m AllAroundShapeAspect),
6211    AngularLocation(&'m AngularLocation),
6212    AngularSize(&'m AngularSize),
6213    AnnotationCurveOccurrence(&'m AnnotationCurveOccurrence),
6214    AnnotationFillAreaOccurrence(&'m AnnotationFillAreaOccurrence),
6215    AnnotationOccurrence(&'m AnnotationOccurrence),
6216    AnnotationPlaceholderLeaderLine(&'m AnnotationPlaceholderLeaderLine),
6217    AnnotationPlaceholderOccurrence(&'m AnnotationPlaceholderOccurrence),
6218    AnnotationPlaceholderOccurrenceWithLeaderLine(
6219        &'m AnnotationPlaceholderOccurrenceWithLeaderLine,
6220    ),
6221    AnnotationPlane(&'m AnnotationPlane),
6222    AnnotationSymbol(&'m AnnotationSymbol),
6223    AnnotationSymbolOccurrence(&'m AnnotationSymbolOccurrence),
6224    AnnotationText(&'m AnnotationText),
6225    AnnotationTextCharacter(&'m AnnotationTextCharacter),
6226    AnnotationTextOccurrence(&'m AnnotationTextOccurrence),
6227    AnnotationToAnnotationLeaderLine(&'m AnnotationToAnnotationLeaderLine),
6228    AnnotationToModelLeaderLine(&'m AnnotationToModelLeaderLine),
6229    ApllPoint(&'m ApllPoint),
6230    ApllPointWithSurface(&'m ApllPointWithSurface),
6231    AppliedDateAndTimeAssignment(&'m AppliedDateAndTimeAssignment),
6232    AppliedDocumentReference(&'m AppliedDocumentReference),
6233    AppliedExternalIdentificationAssignment(&'m AppliedExternalIdentificationAssignment),
6234    Approval(&'m Approval),
6235    ApprovalPersonOrganization(&'m ApprovalPersonOrganization),
6236    AssemblyComponentUsage(&'m AssemblyComponentUsage),
6237    AuxiliaryLeaderLine(&'m AuxiliaryLeaderLine),
6238    Axis1Placement(&'m Axis1Placement),
6239    Axis2Placement2d(&'m Axis2Placement2d),
6240    Axis2Placement3d(&'m Axis2Placement3d),
6241    BSplineCurve(&'m BSplineCurve),
6242    BSplineCurveWithKnots(&'m BSplineCurveWithKnots),
6243    BSplineSurface(&'m BSplineSurface),
6244    BSplineSurfaceWithKnots(&'m BSplineSurfaceWithKnots),
6245    BezierCurve(&'m BezierCurve),
6246    BezierSurface(&'m BezierSurface),
6247    BoundedCurve(&'m BoundedCurve),
6248    BoundedPcurve(&'m BoundedPcurve),
6249    BoundedSurface(&'m BoundedSurface),
6250    BoundedSurfaceCurve(&'m BoundedSurfaceCurve),
6251    BrepWithVoids(&'m BrepWithVoids),
6252    CameraImage(&'m CameraImage),
6253    CameraImage3dWithScale(&'m CameraImage3dWithScale),
6254    CameraModel(&'m CameraModel),
6255    CameraModelD3(&'m CameraModelD3),
6256    CameraModelD3MultiClipping(&'m CameraModelD3MultiClipping),
6257    CameraModelD3WithHlhsr(&'m CameraModelD3WithHlhsr),
6258    CartesianPoint(&'m CartesianPoint),
6259    CcDesignDateAndTimeAssignment(&'m CcDesignDateAndTimeAssignment),
6260    CentreOfSymmetry(&'m CentreOfSymmetry),
6261    Certification(&'m Certification),
6262    CharacterizedItemWithinRepresentation(&'m CharacterizedItemWithinRepresentation),
6263    CharacterizedObject(&'m CharacterizedObject),
6264    CharacterizedRepresentation(&'m CharacterizedRepresentation),
6265    Circle(&'m Circle),
6266    ClosedShell(&'m ClosedShell),
6267    CommonDatum(&'m CommonDatum),
6268    ComplexTriangulatedFace(&'m ComplexTriangulatedFace),
6269    ComplexTriangulatedSurfaceSet(&'m ComplexTriangulatedSurfaceSet),
6270    CompositeCurve(&'m CompositeCurve),
6271    CompositeGroupShapeAspect(&'m CompositeGroupShapeAspect),
6272    CompositeShapeAspect(&'m CompositeShapeAspect),
6273    CompositeText(&'m CompositeText),
6274    CompoundRepresentationItem(&'m CompoundRepresentationItem),
6275    ConfigurationDesign(&'m ConfigurationDesign),
6276    ConfigurationEffectivity(&'m ConfigurationEffectivity),
6277    ConfigurationItem(&'m ConfigurationItem),
6278    Conic(&'m Conic),
6279    ConicalSurface(&'m ConicalSurface),
6280    ConnectedFaceSet(&'m ConnectedFaceSet),
6281    ConstructiveGeometryRepresentation(&'m ConstructiveGeometryRepresentation),
6282    ConstructiveGeometryRepresentationRelationship(
6283        &'m ConstructiveGeometryRepresentationRelationship,
6284    ),
6285    ContextDependentOverRidingStyledItem(&'m ContextDependentOverRidingStyledItem),
6286    ContinuousShapeAspect(&'m ContinuousShapeAspect),
6287    Contract(&'m Contract),
6288    CoordinatesList(&'m CoordinatesList),
6289    Curve(&'m Curve),
6290    CylindricalSurface(&'m CylindricalSurface),
6291    DateAndTimeAssignment(&'m DateAndTimeAssignment),
6292    Datum(&'m Datum),
6293    DatumFeature(&'m DatumFeature),
6294    DatumReferenceCompartment(&'m DatumReferenceCompartment),
6295    DatumReferenceElement(&'m DatumReferenceElement),
6296    DatumSystem(&'m DatumSystem),
6297    DatumTarget(&'m DatumTarget),
6298    DefaultModelGeometricView(&'m DefaultModelGeometricView),
6299    DefinedCharacterGlyph(&'m DefinedCharacterGlyph),
6300    DefinedSymbol(&'m DefinedSymbol),
6301    DefinitionalRepresentation(&'m DefinitionalRepresentation),
6302    DefinitionalRepresentationRelationship(&'m DefinitionalRepresentationRelationship),
6303    DefinitionalRepresentationRelationshipWithSameContext(
6304        &'m DefinitionalRepresentationRelationshipWithSameContext,
6305    ),
6306    DegenerateToroidalSurface(&'m DegenerateToroidalSurface),
6307    DerivedShapeAspect(&'m DerivedShapeAspect),
6308    DescriptiveRepresentationItem(&'m DescriptiveRepresentationItem),
6309    DesignContext(&'m DesignContext),
6310    DimensionalLocation(&'m DimensionalLocation),
6311    DimensionalLocationWithPath(&'m DimensionalLocationWithPath),
6312    DimensionalSize(&'m DimensionalSize),
6313    DimensionalSizeWithDatumFeature(&'m DimensionalSizeWithDatumFeature),
6314    DimensionalSizeWithPath(&'m DimensionalSizeWithPath),
6315    DirectedDimensionalLocation(&'m DirectedDimensionalLocation),
6316    Direction(&'m Direction),
6317    DocumentFile(&'m DocumentFile),
6318    DraughtingAnnotationOccurrence(&'m DraughtingAnnotationOccurrence),
6319    DraughtingCallout(&'m DraughtingCallout),
6320    DraughtingModel(&'m DraughtingModel),
6321    Edge(&'m Edge),
6322    EdgeCurve(&'m EdgeCurve),
6323    EdgeLoop(&'m EdgeLoop),
6324    Effectivity(&'m Effectivity),
6325    ElementarySurface(&'m ElementarySurface),
6326    Ellipse(&'m Ellipse),
6327    ExternallyDefinedCharacterGlyph(&'m ExternallyDefinedCharacterGlyph),
6328    ExternallyDefinedCurveFont(&'m ExternallyDefinedCurveFont),
6329    ExternallyDefinedHatchStyle(&'m ExternallyDefinedHatchStyle),
6330    ExternallyDefinedItem(&'m ExternallyDefinedItem),
6331    ExternallyDefinedStyle(&'m ExternallyDefinedStyle),
6332    ExternallyDefinedSymbol(&'m ExternallyDefinedSymbol),
6333    ExternallyDefinedTextFont(&'m ExternallyDefinedTextFont),
6334    ExternallyDefinedTile(&'m ExternallyDefinedTile),
6335    ExternallyDefinedTileStyle(&'m ExternallyDefinedTileStyle),
6336    Face(&'m Face),
6337    FaceBound(&'m FaceBound),
6338    FaceOuterBound(&'m FaceOuterBound),
6339    FaceSurface(&'m FaceSurface),
6340    FeatureForDatumTargetRelationship(&'m FeatureForDatumTargetRelationship),
6341    FillAreaStyleHatching(&'m FillAreaStyleHatching),
6342    FillAreaStyleTileColouredRegion(&'m FillAreaStyleTileColouredRegion),
6343    FillAreaStyleTileCurveWithStyle(&'m FillAreaStyleTileCurveWithStyle),
6344    FillAreaStyleTileSymbolWithStyle(&'m FillAreaStyleTileSymbolWithStyle),
6345    FillAreaStyleTiles(&'m FillAreaStyleTiles),
6346    GeneralDatumReference(&'m GeneralDatumReference),
6347    GeneralProperty(&'m GeneralProperty),
6348    GeometricCurveSet(&'m GeometricCurveSet),
6349    GeometricRepresentationItem(&'m GeometricRepresentationItem),
6350    GeometricSet(&'m GeometricSet),
6351    GeometricallyBoundedSurfaceShapeRepresentation(
6352        &'m GeometricallyBoundedSurfaceShapeRepresentation,
6353    ),
6354    GeometricallyBoundedWireframeShapeRepresentation(
6355        &'m GeometricallyBoundedWireframeShapeRepresentation,
6356    ),
6357    Group(&'m Group),
6358    Hyperbola(&'m Hyperbola),
6359    IntegerRepresentationItem(&'m IntegerRepresentationItem),
6360    IntersectionCurve(&'m IntersectionCurve),
6361    LeaderCurve(&'m LeaderCurve),
6362    LeaderDirectedCallout(&'m LeaderDirectedCallout),
6363    LeaderTerminator(&'m LeaderTerminator),
6364    Line(&'m Line),
6365    Loop(&'m Loop),
6366    MakeFromUsageOption(&'m MakeFromUsageOption),
6367    ManifoldSolidBrep(&'m ManifoldSolidBrep),
6368    ManifoldSurfaceShapeRepresentation(&'m ManifoldSurfaceShapeRepresentation),
6369    MappedItem(&'m MappedItem),
6370    MeasureRepresentationItem(&'m MeasureRepresentationItem),
6371    MechanicalDesignAndDraughtingRelationship(&'m MechanicalDesignAndDraughtingRelationship),
6372    MechanicalDesignGeometricPresentationRepresentation(
6373        &'m MechanicalDesignGeometricPresentationRepresentation,
6374    ),
6375    MechanicalDesignPresentationRepresentationWithDraughting(
6376        &'m MechanicalDesignPresentationRepresentationWithDraughting,
6377    ),
6378    MechanicalDesignShadedPresentationRepresentation(
6379        &'m MechanicalDesignShadedPresentationRepresentation,
6380    ),
6381    ModelGeometricView(&'m ModelGeometricView),
6382    NextAssemblyUsageOccurrence(&'m NextAssemblyUsageOccurrence),
6383    OffsetSurface(&'m OffsetSurface),
6384    OneDirectionRepeatFactor(&'m OneDirectionRepeatFactor),
6385    OpenShell(&'m OpenShell),
6386    Organization(&'m Organization),
6387    OrganizationRelationship(&'m OrganizationRelationship),
6388    OrganizationalAddress(&'m OrganizationalAddress),
6389    OrganizationalProject(&'m OrganizationalProject),
6390    OrganizationalProjectRelationship(&'m OrganizationalProjectRelationship),
6391    OrientedClosedShell(&'m OrientedClosedShell),
6392    OrientedEdge(&'m OrientedEdge),
6393    OverRidingStyledItem(&'m OverRidingStyledItem),
6394    Path(&'m Path),
6395    Pcurve(&'m Pcurve),
6396    Person(&'m Person),
6397    PersonAndOrganization(&'m PersonAndOrganization),
6398    PersonAndOrganizationAddress(&'m PersonAndOrganizationAddress),
6399    PlacedDatumTargetFeature(&'m PlacedDatumTargetFeature),
6400    Placement(&'m Placement),
6401    PlanarBox(&'m PlanarBox),
6402    PlanarExtent(&'m PlanarExtent),
6403    Plane(&'m Plane),
6404    Point(&'m Point),
6405    PolyLoop(&'m PolyLoop),
6406    Polyline(&'m Polyline),
6407    PresentationArea(&'m PresentationArea),
6408    PresentationRepresentation(&'m PresentationRepresentation),
6409    PresentationView(&'m PresentationView),
6410    Product(&'m Product),
6411    ProductCategory(&'m ProductCategory),
6412    ProductConcept(&'m ProductConcept),
6413    ProductConceptFeatureCategory(&'m ProductConceptFeatureCategory),
6414    ProductDefinition(&'m ProductDefinition),
6415    ProductDefinitionContext(&'m ProductDefinitionContext),
6416    ProductDefinitionEffectivity(&'m ProductDefinitionEffectivity),
6417    ProductDefinitionFormation(&'m ProductDefinitionFormation),
6418    ProductDefinitionFormationWithSpecifiedSource(
6419        &'m ProductDefinitionFormationWithSpecifiedSource,
6420    ),
6421    ProductDefinitionRelationship(&'m ProductDefinitionRelationship),
6422    ProductDefinitionShape(&'m ProductDefinitionShape),
6423    ProductDefinitionUsage(&'m ProductDefinitionUsage),
6424    ProductDefinitionWithAssociatedDocuments(&'m ProductDefinitionWithAssociatedDocuments),
6425    ProductRelatedProductCategory(&'m ProductRelatedProductCategory),
6426    PropertyDefinition(&'m PropertyDefinition),
6427    PropertyDefinitionRepresentation(&'m PropertyDefinitionRepresentation),
6428    QualifiedRepresentationItem(&'m QualifiedRepresentationItem),
6429    QuasiUniformCurve(&'m QuasiUniformCurve),
6430    QuasiUniformSurface(&'m QuasiUniformSurface),
6431    RationalBSplineCurve(&'m RationalBSplineCurve),
6432    RationalBSplineSurface(&'m RationalBSplineSurface),
6433    RealRepresentationItem(&'m RealRepresentationItem),
6434    RepositionedTessellatedItem(&'m RepositionedTessellatedItem),
6435    Representation(&'m Representation),
6436    RepresentationItem(&'m RepresentationItem),
6437    RepresentationRelationship(&'m RepresentationRelationship),
6438    RepresentationRelationshipWithTransformation(&'m RepresentationRelationshipWithTransformation),
6439    ResourceRequirementType(&'m ResourceRequirementType),
6440    SeamCurve(&'m SeamCurve),
6441    SecurityClassification(&'m SecurityClassification),
6442    ShapeAspect(&'m ShapeAspect),
6443    ShapeAspectAssociativity(&'m ShapeAspectAssociativity),
6444    ShapeAspectDerivingRelationship(&'m ShapeAspectDerivingRelationship),
6445    ShapeAspectRelationship(&'m ShapeAspectRelationship),
6446    ShapeDefinitionRepresentation(&'m ShapeDefinitionRepresentation),
6447    ShapeDimensionRepresentation(&'m ShapeDimensionRepresentation),
6448    ShapeRepresentation(&'m ShapeRepresentation),
6449    ShapeRepresentationRelationship(&'m ShapeRepresentationRelationship),
6450    ShapeRepresentationWithParameters(&'m ShapeRepresentationWithParameters),
6451    ShellBasedSurfaceModel(&'m ShellBasedSurfaceModel),
6452    SolidModel(&'m SolidModel),
6453    SphericalSurface(&'m SphericalSurface),
6454    StateObserved(&'m StateObserved),
6455    StateType(&'m StateType),
6456    StyledItem(&'m StyledItem),
6457    Surface(&'m Surface),
6458    SurfaceCurve(&'m SurfaceCurve),
6459    SurfaceOfLinearExtrusion(&'m SurfaceOfLinearExtrusion),
6460    SurfaceOfRevolution(&'m SurfaceOfRevolution),
6461    SweptSurface(&'m SweptSurface),
6462    SymbolRepresentation(&'m SymbolRepresentation),
6463    SymbolTarget(&'m SymbolTarget),
6464    TerminatorSymbol(&'m TerminatorSymbol),
6465    TessellatedAnnotationOccurrence(&'m TessellatedAnnotationOccurrence),
6466    TessellatedCurveSet(&'m TessellatedCurveSet),
6467    TessellatedFace(&'m TessellatedFace),
6468    TessellatedGeometricSet(&'m TessellatedGeometricSet),
6469    TessellatedItem(&'m TessellatedItem),
6470    TessellatedShapeRepresentation(&'m TessellatedShapeRepresentation),
6471    TessellatedShell(&'m TessellatedShell),
6472    TessellatedSolid(&'m TessellatedSolid),
6473    TessellatedStructuredItem(&'m TessellatedStructuredItem),
6474    TessellatedSurfaceSet(&'m TessellatedSurfaceSet),
6475    TextLiteral(&'m TextLiteral),
6476    ToleranceZone(&'m ToleranceZone),
6477    ToleranceZoneWithDatum(&'m ToleranceZoneWithDatum),
6478    TopologicalRepresentationItem(&'m TopologicalRepresentationItem),
6479    ToroidalSurface(&'m ToroidalSurface),
6480    TrimmedCurve(&'m TrimmedCurve),
6481    TwoDirectionRepeatFactor(&'m TwoDirectionRepeatFactor),
6482    UniformCurve(&'m UniformCurve),
6483    UniformSurface(&'m UniformSurface),
6484    ValueRepresentationItem(&'m ValueRepresentationItem),
6485    Vector(&'m Vector),
6486    VersionedActionRequest(&'m VersionedActionRequest),
6487    Vertex(&'m Vertex),
6488    VertexLoop(&'m VertexLoop),
6489    VertexPoint(&'m VertexPoint),
6490    VertexShell(&'m VertexShell),
6491    WireShell(&'m WireShell),
6492    Complex(&'m ComplexUnit),
6493}
6494impl DocumentReferenceItemRef {
6495    pub fn resolve<'m>(&self, model: &'m StepModel) -> DocumentReferenceItemRefView<'m> {
6496        match self {
6497            DocumentReferenceItemRef::ActionDirective(i) => DocumentReferenceItemRefView::ActionDirective(model.action_directive_arena.get(i.0)),
6498            DocumentReferenceItemRef::ActionMethod(i) => DocumentReferenceItemRefView::ActionMethod(model.action_method_arena.get(i.0)),
6499            DocumentReferenceItemRef::ActionMethodRelationship(i) => DocumentReferenceItemRefView::ActionMethodRelationship(model.action_method_relationship_arena.get(i.0)),
6500            DocumentReferenceItemRef::ActionProperty(i) => DocumentReferenceItemRefView::ActionProperty(model.action_property_arena.get(i.0)),
6501            DocumentReferenceItemRef::ActionRelationship(i) => DocumentReferenceItemRefView::ActionRelationship(model.action_relationship_arena.get(i.0)),
6502            DocumentReferenceItemRef::AdvancedBrepShapeRepresentation(i) => DocumentReferenceItemRefView::AdvancedBrepShapeRepresentation(model.advanced_brep_shape_representation_arena.get(i.0)),
6503            DocumentReferenceItemRef::AdvancedFace(i) => DocumentReferenceItemRefView::AdvancedFace(model.advanced_face_arena.get(i.0)),
6504            DocumentReferenceItemRef::AllAroundShapeAspect(i) => DocumentReferenceItemRefView::AllAroundShapeAspect(model.all_around_shape_aspect_arena.get(i.0)),
6505            DocumentReferenceItemRef::AngularLocation(i) => DocumentReferenceItemRefView::AngularLocation(model.angular_location_arena.get(i.0)),
6506            DocumentReferenceItemRef::AngularSize(i) => DocumentReferenceItemRefView::AngularSize(model.angular_size_arena.get(i.0)),
6507            DocumentReferenceItemRef::AnnotationCurveOccurrence(i) => DocumentReferenceItemRefView::AnnotationCurveOccurrence(model.annotation_curve_occurrence_arena.get(i.0)),
6508            DocumentReferenceItemRef::AnnotationFillAreaOccurrence(i) => DocumentReferenceItemRefView::AnnotationFillAreaOccurrence(model.annotation_fill_area_occurrence_arena.get(i.0)),
6509            DocumentReferenceItemRef::AnnotationOccurrence(i) => DocumentReferenceItemRefView::AnnotationOccurrence(model.annotation_occurrence_arena.get(i.0)),
6510            DocumentReferenceItemRef::AnnotationPlaceholderLeaderLine(i) => DocumentReferenceItemRefView::AnnotationPlaceholderLeaderLine(model.annotation_placeholder_leader_line_arena.get(i.0)),
6511            DocumentReferenceItemRef::AnnotationPlaceholderOccurrence(i) => DocumentReferenceItemRefView::AnnotationPlaceholderOccurrence(model.annotation_placeholder_occurrence_arena.get(i.0)),
6512            DocumentReferenceItemRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => DocumentReferenceItemRefView::AnnotationPlaceholderOccurrenceWithLeaderLine(model.annotation_placeholder_occurrence_with_leader_line_arena.get(i.0)),
6513            DocumentReferenceItemRef::AnnotationPlane(i) => DocumentReferenceItemRefView::AnnotationPlane(model.annotation_plane_arena.get(i.0)),
6514            DocumentReferenceItemRef::AnnotationSymbol(i) => DocumentReferenceItemRefView::AnnotationSymbol(model.annotation_symbol_arena.get(i.0)),
6515            DocumentReferenceItemRef::AnnotationSymbolOccurrence(i) => DocumentReferenceItemRefView::AnnotationSymbolOccurrence(model.annotation_symbol_occurrence_arena.get(i.0)),
6516            DocumentReferenceItemRef::AnnotationText(i) => DocumentReferenceItemRefView::AnnotationText(model.annotation_text_arena.get(i.0)),
6517            DocumentReferenceItemRef::AnnotationTextCharacter(i) => DocumentReferenceItemRefView::AnnotationTextCharacter(model.annotation_text_character_arena.get(i.0)),
6518            DocumentReferenceItemRef::AnnotationTextOccurrence(i) => DocumentReferenceItemRefView::AnnotationTextOccurrence(model.annotation_text_occurrence_arena.get(i.0)),
6519            DocumentReferenceItemRef::AnnotationToAnnotationLeaderLine(i) => DocumentReferenceItemRefView::AnnotationToAnnotationLeaderLine(model.annotation_to_annotation_leader_line_arena.get(i.0)),
6520            DocumentReferenceItemRef::AnnotationToModelLeaderLine(i) => DocumentReferenceItemRefView::AnnotationToModelLeaderLine(model.annotation_to_model_leader_line_arena.get(i.0)),
6521            DocumentReferenceItemRef::ApllPoint(i) => DocumentReferenceItemRefView::ApllPoint(model.apll_point_arena.get(i.0)),
6522            DocumentReferenceItemRef::ApllPointWithSurface(i) => DocumentReferenceItemRefView::ApllPointWithSurface(model.apll_point_with_surface_arena.get(i.0)),
6523            DocumentReferenceItemRef::AppliedDateAndTimeAssignment(i) => DocumentReferenceItemRefView::AppliedDateAndTimeAssignment(model.applied_date_and_time_assignment_arena.get(i.0)),
6524            DocumentReferenceItemRef::AppliedDocumentReference(i) => DocumentReferenceItemRefView::AppliedDocumentReference(model.applied_document_reference_arena.get(i.0)),
6525            DocumentReferenceItemRef::AppliedExternalIdentificationAssignment(i) => DocumentReferenceItemRefView::AppliedExternalIdentificationAssignment(model.applied_external_identification_assignment_arena.get(i.0)),
6526            DocumentReferenceItemRef::Approval(i) => DocumentReferenceItemRefView::Approval(model.approval_arena.get(i.0)),
6527            DocumentReferenceItemRef::ApprovalPersonOrganization(i) => DocumentReferenceItemRefView::ApprovalPersonOrganization(model.approval_person_organization_arena.get(i.0)),
6528            DocumentReferenceItemRef::AssemblyComponentUsage(i) => DocumentReferenceItemRefView::AssemblyComponentUsage(model.assembly_component_usage_arena.get(i.0)),
6529            DocumentReferenceItemRef::AuxiliaryLeaderLine(i) => DocumentReferenceItemRefView::AuxiliaryLeaderLine(model.auxiliary_leader_line_arena.get(i.0)),
6530            DocumentReferenceItemRef::Axis1Placement(i) => DocumentReferenceItemRefView::Axis1Placement(model.axis1_placement_arena.get(i.0)),
6531            DocumentReferenceItemRef::Axis2Placement2d(i) => DocumentReferenceItemRefView::Axis2Placement2d(model.axis2_placement2d_arena.get(i.0)),
6532            DocumentReferenceItemRef::Axis2Placement3d(i) => DocumentReferenceItemRefView::Axis2Placement3d(model.axis2_placement3d_arena.get(i.0)),
6533            DocumentReferenceItemRef::BSplineCurve(i) => DocumentReferenceItemRefView::BSplineCurve(model.b_spline_curve_arena.get(i.0)),
6534            DocumentReferenceItemRef::BSplineCurveWithKnots(i) => DocumentReferenceItemRefView::BSplineCurveWithKnots(model.b_spline_curve_with_knots_arena.get(i.0)),
6535            DocumentReferenceItemRef::BSplineSurface(i) => DocumentReferenceItemRefView::BSplineSurface(model.b_spline_surface_arena.get(i.0)),
6536            DocumentReferenceItemRef::BSplineSurfaceWithKnots(i) => DocumentReferenceItemRefView::BSplineSurfaceWithKnots(model.b_spline_surface_with_knots_arena.get(i.0)),
6537            DocumentReferenceItemRef::BezierCurve(i) => DocumentReferenceItemRefView::BezierCurve(model.bezier_curve_arena.get(i.0)),
6538            DocumentReferenceItemRef::BezierSurface(i) => DocumentReferenceItemRefView::BezierSurface(model.bezier_surface_arena.get(i.0)),
6539            DocumentReferenceItemRef::BoundedCurve(i) => DocumentReferenceItemRefView::BoundedCurve(model.bounded_curve_arena.get(i.0)),
6540            DocumentReferenceItemRef::BoundedPcurve(i) => DocumentReferenceItemRefView::BoundedPcurve(model.bounded_pcurve_arena.get(i.0)),
6541            DocumentReferenceItemRef::BoundedSurface(i) => DocumentReferenceItemRefView::BoundedSurface(model.bounded_surface_arena.get(i.0)),
6542            DocumentReferenceItemRef::BoundedSurfaceCurve(i) => DocumentReferenceItemRefView::BoundedSurfaceCurve(model.bounded_surface_curve_arena.get(i.0)),
6543            DocumentReferenceItemRef::BrepWithVoids(i) => DocumentReferenceItemRefView::BrepWithVoids(model.brep_with_voids_arena.get(i.0)),
6544            DocumentReferenceItemRef::CameraImage(i) => DocumentReferenceItemRefView::CameraImage(model.camera_image_arena.get(i.0)),
6545            DocumentReferenceItemRef::CameraImage3dWithScale(i) => DocumentReferenceItemRefView::CameraImage3dWithScale(model.camera_image3d_with_scale_arena.get(i.0)),
6546            DocumentReferenceItemRef::CameraModel(i) => DocumentReferenceItemRefView::CameraModel(model.camera_model_arena.get(i.0)),
6547            DocumentReferenceItemRef::CameraModelD3(i) => DocumentReferenceItemRefView::CameraModelD3(model.camera_model_d3_arena.get(i.0)),
6548            DocumentReferenceItemRef::CameraModelD3MultiClipping(i) => DocumentReferenceItemRefView::CameraModelD3MultiClipping(model.camera_model_d3_multi_clipping_arena.get(i.0)),
6549            DocumentReferenceItemRef::CameraModelD3WithHlhsr(i) => DocumentReferenceItemRefView::CameraModelD3WithHlhsr(model.camera_model_d3_with_hlhsr_arena.get(i.0)),
6550            DocumentReferenceItemRef::CartesianPoint(i) => DocumentReferenceItemRefView::CartesianPoint(model.cartesian_point_arena.get(i.0)),
6551            DocumentReferenceItemRef::CcDesignDateAndTimeAssignment(i) => DocumentReferenceItemRefView::CcDesignDateAndTimeAssignment(model.cc_design_date_and_time_assignment_arena.get(i.0)),
6552            DocumentReferenceItemRef::CentreOfSymmetry(i) => DocumentReferenceItemRefView::CentreOfSymmetry(model.centre_of_symmetry_arena.get(i.0)),
6553            DocumentReferenceItemRef::Certification(i) => DocumentReferenceItemRefView::Certification(model.certification_arena.get(i.0)),
6554            DocumentReferenceItemRef::CharacterizedItemWithinRepresentation(i) => DocumentReferenceItemRefView::CharacterizedItemWithinRepresentation(model.characterized_item_within_representation_arena.get(i.0)),
6555            DocumentReferenceItemRef::CharacterizedObject(i) => DocumentReferenceItemRefView::CharacterizedObject(model.characterized_object_arena.get(i.0)),
6556            DocumentReferenceItemRef::CharacterizedRepresentation(i) => DocumentReferenceItemRefView::CharacterizedRepresentation(model.characterized_representation_arena.get(i.0)),
6557            DocumentReferenceItemRef::Circle(i) => DocumentReferenceItemRefView::Circle(model.circle_arena.get(i.0)),
6558            DocumentReferenceItemRef::ClosedShell(i) => DocumentReferenceItemRefView::ClosedShell(model.closed_shell_arena.get(i.0)),
6559            DocumentReferenceItemRef::CommonDatum(i) => DocumentReferenceItemRefView::CommonDatum(model.common_datum_arena.get(i.0)),
6560            DocumentReferenceItemRef::ComplexTriangulatedFace(i) => DocumentReferenceItemRefView::ComplexTriangulatedFace(model.complex_triangulated_face_arena.get(i.0)),
6561            DocumentReferenceItemRef::ComplexTriangulatedSurfaceSet(i) => DocumentReferenceItemRefView::ComplexTriangulatedSurfaceSet(model.complex_triangulated_surface_set_arena.get(i.0)),
6562            DocumentReferenceItemRef::CompositeCurve(i) => DocumentReferenceItemRefView::CompositeCurve(model.composite_curve_arena.get(i.0)),
6563            DocumentReferenceItemRef::CompositeGroupShapeAspect(i) => DocumentReferenceItemRefView::CompositeGroupShapeAspect(model.composite_group_shape_aspect_arena.get(i.0)),
6564            DocumentReferenceItemRef::CompositeShapeAspect(i) => DocumentReferenceItemRefView::CompositeShapeAspect(model.composite_shape_aspect_arena.get(i.0)),
6565            DocumentReferenceItemRef::CompositeText(i) => DocumentReferenceItemRefView::CompositeText(model.composite_text_arena.get(i.0)),
6566            DocumentReferenceItemRef::CompoundRepresentationItem(i) => DocumentReferenceItemRefView::CompoundRepresentationItem(model.compound_representation_item_arena.get(i.0)),
6567            DocumentReferenceItemRef::ConfigurationDesign(i) => DocumentReferenceItemRefView::ConfigurationDesign(model.configuration_design_arena.get(i.0)),
6568            DocumentReferenceItemRef::ConfigurationEffectivity(i) => DocumentReferenceItemRefView::ConfigurationEffectivity(model.configuration_effectivity_arena.get(i.0)),
6569            DocumentReferenceItemRef::ConfigurationItem(i) => DocumentReferenceItemRefView::ConfigurationItem(model.configuration_item_arena.get(i.0)),
6570            DocumentReferenceItemRef::Conic(i) => DocumentReferenceItemRefView::Conic(model.conic_arena.get(i.0)),
6571            DocumentReferenceItemRef::ConicalSurface(i) => DocumentReferenceItemRefView::ConicalSurface(model.conical_surface_arena.get(i.0)),
6572            DocumentReferenceItemRef::ConnectedFaceSet(i) => DocumentReferenceItemRefView::ConnectedFaceSet(model.connected_face_set_arena.get(i.0)),
6573            DocumentReferenceItemRef::ConstructiveGeometryRepresentation(i) => DocumentReferenceItemRefView::ConstructiveGeometryRepresentation(model.constructive_geometry_representation_arena.get(i.0)),
6574            DocumentReferenceItemRef::ConstructiveGeometryRepresentationRelationship(i) => DocumentReferenceItemRefView::ConstructiveGeometryRepresentationRelationship(model.constructive_geometry_representation_relationship_arena.get(i.0)),
6575            DocumentReferenceItemRef::ContextDependentOverRidingStyledItem(i) => DocumentReferenceItemRefView::ContextDependentOverRidingStyledItem(model.context_dependent_over_riding_styled_item_arena.get(i.0)),
6576            DocumentReferenceItemRef::ContinuousShapeAspect(i) => DocumentReferenceItemRefView::ContinuousShapeAspect(model.continuous_shape_aspect_arena.get(i.0)),
6577            DocumentReferenceItemRef::Contract(i) => DocumentReferenceItemRefView::Contract(model.contract_arena.get(i.0)),
6578            DocumentReferenceItemRef::CoordinatesList(i) => DocumentReferenceItemRefView::CoordinatesList(model.coordinates_list_arena.get(i.0)),
6579            DocumentReferenceItemRef::Curve(i) => DocumentReferenceItemRefView::Curve(model.curve_arena.get(i.0)),
6580            DocumentReferenceItemRef::CylindricalSurface(i) => DocumentReferenceItemRefView::CylindricalSurface(model.cylindrical_surface_arena.get(i.0)),
6581            DocumentReferenceItemRef::DateAndTimeAssignment(i) => DocumentReferenceItemRefView::DateAndTimeAssignment(model.date_and_time_assignment_arena.get(i.0)),
6582            DocumentReferenceItemRef::Datum(i) => DocumentReferenceItemRefView::Datum(model.datum_arena.get(i.0)),
6583            DocumentReferenceItemRef::DatumFeature(i) => DocumentReferenceItemRefView::DatumFeature(model.datum_feature_arena.get(i.0)),
6584            DocumentReferenceItemRef::DatumReferenceCompartment(i) => DocumentReferenceItemRefView::DatumReferenceCompartment(model.datum_reference_compartment_arena.get(i.0)),
6585            DocumentReferenceItemRef::DatumReferenceElement(i) => DocumentReferenceItemRefView::DatumReferenceElement(model.datum_reference_element_arena.get(i.0)),
6586            DocumentReferenceItemRef::DatumSystem(i) => DocumentReferenceItemRefView::DatumSystem(model.datum_system_arena.get(i.0)),
6587            DocumentReferenceItemRef::DatumTarget(i) => DocumentReferenceItemRefView::DatumTarget(model.datum_target_arena.get(i.0)),
6588            DocumentReferenceItemRef::DefaultModelGeometricView(i) => DocumentReferenceItemRefView::DefaultModelGeometricView(model.default_model_geometric_view_arena.get(i.0)),
6589            DocumentReferenceItemRef::DefinedCharacterGlyph(i) => DocumentReferenceItemRefView::DefinedCharacterGlyph(model.defined_character_glyph_arena.get(i.0)),
6590            DocumentReferenceItemRef::DefinedSymbol(i) => DocumentReferenceItemRefView::DefinedSymbol(model.defined_symbol_arena.get(i.0)),
6591            DocumentReferenceItemRef::DefinitionalRepresentation(i) => DocumentReferenceItemRefView::DefinitionalRepresentation(model.definitional_representation_arena.get(i.0)),
6592            DocumentReferenceItemRef::DefinitionalRepresentationRelationship(i) => DocumentReferenceItemRefView::DefinitionalRepresentationRelationship(model.definitional_representation_relationship_arena.get(i.0)),
6593            DocumentReferenceItemRef::DefinitionalRepresentationRelationshipWithSameContext(i) => DocumentReferenceItemRefView::DefinitionalRepresentationRelationshipWithSameContext(model.definitional_representation_relationship_with_same_context_arena.get(i.0)),
6594            DocumentReferenceItemRef::DegenerateToroidalSurface(i) => DocumentReferenceItemRefView::DegenerateToroidalSurface(model.degenerate_toroidal_surface_arena.get(i.0)),
6595            DocumentReferenceItemRef::DerivedShapeAspect(i) => DocumentReferenceItemRefView::DerivedShapeAspect(model.derived_shape_aspect_arena.get(i.0)),
6596            DocumentReferenceItemRef::DescriptiveRepresentationItem(i) => DocumentReferenceItemRefView::DescriptiveRepresentationItem(model.descriptive_representation_item_arena.get(i.0)),
6597            DocumentReferenceItemRef::DesignContext(i) => DocumentReferenceItemRefView::DesignContext(model.design_context_arena.get(i.0)),
6598            DocumentReferenceItemRef::DimensionalLocation(i) => DocumentReferenceItemRefView::DimensionalLocation(model.dimensional_location_arena.get(i.0)),
6599            DocumentReferenceItemRef::DimensionalLocationWithPath(i) => DocumentReferenceItemRefView::DimensionalLocationWithPath(model.dimensional_location_with_path_arena.get(i.0)),
6600            DocumentReferenceItemRef::DimensionalSize(i) => DocumentReferenceItemRefView::DimensionalSize(model.dimensional_size_arena.get(i.0)),
6601            DocumentReferenceItemRef::DimensionalSizeWithDatumFeature(i) => DocumentReferenceItemRefView::DimensionalSizeWithDatumFeature(model.dimensional_size_with_datum_feature_arena.get(i.0)),
6602            DocumentReferenceItemRef::DimensionalSizeWithPath(i) => DocumentReferenceItemRefView::DimensionalSizeWithPath(model.dimensional_size_with_path_arena.get(i.0)),
6603            DocumentReferenceItemRef::DirectedDimensionalLocation(i) => DocumentReferenceItemRefView::DirectedDimensionalLocation(model.directed_dimensional_location_arena.get(i.0)),
6604            DocumentReferenceItemRef::Direction(i) => DocumentReferenceItemRefView::Direction(model.direction_arena.get(i.0)),
6605            DocumentReferenceItemRef::DocumentFile(i) => DocumentReferenceItemRefView::DocumentFile(model.document_file_arena.get(i.0)),
6606            DocumentReferenceItemRef::DraughtingAnnotationOccurrence(i) => DocumentReferenceItemRefView::DraughtingAnnotationOccurrence(model.draughting_annotation_occurrence_arena.get(i.0)),
6607            DocumentReferenceItemRef::DraughtingCallout(i) => DocumentReferenceItemRefView::DraughtingCallout(model.draughting_callout_arena.get(i.0)),
6608            DocumentReferenceItemRef::DraughtingModel(i) => DocumentReferenceItemRefView::DraughtingModel(model.draughting_model_arena.get(i.0)),
6609            DocumentReferenceItemRef::Edge(i) => DocumentReferenceItemRefView::Edge(model.edge_arena.get(i.0)),
6610            DocumentReferenceItemRef::EdgeCurve(i) => DocumentReferenceItemRefView::EdgeCurve(model.edge_curve_arena.get(i.0)),
6611            DocumentReferenceItemRef::EdgeLoop(i) => DocumentReferenceItemRefView::EdgeLoop(model.edge_loop_arena.get(i.0)),
6612            DocumentReferenceItemRef::Effectivity(i) => DocumentReferenceItemRefView::Effectivity(model.effectivity_arena.get(i.0)),
6613            DocumentReferenceItemRef::ElementarySurface(i) => DocumentReferenceItemRefView::ElementarySurface(model.elementary_surface_arena.get(i.0)),
6614            DocumentReferenceItemRef::Ellipse(i) => DocumentReferenceItemRefView::Ellipse(model.ellipse_arena.get(i.0)),
6615            DocumentReferenceItemRef::ExternallyDefinedCharacterGlyph(i) => DocumentReferenceItemRefView::ExternallyDefinedCharacterGlyph(model.externally_defined_character_glyph_arena.get(i.0)),
6616            DocumentReferenceItemRef::ExternallyDefinedCurveFont(i) => DocumentReferenceItemRefView::ExternallyDefinedCurveFont(model.externally_defined_curve_font_arena.get(i.0)),
6617            DocumentReferenceItemRef::ExternallyDefinedHatchStyle(i) => DocumentReferenceItemRefView::ExternallyDefinedHatchStyle(model.externally_defined_hatch_style_arena.get(i.0)),
6618            DocumentReferenceItemRef::ExternallyDefinedItem(i) => DocumentReferenceItemRefView::ExternallyDefinedItem(model.externally_defined_item_arena.get(i.0)),
6619            DocumentReferenceItemRef::ExternallyDefinedStyle(i) => DocumentReferenceItemRefView::ExternallyDefinedStyle(model.externally_defined_style_arena.get(i.0)),
6620            DocumentReferenceItemRef::ExternallyDefinedSymbol(i) => DocumentReferenceItemRefView::ExternallyDefinedSymbol(model.externally_defined_symbol_arena.get(i.0)),
6621            DocumentReferenceItemRef::ExternallyDefinedTextFont(i) => DocumentReferenceItemRefView::ExternallyDefinedTextFont(model.externally_defined_text_font_arena.get(i.0)),
6622            DocumentReferenceItemRef::ExternallyDefinedTile(i) => DocumentReferenceItemRefView::ExternallyDefinedTile(model.externally_defined_tile_arena.get(i.0)),
6623            DocumentReferenceItemRef::ExternallyDefinedTileStyle(i) => DocumentReferenceItemRefView::ExternallyDefinedTileStyle(model.externally_defined_tile_style_arena.get(i.0)),
6624            DocumentReferenceItemRef::Face(i) => DocumentReferenceItemRefView::Face(model.face_arena.get(i.0)),
6625            DocumentReferenceItemRef::FaceBound(i) => DocumentReferenceItemRefView::FaceBound(model.face_bound_arena.get(i.0)),
6626            DocumentReferenceItemRef::FaceOuterBound(i) => DocumentReferenceItemRefView::FaceOuterBound(model.face_outer_bound_arena.get(i.0)),
6627            DocumentReferenceItemRef::FaceSurface(i) => DocumentReferenceItemRefView::FaceSurface(model.face_surface_arena.get(i.0)),
6628            DocumentReferenceItemRef::FeatureForDatumTargetRelationship(i) => DocumentReferenceItemRefView::FeatureForDatumTargetRelationship(model.feature_for_datum_target_relationship_arena.get(i.0)),
6629            DocumentReferenceItemRef::FillAreaStyleHatching(i) => DocumentReferenceItemRefView::FillAreaStyleHatching(model.fill_area_style_hatching_arena.get(i.0)),
6630            DocumentReferenceItemRef::FillAreaStyleTileColouredRegion(i) => DocumentReferenceItemRefView::FillAreaStyleTileColouredRegion(model.fill_area_style_tile_coloured_region_arena.get(i.0)),
6631            DocumentReferenceItemRef::FillAreaStyleTileCurveWithStyle(i) => DocumentReferenceItemRefView::FillAreaStyleTileCurveWithStyle(model.fill_area_style_tile_curve_with_style_arena.get(i.0)),
6632            DocumentReferenceItemRef::FillAreaStyleTileSymbolWithStyle(i) => DocumentReferenceItemRefView::FillAreaStyleTileSymbolWithStyle(model.fill_area_style_tile_symbol_with_style_arena.get(i.0)),
6633            DocumentReferenceItemRef::FillAreaStyleTiles(i) => DocumentReferenceItemRefView::FillAreaStyleTiles(model.fill_area_style_tiles_arena.get(i.0)),
6634            DocumentReferenceItemRef::GeneralDatumReference(i) => DocumentReferenceItemRefView::GeneralDatumReference(model.general_datum_reference_arena.get(i.0)),
6635            DocumentReferenceItemRef::GeneralProperty(i) => DocumentReferenceItemRefView::GeneralProperty(model.general_property_arena.get(i.0)),
6636            DocumentReferenceItemRef::GeometricCurveSet(i) => DocumentReferenceItemRefView::GeometricCurveSet(model.geometric_curve_set_arena.get(i.0)),
6637            DocumentReferenceItemRef::GeometricRepresentationItem(i) => DocumentReferenceItemRefView::GeometricRepresentationItem(model.geometric_representation_item_arena.get(i.0)),
6638            DocumentReferenceItemRef::GeometricSet(i) => DocumentReferenceItemRefView::GeometricSet(model.geometric_set_arena.get(i.0)),
6639            DocumentReferenceItemRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => DocumentReferenceItemRefView::GeometricallyBoundedSurfaceShapeRepresentation(model.geometrically_bounded_surface_shape_representation_arena.get(i.0)),
6640            DocumentReferenceItemRef::GeometricallyBoundedWireframeShapeRepresentation(i) => DocumentReferenceItemRefView::GeometricallyBoundedWireframeShapeRepresentation(model.geometrically_bounded_wireframe_shape_representation_arena.get(i.0)),
6641            DocumentReferenceItemRef::Group(i) => DocumentReferenceItemRefView::Group(model.group_arena.get(i.0)),
6642            DocumentReferenceItemRef::Hyperbola(i) => DocumentReferenceItemRefView::Hyperbola(model.hyperbola_arena.get(i.0)),
6643            DocumentReferenceItemRef::IntegerRepresentationItem(i) => DocumentReferenceItemRefView::IntegerRepresentationItem(model.integer_representation_item_arena.get(i.0)),
6644            DocumentReferenceItemRef::IntersectionCurve(i) => DocumentReferenceItemRefView::IntersectionCurve(model.intersection_curve_arena.get(i.0)),
6645            DocumentReferenceItemRef::LeaderCurve(i) => DocumentReferenceItemRefView::LeaderCurve(model.leader_curve_arena.get(i.0)),
6646            DocumentReferenceItemRef::LeaderDirectedCallout(i) => DocumentReferenceItemRefView::LeaderDirectedCallout(model.leader_directed_callout_arena.get(i.0)),
6647            DocumentReferenceItemRef::LeaderTerminator(i) => DocumentReferenceItemRefView::LeaderTerminator(model.leader_terminator_arena.get(i.0)),
6648            DocumentReferenceItemRef::Line(i) => DocumentReferenceItemRefView::Line(model.line_arena.get(i.0)),
6649            DocumentReferenceItemRef::Loop(i) => DocumentReferenceItemRefView::Loop(model.loop_arena.get(i.0)),
6650            DocumentReferenceItemRef::MakeFromUsageOption(i) => DocumentReferenceItemRefView::MakeFromUsageOption(model.make_from_usage_option_arena.get(i.0)),
6651            DocumentReferenceItemRef::ManifoldSolidBrep(i) => DocumentReferenceItemRefView::ManifoldSolidBrep(model.manifold_solid_brep_arena.get(i.0)),
6652            DocumentReferenceItemRef::ManifoldSurfaceShapeRepresentation(i) => DocumentReferenceItemRefView::ManifoldSurfaceShapeRepresentation(model.manifold_surface_shape_representation_arena.get(i.0)),
6653            DocumentReferenceItemRef::MappedItem(i) => DocumentReferenceItemRefView::MappedItem(model.mapped_item_arena.get(i.0)),
6654            DocumentReferenceItemRef::MeasureRepresentationItem(i) => DocumentReferenceItemRefView::MeasureRepresentationItem(model.measure_representation_item_arena.get(i.0)),
6655            DocumentReferenceItemRef::MechanicalDesignAndDraughtingRelationship(i) => DocumentReferenceItemRefView::MechanicalDesignAndDraughtingRelationship(model.mechanical_design_and_draughting_relationship_arena.get(i.0)),
6656            DocumentReferenceItemRef::MechanicalDesignGeometricPresentationRepresentation(i) => DocumentReferenceItemRefView::MechanicalDesignGeometricPresentationRepresentation(model.mechanical_design_geometric_presentation_representation_arena.get(i.0)),
6657            DocumentReferenceItemRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => DocumentReferenceItemRefView::MechanicalDesignPresentationRepresentationWithDraughting(model.mechanical_design_presentation_representation_with_draughting_arena.get(i.0)),
6658            DocumentReferenceItemRef::MechanicalDesignShadedPresentationRepresentation(i) => DocumentReferenceItemRefView::MechanicalDesignShadedPresentationRepresentation(model.mechanical_design_shaded_presentation_representation_arena.get(i.0)),
6659            DocumentReferenceItemRef::ModelGeometricView(i) => DocumentReferenceItemRefView::ModelGeometricView(model.model_geometric_view_arena.get(i.0)),
6660            DocumentReferenceItemRef::NextAssemblyUsageOccurrence(i) => DocumentReferenceItemRefView::NextAssemblyUsageOccurrence(model.next_assembly_usage_occurrence_arena.get(i.0)),
6661            DocumentReferenceItemRef::OffsetSurface(i) => DocumentReferenceItemRefView::OffsetSurface(model.offset_surface_arena.get(i.0)),
6662            DocumentReferenceItemRef::OneDirectionRepeatFactor(i) => DocumentReferenceItemRefView::OneDirectionRepeatFactor(model.one_direction_repeat_factor_arena.get(i.0)),
6663            DocumentReferenceItemRef::OpenShell(i) => DocumentReferenceItemRefView::OpenShell(model.open_shell_arena.get(i.0)),
6664            DocumentReferenceItemRef::Organization(i) => DocumentReferenceItemRefView::Organization(model.organization_arena.get(i.0)),
6665            DocumentReferenceItemRef::OrganizationRelationship(i) => DocumentReferenceItemRefView::OrganizationRelationship(model.organization_relationship_arena.get(i.0)),
6666            DocumentReferenceItemRef::OrganizationalAddress(i) => DocumentReferenceItemRefView::OrganizationalAddress(model.organizational_address_arena.get(i.0)),
6667            DocumentReferenceItemRef::OrganizationalProject(i) => DocumentReferenceItemRefView::OrganizationalProject(model.organizational_project_arena.get(i.0)),
6668            DocumentReferenceItemRef::OrganizationalProjectRelationship(i) => DocumentReferenceItemRefView::OrganizationalProjectRelationship(model.organizational_project_relationship_arena.get(i.0)),
6669            DocumentReferenceItemRef::OrientedClosedShell(i) => DocumentReferenceItemRefView::OrientedClosedShell(model.oriented_closed_shell_arena.get(i.0)),
6670            DocumentReferenceItemRef::OrientedEdge(i) => DocumentReferenceItemRefView::OrientedEdge(model.oriented_edge_arena.get(i.0)),
6671            DocumentReferenceItemRef::OverRidingStyledItem(i) => DocumentReferenceItemRefView::OverRidingStyledItem(model.over_riding_styled_item_arena.get(i.0)),
6672            DocumentReferenceItemRef::Path(i) => DocumentReferenceItemRefView::Path(model.path_arena.get(i.0)),
6673            DocumentReferenceItemRef::Pcurve(i) => DocumentReferenceItemRefView::Pcurve(model.pcurve_arena.get(i.0)),
6674            DocumentReferenceItemRef::Person(i) => DocumentReferenceItemRefView::Person(model.person_arena.get(i.0)),
6675            DocumentReferenceItemRef::PersonAndOrganization(i) => DocumentReferenceItemRefView::PersonAndOrganization(model.person_and_organization_arena.get(i.0)),
6676            DocumentReferenceItemRef::PersonAndOrganizationAddress(i) => DocumentReferenceItemRefView::PersonAndOrganizationAddress(model.person_and_organization_address_arena.get(i.0)),
6677            DocumentReferenceItemRef::PlacedDatumTargetFeature(i) => DocumentReferenceItemRefView::PlacedDatumTargetFeature(model.placed_datum_target_feature_arena.get(i.0)),
6678            DocumentReferenceItemRef::Placement(i) => DocumentReferenceItemRefView::Placement(model.placement_arena.get(i.0)),
6679            DocumentReferenceItemRef::PlanarBox(i) => DocumentReferenceItemRefView::PlanarBox(model.planar_box_arena.get(i.0)),
6680            DocumentReferenceItemRef::PlanarExtent(i) => DocumentReferenceItemRefView::PlanarExtent(model.planar_extent_arena.get(i.0)),
6681            DocumentReferenceItemRef::Plane(i) => DocumentReferenceItemRefView::Plane(model.plane_arena.get(i.0)),
6682            DocumentReferenceItemRef::Point(i) => DocumentReferenceItemRefView::Point(model.point_arena.get(i.0)),
6683            DocumentReferenceItemRef::PolyLoop(i) => DocumentReferenceItemRefView::PolyLoop(model.poly_loop_arena.get(i.0)),
6684            DocumentReferenceItemRef::Polyline(i) => DocumentReferenceItemRefView::Polyline(model.polyline_arena.get(i.0)),
6685            DocumentReferenceItemRef::PresentationArea(i) => DocumentReferenceItemRefView::PresentationArea(model.presentation_area_arena.get(i.0)),
6686            DocumentReferenceItemRef::PresentationRepresentation(i) => DocumentReferenceItemRefView::PresentationRepresentation(model.presentation_representation_arena.get(i.0)),
6687            DocumentReferenceItemRef::PresentationView(i) => DocumentReferenceItemRefView::PresentationView(model.presentation_view_arena.get(i.0)),
6688            DocumentReferenceItemRef::Product(i) => DocumentReferenceItemRefView::Product(model.product_arena.get(i.0)),
6689            DocumentReferenceItemRef::ProductCategory(i) => DocumentReferenceItemRefView::ProductCategory(model.product_category_arena.get(i.0)),
6690            DocumentReferenceItemRef::ProductConcept(i) => DocumentReferenceItemRefView::ProductConcept(model.product_concept_arena.get(i.0)),
6691            DocumentReferenceItemRef::ProductConceptFeatureCategory(i) => DocumentReferenceItemRefView::ProductConceptFeatureCategory(model.product_concept_feature_category_arena.get(i.0)),
6692            DocumentReferenceItemRef::ProductDefinition(i) => DocumentReferenceItemRefView::ProductDefinition(model.product_definition_arena.get(i.0)),
6693            DocumentReferenceItemRef::ProductDefinitionContext(i) => DocumentReferenceItemRefView::ProductDefinitionContext(model.product_definition_context_arena.get(i.0)),
6694            DocumentReferenceItemRef::ProductDefinitionEffectivity(i) => DocumentReferenceItemRefView::ProductDefinitionEffectivity(model.product_definition_effectivity_arena.get(i.0)),
6695            DocumentReferenceItemRef::ProductDefinitionFormation(i) => DocumentReferenceItemRefView::ProductDefinitionFormation(model.product_definition_formation_arena.get(i.0)),
6696            DocumentReferenceItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => DocumentReferenceItemRefView::ProductDefinitionFormationWithSpecifiedSource(model.product_definition_formation_with_specified_source_arena.get(i.0)),
6697            DocumentReferenceItemRef::ProductDefinitionRelationship(i) => DocumentReferenceItemRefView::ProductDefinitionRelationship(model.product_definition_relationship_arena.get(i.0)),
6698            DocumentReferenceItemRef::ProductDefinitionShape(i) => DocumentReferenceItemRefView::ProductDefinitionShape(model.product_definition_shape_arena.get(i.0)),
6699            DocumentReferenceItemRef::ProductDefinitionUsage(i) => DocumentReferenceItemRefView::ProductDefinitionUsage(model.product_definition_usage_arena.get(i.0)),
6700            DocumentReferenceItemRef::ProductDefinitionWithAssociatedDocuments(i) => DocumentReferenceItemRefView::ProductDefinitionWithAssociatedDocuments(model.product_definition_with_associated_documents_arena.get(i.0)),
6701            DocumentReferenceItemRef::ProductRelatedProductCategory(i) => DocumentReferenceItemRefView::ProductRelatedProductCategory(model.product_related_product_category_arena.get(i.0)),
6702            DocumentReferenceItemRef::PropertyDefinition(i) => DocumentReferenceItemRefView::PropertyDefinition(model.property_definition_arena.get(i.0)),
6703            DocumentReferenceItemRef::PropertyDefinitionRepresentation(i) => DocumentReferenceItemRefView::PropertyDefinitionRepresentation(model.property_definition_representation_arena.get(i.0)),
6704            DocumentReferenceItemRef::QualifiedRepresentationItem(i) => DocumentReferenceItemRefView::QualifiedRepresentationItem(model.qualified_representation_item_arena.get(i.0)),
6705            DocumentReferenceItemRef::QuasiUniformCurve(i) => DocumentReferenceItemRefView::QuasiUniformCurve(model.quasi_uniform_curve_arena.get(i.0)),
6706            DocumentReferenceItemRef::QuasiUniformSurface(i) => DocumentReferenceItemRefView::QuasiUniformSurface(model.quasi_uniform_surface_arena.get(i.0)),
6707            DocumentReferenceItemRef::RationalBSplineCurve(i) => DocumentReferenceItemRefView::RationalBSplineCurve(model.rational_b_spline_curve_arena.get(i.0)),
6708            DocumentReferenceItemRef::RationalBSplineSurface(i) => DocumentReferenceItemRefView::RationalBSplineSurface(model.rational_b_spline_surface_arena.get(i.0)),
6709            DocumentReferenceItemRef::RealRepresentationItem(i) => DocumentReferenceItemRefView::RealRepresentationItem(model.real_representation_item_arena.get(i.0)),
6710            DocumentReferenceItemRef::RepositionedTessellatedItem(i) => DocumentReferenceItemRefView::RepositionedTessellatedItem(model.repositioned_tessellated_item_arena.get(i.0)),
6711            DocumentReferenceItemRef::Representation(i) => DocumentReferenceItemRefView::Representation(model.representation_arena.get(i.0)),
6712            DocumentReferenceItemRef::RepresentationItem(i) => DocumentReferenceItemRefView::RepresentationItem(model.representation_item_arena.get(i.0)),
6713            DocumentReferenceItemRef::RepresentationRelationship(i) => DocumentReferenceItemRefView::RepresentationRelationship(model.representation_relationship_arena.get(i.0)),
6714            DocumentReferenceItemRef::RepresentationRelationshipWithTransformation(i) => DocumentReferenceItemRefView::RepresentationRelationshipWithTransformation(model.representation_relationship_with_transformation_arena.get(i.0)),
6715            DocumentReferenceItemRef::ResourceRequirementType(i) => DocumentReferenceItemRefView::ResourceRequirementType(model.resource_requirement_type_arena.get(i.0)),
6716            DocumentReferenceItemRef::SeamCurve(i) => DocumentReferenceItemRefView::SeamCurve(model.seam_curve_arena.get(i.0)),
6717            DocumentReferenceItemRef::SecurityClassification(i) => DocumentReferenceItemRefView::SecurityClassification(model.security_classification_arena.get(i.0)),
6718            DocumentReferenceItemRef::ShapeAspect(i) => DocumentReferenceItemRefView::ShapeAspect(model.shape_aspect_arena.get(i.0)),
6719            DocumentReferenceItemRef::ShapeAspectAssociativity(i) => DocumentReferenceItemRefView::ShapeAspectAssociativity(model.shape_aspect_associativity_arena.get(i.0)),
6720            DocumentReferenceItemRef::ShapeAspectDerivingRelationship(i) => DocumentReferenceItemRefView::ShapeAspectDerivingRelationship(model.shape_aspect_deriving_relationship_arena.get(i.0)),
6721            DocumentReferenceItemRef::ShapeAspectRelationship(i) => DocumentReferenceItemRefView::ShapeAspectRelationship(model.shape_aspect_relationship_arena.get(i.0)),
6722            DocumentReferenceItemRef::ShapeDefinitionRepresentation(i) => DocumentReferenceItemRefView::ShapeDefinitionRepresentation(model.shape_definition_representation_arena.get(i.0)),
6723            DocumentReferenceItemRef::ShapeDimensionRepresentation(i) => DocumentReferenceItemRefView::ShapeDimensionRepresentation(model.shape_dimension_representation_arena.get(i.0)),
6724            DocumentReferenceItemRef::ShapeRepresentation(i) => DocumentReferenceItemRefView::ShapeRepresentation(model.shape_representation_arena.get(i.0)),
6725            DocumentReferenceItemRef::ShapeRepresentationRelationship(i) => DocumentReferenceItemRefView::ShapeRepresentationRelationship(model.shape_representation_relationship_arena.get(i.0)),
6726            DocumentReferenceItemRef::ShapeRepresentationWithParameters(i) => DocumentReferenceItemRefView::ShapeRepresentationWithParameters(model.shape_representation_with_parameters_arena.get(i.0)),
6727            DocumentReferenceItemRef::ShellBasedSurfaceModel(i) => DocumentReferenceItemRefView::ShellBasedSurfaceModel(model.shell_based_surface_model_arena.get(i.0)),
6728            DocumentReferenceItemRef::SolidModel(i) => DocumentReferenceItemRefView::SolidModel(model.solid_model_arena.get(i.0)),
6729            DocumentReferenceItemRef::SphericalSurface(i) => DocumentReferenceItemRefView::SphericalSurface(model.spherical_surface_arena.get(i.0)),
6730            DocumentReferenceItemRef::StateObserved(i) => DocumentReferenceItemRefView::StateObserved(model.state_observed_arena.get(i.0)),
6731            DocumentReferenceItemRef::StateType(i) => DocumentReferenceItemRefView::StateType(model.state_type_arena.get(i.0)),
6732            DocumentReferenceItemRef::StyledItem(i) => DocumentReferenceItemRefView::StyledItem(model.styled_item_arena.get(i.0)),
6733            DocumentReferenceItemRef::Surface(i) => DocumentReferenceItemRefView::Surface(model.surface_arena.get(i.0)),
6734            DocumentReferenceItemRef::SurfaceCurve(i) => DocumentReferenceItemRefView::SurfaceCurve(model.surface_curve_arena.get(i.0)),
6735            DocumentReferenceItemRef::SurfaceOfLinearExtrusion(i) => DocumentReferenceItemRefView::SurfaceOfLinearExtrusion(model.surface_of_linear_extrusion_arena.get(i.0)),
6736            DocumentReferenceItemRef::SurfaceOfRevolution(i) => DocumentReferenceItemRefView::SurfaceOfRevolution(model.surface_of_revolution_arena.get(i.0)),
6737            DocumentReferenceItemRef::SweptSurface(i) => DocumentReferenceItemRefView::SweptSurface(model.swept_surface_arena.get(i.0)),
6738            DocumentReferenceItemRef::SymbolRepresentation(i) => DocumentReferenceItemRefView::SymbolRepresentation(model.symbol_representation_arena.get(i.0)),
6739            DocumentReferenceItemRef::SymbolTarget(i) => DocumentReferenceItemRefView::SymbolTarget(model.symbol_target_arena.get(i.0)),
6740            DocumentReferenceItemRef::TerminatorSymbol(i) => DocumentReferenceItemRefView::TerminatorSymbol(model.terminator_symbol_arena.get(i.0)),
6741            DocumentReferenceItemRef::TessellatedAnnotationOccurrence(i) => DocumentReferenceItemRefView::TessellatedAnnotationOccurrence(model.tessellated_annotation_occurrence_arena.get(i.0)),
6742            DocumentReferenceItemRef::TessellatedCurveSet(i) => DocumentReferenceItemRefView::TessellatedCurveSet(model.tessellated_curve_set_arena.get(i.0)),
6743            DocumentReferenceItemRef::TessellatedFace(i) => DocumentReferenceItemRefView::TessellatedFace(model.tessellated_face_arena.get(i.0)),
6744            DocumentReferenceItemRef::TessellatedGeometricSet(i) => DocumentReferenceItemRefView::TessellatedGeometricSet(model.tessellated_geometric_set_arena.get(i.0)),
6745            DocumentReferenceItemRef::TessellatedItem(i) => DocumentReferenceItemRefView::TessellatedItem(model.tessellated_item_arena.get(i.0)),
6746            DocumentReferenceItemRef::TessellatedShapeRepresentation(i) => DocumentReferenceItemRefView::TessellatedShapeRepresentation(model.tessellated_shape_representation_arena.get(i.0)),
6747            DocumentReferenceItemRef::TessellatedShell(i) => DocumentReferenceItemRefView::TessellatedShell(model.tessellated_shell_arena.get(i.0)),
6748            DocumentReferenceItemRef::TessellatedSolid(i) => DocumentReferenceItemRefView::TessellatedSolid(model.tessellated_solid_arena.get(i.0)),
6749            DocumentReferenceItemRef::TessellatedStructuredItem(i) => DocumentReferenceItemRefView::TessellatedStructuredItem(model.tessellated_structured_item_arena.get(i.0)),
6750            DocumentReferenceItemRef::TessellatedSurfaceSet(i) => DocumentReferenceItemRefView::TessellatedSurfaceSet(model.tessellated_surface_set_arena.get(i.0)),
6751            DocumentReferenceItemRef::TextLiteral(i) => DocumentReferenceItemRefView::TextLiteral(model.text_literal_arena.get(i.0)),
6752            DocumentReferenceItemRef::ToleranceZone(i) => DocumentReferenceItemRefView::ToleranceZone(model.tolerance_zone_arena.get(i.0)),
6753            DocumentReferenceItemRef::ToleranceZoneWithDatum(i) => DocumentReferenceItemRefView::ToleranceZoneWithDatum(model.tolerance_zone_with_datum_arena.get(i.0)),
6754            DocumentReferenceItemRef::TopologicalRepresentationItem(i) => DocumentReferenceItemRefView::TopologicalRepresentationItem(model.topological_representation_item_arena.get(i.0)),
6755            DocumentReferenceItemRef::ToroidalSurface(i) => DocumentReferenceItemRefView::ToroidalSurface(model.toroidal_surface_arena.get(i.0)),
6756            DocumentReferenceItemRef::TrimmedCurve(i) => DocumentReferenceItemRefView::TrimmedCurve(model.trimmed_curve_arena.get(i.0)),
6757            DocumentReferenceItemRef::TwoDirectionRepeatFactor(i) => DocumentReferenceItemRefView::TwoDirectionRepeatFactor(model.two_direction_repeat_factor_arena.get(i.0)),
6758            DocumentReferenceItemRef::UniformCurve(i) => DocumentReferenceItemRefView::UniformCurve(model.uniform_curve_arena.get(i.0)),
6759            DocumentReferenceItemRef::UniformSurface(i) => DocumentReferenceItemRefView::UniformSurface(model.uniform_surface_arena.get(i.0)),
6760            DocumentReferenceItemRef::ValueRepresentationItem(i) => DocumentReferenceItemRefView::ValueRepresentationItem(model.value_representation_item_arena.get(i.0)),
6761            DocumentReferenceItemRef::Vector(i) => DocumentReferenceItemRefView::Vector(model.vector_arena.get(i.0)),
6762            DocumentReferenceItemRef::VersionedActionRequest(i) => DocumentReferenceItemRefView::VersionedActionRequest(model.versioned_action_request_arena.get(i.0)),
6763            DocumentReferenceItemRef::Vertex(i) => DocumentReferenceItemRefView::Vertex(model.vertex_arena.get(i.0)),
6764            DocumentReferenceItemRef::VertexLoop(i) => DocumentReferenceItemRefView::VertexLoop(model.vertex_loop_arena.get(i.0)),
6765            DocumentReferenceItemRef::VertexPoint(i) => DocumentReferenceItemRefView::VertexPoint(model.vertex_point_arena.get(i.0)),
6766            DocumentReferenceItemRef::VertexShell(i) => DocumentReferenceItemRefView::VertexShell(model.vertex_shell_arena.get(i.0)),
6767            DocumentReferenceItemRef::WireShell(i) => DocumentReferenceItemRefView::WireShell(model.wire_shell_arena.get(i.0)),
6768            DocumentReferenceItemRef::Complex(i) => DocumentReferenceItemRefView::Complex(model.complex_unit_arena.get(i.0)),
6769        }
6770    }
6771    pub fn entity_key(&self) -> EntityKey {
6772        match self {
6773            DocumentReferenceItemRef::ActionDirective(i) => EntityKey::ActionDirective(*i),
6774            DocumentReferenceItemRef::ActionMethod(i) => EntityKey::ActionMethod(*i),
6775            DocumentReferenceItemRef::ActionMethodRelationship(i) => {
6776                EntityKey::ActionMethodRelationship(*i)
6777            }
6778            DocumentReferenceItemRef::ActionProperty(i) => EntityKey::ActionProperty(*i),
6779            DocumentReferenceItemRef::ActionRelationship(i) => EntityKey::ActionRelationship(*i),
6780            DocumentReferenceItemRef::AdvancedBrepShapeRepresentation(i) => {
6781                EntityKey::AdvancedBrepShapeRepresentation(*i)
6782            }
6783            DocumentReferenceItemRef::AdvancedFace(i) => EntityKey::AdvancedFace(*i),
6784            DocumentReferenceItemRef::AllAroundShapeAspect(i) => {
6785                EntityKey::AllAroundShapeAspect(*i)
6786            }
6787            DocumentReferenceItemRef::AngularLocation(i) => EntityKey::AngularLocation(*i),
6788            DocumentReferenceItemRef::AngularSize(i) => EntityKey::AngularSize(*i),
6789            DocumentReferenceItemRef::AnnotationCurveOccurrence(i) => {
6790                EntityKey::AnnotationCurveOccurrence(*i)
6791            }
6792            DocumentReferenceItemRef::AnnotationFillAreaOccurrence(i) => {
6793                EntityKey::AnnotationFillAreaOccurrence(*i)
6794            }
6795            DocumentReferenceItemRef::AnnotationOccurrence(i) => {
6796                EntityKey::AnnotationOccurrence(*i)
6797            }
6798            DocumentReferenceItemRef::AnnotationPlaceholderLeaderLine(i) => {
6799                EntityKey::AnnotationPlaceholderLeaderLine(*i)
6800            }
6801            DocumentReferenceItemRef::AnnotationPlaceholderOccurrence(i) => {
6802                EntityKey::AnnotationPlaceholderOccurrence(*i)
6803            }
6804            DocumentReferenceItemRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => {
6805                EntityKey::AnnotationPlaceholderOccurrenceWithLeaderLine(*i)
6806            }
6807            DocumentReferenceItemRef::AnnotationPlane(i) => EntityKey::AnnotationPlane(*i),
6808            DocumentReferenceItemRef::AnnotationSymbol(i) => EntityKey::AnnotationSymbol(*i),
6809            DocumentReferenceItemRef::AnnotationSymbolOccurrence(i) => {
6810                EntityKey::AnnotationSymbolOccurrence(*i)
6811            }
6812            DocumentReferenceItemRef::AnnotationText(i) => EntityKey::AnnotationText(*i),
6813            DocumentReferenceItemRef::AnnotationTextCharacter(i) => {
6814                EntityKey::AnnotationTextCharacter(*i)
6815            }
6816            DocumentReferenceItemRef::AnnotationTextOccurrence(i) => {
6817                EntityKey::AnnotationTextOccurrence(*i)
6818            }
6819            DocumentReferenceItemRef::AnnotationToAnnotationLeaderLine(i) => {
6820                EntityKey::AnnotationToAnnotationLeaderLine(*i)
6821            }
6822            DocumentReferenceItemRef::AnnotationToModelLeaderLine(i) => {
6823                EntityKey::AnnotationToModelLeaderLine(*i)
6824            }
6825            DocumentReferenceItemRef::ApllPoint(i) => EntityKey::ApllPoint(*i),
6826            DocumentReferenceItemRef::ApllPointWithSurface(i) => {
6827                EntityKey::ApllPointWithSurface(*i)
6828            }
6829            DocumentReferenceItemRef::AppliedDateAndTimeAssignment(i) => {
6830                EntityKey::AppliedDateAndTimeAssignment(*i)
6831            }
6832            DocumentReferenceItemRef::AppliedDocumentReference(i) => {
6833                EntityKey::AppliedDocumentReference(*i)
6834            }
6835            DocumentReferenceItemRef::AppliedExternalIdentificationAssignment(i) => {
6836                EntityKey::AppliedExternalIdentificationAssignment(*i)
6837            }
6838            DocumentReferenceItemRef::Approval(i) => EntityKey::Approval(*i),
6839            DocumentReferenceItemRef::ApprovalPersonOrganization(i) => {
6840                EntityKey::ApprovalPersonOrganization(*i)
6841            }
6842            DocumentReferenceItemRef::AssemblyComponentUsage(i) => {
6843                EntityKey::AssemblyComponentUsage(*i)
6844            }
6845            DocumentReferenceItemRef::AuxiliaryLeaderLine(i) => EntityKey::AuxiliaryLeaderLine(*i),
6846            DocumentReferenceItemRef::Axis1Placement(i) => EntityKey::Axis1Placement(*i),
6847            DocumentReferenceItemRef::Axis2Placement2d(i) => EntityKey::Axis2Placement2d(*i),
6848            DocumentReferenceItemRef::Axis2Placement3d(i) => EntityKey::Axis2Placement3d(*i),
6849            DocumentReferenceItemRef::BSplineCurve(i) => EntityKey::BSplineCurve(*i),
6850            DocumentReferenceItemRef::BSplineCurveWithKnots(i) => {
6851                EntityKey::BSplineCurveWithKnots(*i)
6852            }
6853            DocumentReferenceItemRef::BSplineSurface(i) => EntityKey::BSplineSurface(*i),
6854            DocumentReferenceItemRef::BSplineSurfaceWithKnots(i) => {
6855                EntityKey::BSplineSurfaceWithKnots(*i)
6856            }
6857            DocumentReferenceItemRef::BezierCurve(i) => EntityKey::BezierCurve(*i),
6858            DocumentReferenceItemRef::BezierSurface(i) => EntityKey::BezierSurface(*i),
6859            DocumentReferenceItemRef::BoundedCurve(i) => EntityKey::BoundedCurve(*i),
6860            DocumentReferenceItemRef::BoundedPcurve(i) => EntityKey::BoundedPcurve(*i),
6861            DocumentReferenceItemRef::BoundedSurface(i) => EntityKey::BoundedSurface(*i),
6862            DocumentReferenceItemRef::BoundedSurfaceCurve(i) => EntityKey::BoundedSurfaceCurve(*i),
6863            DocumentReferenceItemRef::BrepWithVoids(i) => EntityKey::BrepWithVoids(*i),
6864            DocumentReferenceItemRef::CameraImage(i) => EntityKey::CameraImage(*i),
6865            DocumentReferenceItemRef::CameraImage3dWithScale(i) => {
6866                EntityKey::CameraImage3dWithScale(*i)
6867            }
6868            DocumentReferenceItemRef::CameraModel(i) => EntityKey::CameraModel(*i),
6869            DocumentReferenceItemRef::CameraModelD3(i) => EntityKey::CameraModelD3(*i),
6870            DocumentReferenceItemRef::CameraModelD3MultiClipping(i) => {
6871                EntityKey::CameraModelD3MultiClipping(*i)
6872            }
6873            DocumentReferenceItemRef::CameraModelD3WithHlhsr(i) => {
6874                EntityKey::CameraModelD3WithHlhsr(*i)
6875            }
6876            DocumentReferenceItemRef::CartesianPoint(i) => EntityKey::CartesianPoint(*i),
6877            DocumentReferenceItemRef::CcDesignDateAndTimeAssignment(i) => {
6878                EntityKey::CcDesignDateAndTimeAssignment(*i)
6879            }
6880            DocumentReferenceItemRef::CentreOfSymmetry(i) => EntityKey::CentreOfSymmetry(*i),
6881            DocumentReferenceItemRef::Certification(i) => EntityKey::Certification(*i),
6882            DocumentReferenceItemRef::CharacterizedItemWithinRepresentation(i) => {
6883                EntityKey::CharacterizedItemWithinRepresentation(*i)
6884            }
6885            DocumentReferenceItemRef::CharacterizedObject(i) => EntityKey::CharacterizedObject(*i),
6886            DocumentReferenceItemRef::CharacterizedRepresentation(i) => {
6887                EntityKey::CharacterizedRepresentation(*i)
6888            }
6889            DocumentReferenceItemRef::Circle(i) => EntityKey::Circle(*i),
6890            DocumentReferenceItemRef::ClosedShell(i) => EntityKey::ClosedShell(*i),
6891            DocumentReferenceItemRef::CommonDatum(i) => EntityKey::CommonDatum(*i),
6892            DocumentReferenceItemRef::ComplexTriangulatedFace(i) => {
6893                EntityKey::ComplexTriangulatedFace(*i)
6894            }
6895            DocumentReferenceItemRef::ComplexTriangulatedSurfaceSet(i) => {
6896                EntityKey::ComplexTriangulatedSurfaceSet(*i)
6897            }
6898            DocumentReferenceItemRef::CompositeCurve(i) => EntityKey::CompositeCurve(*i),
6899            DocumentReferenceItemRef::CompositeGroupShapeAspect(i) => {
6900                EntityKey::CompositeGroupShapeAspect(*i)
6901            }
6902            DocumentReferenceItemRef::CompositeShapeAspect(i) => {
6903                EntityKey::CompositeShapeAspect(*i)
6904            }
6905            DocumentReferenceItemRef::CompositeText(i) => EntityKey::CompositeText(*i),
6906            DocumentReferenceItemRef::CompoundRepresentationItem(i) => {
6907                EntityKey::CompoundRepresentationItem(*i)
6908            }
6909            DocumentReferenceItemRef::ConfigurationDesign(i) => EntityKey::ConfigurationDesign(*i),
6910            DocumentReferenceItemRef::ConfigurationEffectivity(i) => {
6911                EntityKey::ConfigurationEffectivity(*i)
6912            }
6913            DocumentReferenceItemRef::ConfigurationItem(i) => EntityKey::ConfigurationItem(*i),
6914            DocumentReferenceItemRef::Conic(i) => EntityKey::Conic(*i),
6915            DocumentReferenceItemRef::ConicalSurface(i) => EntityKey::ConicalSurface(*i),
6916            DocumentReferenceItemRef::ConnectedFaceSet(i) => EntityKey::ConnectedFaceSet(*i),
6917            DocumentReferenceItemRef::ConstructiveGeometryRepresentation(i) => {
6918                EntityKey::ConstructiveGeometryRepresentation(*i)
6919            }
6920            DocumentReferenceItemRef::ConstructiveGeometryRepresentationRelationship(i) => {
6921                EntityKey::ConstructiveGeometryRepresentationRelationship(*i)
6922            }
6923            DocumentReferenceItemRef::ContextDependentOverRidingStyledItem(i) => {
6924                EntityKey::ContextDependentOverRidingStyledItem(*i)
6925            }
6926            DocumentReferenceItemRef::ContinuousShapeAspect(i) => {
6927                EntityKey::ContinuousShapeAspect(*i)
6928            }
6929            DocumentReferenceItemRef::Contract(i) => EntityKey::Contract(*i),
6930            DocumentReferenceItemRef::CoordinatesList(i) => EntityKey::CoordinatesList(*i),
6931            DocumentReferenceItemRef::Curve(i) => EntityKey::Curve(*i),
6932            DocumentReferenceItemRef::CylindricalSurface(i) => EntityKey::CylindricalSurface(*i),
6933            DocumentReferenceItemRef::DateAndTimeAssignment(i) => {
6934                EntityKey::DateAndTimeAssignment(*i)
6935            }
6936            DocumentReferenceItemRef::Datum(i) => EntityKey::Datum(*i),
6937            DocumentReferenceItemRef::DatumFeature(i) => EntityKey::DatumFeature(*i),
6938            DocumentReferenceItemRef::DatumReferenceCompartment(i) => {
6939                EntityKey::DatumReferenceCompartment(*i)
6940            }
6941            DocumentReferenceItemRef::DatumReferenceElement(i) => {
6942                EntityKey::DatumReferenceElement(*i)
6943            }
6944            DocumentReferenceItemRef::DatumSystem(i) => EntityKey::DatumSystem(*i),
6945            DocumentReferenceItemRef::DatumTarget(i) => EntityKey::DatumTarget(*i),
6946            DocumentReferenceItemRef::DefaultModelGeometricView(i) => {
6947                EntityKey::DefaultModelGeometricView(*i)
6948            }
6949            DocumentReferenceItemRef::DefinedCharacterGlyph(i) => {
6950                EntityKey::DefinedCharacterGlyph(*i)
6951            }
6952            DocumentReferenceItemRef::DefinedSymbol(i) => EntityKey::DefinedSymbol(*i),
6953            DocumentReferenceItemRef::DefinitionalRepresentation(i) => {
6954                EntityKey::DefinitionalRepresentation(*i)
6955            }
6956            DocumentReferenceItemRef::DefinitionalRepresentationRelationship(i) => {
6957                EntityKey::DefinitionalRepresentationRelationship(*i)
6958            }
6959            DocumentReferenceItemRef::DefinitionalRepresentationRelationshipWithSameContext(i) => {
6960                EntityKey::DefinitionalRepresentationRelationshipWithSameContext(*i)
6961            }
6962            DocumentReferenceItemRef::DegenerateToroidalSurface(i) => {
6963                EntityKey::DegenerateToroidalSurface(*i)
6964            }
6965            DocumentReferenceItemRef::DerivedShapeAspect(i) => EntityKey::DerivedShapeAspect(*i),
6966            DocumentReferenceItemRef::DescriptiveRepresentationItem(i) => {
6967                EntityKey::DescriptiveRepresentationItem(*i)
6968            }
6969            DocumentReferenceItemRef::DesignContext(i) => EntityKey::DesignContext(*i),
6970            DocumentReferenceItemRef::DimensionalLocation(i) => EntityKey::DimensionalLocation(*i),
6971            DocumentReferenceItemRef::DimensionalLocationWithPath(i) => {
6972                EntityKey::DimensionalLocationWithPath(*i)
6973            }
6974            DocumentReferenceItemRef::DimensionalSize(i) => EntityKey::DimensionalSize(*i),
6975            DocumentReferenceItemRef::DimensionalSizeWithDatumFeature(i) => {
6976                EntityKey::DimensionalSizeWithDatumFeature(*i)
6977            }
6978            DocumentReferenceItemRef::DimensionalSizeWithPath(i) => {
6979                EntityKey::DimensionalSizeWithPath(*i)
6980            }
6981            DocumentReferenceItemRef::DirectedDimensionalLocation(i) => {
6982                EntityKey::DirectedDimensionalLocation(*i)
6983            }
6984            DocumentReferenceItemRef::Direction(i) => EntityKey::Direction(*i),
6985            DocumentReferenceItemRef::DocumentFile(i) => EntityKey::DocumentFile(*i),
6986            DocumentReferenceItemRef::DraughtingAnnotationOccurrence(i) => {
6987                EntityKey::DraughtingAnnotationOccurrence(*i)
6988            }
6989            DocumentReferenceItemRef::DraughtingCallout(i) => EntityKey::DraughtingCallout(*i),
6990            DocumentReferenceItemRef::DraughtingModel(i) => EntityKey::DraughtingModel(*i),
6991            DocumentReferenceItemRef::Edge(i) => EntityKey::Edge(*i),
6992            DocumentReferenceItemRef::EdgeCurve(i) => EntityKey::EdgeCurve(*i),
6993            DocumentReferenceItemRef::EdgeLoop(i) => EntityKey::EdgeLoop(*i),
6994            DocumentReferenceItemRef::Effectivity(i) => EntityKey::Effectivity(*i),
6995            DocumentReferenceItemRef::ElementarySurface(i) => EntityKey::ElementarySurface(*i),
6996            DocumentReferenceItemRef::Ellipse(i) => EntityKey::Ellipse(*i),
6997            DocumentReferenceItemRef::ExternallyDefinedCharacterGlyph(i) => {
6998                EntityKey::ExternallyDefinedCharacterGlyph(*i)
6999            }
7000            DocumentReferenceItemRef::ExternallyDefinedCurveFont(i) => {
7001                EntityKey::ExternallyDefinedCurveFont(*i)
7002            }
7003            DocumentReferenceItemRef::ExternallyDefinedHatchStyle(i) => {
7004                EntityKey::ExternallyDefinedHatchStyle(*i)
7005            }
7006            DocumentReferenceItemRef::ExternallyDefinedItem(i) => {
7007                EntityKey::ExternallyDefinedItem(*i)
7008            }
7009            DocumentReferenceItemRef::ExternallyDefinedStyle(i) => {
7010                EntityKey::ExternallyDefinedStyle(*i)
7011            }
7012            DocumentReferenceItemRef::ExternallyDefinedSymbol(i) => {
7013                EntityKey::ExternallyDefinedSymbol(*i)
7014            }
7015            DocumentReferenceItemRef::ExternallyDefinedTextFont(i) => {
7016                EntityKey::ExternallyDefinedTextFont(*i)
7017            }
7018            DocumentReferenceItemRef::ExternallyDefinedTile(i) => {
7019                EntityKey::ExternallyDefinedTile(*i)
7020            }
7021            DocumentReferenceItemRef::ExternallyDefinedTileStyle(i) => {
7022                EntityKey::ExternallyDefinedTileStyle(*i)
7023            }
7024            DocumentReferenceItemRef::Face(i) => EntityKey::Face(*i),
7025            DocumentReferenceItemRef::FaceBound(i) => EntityKey::FaceBound(*i),
7026            DocumentReferenceItemRef::FaceOuterBound(i) => EntityKey::FaceOuterBound(*i),
7027            DocumentReferenceItemRef::FaceSurface(i) => EntityKey::FaceSurface(*i),
7028            DocumentReferenceItemRef::FeatureForDatumTargetRelationship(i) => {
7029                EntityKey::FeatureForDatumTargetRelationship(*i)
7030            }
7031            DocumentReferenceItemRef::FillAreaStyleHatching(i) => {
7032                EntityKey::FillAreaStyleHatching(*i)
7033            }
7034            DocumentReferenceItemRef::FillAreaStyleTileColouredRegion(i) => {
7035                EntityKey::FillAreaStyleTileColouredRegion(*i)
7036            }
7037            DocumentReferenceItemRef::FillAreaStyleTileCurveWithStyle(i) => {
7038                EntityKey::FillAreaStyleTileCurveWithStyle(*i)
7039            }
7040            DocumentReferenceItemRef::FillAreaStyleTileSymbolWithStyle(i) => {
7041                EntityKey::FillAreaStyleTileSymbolWithStyle(*i)
7042            }
7043            DocumentReferenceItemRef::FillAreaStyleTiles(i) => EntityKey::FillAreaStyleTiles(*i),
7044            DocumentReferenceItemRef::GeneralDatumReference(i) => {
7045                EntityKey::GeneralDatumReference(*i)
7046            }
7047            DocumentReferenceItemRef::GeneralProperty(i) => EntityKey::GeneralProperty(*i),
7048            DocumentReferenceItemRef::GeometricCurveSet(i) => EntityKey::GeometricCurveSet(*i),
7049            DocumentReferenceItemRef::GeometricRepresentationItem(i) => {
7050                EntityKey::GeometricRepresentationItem(*i)
7051            }
7052            DocumentReferenceItemRef::GeometricSet(i) => EntityKey::GeometricSet(*i),
7053            DocumentReferenceItemRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => {
7054                EntityKey::GeometricallyBoundedSurfaceShapeRepresentation(*i)
7055            }
7056            DocumentReferenceItemRef::GeometricallyBoundedWireframeShapeRepresentation(i) => {
7057                EntityKey::GeometricallyBoundedWireframeShapeRepresentation(*i)
7058            }
7059            DocumentReferenceItemRef::Group(i) => EntityKey::Group(*i),
7060            DocumentReferenceItemRef::Hyperbola(i) => EntityKey::Hyperbola(*i),
7061            DocumentReferenceItemRef::IntegerRepresentationItem(i) => {
7062                EntityKey::IntegerRepresentationItem(*i)
7063            }
7064            DocumentReferenceItemRef::IntersectionCurve(i) => EntityKey::IntersectionCurve(*i),
7065            DocumentReferenceItemRef::LeaderCurve(i) => EntityKey::LeaderCurve(*i),
7066            DocumentReferenceItemRef::LeaderDirectedCallout(i) => {
7067                EntityKey::LeaderDirectedCallout(*i)
7068            }
7069            DocumentReferenceItemRef::LeaderTerminator(i) => EntityKey::LeaderTerminator(*i),
7070            DocumentReferenceItemRef::Line(i) => EntityKey::Line(*i),
7071            DocumentReferenceItemRef::Loop(i) => EntityKey::Loop(*i),
7072            DocumentReferenceItemRef::MakeFromUsageOption(i) => EntityKey::MakeFromUsageOption(*i),
7073            DocumentReferenceItemRef::ManifoldSolidBrep(i) => EntityKey::ManifoldSolidBrep(*i),
7074            DocumentReferenceItemRef::ManifoldSurfaceShapeRepresentation(i) => {
7075                EntityKey::ManifoldSurfaceShapeRepresentation(*i)
7076            }
7077            DocumentReferenceItemRef::MappedItem(i) => EntityKey::MappedItem(*i),
7078            DocumentReferenceItemRef::MeasureRepresentationItem(i) => {
7079                EntityKey::MeasureRepresentationItem(*i)
7080            }
7081            DocumentReferenceItemRef::MechanicalDesignAndDraughtingRelationship(i) => {
7082                EntityKey::MechanicalDesignAndDraughtingRelationship(*i)
7083            }
7084            DocumentReferenceItemRef::MechanicalDesignGeometricPresentationRepresentation(i) => {
7085                EntityKey::MechanicalDesignGeometricPresentationRepresentation(*i)
7086            }
7087            DocumentReferenceItemRef::MechanicalDesignPresentationRepresentationWithDraughting(
7088                i,
7089            ) => EntityKey::MechanicalDesignPresentationRepresentationWithDraughting(*i),
7090            DocumentReferenceItemRef::MechanicalDesignShadedPresentationRepresentation(i) => {
7091                EntityKey::MechanicalDesignShadedPresentationRepresentation(*i)
7092            }
7093            DocumentReferenceItemRef::ModelGeometricView(i) => EntityKey::ModelGeometricView(*i),
7094            DocumentReferenceItemRef::NextAssemblyUsageOccurrence(i) => {
7095                EntityKey::NextAssemblyUsageOccurrence(*i)
7096            }
7097            DocumentReferenceItemRef::OffsetSurface(i) => EntityKey::OffsetSurface(*i),
7098            DocumentReferenceItemRef::OneDirectionRepeatFactor(i) => {
7099                EntityKey::OneDirectionRepeatFactor(*i)
7100            }
7101            DocumentReferenceItemRef::OpenShell(i) => EntityKey::OpenShell(*i),
7102            DocumentReferenceItemRef::Organization(i) => EntityKey::Organization(*i),
7103            DocumentReferenceItemRef::OrganizationRelationship(i) => {
7104                EntityKey::OrganizationRelationship(*i)
7105            }
7106            DocumentReferenceItemRef::OrganizationalAddress(i) => {
7107                EntityKey::OrganizationalAddress(*i)
7108            }
7109            DocumentReferenceItemRef::OrganizationalProject(i) => {
7110                EntityKey::OrganizationalProject(*i)
7111            }
7112            DocumentReferenceItemRef::OrganizationalProjectRelationship(i) => {
7113                EntityKey::OrganizationalProjectRelationship(*i)
7114            }
7115            DocumentReferenceItemRef::OrientedClosedShell(i) => EntityKey::OrientedClosedShell(*i),
7116            DocumentReferenceItemRef::OrientedEdge(i) => EntityKey::OrientedEdge(*i),
7117            DocumentReferenceItemRef::OverRidingStyledItem(i) => {
7118                EntityKey::OverRidingStyledItem(*i)
7119            }
7120            DocumentReferenceItemRef::Path(i) => EntityKey::Path(*i),
7121            DocumentReferenceItemRef::Pcurve(i) => EntityKey::Pcurve(*i),
7122            DocumentReferenceItemRef::Person(i) => EntityKey::Person(*i),
7123            DocumentReferenceItemRef::PersonAndOrganization(i) => {
7124                EntityKey::PersonAndOrganization(*i)
7125            }
7126            DocumentReferenceItemRef::PersonAndOrganizationAddress(i) => {
7127                EntityKey::PersonAndOrganizationAddress(*i)
7128            }
7129            DocumentReferenceItemRef::PlacedDatumTargetFeature(i) => {
7130                EntityKey::PlacedDatumTargetFeature(*i)
7131            }
7132            DocumentReferenceItemRef::Placement(i) => EntityKey::Placement(*i),
7133            DocumentReferenceItemRef::PlanarBox(i) => EntityKey::PlanarBox(*i),
7134            DocumentReferenceItemRef::PlanarExtent(i) => EntityKey::PlanarExtent(*i),
7135            DocumentReferenceItemRef::Plane(i) => EntityKey::Plane(*i),
7136            DocumentReferenceItemRef::Point(i) => EntityKey::Point(*i),
7137            DocumentReferenceItemRef::PolyLoop(i) => EntityKey::PolyLoop(*i),
7138            DocumentReferenceItemRef::Polyline(i) => EntityKey::Polyline(*i),
7139            DocumentReferenceItemRef::PresentationArea(i) => EntityKey::PresentationArea(*i),
7140            DocumentReferenceItemRef::PresentationRepresentation(i) => {
7141                EntityKey::PresentationRepresentation(*i)
7142            }
7143            DocumentReferenceItemRef::PresentationView(i) => EntityKey::PresentationView(*i),
7144            DocumentReferenceItemRef::Product(i) => EntityKey::Product(*i),
7145            DocumentReferenceItemRef::ProductCategory(i) => EntityKey::ProductCategory(*i),
7146            DocumentReferenceItemRef::ProductConcept(i) => EntityKey::ProductConcept(*i),
7147            DocumentReferenceItemRef::ProductConceptFeatureCategory(i) => {
7148                EntityKey::ProductConceptFeatureCategory(*i)
7149            }
7150            DocumentReferenceItemRef::ProductDefinition(i) => EntityKey::ProductDefinition(*i),
7151            DocumentReferenceItemRef::ProductDefinitionContext(i) => {
7152                EntityKey::ProductDefinitionContext(*i)
7153            }
7154            DocumentReferenceItemRef::ProductDefinitionEffectivity(i) => {
7155                EntityKey::ProductDefinitionEffectivity(*i)
7156            }
7157            DocumentReferenceItemRef::ProductDefinitionFormation(i) => {
7158                EntityKey::ProductDefinitionFormation(*i)
7159            }
7160            DocumentReferenceItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => {
7161                EntityKey::ProductDefinitionFormationWithSpecifiedSource(*i)
7162            }
7163            DocumentReferenceItemRef::ProductDefinitionRelationship(i) => {
7164                EntityKey::ProductDefinitionRelationship(*i)
7165            }
7166            DocumentReferenceItemRef::ProductDefinitionShape(i) => {
7167                EntityKey::ProductDefinitionShape(*i)
7168            }
7169            DocumentReferenceItemRef::ProductDefinitionUsage(i) => {
7170                EntityKey::ProductDefinitionUsage(*i)
7171            }
7172            DocumentReferenceItemRef::ProductDefinitionWithAssociatedDocuments(i) => {
7173                EntityKey::ProductDefinitionWithAssociatedDocuments(*i)
7174            }
7175            DocumentReferenceItemRef::ProductRelatedProductCategory(i) => {
7176                EntityKey::ProductRelatedProductCategory(*i)
7177            }
7178            DocumentReferenceItemRef::PropertyDefinition(i) => EntityKey::PropertyDefinition(*i),
7179            DocumentReferenceItemRef::PropertyDefinitionRepresentation(i) => {
7180                EntityKey::PropertyDefinitionRepresentation(*i)
7181            }
7182            DocumentReferenceItemRef::QualifiedRepresentationItem(i) => {
7183                EntityKey::QualifiedRepresentationItem(*i)
7184            }
7185            DocumentReferenceItemRef::QuasiUniformCurve(i) => EntityKey::QuasiUniformCurve(*i),
7186            DocumentReferenceItemRef::QuasiUniformSurface(i) => EntityKey::QuasiUniformSurface(*i),
7187            DocumentReferenceItemRef::RationalBSplineCurve(i) => {
7188                EntityKey::RationalBSplineCurve(*i)
7189            }
7190            DocumentReferenceItemRef::RationalBSplineSurface(i) => {
7191                EntityKey::RationalBSplineSurface(*i)
7192            }
7193            DocumentReferenceItemRef::RealRepresentationItem(i) => {
7194                EntityKey::RealRepresentationItem(*i)
7195            }
7196            DocumentReferenceItemRef::RepositionedTessellatedItem(i) => {
7197                EntityKey::RepositionedTessellatedItem(*i)
7198            }
7199            DocumentReferenceItemRef::Representation(i) => EntityKey::Representation(*i),
7200            DocumentReferenceItemRef::RepresentationItem(i) => EntityKey::RepresentationItem(*i),
7201            DocumentReferenceItemRef::RepresentationRelationship(i) => {
7202                EntityKey::RepresentationRelationship(*i)
7203            }
7204            DocumentReferenceItemRef::RepresentationRelationshipWithTransformation(i) => {
7205                EntityKey::RepresentationRelationshipWithTransformation(*i)
7206            }
7207            DocumentReferenceItemRef::ResourceRequirementType(i) => {
7208                EntityKey::ResourceRequirementType(*i)
7209            }
7210            DocumentReferenceItemRef::SeamCurve(i) => EntityKey::SeamCurve(*i),
7211            DocumentReferenceItemRef::SecurityClassification(i) => {
7212                EntityKey::SecurityClassification(*i)
7213            }
7214            DocumentReferenceItemRef::ShapeAspect(i) => EntityKey::ShapeAspect(*i),
7215            DocumentReferenceItemRef::ShapeAspectAssociativity(i) => {
7216                EntityKey::ShapeAspectAssociativity(*i)
7217            }
7218            DocumentReferenceItemRef::ShapeAspectDerivingRelationship(i) => {
7219                EntityKey::ShapeAspectDerivingRelationship(*i)
7220            }
7221            DocumentReferenceItemRef::ShapeAspectRelationship(i) => {
7222                EntityKey::ShapeAspectRelationship(*i)
7223            }
7224            DocumentReferenceItemRef::ShapeDefinitionRepresentation(i) => {
7225                EntityKey::ShapeDefinitionRepresentation(*i)
7226            }
7227            DocumentReferenceItemRef::ShapeDimensionRepresentation(i) => {
7228                EntityKey::ShapeDimensionRepresentation(*i)
7229            }
7230            DocumentReferenceItemRef::ShapeRepresentation(i) => EntityKey::ShapeRepresentation(*i),
7231            DocumentReferenceItemRef::ShapeRepresentationRelationship(i) => {
7232                EntityKey::ShapeRepresentationRelationship(*i)
7233            }
7234            DocumentReferenceItemRef::ShapeRepresentationWithParameters(i) => {
7235                EntityKey::ShapeRepresentationWithParameters(*i)
7236            }
7237            DocumentReferenceItemRef::ShellBasedSurfaceModel(i) => {
7238                EntityKey::ShellBasedSurfaceModel(*i)
7239            }
7240            DocumentReferenceItemRef::SolidModel(i) => EntityKey::SolidModel(*i),
7241            DocumentReferenceItemRef::SphericalSurface(i) => EntityKey::SphericalSurface(*i),
7242            DocumentReferenceItemRef::StateObserved(i) => EntityKey::StateObserved(*i),
7243            DocumentReferenceItemRef::StateType(i) => EntityKey::StateType(*i),
7244            DocumentReferenceItemRef::StyledItem(i) => EntityKey::StyledItem(*i),
7245            DocumentReferenceItemRef::Surface(i) => EntityKey::Surface(*i),
7246            DocumentReferenceItemRef::SurfaceCurve(i) => EntityKey::SurfaceCurve(*i),
7247            DocumentReferenceItemRef::SurfaceOfLinearExtrusion(i) => {
7248                EntityKey::SurfaceOfLinearExtrusion(*i)
7249            }
7250            DocumentReferenceItemRef::SurfaceOfRevolution(i) => EntityKey::SurfaceOfRevolution(*i),
7251            DocumentReferenceItemRef::SweptSurface(i) => EntityKey::SweptSurface(*i),
7252            DocumentReferenceItemRef::SymbolRepresentation(i) => {
7253                EntityKey::SymbolRepresentation(*i)
7254            }
7255            DocumentReferenceItemRef::SymbolTarget(i) => EntityKey::SymbolTarget(*i),
7256            DocumentReferenceItemRef::TerminatorSymbol(i) => EntityKey::TerminatorSymbol(*i),
7257            DocumentReferenceItemRef::TessellatedAnnotationOccurrence(i) => {
7258                EntityKey::TessellatedAnnotationOccurrence(*i)
7259            }
7260            DocumentReferenceItemRef::TessellatedCurveSet(i) => EntityKey::TessellatedCurveSet(*i),
7261            DocumentReferenceItemRef::TessellatedFace(i) => EntityKey::TessellatedFace(*i),
7262            DocumentReferenceItemRef::TessellatedGeometricSet(i) => {
7263                EntityKey::TessellatedGeometricSet(*i)
7264            }
7265            DocumentReferenceItemRef::TessellatedItem(i) => EntityKey::TessellatedItem(*i),
7266            DocumentReferenceItemRef::TessellatedShapeRepresentation(i) => {
7267                EntityKey::TessellatedShapeRepresentation(*i)
7268            }
7269            DocumentReferenceItemRef::TessellatedShell(i) => EntityKey::TessellatedShell(*i),
7270            DocumentReferenceItemRef::TessellatedSolid(i) => EntityKey::TessellatedSolid(*i),
7271            DocumentReferenceItemRef::TessellatedStructuredItem(i) => {
7272                EntityKey::TessellatedStructuredItem(*i)
7273            }
7274            DocumentReferenceItemRef::TessellatedSurfaceSet(i) => {
7275                EntityKey::TessellatedSurfaceSet(*i)
7276            }
7277            DocumentReferenceItemRef::TextLiteral(i) => EntityKey::TextLiteral(*i),
7278            DocumentReferenceItemRef::ToleranceZone(i) => EntityKey::ToleranceZone(*i),
7279            DocumentReferenceItemRef::ToleranceZoneWithDatum(i) => {
7280                EntityKey::ToleranceZoneWithDatum(*i)
7281            }
7282            DocumentReferenceItemRef::TopologicalRepresentationItem(i) => {
7283                EntityKey::TopologicalRepresentationItem(*i)
7284            }
7285            DocumentReferenceItemRef::ToroidalSurface(i) => EntityKey::ToroidalSurface(*i),
7286            DocumentReferenceItemRef::TrimmedCurve(i) => EntityKey::TrimmedCurve(*i),
7287            DocumentReferenceItemRef::TwoDirectionRepeatFactor(i) => {
7288                EntityKey::TwoDirectionRepeatFactor(*i)
7289            }
7290            DocumentReferenceItemRef::UniformCurve(i) => EntityKey::UniformCurve(*i),
7291            DocumentReferenceItemRef::UniformSurface(i) => EntityKey::UniformSurface(*i),
7292            DocumentReferenceItemRef::ValueRepresentationItem(i) => {
7293                EntityKey::ValueRepresentationItem(*i)
7294            }
7295            DocumentReferenceItemRef::Vector(i) => EntityKey::Vector(*i),
7296            DocumentReferenceItemRef::VersionedActionRequest(i) => {
7297                EntityKey::VersionedActionRequest(*i)
7298            }
7299            DocumentReferenceItemRef::Vertex(i) => EntityKey::Vertex(*i),
7300            DocumentReferenceItemRef::VertexLoop(i) => EntityKey::VertexLoop(*i),
7301            DocumentReferenceItemRef::VertexPoint(i) => EntityKey::VertexPoint(*i),
7302            DocumentReferenceItemRef::VertexShell(i) => EntityKey::VertexShell(*i),
7303            DocumentReferenceItemRef::WireShell(i) => EntityKey::WireShell(*i),
7304            DocumentReferenceItemRef::Complex(i) => EntityKey::ComplexUnit(*i),
7305        }
7306    }
7307}
7308
7309#[derive(Clone, Copy, Debug)]
7310pub enum DocumentTypeRefView<'m> {
7311    DocumentType(&'m DocumentType),
7312}
7313impl DocumentTypeRef {
7314    pub fn resolve<'m>(&self, model: &'m StepModel) -> DocumentTypeRefView<'m> {
7315        match self {
7316            DocumentTypeRef::DocumentType(i) => {
7317                DocumentTypeRefView::DocumentType(model.document_type_arena.get(i.0))
7318            }
7319        }
7320    }
7321    pub fn entity_key(&self) -> EntityKey {
7322        match self {
7323            DocumentTypeRef::DocumentType(i) => EntityKey::DocumentType(*i),
7324        }
7325    }
7326}
7327
7328#[derive(Clone, Copy, Debug)]
7329pub enum DraughtingCalloutRefView<'m> {
7330    DraughtingCallout(&'m DraughtingCallout),
7331    LeaderDirectedCallout(&'m LeaderDirectedCallout),
7332    Complex(&'m ComplexUnit),
7333}
7334impl DraughtingCalloutRef {
7335    pub fn resolve<'m>(&self, model: &'m StepModel) -> DraughtingCalloutRefView<'m> {
7336        match self {
7337            DraughtingCalloutRef::DraughtingCallout(i) => {
7338                DraughtingCalloutRefView::DraughtingCallout(model.draughting_callout_arena.get(i.0))
7339            }
7340            DraughtingCalloutRef::LeaderDirectedCallout(i) => {
7341                DraughtingCalloutRefView::LeaderDirectedCallout(
7342                    model.leader_directed_callout_arena.get(i.0),
7343                )
7344            }
7345            DraughtingCalloutRef::Complex(i) => {
7346                DraughtingCalloutRefView::Complex(model.complex_unit_arena.get(i.0))
7347            }
7348        }
7349    }
7350    pub fn entity_key(&self) -> EntityKey {
7351        match self {
7352            DraughtingCalloutRef::DraughtingCallout(i) => EntityKey::DraughtingCallout(*i),
7353            DraughtingCalloutRef::LeaderDirectedCallout(i) => EntityKey::LeaderDirectedCallout(*i),
7354            DraughtingCalloutRef::Complex(i) => EntityKey::ComplexUnit(*i),
7355        }
7356    }
7357}
7358
7359#[derive(Clone, Copy, Debug)]
7360pub enum DraughtingCalloutElementRefView<'m> {
7361    AnnotationCurveOccurrence(&'m AnnotationCurveOccurrence),
7362    AnnotationFillAreaOccurrence(&'m AnnotationFillAreaOccurrence),
7363    AnnotationPlaceholderOccurrence(&'m AnnotationPlaceholderOccurrence),
7364    AnnotationPlaceholderOccurrenceWithLeaderLine(
7365        &'m AnnotationPlaceholderOccurrenceWithLeaderLine,
7366    ),
7367    AnnotationSymbolOccurrence(&'m AnnotationSymbolOccurrence),
7368    AnnotationTextOccurrence(&'m AnnotationTextOccurrence),
7369    LeaderCurve(&'m LeaderCurve),
7370    LeaderTerminator(&'m LeaderTerminator),
7371    TerminatorSymbol(&'m TerminatorSymbol),
7372    TessellatedAnnotationOccurrence(&'m TessellatedAnnotationOccurrence),
7373    Complex(&'m ComplexUnit),
7374}
7375impl DraughtingCalloutElementRef {
7376    pub fn resolve<'m>(&self, model: &'m StepModel) -> DraughtingCalloutElementRefView<'m> {
7377        match self {
7378            DraughtingCalloutElementRef::AnnotationCurveOccurrence(i) => {
7379                DraughtingCalloutElementRefView::AnnotationCurveOccurrence(
7380                    model.annotation_curve_occurrence_arena.get(i.0),
7381                )
7382            }
7383            DraughtingCalloutElementRef::AnnotationFillAreaOccurrence(i) => {
7384                DraughtingCalloutElementRefView::AnnotationFillAreaOccurrence(
7385                    model.annotation_fill_area_occurrence_arena.get(i.0),
7386                )
7387            }
7388            DraughtingCalloutElementRef::AnnotationPlaceholderOccurrence(i) => {
7389                DraughtingCalloutElementRefView::AnnotationPlaceholderOccurrence(
7390                    model.annotation_placeholder_occurrence_arena.get(i.0),
7391                )
7392            }
7393            DraughtingCalloutElementRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => {
7394                DraughtingCalloutElementRefView::AnnotationPlaceholderOccurrenceWithLeaderLine(
7395                    model
7396                        .annotation_placeholder_occurrence_with_leader_line_arena
7397                        .get(i.0),
7398                )
7399            }
7400            DraughtingCalloutElementRef::AnnotationSymbolOccurrence(i) => {
7401                DraughtingCalloutElementRefView::AnnotationSymbolOccurrence(
7402                    model.annotation_symbol_occurrence_arena.get(i.0),
7403                )
7404            }
7405            DraughtingCalloutElementRef::AnnotationTextOccurrence(i) => {
7406                DraughtingCalloutElementRefView::AnnotationTextOccurrence(
7407                    model.annotation_text_occurrence_arena.get(i.0),
7408                )
7409            }
7410            DraughtingCalloutElementRef::LeaderCurve(i) => {
7411                DraughtingCalloutElementRefView::LeaderCurve(model.leader_curve_arena.get(i.0))
7412            }
7413            DraughtingCalloutElementRef::LeaderTerminator(i) => {
7414                DraughtingCalloutElementRefView::LeaderTerminator(
7415                    model.leader_terminator_arena.get(i.0),
7416                )
7417            }
7418            DraughtingCalloutElementRef::TerminatorSymbol(i) => {
7419                DraughtingCalloutElementRefView::TerminatorSymbol(
7420                    model.terminator_symbol_arena.get(i.0),
7421                )
7422            }
7423            DraughtingCalloutElementRef::TessellatedAnnotationOccurrence(i) => {
7424                DraughtingCalloutElementRefView::TessellatedAnnotationOccurrence(
7425                    model.tessellated_annotation_occurrence_arena.get(i.0),
7426                )
7427            }
7428            DraughtingCalloutElementRef::Complex(i) => {
7429                DraughtingCalloutElementRefView::Complex(model.complex_unit_arena.get(i.0))
7430            }
7431        }
7432    }
7433    pub fn entity_key(&self) -> EntityKey {
7434        match self {
7435            DraughtingCalloutElementRef::AnnotationCurveOccurrence(i) => {
7436                EntityKey::AnnotationCurveOccurrence(*i)
7437            }
7438            DraughtingCalloutElementRef::AnnotationFillAreaOccurrence(i) => {
7439                EntityKey::AnnotationFillAreaOccurrence(*i)
7440            }
7441            DraughtingCalloutElementRef::AnnotationPlaceholderOccurrence(i) => {
7442                EntityKey::AnnotationPlaceholderOccurrence(*i)
7443            }
7444            DraughtingCalloutElementRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => {
7445                EntityKey::AnnotationPlaceholderOccurrenceWithLeaderLine(*i)
7446            }
7447            DraughtingCalloutElementRef::AnnotationSymbolOccurrence(i) => {
7448                EntityKey::AnnotationSymbolOccurrence(*i)
7449            }
7450            DraughtingCalloutElementRef::AnnotationTextOccurrence(i) => {
7451                EntityKey::AnnotationTextOccurrence(*i)
7452            }
7453            DraughtingCalloutElementRef::LeaderCurve(i) => EntityKey::LeaderCurve(*i),
7454            DraughtingCalloutElementRef::LeaderTerminator(i) => EntityKey::LeaderTerminator(*i),
7455            DraughtingCalloutElementRef::TerminatorSymbol(i) => EntityKey::TerminatorSymbol(*i),
7456            DraughtingCalloutElementRef::TessellatedAnnotationOccurrence(i) => {
7457                EntityKey::TessellatedAnnotationOccurrence(*i)
7458            }
7459            DraughtingCalloutElementRef::Complex(i) => EntityKey::ComplexUnit(*i),
7460        }
7461    }
7462}
7463
7464#[derive(Clone, Copy, Debug)]
7465pub enum DraughtingModelItemAssociationSelectRefView<'m> {
7466    AnnotationCurveOccurrence(&'m AnnotationCurveOccurrence),
7467    AnnotationFillAreaOccurrence(&'m AnnotationFillAreaOccurrence),
7468    AnnotationOccurrence(&'m AnnotationOccurrence),
7469    AnnotationPlaceholderOccurrence(&'m AnnotationPlaceholderOccurrence),
7470    AnnotationPlaceholderOccurrenceWithLeaderLine(
7471        &'m AnnotationPlaceholderOccurrenceWithLeaderLine,
7472    ),
7473    AnnotationPlane(&'m AnnotationPlane),
7474    AnnotationSymbolOccurrence(&'m AnnotationSymbolOccurrence),
7475    AnnotationTextOccurrence(&'m AnnotationTextOccurrence),
7476    DraughtingAnnotationOccurrence(&'m DraughtingAnnotationOccurrence),
7477    DraughtingCallout(&'m DraughtingCallout),
7478    LeaderCurve(&'m LeaderCurve),
7479    LeaderDirectedCallout(&'m LeaderDirectedCallout),
7480    LeaderTerminator(&'m LeaderTerminator),
7481    TerminatorSymbol(&'m TerminatorSymbol),
7482    TessellatedAnnotationOccurrence(&'m TessellatedAnnotationOccurrence),
7483    Complex(&'m ComplexUnit),
7484}
7485impl DraughtingModelItemAssociationSelectRef {
7486    pub fn resolve<'m>(
7487        &self,
7488        model: &'m StepModel,
7489    ) -> DraughtingModelItemAssociationSelectRefView<'m> {
7490        match self {
7491            DraughtingModelItemAssociationSelectRef::AnnotationCurveOccurrence(i) => DraughtingModelItemAssociationSelectRefView::AnnotationCurveOccurrence(model.annotation_curve_occurrence_arena.get(i.0)),
7492            DraughtingModelItemAssociationSelectRef::AnnotationFillAreaOccurrence(i) => DraughtingModelItemAssociationSelectRefView::AnnotationFillAreaOccurrence(model.annotation_fill_area_occurrence_arena.get(i.0)),
7493            DraughtingModelItemAssociationSelectRef::AnnotationOccurrence(i) => DraughtingModelItemAssociationSelectRefView::AnnotationOccurrence(model.annotation_occurrence_arena.get(i.0)),
7494            DraughtingModelItemAssociationSelectRef::AnnotationPlaceholderOccurrence(i) => DraughtingModelItemAssociationSelectRefView::AnnotationPlaceholderOccurrence(model.annotation_placeholder_occurrence_arena.get(i.0)),
7495            DraughtingModelItemAssociationSelectRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => DraughtingModelItemAssociationSelectRefView::AnnotationPlaceholderOccurrenceWithLeaderLine(model.annotation_placeholder_occurrence_with_leader_line_arena.get(i.0)),
7496            DraughtingModelItemAssociationSelectRef::AnnotationPlane(i) => DraughtingModelItemAssociationSelectRefView::AnnotationPlane(model.annotation_plane_arena.get(i.0)),
7497            DraughtingModelItemAssociationSelectRef::AnnotationSymbolOccurrence(i) => DraughtingModelItemAssociationSelectRefView::AnnotationSymbolOccurrence(model.annotation_symbol_occurrence_arena.get(i.0)),
7498            DraughtingModelItemAssociationSelectRef::AnnotationTextOccurrence(i) => DraughtingModelItemAssociationSelectRefView::AnnotationTextOccurrence(model.annotation_text_occurrence_arena.get(i.0)),
7499            DraughtingModelItemAssociationSelectRef::DraughtingAnnotationOccurrence(i) => DraughtingModelItemAssociationSelectRefView::DraughtingAnnotationOccurrence(model.draughting_annotation_occurrence_arena.get(i.0)),
7500            DraughtingModelItemAssociationSelectRef::DraughtingCallout(i) => DraughtingModelItemAssociationSelectRefView::DraughtingCallout(model.draughting_callout_arena.get(i.0)),
7501            DraughtingModelItemAssociationSelectRef::LeaderCurve(i) => DraughtingModelItemAssociationSelectRefView::LeaderCurve(model.leader_curve_arena.get(i.0)),
7502            DraughtingModelItemAssociationSelectRef::LeaderDirectedCallout(i) => DraughtingModelItemAssociationSelectRefView::LeaderDirectedCallout(model.leader_directed_callout_arena.get(i.0)),
7503            DraughtingModelItemAssociationSelectRef::LeaderTerminator(i) => DraughtingModelItemAssociationSelectRefView::LeaderTerminator(model.leader_terminator_arena.get(i.0)),
7504            DraughtingModelItemAssociationSelectRef::TerminatorSymbol(i) => DraughtingModelItemAssociationSelectRefView::TerminatorSymbol(model.terminator_symbol_arena.get(i.0)),
7505            DraughtingModelItemAssociationSelectRef::TessellatedAnnotationOccurrence(i) => DraughtingModelItemAssociationSelectRefView::TessellatedAnnotationOccurrence(model.tessellated_annotation_occurrence_arena.get(i.0)),
7506            DraughtingModelItemAssociationSelectRef::Complex(i) => DraughtingModelItemAssociationSelectRefView::Complex(model.complex_unit_arena.get(i.0)),
7507        }
7508    }
7509    pub fn entity_key(&self) -> EntityKey {
7510        match self {
7511            DraughtingModelItemAssociationSelectRef::AnnotationCurveOccurrence(i) => EntityKey::AnnotationCurveOccurrence(*i),
7512            DraughtingModelItemAssociationSelectRef::AnnotationFillAreaOccurrence(i) => EntityKey::AnnotationFillAreaOccurrence(*i),
7513            DraughtingModelItemAssociationSelectRef::AnnotationOccurrence(i) => EntityKey::AnnotationOccurrence(*i),
7514            DraughtingModelItemAssociationSelectRef::AnnotationPlaceholderOccurrence(i) => EntityKey::AnnotationPlaceholderOccurrence(*i),
7515            DraughtingModelItemAssociationSelectRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => EntityKey::AnnotationPlaceholderOccurrenceWithLeaderLine(*i),
7516            DraughtingModelItemAssociationSelectRef::AnnotationPlane(i) => EntityKey::AnnotationPlane(*i),
7517            DraughtingModelItemAssociationSelectRef::AnnotationSymbolOccurrence(i) => EntityKey::AnnotationSymbolOccurrence(*i),
7518            DraughtingModelItemAssociationSelectRef::AnnotationTextOccurrence(i) => EntityKey::AnnotationTextOccurrence(*i),
7519            DraughtingModelItemAssociationSelectRef::DraughtingAnnotationOccurrence(i) => EntityKey::DraughtingAnnotationOccurrence(*i),
7520            DraughtingModelItemAssociationSelectRef::DraughtingCallout(i) => EntityKey::DraughtingCallout(*i),
7521            DraughtingModelItemAssociationSelectRef::LeaderCurve(i) => EntityKey::LeaderCurve(*i),
7522            DraughtingModelItemAssociationSelectRef::LeaderDirectedCallout(i) => EntityKey::LeaderDirectedCallout(*i),
7523            DraughtingModelItemAssociationSelectRef::LeaderTerminator(i) => EntityKey::LeaderTerminator(*i),
7524            DraughtingModelItemAssociationSelectRef::TerminatorSymbol(i) => EntityKey::TerminatorSymbol(*i),
7525            DraughtingModelItemAssociationSelectRef::TessellatedAnnotationOccurrence(i) => EntityKey::TessellatedAnnotationOccurrence(*i),
7526            DraughtingModelItemAssociationSelectRef::Complex(i) => EntityKey::ComplexUnit(*i),
7527        }
7528    }
7529}
7530
7531#[derive(Clone, Copy, Debug)]
7532pub enum DraughtingModelItemDefinitionRefView<'m> {
7533    AllAroundShapeAspect(&'m AllAroundShapeAspect),
7534    AngularLocation(&'m AngularLocation),
7535    AngularSize(&'m AngularSize),
7536    AngularityTolerance(&'m AngularityTolerance),
7537    AssemblyComponentUsage(&'m AssemblyComponentUsage),
7538    CentreOfSymmetry(&'m CentreOfSymmetry),
7539    CircularRunoutTolerance(&'m CircularRunoutTolerance),
7540    CoaxialityTolerance(&'m CoaxialityTolerance),
7541    CommonDatum(&'m CommonDatum),
7542    CompositeGroupShapeAspect(&'m CompositeGroupShapeAspect),
7543    CompositeShapeAspect(&'m CompositeShapeAspect),
7544    ConcentricityTolerance(&'m ConcentricityTolerance),
7545    ContinuousShapeAspect(&'m ContinuousShapeAspect),
7546    CylindricityTolerance(&'m CylindricityTolerance),
7547    Datum(&'m Datum),
7548    DatumFeature(&'m DatumFeature),
7549    DatumReferenceCompartment(&'m DatumReferenceCompartment),
7550    DatumReferenceElement(&'m DatumReferenceElement),
7551    DatumSystem(&'m DatumSystem),
7552    DatumTarget(&'m DatumTarget),
7553    DefaultModelGeometricView(&'m DefaultModelGeometricView),
7554    DerivedShapeAspect(&'m DerivedShapeAspect),
7555    DimensionalLocation(&'m DimensionalLocation),
7556    DimensionalLocationWithPath(&'m DimensionalLocationWithPath),
7557    DimensionalSize(&'m DimensionalSize),
7558    DimensionalSizeWithDatumFeature(&'m DimensionalSizeWithDatumFeature),
7559    DimensionalSizeWithPath(&'m DimensionalSizeWithPath),
7560    DirectedDimensionalLocation(&'m DirectedDimensionalLocation),
7561    FeatureForDatumTargetRelationship(&'m FeatureForDatumTargetRelationship),
7562    FlatnessTolerance(&'m FlatnessTolerance),
7563    GeneralDatumReference(&'m GeneralDatumReference),
7564    GeometricTolerance(&'m GeometricTolerance),
7565    GeometricToleranceWithDatumReference(&'m GeometricToleranceWithDatumReference),
7566    GeometricToleranceWithDefinedAreaUnit(&'m GeometricToleranceWithDefinedAreaUnit),
7567    GeometricToleranceWithDefinedUnit(&'m GeometricToleranceWithDefinedUnit),
7568    GeometricToleranceWithMaximumTolerance(&'m GeometricToleranceWithMaximumTolerance),
7569    GeometricToleranceWithModifiers(&'m GeometricToleranceWithModifiers),
7570    LineProfileTolerance(&'m LineProfileTolerance),
7571    MakeFromUsageOption(&'m MakeFromUsageOption),
7572    ModifiedGeometricTolerance(&'m ModifiedGeometricTolerance),
7573    NextAssemblyUsageOccurrence(&'m NextAssemblyUsageOccurrence),
7574    ParallelismTolerance(&'m ParallelismTolerance),
7575    PerpendicularityTolerance(&'m PerpendicularityTolerance),
7576    PlacedDatumTargetFeature(&'m PlacedDatumTargetFeature),
7577    PositionTolerance(&'m PositionTolerance),
7578    ProductDefinitionRelationship(&'m ProductDefinitionRelationship),
7579    ProductDefinitionShape(&'m ProductDefinitionShape),
7580    ProductDefinitionUsage(&'m ProductDefinitionUsage),
7581    PropertyDefinition(&'m PropertyDefinition),
7582    RoundnessTolerance(&'m RoundnessTolerance),
7583    ShapeAspect(&'m ShapeAspect),
7584    ShapeAspectAssociativity(&'m ShapeAspectAssociativity),
7585    ShapeAspectDerivingRelationship(&'m ShapeAspectDerivingRelationship),
7586    ShapeAspectRelationship(&'m ShapeAspectRelationship),
7587    StraightnessTolerance(&'m StraightnessTolerance),
7588    SurfaceProfileTolerance(&'m SurfaceProfileTolerance),
7589    SymmetryTolerance(&'m SymmetryTolerance),
7590    ToleranceZone(&'m ToleranceZone),
7591    ToleranceZoneWithDatum(&'m ToleranceZoneWithDatum),
7592    TotalRunoutTolerance(&'m TotalRunoutTolerance),
7593    UnequallyDisposedGeometricTolerance(&'m UnequallyDisposedGeometricTolerance),
7594    Complex(&'m ComplexUnit),
7595}
7596impl DraughtingModelItemDefinitionRef {
7597    pub fn resolve<'m>(&self, model: &'m StepModel) -> DraughtingModelItemDefinitionRefView<'m> {
7598        match self {
7599            DraughtingModelItemDefinitionRef::AllAroundShapeAspect(i) => {
7600                DraughtingModelItemDefinitionRefView::AllAroundShapeAspect(
7601                    model.all_around_shape_aspect_arena.get(i.0),
7602                )
7603            }
7604            DraughtingModelItemDefinitionRef::AngularLocation(i) => {
7605                DraughtingModelItemDefinitionRefView::AngularLocation(
7606                    model.angular_location_arena.get(i.0),
7607                )
7608            }
7609            DraughtingModelItemDefinitionRef::AngularSize(i) => {
7610                DraughtingModelItemDefinitionRefView::AngularSize(model.angular_size_arena.get(i.0))
7611            }
7612            DraughtingModelItemDefinitionRef::AngularityTolerance(i) => {
7613                DraughtingModelItemDefinitionRefView::AngularityTolerance(
7614                    model.angularity_tolerance_arena.get(i.0),
7615                )
7616            }
7617            DraughtingModelItemDefinitionRef::AssemblyComponentUsage(i) => {
7618                DraughtingModelItemDefinitionRefView::AssemblyComponentUsage(
7619                    model.assembly_component_usage_arena.get(i.0),
7620                )
7621            }
7622            DraughtingModelItemDefinitionRef::CentreOfSymmetry(i) => {
7623                DraughtingModelItemDefinitionRefView::CentreOfSymmetry(
7624                    model.centre_of_symmetry_arena.get(i.0),
7625                )
7626            }
7627            DraughtingModelItemDefinitionRef::CircularRunoutTolerance(i) => {
7628                DraughtingModelItemDefinitionRefView::CircularRunoutTolerance(
7629                    model.circular_runout_tolerance_arena.get(i.0),
7630                )
7631            }
7632            DraughtingModelItemDefinitionRef::CoaxialityTolerance(i) => {
7633                DraughtingModelItemDefinitionRefView::CoaxialityTolerance(
7634                    model.coaxiality_tolerance_arena.get(i.0),
7635                )
7636            }
7637            DraughtingModelItemDefinitionRef::CommonDatum(i) => {
7638                DraughtingModelItemDefinitionRefView::CommonDatum(model.common_datum_arena.get(i.0))
7639            }
7640            DraughtingModelItemDefinitionRef::CompositeGroupShapeAspect(i) => {
7641                DraughtingModelItemDefinitionRefView::CompositeGroupShapeAspect(
7642                    model.composite_group_shape_aspect_arena.get(i.0),
7643                )
7644            }
7645            DraughtingModelItemDefinitionRef::CompositeShapeAspect(i) => {
7646                DraughtingModelItemDefinitionRefView::CompositeShapeAspect(
7647                    model.composite_shape_aspect_arena.get(i.0),
7648                )
7649            }
7650            DraughtingModelItemDefinitionRef::ConcentricityTolerance(i) => {
7651                DraughtingModelItemDefinitionRefView::ConcentricityTolerance(
7652                    model.concentricity_tolerance_arena.get(i.0),
7653                )
7654            }
7655            DraughtingModelItemDefinitionRef::ContinuousShapeAspect(i) => {
7656                DraughtingModelItemDefinitionRefView::ContinuousShapeAspect(
7657                    model.continuous_shape_aspect_arena.get(i.0),
7658                )
7659            }
7660            DraughtingModelItemDefinitionRef::CylindricityTolerance(i) => {
7661                DraughtingModelItemDefinitionRefView::CylindricityTolerance(
7662                    model.cylindricity_tolerance_arena.get(i.0),
7663                )
7664            }
7665            DraughtingModelItemDefinitionRef::Datum(i) => {
7666                DraughtingModelItemDefinitionRefView::Datum(model.datum_arena.get(i.0))
7667            }
7668            DraughtingModelItemDefinitionRef::DatumFeature(i) => {
7669                DraughtingModelItemDefinitionRefView::DatumFeature(
7670                    model.datum_feature_arena.get(i.0),
7671                )
7672            }
7673            DraughtingModelItemDefinitionRef::DatumReferenceCompartment(i) => {
7674                DraughtingModelItemDefinitionRefView::DatumReferenceCompartment(
7675                    model.datum_reference_compartment_arena.get(i.0),
7676                )
7677            }
7678            DraughtingModelItemDefinitionRef::DatumReferenceElement(i) => {
7679                DraughtingModelItemDefinitionRefView::DatumReferenceElement(
7680                    model.datum_reference_element_arena.get(i.0),
7681                )
7682            }
7683            DraughtingModelItemDefinitionRef::DatumSystem(i) => {
7684                DraughtingModelItemDefinitionRefView::DatumSystem(model.datum_system_arena.get(i.0))
7685            }
7686            DraughtingModelItemDefinitionRef::DatumTarget(i) => {
7687                DraughtingModelItemDefinitionRefView::DatumTarget(model.datum_target_arena.get(i.0))
7688            }
7689            DraughtingModelItemDefinitionRef::DefaultModelGeometricView(i) => {
7690                DraughtingModelItemDefinitionRefView::DefaultModelGeometricView(
7691                    model.default_model_geometric_view_arena.get(i.0),
7692                )
7693            }
7694            DraughtingModelItemDefinitionRef::DerivedShapeAspect(i) => {
7695                DraughtingModelItemDefinitionRefView::DerivedShapeAspect(
7696                    model.derived_shape_aspect_arena.get(i.0),
7697                )
7698            }
7699            DraughtingModelItemDefinitionRef::DimensionalLocation(i) => {
7700                DraughtingModelItemDefinitionRefView::DimensionalLocation(
7701                    model.dimensional_location_arena.get(i.0),
7702                )
7703            }
7704            DraughtingModelItemDefinitionRef::DimensionalLocationWithPath(i) => {
7705                DraughtingModelItemDefinitionRefView::DimensionalLocationWithPath(
7706                    model.dimensional_location_with_path_arena.get(i.0),
7707                )
7708            }
7709            DraughtingModelItemDefinitionRef::DimensionalSize(i) => {
7710                DraughtingModelItemDefinitionRefView::DimensionalSize(
7711                    model.dimensional_size_arena.get(i.0),
7712                )
7713            }
7714            DraughtingModelItemDefinitionRef::DimensionalSizeWithDatumFeature(i) => {
7715                DraughtingModelItemDefinitionRefView::DimensionalSizeWithDatumFeature(
7716                    model.dimensional_size_with_datum_feature_arena.get(i.0),
7717                )
7718            }
7719            DraughtingModelItemDefinitionRef::DimensionalSizeWithPath(i) => {
7720                DraughtingModelItemDefinitionRefView::DimensionalSizeWithPath(
7721                    model.dimensional_size_with_path_arena.get(i.0),
7722                )
7723            }
7724            DraughtingModelItemDefinitionRef::DirectedDimensionalLocation(i) => {
7725                DraughtingModelItemDefinitionRefView::DirectedDimensionalLocation(
7726                    model.directed_dimensional_location_arena.get(i.0),
7727                )
7728            }
7729            DraughtingModelItemDefinitionRef::FeatureForDatumTargetRelationship(i) => {
7730                DraughtingModelItemDefinitionRefView::FeatureForDatumTargetRelationship(
7731                    model.feature_for_datum_target_relationship_arena.get(i.0),
7732                )
7733            }
7734            DraughtingModelItemDefinitionRef::FlatnessTolerance(i) => {
7735                DraughtingModelItemDefinitionRefView::FlatnessTolerance(
7736                    model.flatness_tolerance_arena.get(i.0),
7737                )
7738            }
7739            DraughtingModelItemDefinitionRef::GeneralDatumReference(i) => {
7740                DraughtingModelItemDefinitionRefView::GeneralDatumReference(
7741                    model.general_datum_reference_arena.get(i.0),
7742                )
7743            }
7744            DraughtingModelItemDefinitionRef::GeometricTolerance(i) => {
7745                DraughtingModelItemDefinitionRefView::GeometricTolerance(
7746                    model.geometric_tolerance_arena.get(i.0),
7747                )
7748            }
7749            DraughtingModelItemDefinitionRef::GeometricToleranceWithDatumReference(i) => {
7750                DraughtingModelItemDefinitionRefView::GeometricToleranceWithDatumReference(
7751                    model
7752                        .geometric_tolerance_with_datum_reference_arena
7753                        .get(i.0),
7754                )
7755            }
7756            DraughtingModelItemDefinitionRef::GeometricToleranceWithDefinedAreaUnit(i) => {
7757                DraughtingModelItemDefinitionRefView::GeometricToleranceWithDefinedAreaUnit(
7758                    model
7759                        .geometric_tolerance_with_defined_area_unit_arena
7760                        .get(i.0),
7761                )
7762            }
7763            DraughtingModelItemDefinitionRef::GeometricToleranceWithDefinedUnit(i) => {
7764                DraughtingModelItemDefinitionRefView::GeometricToleranceWithDefinedUnit(
7765                    model.geometric_tolerance_with_defined_unit_arena.get(i.0),
7766                )
7767            }
7768            DraughtingModelItemDefinitionRef::GeometricToleranceWithMaximumTolerance(i) => {
7769                DraughtingModelItemDefinitionRefView::GeometricToleranceWithMaximumTolerance(
7770                    model
7771                        .geometric_tolerance_with_maximum_tolerance_arena
7772                        .get(i.0),
7773                )
7774            }
7775            DraughtingModelItemDefinitionRef::GeometricToleranceWithModifiers(i) => {
7776                DraughtingModelItemDefinitionRefView::GeometricToleranceWithModifiers(
7777                    model.geometric_tolerance_with_modifiers_arena.get(i.0),
7778                )
7779            }
7780            DraughtingModelItemDefinitionRef::LineProfileTolerance(i) => {
7781                DraughtingModelItemDefinitionRefView::LineProfileTolerance(
7782                    model.line_profile_tolerance_arena.get(i.0),
7783                )
7784            }
7785            DraughtingModelItemDefinitionRef::MakeFromUsageOption(i) => {
7786                DraughtingModelItemDefinitionRefView::MakeFromUsageOption(
7787                    model.make_from_usage_option_arena.get(i.0),
7788                )
7789            }
7790            DraughtingModelItemDefinitionRef::ModifiedGeometricTolerance(i) => {
7791                DraughtingModelItemDefinitionRefView::ModifiedGeometricTolerance(
7792                    model.modified_geometric_tolerance_arena.get(i.0),
7793                )
7794            }
7795            DraughtingModelItemDefinitionRef::NextAssemblyUsageOccurrence(i) => {
7796                DraughtingModelItemDefinitionRefView::NextAssemblyUsageOccurrence(
7797                    model.next_assembly_usage_occurrence_arena.get(i.0),
7798                )
7799            }
7800            DraughtingModelItemDefinitionRef::ParallelismTolerance(i) => {
7801                DraughtingModelItemDefinitionRefView::ParallelismTolerance(
7802                    model.parallelism_tolerance_arena.get(i.0),
7803                )
7804            }
7805            DraughtingModelItemDefinitionRef::PerpendicularityTolerance(i) => {
7806                DraughtingModelItemDefinitionRefView::PerpendicularityTolerance(
7807                    model.perpendicularity_tolerance_arena.get(i.0),
7808                )
7809            }
7810            DraughtingModelItemDefinitionRef::PlacedDatumTargetFeature(i) => {
7811                DraughtingModelItemDefinitionRefView::PlacedDatumTargetFeature(
7812                    model.placed_datum_target_feature_arena.get(i.0),
7813                )
7814            }
7815            DraughtingModelItemDefinitionRef::PositionTolerance(i) => {
7816                DraughtingModelItemDefinitionRefView::PositionTolerance(
7817                    model.position_tolerance_arena.get(i.0),
7818                )
7819            }
7820            DraughtingModelItemDefinitionRef::ProductDefinitionRelationship(i) => {
7821                DraughtingModelItemDefinitionRefView::ProductDefinitionRelationship(
7822                    model.product_definition_relationship_arena.get(i.0),
7823                )
7824            }
7825            DraughtingModelItemDefinitionRef::ProductDefinitionShape(i) => {
7826                DraughtingModelItemDefinitionRefView::ProductDefinitionShape(
7827                    model.product_definition_shape_arena.get(i.0),
7828                )
7829            }
7830            DraughtingModelItemDefinitionRef::ProductDefinitionUsage(i) => {
7831                DraughtingModelItemDefinitionRefView::ProductDefinitionUsage(
7832                    model.product_definition_usage_arena.get(i.0),
7833                )
7834            }
7835            DraughtingModelItemDefinitionRef::PropertyDefinition(i) => {
7836                DraughtingModelItemDefinitionRefView::PropertyDefinition(
7837                    model.property_definition_arena.get(i.0),
7838                )
7839            }
7840            DraughtingModelItemDefinitionRef::RoundnessTolerance(i) => {
7841                DraughtingModelItemDefinitionRefView::RoundnessTolerance(
7842                    model.roundness_tolerance_arena.get(i.0),
7843                )
7844            }
7845            DraughtingModelItemDefinitionRef::ShapeAspect(i) => {
7846                DraughtingModelItemDefinitionRefView::ShapeAspect(model.shape_aspect_arena.get(i.0))
7847            }
7848            DraughtingModelItemDefinitionRef::ShapeAspectAssociativity(i) => {
7849                DraughtingModelItemDefinitionRefView::ShapeAspectAssociativity(
7850                    model.shape_aspect_associativity_arena.get(i.0),
7851                )
7852            }
7853            DraughtingModelItemDefinitionRef::ShapeAspectDerivingRelationship(i) => {
7854                DraughtingModelItemDefinitionRefView::ShapeAspectDerivingRelationship(
7855                    model.shape_aspect_deriving_relationship_arena.get(i.0),
7856                )
7857            }
7858            DraughtingModelItemDefinitionRef::ShapeAspectRelationship(i) => {
7859                DraughtingModelItemDefinitionRefView::ShapeAspectRelationship(
7860                    model.shape_aspect_relationship_arena.get(i.0),
7861                )
7862            }
7863            DraughtingModelItemDefinitionRef::StraightnessTolerance(i) => {
7864                DraughtingModelItemDefinitionRefView::StraightnessTolerance(
7865                    model.straightness_tolerance_arena.get(i.0),
7866                )
7867            }
7868            DraughtingModelItemDefinitionRef::SurfaceProfileTolerance(i) => {
7869                DraughtingModelItemDefinitionRefView::SurfaceProfileTolerance(
7870                    model.surface_profile_tolerance_arena.get(i.0),
7871                )
7872            }
7873            DraughtingModelItemDefinitionRef::SymmetryTolerance(i) => {
7874                DraughtingModelItemDefinitionRefView::SymmetryTolerance(
7875                    model.symmetry_tolerance_arena.get(i.0),
7876                )
7877            }
7878            DraughtingModelItemDefinitionRef::ToleranceZone(i) => {
7879                DraughtingModelItemDefinitionRefView::ToleranceZone(
7880                    model.tolerance_zone_arena.get(i.0),
7881                )
7882            }
7883            DraughtingModelItemDefinitionRef::ToleranceZoneWithDatum(i) => {
7884                DraughtingModelItemDefinitionRefView::ToleranceZoneWithDatum(
7885                    model.tolerance_zone_with_datum_arena.get(i.0),
7886                )
7887            }
7888            DraughtingModelItemDefinitionRef::TotalRunoutTolerance(i) => {
7889                DraughtingModelItemDefinitionRefView::TotalRunoutTolerance(
7890                    model.total_runout_tolerance_arena.get(i.0),
7891                )
7892            }
7893            DraughtingModelItemDefinitionRef::UnequallyDisposedGeometricTolerance(i) => {
7894                DraughtingModelItemDefinitionRefView::UnequallyDisposedGeometricTolerance(
7895                    model.unequally_disposed_geometric_tolerance_arena.get(i.0),
7896                )
7897            }
7898            DraughtingModelItemDefinitionRef::Complex(i) => {
7899                DraughtingModelItemDefinitionRefView::Complex(model.complex_unit_arena.get(i.0))
7900            }
7901        }
7902    }
7903    pub fn entity_key(&self) -> EntityKey {
7904        match self {
7905            DraughtingModelItemDefinitionRef::AllAroundShapeAspect(i) => {
7906                EntityKey::AllAroundShapeAspect(*i)
7907            }
7908            DraughtingModelItemDefinitionRef::AngularLocation(i) => EntityKey::AngularLocation(*i),
7909            DraughtingModelItemDefinitionRef::AngularSize(i) => EntityKey::AngularSize(*i),
7910            DraughtingModelItemDefinitionRef::AngularityTolerance(i) => {
7911                EntityKey::AngularityTolerance(*i)
7912            }
7913            DraughtingModelItemDefinitionRef::AssemblyComponentUsage(i) => {
7914                EntityKey::AssemblyComponentUsage(*i)
7915            }
7916            DraughtingModelItemDefinitionRef::CentreOfSymmetry(i) => {
7917                EntityKey::CentreOfSymmetry(*i)
7918            }
7919            DraughtingModelItemDefinitionRef::CircularRunoutTolerance(i) => {
7920                EntityKey::CircularRunoutTolerance(*i)
7921            }
7922            DraughtingModelItemDefinitionRef::CoaxialityTolerance(i) => {
7923                EntityKey::CoaxialityTolerance(*i)
7924            }
7925            DraughtingModelItemDefinitionRef::CommonDatum(i) => EntityKey::CommonDatum(*i),
7926            DraughtingModelItemDefinitionRef::CompositeGroupShapeAspect(i) => {
7927                EntityKey::CompositeGroupShapeAspect(*i)
7928            }
7929            DraughtingModelItemDefinitionRef::CompositeShapeAspect(i) => {
7930                EntityKey::CompositeShapeAspect(*i)
7931            }
7932            DraughtingModelItemDefinitionRef::ConcentricityTolerance(i) => {
7933                EntityKey::ConcentricityTolerance(*i)
7934            }
7935            DraughtingModelItemDefinitionRef::ContinuousShapeAspect(i) => {
7936                EntityKey::ContinuousShapeAspect(*i)
7937            }
7938            DraughtingModelItemDefinitionRef::CylindricityTolerance(i) => {
7939                EntityKey::CylindricityTolerance(*i)
7940            }
7941            DraughtingModelItemDefinitionRef::Datum(i) => EntityKey::Datum(*i),
7942            DraughtingModelItemDefinitionRef::DatumFeature(i) => EntityKey::DatumFeature(*i),
7943            DraughtingModelItemDefinitionRef::DatumReferenceCompartment(i) => {
7944                EntityKey::DatumReferenceCompartment(*i)
7945            }
7946            DraughtingModelItemDefinitionRef::DatumReferenceElement(i) => {
7947                EntityKey::DatumReferenceElement(*i)
7948            }
7949            DraughtingModelItemDefinitionRef::DatumSystem(i) => EntityKey::DatumSystem(*i),
7950            DraughtingModelItemDefinitionRef::DatumTarget(i) => EntityKey::DatumTarget(*i),
7951            DraughtingModelItemDefinitionRef::DefaultModelGeometricView(i) => {
7952                EntityKey::DefaultModelGeometricView(*i)
7953            }
7954            DraughtingModelItemDefinitionRef::DerivedShapeAspect(i) => {
7955                EntityKey::DerivedShapeAspect(*i)
7956            }
7957            DraughtingModelItemDefinitionRef::DimensionalLocation(i) => {
7958                EntityKey::DimensionalLocation(*i)
7959            }
7960            DraughtingModelItemDefinitionRef::DimensionalLocationWithPath(i) => {
7961                EntityKey::DimensionalLocationWithPath(*i)
7962            }
7963            DraughtingModelItemDefinitionRef::DimensionalSize(i) => EntityKey::DimensionalSize(*i),
7964            DraughtingModelItemDefinitionRef::DimensionalSizeWithDatumFeature(i) => {
7965                EntityKey::DimensionalSizeWithDatumFeature(*i)
7966            }
7967            DraughtingModelItemDefinitionRef::DimensionalSizeWithPath(i) => {
7968                EntityKey::DimensionalSizeWithPath(*i)
7969            }
7970            DraughtingModelItemDefinitionRef::DirectedDimensionalLocation(i) => {
7971                EntityKey::DirectedDimensionalLocation(*i)
7972            }
7973            DraughtingModelItemDefinitionRef::FeatureForDatumTargetRelationship(i) => {
7974                EntityKey::FeatureForDatumTargetRelationship(*i)
7975            }
7976            DraughtingModelItemDefinitionRef::FlatnessTolerance(i) => {
7977                EntityKey::FlatnessTolerance(*i)
7978            }
7979            DraughtingModelItemDefinitionRef::GeneralDatumReference(i) => {
7980                EntityKey::GeneralDatumReference(*i)
7981            }
7982            DraughtingModelItemDefinitionRef::GeometricTolerance(i) => {
7983                EntityKey::GeometricTolerance(*i)
7984            }
7985            DraughtingModelItemDefinitionRef::GeometricToleranceWithDatumReference(i) => {
7986                EntityKey::GeometricToleranceWithDatumReference(*i)
7987            }
7988            DraughtingModelItemDefinitionRef::GeometricToleranceWithDefinedAreaUnit(i) => {
7989                EntityKey::GeometricToleranceWithDefinedAreaUnit(*i)
7990            }
7991            DraughtingModelItemDefinitionRef::GeometricToleranceWithDefinedUnit(i) => {
7992                EntityKey::GeometricToleranceWithDefinedUnit(*i)
7993            }
7994            DraughtingModelItemDefinitionRef::GeometricToleranceWithMaximumTolerance(i) => {
7995                EntityKey::GeometricToleranceWithMaximumTolerance(*i)
7996            }
7997            DraughtingModelItemDefinitionRef::GeometricToleranceWithModifiers(i) => {
7998                EntityKey::GeometricToleranceWithModifiers(*i)
7999            }
8000            DraughtingModelItemDefinitionRef::LineProfileTolerance(i) => {
8001                EntityKey::LineProfileTolerance(*i)
8002            }
8003            DraughtingModelItemDefinitionRef::MakeFromUsageOption(i) => {
8004                EntityKey::MakeFromUsageOption(*i)
8005            }
8006            DraughtingModelItemDefinitionRef::ModifiedGeometricTolerance(i) => {
8007                EntityKey::ModifiedGeometricTolerance(*i)
8008            }
8009            DraughtingModelItemDefinitionRef::NextAssemblyUsageOccurrence(i) => {
8010                EntityKey::NextAssemblyUsageOccurrence(*i)
8011            }
8012            DraughtingModelItemDefinitionRef::ParallelismTolerance(i) => {
8013                EntityKey::ParallelismTolerance(*i)
8014            }
8015            DraughtingModelItemDefinitionRef::PerpendicularityTolerance(i) => {
8016                EntityKey::PerpendicularityTolerance(*i)
8017            }
8018            DraughtingModelItemDefinitionRef::PlacedDatumTargetFeature(i) => {
8019                EntityKey::PlacedDatumTargetFeature(*i)
8020            }
8021            DraughtingModelItemDefinitionRef::PositionTolerance(i) => {
8022                EntityKey::PositionTolerance(*i)
8023            }
8024            DraughtingModelItemDefinitionRef::ProductDefinitionRelationship(i) => {
8025                EntityKey::ProductDefinitionRelationship(*i)
8026            }
8027            DraughtingModelItemDefinitionRef::ProductDefinitionShape(i) => {
8028                EntityKey::ProductDefinitionShape(*i)
8029            }
8030            DraughtingModelItemDefinitionRef::ProductDefinitionUsage(i) => {
8031                EntityKey::ProductDefinitionUsage(*i)
8032            }
8033            DraughtingModelItemDefinitionRef::PropertyDefinition(i) => {
8034                EntityKey::PropertyDefinition(*i)
8035            }
8036            DraughtingModelItemDefinitionRef::RoundnessTolerance(i) => {
8037                EntityKey::RoundnessTolerance(*i)
8038            }
8039            DraughtingModelItemDefinitionRef::ShapeAspect(i) => EntityKey::ShapeAspect(*i),
8040            DraughtingModelItemDefinitionRef::ShapeAspectAssociativity(i) => {
8041                EntityKey::ShapeAspectAssociativity(*i)
8042            }
8043            DraughtingModelItemDefinitionRef::ShapeAspectDerivingRelationship(i) => {
8044                EntityKey::ShapeAspectDerivingRelationship(*i)
8045            }
8046            DraughtingModelItemDefinitionRef::ShapeAspectRelationship(i) => {
8047                EntityKey::ShapeAspectRelationship(*i)
8048            }
8049            DraughtingModelItemDefinitionRef::StraightnessTolerance(i) => {
8050                EntityKey::StraightnessTolerance(*i)
8051            }
8052            DraughtingModelItemDefinitionRef::SurfaceProfileTolerance(i) => {
8053                EntityKey::SurfaceProfileTolerance(*i)
8054            }
8055            DraughtingModelItemDefinitionRef::SymmetryTolerance(i) => {
8056                EntityKey::SymmetryTolerance(*i)
8057            }
8058            DraughtingModelItemDefinitionRef::ToleranceZone(i) => EntityKey::ToleranceZone(*i),
8059            DraughtingModelItemDefinitionRef::ToleranceZoneWithDatum(i) => {
8060                EntityKey::ToleranceZoneWithDatum(*i)
8061            }
8062            DraughtingModelItemDefinitionRef::TotalRunoutTolerance(i) => {
8063                EntityKey::TotalRunoutTolerance(*i)
8064            }
8065            DraughtingModelItemDefinitionRef::UnequallyDisposedGeometricTolerance(i) => {
8066                EntityKey::UnequallyDisposedGeometricTolerance(*i)
8067            }
8068            DraughtingModelItemDefinitionRef::Complex(i) => EntityKey::ComplexUnit(*i),
8069        }
8070    }
8071}
8072
8073#[derive(Clone, Copy, Debug)]
8074pub enum EdgeRefView<'m> {
8075    Edge(&'m Edge),
8076    EdgeCurve(&'m EdgeCurve),
8077    OrientedEdge(&'m OrientedEdge),
8078    Complex(&'m ComplexUnit),
8079}
8080impl EdgeRef {
8081    pub fn resolve<'m>(&self, model: &'m StepModel) -> EdgeRefView<'m> {
8082        match self {
8083            EdgeRef::Edge(i) => EdgeRefView::Edge(model.edge_arena.get(i.0)),
8084            EdgeRef::EdgeCurve(i) => EdgeRefView::EdgeCurve(model.edge_curve_arena.get(i.0)),
8085            EdgeRef::OrientedEdge(i) => {
8086                EdgeRefView::OrientedEdge(model.oriented_edge_arena.get(i.0))
8087            }
8088            EdgeRef::Complex(i) => EdgeRefView::Complex(model.complex_unit_arena.get(i.0)),
8089        }
8090    }
8091    pub fn entity_key(&self) -> EntityKey {
8092        match self {
8093            EdgeRef::Edge(i) => EntityKey::Edge(*i),
8094            EdgeRef::EdgeCurve(i) => EntityKey::EdgeCurve(*i),
8095            EdgeRef::OrientedEdge(i) => EntityKey::OrientedEdge(*i),
8096            EdgeRef::Complex(i) => EntityKey::ComplexUnit(*i),
8097        }
8098    }
8099}
8100
8101#[derive(Clone, Copy, Debug)]
8102pub enum ExternalIdentificationItemRefView<'m> {
8103    ActionDirective(&'m ActionDirective),
8104    ActionMethod(&'m ActionMethod),
8105    ActionMethodRelationship(&'m ActionMethodRelationship),
8106    ActionRelationship(&'m ActionRelationship),
8107    Address(&'m Address),
8108    AdvancedBrepShapeRepresentation(&'m AdvancedBrepShapeRepresentation),
8109    AdvancedFace(&'m AdvancedFace),
8110    AnnotationCurveOccurrence(&'m AnnotationCurveOccurrence),
8111    AnnotationFillAreaOccurrence(&'m AnnotationFillAreaOccurrence),
8112    AnnotationOccurrence(&'m AnnotationOccurrence),
8113    AnnotationPlaceholderLeaderLine(&'m AnnotationPlaceholderLeaderLine),
8114    AnnotationPlaceholderOccurrence(&'m AnnotationPlaceholderOccurrence),
8115    AnnotationPlaceholderOccurrenceWithLeaderLine(
8116        &'m AnnotationPlaceholderOccurrenceWithLeaderLine,
8117    ),
8118    AnnotationPlane(&'m AnnotationPlane),
8119    AnnotationSymbol(&'m AnnotationSymbol),
8120    AnnotationSymbolOccurrence(&'m AnnotationSymbolOccurrence),
8121    AnnotationText(&'m AnnotationText),
8122    AnnotationTextCharacter(&'m AnnotationTextCharacter),
8123    AnnotationTextOccurrence(&'m AnnotationTextOccurrence),
8124    AnnotationToAnnotationLeaderLine(&'m AnnotationToAnnotationLeaderLine),
8125    AnnotationToModelLeaderLine(&'m AnnotationToModelLeaderLine),
8126    ApllPoint(&'m ApllPoint),
8127    ApllPointWithSurface(&'m ApllPointWithSurface),
8128    AppliedDateAndTimeAssignment(&'m AppliedDateAndTimeAssignment),
8129    AppliedExternalIdentificationAssignment(&'m AppliedExternalIdentificationAssignment),
8130    Approval(&'m Approval),
8131    ApprovalPersonOrganization(&'m ApprovalPersonOrganization),
8132    ApprovalStatus(&'m ApprovalStatus),
8133    AreaUnit(&'m AreaUnit),
8134    AssemblyComponentUsage(&'m AssemblyComponentUsage),
8135    AuxiliaryLeaderLine(&'m AuxiliaryLeaderLine),
8136    Axis1Placement(&'m Axis1Placement),
8137    Axis2Placement2d(&'m Axis2Placement2d),
8138    Axis2Placement3d(&'m Axis2Placement3d),
8139    BSplineCurve(&'m BSplineCurve),
8140    BSplineCurveWithKnots(&'m BSplineCurveWithKnots),
8141    BSplineSurface(&'m BSplineSurface),
8142    BSplineSurfaceWithKnots(&'m BSplineSurfaceWithKnots),
8143    BezierCurve(&'m BezierCurve),
8144    BezierSurface(&'m BezierSurface),
8145    BoundedCurve(&'m BoundedCurve),
8146    BoundedPcurve(&'m BoundedPcurve),
8147    BoundedSurface(&'m BoundedSurface),
8148    BoundedSurfaceCurve(&'m BoundedSurfaceCurve),
8149    BrepWithVoids(&'m BrepWithVoids),
8150    CameraImage(&'m CameraImage),
8151    CameraImage3dWithScale(&'m CameraImage3dWithScale),
8152    CameraModel(&'m CameraModel),
8153    CameraModelD3(&'m CameraModelD3),
8154    CameraModelD3MultiClipping(&'m CameraModelD3MultiClipping),
8155    CameraModelD3WithHlhsr(&'m CameraModelD3WithHlhsr),
8156    CartesianPoint(&'m CartesianPoint),
8157    CcDesignDateAndTimeAssignment(&'m CcDesignDateAndTimeAssignment),
8158    Certification(&'m Certification),
8159    CharacterizedRepresentation(&'m CharacterizedRepresentation),
8160    Circle(&'m Circle),
8161    ClosedShell(&'m ClosedShell),
8162    ComplexTriangulatedFace(&'m ComplexTriangulatedFace),
8163    ComplexTriangulatedSurfaceSet(&'m ComplexTriangulatedSurfaceSet),
8164    CompositeCurve(&'m CompositeCurve),
8165    CompositeText(&'m CompositeText),
8166    CompoundRepresentationItem(&'m CompoundRepresentationItem),
8167    ConfigurationEffectivity(&'m ConfigurationEffectivity),
8168    Conic(&'m Conic),
8169    ConicalSurface(&'m ConicalSurface),
8170    ConnectedFaceSet(&'m ConnectedFaceSet),
8171    ConstructiveGeometryRepresentation(&'m ConstructiveGeometryRepresentation),
8172    ContextDependentOverRidingStyledItem(&'m ContextDependentOverRidingStyledItem),
8173    ContextDependentUnit(&'m ContextDependentUnit),
8174    Contract(&'m Contract),
8175    ConversionBasedUnit(&'m ConversionBasedUnit),
8176    CoordinatesList(&'m CoordinatesList),
8177    Curve(&'m Curve),
8178    CylindricalSurface(&'m CylindricalSurface),
8179    DateAndTimeAssignment(&'m DateAndTimeAssignment),
8180    DefinedCharacterGlyph(&'m DefinedCharacterGlyph),
8181    DefinedSymbol(&'m DefinedSymbol),
8182    DefinitionalRepresentation(&'m DefinitionalRepresentation),
8183    DegenerateToroidalSurface(&'m DegenerateToroidalSurface),
8184    DerivedUnit(&'m DerivedUnit),
8185    DescriptiveRepresentationItem(&'m DescriptiveRepresentationItem),
8186    DesignContext(&'m DesignContext),
8187    Direction(&'m Direction),
8188    DocumentFile(&'m DocumentFile),
8189    DraughtingAnnotationOccurrence(&'m DraughtingAnnotationOccurrence),
8190    DraughtingCallout(&'m DraughtingCallout),
8191    DraughtingModel(&'m DraughtingModel),
8192    Edge(&'m Edge),
8193    EdgeCurve(&'m EdgeCurve),
8194    EdgeLoop(&'m EdgeLoop),
8195    Effectivity(&'m Effectivity),
8196    ElementarySurface(&'m ElementarySurface),
8197    Ellipse(&'m Ellipse),
8198    ExternalSource(&'m ExternalSource),
8199    ExternallyDefinedHatchStyle(&'m ExternallyDefinedHatchStyle),
8200    ExternallyDefinedTileStyle(&'m ExternallyDefinedTileStyle),
8201    Face(&'m Face),
8202    FaceBound(&'m FaceBound),
8203    FaceOuterBound(&'m FaceOuterBound),
8204    FaceSurface(&'m FaceSurface),
8205    FillAreaStyleHatching(&'m FillAreaStyleHatching),
8206    FillAreaStyleTileColouredRegion(&'m FillAreaStyleTileColouredRegion),
8207    FillAreaStyleTileCurveWithStyle(&'m FillAreaStyleTileCurveWithStyle),
8208    FillAreaStyleTileSymbolWithStyle(&'m FillAreaStyleTileSymbolWithStyle),
8209    FillAreaStyleTiles(&'m FillAreaStyleTiles),
8210    GeneralProperty(&'m GeneralProperty),
8211    GenericProductDefinitionReference(&'m GenericProductDefinitionReference),
8212    GeometricCurveSet(&'m GeometricCurveSet),
8213    GeometricRepresentationItem(&'m GeometricRepresentationItem),
8214    GeometricSet(&'m GeometricSet),
8215    GeometricallyBoundedSurfaceShapeRepresentation(
8216        &'m GeometricallyBoundedSurfaceShapeRepresentation,
8217    ),
8218    GeometricallyBoundedWireframeShapeRepresentation(
8219        &'m GeometricallyBoundedWireframeShapeRepresentation,
8220    ),
8221    Group(&'m Group),
8222    Hyperbola(&'m Hyperbola),
8223    IntegerRepresentationItem(&'m IntegerRepresentationItem),
8224    IntersectionCurve(&'m IntersectionCurve),
8225    LeaderCurve(&'m LeaderCurve),
8226    LeaderDirectedCallout(&'m LeaderDirectedCallout),
8227    LeaderTerminator(&'m LeaderTerminator),
8228    LengthUnit(&'m LengthUnit),
8229    Line(&'m Line),
8230    Loop(&'m Loop),
8231    ManifoldSolidBrep(&'m ManifoldSolidBrep),
8232    ManifoldSurfaceShapeRepresentation(&'m ManifoldSurfaceShapeRepresentation),
8233    MappedItem(&'m MappedItem),
8234    MassUnit(&'m MassUnit),
8235    MeasureRepresentationItem(&'m MeasureRepresentationItem),
8236    MechanicalDesignGeometricPresentationRepresentation(
8237        &'m MechanicalDesignGeometricPresentationRepresentation,
8238    ),
8239    MechanicalDesignPresentationRepresentationWithDraughting(
8240        &'m MechanicalDesignPresentationRepresentationWithDraughting,
8241    ),
8242    MechanicalDesignShadedPresentationRepresentation(
8243        &'m MechanicalDesignShadedPresentationRepresentation,
8244    ),
8245    NamedUnit(&'m NamedUnit),
8246    NextAssemblyUsageOccurrence(&'m NextAssemblyUsageOccurrence),
8247    OffsetSurface(&'m OffsetSurface),
8248    OneDirectionRepeatFactor(&'m OneDirectionRepeatFactor),
8249    OpenShell(&'m OpenShell),
8250    Organization(&'m Organization),
8251    OrganizationalAddress(&'m OrganizationalAddress),
8252    OrganizationalProject(&'m OrganizationalProject),
8253    OrientedClosedShell(&'m OrientedClosedShell),
8254    OrientedEdge(&'m OrientedEdge),
8255    OverRidingStyledItem(&'m OverRidingStyledItem),
8256    Path(&'m Path),
8257    Pcurve(&'m Pcurve),
8258    Person(&'m Person),
8259    PersonAndOrganization(&'m PersonAndOrganization),
8260    PersonAndOrganizationAddress(&'m PersonAndOrganizationAddress),
8261    PersonalAddress(&'m PersonalAddress),
8262    Placement(&'m Placement),
8263    PlanarBox(&'m PlanarBox),
8264    PlanarExtent(&'m PlanarExtent),
8265    Plane(&'m Plane),
8266    PlaneAngleUnit(&'m PlaneAngleUnit),
8267    Point(&'m Point),
8268    PolyLoop(&'m PolyLoop),
8269    Polyline(&'m Polyline),
8270    PrecisionQualifier(&'m PrecisionQualifier),
8271    PresentationArea(&'m PresentationArea),
8272    PresentationRepresentation(&'m PresentationRepresentation),
8273    PresentationView(&'m PresentationView),
8274    Product(&'m Product),
8275    ProductConcept(&'m ProductConcept),
8276    ProductConceptContext(&'m ProductConceptContext),
8277    ProductConceptFeatureCategory(&'m ProductConceptFeatureCategory),
8278    ProductDefinition(&'m ProductDefinition),
8279    ProductDefinitionContext(&'m ProductDefinitionContext),
8280    ProductDefinitionEffectivity(&'m ProductDefinitionEffectivity),
8281    ProductDefinitionFormation(&'m ProductDefinitionFormation),
8282    ProductDefinitionFormationWithSpecifiedSource(
8283        &'m ProductDefinitionFormationWithSpecifiedSource,
8284    ),
8285    ProductDefinitionOccurrence(&'m ProductDefinitionOccurrence),
8286    ProductDefinitionShape(&'m ProductDefinitionShape),
8287    ProductDefinitionWithAssociatedDocuments(&'m ProductDefinitionWithAssociatedDocuments),
8288    PropertyDefinition(&'m PropertyDefinition),
8289    QualifiedRepresentationItem(&'m QualifiedRepresentationItem),
8290    QuasiUniformCurve(&'m QuasiUniformCurve),
8291    QuasiUniformSurface(&'m QuasiUniformSurface),
8292    RatioUnit(&'m RatioUnit),
8293    RationalBSplineCurve(&'m RationalBSplineCurve),
8294    RationalBSplineSurface(&'m RationalBSplineSurface),
8295    RealRepresentationItem(&'m RealRepresentationItem),
8296    RepositionedTessellatedItem(&'m RepositionedTessellatedItem),
8297    Representation(&'m Representation),
8298    RepresentationItem(&'m RepresentationItem),
8299    SeamCurve(&'m SeamCurve),
8300    SecurityClassification(&'m SecurityClassification),
8301    ShapeDimensionRepresentation(&'m ShapeDimensionRepresentation),
8302    ShapeRepresentation(&'m ShapeRepresentation),
8303    ShapeRepresentationWithParameters(&'m ShapeRepresentationWithParameters),
8304    ShellBasedSurfaceModel(&'m ShellBasedSurfaceModel),
8305    SiUnit(&'m SiUnit),
8306    SolidAngleUnit(&'m SolidAngleUnit),
8307    SolidModel(&'m SolidModel),
8308    SphericalSurface(&'m SphericalSurface),
8309    StateObserved(&'m StateObserved),
8310    StateType(&'m StateType),
8311    StyledItem(&'m StyledItem),
8312    Surface(&'m Surface),
8313    SurfaceCurve(&'m SurfaceCurve),
8314    SurfaceOfLinearExtrusion(&'m SurfaceOfLinearExtrusion),
8315    SurfaceOfRevolution(&'m SurfaceOfRevolution),
8316    SweptSurface(&'m SweptSurface),
8317    SymbolRepresentation(&'m SymbolRepresentation),
8318    SymbolTarget(&'m SymbolTarget),
8319    TerminatorSymbol(&'m TerminatorSymbol),
8320    TessellatedAnnotationOccurrence(&'m TessellatedAnnotationOccurrence),
8321    TessellatedCurveSet(&'m TessellatedCurveSet),
8322    TessellatedFace(&'m TessellatedFace),
8323    TessellatedGeometricSet(&'m TessellatedGeometricSet),
8324    TessellatedItem(&'m TessellatedItem),
8325    TessellatedShapeRepresentation(&'m TessellatedShapeRepresentation),
8326    TessellatedShell(&'m TessellatedShell),
8327    TessellatedSolid(&'m TessellatedSolid),
8328    TessellatedStructuredItem(&'m TessellatedStructuredItem),
8329    TessellatedSurfaceSet(&'m TessellatedSurfaceSet),
8330    TextLiteral(&'m TextLiteral),
8331    TimeUnit(&'m TimeUnit),
8332    TopologicalRepresentationItem(&'m TopologicalRepresentationItem),
8333    ToroidalSurface(&'m ToroidalSurface),
8334    TrimmedCurve(&'m TrimmedCurve),
8335    TwoDirectionRepeatFactor(&'m TwoDirectionRepeatFactor),
8336    TypeQualifier(&'m TypeQualifier),
8337    UncertaintyQualifier(&'m UncertaintyQualifier),
8338    UniformCurve(&'m UniformCurve),
8339    UniformSurface(&'m UniformSurface),
8340    ValueRepresentationItem(&'m ValueRepresentationItem),
8341    Vector(&'m Vector),
8342    VersionedActionRequest(&'m VersionedActionRequest),
8343    Vertex(&'m Vertex),
8344    VertexLoop(&'m VertexLoop),
8345    VertexPoint(&'m VertexPoint),
8346    VertexShell(&'m VertexShell),
8347    VolumeUnit(&'m VolumeUnit),
8348    WireShell(&'m WireShell),
8349    Complex(&'m ComplexUnit),
8350}
8351impl ExternalIdentificationItemRef {
8352    pub fn resolve<'m>(&self, model: &'m StepModel) -> ExternalIdentificationItemRefView<'m> {
8353        match self {
8354            ExternalIdentificationItemRef::ActionDirective(i) => ExternalIdentificationItemRefView::ActionDirective(model.action_directive_arena.get(i.0)),
8355            ExternalIdentificationItemRef::ActionMethod(i) => ExternalIdentificationItemRefView::ActionMethod(model.action_method_arena.get(i.0)),
8356            ExternalIdentificationItemRef::ActionMethodRelationship(i) => ExternalIdentificationItemRefView::ActionMethodRelationship(model.action_method_relationship_arena.get(i.0)),
8357            ExternalIdentificationItemRef::ActionRelationship(i) => ExternalIdentificationItemRefView::ActionRelationship(model.action_relationship_arena.get(i.0)),
8358            ExternalIdentificationItemRef::Address(i) => ExternalIdentificationItemRefView::Address(model.address_arena.get(i.0)),
8359            ExternalIdentificationItemRef::AdvancedBrepShapeRepresentation(i) => ExternalIdentificationItemRefView::AdvancedBrepShapeRepresentation(model.advanced_brep_shape_representation_arena.get(i.0)),
8360            ExternalIdentificationItemRef::AdvancedFace(i) => ExternalIdentificationItemRefView::AdvancedFace(model.advanced_face_arena.get(i.0)),
8361            ExternalIdentificationItemRef::AnnotationCurveOccurrence(i) => ExternalIdentificationItemRefView::AnnotationCurveOccurrence(model.annotation_curve_occurrence_arena.get(i.0)),
8362            ExternalIdentificationItemRef::AnnotationFillAreaOccurrence(i) => ExternalIdentificationItemRefView::AnnotationFillAreaOccurrence(model.annotation_fill_area_occurrence_arena.get(i.0)),
8363            ExternalIdentificationItemRef::AnnotationOccurrence(i) => ExternalIdentificationItemRefView::AnnotationOccurrence(model.annotation_occurrence_arena.get(i.0)),
8364            ExternalIdentificationItemRef::AnnotationPlaceholderLeaderLine(i) => ExternalIdentificationItemRefView::AnnotationPlaceholderLeaderLine(model.annotation_placeholder_leader_line_arena.get(i.0)),
8365            ExternalIdentificationItemRef::AnnotationPlaceholderOccurrence(i) => ExternalIdentificationItemRefView::AnnotationPlaceholderOccurrence(model.annotation_placeholder_occurrence_arena.get(i.0)),
8366            ExternalIdentificationItemRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => ExternalIdentificationItemRefView::AnnotationPlaceholderOccurrenceWithLeaderLine(model.annotation_placeholder_occurrence_with_leader_line_arena.get(i.0)),
8367            ExternalIdentificationItemRef::AnnotationPlane(i) => ExternalIdentificationItemRefView::AnnotationPlane(model.annotation_plane_arena.get(i.0)),
8368            ExternalIdentificationItemRef::AnnotationSymbol(i) => ExternalIdentificationItemRefView::AnnotationSymbol(model.annotation_symbol_arena.get(i.0)),
8369            ExternalIdentificationItemRef::AnnotationSymbolOccurrence(i) => ExternalIdentificationItemRefView::AnnotationSymbolOccurrence(model.annotation_symbol_occurrence_arena.get(i.0)),
8370            ExternalIdentificationItemRef::AnnotationText(i) => ExternalIdentificationItemRefView::AnnotationText(model.annotation_text_arena.get(i.0)),
8371            ExternalIdentificationItemRef::AnnotationTextCharacter(i) => ExternalIdentificationItemRefView::AnnotationTextCharacter(model.annotation_text_character_arena.get(i.0)),
8372            ExternalIdentificationItemRef::AnnotationTextOccurrence(i) => ExternalIdentificationItemRefView::AnnotationTextOccurrence(model.annotation_text_occurrence_arena.get(i.0)),
8373            ExternalIdentificationItemRef::AnnotationToAnnotationLeaderLine(i) => ExternalIdentificationItemRefView::AnnotationToAnnotationLeaderLine(model.annotation_to_annotation_leader_line_arena.get(i.0)),
8374            ExternalIdentificationItemRef::AnnotationToModelLeaderLine(i) => ExternalIdentificationItemRefView::AnnotationToModelLeaderLine(model.annotation_to_model_leader_line_arena.get(i.0)),
8375            ExternalIdentificationItemRef::ApllPoint(i) => ExternalIdentificationItemRefView::ApllPoint(model.apll_point_arena.get(i.0)),
8376            ExternalIdentificationItemRef::ApllPointWithSurface(i) => ExternalIdentificationItemRefView::ApllPointWithSurface(model.apll_point_with_surface_arena.get(i.0)),
8377            ExternalIdentificationItemRef::AppliedDateAndTimeAssignment(i) => ExternalIdentificationItemRefView::AppliedDateAndTimeAssignment(model.applied_date_and_time_assignment_arena.get(i.0)),
8378            ExternalIdentificationItemRef::AppliedExternalIdentificationAssignment(i) => ExternalIdentificationItemRefView::AppliedExternalIdentificationAssignment(model.applied_external_identification_assignment_arena.get(i.0)),
8379            ExternalIdentificationItemRef::Approval(i) => ExternalIdentificationItemRefView::Approval(model.approval_arena.get(i.0)),
8380            ExternalIdentificationItemRef::ApprovalPersonOrganization(i) => ExternalIdentificationItemRefView::ApprovalPersonOrganization(model.approval_person_organization_arena.get(i.0)),
8381            ExternalIdentificationItemRef::ApprovalStatus(i) => ExternalIdentificationItemRefView::ApprovalStatus(model.approval_status_arena.get(i.0)),
8382            ExternalIdentificationItemRef::AreaUnit(i) => ExternalIdentificationItemRefView::AreaUnit(model.area_unit_arena.get(i.0)),
8383            ExternalIdentificationItemRef::AssemblyComponentUsage(i) => ExternalIdentificationItemRefView::AssemblyComponentUsage(model.assembly_component_usage_arena.get(i.0)),
8384            ExternalIdentificationItemRef::AuxiliaryLeaderLine(i) => ExternalIdentificationItemRefView::AuxiliaryLeaderLine(model.auxiliary_leader_line_arena.get(i.0)),
8385            ExternalIdentificationItemRef::Axis1Placement(i) => ExternalIdentificationItemRefView::Axis1Placement(model.axis1_placement_arena.get(i.0)),
8386            ExternalIdentificationItemRef::Axis2Placement2d(i) => ExternalIdentificationItemRefView::Axis2Placement2d(model.axis2_placement2d_arena.get(i.0)),
8387            ExternalIdentificationItemRef::Axis2Placement3d(i) => ExternalIdentificationItemRefView::Axis2Placement3d(model.axis2_placement3d_arena.get(i.0)),
8388            ExternalIdentificationItemRef::BSplineCurve(i) => ExternalIdentificationItemRefView::BSplineCurve(model.b_spline_curve_arena.get(i.0)),
8389            ExternalIdentificationItemRef::BSplineCurveWithKnots(i) => ExternalIdentificationItemRefView::BSplineCurveWithKnots(model.b_spline_curve_with_knots_arena.get(i.0)),
8390            ExternalIdentificationItemRef::BSplineSurface(i) => ExternalIdentificationItemRefView::BSplineSurface(model.b_spline_surface_arena.get(i.0)),
8391            ExternalIdentificationItemRef::BSplineSurfaceWithKnots(i) => ExternalIdentificationItemRefView::BSplineSurfaceWithKnots(model.b_spline_surface_with_knots_arena.get(i.0)),
8392            ExternalIdentificationItemRef::BezierCurve(i) => ExternalIdentificationItemRefView::BezierCurve(model.bezier_curve_arena.get(i.0)),
8393            ExternalIdentificationItemRef::BezierSurface(i) => ExternalIdentificationItemRefView::BezierSurface(model.bezier_surface_arena.get(i.0)),
8394            ExternalIdentificationItemRef::BoundedCurve(i) => ExternalIdentificationItemRefView::BoundedCurve(model.bounded_curve_arena.get(i.0)),
8395            ExternalIdentificationItemRef::BoundedPcurve(i) => ExternalIdentificationItemRefView::BoundedPcurve(model.bounded_pcurve_arena.get(i.0)),
8396            ExternalIdentificationItemRef::BoundedSurface(i) => ExternalIdentificationItemRefView::BoundedSurface(model.bounded_surface_arena.get(i.0)),
8397            ExternalIdentificationItemRef::BoundedSurfaceCurve(i) => ExternalIdentificationItemRefView::BoundedSurfaceCurve(model.bounded_surface_curve_arena.get(i.0)),
8398            ExternalIdentificationItemRef::BrepWithVoids(i) => ExternalIdentificationItemRefView::BrepWithVoids(model.brep_with_voids_arena.get(i.0)),
8399            ExternalIdentificationItemRef::CameraImage(i) => ExternalIdentificationItemRefView::CameraImage(model.camera_image_arena.get(i.0)),
8400            ExternalIdentificationItemRef::CameraImage3dWithScale(i) => ExternalIdentificationItemRefView::CameraImage3dWithScale(model.camera_image3d_with_scale_arena.get(i.0)),
8401            ExternalIdentificationItemRef::CameraModel(i) => ExternalIdentificationItemRefView::CameraModel(model.camera_model_arena.get(i.0)),
8402            ExternalIdentificationItemRef::CameraModelD3(i) => ExternalIdentificationItemRefView::CameraModelD3(model.camera_model_d3_arena.get(i.0)),
8403            ExternalIdentificationItemRef::CameraModelD3MultiClipping(i) => ExternalIdentificationItemRefView::CameraModelD3MultiClipping(model.camera_model_d3_multi_clipping_arena.get(i.0)),
8404            ExternalIdentificationItemRef::CameraModelD3WithHlhsr(i) => ExternalIdentificationItemRefView::CameraModelD3WithHlhsr(model.camera_model_d3_with_hlhsr_arena.get(i.0)),
8405            ExternalIdentificationItemRef::CartesianPoint(i) => ExternalIdentificationItemRefView::CartesianPoint(model.cartesian_point_arena.get(i.0)),
8406            ExternalIdentificationItemRef::CcDesignDateAndTimeAssignment(i) => ExternalIdentificationItemRefView::CcDesignDateAndTimeAssignment(model.cc_design_date_and_time_assignment_arena.get(i.0)),
8407            ExternalIdentificationItemRef::Certification(i) => ExternalIdentificationItemRefView::Certification(model.certification_arena.get(i.0)),
8408            ExternalIdentificationItemRef::CharacterizedRepresentation(i) => ExternalIdentificationItemRefView::CharacterizedRepresentation(model.characterized_representation_arena.get(i.0)),
8409            ExternalIdentificationItemRef::Circle(i) => ExternalIdentificationItemRefView::Circle(model.circle_arena.get(i.0)),
8410            ExternalIdentificationItemRef::ClosedShell(i) => ExternalIdentificationItemRefView::ClosedShell(model.closed_shell_arena.get(i.0)),
8411            ExternalIdentificationItemRef::ComplexTriangulatedFace(i) => ExternalIdentificationItemRefView::ComplexTriangulatedFace(model.complex_triangulated_face_arena.get(i.0)),
8412            ExternalIdentificationItemRef::ComplexTriangulatedSurfaceSet(i) => ExternalIdentificationItemRefView::ComplexTriangulatedSurfaceSet(model.complex_triangulated_surface_set_arena.get(i.0)),
8413            ExternalIdentificationItemRef::CompositeCurve(i) => ExternalIdentificationItemRefView::CompositeCurve(model.composite_curve_arena.get(i.0)),
8414            ExternalIdentificationItemRef::CompositeText(i) => ExternalIdentificationItemRefView::CompositeText(model.composite_text_arena.get(i.0)),
8415            ExternalIdentificationItemRef::CompoundRepresentationItem(i) => ExternalIdentificationItemRefView::CompoundRepresentationItem(model.compound_representation_item_arena.get(i.0)),
8416            ExternalIdentificationItemRef::ConfigurationEffectivity(i) => ExternalIdentificationItemRefView::ConfigurationEffectivity(model.configuration_effectivity_arena.get(i.0)),
8417            ExternalIdentificationItemRef::Conic(i) => ExternalIdentificationItemRefView::Conic(model.conic_arena.get(i.0)),
8418            ExternalIdentificationItemRef::ConicalSurface(i) => ExternalIdentificationItemRefView::ConicalSurface(model.conical_surface_arena.get(i.0)),
8419            ExternalIdentificationItemRef::ConnectedFaceSet(i) => ExternalIdentificationItemRefView::ConnectedFaceSet(model.connected_face_set_arena.get(i.0)),
8420            ExternalIdentificationItemRef::ConstructiveGeometryRepresentation(i) => ExternalIdentificationItemRefView::ConstructiveGeometryRepresentation(model.constructive_geometry_representation_arena.get(i.0)),
8421            ExternalIdentificationItemRef::ContextDependentOverRidingStyledItem(i) => ExternalIdentificationItemRefView::ContextDependentOverRidingStyledItem(model.context_dependent_over_riding_styled_item_arena.get(i.0)),
8422            ExternalIdentificationItemRef::ContextDependentUnit(i) => ExternalIdentificationItemRefView::ContextDependentUnit(model.context_dependent_unit_arena.get(i.0)),
8423            ExternalIdentificationItemRef::Contract(i) => ExternalIdentificationItemRefView::Contract(model.contract_arena.get(i.0)),
8424            ExternalIdentificationItemRef::ConversionBasedUnit(i) => ExternalIdentificationItemRefView::ConversionBasedUnit(model.conversion_based_unit_arena.get(i.0)),
8425            ExternalIdentificationItemRef::CoordinatesList(i) => ExternalIdentificationItemRefView::CoordinatesList(model.coordinates_list_arena.get(i.0)),
8426            ExternalIdentificationItemRef::Curve(i) => ExternalIdentificationItemRefView::Curve(model.curve_arena.get(i.0)),
8427            ExternalIdentificationItemRef::CylindricalSurface(i) => ExternalIdentificationItemRefView::CylindricalSurface(model.cylindrical_surface_arena.get(i.0)),
8428            ExternalIdentificationItemRef::DateAndTimeAssignment(i) => ExternalIdentificationItemRefView::DateAndTimeAssignment(model.date_and_time_assignment_arena.get(i.0)),
8429            ExternalIdentificationItemRef::DefinedCharacterGlyph(i) => ExternalIdentificationItemRefView::DefinedCharacterGlyph(model.defined_character_glyph_arena.get(i.0)),
8430            ExternalIdentificationItemRef::DefinedSymbol(i) => ExternalIdentificationItemRefView::DefinedSymbol(model.defined_symbol_arena.get(i.0)),
8431            ExternalIdentificationItemRef::DefinitionalRepresentation(i) => ExternalIdentificationItemRefView::DefinitionalRepresentation(model.definitional_representation_arena.get(i.0)),
8432            ExternalIdentificationItemRef::DegenerateToroidalSurface(i) => ExternalIdentificationItemRefView::DegenerateToroidalSurface(model.degenerate_toroidal_surface_arena.get(i.0)),
8433            ExternalIdentificationItemRef::DerivedUnit(i) => ExternalIdentificationItemRefView::DerivedUnit(model.derived_unit_arena.get(i.0)),
8434            ExternalIdentificationItemRef::DescriptiveRepresentationItem(i) => ExternalIdentificationItemRefView::DescriptiveRepresentationItem(model.descriptive_representation_item_arena.get(i.0)),
8435            ExternalIdentificationItemRef::DesignContext(i) => ExternalIdentificationItemRefView::DesignContext(model.design_context_arena.get(i.0)),
8436            ExternalIdentificationItemRef::Direction(i) => ExternalIdentificationItemRefView::Direction(model.direction_arena.get(i.0)),
8437            ExternalIdentificationItemRef::DocumentFile(i) => ExternalIdentificationItemRefView::DocumentFile(model.document_file_arena.get(i.0)),
8438            ExternalIdentificationItemRef::DraughtingAnnotationOccurrence(i) => ExternalIdentificationItemRefView::DraughtingAnnotationOccurrence(model.draughting_annotation_occurrence_arena.get(i.0)),
8439            ExternalIdentificationItemRef::DraughtingCallout(i) => ExternalIdentificationItemRefView::DraughtingCallout(model.draughting_callout_arena.get(i.0)),
8440            ExternalIdentificationItemRef::DraughtingModel(i) => ExternalIdentificationItemRefView::DraughtingModel(model.draughting_model_arena.get(i.0)),
8441            ExternalIdentificationItemRef::Edge(i) => ExternalIdentificationItemRefView::Edge(model.edge_arena.get(i.0)),
8442            ExternalIdentificationItemRef::EdgeCurve(i) => ExternalIdentificationItemRefView::EdgeCurve(model.edge_curve_arena.get(i.0)),
8443            ExternalIdentificationItemRef::EdgeLoop(i) => ExternalIdentificationItemRefView::EdgeLoop(model.edge_loop_arena.get(i.0)),
8444            ExternalIdentificationItemRef::Effectivity(i) => ExternalIdentificationItemRefView::Effectivity(model.effectivity_arena.get(i.0)),
8445            ExternalIdentificationItemRef::ElementarySurface(i) => ExternalIdentificationItemRefView::ElementarySurface(model.elementary_surface_arena.get(i.0)),
8446            ExternalIdentificationItemRef::Ellipse(i) => ExternalIdentificationItemRefView::Ellipse(model.ellipse_arena.get(i.0)),
8447            ExternalIdentificationItemRef::ExternalSource(i) => ExternalIdentificationItemRefView::ExternalSource(model.external_source_arena.get(i.0)),
8448            ExternalIdentificationItemRef::ExternallyDefinedHatchStyle(i) => ExternalIdentificationItemRefView::ExternallyDefinedHatchStyle(model.externally_defined_hatch_style_arena.get(i.0)),
8449            ExternalIdentificationItemRef::ExternallyDefinedTileStyle(i) => ExternalIdentificationItemRefView::ExternallyDefinedTileStyle(model.externally_defined_tile_style_arena.get(i.0)),
8450            ExternalIdentificationItemRef::Face(i) => ExternalIdentificationItemRefView::Face(model.face_arena.get(i.0)),
8451            ExternalIdentificationItemRef::FaceBound(i) => ExternalIdentificationItemRefView::FaceBound(model.face_bound_arena.get(i.0)),
8452            ExternalIdentificationItemRef::FaceOuterBound(i) => ExternalIdentificationItemRefView::FaceOuterBound(model.face_outer_bound_arena.get(i.0)),
8453            ExternalIdentificationItemRef::FaceSurface(i) => ExternalIdentificationItemRefView::FaceSurface(model.face_surface_arena.get(i.0)),
8454            ExternalIdentificationItemRef::FillAreaStyleHatching(i) => ExternalIdentificationItemRefView::FillAreaStyleHatching(model.fill_area_style_hatching_arena.get(i.0)),
8455            ExternalIdentificationItemRef::FillAreaStyleTileColouredRegion(i) => ExternalIdentificationItemRefView::FillAreaStyleTileColouredRegion(model.fill_area_style_tile_coloured_region_arena.get(i.0)),
8456            ExternalIdentificationItemRef::FillAreaStyleTileCurveWithStyle(i) => ExternalIdentificationItemRefView::FillAreaStyleTileCurveWithStyle(model.fill_area_style_tile_curve_with_style_arena.get(i.0)),
8457            ExternalIdentificationItemRef::FillAreaStyleTileSymbolWithStyle(i) => ExternalIdentificationItemRefView::FillAreaStyleTileSymbolWithStyle(model.fill_area_style_tile_symbol_with_style_arena.get(i.0)),
8458            ExternalIdentificationItemRef::FillAreaStyleTiles(i) => ExternalIdentificationItemRefView::FillAreaStyleTiles(model.fill_area_style_tiles_arena.get(i.0)),
8459            ExternalIdentificationItemRef::GeneralProperty(i) => ExternalIdentificationItemRefView::GeneralProperty(model.general_property_arena.get(i.0)),
8460            ExternalIdentificationItemRef::GenericProductDefinitionReference(i) => ExternalIdentificationItemRefView::GenericProductDefinitionReference(model.generic_product_definition_reference_arena.get(i.0)),
8461            ExternalIdentificationItemRef::GeometricCurveSet(i) => ExternalIdentificationItemRefView::GeometricCurveSet(model.geometric_curve_set_arena.get(i.0)),
8462            ExternalIdentificationItemRef::GeometricRepresentationItem(i) => ExternalIdentificationItemRefView::GeometricRepresentationItem(model.geometric_representation_item_arena.get(i.0)),
8463            ExternalIdentificationItemRef::GeometricSet(i) => ExternalIdentificationItemRefView::GeometricSet(model.geometric_set_arena.get(i.0)),
8464            ExternalIdentificationItemRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => ExternalIdentificationItemRefView::GeometricallyBoundedSurfaceShapeRepresentation(model.geometrically_bounded_surface_shape_representation_arena.get(i.0)),
8465            ExternalIdentificationItemRef::GeometricallyBoundedWireframeShapeRepresentation(i) => ExternalIdentificationItemRefView::GeometricallyBoundedWireframeShapeRepresentation(model.geometrically_bounded_wireframe_shape_representation_arena.get(i.0)),
8466            ExternalIdentificationItemRef::Group(i) => ExternalIdentificationItemRefView::Group(model.group_arena.get(i.0)),
8467            ExternalIdentificationItemRef::Hyperbola(i) => ExternalIdentificationItemRefView::Hyperbola(model.hyperbola_arena.get(i.0)),
8468            ExternalIdentificationItemRef::IntegerRepresentationItem(i) => ExternalIdentificationItemRefView::IntegerRepresentationItem(model.integer_representation_item_arena.get(i.0)),
8469            ExternalIdentificationItemRef::IntersectionCurve(i) => ExternalIdentificationItemRefView::IntersectionCurve(model.intersection_curve_arena.get(i.0)),
8470            ExternalIdentificationItemRef::LeaderCurve(i) => ExternalIdentificationItemRefView::LeaderCurve(model.leader_curve_arena.get(i.0)),
8471            ExternalIdentificationItemRef::LeaderDirectedCallout(i) => ExternalIdentificationItemRefView::LeaderDirectedCallout(model.leader_directed_callout_arena.get(i.0)),
8472            ExternalIdentificationItemRef::LeaderTerminator(i) => ExternalIdentificationItemRefView::LeaderTerminator(model.leader_terminator_arena.get(i.0)),
8473            ExternalIdentificationItemRef::LengthUnit(i) => ExternalIdentificationItemRefView::LengthUnit(model.length_unit_arena.get(i.0)),
8474            ExternalIdentificationItemRef::Line(i) => ExternalIdentificationItemRefView::Line(model.line_arena.get(i.0)),
8475            ExternalIdentificationItemRef::Loop(i) => ExternalIdentificationItemRefView::Loop(model.loop_arena.get(i.0)),
8476            ExternalIdentificationItemRef::ManifoldSolidBrep(i) => ExternalIdentificationItemRefView::ManifoldSolidBrep(model.manifold_solid_brep_arena.get(i.0)),
8477            ExternalIdentificationItemRef::ManifoldSurfaceShapeRepresentation(i) => ExternalIdentificationItemRefView::ManifoldSurfaceShapeRepresentation(model.manifold_surface_shape_representation_arena.get(i.0)),
8478            ExternalIdentificationItemRef::MappedItem(i) => ExternalIdentificationItemRefView::MappedItem(model.mapped_item_arena.get(i.0)),
8479            ExternalIdentificationItemRef::MassUnit(i) => ExternalIdentificationItemRefView::MassUnit(model.mass_unit_arena.get(i.0)),
8480            ExternalIdentificationItemRef::MeasureRepresentationItem(i) => ExternalIdentificationItemRefView::MeasureRepresentationItem(model.measure_representation_item_arena.get(i.0)),
8481            ExternalIdentificationItemRef::MechanicalDesignGeometricPresentationRepresentation(i) => ExternalIdentificationItemRefView::MechanicalDesignGeometricPresentationRepresentation(model.mechanical_design_geometric_presentation_representation_arena.get(i.0)),
8482            ExternalIdentificationItemRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => ExternalIdentificationItemRefView::MechanicalDesignPresentationRepresentationWithDraughting(model.mechanical_design_presentation_representation_with_draughting_arena.get(i.0)),
8483            ExternalIdentificationItemRef::MechanicalDesignShadedPresentationRepresentation(i) => ExternalIdentificationItemRefView::MechanicalDesignShadedPresentationRepresentation(model.mechanical_design_shaded_presentation_representation_arena.get(i.0)),
8484            ExternalIdentificationItemRef::NamedUnit(i) => ExternalIdentificationItemRefView::NamedUnit(model.named_unit_arena.get(i.0)),
8485            ExternalIdentificationItemRef::NextAssemblyUsageOccurrence(i) => ExternalIdentificationItemRefView::NextAssemblyUsageOccurrence(model.next_assembly_usage_occurrence_arena.get(i.0)),
8486            ExternalIdentificationItemRef::OffsetSurface(i) => ExternalIdentificationItemRefView::OffsetSurface(model.offset_surface_arena.get(i.0)),
8487            ExternalIdentificationItemRef::OneDirectionRepeatFactor(i) => ExternalIdentificationItemRefView::OneDirectionRepeatFactor(model.one_direction_repeat_factor_arena.get(i.0)),
8488            ExternalIdentificationItemRef::OpenShell(i) => ExternalIdentificationItemRefView::OpenShell(model.open_shell_arena.get(i.0)),
8489            ExternalIdentificationItemRef::Organization(i) => ExternalIdentificationItemRefView::Organization(model.organization_arena.get(i.0)),
8490            ExternalIdentificationItemRef::OrganizationalAddress(i) => ExternalIdentificationItemRefView::OrganizationalAddress(model.organizational_address_arena.get(i.0)),
8491            ExternalIdentificationItemRef::OrganizationalProject(i) => ExternalIdentificationItemRefView::OrganizationalProject(model.organizational_project_arena.get(i.0)),
8492            ExternalIdentificationItemRef::OrientedClosedShell(i) => ExternalIdentificationItemRefView::OrientedClosedShell(model.oriented_closed_shell_arena.get(i.0)),
8493            ExternalIdentificationItemRef::OrientedEdge(i) => ExternalIdentificationItemRefView::OrientedEdge(model.oriented_edge_arena.get(i.0)),
8494            ExternalIdentificationItemRef::OverRidingStyledItem(i) => ExternalIdentificationItemRefView::OverRidingStyledItem(model.over_riding_styled_item_arena.get(i.0)),
8495            ExternalIdentificationItemRef::Path(i) => ExternalIdentificationItemRefView::Path(model.path_arena.get(i.0)),
8496            ExternalIdentificationItemRef::Pcurve(i) => ExternalIdentificationItemRefView::Pcurve(model.pcurve_arena.get(i.0)),
8497            ExternalIdentificationItemRef::Person(i) => ExternalIdentificationItemRefView::Person(model.person_arena.get(i.0)),
8498            ExternalIdentificationItemRef::PersonAndOrganization(i) => ExternalIdentificationItemRefView::PersonAndOrganization(model.person_and_organization_arena.get(i.0)),
8499            ExternalIdentificationItemRef::PersonAndOrganizationAddress(i) => ExternalIdentificationItemRefView::PersonAndOrganizationAddress(model.person_and_organization_address_arena.get(i.0)),
8500            ExternalIdentificationItemRef::PersonalAddress(i) => ExternalIdentificationItemRefView::PersonalAddress(model.personal_address_arena.get(i.0)),
8501            ExternalIdentificationItemRef::Placement(i) => ExternalIdentificationItemRefView::Placement(model.placement_arena.get(i.0)),
8502            ExternalIdentificationItemRef::PlanarBox(i) => ExternalIdentificationItemRefView::PlanarBox(model.planar_box_arena.get(i.0)),
8503            ExternalIdentificationItemRef::PlanarExtent(i) => ExternalIdentificationItemRefView::PlanarExtent(model.planar_extent_arena.get(i.0)),
8504            ExternalIdentificationItemRef::Plane(i) => ExternalIdentificationItemRefView::Plane(model.plane_arena.get(i.0)),
8505            ExternalIdentificationItemRef::PlaneAngleUnit(i) => ExternalIdentificationItemRefView::PlaneAngleUnit(model.plane_angle_unit_arena.get(i.0)),
8506            ExternalIdentificationItemRef::Point(i) => ExternalIdentificationItemRefView::Point(model.point_arena.get(i.0)),
8507            ExternalIdentificationItemRef::PolyLoop(i) => ExternalIdentificationItemRefView::PolyLoop(model.poly_loop_arena.get(i.0)),
8508            ExternalIdentificationItemRef::Polyline(i) => ExternalIdentificationItemRefView::Polyline(model.polyline_arena.get(i.0)),
8509            ExternalIdentificationItemRef::PrecisionQualifier(i) => ExternalIdentificationItemRefView::PrecisionQualifier(model.precision_qualifier_arena.get(i.0)),
8510            ExternalIdentificationItemRef::PresentationArea(i) => ExternalIdentificationItemRefView::PresentationArea(model.presentation_area_arena.get(i.0)),
8511            ExternalIdentificationItemRef::PresentationRepresentation(i) => ExternalIdentificationItemRefView::PresentationRepresentation(model.presentation_representation_arena.get(i.0)),
8512            ExternalIdentificationItemRef::PresentationView(i) => ExternalIdentificationItemRefView::PresentationView(model.presentation_view_arena.get(i.0)),
8513            ExternalIdentificationItemRef::Product(i) => ExternalIdentificationItemRefView::Product(model.product_arena.get(i.0)),
8514            ExternalIdentificationItemRef::ProductConcept(i) => ExternalIdentificationItemRefView::ProductConcept(model.product_concept_arena.get(i.0)),
8515            ExternalIdentificationItemRef::ProductConceptContext(i) => ExternalIdentificationItemRefView::ProductConceptContext(model.product_concept_context_arena.get(i.0)),
8516            ExternalIdentificationItemRef::ProductConceptFeatureCategory(i) => ExternalIdentificationItemRefView::ProductConceptFeatureCategory(model.product_concept_feature_category_arena.get(i.0)),
8517            ExternalIdentificationItemRef::ProductDefinition(i) => ExternalIdentificationItemRefView::ProductDefinition(model.product_definition_arena.get(i.0)),
8518            ExternalIdentificationItemRef::ProductDefinitionContext(i) => ExternalIdentificationItemRefView::ProductDefinitionContext(model.product_definition_context_arena.get(i.0)),
8519            ExternalIdentificationItemRef::ProductDefinitionEffectivity(i) => ExternalIdentificationItemRefView::ProductDefinitionEffectivity(model.product_definition_effectivity_arena.get(i.0)),
8520            ExternalIdentificationItemRef::ProductDefinitionFormation(i) => ExternalIdentificationItemRefView::ProductDefinitionFormation(model.product_definition_formation_arena.get(i.0)),
8521            ExternalIdentificationItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => ExternalIdentificationItemRefView::ProductDefinitionFormationWithSpecifiedSource(model.product_definition_formation_with_specified_source_arena.get(i.0)),
8522            ExternalIdentificationItemRef::ProductDefinitionOccurrence(i) => ExternalIdentificationItemRefView::ProductDefinitionOccurrence(model.product_definition_occurrence_arena.get(i.0)),
8523            ExternalIdentificationItemRef::ProductDefinitionShape(i) => ExternalIdentificationItemRefView::ProductDefinitionShape(model.product_definition_shape_arena.get(i.0)),
8524            ExternalIdentificationItemRef::ProductDefinitionWithAssociatedDocuments(i) => ExternalIdentificationItemRefView::ProductDefinitionWithAssociatedDocuments(model.product_definition_with_associated_documents_arena.get(i.0)),
8525            ExternalIdentificationItemRef::PropertyDefinition(i) => ExternalIdentificationItemRefView::PropertyDefinition(model.property_definition_arena.get(i.0)),
8526            ExternalIdentificationItemRef::QualifiedRepresentationItem(i) => ExternalIdentificationItemRefView::QualifiedRepresentationItem(model.qualified_representation_item_arena.get(i.0)),
8527            ExternalIdentificationItemRef::QuasiUniformCurve(i) => ExternalIdentificationItemRefView::QuasiUniformCurve(model.quasi_uniform_curve_arena.get(i.0)),
8528            ExternalIdentificationItemRef::QuasiUniformSurface(i) => ExternalIdentificationItemRefView::QuasiUniformSurface(model.quasi_uniform_surface_arena.get(i.0)),
8529            ExternalIdentificationItemRef::RatioUnit(i) => ExternalIdentificationItemRefView::RatioUnit(model.ratio_unit_arena.get(i.0)),
8530            ExternalIdentificationItemRef::RationalBSplineCurve(i) => ExternalIdentificationItemRefView::RationalBSplineCurve(model.rational_b_spline_curve_arena.get(i.0)),
8531            ExternalIdentificationItemRef::RationalBSplineSurface(i) => ExternalIdentificationItemRefView::RationalBSplineSurface(model.rational_b_spline_surface_arena.get(i.0)),
8532            ExternalIdentificationItemRef::RealRepresentationItem(i) => ExternalIdentificationItemRefView::RealRepresentationItem(model.real_representation_item_arena.get(i.0)),
8533            ExternalIdentificationItemRef::RepositionedTessellatedItem(i) => ExternalIdentificationItemRefView::RepositionedTessellatedItem(model.repositioned_tessellated_item_arena.get(i.0)),
8534            ExternalIdentificationItemRef::Representation(i) => ExternalIdentificationItemRefView::Representation(model.representation_arena.get(i.0)),
8535            ExternalIdentificationItemRef::RepresentationItem(i) => ExternalIdentificationItemRefView::RepresentationItem(model.representation_item_arena.get(i.0)),
8536            ExternalIdentificationItemRef::SeamCurve(i) => ExternalIdentificationItemRefView::SeamCurve(model.seam_curve_arena.get(i.0)),
8537            ExternalIdentificationItemRef::SecurityClassification(i) => ExternalIdentificationItemRefView::SecurityClassification(model.security_classification_arena.get(i.0)),
8538            ExternalIdentificationItemRef::ShapeDimensionRepresentation(i) => ExternalIdentificationItemRefView::ShapeDimensionRepresentation(model.shape_dimension_representation_arena.get(i.0)),
8539            ExternalIdentificationItemRef::ShapeRepresentation(i) => ExternalIdentificationItemRefView::ShapeRepresentation(model.shape_representation_arena.get(i.0)),
8540            ExternalIdentificationItemRef::ShapeRepresentationWithParameters(i) => ExternalIdentificationItemRefView::ShapeRepresentationWithParameters(model.shape_representation_with_parameters_arena.get(i.0)),
8541            ExternalIdentificationItemRef::ShellBasedSurfaceModel(i) => ExternalIdentificationItemRefView::ShellBasedSurfaceModel(model.shell_based_surface_model_arena.get(i.0)),
8542            ExternalIdentificationItemRef::SiUnit(i) => ExternalIdentificationItemRefView::SiUnit(model.si_unit_arena.get(i.0)),
8543            ExternalIdentificationItemRef::SolidAngleUnit(i) => ExternalIdentificationItemRefView::SolidAngleUnit(model.solid_angle_unit_arena.get(i.0)),
8544            ExternalIdentificationItemRef::SolidModel(i) => ExternalIdentificationItemRefView::SolidModel(model.solid_model_arena.get(i.0)),
8545            ExternalIdentificationItemRef::SphericalSurface(i) => ExternalIdentificationItemRefView::SphericalSurface(model.spherical_surface_arena.get(i.0)),
8546            ExternalIdentificationItemRef::StateObserved(i) => ExternalIdentificationItemRefView::StateObserved(model.state_observed_arena.get(i.0)),
8547            ExternalIdentificationItemRef::StateType(i) => ExternalIdentificationItemRefView::StateType(model.state_type_arena.get(i.0)),
8548            ExternalIdentificationItemRef::StyledItem(i) => ExternalIdentificationItemRefView::StyledItem(model.styled_item_arena.get(i.0)),
8549            ExternalIdentificationItemRef::Surface(i) => ExternalIdentificationItemRefView::Surface(model.surface_arena.get(i.0)),
8550            ExternalIdentificationItemRef::SurfaceCurve(i) => ExternalIdentificationItemRefView::SurfaceCurve(model.surface_curve_arena.get(i.0)),
8551            ExternalIdentificationItemRef::SurfaceOfLinearExtrusion(i) => ExternalIdentificationItemRefView::SurfaceOfLinearExtrusion(model.surface_of_linear_extrusion_arena.get(i.0)),
8552            ExternalIdentificationItemRef::SurfaceOfRevolution(i) => ExternalIdentificationItemRefView::SurfaceOfRevolution(model.surface_of_revolution_arena.get(i.0)),
8553            ExternalIdentificationItemRef::SweptSurface(i) => ExternalIdentificationItemRefView::SweptSurface(model.swept_surface_arena.get(i.0)),
8554            ExternalIdentificationItemRef::SymbolRepresentation(i) => ExternalIdentificationItemRefView::SymbolRepresentation(model.symbol_representation_arena.get(i.0)),
8555            ExternalIdentificationItemRef::SymbolTarget(i) => ExternalIdentificationItemRefView::SymbolTarget(model.symbol_target_arena.get(i.0)),
8556            ExternalIdentificationItemRef::TerminatorSymbol(i) => ExternalIdentificationItemRefView::TerminatorSymbol(model.terminator_symbol_arena.get(i.0)),
8557            ExternalIdentificationItemRef::TessellatedAnnotationOccurrence(i) => ExternalIdentificationItemRefView::TessellatedAnnotationOccurrence(model.tessellated_annotation_occurrence_arena.get(i.0)),
8558            ExternalIdentificationItemRef::TessellatedCurveSet(i) => ExternalIdentificationItemRefView::TessellatedCurveSet(model.tessellated_curve_set_arena.get(i.0)),
8559            ExternalIdentificationItemRef::TessellatedFace(i) => ExternalIdentificationItemRefView::TessellatedFace(model.tessellated_face_arena.get(i.0)),
8560            ExternalIdentificationItemRef::TessellatedGeometricSet(i) => ExternalIdentificationItemRefView::TessellatedGeometricSet(model.tessellated_geometric_set_arena.get(i.0)),
8561            ExternalIdentificationItemRef::TessellatedItem(i) => ExternalIdentificationItemRefView::TessellatedItem(model.tessellated_item_arena.get(i.0)),
8562            ExternalIdentificationItemRef::TessellatedShapeRepresentation(i) => ExternalIdentificationItemRefView::TessellatedShapeRepresentation(model.tessellated_shape_representation_arena.get(i.0)),
8563            ExternalIdentificationItemRef::TessellatedShell(i) => ExternalIdentificationItemRefView::TessellatedShell(model.tessellated_shell_arena.get(i.0)),
8564            ExternalIdentificationItemRef::TessellatedSolid(i) => ExternalIdentificationItemRefView::TessellatedSolid(model.tessellated_solid_arena.get(i.0)),
8565            ExternalIdentificationItemRef::TessellatedStructuredItem(i) => ExternalIdentificationItemRefView::TessellatedStructuredItem(model.tessellated_structured_item_arena.get(i.0)),
8566            ExternalIdentificationItemRef::TessellatedSurfaceSet(i) => ExternalIdentificationItemRefView::TessellatedSurfaceSet(model.tessellated_surface_set_arena.get(i.0)),
8567            ExternalIdentificationItemRef::TextLiteral(i) => ExternalIdentificationItemRefView::TextLiteral(model.text_literal_arena.get(i.0)),
8568            ExternalIdentificationItemRef::TimeUnit(i) => ExternalIdentificationItemRefView::TimeUnit(model.time_unit_arena.get(i.0)),
8569            ExternalIdentificationItemRef::TopologicalRepresentationItem(i) => ExternalIdentificationItemRefView::TopologicalRepresentationItem(model.topological_representation_item_arena.get(i.0)),
8570            ExternalIdentificationItemRef::ToroidalSurface(i) => ExternalIdentificationItemRefView::ToroidalSurface(model.toroidal_surface_arena.get(i.0)),
8571            ExternalIdentificationItemRef::TrimmedCurve(i) => ExternalIdentificationItemRefView::TrimmedCurve(model.trimmed_curve_arena.get(i.0)),
8572            ExternalIdentificationItemRef::TwoDirectionRepeatFactor(i) => ExternalIdentificationItemRefView::TwoDirectionRepeatFactor(model.two_direction_repeat_factor_arena.get(i.0)),
8573            ExternalIdentificationItemRef::TypeQualifier(i) => ExternalIdentificationItemRefView::TypeQualifier(model.type_qualifier_arena.get(i.0)),
8574            ExternalIdentificationItemRef::UncertaintyQualifier(i) => ExternalIdentificationItemRefView::UncertaintyQualifier(model.uncertainty_qualifier_arena.get(i.0)),
8575            ExternalIdentificationItemRef::UniformCurve(i) => ExternalIdentificationItemRefView::UniformCurve(model.uniform_curve_arena.get(i.0)),
8576            ExternalIdentificationItemRef::UniformSurface(i) => ExternalIdentificationItemRefView::UniformSurface(model.uniform_surface_arena.get(i.0)),
8577            ExternalIdentificationItemRef::ValueRepresentationItem(i) => ExternalIdentificationItemRefView::ValueRepresentationItem(model.value_representation_item_arena.get(i.0)),
8578            ExternalIdentificationItemRef::Vector(i) => ExternalIdentificationItemRefView::Vector(model.vector_arena.get(i.0)),
8579            ExternalIdentificationItemRef::VersionedActionRequest(i) => ExternalIdentificationItemRefView::VersionedActionRequest(model.versioned_action_request_arena.get(i.0)),
8580            ExternalIdentificationItemRef::Vertex(i) => ExternalIdentificationItemRefView::Vertex(model.vertex_arena.get(i.0)),
8581            ExternalIdentificationItemRef::VertexLoop(i) => ExternalIdentificationItemRefView::VertexLoop(model.vertex_loop_arena.get(i.0)),
8582            ExternalIdentificationItemRef::VertexPoint(i) => ExternalIdentificationItemRefView::VertexPoint(model.vertex_point_arena.get(i.0)),
8583            ExternalIdentificationItemRef::VertexShell(i) => ExternalIdentificationItemRefView::VertexShell(model.vertex_shell_arena.get(i.0)),
8584            ExternalIdentificationItemRef::VolumeUnit(i) => ExternalIdentificationItemRefView::VolumeUnit(model.volume_unit_arena.get(i.0)),
8585            ExternalIdentificationItemRef::WireShell(i) => ExternalIdentificationItemRefView::WireShell(model.wire_shell_arena.get(i.0)),
8586            ExternalIdentificationItemRef::Complex(i) => ExternalIdentificationItemRefView::Complex(model.complex_unit_arena.get(i.0)),
8587        }
8588    }
8589    pub fn entity_key(&self) -> EntityKey {
8590        match self {
8591            ExternalIdentificationItemRef::ActionDirective(i) => EntityKey::ActionDirective(*i),
8592            ExternalIdentificationItemRef::ActionMethod(i) => EntityKey::ActionMethod(*i),
8593            ExternalIdentificationItemRef::ActionMethodRelationship(i) => EntityKey::ActionMethodRelationship(*i),
8594            ExternalIdentificationItemRef::ActionRelationship(i) => EntityKey::ActionRelationship(*i),
8595            ExternalIdentificationItemRef::Address(i) => EntityKey::Address(*i),
8596            ExternalIdentificationItemRef::AdvancedBrepShapeRepresentation(i) => EntityKey::AdvancedBrepShapeRepresentation(*i),
8597            ExternalIdentificationItemRef::AdvancedFace(i) => EntityKey::AdvancedFace(*i),
8598            ExternalIdentificationItemRef::AnnotationCurveOccurrence(i) => EntityKey::AnnotationCurveOccurrence(*i),
8599            ExternalIdentificationItemRef::AnnotationFillAreaOccurrence(i) => EntityKey::AnnotationFillAreaOccurrence(*i),
8600            ExternalIdentificationItemRef::AnnotationOccurrence(i) => EntityKey::AnnotationOccurrence(*i),
8601            ExternalIdentificationItemRef::AnnotationPlaceholderLeaderLine(i) => EntityKey::AnnotationPlaceholderLeaderLine(*i),
8602            ExternalIdentificationItemRef::AnnotationPlaceholderOccurrence(i) => EntityKey::AnnotationPlaceholderOccurrence(*i),
8603            ExternalIdentificationItemRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => EntityKey::AnnotationPlaceholderOccurrenceWithLeaderLine(*i),
8604            ExternalIdentificationItemRef::AnnotationPlane(i) => EntityKey::AnnotationPlane(*i),
8605            ExternalIdentificationItemRef::AnnotationSymbol(i) => EntityKey::AnnotationSymbol(*i),
8606            ExternalIdentificationItemRef::AnnotationSymbolOccurrence(i) => EntityKey::AnnotationSymbolOccurrence(*i),
8607            ExternalIdentificationItemRef::AnnotationText(i) => EntityKey::AnnotationText(*i),
8608            ExternalIdentificationItemRef::AnnotationTextCharacter(i) => EntityKey::AnnotationTextCharacter(*i),
8609            ExternalIdentificationItemRef::AnnotationTextOccurrence(i) => EntityKey::AnnotationTextOccurrence(*i),
8610            ExternalIdentificationItemRef::AnnotationToAnnotationLeaderLine(i) => EntityKey::AnnotationToAnnotationLeaderLine(*i),
8611            ExternalIdentificationItemRef::AnnotationToModelLeaderLine(i) => EntityKey::AnnotationToModelLeaderLine(*i),
8612            ExternalIdentificationItemRef::ApllPoint(i) => EntityKey::ApllPoint(*i),
8613            ExternalIdentificationItemRef::ApllPointWithSurface(i) => EntityKey::ApllPointWithSurface(*i),
8614            ExternalIdentificationItemRef::AppliedDateAndTimeAssignment(i) => EntityKey::AppliedDateAndTimeAssignment(*i),
8615            ExternalIdentificationItemRef::AppliedExternalIdentificationAssignment(i) => EntityKey::AppliedExternalIdentificationAssignment(*i),
8616            ExternalIdentificationItemRef::Approval(i) => EntityKey::Approval(*i),
8617            ExternalIdentificationItemRef::ApprovalPersonOrganization(i) => EntityKey::ApprovalPersonOrganization(*i),
8618            ExternalIdentificationItemRef::ApprovalStatus(i) => EntityKey::ApprovalStatus(*i),
8619            ExternalIdentificationItemRef::AreaUnit(i) => EntityKey::AreaUnit(*i),
8620            ExternalIdentificationItemRef::AssemblyComponentUsage(i) => EntityKey::AssemblyComponentUsage(*i),
8621            ExternalIdentificationItemRef::AuxiliaryLeaderLine(i) => EntityKey::AuxiliaryLeaderLine(*i),
8622            ExternalIdentificationItemRef::Axis1Placement(i) => EntityKey::Axis1Placement(*i),
8623            ExternalIdentificationItemRef::Axis2Placement2d(i) => EntityKey::Axis2Placement2d(*i),
8624            ExternalIdentificationItemRef::Axis2Placement3d(i) => EntityKey::Axis2Placement3d(*i),
8625            ExternalIdentificationItemRef::BSplineCurve(i) => EntityKey::BSplineCurve(*i),
8626            ExternalIdentificationItemRef::BSplineCurveWithKnots(i) => EntityKey::BSplineCurveWithKnots(*i),
8627            ExternalIdentificationItemRef::BSplineSurface(i) => EntityKey::BSplineSurface(*i),
8628            ExternalIdentificationItemRef::BSplineSurfaceWithKnots(i) => EntityKey::BSplineSurfaceWithKnots(*i),
8629            ExternalIdentificationItemRef::BezierCurve(i) => EntityKey::BezierCurve(*i),
8630            ExternalIdentificationItemRef::BezierSurface(i) => EntityKey::BezierSurface(*i),
8631            ExternalIdentificationItemRef::BoundedCurve(i) => EntityKey::BoundedCurve(*i),
8632            ExternalIdentificationItemRef::BoundedPcurve(i) => EntityKey::BoundedPcurve(*i),
8633            ExternalIdentificationItemRef::BoundedSurface(i) => EntityKey::BoundedSurface(*i),
8634            ExternalIdentificationItemRef::BoundedSurfaceCurve(i) => EntityKey::BoundedSurfaceCurve(*i),
8635            ExternalIdentificationItemRef::BrepWithVoids(i) => EntityKey::BrepWithVoids(*i),
8636            ExternalIdentificationItemRef::CameraImage(i) => EntityKey::CameraImage(*i),
8637            ExternalIdentificationItemRef::CameraImage3dWithScale(i) => EntityKey::CameraImage3dWithScale(*i),
8638            ExternalIdentificationItemRef::CameraModel(i) => EntityKey::CameraModel(*i),
8639            ExternalIdentificationItemRef::CameraModelD3(i) => EntityKey::CameraModelD3(*i),
8640            ExternalIdentificationItemRef::CameraModelD3MultiClipping(i) => EntityKey::CameraModelD3MultiClipping(*i),
8641            ExternalIdentificationItemRef::CameraModelD3WithHlhsr(i) => EntityKey::CameraModelD3WithHlhsr(*i),
8642            ExternalIdentificationItemRef::CartesianPoint(i) => EntityKey::CartesianPoint(*i),
8643            ExternalIdentificationItemRef::CcDesignDateAndTimeAssignment(i) => EntityKey::CcDesignDateAndTimeAssignment(*i),
8644            ExternalIdentificationItemRef::Certification(i) => EntityKey::Certification(*i),
8645            ExternalIdentificationItemRef::CharacterizedRepresentation(i) => EntityKey::CharacterizedRepresentation(*i),
8646            ExternalIdentificationItemRef::Circle(i) => EntityKey::Circle(*i),
8647            ExternalIdentificationItemRef::ClosedShell(i) => EntityKey::ClosedShell(*i),
8648            ExternalIdentificationItemRef::ComplexTriangulatedFace(i) => EntityKey::ComplexTriangulatedFace(*i),
8649            ExternalIdentificationItemRef::ComplexTriangulatedSurfaceSet(i) => EntityKey::ComplexTriangulatedSurfaceSet(*i),
8650            ExternalIdentificationItemRef::CompositeCurve(i) => EntityKey::CompositeCurve(*i),
8651            ExternalIdentificationItemRef::CompositeText(i) => EntityKey::CompositeText(*i),
8652            ExternalIdentificationItemRef::CompoundRepresentationItem(i) => EntityKey::CompoundRepresentationItem(*i),
8653            ExternalIdentificationItemRef::ConfigurationEffectivity(i) => EntityKey::ConfigurationEffectivity(*i),
8654            ExternalIdentificationItemRef::Conic(i) => EntityKey::Conic(*i),
8655            ExternalIdentificationItemRef::ConicalSurface(i) => EntityKey::ConicalSurface(*i),
8656            ExternalIdentificationItemRef::ConnectedFaceSet(i) => EntityKey::ConnectedFaceSet(*i),
8657            ExternalIdentificationItemRef::ConstructiveGeometryRepresentation(i) => EntityKey::ConstructiveGeometryRepresentation(*i),
8658            ExternalIdentificationItemRef::ContextDependentOverRidingStyledItem(i) => EntityKey::ContextDependentOverRidingStyledItem(*i),
8659            ExternalIdentificationItemRef::ContextDependentUnit(i) => EntityKey::ContextDependentUnit(*i),
8660            ExternalIdentificationItemRef::Contract(i) => EntityKey::Contract(*i),
8661            ExternalIdentificationItemRef::ConversionBasedUnit(i) => EntityKey::ConversionBasedUnit(*i),
8662            ExternalIdentificationItemRef::CoordinatesList(i) => EntityKey::CoordinatesList(*i),
8663            ExternalIdentificationItemRef::Curve(i) => EntityKey::Curve(*i),
8664            ExternalIdentificationItemRef::CylindricalSurface(i) => EntityKey::CylindricalSurface(*i),
8665            ExternalIdentificationItemRef::DateAndTimeAssignment(i) => EntityKey::DateAndTimeAssignment(*i),
8666            ExternalIdentificationItemRef::DefinedCharacterGlyph(i) => EntityKey::DefinedCharacterGlyph(*i),
8667            ExternalIdentificationItemRef::DefinedSymbol(i) => EntityKey::DefinedSymbol(*i),
8668            ExternalIdentificationItemRef::DefinitionalRepresentation(i) => EntityKey::DefinitionalRepresentation(*i),
8669            ExternalIdentificationItemRef::DegenerateToroidalSurface(i) => EntityKey::DegenerateToroidalSurface(*i),
8670            ExternalIdentificationItemRef::DerivedUnit(i) => EntityKey::DerivedUnit(*i),
8671            ExternalIdentificationItemRef::DescriptiveRepresentationItem(i) => EntityKey::DescriptiveRepresentationItem(*i),
8672            ExternalIdentificationItemRef::DesignContext(i) => EntityKey::DesignContext(*i),
8673            ExternalIdentificationItemRef::Direction(i) => EntityKey::Direction(*i),
8674            ExternalIdentificationItemRef::DocumentFile(i) => EntityKey::DocumentFile(*i),
8675            ExternalIdentificationItemRef::DraughtingAnnotationOccurrence(i) => EntityKey::DraughtingAnnotationOccurrence(*i),
8676            ExternalIdentificationItemRef::DraughtingCallout(i) => EntityKey::DraughtingCallout(*i),
8677            ExternalIdentificationItemRef::DraughtingModel(i) => EntityKey::DraughtingModel(*i),
8678            ExternalIdentificationItemRef::Edge(i) => EntityKey::Edge(*i),
8679            ExternalIdentificationItemRef::EdgeCurve(i) => EntityKey::EdgeCurve(*i),
8680            ExternalIdentificationItemRef::EdgeLoop(i) => EntityKey::EdgeLoop(*i),
8681            ExternalIdentificationItemRef::Effectivity(i) => EntityKey::Effectivity(*i),
8682            ExternalIdentificationItemRef::ElementarySurface(i) => EntityKey::ElementarySurface(*i),
8683            ExternalIdentificationItemRef::Ellipse(i) => EntityKey::Ellipse(*i),
8684            ExternalIdentificationItemRef::ExternalSource(i) => EntityKey::ExternalSource(*i),
8685            ExternalIdentificationItemRef::ExternallyDefinedHatchStyle(i) => EntityKey::ExternallyDefinedHatchStyle(*i),
8686            ExternalIdentificationItemRef::ExternallyDefinedTileStyle(i) => EntityKey::ExternallyDefinedTileStyle(*i),
8687            ExternalIdentificationItemRef::Face(i) => EntityKey::Face(*i),
8688            ExternalIdentificationItemRef::FaceBound(i) => EntityKey::FaceBound(*i),
8689            ExternalIdentificationItemRef::FaceOuterBound(i) => EntityKey::FaceOuterBound(*i),
8690            ExternalIdentificationItemRef::FaceSurface(i) => EntityKey::FaceSurface(*i),
8691            ExternalIdentificationItemRef::FillAreaStyleHatching(i) => EntityKey::FillAreaStyleHatching(*i),
8692            ExternalIdentificationItemRef::FillAreaStyleTileColouredRegion(i) => EntityKey::FillAreaStyleTileColouredRegion(*i),
8693            ExternalIdentificationItemRef::FillAreaStyleTileCurveWithStyle(i) => EntityKey::FillAreaStyleTileCurveWithStyle(*i),
8694            ExternalIdentificationItemRef::FillAreaStyleTileSymbolWithStyle(i) => EntityKey::FillAreaStyleTileSymbolWithStyle(*i),
8695            ExternalIdentificationItemRef::FillAreaStyleTiles(i) => EntityKey::FillAreaStyleTiles(*i),
8696            ExternalIdentificationItemRef::GeneralProperty(i) => EntityKey::GeneralProperty(*i),
8697            ExternalIdentificationItemRef::GenericProductDefinitionReference(i) => EntityKey::GenericProductDefinitionReference(*i),
8698            ExternalIdentificationItemRef::GeometricCurveSet(i) => EntityKey::GeometricCurveSet(*i),
8699            ExternalIdentificationItemRef::GeometricRepresentationItem(i) => EntityKey::GeometricRepresentationItem(*i),
8700            ExternalIdentificationItemRef::GeometricSet(i) => EntityKey::GeometricSet(*i),
8701            ExternalIdentificationItemRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => EntityKey::GeometricallyBoundedSurfaceShapeRepresentation(*i),
8702            ExternalIdentificationItemRef::GeometricallyBoundedWireframeShapeRepresentation(i) => EntityKey::GeometricallyBoundedWireframeShapeRepresentation(*i),
8703            ExternalIdentificationItemRef::Group(i) => EntityKey::Group(*i),
8704            ExternalIdentificationItemRef::Hyperbola(i) => EntityKey::Hyperbola(*i),
8705            ExternalIdentificationItemRef::IntegerRepresentationItem(i) => EntityKey::IntegerRepresentationItem(*i),
8706            ExternalIdentificationItemRef::IntersectionCurve(i) => EntityKey::IntersectionCurve(*i),
8707            ExternalIdentificationItemRef::LeaderCurve(i) => EntityKey::LeaderCurve(*i),
8708            ExternalIdentificationItemRef::LeaderDirectedCallout(i) => EntityKey::LeaderDirectedCallout(*i),
8709            ExternalIdentificationItemRef::LeaderTerminator(i) => EntityKey::LeaderTerminator(*i),
8710            ExternalIdentificationItemRef::LengthUnit(i) => EntityKey::LengthUnit(*i),
8711            ExternalIdentificationItemRef::Line(i) => EntityKey::Line(*i),
8712            ExternalIdentificationItemRef::Loop(i) => EntityKey::Loop(*i),
8713            ExternalIdentificationItemRef::ManifoldSolidBrep(i) => EntityKey::ManifoldSolidBrep(*i),
8714            ExternalIdentificationItemRef::ManifoldSurfaceShapeRepresentation(i) => EntityKey::ManifoldSurfaceShapeRepresentation(*i),
8715            ExternalIdentificationItemRef::MappedItem(i) => EntityKey::MappedItem(*i),
8716            ExternalIdentificationItemRef::MassUnit(i) => EntityKey::MassUnit(*i),
8717            ExternalIdentificationItemRef::MeasureRepresentationItem(i) => EntityKey::MeasureRepresentationItem(*i),
8718            ExternalIdentificationItemRef::MechanicalDesignGeometricPresentationRepresentation(i) => EntityKey::MechanicalDesignGeometricPresentationRepresentation(*i),
8719            ExternalIdentificationItemRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => EntityKey::MechanicalDesignPresentationRepresentationWithDraughting(*i),
8720            ExternalIdentificationItemRef::MechanicalDesignShadedPresentationRepresentation(i) => EntityKey::MechanicalDesignShadedPresentationRepresentation(*i),
8721            ExternalIdentificationItemRef::NamedUnit(i) => EntityKey::NamedUnit(*i),
8722            ExternalIdentificationItemRef::NextAssemblyUsageOccurrence(i) => EntityKey::NextAssemblyUsageOccurrence(*i),
8723            ExternalIdentificationItemRef::OffsetSurface(i) => EntityKey::OffsetSurface(*i),
8724            ExternalIdentificationItemRef::OneDirectionRepeatFactor(i) => EntityKey::OneDirectionRepeatFactor(*i),
8725            ExternalIdentificationItemRef::OpenShell(i) => EntityKey::OpenShell(*i),
8726            ExternalIdentificationItemRef::Organization(i) => EntityKey::Organization(*i),
8727            ExternalIdentificationItemRef::OrganizationalAddress(i) => EntityKey::OrganizationalAddress(*i),
8728            ExternalIdentificationItemRef::OrganizationalProject(i) => EntityKey::OrganizationalProject(*i),
8729            ExternalIdentificationItemRef::OrientedClosedShell(i) => EntityKey::OrientedClosedShell(*i),
8730            ExternalIdentificationItemRef::OrientedEdge(i) => EntityKey::OrientedEdge(*i),
8731            ExternalIdentificationItemRef::OverRidingStyledItem(i) => EntityKey::OverRidingStyledItem(*i),
8732            ExternalIdentificationItemRef::Path(i) => EntityKey::Path(*i),
8733            ExternalIdentificationItemRef::Pcurve(i) => EntityKey::Pcurve(*i),
8734            ExternalIdentificationItemRef::Person(i) => EntityKey::Person(*i),
8735            ExternalIdentificationItemRef::PersonAndOrganization(i) => EntityKey::PersonAndOrganization(*i),
8736            ExternalIdentificationItemRef::PersonAndOrganizationAddress(i) => EntityKey::PersonAndOrganizationAddress(*i),
8737            ExternalIdentificationItemRef::PersonalAddress(i) => EntityKey::PersonalAddress(*i),
8738            ExternalIdentificationItemRef::Placement(i) => EntityKey::Placement(*i),
8739            ExternalIdentificationItemRef::PlanarBox(i) => EntityKey::PlanarBox(*i),
8740            ExternalIdentificationItemRef::PlanarExtent(i) => EntityKey::PlanarExtent(*i),
8741            ExternalIdentificationItemRef::Plane(i) => EntityKey::Plane(*i),
8742            ExternalIdentificationItemRef::PlaneAngleUnit(i) => EntityKey::PlaneAngleUnit(*i),
8743            ExternalIdentificationItemRef::Point(i) => EntityKey::Point(*i),
8744            ExternalIdentificationItemRef::PolyLoop(i) => EntityKey::PolyLoop(*i),
8745            ExternalIdentificationItemRef::Polyline(i) => EntityKey::Polyline(*i),
8746            ExternalIdentificationItemRef::PrecisionQualifier(i) => EntityKey::PrecisionQualifier(*i),
8747            ExternalIdentificationItemRef::PresentationArea(i) => EntityKey::PresentationArea(*i),
8748            ExternalIdentificationItemRef::PresentationRepresentation(i) => EntityKey::PresentationRepresentation(*i),
8749            ExternalIdentificationItemRef::PresentationView(i) => EntityKey::PresentationView(*i),
8750            ExternalIdentificationItemRef::Product(i) => EntityKey::Product(*i),
8751            ExternalIdentificationItemRef::ProductConcept(i) => EntityKey::ProductConcept(*i),
8752            ExternalIdentificationItemRef::ProductConceptContext(i) => EntityKey::ProductConceptContext(*i),
8753            ExternalIdentificationItemRef::ProductConceptFeatureCategory(i) => EntityKey::ProductConceptFeatureCategory(*i),
8754            ExternalIdentificationItemRef::ProductDefinition(i) => EntityKey::ProductDefinition(*i),
8755            ExternalIdentificationItemRef::ProductDefinitionContext(i) => EntityKey::ProductDefinitionContext(*i),
8756            ExternalIdentificationItemRef::ProductDefinitionEffectivity(i) => EntityKey::ProductDefinitionEffectivity(*i),
8757            ExternalIdentificationItemRef::ProductDefinitionFormation(i) => EntityKey::ProductDefinitionFormation(*i),
8758            ExternalIdentificationItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => EntityKey::ProductDefinitionFormationWithSpecifiedSource(*i),
8759            ExternalIdentificationItemRef::ProductDefinitionOccurrence(i) => EntityKey::ProductDefinitionOccurrence(*i),
8760            ExternalIdentificationItemRef::ProductDefinitionShape(i) => EntityKey::ProductDefinitionShape(*i),
8761            ExternalIdentificationItemRef::ProductDefinitionWithAssociatedDocuments(i) => EntityKey::ProductDefinitionWithAssociatedDocuments(*i),
8762            ExternalIdentificationItemRef::PropertyDefinition(i) => EntityKey::PropertyDefinition(*i),
8763            ExternalIdentificationItemRef::QualifiedRepresentationItem(i) => EntityKey::QualifiedRepresentationItem(*i),
8764            ExternalIdentificationItemRef::QuasiUniformCurve(i) => EntityKey::QuasiUniformCurve(*i),
8765            ExternalIdentificationItemRef::QuasiUniformSurface(i) => EntityKey::QuasiUniformSurface(*i),
8766            ExternalIdentificationItemRef::RatioUnit(i) => EntityKey::RatioUnit(*i),
8767            ExternalIdentificationItemRef::RationalBSplineCurve(i) => EntityKey::RationalBSplineCurve(*i),
8768            ExternalIdentificationItemRef::RationalBSplineSurface(i) => EntityKey::RationalBSplineSurface(*i),
8769            ExternalIdentificationItemRef::RealRepresentationItem(i) => EntityKey::RealRepresentationItem(*i),
8770            ExternalIdentificationItemRef::RepositionedTessellatedItem(i) => EntityKey::RepositionedTessellatedItem(*i),
8771            ExternalIdentificationItemRef::Representation(i) => EntityKey::Representation(*i),
8772            ExternalIdentificationItemRef::RepresentationItem(i) => EntityKey::RepresentationItem(*i),
8773            ExternalIdentificationItemRef::SeamCurve(i) => EntityKey::SeamCurve(*i),
8774            ExternalIdentificationItemRef::SecurityClassification(i) => EntityKey::SecurityClassification(*i),
8775            ExternalIdentificationItemRef::ShapeDimensionRepresentation(i) => EntityKey::ShapeDimensionRepresentation(*i),
8776            ExternalIdentificationItemRef::ShapeRepresentation(i) => EntityKey::ShapeRepresentation(*i),
8777            ExternalIdentificationItemRef::ShapeRepresentationWithParameters(i) => EntityKey::ShapeRepresentationWithParameters(*i),
8778            ExternalIdentificationItemRef::ShellBasedSurfaceModel(i) => EntityKey::ShellBasedSurfaceModel(*i),
8779            ExternalIdentificationItemRef::SiUnit(i) => EntityKey::SiUnit(*i),
8780            ExternalIdentificationItemRef::SolidAngleUnit(i) => EntityKey::SolidAngleUnit(*i),
8781            ExternalIdentificationItemRef::SolidModel(i) => EntityKey::SolidModel(*i),
8782            ExternalIdentificationItemRef::SphericalSurface(i) => EntityKey::SphericalSurface(*i),
8783            ExternalIdentificationItemRef::StateObserved(i) => EntityKey::StateObserved(*i),
8784            ExternalIdentificationItemRef::StateType(i) => EntityKey::StateType(*i),
8785            ExternalIdentificationItemRef::StyledItem(i) => EntityKey::StyledItem(*i),
8786            ExternalIdentificationItemRef::Surface(i) => EntityKey::Surface(*i),
8787            ExternalIdentificationItemRef::SurfaceCurve(i) => EntityKey::SurfaceCurve(*i),
8788            ExternalIdentificationItemRef::SurfaceOfLinearExtrusion(i) => EntityKey::SurfaceOfLinearExtrusion(*i),
8789            ExternalIdentificationItemRef::SurfaceOfRevolution(i) => EntityKey::SurfaceOfRevolution(*i),
8790            ExternalIdentificationItemRef::SweptSurface(i) => EntityKey::SweptSurface(*i),
8791            ExternalIdentificationItemRef::SymbolRepresentation(i) => EntityKey::SymbolRepresentation(*i),
8792            ExternalIdentificationItemRef::SymbolTarget(i) => EntityKey::SymbolTarget(*i),
8793            ExternalIdentificationItemRef::TerminatorSymbol(i) => EntityKey::TerminatorSymbol(*i),
8794            ExternalIdentificationItemRef::TessellatedAnnotationOccurrence(i) => EntityKey::TessellatedAnnotationOccurrence(*i),
8795            ExternalIdentificationItemRef::TessellatedCurveSet(i) => EntityKey::TessellatedCurveSet(*i),
8796            ExternalIdentificationItemRef::TessellatedFace(i) => EntityKey::TessellatedFace(*i),
8797            ExternalIdentificationItemRef::TessellatedGeometricSet(i) => EntityKey::TessellatedGeometricSet(*i),
8798            ExternalIdentificationItemRef::TessellatedItem(i) => EntityKey::TessellatedItem(*i),
8799            ExternalIdentificationItemRef::TessellatedShapeRepresentation(i) => EntityKey::TessellatedShapeRepresentation(*i),
8800            ExternalIdentificationItemRef::TessellatedShell(i) => EntityKey::TessellatedShell(*i),
8801            ExternalIdentificationItemRef::TessellatedSolid(i) => EntityKey::TessellatedSolid(*i),
8802            ExternalIdentificationItemRef::TessellatedStructuredItem(i) => EntityKey::TessellatedStructuredItem(*i),
8803            ExternalIdentificationItemRef::TessellatedSurfaceSet(i) => EntityKey::TessellatedSurfaceSet(*i),
8804            ExternalIdentificationItemRef::TextLiteral(i) => EntityKey::TextLiteral(*i),
8805            ExternalIdentificationItemRef::TimeUnit(i) => EntityKey::TimeUnit(*i),
8806            ExternalIdentificationItemRef::TopologicalRepresentationItem(i) => EntityKey::TopologicalRepresentationItem(*i),
8807            ExternalIdentificationItemRef::ToroidalSurface(i) => EntityKey::ToroidalSurface(*i),
8808            ExternalIdentificationItemRef::TrimmedCurve(i) => EntityKey::TrimmedCurve(*i),
8809            ExternalIdentificationItemRef::TwoDirectionRepeatFactor(i) => EntityKey::TwoDirectionRepeatFactor(*i),
8810            ExternalIdentificationItemRef::TypeQualifier(i) => EntityKey::TypeQualifier(*i),
8811            ExternalIdentificationItemRef::UncertaintyQualifier(i) => EntityKey::UncertaintyQualifier(*i),
8812            ExternalIdentificationItemRef::UniformCurve(i) => EntityKey::UniformCurve(*i),
8813            ExternalIdentificationItemRef::UniformSurface(i) => EntityKey::UniformSurface(*i),
8814            ExternalIdentificationItemRef::ValueRepresentationItem(i) => EntityKey::ValueRepresentationItem(*i),
8815            ExternalIdentificationItemRef::Vector(i) => EntityKey::Vector(*i),
8816            ExternalIdentificationItemRef::VersionedActionRequest(i) => EntityKey::VersionedActionRequest(*i),
8817            ExternalIdentificationItemRef::Vertex(i) => EntityKey::Vertex(*i),
8818            ExternalIdentificationItemRef::VertexLoop(i) => EntityKey::VertexLoop(*i),
8819            ExternalIdentificationItemRef::VertexPoint(i) => EntityKey::VertexPoint(*i),
8820            ExternalIdentificationItemRef::VertexShell(i) => EntityKey::VertexShell(*i),
8821            ExternalIdentificationItemRef::VolumeUnit(i) => EntityKey::VolumeUnit(*i),
8822            ExternalIdentificationItemRef::WireShell(i) => EntityKey::WireShell(*i),
8823            ExternalIdentificationItemRef::Complex(i) => EntityKey::ComplexUnit(*i),
8824        }
8825    }
8826}
8827
8828#[derive(Clone, Copy, Debug)]
8829pub enum ExternalSourceRefView<'m> {
8830    ExternalSource(&'m ExternalSource),
8831    Complex(&'m ComplexUnit),
8832}
8833impl ExternalSourceRef {
8834    pub fn resolve<'m>(&self, model: &'m StepModel) -> ExternalSourceRefView<'m> {
8835        match self {
8836            ExternalSourceRef::ExternalSource(i) => {
8837                ExternalSourceRefView::ExternalSource(model.external_source_arena.get(i.0))
8838            }
8839            ExternalSourceRef::Complex(i) => {
8840                ExternalSourceRefView::Complex(model.complex_unit_arena.get(i.0))
8841            }
8842        }
8843    }
8844    pub fn entity_key(&self) -> EntityKey {
8845        match self {
8846            ExternalSourceRef::ExternalSource(i) => EntityKey::ExternalSource(*i),
8847            ExternalSourceRef::Complex(i) => EntityKey::ComplexUnit(*i),
8848        }
8849    }
8850}
8851
8852#[derive(Clone, Copy, Debug)]
8853pub enum FaceRefView<'m> {
8854    AdvancedFace(&'m AdvancedFace),
8855    Face(&'m Face),
8856    FaceSurface(&'m FaceSurface),
8857    Complex(&'m ComplexUnit),
8858}
8859impl FaceRef {
8860    pub fn resolve<'m>(&self, model: &'m StepModel) -> FaceRefView<'m> {
8861        match self {
8862            FaceRef::AdvancedFace(i) => {
8863                FaceRefView::AdvancedFace(model.advanced_face_arena.get(i.0))
8864            }
8865            FaceRef::Face(i) => FaceRefView::Face(model.face_arena.get(i.0)),
8866            FaceRef::FaceSurface(i) => FaceRefView::FaceSurface(model.face_surface_arena.get(i.0)),
8867            FaceRef::Complex(i) => FaceRefView::Complex(model.complex_unit_arena.get(i.0)),
8868        }
8869    }
8870    pub fn entity_key(&self) -> EntityKey {
8871        match self {
8872            FaceRef::AdvancedFace(i) => EntityKey::AdvancedFace(*i),
8873            FaceRef::Face(i) => EntityKey::Face(*i),
8874            FaceRef::FaceSurface(i) => EntityKey::FaceSurface(*i),
8875            FaceRef::Complex(i) => EntityKey::ComplexUnit(*i),
8876        }
8877    }
8878}
8879
8880#[derive(Clone, Copy, Debug)]
8881pub enum FaceBoundRefView<'m> {
8882    FaceBound(&'m FaceBound),
8883    FaceOuterBound(&'m FaceOuterBound),
8884    Complex(&'m ComplexUnit),
8885}
8886impl FaceBoundRef {
8887    pub fn resolve<'m>(&self, model: &'m StepModel) -> FaceBoundRefView<'m> {
8888        match self {
8889            FaceBoundRef::FaceBound(i) => {
8890                FaceBoundRefView::FaceBound(model.face_bound_arena.get(i.0))
8891            }
8892            FaceBoundRef::FaceOuterBound(i) => {
8893                FaceBoundRefView::FaceOuterBound(model.face_outer_bound_arena.get(i.0))
8894            }
8895            FaceBoundRef::Complex(i) => {
8896                FaceBoundRefView::Complex(model.complex_unit_arena.get(i.0))
8897            }
8898        }
8899    }
8900    pub fn entity_key(&self) -> EntityKey {
8901        match self {
8902            FaceBoundRef::FaceBound(i) => EntityKey::FaceBound(*i),
8903            FaceBoundRef::FaceOuterBound(i) => EntityKey::FaceOuterBound(*i),
8904            FaceBoundRef::Complex(i) => EntityKey::ComplexUnit(*i),
8905        }
8906    }
8907}
8908
8909#[derive(Clone, Copy, Debug)]
8910pub enum FaceOrSurfaceRefView<'m> {
8911    AdvancedFace(&'m AdvancedFace),
8912    BSplineSurface(&'m BSplineSurface),
8913    BSplineSurfaceWithKnots(&'m BSplineSurfaceWithKnots),
8914    BezierSurface(&'m BezierSurface),
8915    BoundedSurface(&'m BoundedSurface),
8916    ConicalSurface(&'m ConicalSurface),
8917    CylindricalSurface(&'m CylindricalSurface),
8918    DegenerateToroidalSurface(&'m DegenerateToroidalSurface),
8919    ElementarySurface(&'m ElementarySurface),
8920    Face(&'m Face),
8921    FaceSurface(&'m FaceSurface),
8922    OffsetSurface(&'m OffsetSurface),
8923    Plane(&'m Plane),
8924    QuasiUniformSurface(&'m QuasiUniformSurface),
8925    RationalBSplineSurface(&'m RationalBSplineSurface),
8926    SphericalSurface(&'m SphericalSurface),
8927    Surface(&'m Surface),
8928    SurfaceOfLinearExtrusion(&'m SurfaceOfLinearExtrusion),
8929    SurfaceOfRevolution(&'m SurfaceOfRevolution),
8930    SweptSurface(&'m SweptSurface),
8931    ToroidalSurface(&'m ToroidalSurface),
8932    UniformSurface(&'m UniformSurface),
8933    Complex(&'m ComplexUnit),
8934}
8935impl FaceOrSurfaceRef {
8936    pub fn resolve<'m>(&self, model: &'m StepModel) -> FaceOrSurfaceRefView<'m> {
8937        match self {
8938            FaceOrSurfaceRef::AdvancedFace(i) => {
8939                FaceOrSurfaceRefView::AdvancedFace(model.advanced_face_arena.get(i.0))
8940            }
8941            FaceOrSurfaceRef::BSplineSurface(i) => {
8942                FaceOrSurfaceRefView::BSplineSurface(model.b_spline_surface_arena.get(i.0))
8943            }
8944            FaceOrSurfaceRef::BSplineSurfaceWithKnots(i) => {
8945                FaceOrSurfaceRefView::BSplineSurfaceWithKnots(
8946                    model.b_spline_surface_with_knots_arena.get(i.0),
8947                )
8948            }
8949            FaceOrSurfaceRef::BezierSurface(i) => {
8950                FaceOrSurfaceRefView::BezierSurface(model.bezier_surface_arena.get(i.0))
8951            }
8952            FaceOrSurfaceRef::BoundedSurface(i) => {
8953                FaceOrSurfaceRefView::BoundedSurface(model.bounded_surface_arena.get(i.0))
8954            }
8955            FaceOrSurfaceRef::ConicalSurface(i) => {
8956                FaceOrSurfaceRefView::ConicalSurface(model.conical_surface_arena.get(i.0))
8957            }
8958            FaceOrSurfaceRef::CylindricalSurface(i) => {
8959                FaceOrSurfaceRefView::CylindricalSurface(model.cylindrical_surface_arena.get(i.0))
8960            }
8961            FaceOrSurfaceRef::DegenerateToroidalSurface(i) => {
8962                FaceOrSurfaceRefView::DegenerateToroidalSurface(
8963                    model.degenerate_toroidal_surface_arena.get(i.0),
8964                )
8965            }
8966            FaceOrSurfaceRef::ElementarySurface(i) => {
8967                FaceOrSurfaceRefView::ElementarySurface(model.elementary_surface_arena.get(i.0))
8968            }
8969            FaceOrSurfaceRef::Face(i) => FaceOrSurfaceRefView::Face(model.face_arena.get(i.0)),
8970            FaceOrSurfaceRef::FaceSurface(i) => {
8971                FaceOrSurfaceRefView::FaceSurface(model.face_surface_arena.get(i.0))
8972            }
8973            FaceOrSurfaceRef::OffsetSurface(i) => {
8974                FaceOrSurfaceRefView::OffsetSurface(model.offset_surface_arena.get(i.0))
8975            }
8976            FaceOrSurfaceRef::Plane(i) => FaceOrSurfaceRefView::Plane(model.plane_arena.get(i.0)),
8977            FaceOrSurfaceRef::QuasiUniformSurface(i) => FaceOrSurfaceRefView::QuasiUniformSurface(
8978                model.quasi_uniform_surface_arena.get(i.0),
8979            ),
8980            FaceOrSurfaceRef::RationalBSplineSurface(i) => {
8981                FaceOrSurfaceRefView::RationalBSplineSurface(
8982                    model.rational_b_spline_surface_arena.get(i.0),
8983                )
8984            }
8985            FaceOrSurfaceRef::SphericalSurface(i) => {
8986                FaceOrSurfaceRefView::SphericalSurface(model.spherical_surface_arena.get(i.0))
8987            }
8988            FaceOrSurfaceRef::Surface(i) => {
8989                FaceOrSurfaceRefView::Surface(model.surface_arena.get(i.0))
8990            }
8991            FaceOrSurfaceRef::SurfaceOfLinearExtrusion(i) => {
8992                FaceOrSurfaceRefView::SurfaceOfLinearExtrusion(
8993                    model.surface_of_linear_extrusion_arena.get(i.0),
8994                )
8995            }
8996            FaceOrSurfaceRef::SurfaceOfRevolution(i) => FaceOrSurfaceRefView::SurfaceOfRevolution(
8997                model.surface_of_revolution_arena.get(i.0),
8998            ),
8999            FaceOrSurfaceRef::SweptSurface(i) => {
9000                FaceOrSurfaceRefView::SweptSurface(model.swept_surface_arena.get(i.0))
9001            }
9002            FaceOrSurfaceRef::ToroidalSurface(i) => {
9003                FaceOrSurfaceRefView::ToroidalSurface(model.toroidal_surface_arena.get(i.0))
9004            }
9005            FaceOrSurfaceRef::UniformSurface(i) => {
9006                FaceOrSurfaceRefView::UniformSurface(model.uniform_surface_arena.get(i.0))
9007            }
9008            FaceOrSurfaceRef::Complex(i) => {
9009                FaceOrSurfaceRefView::Complex(model.complex_unit_arena.get(i.0))
9010            }
9011        }
9012    }
9013    pub fn entity_key(&self) -> EntityKey {
9014        match self {
9015            FaceOrSurfaceRef::AdvancedFace(i) => EntityKey::AdvancedFace(*i),
9016            FaceOrSurfaceRef::BSplineSurface(i) => EntityKey::BSplineSurface(*i),
9017            FaceOrSurfaceRef::BSplineSurfaceWithKnots(i) => EntityKey::BSplineSurfaceWithKnots(*i),
9018            FaceOrSurfaceRef::BezierSurface(i) => EntityKey::BezierSurface(*i),
9019            FaceOrSurfaceRef::BoundedSurface(i) => EntityKey::BoundedSurface(*i),
9020            FaceOrSurfaceRef::ConicalSurface(i) => EntityKey::ConicalSurface(*i),
9021            FaceOrSurfaceRef::CylindricalSurface(i) => EntityKey::CylindricalSurface(*i),
9022            FaceOrSurfaceRef::DegenerateToroidalSurface(i) => {
9023                EntityKey::DegenerateToroidalSurface(*i)
9024            }
9025            FaceOrSurfaceRef::ElementarySurface(i) => EntityKey::ElementarySurface(*i),
9026            FaceOrSurfaceRef::Face(i) => EntityKey::Face(*i),
9027            FaceOrSurfaceRef::FaceSurface(i) => EntityKey::FaceSurface(*i),
9028            FaceOrSurfaceRef::OffsetSurface(i) => EntityKey::OffsetSurface(*i),
9029            FaceOrSurfaceRef::Plane(i) => EntityKey::Plane(*i),
9030            FaceOrSurfaceRef::QuasiUniformSurface(i) => EntityKey::QuasiUniformSurface(*i),
9031            FaceOrSurfaceRef::RationalBSplineSurface(i) => EntityKey::RationalBSplineSurface(*i),
9032            FaceOrSurfaceRef::SphericalSurface(i) => EntityKey::SphericalSurface(*i),
9033            FaceOrSurfaceRef::Surface(i) => EntityKey::Surface(*i),
9034            FaceOrSurfaceRef::SurfaceOfLinearExtrusion(i) => {
9035                EntityKey::SurfaceOfLinearExtrusion(*i)
9036            }
9037            FaceOrSurfaceRef::SurfaceOfRevolution(i) => EntityKey::SurfaceOfRevolution(*i),
9038            FaceOrSurfaceRef::SweptSurface(i) => EntityKey::SweptSurface(*i),
9039            FaceOrSurfaceRef::ToroidalSurface(i) => EntityKey::ToroidalSurface(*i),
9040            FaceOrSurfaceRef::UniformSurface(i) => EntityKey::UniformSurface(*i),
9041            FaceOrSurfaceRef::Complex(i) => EntityKey::ComplexUnit(*i),
9042        }
9043    }
9044}
9045
9046#[derive(Clone, Copy, Debug)]
9047pub enum FaceSurfaceRefView<'m> {
9048    AdvancedFace(&'m AdvancedFace),
9049    FaceSurface(&'m FaceSurface),
9050    Complex(&'m ComplexUnit),
9051}
9052impl FaceSurfaceRef {
9053    pub fn resolve<'m>(&self, model: &'m StepModel) -> FaceSurfaceRefView<'m> {
9054        match self {
9055            FaceSurfaceRef::AdvancedFace(i) => {
9056                FaceSurfaceRefView::AdvancedFace(model.advanced_face_arena.get(i.0))
9057            }
9058            FaceSurfaceRef::FaceSurface(i) => {
9059                FaceSurfaceRefView::FaceSurface(model.face_surface_arena.get(i.0))
9060            }
9061            FaceSurfaceRef::Complex(i) => {
9062                FaceSurfaceRefView::Complex(model.complex_unit_arena.get(i.0))
9063            }
9064        }
9065    }
9066    pub fn entity_key(&self) -> EntityKey {
9067        match self {
9068            FaceSurfaceRef::AdvancedFace(i) => EntityKey::AdvancedFace(*i),
9069            FaceSurfaceRef::FaceSurface(i) => EntityKey::FaceSurface(*i),
9070            FaceSurfaceRef::Complex(i) => EntityKey::ComplexUnit(*i),
9071        }
9072    }
9073}
9074
9075#[derive(Clone, Copy, Debug)]
9076pub enum FillAreaStyleRefView<'m> {
9077    FillAreaStyle(&'m FillAreaStyle),
9078    Complex(&'m ComplexUnit),
9079}
9080impl FillAreaStyleRef {
9081    pub fn resolve<'m>(&self, model: &'m StepModel) -> FillAreaStyleRefView<'m> {
9082        match self {
9083            FillAreaStyleRef::FillAreaStyle(i) => {
9084                FillAreaStyleRefView::FillAreaStyle(model.fill_area_style_arena.get(i.0))
9085            }
9086            FillAreaStyleRef::Complex(i) => {
9087                FillAreaStyleRefView::Complex(model.complex_unit_arena.get(i.0))
9088            }
9089        }
9090    }
9091    pub fn entity_key(&self) -> EntityKey {
9092        match self {
9093            FillAreaStyleRef::FillAreaStyle(i) => EntityKey::FillAreaStyle(*i),
9094            FillAreaStyleRef::Complex(i) => EntityKey::ComplexUnit(*i),
9095        }
9096    }
9097}
9098
9099#[derive(Clone, Copy, Debug)]
9100pub enum FillAreaStyleTileShapeSelectRefView<'m> {
9101    ExternallyDefinedTile(&'m ExternallyDefinedTile),
9102    FillAreaStyleTileColouredRegion(&'m FillAreaStyleTileColouredRegion),
9103    FillAreaStyleTileCurveWithStyle(&'m FillAreaStyleTileCurveWithStyle),
9104    FillAreaStyleTileSymbolWithStyle(&'m FillAreaStyleTileSymbolWithStyle),
9105    PreDefinedTile(&'m PreDefinedTile),
9106    Complex(&'m ComplexUnit),
9107}
9108impl FillAreaStyleTileShapeSelectRef {
9109    pub fn resolve<'m>(&self, model: &'m StepModel) -> FillAreaStyleTileShapeSelectRefView<'m> {
9110        match self {
9111            FillAreaStyleTileShapeSelectRef::ExternallyDefinedTile(i) => {
9112                FillAreaStyleTileShapeSelectRefView::ExternallyDefinedTile(
9113                    model.externally_defined_tile_arena.get(i.0),
9114                )
9115            }
9116            FillAreaStyleTileShapeSelectRef::FillAreaStyleTileColouredRegion(i) => {
9117                FillAreaStyleTileShapeSelectRefView::FillAreaStyleTileColouredRegion(
9118                    model.fill_area_style_tile_coloured_region_arena.get(i.0),
9119                )
9120            }
9121            FillAreaStyleTileShapeSelectRef::FillAreaStyleTileCurveWithStyle(i) => {
9122                FillAreaStyleTileShapeSelectRefView::FillAreaStyleTileCurveWithStyle(
9123                    model.fill_area_style_tile_curve_with_style_arena.get(i.0),
9124                )
9125            }
9126            FillAreaStyleTileShapeSelectRef::FillAreaStyleTileSymbolWithStyle(i) => {
9127                FillAreaStyleTileShapeSelectRefView::FillAreaStyleTileSymbolWithStyle(
9128                    model.fill_area_style_tile_symbol_with_style_arena.get(i.0),
9129                )
9130            }
9131            FillAreaStyleTileShapeSelectRef::PreDefinedTile(i) => {
9132                FillAreaStyleTileShapeSelectRefView::PreDefinedTile(
9133                    model.pre_defined_tile_arena.get(i.0),
9134                )
9135            }
9136            FillAreaStyleTileShapeSelectRef::Complex(i) => {
9137                FillAreaStyleTileShapeSelectRefView::Complex(model.complex_unit_arena.get(i.0))
9138            }
9139        }
9140    }
9141    pub fn entity_key(&self) -> EntityKey {
9142        match self {
9143            FillAreaStyleTileShapeSelectRef::ExternallyDefinedTile(i) => {
9144                EntityKey::ExternallyDefinedTile(*i)
9145            }
9146            FillAreaStyleTileShapeSelectRef::FillAreaStyleTileColouredRegion(i) => {
9147                EntityKey::FillAreaStyleTileColouredRegion(*i)
9148            }
9149            FillAreaStyleTileShapeSelectRef::FillAreaStyleTileCurveWithStyle(i) => {
9150                EntityKey::FillAreaStyleTileCurveWithStyle(*i)
9151            }
9152            FillAreaStyleTileShapeSelectRef::FillAreaStyleTileSymbolWithStyle(i) => {
9153                EntityKey::FillAreaStyleTileSymbolWithStyle(*i)
9154            }
9155            FillAreaStyleTileShapeSelectRef::PreDefinedTile(i) => EntityKey::PreDefinedTile(*i),
9156            FillAreaStyleTileShapeSelectRef::Complex(i) => EntityKey::ComplexUnit(*i),
9157        }
9158    }
9159}
9160
9161#[derive(Clone, Copy, Debug)]
9162pub enum FillStyleSelectRefView<'m> {
9163    ExternallyDefinedHatchStyle(&'m ExternallyDefinedHatchStyle),
9164    ExternallyDefinedTileStyle(&'m ExternallyDefinedTileStyle),
9165    FillAreaStyleColour(&'m FillAreaStyleColour),
9166    FillAreaStyleHatching(&'m FillAreaStyleHatching),
9167    FillAreaStyleTiles(&'m FillAreaStyleTiles),
9168    TextureStyleSpecification(&'m TextureStyleSpecification),
9169    TextureStyleTessellationSpecification(&'m TextureStyleTessellationSpecification),
9170    Complex(&'m ComplexUnit),
9171}
9172impl FillStyleSelectRef {
9173    pub fn resolve<'m>(&self, model: &'m StepModel) -> FillStyleSelectRefView<'m> {
9174        match self {
9175            FillStyleSelectRef::ExternallyDefinedHatchStyle(i) => {
9176                FillStyleSelectRefView::ExternallyDefinedHatchStyle(
9177                    model.externally_defined_hatch_style_arena.get(i.0),
9178                )
9179            }
9180            FillStyleSelectRef::ExternallyDefinedTileStyle(i) => {
9181                FillStyleSelectRefView::ExternallyDefinedTileStyle(
9182                    model.externally_defined_tile_style_arena.get(i.0),
9183                )
9184            }
9185            FillStyleSelectRef::FillAreaStyleColour(i) => {
9186                FillStyleSelectRefView::FillAreaStyleColour(
9187                    model.fill_area_style_colour_arena.get(i.0),
9188                )
9189            }
9190            FillStyleSelectRef::FillAreaStyleHatching(i) => {
9191                FillStyleSelectRefView::FillAreaStyleHatching(
9192                    model.fill_area_style_hatching_arena.get(i.0),
9193                )
9194            }
9195            FillStyleSelectRef::FillAreaStyleTiles(i) => {
9196                FillStyleSelectRefView::FillAreaStyleTiles(
9197                    model.fill_area_style_tiles_arena.get(i.0),
9198                )
9199            }
9200            FillStyleSelectRef::TextureStyleSpecification(i) => {
9201                FillStyleSelectRefView::TextureStyleSpecification(
9202                    model.texture_style_specification_arena.get(i.0),
9203                )
9204            }
9205            FillStyleSelectRef::TextureStyleTessellationSpecification(i) => {
9206                FillStyleSelectRefView::TextureStyleTessellationSpecification(
9207                    model
9208                        .texture_style_tessellation_specification_arena
9209                        .get(i.0),
9210                )
9211            }
9212            FillStyleSelectRef::Complex(i) => {
9213                FillStyleSelectRefView::Complex(model.complex_unit_arena.get(i.0))
9214            }
9215        }
9216    }
9217    pub fn entity_key(&self) -> EntityKey {
9218        match self {
9219            FillStyleSelectRef::ExternallyDefinedHatchStyle(i) => {
9220                EntityKey::ExternallyDefinedHatchStyle(*i)
9221            }
9222            FillStyleSelectRef::ExternallyDefinedTileStyle(i) => {
9223                EntityKey::ExternallyDefinedTileStyle(*i)
9224            }
9225            FillStyleSelectRef::FillAreaStyleColour(i) => EntityKey::FillAreaStyleColour(*i),
9226            FillStyleSelectRef::FillAreaStyleHatching(i) => EntityKey::FillAreaStyleHatching(*i),
9227            FillStyleSelectRef::FillAreaStyleTiles(i) => EntityKey::FillAreaStyleTiles(*i),
9228            FillStyleSelectRef::TextureStyleSpecification(i) => {
9229                EntityKey::TextureStyleSpecification(*i)
9230            }
9231            FillStyleSelectRef::TextureStyleTessellationSpecification(i) => {
9232                EntityKey::TextureStyleTessellationSpecification(*i)
9233            }
9234            FillStyleSelectRef::Complex(i) => EntityKey::ComplexUnit(*i),
9235        }
9236    }
9237}
9238
9239#[derive(Clone, Copy, Debug)]
9240pub enum FontSelectRefView<'m> {
9241    DraughtingPreDefinedTextFont(&'m DraughtingPreDefinedTextFont),
9242    ExternallyDefinedTextFont(&'m ExternallyDefinedTextFont),
9243    PreDefinedTextFont(&'m PreDefinedTextFont),
9244    TextFont(&'m TextFont),
9245    Complex(&'m ComplexUnit),
9246}
9247impl FontSelectRef {
9248    pub fn resolve<'m>(&self, model: &'m StepModel) -> FontSelectRefView<'m> {
9249        match self {
9250            FontSelectRef::DraughtingPreDefinedTextFont(i) => {
9251                FontSelectRefView::DraughtingPreDefinedTextFont(
9252                    model.draughting_pre_defined_text_font_arena.get(i.0),
9253                )
9254            }
9255            FontSelectRef::ExternallyDefinedTextFont(i) => {
9256                FontSelectRefView::ExternallyDefinedTextFont(
9257                    model.externally_defined_text_font_arena.get(i.0),
9258                )
9259            }
9260            FontSelectRef::PreDefinedTextFont(i) => {
9261                FontSelectRefView::PreDefinedTextFont(model.pre_defined_text_font_arena.get(i.0))
9262            }
9263            FontSelectRef::TextFont(i) => {
9264                FontSelectRefView::TextFont(model.text_font_arena.get(i.0))
9265            }
9266            FontSelectRef::Complex(i) => {
9267                FontSelectRefView::Complex(model.complex_unit_arena.get(i.0))
9268            }
9269        }
9270    }
9271    pub fn entity_key(&self) -> EntityKey {
9272        match self {
9273            FontSelectRef::DraughtingPreDefinedTextFont(i) => {
9274                EntityKey::DraughtingPreDefinedTextFont(*i)
9275            }
9276            FontSelectRef::ExternallyDefinedTextFont(i) => EntityKey::ExternallyDefinedTextFont(*i),
9277            FontSelectRef::PreDefinedTextFont(i) => EntityKey::PreDefinedTextFont(*i),
9278            FontSelectRef::TextFont(i) => EntityKey::TextFont(*i),
9279            FontSelectRef::Complex(i) => EntityKey::ComplexUnit(*i),
9280        }
9281    }
9282}
9283
9284#[derive(Clone, Copy, Debug)]
9285pub enum GeneralPropertyRefView<'m> {
9286    GeneralProperty(&'m GeneralProperty),
9287    Complex(&'m ComplexUnit),
9288}
9289impl GeneralPropertyRef {
9290    pub fn resolve<'m>(&self, model: &'m StepModel) -> GeneralPropertyRefView<'m> {
9291        match self {
9292            GeneralPropertyRef::GeneralProperty(i) => {
9293                GeneralPropertyRefView::GeneralProperty(model.general_property_arena.get(i.0))
9294            }
9295            GeneralPropertyRef::Complex(i) => {
9296                GeneralPropertyRefView::Complex(model.complex_unit_arena.get(i.0))
9297            }
9298        }
9299    }
9300    pub fn entity_key(&self) -> EntityKey {
9301        match self {
9302            GeneralPropertyRef::GeneralProperty(i) => EntityKey::GeneralProperty(*i),
9303            GeneralPropertyRef::Complex(i) => EntityKey::ComplexUnit(*i),
9304        }
9305    }
9306}
9307
9308#[derive(Clone, Copy, Debug)]
9309pub enum GeometricItemSpecificUsageSelectRefView<'m> {
9310    AllAroundShapeAspect(&'m AllAroundShapeAspect),
9311    AngularLocation(&'m AngularLocation),
9312    CentreOfSymmetry(&'m CentreOfSymmetry),
9313    CommonDatum(&'m CommonDatum),
9314    CompositeGroupShapeAspect(&'m CompositeGroupShapeAspect),
9315    CompositeShapeAspect(&'m CompositeShapeAspect),
9316    ContinuousShapeAspect(&'m ContinuousShapeAspect),
9317    Datum(&'m Datum),
9318    DatumFeature(&'m DatumFeature),
9319    DatumReferenceCompartment(&'m DatumReferenceCompartment),
9320    DatumReferenceElement(&'m DatumReferenceElement),
9321    DatumSystem(&'m DatumSystem),
9322    DatumTarget(&'m DatumTarget),
9323    DefaultModelGeometricView(&'m DefaultModelGeometricView),
9324    DerivedShapeAspect(&'m DerivedShapeAspect),
9325    DimensionalLocation(&'m DimensionalLocation),
9326    DimensionalLocationWithPath(&'m DimensionalLocationWithPath),
9327    DimensionalSizeWithDatumFeature(&'m DimensionalSizeWithDatumFeature),
9328    DirectedDimensionalLocation(&'m DirectedDimensionalLocation),
9329    FeatureForDatumTargetRelationship(&'m FeatureForDatumTargetRelationship),
9330    GeneralDatumReference(&'m GeneralDatumReference),
9331    PlacedDatumTargetFeature(&'m PlacedDatumTargetFeature),
9332    ShapeAspect(&'m ShapeAspect),
9333    ShapeAspectAssociativity(&'m ShapeAspectAssociativity),
9334    ShapeAspectDerivingRelationship(&'m ShapeAspectDerivingRelationship),
9335    ShapeAspectRelationship(&'m ShapeAspectRelationship),
9336    ToleranceZone(&'m ToleranceZone),
9337    ToleranceZoneWithDatum(&'m ToleranceZoneWithDatum),
9338    Complex(&'m ComplexUnit),
9339}
9340impl GeometricItemSpecificUsageSelectRef {
9341    pub fn resolve<'m>(&self, model: &'m StepModel) -> GeometricItemSpecificUsageSelectRefView<'m> {
9342        match self {
9343            GeometricItemSpecificUsageSelectRef::AllAroundShapeAspect(i) => {
9344                GeometricItemSpecificUsageSelectRefView::AllAroundShapeAspect(
9345                    model.all_around_shape_aspect_arena.get(i.0),
9346                )
9347            }
9348            GeometricItemSpecificUsageSelectRef::AngularLocation(i) => {
9349                GeometricItemSpecificUsageSelectRefView::AngularLocation(
9350                    model.angular_location_arena.get(i.0),
9351                )
9352            }
9353            GeometricItemSpecificUsageSelectRef::CentreOfSymmetry(i) => {
9354                GeometricItemSpecificUsageSelectRefView::CentreOfSymmetry(
9355                    model.centre_of_symmetry_arena.get(i.0),
9356                )
9357            }
9358            GeometricItemSpecificUsageSelectRef::CommonDatum(i) => {
9359                GeometricItemSpecificUsageSelectRefView::CommonDatum(
9360                    model.common_datum_arena.get(i.0),
9361                )
9362            }
9363            GeometricItemSpecificUsageSelectRef::CompositeGroupShapeAspect(i) => {
9364                GeometricItemSpecificUsageSelectRefView::CompositeGroupShapeAspect(
9365                    model.composite_group_shape_aspect_arena.get(i.0),
9366                )
9367            }
9368            GeometricItemSpecificUsageSelectRef::CompositeShapeAspect(i) => {
9369                GeometricItemSpecificUsageSelectRefView::CompositeShapeAspect(
9370                    model.composite_shape_aspect_arena.get(i.0),
9371                )
9372            }
9373            GeometricItemSpecificUsageSelectRef::ContinuousShapeAspect(i) => {
9374                GeometricItemSpecificUsageSelectRefView::ContinuousShapeAspect(
9375                    model.continuous_shape_aspect_arena.get(i.0),
9376                )
9377            }
9378            GeometricItemSpecificUsageSelectRef::Datum(i) => {
9379                GeometricItemSpecificUsageSelectRefView::Datum(model.datum_arena.get(i.0))
9380            }
9381            GeometricItemSpecificUsageSelectRef::DatumFeature(i) => {
9382                GeometricItemSpecificUsageSelectRefView::DatumFeature(
9383                    model.datum_feature_arena.get(i.0),
9384                )
9385            }
9386            GeometricItemSpecificUsageSelectRef::DatumReferenceCompartment(i) => {
9387                GeometricItemSpecificUsageSelectRefView::DatumReferenceCompartment(
9388                    model.datum_reference_compartment_arena.get(i.0),
9389                )
9390            }
9391            GeometricItemSpecificUsageSelectRef::DatumReferenceElement(i) => {
9392                GeometricItemSpecificUsageSelectRefView::DatumReferenceElement(
9393                    model.datum_reference_element_arena.get(i.0),
9394                )
9395            }
9396            GeometricItemSpecificUsageSelectRef::DatumSystem(i) => {
9397                GeometricItemSpecificUsageSelectRefView::DatumSystem(
9398                    model.datum_system_arena.get(i.0),
9399                )
9400            }
9401            GeometricItemSpecificUsageSelectRef::DatumTarget(i) => {
9402                GeometricItemSpecificUsageSelectRefView::DatumTarget(
9403                    model.datum_target_arena.get(i.0),
9404                )
9405            }
9406            GeometricItemSpecificUsageSelectRef::DefaultModelGeometricView(i) => {
9407                GeometricItemSpecificUsageSelectRefView::DefaultModelGeometricView(
9408                    model.default_model_geometric_view_arena.get(i.0),
9409                )
9410            }
9411            GeometricItemSpecificUsageSelectRef::DerivedShapeAspect(i) => {
9412                GeometricItemSpecificUsageSelectRefView::DerivedShapeAspect(
9413                    model.derived_shape_aspect_arena.get(i.0),
9414                )
9415            }
9416            GeometricItemSpecificUsageSelectRef::DimensionalLocation(i) => {
9417                GeometricItemSpecificUsageSelectRefView::DimensionalLocation(
9418                    model.dimensional_location_arena.get(i.0),
9419                )
9420            }
9421            GeometricItemSpecificUsageSelectRef::DimensionalLocationWithPath(i) => {
9422                GeometricItemSpecificUsageSelectRefView::DimensionalLocationWithPath(
9423                    model.dimensional_location_with_path_arena.get(i.0),
9424                )
9425            }
9426            GeometricItemSpecificUsageSelectRef::DimensionalSizeWithDatumFeature(i) => {
9427                GeometricItemSpecificUsageSelectRefView::DimensionalSizeWithDatumFeature(
9428                    model.dimensional_size_with_datum_feature_arena.get(i.0),
9429                )
9430            }
9431            GeometricItemSpecificUsageSelectRef::DirectedDimensionalLocation(i) => {
9432                GeometricItemSpecificUsageSelectRefView::DirectedDimensionalLocation(
9433                    model.directed_dimensional_location_arena.get(i.0),
9434                )
9435            }
9436            GeometricItemSpecificUsageSelectRef::FeatureForDatumTargetRelationship(i) => {
9437                GeometricItemSpecificUsageSelectRefView::FeatureForDatumTargetRelationship(
9438                    model.feature_for_datum_target_relationship_arena.get(i.0),
9439                )
9440            }
9441            GeometricItemSpecificUsageSelectRef::GeneralDatumReference(i) => {
9442                GeometricItemSpecificUsageSelectRefView::GeneralDatumReference(
9443                    model.general_datum_reference_arena.get(i.0),
9444                )
9445            }
9446            GeometricItemSpecificUsageSelectRef::PlacedDatumTargetFeature(i) => {
9447                GeometricItemSpecificUsageSelectRefView::PlacedDatumTargetFeature(
9448                    model.placed_datum_target_feature_arena.get(i.0),
9449                )
9450            }
9451            GeometricItemSpecificUsageSelectRef::ShapeAspect(i) => {
9452                GeometricItemSpecificUsageSelectRefView::ShapeAspect(
9453                    model.shape_aspect_arena.get(i.0),
9454                )
9455            }
9456            GeometricItemSpecificUsageSelectRef::ShapeAspectAssociativity(i) => {
9457                GeometricItemSpecificUsageSelectRefView::ShapeAspectAssociativity(
9458                    model.shape_aspect_associativity_arena.get(i.0),
9459                )
9460            }
9461            GeometricItemSpecificUsageSelectRef::ShapeAspectDerivingRelationship(i) => {
9462                GeometricItemSpecificUsageSelectRefView::ShapeAspectDerivingRelationship(
9463                    model.shape_aspect_deriving_relationship_arena.get(i.0),
9464                )
9465            }
9466            GeometricItemSpecificUsageSelectRef::ShapeAspectRelationship(i) => {
9467                GeometricItemSpecificUsageSelectRefView::ShapeAspectRelationship(
9468                    model.shape_aspect_relationship_arena.get(i.0),
9469                )
9470            }
9471            GeometricItemSpecificUsageSelectRef::ToleranceZone(i) => {
9472                GeometricItemSpecificUsageSelectRefView::ToleranceZone(
9473                    model.tolerance_zone_arena.get(i.0),
9474                )
9475            }
9476            GeometricItemSpecificUsageSelectRef::ToleranceZoneWithDatum(i) => {
9477                GeometricItemSpecificUsageSelectRefView::ToleranceZoneWithDatum(
9478                    model.tolerance_zone_with_datum_arena.get(i.0),
9479                )
9480            }
9481            GeometricItemSpecificUsageSelectRef::Complex(i) => {
9482                GeometricItemSpecificUsageSelectRefView::Complex(model.complex_unit_arena.get(i.0))
9483            }
9484        }
9485    }
9486    pub fn entity_key(&self) -> EntityKey {
9487        match self {
9488            GeometricItemSpecificUsageSelectRef::AllAroundShapeAspect(i) => {
9489                EntityKey::AllAroundShapeAspect(*i)
9490            }
9491            GeometricItemSpecificUsageSelectRef::AngularLocation(i) => {
9492                EntityKey::AngularLocation(*i)
9493            }
9494            GeometricItemSpecificUsageSelectRef::CentreOfSymmetry(i) => {
9495                EntityKey::CentreOfSymmetry(*i)
9496            }
9497            GeometricItemSpecificUsageSelectRef::CommonDatum(i) => EntityKey::CommonDatum(*i),
9498            GeometricItemSpecificUsageSelectRef::CompositeGroupShapeAspect(i) => {
9499                EntityKey::CompositeGroupShapeAspect(*i)
9500            }
9501            GeometricItemSpecificUsageSelectRef::CompositeShapeAspect(i) => {
9502                EntityKey::CompositeShapeAspect(*i)
9503            }
9504            GeometricItemSpecificUsageSelectRef::ContinuousShapeAspect(i) => {
9505                EntityKey::ContinuousShapeAspect(*i)
9506            }
9507            GeometricItemSpecificUsageSelectRef::Datum(i) => EntityKey::Datum(*i),
9508            GeometricItemSpecificUsageSelectRef::DatumFeature(i) => EntityKey::DatumFeature(*i),
9509            GeometricItemSpecificUsageSelectRef::DatumReferenceCompartment(i) => {
9510                EntityKey::DatumReferenceCompartment(*i)
9511            }
9512            GeometricItemSpecificUsageSelectRef::DatumReferenceElement(i) => {
9513                EntityKey::DatumReferenceElement(*i)
9514            }
9515            GeometricItemSpecificUsageSelectRef::DatumSystem(i) => EntityKey::DatumSystem(*i),
9516            GeometricItemSpecificUsageSelectRef::DatumTarget(i) => EntityKey::DatumTarget(*i),
9517            GeometricItemSpecificUsageSelectRef::DefaultModelGeometricView(i) => {
9518                EntityKey::DefaultModelGeometricView(*i)
9519            }
9520            GeometricItemSpecificUsageSelectRef::DerivedShapeAspect(i) => {
9521                EntityKey::DerivedShapeAspect(*i)
9522            }
9523            GeometricItemSpecificUsageSelectRef::DimensionalLocation(i) => {
9524                EntityKey::DimensionalLocation(*i)
9525            }
9526            GeometricItemSpecificUsageSelectRef::DimensionalLocationWithPath(i) => {
9527                EntityKey::DimensionalLocationWithPath(*i)
9528            }
9529            GeometricItemSpecificUsageSelectRef::DimensionalSizeWithDatumFeature(i) => {
9530                EntityKey::DimensionalSizeWithDatumFeature(*i)
9531            }
9532            GeometricItemSpecificUsageSelectRef::DirectedDimensionalLocation(i) => {
9533                EntityKey::DirectedDimensionalLocation(*i)
9534            }
9535            GeometricItemSpecificUsageSelectRef::FeatureForDatumTargetRelationship(i) => {
9536                EntityKey::FeatureForDatumTargetRelationship(*i)
9537            }
9538            GeometricItemSpecificUsageSelectRef::GeneralDatumReference(i) => {
9539                EntityKey::GeneralDatumReference(*i)
9540            }
9541            GeometricItemSpecificUsageSelectRef::PlacedDatumTargetFeature(i) => {
9542                EntityKey::PlacedDatumTargetFeature(*i)
9543            }
9544            GeometricItemSpecificUsageSelectRef::ShapeAspect(i) => EntityKey::ShapeAspect(*i),
9545            GeometricItemSpecificUsageSelectRef::ShapeAspectAssociativity(i) => {
9546                EntityKey::ShapeAspectAssociativity(*i)
9547            }
9548            GeometricItemSpecificUsageSelectRef::ShapeAspectDerivingRelationship(i) => {
9549                EntityKey::ShapeAspectDerivingRelationship(*i)
9550            }
9551            GeometricItemSpecificUsageSelectRef::ShapeAspectRelationship(i) => {
9552                EntityKey::ShapeAspectRelationship(*i)
9553            }
9554            GeometricItemSpecificUsageSelectRef::ToleranceZone(i) => EntityKey::ToleranceZone(*i),
9555            GeometricItemSpecificUsageSelectRef::ToleranceZoneWithDatum(i) => {
9556                EntityKey::ToleranceZoneWithDatum(*i)
9557            }
9558            GeometricItemSpecificUsageSelectRef::Complex(i) => EntityKey::ComplexUnit(*i),
9559        }
9560    }
9561}
9562
9563#[derive(Clone, Copy, Debug)]
9564pub enum GeometricModelItemRefView<'m> {
9565    AdvancedFace(&'m AdvancedFace),
9566    AnnotationPlaceholderLeaderLine(&'m AnnotationPlaceholderLeaderLine),
9567    AnnotationPlaceholderOccurrence(&'m AnnotationPlaceholderOccurrence),
9568    AnnotationPlaceholderOccurrenceWithLeaderLine(
9569        &'m AnnotationPlaceholderOccurrenceWithLeaderLine,
9570    ),
9571    AnnotationPlane(&'m AnnotationPlane),
9572    AnnotationToAnnotationLeaderLine(&'m AnnotationToAnnotationLeaderLine),
9573    AnnotationToModelLeaderLine(&'m AnnotationToModelLeaderLine),
9574    ApllPoint(&'m ApllPoint),
9575    ApllPointWithSurface(&'m ApllPointWithSurface),
9576    AuxiliaryLeaderLine(&'m AuxiliaryLeaderLine),
9577    Axis1Placement(&'m Axis1Placement),
9578    Axis2Placement2d(&'m Axis2Placement2d),
9579    Axis2Placement3d(&'m Axis2Placement3d),
9580    BSplineCurve(&'m BSplineCurve),
9581    BSplineCurveWithKnots(&'m BSplineCurveWithKnots),
9582    BSplineSurface(&'m BSplineSurface),
9583    BSplineSurfaceWithKnots(&'m BSplineSurfaceWithKnots),
9584    BezierCurve(&'m BezierCurve),
9585    BezierSurface(&'m BezierSurface),
9586    BoundedCurve(&'m BoundedCurve),
9587    BoundedPcurve(&'m BoundedPcurve),
9588    BoundedSurface(&'m BoundedSurface),
9589    BoundedSurfaceCurve(&'m BoundedSurfaceCurve),
9590    BrepWithVoids(&'m BrepWithVoids),
9591    CameraModel(&'m CameraModel),
9592    CameraModelD3(&'m CameraModelD3),
9593    CameraModelD3MultiClipping(&'m CameraModelD3MultiClipping),
9594    CameraModelD3WithHlhsr(&'m CameraModelD3WithHlhsr),
9595    CartesianPoint(&'m CartesianPoint),
9596    Circle(&'m Circle),
9597    ClosedShell(&'m ClosedShell),
9598    ComplexTriangulatedFace(&'m ComplexTriangulatedFace),
9599    ComplexTriangulatedSurfaceSet(&'m ComplexTriangulatedSurfaceSet),
9600    CompositeCurve(&'m CompositeCurve),
9601    CompositeText(&'m CompositeText),
9602    Conic(&'m Conic),
9603    ConicalSurface(&'m ConicalSurface),
9604    ConnectedFaceSet(&'m ConnectedFaceSet),
9605    CoordinatesList(&'m CoordinatesList),
9606    Curve(&'m Curve),
9607    CylindricalSurface(&'m CylindricalSurface),
9608    DefinedCharacterGlyph(&'m DefinedCharacterGlyph),
9609    DefinedSymbol(&'m DefinedSymbol),
9610    DegenerateToroidalSurface(&'m DegenerateToroidalSurface),
9611    Direction(&'m Direction),
9612    DraughtingCallout(&'m DraughtingCallout),
9613    EdgeCurve(&'m EdgeCurve),
9614    EdgeLoop(&'m EdgeLoop),
9615    ElementarySurface(&'m ElementarySurface),
9616    Ellipse(&'m Ellipse),
9617    ExternallyDefinedHatchStyle(&'m ExternallyDefinedHatchStyle),
9618    ExternallyDefinedTileStyle(&'m ExternallyDefinedTileStyle),
9619    FaceSurface(&'m FaceSurface),
9620    FillAreaStyleHatching(&'m FillAreaStyleHatching),
9621    FillAreaStyleTileColouredRegion(&'m FillAreaStyleTileColouredRegion),
9622    FillAreaStyleTileCurveWithStyle(&'m FillAreaStyleTileCurveWithStyle),
9623    FillAreaStyleTileSymbolWithStyle(&'m FillAreaStyleTileSymbolWithStyle),
9624    FillAreaStyleTiles(&'m FillAreaStyleTiles),
9625    GeometricCurveSet(&'m GeometricCurveSet),
9626    GeometricRepresentationItem(&'m GeometricRepresentationItem),
9627    GeometricSet(&'m GeometricSet),
9628    Hyperbola(&'m Hyperbola),
9629    IntersectionCurve(&'m IntersectionCurve),
9630    LeaderDirectedCallout(&'m LeaderDirectedCallout),
9631    Line(&'m Line),
9632    ManifoldSolidBrep(&'m ManifoldSolidBrep),
9633    OffsetSurface(&'m OffsetSurface),
9634    OneDirectionRepeatFactor(&'m OneDirectionRepeatFactor),
9635    OpenShell(&'m OpenShell),
9636    OrientedClosedShell(&'m OrientedClosedShell),
9637    Pcurve(&'m Pcurve),
9638    Placement(&'m Placement),
9639    PlanarBox(&'m PlanarBox),
9640    PlanarExtent(&'m PlanarExtent),
9641    Plane(&'m Plane),
9642    Point(&'m Point),
9643    PolyLoop(&'m PolyLoop),
9644    Polyline(&'m Polyline),
9645    QuasiUniformCurve(&'m QuasiUniformCurve),
9646    QuasiUniformSurface(&'m QuasiUniformSurface),
9647    RationalBSplineCurve(&'m RationalBSplineCurve),
9648    RationalBSplineSurface(&'m RationalBSplineSurface),
9649    RepositionedTessellatedItem(&'m RepositionedTessellatedItem),
9650    SeamCurve(&'m SeamCurve),
9651    ShellBasedSurfaceModel(&'m ShellBasedSurfaceModel),
9652    SolidModel(&'m SolidModel),
9653    SphericalSurface(&'m SphericalSurface),
9654    Surface(&'m Surface),
9655    SurfaceCurve(&'m SurfaceCurve),
9656    SurfaceOfLinearExtrusion(&'m SurfaceOfLinearExtrusion),
9657    SurfaceOfRevolution(&'m SurfaceOfRevolution),
9658    SweptSurface(&'m SweptSurface),
9659    SymbolTarget(&'m SymbolTarget),
9660    TessellatedCurveSet(&'m TessellatedCurveSet),
9661    TessellatedFace(&'m TessellatedFace),
9662    TessellatedGeometricSet(&'m TessellatedGeometricSet),
9663    TessellatedItem(&'m TessellatedItem),
9664    TessellatedShell(&'m TessellatedShell),
9665    TessellatedSolid(&'m TessellatedSolid),
9666    TessellatedStructuredItem(&'m TessellatedStructuredItem),
9667    TessellatedSurfaceSet(&'m TessellatedSurfaceSet),
9668    TextLiteral(&'m TextLiteral),
9669    ToroidalSurface(&'m ToroidalSurface),
9670    TrimmedCurve(&'m TrimmedCurve),
9671    TwoDirectionRepeatFactor(&'m TwoDirectionRepeatFactor),
9672    UniformCurve(&'m UniformCurve),
9673    UniformSurface(&'m UniformSurface),
9674    Vector(&'m Vector),
9675    VertexPoint(&'m VertexPoint),
9676    Complex(&'m ComplexUnit),
9677}
9678impl GeometricModelItemRef {
9679    pub fn resolve<'m>(&self, model: &'m StepModel) -> GeometricModelItemRefView<'m> {
9680        match self {
9681            GeometricModelItemRef::AdvancedFace(i) => {
9682                GeometricModelItemRefView::AdvancedFace(model.advanced_face_arena.get(i.0))
9683            }
9684            GeometricModelItemRef::AnnotationPlaceholderLeaderLine(i) => {
9685                GeometricModelItemRefView::AnnotationPlaceholderLeaderLine(
9686                    model.annotation_placeholder_leader_line_arena.get(i.0),
9687                )
9688            }
9689            GeometricModelItemRef::AnnotationPlaceholderOccurrence(i) => {
9690                GeometricModelItemRefView::AnnotationPlaceholderOccurrence(
9691                    model.annotation_placeholder_occurrence_arena.get(i.0),
9692                )
9693            }
9694            GeometricModelItemRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => {
9695                GeometricModelItemRefView::AnnotationPlaceholderOccurrenceWithLeaderLine(
9696                    model
9697                        .annotation_placeholder_occurrence_with_leader_line_arena
9698                        .get(i.0),
9699                )
9700            }
9701            GeometricModelItemRef::AnnotationPlane(i) => {
9702                GeometricModelItemRefView::AnnotationPlane(model.annotation_plane_arena.get(i.0))
9703            }
9704            GeometricModelItemRef::AnnotationToAnnotationLeaderLine(i) => {
9705                GeometricModelItemRefView::AnnotationToAnnotationLeaderLine(
9706                    model.annotation_to_annotation_leader_line_arena.get(i.0),
9707                )
9708            }
9709            GeometricModelItemRef::AnnotationToModelLeaderLine(i) => {
9710                GeometricModelItemRefView::AnnotationToModelLeaderLine(
9711                    model.annotation_to_model_leader_line_arena.get(i.0),
9712                )
9713            }
9714            GeometricModelItemRef::ApllPoint(i) => {
9715                GeometricModelItemRefView::ApllPoint(model.apll_point_arena.get(i.0))
9716            }
9717            GeometricModelItemRef::ApllPointWithSurface(i) => {
9718                GeometricModelItemRefView::ApllPointWithSurface(
9719                    model.apll_point_with_surface_arena.get(i.0),
9720                )
9721            }
9722            GeometricModelItemRef::AuxiliaryLeaderLine(i) => {
9723                GeometricModelItemRefView::AuxiliaryLeaderLine(
9724                    model.auxiliary_leader_line_arena.get(i.0),
9725                )
9726            }
9727            GeometricModelItemRef::Axis1Placement(i) => {
9728                GeometricModelItemRefView::Axis1Placement(model.axis1_placement_arena.get(i.0))
9729            }
9730            GeometricModelItemRef::Axis2Placement2d(i) => {
9731                GeometricModelItemRefView::Axis2Placement2d(model.axis2_placement2d_arena.get(i.0))
9732            }
9733            GeometricModelItemRef::Axis2Placement3d(i) => {
9734                GeometricModelItemRefView::Axis2Placement3d(model.axis2_placement3d_arena.get(i.0))
9735            }
9736            GeometricModelItemRef::BSplineCurve(i) => {
9737                GeometricModelItemRefView::BSplineCurve(model.b_spline_curve_arena.get(i.0))
9738            }
9739            GeometricModelItemRef::BSplineCurveWithKnots(i) => {
9740                GeometricModelItemRefView::BSplineCurveWithKnots(
9741                    model.b_spline_curve_with_knots_arena.get(i.0),
9742                )
9743            }
9744            GeometricModelItemRef::BSplineSurface(i) => {
9745                GeometricModelItemRefView::BSplineSurface(model.b_spline_surface_arena.get(i.0))
9746            }
9747            GeometricModelItemRef::BSplineSurfaceWithKnots(i) => {
9748                GeometricModelItemRefView::BSplineSurfaceWithKnots(
9749                    model.b_spline_surface_with_knots_arena.get(i.0),
9750                )
9751            }
9752            GeometricModelItemRef::BezierCurve(i) => {
9753                GeometricModelItemRefView::BezierCurve(model.bezier_curve_arena.get(i.0))
9754            }
9755            GeometricModelItemRef::BezierSurface(i) => {
9756                GeometricModelItemRefView::BezierSurface(model.bezier_surface_arena.get(i.0))
9757            }
9758            GeometricModelItemRef::BoundedCurve(i) => {
9759                GeometricModelItemRefView::BoundedCurve(model.bounded_curve_arena.get(i.0))
9760            }
9761            GeometricModelItemRef::BoundedPcurve(i) => {
9762                GeometricModelItemRefView::BoundedPcurve(model.bounded_pcurve_arena.get(i.0))
9763            }
9764            GeometricModelItemRef::BoundedSurface(i) => {
9765                GeometricModelItemRefView::BoundedSurface(model.bounded_surface_arena.get(i.0))
9766            }
9767            GeometricModelItemRef::BoundedSurfaceCurve(i) => {
9768                GeometricModelItemRefView::BoundedSurfaceCurve(
9769                    model.bounded_surface_curve_arena.get(i.0),
9770                )
9771            }
9772            GeometricModelItemRef::BrepWithVoids(i) => {
9773                GeometricModelItemRefView::BrepWithVoids(model.brep_with_voids_arena.get(i.0))
9774            }
9775            GeometricModelItemRef::CameraModel(i) => {
9776                GeometricModelItemRefView::CameraModel(model.camera_model_arena.get(i.0))
9777            }
9778            GeometricModelItemRef::CameraModelD3(i) => {
9779                GeometricModelItemRefView::CameraModelD3(model.camera_model_d3_arena.get(i.0))
9780            }
9781            GeometricModelItemRef::CameraModelD3MultiClipping(i) => {
9782                GeometricModelItemRefView::CameraModelD3MultiClipping(
9783                    model.camera_model_d3_multi_clipping_arena.get(i.0),
9784                )
9785            }
9786            GeometricModelItemRef::CameraModelD3WithHlhsr(i) => {
9787                GeometricModelItemRefView::CameraModelD3WithHlhsr(
9788                    model.camera_model_d3_with_hlhsr_arena.get(i.0),
9789                )
9790            }
9791            GeometricModelItemRef::CartesianPoint(i) => {
9792                GeometricModelItemRefView::CartesianPoint(model.cartesian_point_arena.get(i.0))
9793            }
9794            GeometricModelItemRef::Circle(i) => {
9795                GeometricModelItemRefView::Circle(model.circle_arena.get(i.0))
9796            }
9797            GeometricModelItemRef::ClosedShell(i) => {
9798                GeometricModelItemRefView::ClosedShell(model.closed_shell_arena.get(i.0))
9799            }
9800            GeometricModelItemRef::ComplexTriangulatedFace(i) => {
9801                GeometricModelItemRefView::ComplexTriangulatedFace(
9802                    model.complex_triangulated_face_arena.get(i.0),
9803                )
9804            }
9805            GeometricModelItemRef::ComplexTriangulatedSurfaceSet(i) => {
9806                GeometricModelItemRefView::ComplexTriangulatedSurfaceSet(
9807                    model.complex_triangulated_surface_set_arena.get(i.0),
9808                )
9809            }
9810            GeometricModelItemRef::CompositeCurve(i) => {
9811                GeometricModelItemRefView::CompositeCurve(model.composite_curve_arena.get(i.0))
9812            }
9813            GeometricModelItemRef::CompositeText(i) => {
9814                GeometricModelItemRefView::CompositeText(model.composite_text_arena.get(i.0))
9815            }
9816            GeometricModelItemRef::Conic(i) => {
9817                GeometricModelItemRefView::Conic(model.conic_arena.get(i.0))
9818            }
9819            GeometricModelItemRef::ConicalSurface(i) => {
9820                GeometricModelItemRefView::ConicalSurface(model.conical_surface_arena.get(i.0))
9821            }
9822            GeometricModelItemRef::ConnectedFaceSet(i) => {
9823                GeometricModelItemRefView::ConnectedFaceSet(model.connected_face_set_arena.get(i.0))
9824            }
9825            GeometricModelItemRef::CoordinatesList(i) => {
9826                GeometricModelItemRefView::CoordinatesList(model.coordinates_list_arena.get(i.0))
9827            }
9828            GeometricModelItemRef::Curve(i) => {
9829                GeometricModelItemRefView::Curve(model.curve_arena.get(i.0))
9830            }
9831            GeometricModelItemRef::CylindricalSurface(i) => {
9832                GeometricModelItemRefView::CylindricalSurface(
9833                    model.cylindrical_surface_arena.get(i.0),
9834                )
9835            }
9836            GeometricModelItemRef::DefinedCharacterGlyph(i) => {
9837                GeometricModelItemRefView::DefinedCharacterGlyph(
9838                    model.defined_character_glyph_arena.get(i.0),
9839                )
9840            }
9841            GeometricModelItemRef::DefinedSymbol(i) => {
9842                GeometricModelItemRefView::DefinedSymbol(model.defined_symbol_arena.get(i.0))
9843            }
9844            GeometricModelItemRef::DegenerateToroidalSurface(i) => {
9845                GeometricModelItemRefView::DegenerateToroidalSurface(
9846                    model.degenerate_toroidal_surface_arena.get(i.0),
9847                )
9848            }
9849            GeometricModelItemRef::Direction(i) => {
9850                GeometricModelItemRefView::Direction(model.direction_arena.get(i.0))
9851            }
9852            GeometricModelItemRef::DraughtingCallout(i) => {
9853                GeometricModelItemRefView::DraughtingCallout(
9854                    model.draughting_callout_arena.get(i.0),
9855                )
9856            }
9857            GeometricModelItemRef::EdgeCurve(i) => {
9858                GeometricModelItemRefView::EdgeCurve(model.edge_curve_arena.get(i.0))
9859            }
9860            GeometricModelItemRef::EdgeLoop(i) => {
9861                GeometricModelItemRefView::EdgeLoop(model.edge_loop_arena.get(i.0))
9862            }
9863            GeometricModelItemRef::ElementarySurface(i) => {
9864                GeometricModelItemRefView::ElementarySurface(
9865                    model.elementary_surface_arena.get(i.0),
9866                )
9867            }
9868            GeometricModelItemRef::Ellipse(i) => {
9869                GeometricModelItemRefView::Ellipse(model.ellipse_arena.get(i.0))
9870            }
9871            GeometricModelItemRef::ExternallyDefinedHatchStyle(i) => {
9872                GeometricModelItemRefView::ExternallyDefinedHatchStyle(
9873                    model.externally_defined_hatch_style_arena.get(i.0),
9874                )
9875            }
9876            GeometricModelItemRef::ExternallyDefinedTileStyle(i) => {
9877                GeometricModelItemRefView::ExternallyDefinedTileStyle(
9878                    model.externally_defined_tile_style_arena.get(i.0),
9879                )
9880            }
9881            GeometricModelItemRef::FaceSurface(i) => {
9882                GeometricModelItemRefView::FaceSurface(model.face_surface_arena.get(i.0))
9883            }
9884            GeometricModelItemRef::FillAreaStyleHatching(i) => {
9885                GeometricModelItemRefView::FillAreaStyleHatching(
9886                    model.fill_area_style_hatching_arena.get(i.0),
9887                )
9888            }
9889            GeometricModelItemRef::FillAreaStyleTileColouredRegion(i) => {
9890                GeometricModelItemRefView::FillAreaStyleTileColouredRegion(
9891                    model.fill_area_style_tile_coloured_region_arena.get(i.0),
9892                )
9893            }
9894            GeometricModelItemRef::FillAreaStyleTileCurveWithStyle(i) => {
9895                GeometricModelItemRefView::FillAreaStyleTileCurveWithStyle(
9896                    model.fill_area_style_tile_curve_with_style_arena.get(i.0),
9897                )
9898            }
9899            GeometricModelItemRef::FillAreaStyleTileSymbolWithStyle(i) => {
9900                GeometricModelItemRefView::FillAreaStyleTileSymbolWithStyle(
9901                    model.fill_area_style_tile_symbol_with_style_arena.get(i.0),
9902                )
9903            }
9904            GeometricModelItemRef::FillAreaStyleTiles(i) => {
9905                GeometricModelItemRefView::FillAreaStyleTiles(
9906                    model.fill_area_style_tiles_arena.get(i.0),
9907                )
9908            }
9909            GeometricModelItemRef::GeometricCurveSet(i) => {
9910                GeometricModelItemRefView::GeometricCurveSet(
9911                    model.geometric_curve_set_arena.get(i.0),
9912                )
9913            }
9914            GeometricModelItemRef::GeometricRepresentationItem(i) => {
9915                GeometricModelItemRefView::GeometricRepresentationItem(
9916                    model.geometric_representation_item_arena.get(i.0),
9917                )
9918            }
9919            GeometricModelItemRef::GeometricSet(i) => {
9920                GeometricModelItemRefView::GeometricSet(model.geometric_set_arena.get(i.0))
9921            }
9922            GeometricModelItemRef::Hyperbola(i) => {
9923                GeometricModelItemRefView::Hyperbola(model.hyperbola_arena.get(i.0))
9924            }
9925            GeometricModelItemRef::IntersectionCurve(i) => {
9926                GeometricModelItemRefView::IntersectionCurve(
9927                    model.intersection_curve_arena.get(i.0),
9928                )
9929            }
9930            GeometricModelItemRef::LeaderDirectedCallout(i) => {
9931                GeometricModelItemRefView::LeaderDirectedCallout(
9932                    model.leader_directed_callout_arena.get(i.0),
9933                )
9934            }
9935            GeometricModelItemRef::Line(i) => {
9936                GeometricModelItemRefView::Line(model.line_arena.get(i.0))
9937            }
9938            GeometricModelItemRef::ManifoldSolidBrep(i) => {
9939                GeometricModelItemRefView::ManifoldSolidBrep(
9940                    model.manifold_solid_brep_arena.get(i.0),
9941                )
9942            }
9943            GeometricModelItemRef::OffsetSurface(i) => {
9944                GeometricModelItemRefView::OffsetSurface(model.offset_surface_arena.get(i.0))
9945            }
9946            GeometricModelItemRef::OneDirectionRepeatFactor(i) => {
9947                GeometricModelItemRefView::OneDirectionRepeatFactor(
9948                    model.one_direction_repeat_factor_arena.get(i.0),
9949                )
9950            }
9951            GeometricModelItemRef::OpenShell(i) => {
9952                GeometricModelItemRefView::OpenShell(model.open_shell_arena.get(i.0))
9953            }
9954            GeometricModelItemRef::OrientedClosedShell(i) => {
9955                GeometricModelItemRefView::OrientedClosedShell(
9956                    model.oriented_closed_shell_arena.get(i.0),
9957                )
9958            }
9959            GeometricModelItemRef::Pcurve(i) => {
9960                GeometricModelItemRefView::Pcurve(model.pcurve_arena.get(i.0))
9961            }
9962            GeometricModelItemRef::Placement(i) => {
9963                GeometricModelItemRefView::Placement(model.placement_arena.get(i.0))
9964            }
9965            GeometricModelItemRef::PlanarBox(i) => {
9966                GeometricModelItemRefView::PlanarBox(model.planar_box_arena.get(i.0))
9967            }
9968            GeometricModelItemRef::PlanarExtent(i) => {
9969                GeometricModelItemRefView::PlanarExtent(model.planar_extent_arena.get(i.0))
9970            }
9971            GeometricModelItemRef::Plane(i) => {
9972                GeometricModelItemRefView::Plane(model.plane_arena.get(i.0))
9973            }
9974            GeometricModelItemRef::Point(i) => {
9975                GeometricModelItemRefView::Point(model.point_arena.get(i.0))
9976            }
9977            GeometricModelItemRef::PolyLoop(i) => {
9978                GeometricModelItemRefView::PolyLoop(model.poly_loop_arena.get(i.0))
9979            }
9980            GeometricModelItemRef::Polyline(i) => {
9981                GeometricModelItemRefView::Polyline(model.polyline_arena.get(i.0))
9982            }
9983            GeometricModelItemRef::QuasiUniformCurve(i) => {
9984                GeometricModelItemRefView::QuasiUniformCurve(
9985                    model.quasi_uniform_curve_arena.get(i.0),
9986                )
9987            }
9988            GeometricModelItemRef::QuasiUniformSurface(i) => {
9989                GeometricModelItemRefView::QuasiUniformSurface(
9990                    model.quasi_uniform_surface_arena.get(i.0),
9991                )
9992            }
9993            GeometricModelItemRef::RationalBSplineCurve(i) => {
9994                GeometricModelItemRefView::RationalBSplineCurve(
9995                    model.rational_b_spline_curve_arena.get(i.0),
9996                )
9997            }
9998            GeometricModelItemRef::RationalBSplineSurface(i) => {
9999                GeometricModelItemRefView::RationalBSplineSurface(
10000                    model.rational_b_spline_surface_arena.get(i.0),
10001                )
10002            }
10003            GeometricModelItemRef::RepositionedTessellatedItem(i) => {
10004                GeometricModelItemRefView::RepositionedTessellatedItem(
10005                    model.repositioned_tessellated_item_arena.get(i.0),
10006                )
10007            }
10008            GeometricModelItemRef::SeamCurve(i) => {
10009                GeometricModelItemRefView::SeamCurve(model.seam_curve_arena.get(i.0))
10010            }
10011            GeometricModelItemRef::ShellBasedSurfaceModel(i) => {
10012                GeometricModelItemRefView::ShellBasedSurfaceModel(
10013                    model.shell_based_surface_model_arena.get(i.0),
10014                )
10015            }
10016            GeometricModelItemRef::SolidModel(i) => {
10017                GeometricModelItemRefView::SolidModel(model.solid_model_arena.get(i.0))
10018            }
10019            GeometricModelItemRef::SphericalSurface(i) => {
10020                GeometricModelItemRefView::SphericalSurface(model.spherical_surface_arena.get(i.0))
10021            }
10022            GeometricModelItemRef::Surface(i) => {
10023                GeometricModelItemRefView::Surface(model.surface_arena.get(i.0))
10024            }
10025            GeometricModelItemRef::SurfaceCurve(i) => {
10026                GeometricModelItemRefView::SurfaceCurve(model.surface_curve_arena.get(i.0))
10027            }
10028            GeometricModelItemRef::SurfaceOfLinearExtrusion(i) => {
10029                GeometricModelItemRefView::SurfaceOfLinearExtrusion(
10030                    model.surface_of_linear_extrusion_arena.get(i.0),
10031                )
10032            }
10033            GeometricModelItemRef::SurfaceOfRevolution(i) => {
10034                GeometricModelItemRefView::SurfaceOfRevolution(
10035                    model.surface_of_revolution_arena.get(i.0),
10036                )
10037            }
10038            GeometricModelItemRef::SweptSurface(i) => {
10039                GeometricModelItemRefView::SweptSurface(model.swept_surface_arena.get(i.0))
10040            }
10041            GeometricModelItemRef::SymbolTarget(i) => {
10042                GeometricModelItemRefView::SymbolTarget(model.symbol_target_arena.get(i.0))
10043            }
10044            GeometricModelItemRef::TessellatedCurveSet(i) => {
10045                GeometricModelItemRefView::TessellatedCurveSet(
10046                    model.tessellated_curve_set_arena.get(i.0),
10047                )
10048            }
10049            GeometricModelItemRef::TessellatedFace(i) => {
10050                GeometricModelItemRefView::TessellatedFace(model.tessellated_face_arena.get(i.0))
10051            }
10052            GeometricModelItemRef::TessellatedGeometricSet(i) => {
10053                GeometricModelItemRefView::TessellatedGeometricSet(
10054                    model.tessellated_geometric_set_arena.get(i.0),
10055                )
10056            }
10057            GeometricModelItemRef::TessellatedItem(i) => {
10058                GeometricModelItemRefView::TessellatedItem(model.tessellated_item_arena.get(i.0))
10059            }
10060            GeometricModelItemRef::TessellatedShell(i) => {
10061                GeometricModelItemRefView::TessellatedShell(model.tessellated_shell_arena.get(i.0))
10062            }
10063            GeometricModelItemRef::TessellatedSolid(i) => {
10064                GeometricModelItemRefView::TessellatedSolid(model.tessellated_solid_arena.get(i.0))
10065            }
10066            GeometricModelItemRef::TessellatedStructuredItem(i) => {
10067                GeometricModelItemRefView::TessellatedStructuredItem(
10068                    model.tessellated_structured_item_arena.get(i.0),
10069                )
10070            }
10071            GeometricModelItemRef::TessellatedSurfaceSet(i) => {
10072                GeometricModelItemRefView::TessellatedSurfaceSet(
10073                    model.tessellated_surface_set_arena.get(i.0),
10074                )
10075            }
10076            GeometricModelItemRef::TextLiteral(i) => {
10077                GeometricModelItemRefView::TextLiteral(model.text_literal_arena.get(i.0))
10078            }
10079            GeometricModelItemRef::ToroidalSurface(i) => {
10080                GeometricModelItemRefView::ToroidalSurface(model.toroidal_surface_arena.get(i.0))
10081            }
10082            GeometricModelItemRef::TrimmedCurve(i) => {
10083                GeometricModelItemRefView::TrimmedCurve(model.trimmed_curve_arena.get(i.0))
10084            }
10085            GeometricModelItemRef::TwoDirectionRepeatFactor(i) => {
10086                GeometricModelItemRefView::TwoDirectionRepeatFactor(
10087                    model.two_direction_repeat_factor_arena.get(i.0),
10088                )
10089            }
10090            GeometricModelItemRef::UniformCurve(i) => {
10091                GeometricModelItemRefView::UniformCurve(model.uniform_curve_arena.get(i.0))
10092            }
10093            GeometricModelItemRef::UniformSurface(i) => {
10094                GeometricModelItemRefView::UniformSurface(model.uniform_surface_arena.get(i.0))
10095            }
10096            GeometricModelItemRef::Vector(i) => {
10097                GeometricModelItemRefView::Vector(model.vector_arena.get(i.0))
10098            }
10099            GeometricModelItemRef::VertexPoint(i) => {
10100                GeometricModelItemRefView::VertexPoint(model.vertex_point_arena.get(i.0))
10101            }
10102            GeometricModelItemRef::Complex(i) => {
10103                GeometricModelItemRefView::Complex(model.complex_unit_arena.get(i.0))
10104            }
10105        }
10106    }
10107    pub fn entity_key(&self) -> EntityKey {
10108        match self {
10109            GeometricModelItemRef::AdvancedFace(i) => EntityKey::AdvancedFace(*i),
10110            GeometricModelItemRef::AnnotationPlaceholderLeaderLine(i) => {
10111                EntityKey::AnnotationPlaceholderLeaderLine(*i)
10112            }
10113            GeometricModelItemRef::AnnotationPlaceholderOccurrence(i) => {
10114                EntityKey::AnnotationPlaceholderOccurrence(*i)
10115            }
10116            GeometricModelItemRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => {
10117                EntityKey::AnnotationPlaceholderOccurrenceWithLeaderLine(*i)
10118            }
10119            GeometricModelItemRef::AnnotationPlane(i) => EntityKey::AnnotationPlane(*i),
10120            GeometricModelItemRef::AnnotationToAnnotationLeaderLine(i) => {
10121                EntityKey::AnnotationToAnnotationLeaderLine(*i)
10122            }
10123            GeometricModelItemRef::AnnotationToModelLeaderLine(i) => {
10124                EntityKey::AnnotationToModelLeaderLine(*i)
10125            }
10126            GeometricModelItemRef::ApllPoint(i) => EntityKey::ApllPoint(*i),
10127            GeometricModelItemRef::ApllPointWithSurface(i) => EntityKey::ApllPointWithSurface(*i),
10128            GeometricModelItemRef::AuxiliaryLeaderLine(i) => EntityKey::AuxiliaryLeaderLine(*i),
10129            GeometricModelItemRef::Axis1Placement(i) => EntityKey::Axis1Placement(*i),
10130            GeometricModelItemRef::Axis2Placement2d(i) => EntityKey::Axis2Placement2d(*i),
10131            GeometricModelItemRef::Axis2Placement3d(i) => EntityKey::Axis2Placement3d(*i),
10132            GeometricModelItemRef::BSplineCurve(i) => EntityKey::BSplineCurve(*i),
10133            GeometricModelItemRef::BSplineCurveWithKnots(i) => EntityKey::BSplineCurveWithKnots(*i),
10134            GeometricModelItemRef::BSplineSurface(i) => EntityKey::BSplineSurface(*i),
10135            GeometricModelItemRef::BSplineSurfaceWithKnots(i) => {
10136                EntityKey::BSplineSurfaceWithKnots(*i)
10137            }
10138            GeometricModelItemRef::BezierCurve(i) => EntityKey::BezierCurve(*i),
10139            GeometricModelItemRef::BezierSurface(i) => EntityKey::BezierSurface(*i),
10140            GeometricModelItemRef::BoundedCurve(i) => EntityKey::BoundedCurve(*i),
10141            GeometricModelItemRef::BoundedPcurve(i) => EntityKey::BoundedPcurve(*i),
10142            GeometricModelItemRef::BoundedSurface(i) => EntityKey::BoundedSurface(*i),
10143            GeometricModelItemRef::BoundedSurfaceCurve(i) => EntityKey::BoundedSurfaceCurve(*i),
10144            GeometricModelItemRef::BrepWithVoids(i) => EntityKey::BrepWithVoids(*i),
10145            GeometricModelItemRef::CameraModel(i) => EntityKey::CameraModel(*i),
10146            GeometricModelItemRef::CameraModelD3(i) => EntityKey::CameraModelD3(*i),
10147            GeometricModelItemRef::CameraModelD3MultiClipping(i) => {
10148                EntityKey::CameraModelD3MultiClipping(*i)
10149            }
10150            GeometricModelItemRef::CameraModelD3WithHlhsr(i) => {
10151                EntityKey::CameraModelD3WithHlhsr(*i)
10152            }
10153            GeometricModelItemRef::CartesianPoint(i) => EntityKey::CartesianPoint(*i),
10154            GeometricModelItemRef::Circle(i) => EntityKey::Circle(*i),
10155            GeometricModelItemRef::ClosedShell(i) => EntityKey::ClosedShell(*i),
10156            GeometricModelItemRef::ComplexTriangulatedFace(i) => {
10157                EntityKey::ComplexTriangulatedFace(*i)
10158            }
10159            GeometricModelItemRef::ComplexTriangulatedSurfaceSet(i) => {
10160                EntityKey::ComplexTriangulatedSurfaceSet(*i)
10161            }
10162            GeometricModelItemRef::CompositeCurve(i) => EntityKey::CompositeCurve(*i),
10163            GeometricModelItemRef::CompositeText(i) => EntityKey::CompositeText(*i),
10164            GeometricModelItemRef::Conic(i) => EntityKey::Conic(*i),
10165            GeometricModelItemRef::ConicalSurface(i) => EntityKey::ConicalSurface(*i),
10166            GeometricModelItemRef::ConnectedFaceSet(i) => EntityKey::ConnectedFaceSet(*i),
10167            GeometricModelItemRef::CoordinatesList(i) => EntityKey::CoordinatesList(*i),
10168            GeometricModelItemRef::Curve(i) => EntityKey::Curve(*i),
10169            GeometricModelItemRef::CylindricalSurface(i) => EntityKey::CylindricalSurface(*i),
10170            GeometricModelItemRef::DefinedCharacterGlyph(i) => EntityKey::DefinedCharacterGlyph(*i),
10171            GeometricModelItemRef::DefinedSymbol(i) => EntityKey::DefinedSymbol(*i),
10172            GeometricModelItemRef::DegenerateToroidalSurface(i) => {
10173                EntityKey::DegenerateToroidalSurface(*i)
10174            }
10175            GeometricModelItemRef::Direction(i) => EntityKey::Direction(*i),
10176            GeometricModelItemRef::DraughtingCallout(i) => EntityKey::DraughtingCallout(*i),
10177            GeometricModelItemRef::EdgeCurve(i) => EntityKey::EdgeCurve(*i),
10178            GeometricModelItemRef::EdgeLoop(i) => EntityKey::EdgeLoop(*i),
10179            GeometricModelItemRef::ElementarySurface(i) => EntityKey::ElementarySurface(*i),
10180            GeometricModelItemRef::Ellipse(i) => EntityKey::Ellipse(*i),
10181            GeometricModelItemRef::ExternallyDefinedHatchStyle(i) => {
10182                EntityKey::ExternallyDefinedHatchStyle(*i)
10183            }
10184            GeometricModelItemRef::ExternallyDefinedTileStyle(i) => {
10185                EntityKey::ExternallyDefinedTileStyle(*i)
10186            }
10187            GeometricModelItemRef::FaceSurface(i) => EntityKey::FaceSurface(*i),
10188            GeometricModelItemRef::FillAreaStyleHatching(i) => EntityKey::FillAreaStyleHatching(*i),
10189            GeometricModelItemRef::FillAreaStyleTileColouredRegion(i) => {
10190                EntityKey::FillAreaStyleTileColouredRegion(*i)
10191            }
10192            GeometricModelItemRef::FillAreaStyleTileCurveWithStyle(i) => {
10193                EntityKey::FillAreaStyleTileCurveWithStyle(*i)
10194            }
10195            GeometricModelItemRef::FillAreaStyleTileSymbolWithStyle(i) => {
10196                EntityKey::FillAreaStyleTileSymbolWithStyle(*i)
10197            }
10198            GeometricModelItemRef::FillAreaStyleTiles(i) => EntityKey::FillAreaStyleTiles(*i),
10199            GeometricModelItemRef::GeometricCurveSet(i) => EntityKey::GeometricCurveSet(*i),
10200            GeometricModelItemRef::GeometricRepresentationItem(i) => {
10201                EntityKey::GeometricRepresentationItem(*i)
10202            }
10203            GeometricModelItemRef::GeometricSet(i) => EntityKey::GeometricSet(*i),
10204            GeometricModelItemRef::Hyperbola(i) => EntityKey::Hyperbola(*i),
10205            GeometricModelItemRef::IntersectionCurve(i) => EntityKey::IntersectionCurve(*i),
10206            GeometricModelItemRef::LeaderDirectedCallout(i) => EntityKey::LeaderDirectedCallout(*i),
10207            GeometricModelItemRef::Line(i) => EntityKey::Line(*i),
10208            GeometricModelItemRef::ManifoldSolidBrep(i) => EntityKey::ManifoldSolidBrep(*i),
10209            GeometricModelItemRef::OffsetSurface(i) => EntityKey::OffsetSurface(*i),
10210            GeometricModelItemRef::OneDirectionRepeatFactor(i) => {
10211                EntityKey::OneDirectionRepeatFactor(*i)
10212            }
10213            GeometricModelItemRef::OpenShell(i) => EntityKey::OpenShell(*i),
10214            GeometricModelItemRef::OrientedClosedShell(i) => EntityKey::OrientedClosedShell(*i),
10215            GeometricModelItemRef::Pcurve(i) => EntityKey::Pcurve(*i),
10216            GeometricModelItemRef::Placement(i) => EntityKey::Placement(*i),
10217            GeometricModelItemRef::PlanarBox(i) => EntityKey::PlanarBox(*i),
10218            GeometricModelItemRef::PlanarExtent(i) => EntityKey::PlanarExtent(*i),
10219            GeometricModelItemRef::Plane(i) => EntityKey::Plane(*i),
10220            GeometricModelItemRef::Point(i) => EntityKey::Point(*i),
10221            GeometricModelItemRef::PolyLoop(i) => EntityKey::PolyLoop(*i),
10222            GeometricModelItemRef::Polyline(i) => EntityKey::Polyline(*i),
10223            GeometricModelItemRef::QuasiUniformCurve(i) => EntityKey::QuasiUniformCurve(*i),
10224            GeometricModelItemRef::QuasiUniformSurface(i) => EntityKey::QuasiUniformSurface(*i),
10225            GeometricModelItemRef::RationalBSplineCurve(i) => EntityKey::RationalBSplineCurve(*i),
10226            GeometricModelItemRef::RationalBSplineSurface(i) => {
10227                EntityKey::RationalBSplineSurface(*i)
10228            }
10229            GeometricModelItemRef::RepositionedTessellatedItem(i) => {
10230                EntityKey::RepositionedTessellatedItem(*i)
10231            }
10232            GeometricModelItemRef::SeamCurve(i) => EntityKey::SeamCurve(*i),
10233            GeometricModelItemRef::ShellBasedSurfaceModel(i) => {
10234                EntityKey::ShellBasedSurfaceModel(*i)
10235            }
10236            GeometricModelItemRef::SolidModel(i) => EntityKey::SolidModel(*i),
10237            GeometricModelItemRef::SphericalSurface(i) => EntityKey::SphericalSurface(*i),
10238            GeometricModelItemRef::Surface(i) => EntityKey::Surface(*i),
10239            GeometricModelItemRef::SurfaceCurve(i) => EntityKey::SurfaceCurve(*i),
10240            GeometricModelItemRef::SurfaceOfLinearExtrusion(i) => {
10241                EntityKey::SurfaceOfLinearExtrusion(*i)
10242            }
10243            GeometricModelItemRef::SurfaceOfRevolution(i) => EntityKey::SurfaceOfRevolution(*i),
10244            GeometricModelItemRef::SweptSurface(i) => EntityKey::SweptSurface(*i),
10245            GeometricModelItemRef::SymbolTarget(i) => EntityKey::SymbolTarget(*i),
10246            GeometricModelItemRef::TessellatedCurveSet(i) => EntityKey::TessellatedCurveSet(*i),
10247            GeometricModelItemRef::TessellatedFace(i) => EntityKey::TessellatedFace(*i),
10248            GeometricModelItemRef::TessellatedGeometricSet(i) => {
10249                EntityKey::TessellatedGeometricSet(*i)
10250            }
10251            GeometricModelItemRef::TessellatedItem(i) => EntityKey::TessellatedItem(*i),
10252            GeometricModelItemRef::TessellatedShell(i) => EntityKey::TessellatedShell(*i),
10253            GeometricModelItemRef::TessellatedSolid(i) => EntityKey::TessellatedSolid(*i),
10254            GeometricModelItemRef::TessellatedStructuredItem(i) => {
10255                EntityKey::TessellatedStructuredItem(*i)
10256            }
10257            GeometricModelItemRef::TessellatedSurfaceSet(i) => EntityKey::TessellatedSurfaceSet(*i),
10258            GeometricModelItemRef::TextLiteral(i) => EntityKey::TextLiteral(*i),
10259            GeometricModelItemRef::ToroidalSurface(i) => EntityKey::ToroidalSurface(*i),
10260            GeometricModelItemRef::TrimmedCurve(i) => EntityKey::TrimmedCurve(*i),
10261            GeometricModelItemRef::TwoDirectionRepeatFactor(i) => {
10262                EntityKey::TwoDirectionRepeatFactor(*i)
10263            }
10264            GeometricModelItemRef::UniformCurve(i) => EntityKey::UniformCurve(*i),
10265            GeometricModelItemRef::UniformSurface(i) => EntityKey::UniformSurface(*i),
10266            GeometricModelItemRef::Vector(i) => EntityKey::Vector(*i),
10267            GeometricModelItemRef::VertexPoint(i) => EntityKey::VertexPoint(*i),
10268            GeometricModelItemRef::Complex(i) => EntityKey::ComplexUnit(*i),
10269        }
10270    }
10271}
10272
10273#[derive(Clone, Copy, Debug)]
10274pub enum GeometricSetSelectRefView<'m> {
10275    AnnotationText(&'m AnnotationText),
10276    ApllPoint(&'m ApllPoint),
10277    ApllPointWithSurface(&'m ApllPointWithSurface),
10278    Axis1Placement(&'m Axis1Placement),
10279    Axis2Placement2d(&'m Axis2Placement2d),
10280    Axis2Placement3d(&'m Axis2Placement3d),
10281    BSplineCurve(&'m BSplineCurve),
10282    BSplineCurveWithKnots(&'m BSplineCurveWithKnots),
10283    BSplineSurface(&'m BSplineSurface),
10284    BSplineSurfaceWithKnots(&'m BSplineSurfaceWithKnots),
10285    BezierCurve(&'m BezierCurve),
10286    BezierSurface(&'m BezierSurface),
10287    BoundedCurve(&'m BoundedCurve),
10288    BoundedPcurve(&'m BoundedPcurve),
10289    BoundedSurface(&'m BoundedSurface),
10290    BoundedSurfaceCurve(&'m BoundedSurfaceCurve),
10291    CartesianPoint(&'m CartesianPoint),
10292    Circle(&'m Circle),
10293    CompositeCurve(&'m CompositeCurve),
10294    Conic(&'m Conic),
10295    ConicalSurface(&'m ConicalSurface),
10296    Curve(&'m Curve),
10297    CylindricalSurface(&'m CylindricalSurface),
10298    DegenerateToroidalSurface(&'m DegenerateToroidalSurface),
10299    ElementarySurface(&'m ElementarySurface),
10300    Ellipse(&'m Ellipse),
10301    Hyperbola(&'m Hyperbola),
10302    IntersectionCurve(&'m IntersectionCurve),
10303    Line(&'m Line),
10304    OffsetSurface(&'m OffsetSurface),
10305    Pcurve(&'m Pcurve),
10306    Placement(&'m Placement),
10307    PlanarBox(&'m PlanarBox),
10308    Plane(&'m Plane),
10309    Point(&'m Point),
10310    Polyline(&'m Polyline),
10311    QuasiUniformCurve(&'m QuasiUniformCurve),
10312    QuasiUniformSurface(&'m QuasiUniformSurface),
10313    RationalBSplineCurve(&'m RationalBSplineCurve),
10314    RationalBSplineSurface(&'m RationalBSplineSurface),
10315    SeamCurve(&'m SeamCurve),
10316    SphericalSurface(&'m SphericalSurface),
10317    Surface(&'m Surface),
10318    SurfaceCurve(&'m SurfaceCurve),
10319    SurfaceOfLinearExtrusion(&'m SurfaceOfLinearExtrusion),
10320    SurfaceOfRevolution(&'m SurfaceOfRevolution),
10321    SweptSurface(&'m SweptSurface),
10322    ToroidalSurface(&'m ToroidalSurface),
10323    TrimmedCurve(&'m TrimmedCurve),
10324    UniformCurve(&'m UniformCurve),
10325    UniformSurface(&'m UniformSurface),
10326    Complex(&'m ComplexUnit),
10327}
10328impl GeometricSetSelectRef {
10329    pub fn resolve<'m>(&self, model: &'m StepModel) -> GeometricSetSelectRefView<'m> {
10330        match self {
10331            GeometricSetSelectRef::AnnotationText(i) => {
10332                GeometricSetSelectRefView::AnnotationText(model.annotation_text_arena.get(i.0))
10333            }
10334            GeometricSetSelectRef::ApllPoint(i) => {
10335                GeometricSetSelectRefView::ApllPoint(model.apll_point_arena.get(i.0))
10336            }
10337            GeometricSetSelectRef::ApllPointWithSurface(i) => {
10338                GeometricSetSelectRefView::ApllPointWithSurface(
10339                    model.apll_point_with_surface_arena.get(i.0),
10340                )
10341            }
10342            GeometricSetSelectRef::Axis1Placement(i) => {
10343                GeometricSetSelectRefView::Axis1Placement(model.axis1_placement_arena.get(i.0))
10344            }
10345            GeometricSetSelectRef::Axis2Placement2d(i) => {
10346                GeometricSetSelectRefView::Axis2Placement2d(model.axis2_placement2d_arena.get(i.0))
10347            }
10348            GeometricSetSelectRef::Axis2Placement3d(i) => {
10349                GeometricSetSelectRefView::Axis2Placement3d(model.axis2_placement3d_arena.get(i.0))
10350            }
10351            GeometricSetSelectRef::BSplineCurve(i) => {
10352                GeometricSetSelectRefView::BSplineCurve(model.b_spline_curve_arena.get(i.0))
10353            }
10354            GeometricSetSelectRef::BSplineCurveWithKnots(i) => {
10355                GeometricSetSelectRefView::BSplineCurveWithKnots(
10356                    model.b_spline_curve_with_knots_arena.get(i.0),
10357                )
10358            }
10359            GeometricSetSelectRef::BSplineSurface(i) => {
10360                GeometricSetSelectRefView::BSplineSurface(model.b_spline_surface_arena.get(i.0))
10361            }
10362            GeometricSetSelectRef::BSplineSurfaceWithKnots(i) => {
10363                GeometricSetSelectRefView::BSplineSurfaceWithKnots(
10364                    model.b_spline_surface_with_knots_arena.get(i.0),
10365                )
10366            }
10367            GeometricSetSelectRef::BezierCurve(i) => {
10368                GeometricSetSelectRefView::BezierCurve(model.bezier_curve_arena.get(i.0))
10369            }
10370            GeometricSetSelectRef::BezierSurface(i) => {
10371                GeometricSetSelectRefView::BezierSurface(model.bezier_surface_arena.get(i.0))
10372            }
10373            GeometricSetSelectRef::BoundedCurve(i) => {
10374                GeometricSetSelectRefView::BoundedCurve(model.bounded_curve_arena.get(i.0))
10375            }
10376            GeometricSetSelectRef::BoundedPcurve(i) => {
10377                GeometricSetSelectRefView::BoundedPcurve(model.bounded_pcurve_arena.get(i.0))
10378            }
10379            GeometricSetSelectRef::BoundedSurface(i) => {
10380                GeometricSetSelectRefView::BoundedSurface(model.bounded_surface_arena.get(i.0))
10381            }
10382            GeometricSetSelectRef::BoundedSurfaceCurve(i) => {
10383                GeometricSetSelectRefView::BoundedSurfaceCurve(
10384                    model.bounded_surface_curve_arena.get(i.0),
10385                )
10386            }
10387            GeometricSetSelectRef::CartesianPoint(i) => {
10388                GeometricSetSelectRefView::CartesianPoint(model.cartesian_point_arena.get(i.0))
10389            }
10390            GeometricSetSelectRef::Circle(i) => {
10391                GeometricSetSelectRefView::Circle(model.circle_arena.get(i.0))
10392            }
10393            GeometricSetSelectRef::CompositeCurve(i) => {
10394                GeometricSetSelectRefView::CompositeCurve(model.composite_curve_arena.get(i.0))
10395            }
10396            GeometricSetSelectRef::Conic(i) => {
10397                GeometricSetSelectRefView::Conic(model.conic_arena.get(i.0))
10398            }
10399            GeometricSetSelectRef::ConicalSurface(i) => {
10400                GeometricSetSelectRefView::ConicalSurface(model.conical_surface_arena.get(i.0))
10401            }
10402            GeometricSetSelectRef::Curve(i) => {
10403                GeometricSetSelectRefView::Curve(model.curve_arena.get(i.0))
10404            }
10405            GeometricSetSelectRef::CylindricalSurface(i) => {
10406                GeometricSetSelectRefView::CylindricalSurface(
10407                    model.cylindrical_surface_arena.get(i.0),
10408                )
10409            }
10410            GeometricSetSelectRef::DegenerateToroidalSurface(i) => {
10411                GeometricSetSelectRefView::DegenerateToroidalSurface(
10412                    model.degenerate_toroidal_surface_arena.get(i.0),
10413                )
10414            }
10415            GeometricSetSelectRef::ElementarySurface(i) => {
10416                GeometricSetSelectRefView::ElementarySurface(
10417                    model.elementary_surface_arena.get(i.0),
10418                )
10419            }
10420            GeometricSetSelectRef::Ellipse(i) => {
10421                GeometricSetSelectRefView::Ellipse(model.ellipse_arena.get(i.0))
10422            }
10423            GeometricSetSelectRef::Hyperbola(i) => {
10424                GeometricSetSelectRefView::Hyperbola(model.hyperbola_arena.get(i.0))
10425            }
10426            GeometricSetSelectRef::IntersectionCurve(i) => {
10427                GeometricSetSelectRefView::IntersectionCurve(
10428                    model.intersection_curve_arena.get(i.0),
10429                )
10430            }
10431            GeometricSetSelectRef::Line(i) => {
10432                GeometricSetSelectRefView::Line(model.line_arena.get(i.0))
10433            }
10434            GeometricSetSelectRef::OffsetSurface(i) => {
10435                GeometricSetSelectRefView::OffsetSurface(model.offset_surface_arena.get(i.0))
10436            }
10437            GeometricSetSelectRef::Pcurve(i) => {
10438                GeometricSetSelectRefView::Pcurve(model.pcurve_arena.get(i.0))
10439            }
10440            GeometricSetSelectRef::Placement(i) => {
10441                GeometricSetSelectRefView::Placement(model.placement_arena.get(i.0))
10442            }
10443            GeometricSetSelectRef::PlanarBox(i) => {
10444                GeometricSetSelectRefView::PlanarBox(model.planar_box_arena.get(i.0))
10445            }
10446            GeometricSetSelectRef::Plane(i) => {
10447                GeometricSetSelectRefView::Plane(model.plane_arena.get(i.0))
10448            }
10449            GeometricSetSelectRef::Point(i) => {
10450                GeometricSetSelectRefView::Point(model.point_arena.get(i.0))
10451            }
10452            GeometricSetSelectRef::Polyline(i) => {
10453                GeometricSetSelectRefView::Polyline(model.polyline_arena.get(i.0))
10454            }
10455            GeometricSetSelectRef::QuasiUniformCurve(i) => {
10456                GeometricSetSelectRefView::QuasiUniformCurve(
10457                    model.quasi_uniform_curve_arena.get(i.0),
10458                )
10459            }
10460            GeometricSetSelectRef::QuasiUniformSurface(i) => {
10461                GeometricSetSelectRefView::QuasiUniformSurface(
10462                    model.quasi_uniform_surface_arena.get(i.0),
10463                )
10464            }
10465            GeometricSetSelectRef::RationalBSplineCurve(i) => {
10466                GeometricSetSelectRefView::RationalBSplineCurve(
10467                    model.rational_b_spline_curve_arena.get(i.0),
10468                )
10469            }
10470            GeometricSetSelectRef::RationalBSplineSurface(i) => {
10471                GeometricSetSelectRefView::RationalBSplineSurface(
10472                    model.rational_b_spline_surface_arena.get(i.0),
10473                )
10474            }
10475            GeometricSetSelectRef::SeamCurve(i) => {
10476                GeometricSetSelectRefView::SeamCurve(model.seam_curve_arena.get(i.0))
10477            }
10478            GeometricSetSelectRef::SphericalSurface(i) => {
10479                GeometricSetSelectRefView::SphericalSurface(model.spherical_surface_arena.get(i.0))
10480            }
10481            GeometricSetSelectRef::Surface(i) => {
10482                GeometricSetSelectRefView::Surface(model.surface_arena.get(i.0))
10483            }
10484            GeometricSetSelectRef::SurfaceCurve(i) => {
10485                GeometricSetSelectRefView::SurfaceCurve(model.surface_curve_arena.get(i.0))
10486            }
10487            GeometricSetSelectRef::SurfaceOfLinearExtrusion(i) => {
10488                GeometricSetSelectRefView::SurfaceOfLinearExtrusion(
10489                    model.surface_of_linear_extrusion_arena.get(i.0),
10490                )
10491            }
10492            GeometricSetSelectRef::SurfaceOfRevolution(i) => {
10493                GeometricSetSelectRefView::SurfaceOfRevolution(
10494                    model.surface_of_revolution_arena.get(i.0),
10495                )
10496            }
10497            GeometricSetSelectRef::SweptSurface(i) => {
10498                GeometricSetSelectRefView::SweptSurface(model.swept_surface_arena.get(i.0))
10499            }
10500            GeometricSetSelectRef::ToroidalSurface(i) => {
10501                GeometricSetSelectRefView::ToroidalSurface(model.toroidal_surface_arena.get(i.0))
10502            }
10503            GeometricSetSelectRef::TrimmedCurve(i) => {
10504                GeometricSetSelectRefView::TrimmedCurve(model.trimmed_curve_arena.get(i.0))
10505            }
10506            GeometricSetSelectRef::UniformCurve(i) => {
10507                GeometricSetSelectRefView::UniformCurve(model.uniform_curve_arena.get(i.0))
10508            }
10509            GeometricSetSelectRef::UniformSurface(i) => {
10510                GeometricSetSelectRefView::UniformSurface(model.uniform_surface_arena.get(i.0))
10511            }
10512            GeometricSetSelectRef::Complex(i) => {
10513                GeometricSetSelectRefView::Complex(model.complex_unit_arena.get(i.0))
10514            }
10515        }
10516    }
10517    pub fn entity_key(&self) -> EntityKey {
10518        match self {
10519            GeometricSetSelectRef::AnnotationText(i) => EntityKey::AnnotationText(*i),
10520            GeometricSetSelectRef::ApllPoint(i) => EntityKey::ApllPoint(*i),
10521            GeometricSetSelectRef::ApllPointWithSurface(i) => EntityKey::ApllPointWithSurface(*i),
10522            GeometricSetSelectRef::Axis1Placement(i) => EntityKey::Axis1Placement(*i),
10523            GeometricSetSelectRef::Axis2Placement2d(i) => EntityKey::Axis2Placement2d(*i),
10524            GeometricSetSelectRef::Axis2Placement3d(i) => EntityKey::Axis2Placement3d(*i),
10525            GeometricSetSelectRef::BSplineCurve(i) => EntityKey::BSplineCurve(*i),
10526            GeometricSetSelectRef::BSplineCurveWithKnots(i) => EntityKey::BSplineCurveWithKnots(*i),
10527            GeometricSetSelectRef::BSplineSurface(i) => EntityKey::BSplineSurface(*i),
10528            GeometricSetSelectRef::BSplineSurfaceWithKnots(i) => {
10529                EntityKey::BSplineSurfaceWithKnots(*i)
10530            }
10531            GeometricSetSelectRef::BezierCurve(i) => EntityKey::BezierCurve(*i),
10532            GeometricSetSelectRef::BezierSurface(i) => EntityKey::BezierSurface(*i),
10533            GeometricSetSelectRef::BoundedCurve(i) => EntityKey::BoundedCurve(*i),
10534            GeometricSetSelectRef::BoundedPcurve(i) => EntityKey::BoundedPcurve(*i),
10535            GeometricSetSelectRef::BoundedSurface(i) => EntityKey::BoundedSurface(*i),
10536            GeometricSetSelectRef::BoundedSurfaceCurve(i) => EntityKey::BoundedSurfaceCurve(*i),
10537            GeometricSetSelectRef::CartesianPoint(i) => EntityKey::CartesianPoint(*i),
10538            GeometricSetSelectRef::Circle(i) => EntityKey::Circle(*i),
10539            GeometricSetSelectRef::CompositeCurve(i) => EntityKey::CompositeCurve(*i),
10540            GeometricSetSelectRef::Conic(i) => EntityKey::Conic(*i),
10541            GeometricSetSelectRef::ConicalSurface(i) => EntityKey::ConicalSurface(*i),
10542            GeometricSetSelectRef::Curve(i) => EntityKey::Curve(*i),
10543            GeometricSetSelectRef::CylindricalSurface(i) => EntityKey::CylindricalSurface(*i),
10544            GeometricSetSelectRef::DegenerateToroidalSurface(i) => {
10545                EntityKey::DegenerateToroidalSurface(*i)
10546            }
10547            GeometricSetSelectRef::ElementarySurface(i) => EntityKey::ElementarySurface(*i),
10548            GeometricSetSelectRef::Ellipse(i) => EntityKey::Ellipse(*i),
10549            GeometricSetSelectRef::Hyperbola(i) => EntityKey::Hyperbola(*i),
10550            GeometricSetSelectRef::IntersectionCurve(i) => EntityKey::IntersectionCurve(*i),
10551            GeometricSetSelectRef::Line(i) => EntityKey::Line(*i),
10552            GeometricSetSelectRef::OffsetSurface(i) => EntityKey::OffsetSurface(*i),
10553            GeometricSetSelectRef::Pcurve(i) => EntityKey::Pcurve(*i),
10554            GeometricSetSelectRef::Placement(i) => EntityKey::Placement(*i),
10555            GeometricSetSelectRef::PlanarBox(i) => EntityKey::PlanarBox(*i),
10556            GeometricSetSelectRef::Plane(i) => EntityKey::Plane(*i),
10557            GeometricSetSelectRef::Point(i) => EntityKey::Point(*i),
10558            GeometricSetSelectRef::Polyline(i) => EntityKey::Polyline(*i),
10559            GeometricSetSelectRef::QuasiUniformCurve(i) => EntityKey::QuasiUniformCurve(*i),
10560            GeometricSetSelectRef::QuasiUniformSurface(i) => EntityKey::QuasiUniformSurface(*i),
10561            GeometricSetSelectRef::RationalBSplineCurve(i) => EntityKey::RationalBSplineCurve(*i),
10562            GeometricSetSelectRef::RationalBSplineSurface(i) => {
10563                EntityKey::RationalBSplineSurface(*i)
10564            }
10565            GeometricSetSelectRef::SeamCurve(i) => EntityKey::SeamCurve(*i),
10566            GeometricSetSelectRef::SphericalSurface(i) => EntityKey::SphericalSurface(*i),
10567            GeometricSetSelectRef::Surface(i) => EntityKey::Surface(*i),
10568            GeometricSetSelectRef::SurfaceCurve(i) => EntityKey::SurfaceCurve(*i),
10569            GeometricSetSelectRef::SurfaceOfLinearExtrusion(i) => {
10570                EntityKey::SurfaceOfLinearExtrusion(*i)
10571            }
10572            GeometricSetSelectRef::SurfaceOfRevolution(i) => EntityKey::SurfaceOfRevolution(*i),
10573            GeometricSetSelectRef::SweptSurface(i) => EntityKey::SweptSurface(*i),
10574            GeometricSetSelectRef::ToroidalSurface(i) => EntityKey::ToroidalSurface(*i),
10575            GeometricSetSelectRef::TrimmedCurve(i) => EntityKey::TrimmedCurve(*i),
10576            GeometricSetSelectRef::UniformCurve(i) => EntityKey::UniformCurve(*i),
10577            GeometricSetSelectRef::UniformSurface(i) => EntityKey::UniformSurface(*i),
10578            GeometricSetSelectRef::Complex(i) => EntityKey::ComplexUnit(*i),
10579        }
10580    }
10581}
10582
10583#[derive(Clone, Copy, Debug)]
10584pub enum GeometricToleranceRefView<'m> {
10585    AngularityTolerance(&'m AngularityTolerance),
10586    CircularRunoutTolerance(&'m CircularRunoutTolerance),
10587    CoaxialityTolerance(&'m CoaxialityTolerance),
10588    ConcentricityTolerance(&'m ConcentricityTolerance),
10589    CylindricityTolerance(&'m CylindricityTolerance),
10590    FlatnessTolerance(&'m FlatnessTolerance),
10591    GeometricTolerance(&'m GeometricTolerance),
10592    GeometricToleranceWithDatumReference(&'m GeometricToleranceWithDatumReference),
10593    GeometricToleranceWithDefinedAreaUnit(&'m GeometricToleranceWithDefinedAreaUnit),
10594    GeometricToleranceWithDefinedUnit(&'m GeometricToleranceWithDefinedUnit),
10595    GeometricToleranceWithMaximumTolerance(&'m GeometricToleranceWithMaximumTolerance),
10596    GeometricToleranceWithModifiers(&'m GeometricToleranceWithModifiers),
10597    LineProfileTolerance(&'m LineProfileTolerance),
10598    ModifiedGeometricTolerance(&'m ModifiedGeometricTolerance),
10599    ParallelismTolerance(&'m ParallelismTolerance),
10600    PerpendicularityTolerance(&'m PerpendicularityTolerance),
10601    PositionTolerance(&'m PositionTolerance),
10602    RoundnessTolerance(&'m RoundnessTolerance),
10603    StraightnessTolerance(&'m StraightnessTolerance),
10604    SurfaceProfileTolerance(&'m SurfaceProfileTolerance),
10605    SymmetryTolerance(&'m SymmetryTolerance),
10606    TotalRunoutTolerance(&'m TotalRunoutTolerance),
10607    UnequallyDisposedGeometricTolerance(&'m UnequallyDisposedGeometricTolerance),
10608    Complex(&'m ComplexUnit),
10609}
10610impl GeometricToleranceRef {
10611    pub fn resolve<'m>(&self, model: &'m StepModel) -> GeometricToleranceRefView<'m> {
10612        match self {
10613            GeometricToleranceRef::AngularityTolerance(i) => {
10614                GeometricToleranceRefView::AngularityTolerance(
10615                    model.angularity_tolerance_arena.get(i.0),
10616                )
10617            }
10618            GeometricToleranceRef::CircularRunoutTolerance(i) => {
10619                GeometricToleranceRefView::CircularRunoutTolerance(
10620                    model.circular_runout_tolerance_arena.get(i.0),
10621                )
10622            }
10623            GeometricToleranceRef::CoaxialityTolerance(i) => {
10624                GeometricToleranceRefView::CoaxialityTolerance(
10625                    model.coaxiality_tolerance_arena.get(i.0),
10626                )
10627            }
10628            GeometricToleranceRef::ConcentricityTolerance(i) => {
10629                GeometricToleranceRefView::ConcentricityTolerance(
10630                    model.concentricity_tolerance_arena.get(i.0),
10631                )
10632            }
10633            GeometricToleranceRef::CylindricityTolerance(i) => {
10634                GeometricToleranceRefView::CylindricityTolerance(
10635                    model.cylindricity_tolerance_arena.get(i.0),
10636                )
10637            }
10638            GeometricToleranceRef::FlatnessTolerance(i) => {
10639                GeometricToleranceRefView::FlatnessTolerance(
10640                    model.flatness_tolerance_arena.get(i.0),
10641                )
10642            }
10643            GeometricToleranceRef::GeometricTolerance(i) => {
10644                GeometricToleranceRefView::GeometricTolerance(
10645                    model.geometric_tolerance_arena.get(i.0),
10646                )
10647            }
10648            GeometricToleranceRef::GeometricToleranceWithDatumReference(i) => {
10649                GeometricToleranceRefView::GeometricToleranceWithDatumReference(
10650                    model
10651                        .geometric_tolerance_with_datum_reference_arena
10652                        .get(i.0),
10653                )
10654            }
10655            GeometricToleranceRef::GeometricToleranceWithDefinedAreaUnit(i) => {
10656                GeometricToleranceRefView::GeometricToleranceWithDefinedAreaUnit(
10657                    model
10658                        .geometric_tolerance_with_defined_area_unit_arena
10659                        .get(i.0),
10660                )
10661            }
10662            GeometricToleranceRef::GeometricToleranceWithDefinedUnit(i) => {
10663                GeometricToleranceRefView::GeometricToleranceWithDefinedUnit(
10664                    model.geometric_tolerance_with_defined_unit_arena.get(i.0),
10665                )
10666            }
10667            GeometricToleranceRef::GeometricToleranceWithMaximumTolerance(i) => {
10668                GeometricToleranceRefView::GeometricToleranceWithMaximumTolerance(
10669                    model
10670                        .geometric_tolerance_with_maximum_tolerance_arena
10671                        .get(i.0),
10672                )
10673            }
10674            GeometricToleranceRef::GeometricToleranceWithModifiers(i) => {
10675                GeometricToleranceRefView::GeometricToleranceWithModifiers(
10676                    model.geometric_tolerance_with_modifiers_arena.get(i.0),
10677                )
10678            }
10679            GeometricToleranceRef::LineProfileTolerance(i) => {
10680                GeometricToleranceRefView::LineProfileTolerance(
10681                    model.line_profile_tolerance_arena.get(i.0),
10682                )
10683            }
10684            GeometricToleranceRef::ModifiedGeometricTolerance(i) => {
10685                GeometricToleranceRefView::ModifiedGeometricTolerance(
10686                    model.modified_geometric_tolerance_arena.get(i.0),
10687                )
10688            }
10689            GeometricToleranceRef::ParallelismTolerance(i) => {
10690                GeometricToleranceRefView::ParallelismTolerance(
10691                    model.parallelism_tolerance_arena.get(i.0),
10692                )
10693            }
10694            GeometricToleranceRef::PerpendicularityTolerance(i) => {
10695                GeometricToleranceRefView::PerpendicularityTolerance(
10696                    model.perpendicularity_tolerance_arena.get(i.0),
10697                )
10698            }
10699            GeometricToleranceRef::PositionTolerance(i) => {
10700                GeometricToleranceRefView::PositionTolerance(
10701                    model.position_tolerance_arena.get(i.0),
10702                )
10703            }
10704            GeometricToleranceRef::RoundnessTolerance(i) => {
10705                GeometricToleranceRefView::RoundnessTolerance(
10706                    model.roundness_tolerance_arena.get(i.0),
10707                )
10708            }
10709            GeometricToleranceRef::StraightnessTolerance(i) => {
10710                GeometricToleranceRefView::StraightnessTolerance(
10711                    model.straightness_tolerance_arena.get(i.0),
10712                )
10713            }
10714            GeometricToleranceRef::SurfaceProfileTolerance(i) => {
10715                GeometricToleranceRefView::SurfaceProfileTolerance(
10716                    model.surface_profile_tolerance_arena.get(i.0),
10717                )
10718            }
10719            GeometricToleranceRef::SymmetryTolerance(i) => {
10720                GeometricToleranceRefView::SymmetryTolerance(
10721                    model.symmetry_tolerance_arena.get(i.0),
10722                )
10723            }
10724            GeometricToleranceRef::TotalRunoutTolerance(i) => {
10725                GeometricToleranceRefView::TotalRunoutTolerance(
10726                    model.total_runout_tolerance_arena.get(i.0),
10727                )
10728            }
10729            GeometricToleranceRef::UnequallyDisposedGeometricTolerance(i) => {
10730                GeometricToleranceRefView::UnequallyDisposedGeometricTolerance(
10731                    model.unequally_disposed_geometric_tolerance_arena.get(i.0),
10732                )
10733            }
10734            GeometricToleranceRef::Complex(i) => {
10735                GeometricToleranceRefView::Complex(model.complex_unit_arena.get(i.0))
10736            }
10737        }
10738    }
10739    pub fn entity_key(&self) -> EntityKey {
10740        match self {
10741            GeometricToleranceRef::AngularityTolerance(i) => EntityKey::AngularityTolerance(*i),
10742            GeometricToleranceRef::CircularRunoutTolerance(i) => {
10743                EntityKey::CircularRunoutTolerance(*i)
10744            }
10745            GeometricToleranceRef::CoaxialityTolerance(i) => EntityKey::CoaxialityTolerance(*i),
10746            GeometricToleranceRef::ConcentricityTolerance(i) => {
10747                EntityKey::ConcentricityTolerance(*i)
10748            }
10749            GeometricToleranceRef::CylindricityTolerance(i) => EntityKey::CylindricityTolerance(*i),
10750            GeometricToleranceRef::FlatnessTolerance(i) => EntityKey::FlatnessTolerance(*i),
10751            GeometricToleranceRef::GeometricTolerance(i) => EntityKey::GeometricTolerance(*i),
10752            GeometricToleranceRef::GeometricToleranceWithDatumReference(i) => {
10753                EntityKey::GeometricToleranceWithDatumReference(*i)
10754            }
10755            GeometricToleranceRef::GeometricToleranceWithDefinedAreaUnit(i) => {
10756                EntityKey::GeometricToleranceWithDefinedAreaUnit(*i)
10757            }
10758            GeometricToleranceRef::GeometricToleranceWithDefinedUnit(i) => {
10759                EntityKey::GeometricToleranceWithDefinedUnit(*i)
10760            }
10761            GeometricToleranceRef::GeometricToleranceWithMaximumTolerance(i) => {
10762                EntityKey::GeometricToleranceWithMaximumTolerance(*i)
10763            }
10764            GeometricToleranceRef::GeometricToleranceWithModifiers(i) => {
10765                EntityKey::GeometricToleranceWithModifiers(*i)
10766            }
10767            GeometricToleranceRef::LineProfileTolerance(i) => EntityKey::LineProfileTolerance(*i),
10768            GeometricToleranceRef::ModifiedGeometricTolerance(i) => {
10769                EntityKey::ModifiedGeometricTolerance(*i)
10770            }
10771            GeometricToleranceRef::ParallelismTolerance(i) => EntityKey::ParallelismTolerance(*i),
10772            GeometricToleranceRef::PerpendicularityTolerance(i) => {
10773                EntityKey::PerpendicularityTolerance(*i)
10774            }
10775            GeometricToleranceRef::PositionTolerance(i) => EntityKey::PositionTolerance(*i),
10776            GeometricToleranceRef::RoundnessTolerance(i) => EntityKey::RoundnessTolerance(*i),
10777            GeometricToleranceRef::StraightnessTolerance(i) => EntityKey::StraightnessTolerance(*i),
10778            GeometricToleranceRef::SurfaceProfileTolerance(i) => {
10779                EntityKey::SurfaceProfileTolerance(*i)
10780            }
10781            GeometricToleranceRef::SymmetryTolerance(i) => EntityKey::SymmetryTolerance(*i),
10782            GeometricToleranceRef::TotalRunoutTolerance(i) => EntityKey::TotalRunoutTolerance(*i),
10783            GeometricToleranceRef::UnequallyDisposedGeometricTolerance(i) => {
10784                EntityKey::UnequallyDisposedGeometricTolerance(*i)
10785            }
10786            GeometricToleranceRef::Complex(i) => EntityKey::ComplexUnit(*i),
10787        }
10788    }
10789}
10790
10791#[derive(Clone, Copy, Debug)]
10792pub enum GeometricToleranceTargetRefView<'m> {
10793    AllAroundShapeAspect(&'m AllAroundShapeAspect),
10794    AngularLocation(&'m AngularLocation),
10795    AngularSize(&'m AngularSize),
10796    CentreOfSymmetry(&'m CentreOfSymmetry),
10797    CommonDatum(&'m CommonDatum),
10798    CompositeGroupShapeAspect(&'m CompositeGroupShapeAspect),
10799    CompositeShapeAspect(&'m CompositeShapeAspect),
10800    ContinuousShapeAspect(&'m ContinuousShapeAspect),
10801    Datum(&'m Datum),
10802    DatumFeature(&'m DatumFeature),
10803    DatumReferenceCompartment(&'m DatumReferenceCompartment),
10804    DatumReferenceElement(&'m DatumReferenceElement),
10805    DatumSystem(&'m DatumSystem),
10806    DatumTarget(&'m DatumTarget),
10807    DefaultModelGeometricView(&'m DefaultModelGeometricView),
10808    DerivedShapeAspect(&'m DerivedShapeAspect),
10809    DimensionalLocation(&'m DimensionalLocation),
10810    DimensionalLocationWithPath(&'m DimensionalLocationWithPath),
10811    DimensionalSize(&'m DimensionalSize),
10812    DimensionalSizeWithDatumFeature(&'m DimensionalSizeWithDatumFeature),
10813    DimensionalSizeWithPath(&'m DimensionalSizeWithPath),
10814    DirectedDimensionalLocation(&'m DirectedDimensionalLocation),
10815    GeneralDatumReference(&'m GeneralDatumReference),
10816    PlacedDatumTargetFeature(&'m PlacedDatumTargetFeature),
10817    ProductDefinitionShape(&'m ProductDefinitionShape),
10818    ShapeAspect(&'m ShapeAspect),
10819    ToleranceZone(&'m ToleranceZone),
10820    ToleranceZoneWithDatum(&'m ToleranceZoneWithDatum),
10821    Complex(&'m ComplexUnit),
10822}
10823impl GeometricToleranceTargetRef {
10824    pub fn resolve<'m>(&self, model: &'m StepModel) -> GeometricToleranceTargetRefView<'m> {
10825        match self {
10826            GeometricToleranceTargetRef::AllAroundShapeAspect(i) => {
10827                GeometricToleranceTargetRefView::AllAroundShapeAspect(
10828                    model.all_around_shape_aspect_arena.get(i.0),
10829                )
10830            }
10831            GeometricToleranceTargetRef::AngularLocation(i) => {
10832                GeometricToleranceTargetRefView::AngularLocation(
10833                    model.angular_location_arena.get(i.0),
10834                )
10835            }
10836            GeometricToleranceTargetRef::AngularSize(i) => {
10837                GeometricToleranceTargetRefView::AngularSize(model.angular_size_arena.get(i.0))
10838            }
10839            GeometricToleranceTargetRef::CentreOfSymmetry(i) => {
10840                GeometricToleranceTargetRefView::CentreOfSymmetry(
10841                    model.centre_of_symmetry_arena.get(i.0),
10842                )
10843            }
10844            GeometricToleranceTargetRef::CommonDatum(i) => {
10845                GeometricToleranceTargetRefView::CommonDatum(model.common_datum_arena.get(i.0))
10846            }
10847            GeometricToleranceTargetRef::CompositeGroupShapeAspect(i) => {
10848                GeometricToleranceTargetRefView::CompositeGroupShapeAspect(
10849                    model.composite_group_shape_aspect_arena.get(i.0),
10850                )
10851            }
10852            GeometricToleranceTargetRef::CompositeShapeAspect(i) => {
10853                GeometricToleranceTargetRefView::CompositeShapeAspect(
10854                    model.composite_shape_aspect_arena.get(i.0),
10855                )
10856            }
10857            GeometricToleranceTargetRef::ContinuousShapeAspect(i) => {
10858                GeometricToleranceTargetRefView::ContinuousShapeAspect(
10859                    model.continuous_shape_aspect_arena.get(i.0),
10860                )
10861            }
10862            GeometricToleranceTargetRef::Datum(i) => {
10863                GeometricToleranceTargetRefView::Datum(model.datum_arena.get(i.0))
10864            }
10865            GeometricToleranceTargetRef::DatumFeature(i) => {
10866                GeometricToleranceTargetRefView::DatumFeature(model.datum_feature_arena.get(i.0))
10867            }
10868            GeometricToleranceTargetRef::DatumReferenceCompartment(i) => {
10869                GeometricToleranceTargetRefView::DatumReferenceCompartment(
10870                    model.datum_reference_compartment_arena.get(i.0),
10871                )
10872            }
10873            GeometricToleranceTargetRef::DatumReferenceElement(i) => {
10874                GeometricToleranceTargetRefView::DatumReferenceElement(
10875                    model.datum_reference_element_arena.get(i.0),
10876                )
10877            }
10878            GeometricToleranceTargetRef::DatumSystem(i) => {
10879                GeometricToleranceTargetRefView::DatumSystem(model.datum_system_arena.get(i.0))
10880            }
10881            GeometricToleranceTargetRef::DatumTarget(i) => {
10882                GeometricToleranceTargetRefView::DatumTarget(model.datum_target_arena.get(i.0))
10883            }
10884            GeometricToleranceTargetRef::DefaultModelGeometricView(i) => {
10885                GeometricToleranceTargetRefView::DefaultModelGeometricView(
10886                    model.default_model_geometric_view_arena.get(i.0),
10887                )
10888            }
10889            GeometricToleranceTargetRef::DerivedShapeAspect(i) => {
10890                GeometricToleranceTargetRefView::DerivedShapeAspect(
10891                    model.derived_shape_aspect_arena.get(i.0),
10892                )
10893            }
10894            GeometricToleranceTargetRef::DimensionalLocation(i) => {
10895                GeometricToleranceTargetRefView::DimensionalLocation(
10896                    model.dimensional_location_arena.get(i.0),
10897                )
10898            }
10899            GeometricToleranceTargetRef::DimensionalLocationWithPath(i) => {
10900                GeometricToleranceTargetRefView::DimensionalLocationWithPath(
10901                    model.dimensional_location_with_path_arena.get(i.0),
10902                )
10903            }
10904            GeometricToleranceTargetRef::DimensionalSize(i) => {
10905                GeometricToleranceTargetRefView::DimensionalSize(
10906                    model.dimensional_size_arena.get(i.0),
10907                )
10908            }
10909            GeometricToleranceTargetRef::DimensionalSizeWithDatumFeature(i) => {
10910                GeometricToleranceTargetRefView::DimensionalSizeWithDatumFeature(
10911                    model.dimensional_size_with_datum_feature_arena.get(i.0),
10912                )
10913            }
10914            GeometricToleranceTargetRef::DimensionalSizeWithPath(i) => {
10915                GeometricToleranceTargetRefView::DimensionalSizeWithPath(
10916                    model.dimensional_size_with_path_arena.get(i.0),
10917                )
10918            }
10919            GeometricToleranceTargetRef::DirectedDimensionalLocation(i) => {
10920                GeometricToleranceTargetRefView::DirectedDimensionalLocation(
10921                    model.directed_dimensional_location_arena.get(i.0),
10922                )
10923            }
10924            GeometricToleranceTargetRef::GeneralDatumReference(i) => {
10925                GeometricToleranceTargetRefView::GeneralDatumReference(
10926                    model.general_datum_reference_arena.get(i.0),
10927                )
10928            }
10929            GeometricToleranceTargetRef::PlacedDatumTargetFeature(i) => {
10930                GeometricToleranceTargetRefView::PlacedDatumTargetFeature(
10931                    model.placed_datum_target_feature_arena.get(i.0),
10932                )
10933            }
10934            GeometricToleranceTargetRef::ProductDefinitionShape(i) => {
10935                GeometricToleranceTargetRefView::ProductDefinitionShape(
10936                    model.product_definition_shape_arena.get(i.0),
10937                )
10938            }
10939            GeometricToleranceTargetRef::ShapeAspect(i) => {
10940                GeometricToleranceTargetRefView::ShapeAspect(model.shape_aspect_arena.get(i.0))
10941            }
10942            GeometricToleranceTargetRef::ToleranceZone(i) => {
10943                GeometricToleranceTargetRefView::ToleranceZone(model.tolerance_zone_arena.get(i.0))
10944            }
10945            GeometricToleranceTargetRef::ToleranceZoneWithDatum(i) => {
10946                GeometricToleranceTargetRefView::ToleranceZoneWithDatum(
10947                    model.tolerance_zone_with_datum_arena.get(i.0),
10948                )
10949            }
10950            GeometricToleranceTargetRef::Complex(i) => {
10951                GeometricToleranceTargetRefView::Complex(model.complex_unit_arena.get(i.0))
10952            }
10953        }
10954    }
10955    pub fn entity_key(&self) -> EntityKey {
10956        match self {
10957            GeometricToleranceTargetRef::AllAroundShapeAspect(i) => {
10958                EntityKey::AllAroundShapeAspect(*i)
10959            }
10960            GeometricToleranceTargetRef::AngularLocation(i) => EntityKey::AngularLocation(*i),
10961            GeometricToleranceTargetRef::AngularSize(i) => EntityKey::AngularSize(*i),
10962            GeometricToleranceTargetRef::CentreOfSymmetry(i) => EntityKey::CentreOfSymmetry(*i),
10963            GeometricToleranceTargetRef::CommonDatum(i) => EntityKey::CommonDatum(*i),
10964            GeometricToleranceTargetRef::CompositeGroupShapeAspect(i) => {
10965                EntityKey::CompositeGroupShapeAspect(*i)
10966            }
10967            GeometricToleranceTargetRef::CompositeShapeAspect(i) => {
10968                EntityKey::CompositeShapeAspect(*i)
10969            }
10970            GeometricToleranceTargetRef::ContinuousShapeAspect(i) => {
10971                EntityKey::ContinuousShapeAspect(*i)
10972            }
10973            GeometricToleranceTargetRef::Datum(i) => EntityKey::Datum(*i),
10974            GeometricToleranceTargetRef::DatumFeature(i) => EntityKey::DatumFeature(*i),
10975            GeometricToleranceTargetRef::DatumReferenceCompartment(i) => {
10976                EntityKey::DatumReferenceCompartment(*i)
10977            }
10978            GeometricToleranceTargetRef::DatumReferenceElement(i) => {
10979                EntityKey::DatumReferenceElement(*i)
10980            }
10981            GeometricToleranceTargetRef::DatumSystem(i) => EntityKey::DatumSystem(*i),
10982            GeometricToleranceTargetRef::DatumTarget(i) => EntityKey::DatumTarget(*i),
10983            GeometricToleranceTargetRef::DefaultModelGeometricView(i) => {
10984                EntityKey::DefaultModelGeometricView(*i)
10985            }
10986            GeometricToleranceTargetRef::DerivedShapeAspect(i) => EntityKey::DerivedShapeAspect(*i),
10987            GeometricToleranceTargetRef::DimensionalLocation(i) => {
10988                EntityKey::DimensionalLocation(*i)
10989            }
10990            GeometricToleranceTargetRef::DimensionalLocationWithPath(i) => {
10991                EntityKey::DimensionalLocationWithPath(*i)
10992            }
10993            GeometricToleranceTargetRef::DimensionalSize(i) => EntityKey::DimensionalSize(*i),
10994            GeometricToleranceTargetRef::DimensionalSizeWithDatumFeature(i) => {
10995                EntityKey::DimensionalSizeWithDatumFeature(*i)
10996            }
10997            GeometricToleranceTargetRef::DimensionalSizeWithPath(i) => {
10998                EntityKey::DimensionalSizeWithPath(*i)
10999            }
11000            GeometricToleranceTargetRef::DirectedDimensionalLocation(i) => {
11001                EntityKey::DirectedDimensionalLocation(*i)
11002            }
11003            GeometricToleranceTargetRef::GeneralDatumReference(i) => {
11004                EntityKey::GeneralDatumReference(*i)
11005            }
11006            GeometricToleranceTargetRef::PlacedDatumTargetFeature(i) => {
11007                EntityKey::PlacedDatumTargetFeature(*i)
11008            }
11009            GeometricToleranceTargetRef::ProductDefinitionShape(i) => {
11010                EntityKey::ProductDefinitionShape(*i)
11011            }
11012            GeometricToleranceTargetRef::ShapeAspect(i) => EntityKey::ShapeAspect(*i),
11013            GeometricToleranceTargetRef::ToleranceZone(i) => EntityKey::ToleranceZone(*i),
11014            GeometricToleranceTargetRef::ToleranceZoneWithDatum(i) => {
11015                EntityKey::ToleranceZoneWithDatum(*i)
11016            }
11017            GeometricToleranceTargetRef::Complex(i) => EntityKey::ComplexUnit(*i),
11018        }
11019    }
11020}
11021
11022#[derive(Clone, Copy, Debug)]
11023pub enum GroupRefView<'m> {
11024    Group(&'m Group),
11025    ProductConceptFeatureCategory(&'m ProductConceptFeatureCategory),
11026    Complex(&'m ComplexUnit),
11027}
11028impl GroupRef {
11029    pub fn resolve<'m>(&self, model: &'m StepModel) -> GroupRefView<'m> {
11030        match self {
11031            GroupRef::Group(i) => GroupRefView::Group(model.group_arena.get(i.0)),
11032            GroupRef::ProductConceptFeatureCategory(i) => {
11033                GroupRefView::ProductConceptFeatureCategory(
11034                    model.product_concept_feature_category_arena.get(i.0),
11035                )
11036            }
11037            GroupRef::Complex(i) => GroupRefView::Complex(model.complex_unit_arena.get(i.0)),
11038        }
11039    }
11040    pub fn entity_key(&self) -> EntityKey {
11041        match self {
11042            GroupRef::Group(i) => EntityKey::Group(*i),
11043            GroupRef::ProductConceptFeatureCategory(i) => {
11044                EntityKey::ProductConceptFeatureCategory(*i)
11045            }
11046            GroupRef::Complex(i) => EntityKey::ComplexUnit(*i),
11047        }
11048    }
11049}
11050
11051#[derive(Clone, Copy, Debug)]
11052pub enum GroupableItemRefView<'m> {
11053    ActionMethod(&'m ActionMethod),
11054    Address(&'m Address),
11055    AdvancedBrepShapeRepresentation(&'m AdvancedBrepShapeRepresentation),
11056    AdvancedFace(&'m AdvancedFace),
11057    AllAroundShapeAspect(&'m AllAroundShapeAspect),
11058    AngularLocation(&'m AngularLocation),
11059    AnnotationCurveOccurrence(&'m AnnotationCurveOccurrence),
11060    AnnotationFillAreaOccurrence(&'m AnnotationFillAreaOccurrence),
11061    AnnotationOccurrence(&'m AnnotationOccurrence),
11062    AnnotationPlaceholderLeaderLine(&'m AnnotationPlaceholderLeaderLine),
11063    AnnotationPlaceholderOccurrence(&'m AnnotationPlaceholderOccurrence),
11064    AnnotationPlaceholderOccurrenceWithLeaderLine(
11065        &'m AnnotationPlaceholderOccurrenceWithLeaderLine,
11066    ),
11067    AnnotationPlane(&'m AnnotationPlane),
11068    AnnotationSymbol(&'m AnnotationSymbol),
11069    AnnotationSymbolOccurrence(&'m AnnotationSymbolOccurrence),
11070    AnnotationText(&'m AnnotationText),
11071    AnnotationTextCharacter(&'m AnnotationTextCharacter),
11072    AnnotationTextOccurrence(&'m AnnotationTextOccurrence),
11073    AnnotationToAnnotationLeaderLine(&'m AnnotationToAnnotationLeaderLine),
11074    AnnotationToModelLeaderLine(&'m AnnotationToModelLeaderLine),
11075    ApllPoint(&'m ApllPoint),
11076    ApllPointWithSurface(&'m ApllPointWithSurface),
11077    AppliedDateAndTimeAssignment(&'m AppliedDateAndTimeAssignment),
11078    AppliedGroupAssignment(&'m AppliedGroupAssignment),
11079    Approval(&'m Approval),
11080    ApprovalPersonOrganization(&'m ApprovalPersonOrganization),
11081    ApprovalStatus(&'m ApprovalStatus),
11082    AreaUnit(&'m AreaUnit),
11083    AscribableState(&'m AscribableState),
11084    AscribableStateRelationship(&'m AscribableStateRelationship),
11085    AssemblyComponentUsage(&'m AssemblyComponentUsage),
11086    AuxiliaryLeaderLine(&'m AuxiliaryLeaderLine),
11087    Axis1Placement(&'m Axis1Placement),
11088    Axis2Placement2d(&'m Axis2Placement2d),
11089    Axis2Placement3d(&'m Axis2Placement3d),
11090    BSplineCurve(&'m BSplineCurve),
11091    BSplineCurveWithKnots(&'m BSplineCurveWithKnots),
11092    BSplineSurface(&'m BSplineSurface),
11093    BSplineSurfaceWithKnots(&'m BSplineSurfaceWithKnots),
11094    BezierCurve(&'m BezierCurve),
11095    BezierSurface(&'m BezierSurface),
11096    BoundedCurve(&'m BoundedCurve),
11097    BoundedPcurve(&'m BoundedPcurve),
11098    BoundedSurface(&'m BoundedSurface),
11099    BoundedSurfaceCurve(&'m BoundedSurfaceCurve),
11100    BrepWithVoids(&'m BrepWithVoids),
11101    CalendarDate(&'m CalendarDate),
11102    CameraImage(&'m CameraImage),
11103    CameraImage3dWithScale(&'m CameraImage3dWithScale),
11104    CameraModel(&'m CameraModel),
11105    CameraModelD3(&'m CameraModelD3),
11106    CameraModelD3MultiClipping(&'m CameraModelD3MultiClipping),
11107    CameraModelD3WithHlhsr(&'m CameraModelD3WithHlhsr),
11108    CartesianPoint(&'m CartesianPoint),
11109    CcDesignDateAndTimeAssignment(&'m CcDesignDateAndTimeAssignment),
11110    CentreOfSymmetry(&'m CentreOfSymmetry),
11111    Certification(&'m Certification),
11112    CharacterizedRepresentation(&'m CharacterizedRepresentation),
11113    Circle(&'m Circle),
11114    ClosedShell(&'m ClosedShell),
11115    CommonDatum(&'m CommonDatum),
11116    ComplexTriangulatedFace(&'m ComplexTriangulatedFace),
11117    ComplexTriangulatedSurfaceSet(&'m ComplexTriangulatedSurfaceSet),
11118    CompositeCurve(&'m CompositeCurve),
11119    CompositeGroupShapeAspect(&'m CompositeGroupShapeAspect),
11120    CompositeShapeAspect(&'m CompositeShapeAspect),
11121    CompositeText(&'m CompositeText),
11122    CompoundRepresentationItem(&'m CompoundRepresentationItem),
11123    ConfigurationDesign(&'m ConfigurationDesign),
11124    ConfigurationEffectivity(&'m ConfigurationEffectivity),
11125    ConfigurationItem(&'m ConfigurationItem),
11126    Conic(&'m Conic),
11127    ConicalSurface(&'m ConicalSurface),
11128    ConnectedFaceSet(&'m ConnectedFaceSet),
11129    ConstructiveGeometryRepresentation(&'m ConstructiveGeometryRepresentation),
11130    ConstructiveGeometryRepresentationRelationship(
11131        &'m ConstructiveGeometryRepresentationRelationship,
11132    ),
11133    ContextDependentOverRidingStyledItem(&'m ContextDependentOverRidingStyledItem),
11134    ContextDependentShapeRepresentation(&'m ContextDependentShapeRepresentation),
11135    ContextDependentUnit(&'m ContextDependentUnit),
11136    ContinuousShapeAspect(&'m ContinuousShapeAspect),
11137    Contract(&'m Contract),
11138    ConversionBasedUnit(&'m ConversionBasedUnit),
11139    CoordinatedUniversalTimeOffset(&'m CoordinatedUniversalTimeOffset),
11140    CoordinatesList(&'m CoordinatesList),
11141    Curve(&'m Curve),
11142    CylindricalSurface(&'m CylindricalSurface),
11143    DateAndTime(&'m DateAndTime),
11144    DateAndTimeAssignment(&'m DateAndTimeAssignment),
11145    Datum(&'m Datum),
11146    DatumFeature(&'m DatumFeature),
11147    DatumReferenceCompartment(&'m DatumReferenceCompartment),
11148    DatumReferenceElement(&'m DatumReferenceElement),
11149    DatumSystem(&'m DatumSystem),
11150    DatumTarget(&'m DatumTarget),
11151    DefaultModelGeometricView(&'m DefaultModelGeometricView),
11152    DefinedCharacterGlyph(&'m DefinedCharacterGlyph),
11153    DefinedSymbol(&'m DefinedSymbol),
11154    DefinitionalRepresentation(&'m DefinitionalRepresentation),
11155    DefinitionalRepresentationRelationship(&'m DefinitionalRepresentationRelationship),
11156    DefinitionalRepresentationRelationshipWithSameContext(
11157        &'m DefinitionalRepresentationRelationshipWithSameContext,
11158    ),
11159    DegenerateToroidalSurface(&'m DegenerateToroidalSurface),
11160    DerivedShapeAspect(&'m DerivedShapeAspect),
11161    DerivedUnit(&'m DerivedUnit),
11162    DerivedUnitElement(&'m DerivedUnitElement),
11163    DescriptiveRepresentationItem(&'m DescriptiveRepresentationItem),
11164    DesignContext(&'m DesignContext),
11165    DimensionalLocation(&'m DimensionalLocation),
11166    DimensionalLocationWithPath(&'m DimensionalLocationWithPath),
11167    DimensionalSizeWithDatumFeature(&'m DimensionalSizeWithDatumFeature),
11168    DirectedDimensionalLocation(&'m DirectedDimensionalLocation),
11169    Direction(&'m Direction),
11170    DocumentFile(&'m DocumentFile),
11171    DraughtingAnnotationOccurrence(&'m DraughtingAnnotationOccurrence),
11172    DraughtingCallout(&'m DraughtingCallout),
11173    DraughtingModel(&'m DraughtingModel),
11174    Edge(&'m Edge),
11175    EdgeCurve(&'m EdgeCurve),
11176    EdgeLoop(&'m EdgeLoop),
11177    Effectivity(&'m Effectivity),
11178    ElementarySurface(&'m ElementarySurface),
11179    Ellipse(&'m Ellipse),
11180    ExternalSource(&'m ExternalSource),
11181    ExternallyDefinedHatchStyle(&'m ExternallyDefinedHatchStyle),
11182    ExternallyDefinedTileStyle(&'m ExternallyDefinedTileStyle),
11183    Face(&'m Face),
11184    FaceBound(&'m FaceBound),
11185    FaceOuterBound(&'m FaceOuterBound),
11186    FaceSurface(&'m FaceSurface),
11187    FeatureForDatumTargetRelationship(&'m FeatureForDatumTargetRelationship),
11188    FillAreaStyleHatching(&'m FillAreaStyleHatching),
11189    FillAreaStyleTileColouredRegion(&'m FillAreaStyleTileColouredRegion),
11190    FillAreaStyleTileCurveWithStyle(&'m FillAreaStyleTileCurveWithStyle),
11191    FillAreaStyleTileSymbolWithStyle(&'m FillAreaStyleTileSymbolWithStyle),
11192    FillAreaStyleTiles(&'m FillAreaStyleTiles),
11193    GeneralDatumReference(&'m GeneralDatumReference),
11194    GeneralProperty(&'m GeneralProperty),
11195    GeometricCurveSet(&'m GeometricCurveSet),
11196    GeometricItemSpecificUsage(&'m GeometricItemSpecificUsage),
11197    GeometricRepresentationContext(&'m GeometricRepresentationContext),
11198    GeometricRepresentationItem(&'m GeometricRepresentationItem),
11199    GeometricSet(&'m GeometricSet),
11200    GeometricallyBoundedSurfaceShapeRepresentation(
11201        &'m GeometricallyBoundedSurfaceShapeRepresentation,
11202    ),
11203    GeometricallyBoundedWireframeShapeRepresentation(
11204        &'m GeometricallyBoundedWireframeShapeRepresentation,
11205    ),
11206    GlobalUncertaintyAssignedContext(&'m GlobalUncertaintyAssignedContext),
11207    GlobalUnitAssignedContext(&'m GlobalUnitAssignedContext),
11208    Hyperbola(&'m Hyperbola),
11209    IntegerRepresentationItem(&'m IntegerRepresentationItem),
11210    IntersectionCurve(&'m IntersectionCurve),
11211    ItemDefinedTransformation(&'m ItemDefinedTransformation),
11212    LeaderCurve(&'m LeaderCurve),
11213    LeaderDirectedCallout(&'m LeaderDirectedCallout),
11214    LeaderTerminator(&'m LeaderTerminator),
11215    LengthMeasureWithUnit(&'m LengthMeasureWithUnit),
11216    LengthUnit(&'m LengthUnit),
11217    Line(&'m Line),
11218    LocalTime(&'m LocalTime),
11219    Loop(&'m Loop),
11220    MakeFromUsageOption(&'m MakeFromUsageOption),
11221    ManifoldSolidBrep(&'m ManifoldSolidBrep),
11222    ManifoldSurfaceShapeRepresentation(&'m ManifoldSurfaceShapeRepresentation),
11223    MappedItem(&'m MappedItem),
11224    MassMeasureWithUnit(&'m MassMeasureWithUnit),
11225    MassUnit(&'m MassUnit),
11226    MeasureRepresentationItem(&'m MeasureRepresentationItem),
11227    MeasureWithUnit(&'m MeasureWithUnit),
11228    MechanicalDesignAndDraughtingRelationship(&'m MechanicalDesignAndDraughtingRelationship),
11229    MechanicalDesignGeometricPresentationRepresentation(
11230        &'m MechanicalDesignGeometricPresentationRepresentation,
11231    ),
11232    MechanicalDesignPresentationRepresentationWithDraughting(
11233        &'m MechanicalDesignPresentationRepresentationWithDraughting,
11234    ),
11235    MechanicalDesignShadedPresentationRepresentation(
11236        &'m MechanicalDesignShadedPresentationRepresentation,
11237    ),
11238    NamedUnit(&'m NamedUnit),
11239    NextAssemblyUsageOccurrence(&'m NextAssemblyUsageOccurrence),
11240    OffsetSurface(&'m OffsetSurface),
11241    OneDirectionRepeatFactor(&'m OneDirectionRepeatFactor),
11242    OpenShell(&'m OpenShell),
11243    Organization(&'m Organization),
11244    OrganizationRelationship(&'m OrganizationRelationship),
11245    OrganizationType(&'m OrganizationType),
11246    OrganizationalAddress(&'m OrganizationalAddress),
11247    OrganizationalProject(&'m OrganizationalProject),
11248    OrganizationalProjectRelationship(&'m OrganizationalProjectRelationship),
11249    OrientedClosedShell(&'m OrientedClosedShell),
11250    OrientedEdge(&'m OrientedEdge),
11251    OverRidingStyledItem(&'m OverRidingStyledItem),
11252    ParametricRepresentationContext(&'m ParametricRepresentationContext),
11253    Path(&'m Path),
11254    Pcurve(&'m Pcurve),
11255    Person(&'m Person),
11256    PersonAndOrganization(&'m PersonAndOrganization),
11257    PersonAndOrganizationAddress(&'m PersonAndOrganizationAddress),
11258    PersonalAddress(&'m PersonalAddress),
11259    PlacedDatumTargetFeature(&'m PlacedDatumTargetFeature),
11260    Placement(&'m Placement),
11261    PlanarBox(&'m PlanarBox),
11262    PlanarExtent(&'m PlanarExtent),
11263    Plane(&'m Plane),
11264    PlaneAngleMeasureWithUnit(&'m PlaneAngleMeasureWithUnit),
11265    PlaneAngleUnit(&'m PlaneAngleUnit),
11266    Point(&'m Point),
11267    PolyLoop(&'m PolyLoop),
11268    Polyline(&'m Polyline),
11269    PrecisionQualifier(&'m PrecisionQualifier),
11270    PresentationArea(&'m PresentationArea),
11271    PresentationRepresentation(&'m PresentationRepresentation),
11272    PresentationView(&'m PresentationView),
11273    Product(&'m Product),
11274    ProductConcept(&'m ProductConcept),
11275    ProductConceptContext(&'m ProductConceptContext),
11276    ProductDefinition(&'m ProductDefinition),
11277    ProductDefinitionContext(&'m ProductDefinitionContext),
11278    ProductDefinitionEffectivity(&'m ProductDefinitionEffectivity),
11279    ProductDefinitionFormation(&'m ProductDefinitionFormation),
11280    ProductDefinitionFormationWithSpecifiedSource(
11281        &'m ProductDefinitionFormationWithSpecifiedSource,
11282    ),
11283    ProductDefinitionRelationship(&'m ProductDefinitionRelationship),
11284    ProductDefinitionShape(&'m ProductDefinitionShape),
11285    ProductDefinitionUsage(&'m ProductDefinitionUsage),
11286    ProductDefinitionWithAssociatedDocuments(&'m ProductDefinitionWithAssociatedDocuments),
11287    PropertyDefinition(&'m PropertyDefinition),
11288    PropertyDefinitionRepresentation(&'m PropertyDefinitionRepresentation),
11289    QualifiedRepresentationItem(&'m QualifiedRepresentationItem),
11290    QuasiUniformCurve(&'m QuasiUniformCurve),
11291    QuasiUniformSurface(&'m QuasiUniformSurface),
11292    RatioMeasureWithUnit(&'m RatioMeasureWithUnit),
11293    RatioUnit(&'m RatioUnit),
11294    RationalBSplineCurve(&'m RationalBSplineCurve),
11295    RationalBSplineSurface(&'m RationalBSplineSurface),
11296    RealRepresentationItem(&'m RealRepresentationItem),
11297    RepositionedTessellatedItem(&'m RepositionedTessellatedItem),
11298    Representation(&'m Representation),
11299    RepresentationContext(&'m RepresentationContext),
11300    RepresentationItem(&'m RepresentationItem),
11301    RepresentationRelationship(&'m RepresentationRelationship),
11302    RepresentationRelationshipWithTransformation(&'m RepresentationRelationshipWithTransformation),
11303    SeamCurve(&'m SeamCurve),
11304    SecurityClassification(&'m SecurityClassification),
11305    ShapeAspect(&'m ShapeAspect),
11306    ShapeAspectAssociativity(&'m ShapeAspectAssociativity),
11307    ShapeAspectDerivingRelationship(&'m ShapeAspectDerivingRelationship),
11308    ShapeAspectRelationship(&'m ShapeAspectRelationship),
11309    ShapeDefinitionRepresentation(&'m ShapeDefinitionRepresentation),
11310    ShapeDimensionRepresentation(&'m ShapeDimensionRepresentation),
11311    ShapeRepresentation(&'m ShapeRepresentation),
11312    ShapeRepresentationRelationship(&'m ShapeRepresentationRelationship),
11313    ShapeRepresentationWithParameters(&'m ShapeRepresentationWithParameters),
11314    ShellBasedSurfaceModel(&'m ShellBasedSurfaceModel),
11315    SiUnit(&'m SiUnit),
11316    SolidAngleUnit(&'m SolidAngleUnit),
11317    SolidModel(&'m SolidModel),
11318    SphericalSurface(&'m SphericalSurface),
11319    StateObserved(&'m StateObserved),
11320    StateType(&'m StateType),
11321    StyledItem(&'m StyledItem),
11322    Surface(&'m Surface),
11323    SurfaceCurve(&'m SurfaceCurve),
11324    SurfaceOfLinearExtrusion(&'m SurfaceOfLinearExtrusion),
11325    SurfaceOfRevolution(&'m SurfaceOfRevolution),
11326    SweptSurface(&'m SweptSurface),
11327    SymbolRepresentation(&'m SymbolRepresentation),
11328    SymbolTarget(&'m SymbolTarget),
11329    TerminatorSymbol(&'m TerminatorSymbol),
11330    TessellatedAnnotationOccurrence(&'m TessellatedAnnotationOccurrence),
11331    TessellatedCurveSet(&'m TessellatedCurveSet),
11332    TessellatedFace(&'m TessellatedFace),
11333    TessellatedGeometricSet(&'m TessellatedGeometricSet),
11334    TessellatedItem(&'m TessellatedItem),
11335    TessellatedShapeRepresentation(&'m TessellatedShapeRepresentation),
11336    TessellatedShell(&'m TessellatedShell),
11337    TessellatedSolid(&'m TessellatedSolid),
11338    TessellatedStructuredItem(&'m TessellatedStructuredItem),
11339    TessellatedSurfaceSet(&'m TessellatedSurfaceSet),
11340    TextLiteral(&'m TextLiteral),
11341    TimeUnit(&'m TimeUnit),
11342    ToleranceZone(&'m ToleranceZone),
11343    ToleranceZoneWithDatum(&'m ToleranceZoneWithDatum),
11344    TopologicalRepresentationItem(&'m TopologicalRepresentationItem),
11345    ToroidalSurface(&'m ToroidalSurface),
11346    TrimmedCurve(&'m TrimmedCurve),
11347    TwoDirectionRepeatFactor(&'m TwoDirectionRepeatFactor),
11348    TypeQualifier(&'m TypeQualifier),
11349    UncertaintyMeasureWithUnit(&'m UncertaintyMeasureWithUnit),
11350    UncertaintyQualifier(&'m UncertaintyQualifier),
11351    UniformCurve(&'m UniformCurve),
11352    UniformSurface(&'m UniformSurface),
11353    ValueRepresentationItem(&'m ValueRepresentationItem),
11354    Vector(&'m Vector),
11355    VersionedActionRequest(&'m VersionedActionRequest),
11356    Vertex(&'m Vertex),
11357    VertexLoop(&'m VertexLoop),
11358    VertexPoint(&'m VertexPoint),
11359    VertexShell(&'m VertexShell),
11360    VolumeUnit(&'m VolumeUnit),
11361    WireShell(&'m WireShell),
11362    Complex(&'m ComplexUnit),
11363}
11364impl GroupableItemRef {
11365    pub fn resolve<'m>(&self, model: &'m StepModel) -> GroupableItemRefView<'m> {
11366        match self {
11367            GroupableItemRef::ActionMethod(i) => {
11368                GroupableItemRefView::ActionMethod(model.action_method_arena.get(i.0))
11369            }
11370            GroupableItemRef::Address(i) => {
11371                GroupableItemRefView::Address(model.address_arena.get(i.0))
11372            }
11373            GroupableItemRef::AdvancedBrepShapeRepresentation(i) => {
11374                GroupableItemRefView::AdvancedBrepShapeRepresentation(
11375                    model.advanced_brep_shape_representation_arena.get(i.0),
11376                )
11377            }
11378            GroupableItemRef::AdvancedFace(i) => {
11379                GroupableItemRefView::AdvancedFace(model.advanced_face_arena.get(i.0))
11380            }
11381            GroupableItemRef::AllAroundShapeAspect(i) => {
11382                GroupableItemRefView::AllAroundShapeAspect(
11383                    model.all_around_shape_aspect_arena.get(i.0),
11384                )
11385            }
11386            GroupableItemRef::AngularLocation(i) => {
11387                GroupableItemRefView::AngularLocation(model.angular_location_arena.get(i.0))
11388            }
11389            GroupableItemRef::AnnotationCurveOccurrence(i) => {
11390                GroupableItemRefView::AnnotationCurveOccurrence(
11391                    model.annotation_curve_occurrence_arena.get(i.0),
11392                )
11393            }
11394            GroupableItemRef::AnnotationFillAreaOccurrence(i) => {
11395                GroupableItemRefView::AnnotationFillAreaOccurrence(
11396                    model.annotation_fill_area_occurrence_arena.get(i.0),
11397                )
11398            }
11399            GroupableItemRef::AnnotationOccurrence(i) => {
11400                GroupableItemRefView::AnnotationOccurrence(
11401                    model.annotation_occurrence_arena.get(i.0),
11402                )
11403            }
11404            GroupableItemRef::AnnotationPlaceholderLeaderLine(i) => {
11405                GroupableItemRefView::AnnotationPlaceholderLeaderLine(
11406                    model.annotation_placeholder_leader_line_arena.get(i.0),
11407                )
11408            }
11409            GroupableItemRef::AnnotationPlaceholderOccurrence(i) => {
11410                GroupableItemRefView::AnnotationPlaceholderOccurrence(
11411                    model.annotation_placeholder_occurrence_arena.get(i.0),
11412                )
11413            }
11414            GroupableItemRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => {
11415                GroupableItemRefView::AnnotationPlaceholderOccurrenceWithLeaderLine(
11416                    model
11417                        .annotation_placeholder_occurrence_with_leader_line_arena
11418                        .get(i.0),
11419                )
11420            }
11421            GroupableItemRef::AnnotationPlane(i) => {
11422                GroupableItemRefView::AnnotationPlane(model.annotation_plane_arena.get(i.0))
11423            }
11424            GroupableItemRef::AnnotationSymbol(i) => {
11425                GroupableItemRefView::AnnotationSymbol(model.annotation_symbol_arena.get(i.0))
11426            }
11427            GroupableItemRef::AnnotationSymbolOccurrence(i) => {
11428                GroupableItemRefView::AnnotationSymbolOccurrence(
11429                    model.annotation_symbol_occurrence_arena.get(i.0),
11430                )
11431            }
11432            GroupableItemRef::AnnotationText(i) => {
11433                GroupableItemRefView::AnnotationText(model.annotation_text_arena.get(i.0))
11434            }
11435            GroupableItemRef::AnnotationTextCharacter(i) => {
11436                GroupableItemRefView::AnnotationTextCharacter(
11437                    model.annotation_text_character_arena.get(i.0),
11438                )
11439            }
11440            GroupableItemRef::AnnotationTextOccurrence(i) => {
11441                GroupableItemRefView::AnnotationTextOccurrence(
11442                    model.annotation_text_occurrence_arena.get(i.0),
11443                )
11444            }
11445            GroupableItemRef::AnnotationToAnnotationLeaderLine(i) => {
11446                GroupableItemRefView::AnnotationToAnnotationLeaderLine(
11447                    model.annotation_to_annotation_leader_line_arena.get(i.0),
11448                )
11449            }
11450            GroupableItemRef::AnnotationToModelLeaderLine(i) => {
11451                GroupableItemRefView::AnnotationToModelLeaderLine(
11452                    model.annotation_to_model_leader_line_arena.get(i.0),
11453                )
11454            }
11455            GroupableItemRef::ApllPoint(i) => {
11456                GroupableItemRefView::ApllPoint(model.apll_point_arena.get(i.0))
11457            }
11458            GroupableItemRef::ApllPointWithSurface(i) => {
11459                GroupableItemRefView::ApllPointWithSurface(
11460                    model.apll_point_with_surface_arena.get(i.0),
11461                )
11462            }
11463            GroupableItemRef::AppliedDateAndTimeAssignment(i) => {
11464                GroupableItemRefView::AppliedDateAndTimeAssignment(
11465                    model.applied_date_and_time_assignment_arena.get(i.0),
11466                )
11467            }
11468            GroupableItemRef::AppliedGroupAssignment(i) => {
11469                GroupableItemRefView::AppliedGroupAssignment(
11470                    model.applied_group_assignment_arena.get(i.0),
11471                )
11472            }
11473            GroupableItemRef::Approval(i) => {
11474                GroupableItemRefView::Approval(model.approval_arena.get(i.0))
11475            }
11476            GroupableItemRef::ApprovalPersonOrganization(i) => {
11477                GroupableItemRefView::ApprovalPersonOrganization(
11478                    model.approval_person_organization_arena.get(i.0),
11479                )
11480            }
11481            GroupableItemRef::ApprovalStatus(i) => {
11482                GroupableItemRefView::ApprovalStatus(model.approval_status_arena.get(i.0))
11483            }
11484            GroupableItemRef::AreaUnit(i) => {
11485                GroupableItemRefView::AreaUnit(model.area_unit_arena.get(i.0))
11486            }
11487            GroupableItemRef::AscribableState(i) => {
11488                GroupableItemRefView::AscribableState(model.ascribable_state_arena.get(i.0))
11489            }
11490            GroupableItemRef::AscribableStateRelationship(i) => {
11491                GroupableItemRefView::AscribableStateRelationship(
11492                    model.ascribable_state_relationship_arena.get(i.0),
11493                )
11494            }
11495            GroupableItemRef::AssemblyComponentUsage(i) => {
11496                GroupableItemRefView::AssemblyComponentUsage(
11497                    model.assembly_component_usage_arena.get(i.0),
11498                )
11499            }
11500            GroupableItemRef::AuxiliaryLeaderLine(i) => GroupableItemRefView::AuxiliaryLeaderLine(
11501                model.auxiliary_leader_line_arena.get(i.0),
11502            ),
11503            GroupableItemRef::Axis1Placement(i) => {
11504                GroupableItemRefView::Axis1Placement(model.axis1_placement_arena.get(i.0))
11505            }
11506            GroupableItemRef::Axis2Placement2d(i) => {
11507                GroupableItemRefView::Axis2Placement2d(model.axis2_placement2d_arena.get(i.0))
11508            }
11509            GroupableItemRef::Axis2Placement3d(i) => {
11510                GroupableItemRefView::Axis2Placement3d(model.axis2_placement3d_arena.get(i.0))
11511            }
11512            GroupableItemRef::BSplineCurve(i) => {
11513                GroupableItemRefView::BSplineCurve(model.b_spline_curve_arena.get(i.0))
11514            }
11515            GroupableItemRef::BSplineCurveWithKnots(i) => {
11516                GroupableItemRefView::BSplineCurveWithKnots(
11517                    model.b_spline_curve_with_knots_arena.get(i.0),
11518                )
11519            }
11520            GroupableItemRef::BSplineSurface(i) => {
11521                GroupableItemRefView::BSplineSurface(model.b_spline_surface_arena.get(i.0))
11522            }
11523            GroupableItemRef::BSplineSurfaceWithKnots(i) => {
11524                GroupableItemRefView::BSplineSurfaceWithKnots(
11525                    model.b_spline_surface_with_knots_arena.get(i.0),
11526                )
11527            }
11528            GroupableItemRef::BezierCurve(i) => {
11529                GroupableItemRefView::BezierCurve(model.bezier_curve_arena.get(i.0))
11530            }
11531            GroupableItemRef::BezierSurface(i) => {
11532                GroupableItemRefView::BezierSurface(model.bezier_surface_arena.get(i.0))
11533            }
11534            GroupableItemRef::BoundedCurve(i) => {
11535                GroupableItemRefView::BoundedCurve(model.bounded_curve_arena.get(i.0))
11536            }
11537            GroupableItemRef::BoundedPcurve(i) => {
11538                GroupableItemRefView::BoundedPcurve(model.bounded_pcurve_arena.get(i.0))
11539            }
11540            GroupableItemRef::BoundedSurface(i) => {
11541                GroupableItemRefView::BoundedSurface(model.bounded_surface_arena.get(i.0))
11542            }
11543            GroupableItemRef::BoundedSurfaceCurve(i) => GroupableItemRefView::BoundedSurfaceCurve(
11544                model.bounded_surface_curve_arena.get(i.0),
11545            ),
11546            GroupableItemRef::BrepWithVoids(i) => {
11547                GroupableItemRefView::BrepWithVoids(model.brep_with_voids_arena.get(i.0))
11548            }
11549            GroupableItemRef::CalendarDate(i) => {
11550                GroupableItemRefView::CalendarDate(model.calendar_date_arena.get(i.0))
11551            }
11552            GroupableItemRef::CameraImage(i) => {
11553                GroupableItemRefView::CameraImage(model.camera_image_arena.get(i.0))
11554            }
11555            GroupableItemRef::CameraImage3dWithScale(i) => {
11556                GroupableItemRefView::CameraImage3dWithScale(
11557                    model.camera_image3d_with_scale_arena.get(i.0),
11558                )
11559            }
11560            GroupableItemRef::CameraModel(i) => {
11561                GroupableItemRefView::CameraModel(model.camera_model_arena.get(i.0))
11562            }
11563            GroupableItemRef::CameraModelD3(i) => {
11564                GroupableItemRefView::CameraModelD3(model.camera_model_d3_arena.get(i.0))
11565            }
11566            GroupableItemRef::CameraModelD3MultiClipping(i) => {
11567                GroupableItemRefView::CameraModelD3MultiClipping(
11568                    model.camera_model_d3_multi_clipping_arena.get(i.0),
11569                )
11570            }
11571            GroupableItemRef::CameraModelD3WithHlhsr(i) => {
11572                GroupableItemRefView::CameraModelD3WithHlhsr(
11573                    model.camera_model_d3_with_hlhsr_arena.get(i.0),
11574                )
11575            }
11576            GroupableItemRef::CartesianPoint(i) => {
11577                GroupableItemRefView::CartesianPoint(model.cartesian_point_arena.get(i.0))
11578            }
11579            GroupableItemRef::CcDesignDateAndTimeAssignment(i) => {
11580                GroupableItemRefView::CcDesignDateAndTimeAssignment(
11581                    model.cc_design_date_and_time_assignment_arena.get(i.0),
11582                )
11583            }
11584            GroupableItemRef::CentreOfSymmetry(i) => {
11585                GroupableItemRefView::CentreOfSymmetry(model.centre_of_symmetry_arena.get(i.0))
11586            }
11587            GroupableItemRef::Certification(i) => {
11588                GroupableItemRefView::Certification(model.certification_arena.get(i.0))
11589            }
11590            GroupableItemRef::CharacterizedRepresentation(i) => {
11591                GroupableItemRefView::CharacterizedRepresentation(
11592                    model.characterized_representation_arena.get(i.0),
11593                )
11594            }
11595            GroupableItemRef::Circle(i) => {
11596                GroupableItemRefView::Circle(model.circle_arena.get(i.0))
11597            }
11598            GroupableItemRef::ClosedShell(i) => {
11599                GroupableItemRefView::ClosedShell(model.closed_shell_arena.get(i.0))
11600            }
11601            GroupableItemRef::CommonDatum(i) => {
11602                GroupableItemRefView::CommonDatum(model.common_datum_arena.get(i.0))
11603            }
11604            GroupableItemRef::ComplexTriangulatedFace(i) => {
11605                GroupableItemRefView::ComplexTriangulatedFace(
11606                    model.complex_triangulated_face_arena.get(i.0),
11607                )
11608            }
11609            GroupableItemRef::ComplexTriangulatedSurfaceSet(i) => {
11610                GroupableItemRefView::ComplexTriangulatedSurfaceSet(
11611                    model.complex_triangulated_surface_set_arena.get(i.0),
11612                )
11613            }
11614            GroupableItemRef::CompositeCurve(i) => {
11615                GroupableItemRefView::CompositeCurve(model.composite_curve_arena.get(i.0))
11616            }
11617            GroupableItemRef::CompositeGroupShapeAspect(i) => {
11618                GroupableItemRefView::CompositeGroupShapeAspect(
11619                    model.composite_group_shape_aspect_arena.get(i.0),
11620                )
11621            }
11622            GroupableItemRef::CompositeShapeAspect(i) => {
11623                GroupableItemRefView::CompositeShapeAspect(
11624                    model.composite_shape_aspect_arena.get(i.0),
11625                )
11626            }
11627            GroupableItemRef::CompositeText(i) => {
11628                GroupableItemRefView::CompositeText(model.composite_text_arena.get(i.0))
11629            }
11630            GroupableItemRef::CompoundRepresentationItem(i) => {
11631                GroupableItemRefView::CompoundRepresentationItem(
11632                    model.compound_representation_item_arena.get(i.0),
11633                )
11634            }
11635            GroupableItemRef::ConfigurationDesign(i) => {
11636                GroupableItemRefView::ConfigurationDesign(model.configuration_design_arena.get(i.0))
11637            }
11638            GroupableItemRef::ConfigurationEffectivity(i) => {
11639                GroupableItemRefView::ConfigurationEffectivity(
11640                    model.configuration_effectivity_arena.get(i.0),
11641                )
11642            }
11643            GroupableItemRef::ConfigurationItem(i) => {
11644                GroupableItemRefView::ConfigurationItem(model.configuration_item_arena.get(i.0))
11645            }
11646            GroupableItemRef::Conic(i) => GroupableItemRefView::Conic(model.conic_arena.get(i.0)),
11647            GroupableItemRef::ConicalSurface(i) => {
11648                GroupableItemRefView::ConicalSurface(model.conical_surface_arena.get(i.0))
11649            }
11650            GroupableItemRef::ConnectedFaceSet(i) => {
11651                GroupableItemRefView::ConnectedFaceSet(model.connected_face_set_arena.get(i.0))
11652            }
11653            GroupableItemRef::ConstructiveGeometryRepresentation(i) => {
11654                GroupableItemRefView::ConstructiveGeometryRepresentation(
11655                    model.constructive_geometry_representation_arena.get(i.0),
11656                )
11657            }
11658            GroupableItemRef::ConstructiveGeometryRepresentationRelationship(i) => {
11659                GroupableItemRefView::ConstructiveGeometryRepresentationRelationship(
11660                    model
11661                        .constructive_geometry_representation_relationship_arena
11662                        .get(i.0),
11663                )
11664            }
11665            GroupableItemRef::ContextDependentOverRidingStyledItem(i) => {
11666                GroupableItemRefView::ContextDependentOverRidingStyledItem(
11667                    model
11668                        .context_dependent_over_riding_styled_item_arena
11669                        .get(i.0),
11670                )
11671            }
11672            GroupableItemRef::ContextDependentShapeRepresentation(i) => {
11673                GroupableItemRefView::ContextDependentShapeRepresentation(
11674                    model.context_dependent_shape_representation_arena.get(i.0),
11675                )
11676            }
11677            GroupableItemRef::ContextDependentUnit(i) => {
11678                GroupableItemRefView::ContextDependentUnit(
11679                    model.context_dependent_unit_arena.get(i.0),
11680                )
11681            }
11682            GroupableItemRef::ContinuousShapeAspect(i) => {
11683                GroupableItemRefView::ContinuousShapeAspect(
11684                    model.continuous_shape_aspect_arena.get(i.0),
11685                )
11686            }
11687            GroupableItemRef::Contract(i) => {
11688                GroupableItemRefView::Contract(model.contract_arena.get(i.0))
11689            }
11690            GroupableItemRef::ConversionBasedUnit(i) => GroupableItemRefView::ConversionBasedUnit(
11691                model.conversion_based_unit_arena.get(i.0),
11692            ),
11693            GroupableItemRef::CoordinatedUniversalTimeOffset(i) => {
11694                GroupableItemRefView::CoordinatedUniversalTimeOffset(
11695                    model.coordinated_universal_time_offset_arena.get(i.0),
11696                )
11697            }
11698            GroupableItemRef::CoordinatesList(i) => {
11699                GroupableItemRefView::CoordinatesList(model.coordinates_list_arena.get(i.0))
11700            }
11701            GroupableItemRef::Curve(i) => GroupableItemRefView::Curve(model.curve_arena.get(i.0)),
11702            GroupableItemRef::CylindricalSurface(i) => {
11703                GroupableItemRefView::CylindricalSurface(model.cylindrical_surface_arena.get(i.0))
11704            }
11705            GroupableItemRef::DateAndTime(i) => {
11706                GroupableItemRefView::DateAndTime(model.date_and_time_arena.get(i.0))
11707            }
11708            GroupableItemRef::DateAndTimeAssignment(i) => {
11709                GroupableItemRefView::DateAndTimeAssignment(
11710                    model.date_and_time_assignment_arena.get(i.0),
11711                )
11712            }
11713            GroupableItemRef::Datum(i) => GroupableItemRefView::Datum(model.datum_arena.get(i.0)),
11714            GroupableItemRef::DatumFeature(i) => {
11715                GroupableItemRefView::DatumFeature(model.datum_feature_arena.get(i.0))
11716            }
11717            GroupableItemRef::DatumReferenceCompartment(i) => {
11718                GroupableItemRefView::DatumReferenceCompartment(
11719                    model.datum_reference_compartment_arena.get(i.0),
11720                )
11721            }
11722            GroupableItemRef::DatumReferenceElement(i) => {
11723                GroupableItemRefView::DatumReferenceElement(
11724                    model.datum_reference_element_arena.get(i.0),
11725                )
11726            }
11727            GroupableItemRef::DatumSystem(i) => {
11728                GroupableItemRefView::DatumSystem(model.datum_system_arena.get(i.0))
11729            }
11730            GroupableItemRef::DatumTarget(i) => {
11731                GroupableItemRefView::DatumTarget(model.datum_target_arena.get(i.0))
11732            }
11733            GroupableItemRef::DefaultModelGeometricView(i) => {
11734                GroupableItemRefView::DefaultModelGeometricView(
11735                    model.default_model_geometric_view_arena.get(i.0),
11736                )
11737            }
11738            GroupableItemRef::DefinedCharacterGlyph(i) => {
11739                GroupableItemRefView::DefinedCharacterGlyph(
11740                    model.defined_character_glyph_arena.get(i.0),
11741                )
11742            }
11743            GroupableItemRef::DefinedSymbol(i) => {
11744                GroupableItemRefView::DefinedSymbol(model.defined_symbol_arena.get(i.0))
11745            }
11746            GroupableItemRef::DefinitionalRepresentation(i) => {
11747                GroupableItemRefView::DefinitionalRepresentation(
11748                    model.definitional_representation_arena.get(i.0),
11749                )
11750            }
11751            GroupableItemRef::DefinitionalRepresentationRelationship(i) => {
11752                GroupableItemRefView::DefinitionalRepresentationRelationship(
11753                    model
11754                        .definitional_representation_relationship_arena
11755                        .get(i.0),
11756                )
11757            }
11758            GroupableItemRef::DefinitionalRepresentationRelationshipWithSameContext(i) => {
11759                GroupableItemRefView::DefinitionalRepresentationRelationshipWithSameContext(
11760                    model
11761                        .definitional_representation_relationship_with_same_context_arena
11762                        .get(i.0),
11763                )
11764            }
11765            GroupableItemRef::DegenerateToroidalSurface(i) => {
11766                GroupableItemRefView::DegenerateToroidalSurface(
11767                    model.degenerate_toroidal_surface_arena.get(i.0),
11768                )
11769            }
11770            GroupableItemRef::DerivedShapeAspect(i) => {
11771                GroupableItemRefView::DerivedShapeAspect(model.derived_shape_aspect_arena.get(i.0))
11772            }
11773            GroupableItemRef::DerivedUnit(i) => {
11774                GroupableItemRefView::DerivedUnit(model.derived_unit_arena.get(i.0))
11775            }
11776            GroupableItemRef::DerivedUnitElement(i) => {
11777                GroupableItemRefView::DerivedUnitElement(model.derived_unit_element_arena.get(i.0))
11778            }
11779            GroupableItemRef::DescriptiveRepresentationItem(i) => {
11780                GroupableItemRefView::DescriptiveRepresentationItem(
11781                    model.descriptive_representation_item_arena.get(i.0),
11782                )
11783            }
11784            GroupableItemRef::DesignContext(i) => {
11785                GroupableItemRefView::DesignContext(model.design_context_arena.get(i.0))
11786            }
11787            GroupableItemRef::DimensionalLocation(i) => {
11788                GroupableItemRefView::DimensionalLocation(model.dimensional_location_arena.get(i.0))
11789            }
11790            GroupableItemRef::DimensionalLocationWithPath(i) => {
11791                GroupableItemRefView::DimensionalLocationWithPath(
11792                    model.dimensional_location_with_path_arena.get(i.0),
11793                )
11794            }
11795            GroupableItemRef::DimensionalSizeWithDatumFeature(i) => {
11796                GroupableItemRefView::DimensionalSizeWithDatumFeature(
11797                    model.dimensional_size_with_datum_feature_arena.get(i.0),
11798                )
11799            }
11800            GroupableItemRef::DirectedDimensionalLocation(i) => {
11801                GroupableItemRefView::DirectedDimensionalLocation(
11802                    model.directed_dimensional_location_arena.get(i.0),
11803                )
11804            }
11805            GroupableItemRef::Direction(i) => {
11806                GroupableItemRefView::Direction(model.direction_arena.get(i.0))
11807            }
11808            GroupableItemRef::DocumentFile(i) => {
11809                GroupableItemRefView::DocumentFile(model.document_file_arena.get(i.0))
11810            }
11811            GroupableItemRef::DraughtingAnnotationOccurrence(i) => {
11812                GroupableItemRefView::DraughtingAnnotationOccurrence(
11813                    model.draughting_annotation_occurrence_arena.get(i.0),
11814                )
11815            }
11816            GroupableItemRef::DraughtingCallout(i) => {
11817                GroupableItemRefView::DraughtingCallout(model.draughting_callout_arena.get(i.0))
11818            }
11819            GroupableItemRef::DraughtingModel(i) => {
11820                GroupableItemRefView::DraughtingModel(model.draughting_model_arena.get(i.0))
11821            }
11822            GroupableItemRef::Edge(i) => GroupableItemRefView::Edge(model.edge_arena.get(i.0)),
11823            GroupableItemRef::EdgeCurve(i) => {
11824                GroupableItemRefView::EdgeCurve(model.edge_curve_arena.get(i.0))
11825            }
11826            GroupableItemRef::EdgeLoop(i) => {
11827                GroupableItemRefView::EdgeLoop(model.edge_loop_arena.get(i.0))
11828            }
11829            GroupableItemRef::Effectivity(i) => {
11830                GroupableItemRefView::Effectivity(model.effectivity_arena.get(i.0))
11831            }
11832            GroupableItemRef::ElementarySurface(i) => {
11833                GroupableItemRefView::ElementarySurface(model.elementary_surface_arena.get(i.0))
11834            }
11835            GroupableItemRef::Ellipse(i) => {
11836                GroupableItemRefView::Ellipse(model.ellipse_arena.get(i.0))
11837            }
11838            GroupableItemRef::ExternalSource(i) => {
11839                GroupableItemRefView::ExternalSource(model.external_source_arena.get(i.0))
11840            }
11841            GroupableItemRef::ExternallyDefinedHatchStyle(i) => {
11842                GroupableItemRefView::ExternallyDefinedHatchStyle(
11843                    model.externally_defined_hatch_style_arena.get(i.0),
11844                )
11845            }
11846            GroupableItemRef::ExternallyDefinedTileStyle(i) => {
11847                GroupableItemRefView::ExternallyDefinedTileStyle(
11848                    model.externally_defined_tile_style_arena.get(i.0),
11849                )
11850            }
11851            GroupableItemRef::Face(i) => GroupableItemRefView::Face(model.face_arena.get(i.0)),
11852            GroupableItemRef::FaceBound(i) => {
11853                GroupableItemRefView::FaceBound(model.face_bound_arena.get(i.0))
11854            }
11855            GroupableItemRef::FaceOuterBound(i) => {
11856                GroupableItemRefView::FaceOuterBound(model.face_outer_bound_arena.get(i.0))
11857            }
11858            GroupableItemRef::FaceSurface(i) => {
11859                GroupableItemRefView::FaceSurface(model.face_surface_arena.get(i.0))
11860            }
11861            GroupableItemRef::FeatureForDatumTargetRelationship(i) => {
11862                GroupableItemRefView::FeatureForDatumTargetRelationship(
11863                    model.feature_for_datum_target_relationship_arena.get(i.0),
11864                )
11865            }
11866            GroupableItemRef::FillAreaStyleHatching(i) => {
11867                GroupableItemRefView::FillAreaStyleHatching(
11868                    model.fill_area_style_hatching_arena.get(i.0),
11869                )
11870            }
11871            GroupableItemRef::FillAreaStyleTileColouredRegion(i) => {
11872                GroupableItemRefView::FillAreaStyleTileColouredRegion(
11873                    model.fill_area_style_tile_coloured_region_arena.get(i.0),
11874                )
11875            }
11876            GroupableItemRef::FillAreaStyleTileCurveWithStyle(i) => {
11877                GroupableItemRefView::FillAreaStyleTileCurveWithStyle(
11878                    model.fill_area_style_tile_curve_with_style_arena.get(i.0),
11879                )
11880            }
11881            GroupableItemRef::FillAreaStyleTileSymbolWithStyle(i) => {
11882                GroupableItemRefView::FillAreaStyleTileSymbolWithStyle(
11883                    model.fill_area_style_tile_symbol_with_style_arena.get(i.0),
11884                )
11885            }
11886            GroupableItemRef::FillAreaStyleTiles(i) => {
11887                GroupableItemRefView::FillAreaStyleTiles(model.fill_area_style_tiles_arena.get(i.0))
11888            }
11889            GroupableItemRef::GeneralDatumReference(i) => {
11890                GroupableItemRefView::GeneralDatumReference(
11891                    model.general_datum_reference_arena.get(i.0),
11892                )
11893            }
11894            GroupableItemRef::GeneralProperty(i) => {
11895                GroupableItemRefView::GeneralProperty(model.general_property_arena.get(i.0))
11896            }
11897            GroupableItemRef::GeometricCurveSet(i) => {
11898                GroupableItemRefView::GeometricCurveSet(model.geometric_curve_set_arena.get(i.0))
11899            }
11900            GroupableItemRef::GeometricItemSpecificUsage(i) => {
11901                GroupableItemRefView::GeometricItemSpecificUsage(
11902                    model.geometric_item_specific_usage_arena.get(i.0),
11903                )
11904            }
11905            GroupableItemRef::GeometricRepresentationContext(i) => {
11906                GroupableItemRefView::GeometricRepresentationContext(
11907                    model.geometric_representation_context_arena.get(i.0),
11908                )
11909            }
11910            GroupableItemRef::GeometricRepresentationItem(i) => {
11911                GroupableItemRefView::GeometricRepresentationItem(
11912                    model.geometric_representation_item_arena.get(i.0),
11913                )
11914            }
11915            GroupableItemRef::GeometricSet(i) => {
11916                GroupableItemRefView::GeometricSet(model.geometric_set_arena.get(i.0))
11917            }
11918            GroupableItemRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => {
11919                GroupableItemRefView::GeometricallyBoundedSurfaceShapeRepresentation(
11920                    model
11921                        .geometrically_bounded_surface_shape_representation_arena
11922                        .get(i.0),
11923                )
11924            }
11925            GroupableItemRef::GeometricallyBoundedWireframeShapeRepresentation(i) => {
11926                GroupableItemRefView::GeometricallyBoundedWireframeShapeRepresentation(
11927                    model
11928                        .geometrically_bounded_wireframe_shape_representation_arena
11929                        .get(i.0),
11930                )
11931            }
11932            GroupableItemRef::GlobalUncertaintyAssignedContext(i) => {
11933                GroupableItemRefView::GlobalUncertaintyAssignedContext(
11934                    model.global_uncertainty_assigned_context_arena.get(i.0),
11935                )
11936            }
11937            GroupableItemRef::GlobalUnitAssignedContext(i) => {
11938                GroupableItemRefView::GlobalUnitAssignedContext(
11939                    model.global_unit_assigned_context_arena.get(i.0),
11940                )
11941            }
11942            GroupableItemRef::Hyperbola(i) => {
11943                GroupableItemRefView::Hyperbola(model.hyperbola_arena.get(i.0))
11944            }
11945            GroupableItemRef::IntegerRepresentationItem(i) => {
11946                GroupableItemRefView::IntegerRepresentationItem(
11947                    model.integer_representation_item_arena.get(i.0),
11948                )
11949            }
11950            GroupableItemRef::IntersectionCurve(i) => {
11951                GroupableItemRefView::IntersectionCurve(model.intersection_curve_arena.get(i.0))
11952            }
11953            GroupableItemRef::ItemDefinedTransformation(i) => {
11954                GroupableItemRefView::ItemDefinedTransformation(
11955                    model.item_defined_transformation_arena.get(i.0),
11956                )
11957            }
11958            GroupableItemRef::LeaderCurve(i) => {
11959                GroupableItemRefView::LeaderCurve(model.leader_curve_arena.get(i.0))
11960            }
11961            GroupableItemRef::LeaderDirectedCallout(i) => {
11962                GroupableItemRefView::LeaderDirectedCallout(
11963                    model.leader_directed_callout_arena.get(i.0),
11964                )
11965            }
11966            GroupableItemRef::LeaderTerminator(i) => {
11967                GroupableItemRefView::LeaderTerminator(model.leader_terminator_arena.get(i.0))
11968            }
11969            GroupableItemRef::LengthMeasureWithUnit(i) => {
11970                GroupableItemRefView::LengthMeasureWithUnit(
11971                    model.length_measure_with_unit_arena.get(i.0),
11972                )
11973            }
11974            GroupableItemRef::LengthUnit(i) => {
11975                GroupableItemRefView::LengthUnit(model.length_unit_arena.get(i.0))
11976            }
11977            GroupableItemRef::Line(i) => GroupableItemRefView::Line(model.line_arena.get(i.0)),
11978            GroupableItemRef::LocalTime(i) => {
11979                GroupableItemRefView::LocalTime(model.local_time_arena.get(i.0))
11980            }
11981            GroupableItemRef::Loop(i) => GroupableItemRefView::Loop(model.loop_arena.get(i.0)),
11982            GroupableItemRef::MakeFromUsageOption(i) => GroupableItemRefView::MakeFromUsageOption(
11983                model.make_from_usage_option_arena.get(i.0),
11984            ),
11985            GroupableItemRef::ManifoldSolidBrep(i) => {
11986                GroupableItemRefView::ManifoldSolidBrep(model.manifold_solid_brep_arena.get(i.0))
11987            }
11988            GroupableItemRef::ManifoldSurfaceShapeRepresentation(i) => {
11989                GroupableItemRefView::ManifoldSurfaceShapeRepresentation(
11990                    model.manifold_surface_shape_representation_arena.get(i.0),
11991                )
11992            }
11993            GroupableItemRef::MappedItem(i) => {
11994                GroupableItemRefView::MappedItem(model.mapped_item_arena.get(i.0))
11995            }
11996            GroupableItemRef::MassMeasureWithUnit(i) => GroupableItemRefView::MassMeasureWithUnit(
11997                model.mass_measure_with_unit_arena.get(i.0),
11998            ),
11999            GroupableItemRef::MassUnit(i) => {
12000                GroupableItemRefView::MassUnit(model.mass_unit_arena.get(i.0))
12001            }
12002            GroupableItemRef::MeasureRepresentationItem(i) => {
12003                GroupableItemRefView::MeasureRepresentationItem(
12004                    model.measure_representation_item_arena.get(i.0),
12005                )
12006            }
12007            GroupableItemRef::MeasureWithUnit(i) => {
12008                GroupableItemRefView::MeasureWithUnit(model.measure_with_unit_arena.get(i.0))
12009            }
12010            GroupableItemRef::MechanicalDesignAndDraughtingRelationship(i) => {
12011                GroupableItemRefView::MechanicalDesignAndDraughtingRelationship(
12012                    model
12013                        .mechanical_design_and_draughting_relationship_arena
12014                        .get(i.0),
12015                )
12016            }
12017            GroupableItemRef::MechanicalDesignGeometricPresentationRepresentation(i) => {
12018                GroupableItemRefView::MechanicalDesignGeometricPresentationRepresentation(
12019                    model
12020                        .mechanical_design_geometric_presentation_representation_arena
12021                        .get(i.0),
12022                )
12023            }
12024            GroupableItemRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => {
12025                GroupableItemRefView::MechanicalDesignPresentationRepresentationWithDraughting(
12026                    model
12027                        .mechanical_design_presentation_representation_with_draughting_arena
12028                        .get(i.0),
12029                )
12030            }
12031            GroupableItemRef::MechanicalDesignShadedPresentationRepresentation(i) => {
12032                GroupableItemRefView::MechanicalDesignShadedPresentationRepresentation(
12033                    model
12034                        .mechanical_design_shaded_presentation_representation_arena
12035                        .get(i.0),
12036                )
12037            }
12038            GroupableItemRef::NamedUnit(i) => {
12039                GroupableItemRefView::NamedUnit(model.named_unit_arena.get(i.0))
12040            }
12041            GroupableItemRef::NextAssemblyUsageOccurrence(i) => {
12042                GroupableItemRefView::NextAssemblyUsageOccurrence(
12043                    model.next_assembly_usage_occurrence_arena.get(i.0),
12044                )
12045            }
12046            GroupableItemRef::OffsetSurface(i) => {
12047                GroupableItemRefView::OffsetSurface(model.offset_surface_arena.get(i.0))
12048            }
12049            GroupableItemRef::OneDirectionRepeatFactor(i) => {
12050                GroupableItemRefView::OneDirectionRepeatFactor(
12051                    model.one_direction_repeat_factor_arena.get(i.0),
12052                )
12053            }
12054            GroupableItemRef::OpenShell(i) => {
12055                GroupableItemRefView::OpenShell(model.open_shell_arena.get(i.0))
12056            }
12057            GroupableItemRef::Organization(i) => {
12058                GroupableItemRefView::Organization(model.organization_arena.get(i.0))
12059            }
12060            GroupableItemRef::OrganizationRelationship(i) => {
12061                GroupableItemRefView::OrganizationRelationship(
12062                    model.organization_relationship_arena.get(i.0),
12063                )
12064            }
12065            GroupableItemRef::OrganizationType(i) => {
12066                GroupableItemRefView::OrganizationType(model.organization_type_arena.get(i.0))
12067            }
12068            GroupableItemRef::OrganizationalAddress(i) => {
12069                GroupableItemRefView::OrganizationalAddress(
12070                    model.organizational_address_arena.get(i.0),
12071                )
12072            }
12073            GroupableItemRef::OrganizationalProject(i) => {
12074                GroupableItemRefView::OrganizationalProject(
12075                    model.organizational_project_arena.get(i.0),
12076                )
12077            }
12078            GroupableItemRef::OrganizationalProjectRelationship(i) => {
12079                GroupableItemRefView::OrganizationalProjectRelationship(
12080                    model.organizational_project_relationship_arena.get(i.0),
12081                )
12082            }
12083            GroupableItemRef::OrientedClosedShell(i) => GroupableItemRefView::OrientedClosedShell(
12084                model.oriented_closed_shell_arena.get(i.0),
12085            ),
12086            GroupableItemRef::OrientedEdge(i) => {
12087                GroupableItemRefView::OrientedEdge(model.oriented_edge_arena.get(i.0))
12088            }
12089            GroupableItemRef::OverRidingStyledItem(i) => {
12090                GroupableItemRefView::OverRidingStyledItem(
12091                    model.over_riding_styled_item_arena.get(i.0),
12092                )
12093            }
12094            GroupableItemRef::ParametricRepresentationContext(i) => {
12095                GroupableItemRefView::ParametricRepresentationContext(
12096                    model.parametric_representation_context_arena.get(i.0),
12097                )
12098            }
12099            GroupableItemRef::Path(i) => GroupableItemRefView::Path(model.path_arena.get(i.0)),
12100            GroupableItemRef::Pcurve(i) => {
12101                GroupableItemRefView::Pcurve(model.pcurve_arena.get(i.0))
12102            }
12103            GroupableItemRef::Person(i) => {
12104                GroupableItemRefView::Person(model.person_arena.get(i.0))
12105            }
12106            GroupableItemRef::PersonAndOrganization(i) => {
12107                GroupableItemRefView::PersonAndOrganization(
12108                    model.person_and_organization_arena.get(i.0),
12109                )
12110            }
12111            GroupableItemRef::PersonAndOrganizationAddress(i) => {
12112                GroupableItemRefView::PersonAndOrganizationAddress(
12113                    model.person_and_organization_address_arena.get(i.0),
12114                )
12115            }
12116            GroupableItemRef::PersonalAddress(i) => {
12117                GroupableItemRefView::PersonalAddress(model.personal_address_arena.get(i.0))
12118            }
12119            GroupableItemRef::PlacedDatumTargetFeature(i) => {
12120                GroupableItemRefView::PlacedDatumTargetFeature(
12121                    model.placed_datum_target_feature_arena.get(i.0),
12122                )
12123            }
12124            GroupableItemRef::Placement(i) => {
12125                GroupableItemRefView::Placement(model.placement_arena.get(i.0))
12126            }
12127            GroupableItemRef::PlanarBox(i) => {
12128                GroupableItemRefView::PlanarBox(model.planar_box_arena.get(i.0))
12129            }
12130            GroupableItemRef::PlanarExtent(i) => {
12131                GroupableItemRefView::PlanarExtent(model.planar_extent_arena.get(i.0))
12132            }
12133            GroupableItemRef::Plane(i) => GroupableItemRefView::Plane(model.plane_arena.get(i.0)),
12134            GroupableItemRef::PlaneAngleMeasureWithUnit(i) => {
12135                GroupableItemRefView::PlaneAngleMeasureWithUnit(
12136                    model.plane_angle_measure_with_unit_arena.get(i.0),
12137                )
12138            }
12139            GroupableItemRef::PlaneAngleUnit(i) => {
12140                GroupableItemRefView::PlaneAngleUnit(model.plane_angle_unit_arena.get(i.0))
12141            }
12142            GroupableItemRef::Point(i) => GroupableItemRefView::Point(model.point_arena.get(i.0)),
12143            GroupableItemRef::PolyLoop(i) => {
12144                GroupableItemRefView::PolyLoop(model.poly_loop_arena.get(i.0))
12145            }
12146            GroupableItemRef::Polyline(i) => {
12147                GroupableItemRefView::Polyline(model.polyline_arena.get(i.0))
12148            }
12149            GroupableItemRef::PrecisionQualifier(i) => {
12150                GroupableItemRefView::PrecisionQualifier(model.precision_qualifier_arena.get(i.0))
12151            }
12152            GroupableItemRef::PresentationArea(i) => {
12153                GroupableItemRefView::PresentationArea(model.presentation_area_arena.get(i.0))
12154            }
12155            GroupableItemRef::PresentationRepresentation(i) => {
12156                GroupableItemRefView::PresentationRepresentation(
12157                    model.presentation_representation_arena.get(i.0),
12158                )
12159            }
12160            GroupableItemRef::PresentationView(i) => {
12161                GroupableItemRefView::PresentationView(model.presentation_view_arena.get(i.0))
12162            }
12163            GroupableItemRef::Product(i) => {
12164                GroupableItemRefView::Product(model.product_arena.get(i.0))
12165            }
12166            GroupableItemRef::ProductConcept(i) => {
12167                GroupableItemRefView::ProductConcept(model.product_concept_arena.get(i.0))
12168            }
12169            GroupableItemRef::ProductConceptContext(i) => {
12170                GroupableItemRefView::ProductConceptContext(
12171                    model.product_concept_context_arena.get(i.0),
12172                )
12173            }
12174            GroupableItemRef::ProductDefinition(i) => {
12175                GroupableItemRefView::ProductDefinition(model.product_definition_arena.get(i.0))
12176            }
12177            GroupableItemRef::ProductDefinitionContext(i) => {
12178                GroupableItemRefView::ProductDefinitionContext(
12179                    model.product_definition_context_arena.get(i.0),
12180                )
12181            }
12182            GroupableItemRef::ProductDefinitionEffectivity(i) => {
12183                GroupableItemRefView::ProductDefinitionEffectivity(
12184                    model.product_definition_effectivity_arena.get(i.0),
12185                )
12186            }
12187            GroupableItemRef::ProductDefinitionFormation(i) => {
12188                GroupableItemRefView::ProductDefinitionFormation(
12189                    model.product_definition_formation_arena.get(i.0),
12190                )
12191            }
12192            GroupableItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => {
12193                GroupableItemRefView::ProductDefinitionFormationWithSpecifiedSource(
12194                    model
12195                        .product_definition_formation_with_specified_source_arena
12196                        .get(i.0),
12197                )
12198            }
12199            GroupableItemRef::ProductDefinitionRelationship(i) => {
12200                GroupableItemRefView::ProductDefinitionRelationship(
12201                    model.product_definition_relationship_arena.get(i.0),
12202                )
12203            }
12204            GroupableItemRef::ProductDefinitionShape(i) => {
12205                GroupableItemRefView::ProductDefinitionShape(
12206                    model.product_definition_shape_arena.get(i.0),
12207                )
12208            }
12209            GroupableItemRef::ProductDefinitionUsage(i) => {
12210                GroupableItemRefView::ProductDefinitionUsage(
12211                    model.product_definition_usage_arena.get(i.0),
12212                )
12213            }
12214            GroupableItemRef::ProductDefinitionWithAssociatedDocuments(i) => {
12215                GroupableItemRefView::ProductDefinitionWithAssociatedDocuments(
12216                    model
12217                        .product_definition_with_associated_documents_arena
12218                        .get(i.0),
12219                )
12220            }
12221            GroupableItemRef::PropertyDefinition(i) => {
12222                GroupableItemRefView::PropertyDefinition(model.property_definition_arena.get(i.0))
12223            }
12224            GroupableItemRef::PropertyDefinitionRepresentation(i) => {
12225                GroupableItemRefView::PropertyDefinitionRepresentation(
12226                    model.property_definition_representation_arena.get(i.0),
12227                )
12228            }
12229            GroupableItemRef::QualifiedRepresentationItem(i) => {
12230                GroupableItemRefView::QualifiedRepresentationItem(
12231                    model.qualified_representation_item_arena.get(i.0),
12232                )
12233            }
12234            GroupableItemRef::QuasiUniformCurve(i) => {
12235                GroupableItemRefView::QuasiUniformCurve(model.quasi_uniform_curve_arena.get(i.0))
12236            }
12237            GroupableItemRef::QuasiUniformSurface(i) => GroupableItemRefView::QuasiUniformSurface(
12238                model.quasi_uniform_surface_arena.get(i.0),
12239            ),
12240            GroupableItemRef::RatioMeasureWithUnit(i) => {
12241                GroupableItemRefView::RatioMeasureWithUnit(
12242                    model.ratio_measure_with_unit_arena.get(i.0),
12243                )
12244            }
12245            GroupableItemRef::RatioUnit(i) => {
12246                GroupableItemRefView::RatioUnit(model.ratio_unit_arena.get(i.0))
12247            }
12248            GroupableItemRef::RationalBSplineCurve(i) => {
12249                GroupableItemRefView::RationalBSplineCurve(
12250                    model.rational_b_spline_curve_arena.get(i.0),
12251                )
12252            }
12253            GroupableItemRef::RationalBSplineSurface(i) => {
12254                GroupableItemRefView::RationalBSplineSurface(
12255                    model.rational_b_spline_surface_arena.get(i.0),
12256                )
12257            }
12258            GroupableItemRef::RealRepresentationItem(i) => {
12259                GroupableItemRefView::RealRepresentationItem(
12260                    model.real_representation_item_arena.get(i.0),
12261                )
12262            }
12263            GroupableItemRef::RepositionedTessellatedItem(i) => {
12264                GroupableItemRefView::RepositionedTessellatedItem(
12265                    model.repositioned_tessellated_item_arena.get(i.0),
12266                )
12267            }
12268            GroupableItemRef::Representation(i) => {
12269                GroupableItemRefView::Representation(model.representation_arena.get(i.0))
12270            }
12271            GroupableItemRef::RepresentationContext(i) => {
12272                GroupableItemRefView::RepresentationContext(
12273                    model.representation_context_arena.get(i.0),
12274                )
12275            }
12276            GroupableItemRef::RepresentationItem(i) => {
12277                GroupableItemRefView::RepresentationItem(model.representation_item_arena.get(i.0))
12278            }
12279            GroupableItemRef::RepresentationRelationship(i) => {
12280                GroupableItemRefView::RepresentationRelationship(
12281                    model.representation_relationship_arena.get(i.0),
12282                )
12283            }
12284            GroupableItemRef::RepresentationRelationshipWithTransformation(i) => {
12285                GroupableItemRefView::RepresentationRelationshipWithTransformation(
12286                    model
12287                        .representation_relationship_with_transformation_arena
12288                        .get(i.0),
12289                )
12290            }
12291            GroupableItemRef::SeamCurve(i) => {
12292                GroupableItemRefView::SeamCurve(model.seam_curve_arena.get(i.0))
12293            }
12294            GroupableItemRef::SecurityClassification(i) => {
12295                GroupableItemRefView::SecurityClassification(
12296                    model.security_classification_arena.get(i.0),
12297                )
12298            }
12299            GroupableItemRef::ShapeAspect(i) => {
12300                GroupableItemRefView::ShapeAspect(model.shape_aspect_arena.get(i.0))
12301            }
12302            GroupableItemRef::ShapeAspectAssociativity(i) => {
12303                GroupableItemRefView::ShapeAspectAssociativity(
12304                    model.shape_aspect_associativity_arena.get(i.0),
12305                )
12306            }
12307            GroupableItemRef::ShapeAspectDerivingRelationship(i) => {
12308                GroupableItemRefView::ShapeAspectDerivingRelationship(
12309                    model.shape_aspect_deriving_relationship_arena.get(i.0),
12310                )
12311            }
12312            GroupableItemRef::ShapeAspectRelationship(i) => {
12313                GroupableItemRefView::ShapeAspectRelationship(
12314                    model.shape_aspect_relationship_arena.get(i.0),
12315                )
12316            }
12317            GroupableItemRef::ShapeDefinitionRepresentation(i) => {
12318                GroupableItemRefView::ShapeDefinitionRepresentation(
12319                    model.shape_definition_representation_arena.get(i.0),
12320                )
12321            }
12322            GroupableItemRef::ShapeDimensionRepresentation(i) => {
12323                GroupableItemRefView::ShapeDimensionRepresentation(
12324                    model.shape_dimension_representation_arena.get(i.0),
12325                )
12326            }
12327            GroupableItemRef::ShapeRepresentation(i) => {
12328                GroupableItemRefView::ShapeRepresentation(model.shape_representation_arena.get(i.0))
12329            }
12330            GroupableItemRef::ShapeRepresentationRelationship(i) => {
12331                GroupableItemRefView::ShapeRepresentationRelationship(
12332                    model.shape_representation_relationship_arena.get(i.0),
12333                )
12334            }
12335            GroupableItemRef::ShapeRepresentationWithParameters(i) => {
12336                GroupableItemRefView::ShapeRepresentationWithParameters(
12337                    model.shape_representation_with_parameters_arena.get(i.0),
12338                )
12339            }
12340            GroupableItemRef::ShellBasedSurfaceModel(i) => {
12341                GroupableItemRefView::ShellBasedSurfaceModel(
12342                    model.shell_based_surface_model_arena.get(i.0),
12343                )
12344            }
12345            GroupableItemRef::SiUnit(i) => {
12346                GroupableItemRefView::SiUnit(model.si_unit_arena.get(i.0))
12347            }
12348            GroupableItemRef::SolidAngleUnit(i) => {
12349                GroupableItemRefView::SolidAngleUnit(model.solid_angle_unit_arena.get(i.0))
12350            }
12351            GroupableItemRef::SolidModel(i) => {
12352                GroupableItemRefView::SolidModel(model.solid_model_arena.get(i.0))
12353            }
12354            GroupableItemRef::SphericalSurface(i) => {
12355                GroupableItemRefView::SphericalSurface(model.spherical_surface_arena.get(i.0))
12356            }
12357            GroupableItemRef::StateObserved(i) => {
12358                GroupableItemRefView::StateObserved(model.state_observed_arena.get(i.0))
12359            }
12360            GroupableItemRef::StateType(i) => {
12361                GroupableItemRefView::StateType(model.state_type_arena.get(i.0))
12362            }
12363            GroupableItemRef::StyledItem(i) => {
12364                GroupableItemRefView::StyledItem(model.styled_item_arena.get(i.0))
12365            }
12366            GroupableItemRef::Surface(i) => {
12367                GroupableItemRefView::Surface(model.surface_arena.get(i.0))
12368            }
12369            GroupableItemRef::SurfaceCurve(i) => {
12370                GroupableItemRefView::SurfaceCurve(model.surface_curve_arena.get(i.0))
12371            }
12372            GroupableItemRef::SurfaceOfLinearExtrusion(i) => {
12373                GroupableItemRefView::SurfaceOfLinearExtrusion(
12374                    model.surface_of_linear_extrusion_arena.get(i.0),
12375                )
12376            }
12377            GroupableItemRef::SurfaceOfRevolution(i) => GroupableItemRefView::SurfaceOfRevolution(
12378                model.surface_of_revolution_arena.get(i.0),
12379            ),
12380            GroupableItemRef::SweptSurface(i) => {
12381                GroupableItemRefView::SweptSurface(model.swept_surface_arena.get(i.0))
12382            }
12383            GroupableItemRef::SymbolRepresentation(i) => {
12384                GroupableItemRefView::SymbolRepresentation(
12385                    model.symbol_representation_arena.get(i.0),
12386                )
12387            }
12388            GroupableItemRef::SymbolTarget(i) => {
12389                GroupableItemRefView::SymbolTarget(model.symbol_target_arena.get(i.0))
12390            }
12391            GroupableItemRef::TerminatorSymbol(i) => {
12392                GroupableItemRefView::TerminatorSymbol(model.terminator_symbol_arena.get(i.0))
12393            }
12394            GroupableItemRef::TessellatedAnnotationOccurrence(i) => {
12395                GroupableItemRefView::TessellatedAnnotationOccurrence(
12396                    model.tessellated_annotation_occurrence_arena.get(i.0),
12397                )
12398            }
12399            GroupableItemRef::TessellatedCurveSet(i) => GroupableItemRefView::TessellatedCurveSet(
12400                model.tessellated_curve_set_arena.get(i.0),
12401            ),
12402            GroupableItemRef::TessellatedFace(i) => {
12403                GroupableItemRefView::TessellatedFace(model.tessellated_face_arena.get(i.0))
12404            }
12405            GroupableItemRef::TessellatedGeometricSet(i) => {
12406                GroupableItemRefView::TessellatedGeometricSet(
12407                    model.tessellated_geometric_set_arena.get(i.0),
12408                )
12409            }
12410            GroupableItemRef::TessellatedItem(i) => {
12411                GroupableItemRefView::TessellatedItem(model.tessellated_item_arena.get(i.0))
12412            }
12413            GroupableItemRef::TessellatedShapeRepresentation(i) => {
12414                GroupableItemRefView::TessellatedShapeRepresentation(
12415                    model.tessellated_shape_representation_arena.get(i.0),
12416                )
12417            }
12418            GroupableItemRef::TessellatedShell(i) => {
12419                GroupableItemRefView::TessellatedShell(model.tessellated_shell_arena.get(i.0))
12420            }
12421            GroupableItemRef::TessellatedSolid(i) => {
12422                GroupableItemRefView::TessellatedSolid(model.tessellated_solid_arena.get(i.0))
12423            }
12424            GroupableItemRef::TessellatedStructuredItem(i) => {
12425                GroupableItemRefView::TessellatedStructuredItem(
12426                    model.tessellated_structured_item_arena.get(i.0),
12427                )
12428            }
12429            GroupableItemRef::TessellatedSurfaceSet(i) => {
12430                GroupableItemRefView::TessellatedSurfaceSet(
12431                    model.tessellated_surface_set_arena.get(i.0),
12432                )
12433            }
12434            GroupableItemRef::TextLiteral(i) => {
12435                GroupableItemRefView::TextLiteral(model.text_literal_arena.get(i.0))
12436            }
12437            GroupableItemRef::TimeUnit(i) => {
12438                GroupableItemRefView::TimeUnit(model.time_unit_arena.get(i.0))
12439            }
12440            GroupableItemRef::ToleranceZone(i) => {
12441                GroupableItemRefView::ToleranceZone(model.tolerance_zone_arena.get(i.0))
12442            }
12443            GroupableItemRef::ToleranceZoneWithDatum(i) => {
12444                GroupableItemRefView::ToleranceZoneWithDatum(
12445                    model.tolerance_zone_with_datum_arena.get(i.0),
12446                )
12447            }
12448            GroupableItemRef::TopologicalRepresentationItem(i) => {
12449                GroupableItemRefView::TopologicalRepresentationItem(
12450                    model.topological_representation_item_arena.get(i.0),
12451                )
12452            }
12453            GroupableItemRef::ToroidalSurface(i) => {
12454                GroupableItemRefView::ToroidalSurface(model.toroidal_surface_arena.get(i.0))
12455            }
12456            GroupableItemRef::TrimmedCurve(i) => {
12457                GroupableItemRefView::TrimmedCurve(model.trimmed_curve_arena.get(i.0))
12458            }
12459            GroupableItemRef::TwoDirectionRepeatFactor(i) => {
12460                GroupableItemRefView::TwoDirectionRepeatFactor(
12461                    model.two_direction_repeat_factor_arena.get(i.0),
12462                )
12463            }
12464            GroupableItemRef::TypeQualifier(i) => {
12465                GroupableItemRefView::TypeQualifier(model.type_qualifier_arena.get(i.0))
12466            }
12467            GroupableItemRef::UncertaintyMeasureWithUnit(i) => {
12468                GroupableItemRefView::UncertaintyMeasureWithUnit(
12469                    model.uncertainty_measure_with_unit_arena.get(i.0),
12470                )
12471            }
12472            GroupableItemRef::UncertaintyQualifier(i) => {
12473                GroupableItemRefView::UncertaintyQualifier(
12474                    model.uncertainty_qualifier_arena.get(i.0),
12475                )
12476            }
12477            GroupableItemRef::UniformCurve(i) => {
12478                GroupableItemRefView::UniformCurve(model.uniform_curve_arena.get(i.0))
12479            }
12480            GroupableItemRef::UniformSurface(i) => {
12481                GroupableItemRefView::UniformSurface(model.uniform_surface_arena.get(i.0))
12482            }
12483            GroupableItemRef::ValueRepresentationItem(i) => {
12484                GroupableItemRefView::ValueRepresentationItem(
12485                    model.value_representation_item_arena.get(i.0),
12486                )
12487            }
12488            GroupableItemRef::Vector(i) => {
12489                GroupableItemRefView::Vector(model.vector_arena.get(i.0))
12490            }
12491            GroupableItemRef::VersionedActionRequest(i) => {
12492                GroupableItemRefView::VersionedActionRequest(
12493                    model.versioned_action_request_arena.get(i.0),
12494                )
12495            }
12496            GroupableItemRef::Vertex(i) => {
12497                GroupableItemRefView::Vertex(model.vertex_arena.get(i.0))
12498            }
12499            GroupableItemRef::VertexLoop(i) => {
12500                GroupableItemRefView::VertexLoop(model.vertex_loop_arena.get(i.0))
12501            }
12502            GroupableItemRef::VertexPoint(i) => {
12503                GroupableItemRefView::VertexPoint(model.vertex_point_arena.get(i.0))
12504            }
12505            GroupableItemRef::VertexShell(i) => {
12506                GroupableItemRefView::VertexShell(model.vertex_shell_arena.get(i.0))
12507            }
12508            GroupableItemRef::VolumeUnit(i) => {
12509                GroupableItemRefView::VolumeUnit(model.volume_unit_arena.get(i.0))
12510            }
12511            GroupableItemRef::WireShell(i) => {
12512                GroupableItemRefView::WireShell(model.wire_shell_arena.get(i.0))
12513            }
12514            GroupableItemRef::Complex(i) => {
12515                GroupableItemRefView::Complex(model.complex_unit_arena.get(i.0))
12516            }
12517        }
12518    }
12519    pub fn entity_key(&self) -> EntityKey {
12520        match self {
12521            GroupableItemRef::ActionMethod(i) => EntityKey::ActionMethod(*i),
12522            GroupableItemRef::Address(i) => EntityKey::Address(*i),
12523            GroupableItemRef::AdvancedBrepShapeRepresentation(i) => {
12524                EntityKey::AdvancedBrepShapeRepresentation(*i)
12525            }
12526            GroupableItemRef::AdvancedFace(i) => EntityKey::AdvancedFace(*i),
12527            GroupableItemRef::AllAroundShapeAspect(i) => EntityKey::AllAroundShapeAspect(*i),
12528            GroupableItemRef::AngularLocation(i) => EntityKey::AngularLocation(*i),
12529            GroupableItemRef::AnnotationCurveOccurrence(i) => {
12530                EntityKey::AnnotationCurveOccurrence(*i)
12531            }
12532            GroupableItemRef::AnnotationFillAreaOccurrence(i) => {
12533                EntityKey::AnnotationFillAreaOccurrence(*i)
12534            }
12535            GroupableItemRef::AnnotationOccurrence(i) => EntityKey::AnnotationOccurrence(*i),
12536            GroupableItemRef::AnnotationPlaceholderLeaderLine(i) => {
12537                EntityKey::AnnotationPlaceholderLeaderLine(*i)
12538            }
12539            GroupableItemRef::AnnotationPlaceholderOccurrence(i) => {
12540                EntityKey::AnnotationPlaceholderOccurrence(*i)
12541            }
12542            GroupableItemRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => {
12543                EntityKey::AnnotationPlaceholderOccurrenceWithLeaderLine(*i)
12544            }
12545            GroupableItemRef::AnnotationPlane(i) => EntityKey::AnnotationPlane(*i),
12546            GroupableItemRef::AnnotationSymbol(i) => EntityKey::AnnotationSymbol(*i),
12547            GroupableItemRef::AnnotationSymbolOccurrence(i) => {
12548                EntityKey::AnnotationSymbolOccurrence(*i)
12549            }
12550            GroupableItemRef::AnnotationText(i) => EntityKey::AnnotationText(*i),
12551            GroupableItemRef::AnnotationTextCharacter(i) => EntityKey::AnnotationTextCharacter(*i),
12552            GroupableItemRef::AnnotationTextOccurrence(i) => {
12553                EntityKey::AnnotationTextOccurrence(*i)
12554            }
12555            GroupableItemRef::AnnotationToAnnotationLeaderLine(i) => {
12556                EntityKey::AnnotationToAnnotationLeaderLine(*i)
12557            }
12558            GroupableItemRef::AnnotationToModelLeaderLine(i) => {
12559                EntityKey::AnnotationToModelLeaderLine(*i)
12560            }
12561            GroupableItemRef::ApllPoint(i) => EntityKey::ApllPoint(*i),
12562            GroupableItemRef::ApllPointWithSurface(i) => EntityKey::ApllPointWithSurface(*i),
12563            GroupableItemRef::AppliedDateAndTimeAssignment(i) => {
12564                EntityKey::AppliedDateAndTimeAssignment(*i)
12565            }
12566            GroupableItemRef::AppliedGroupAssignment(i) => EntityKey::AppliedGroupAssignment(*i),
12567            GroupableItemRef::Approval(i) => EntityKey::Approval(*i),
12568            GroupableItemRef::ApprovalPersonOrganization(i) => {
12569                EntityKey::ApprovalPersonOrganization(*i)
12570            }
12571            GroupableItemRef::ApprovalStatus(i) => EntityKey::ApprovalStatus(*i),
12572            GroupableItemRef::AreaUnit(i) => EntityKey::AreaUnit(*i),
12573            GroupableItemRef::AscribableState(i) => EntityKey::AscribableState(*i),
12574            GroupableItemRef::AscribableStateRelationship(i) => {
12575                EntityKey::AscribableStateRelationship(*i)
12576            }
12577            GroupableItemRef::AssemblyComponentUsage(i) => EntityKey::AssemblyComponentUsage(*i),
12578            GroupableItemRef::AuxiliaryLeaderLine(i) => EntityKey::AuxiliaryLeaderLine(*i),
12579            GroupableItemRef::Axis1Placement(i) => EntityKey::Axis1Placement(*i),
12580            GroupableItemRef::Axis2Placement2d(i) => EntityKey::Axis2Placement2d(*i),
12581            GroupableItemRef::Axis2Placement3d(i) => EntityKey::Axis2Placement3d(*i),
12582            GroupableItemRef::BSplineCurve(i) => EntityKey::BSplineCurve(*i),
12583            GroupableItemRef::BSplineCurveWithKnots(i) => EntityKey::BSplineCurveWithKnots(*i),
12584            GroupableItemRef::BSplineSurface(i) => EntityKey::BSplineSurface(*i),
12585            GroupableItemRef::BSplineSurfaceWithKnots(i) => EntityKey::BSplineSurfaceWithKnots(*i),
12586            GroupableItemRef::BezierCurve(i) => EntityKey::BezierCurve(*i),
12587            GroupableItemRef::BezierSurface(i) => EntityKey::BezierSurface(*i),
12588            GroupableItemRef::BoundedCurve(i) => EntityKey::BoundedCurve(*i),
12589            GroupableItemRef::BoundedPcurve(i) => EntityKey::BoundedPcurve(*i),
12590            GroupableItemRef::BoundedSurface(i) => EntityKey::BoundedSurface(*i),
12591            GroupableItemRef::BoundedSurfaceCurve(i) => EntityKey::BoundedSurfaceCurve(*i),
12592            GroupableItemRef::BrepWithVoids(i) => EntityKey::BrepWithVoids(*i),
12593            GroupableItemRef::CalendarDate(i) => EntityKey::CalendarDate(*i),
12594            GroupableItemRef::CameraImage(i) => EntityKey::CameraImage(*i),
12595            GroupableItemRef::CameraImage3dWithScale(i) => EntityKey::CameraImage3dWithScale(*i),
12596            GroupableItemRef::CameraModel(i) => EntityKey::CameraModel(*i),
12597            GroupableItemRef::CameraModelD3(i) => EntityKey::CameraModelD3(*i),
12598            GroupableItemRef::CameraModelD3MultiClipping(i) => {
12599                EntityKey::CameraModelD3MultiClipping(*i)
12600            }
12601            GroupableItemRef::CameraModelD3WithHlhsr(i) => EntityKey::CameraModelD3WithHlhsr(*i),
12602            GroupableItemRef::CartesianPoint(i) => EntityKey::CartesianPoint(*i),
12603            GroupableItemRef::CcDesignDateAndTimeAssignment(i) => {
12604                EntityKey::CcDesignDateAndTimeAssignment(*i)
12605            }
12606            GroupableItemRef::CentreOfSymmetry(i) => EntityKey::CentreOfSymmetry(*i),
12607            GroupableItemRef::Certification(i) => EntityKey::Certification(*i),
12608            GroupableItemRef::CharacterizedRepresentation(i) => {
12609                EntityKey::CharacterizedRepresentation(*i)
12610            }
12611            GroupableItemRef::Circle(i) => EntityKey::Circle(*i),
12612            GroupableItemRef::ClosedShell(i) => EntityKey::ClosedShell(*i),
12613            GroupableItemRef::CommonDatum(i) => EntityKey::CommonDatum(*i),
12614            GroupableItemRef::ComplexTriangulatedFace(i) => EntityKey::ComplexTriangulatedFace(*i),
12615            GroupableItemRef::ComplexTriangulatedSurfaceSet(i) => {
12616                EntityKey::ComplexTriangulatedSurfaceSet(*i)
12617            }
12618            GroupableItemRef::CompositeCurve(i) => EntityKey::CompositeCurve(*i),
12619            GroupableItemRef::CompositeGroupShapeAspect(i) => {
12620                EntityKey::CompositeGroupShapeAspect(*i)
12621            }
12622            GroupableItemRef::CompositeShapeAspect(i) => EntityKey::CompositeShapeAspect(*i),
12623            GroupableItemRef::CompositeText(i) => EntityKey::CompositeText(*i),
12624            GroupableItemRef::CompoundRepresentationItem(i) => {
12625                EntityKey::CompoundRepresentationItem(*i)
12626            }
12627            GroupableItemRef::ConfigurationDesign(i) => EntityKey::ConfigurationDesign(*i),
12628            GroupableItemRef::ConfigurationEffectivity(i) => {
12629                EntityKey::ConfigurationEffectivity(*i)
12630            }
12631            GroupableItemRef::ConfigurationItem(i) => EntityKey::ConfigurationItem(*i),
12632            GroupableItemRef::Conic(i) => EntityKey::Conic(*i),
12633            GroupableItemRef::ConicalSurface(i) => EntityKey::ConicalSurface(*i),
12634            GroupableItemRef::ConnectedFaceSet(i) => EntityKey::ConnectedFaceSet(*i),
12635            GroupableItemRef::ConstructiveGeometryRepresentation(i) => {
12636                EntityKey::ConstructiveGeometryRepresentation(*i)
12637            }
12638            GroupableItemRef::ConstructiveGeometryRepresentationRelationship(i) => {
12639                EntityKey::ConstructiveGeometryRepresentationRelationship(*i)
12640            }
12641            GroupableItemRef::ContextDependentOverRidingStyledItem(i) => {
12642                EntityKey::ContextDependentOverRidingStyledItem(*i)
12643            }
12644            GroupableItemRef::ContextDependentShapeRepresentation(i) => {
12645                EntityKey::ContextDependentShapeRepresentation(*i)
12646            }
12647            GroupableItemRef::ContextDependentUnit(i) => EntityKey::ContextDependentUnit(*i),
12648            GroupableItemRef::ContinuousShapeAspect(i) => EntityKey::ContinuousShapeAspect(*i),
12649            GroupableItemRef::Contract(i) => EntityKey::Contract(*i),
12650            GroupableItemRef::ConversionBasedUnit(i) => EntityKey::ConversionBasedUnit(*i),
12651            GroupableItemRef::CoordinatedUniversalTimeOffset(i) => {
12652                EntityKey::CoordinatedUniversalTimeOffset(*i)
12653            }
12654            GroupableItemRef::CoordinatesList(i) => EntityKey::CoordinatesList(*i),
12655            GroupableItemRef::Curve(i) => EntityKey::Curve(*i),
12656            GroupableItemRef::CylindricalSurface(i) => EntityKey::CylindricalSurface(*i),
12657            GroupableItemRef::DateAndTime(i) => EntityKey::DateAndTime(*i),
12658            GroupableItemRef::DateAndTimeAssignment(i) => EntityKey::DateAndTimeAssignment(*i),
12659            GroupableItemRef::Datum(i) => EntityKey::Datum(*i),
12660            GroupableItemRef::DatumFeature(i) => EntityKey::DatumFeature(*i),
12661            GroupableItemRef::DatumReferenceCompartment(i) => {
12662                EntityKey::DatumReferenceCompartment(*i)
12663            }
12664            GroupableItemRef::DatumReferenceElement(i) => EntityKey::DatumReferenceElement(*i),
12665            GroupableItemRef::DatumSystem(i) => EntityKey::DatumSystem(*i),
12666            GroupableItemRef::DatumTarget(i) => EntityKey::DatumTarget(*i),
12667            GroupableItemRef::DefaultModelGeometricView(i) => {
12668                EntityKey::DefaultModelGeometricView(*i)
12669            }
12670            GroupableItemRef::DefinedCharacterGlyph(i) => EntityKey::DefinedCharacterGlyph(*i),
12671            GroupableItemRef::DefinedSymbol(i) => EntityKey::DefinedSymbol(*i),
12672            GroupableItemRef::DefinitionalRepresentation(i) => {
12673                EntityKey::DefinitionalRepresentation(*i)
12674            }
12675            GroupableItemRef::DefinitionalRepresentationRelationship(i) => {
12676                EntityKey::DefinitionalRepresentationRelationship(*i)
12677            }
12678            GroupableItemRef::DefinitionalRepresentationRelationshipWithSameContext(i) => {
12679                EntityKey::DefinitionalRepresentationRelationshipWithSameContext(*i)
12680            }
12681            GroupableItemRef::DegenerateToroidalSurface(i) => {
12682                EntityKey::DegenerateToroidalSurface(*i)
12683            }
12684            GroupableItemRef::DerivedShapeAspect(i) => EntityKey::DerivedShapeAspect(*i),
12685            GroupableItemRef::DerivedUnit(i) => EntityKey::DerivedUnit(*i),
12686            GroupableItemRef::DerivedUnitElement(i) => EntityKey::DerivedUnitElement(*i),
12687            GroupableItemRef::DescriptiveRepresentationItem(i) => {
12688                EntityKey::DescriptiveRepresentationItem(*i)
12689            }
12690            GroupableItemRef::DesignContext(i) => EntityKey::DesignContext(*i),
12691            GroupableItemRef::DimensionalLocation(i) => EntityKey::DimensionalLocation(*i),
12692            GroupableItemRef::DimensionalLocationWithPath(i) => {
12693                EntityKey::DimensionalLocationWithPath(*i)
12694            }
12695            GroupableItemRef::DimensionalSizeWithDatumFeature(i) => {
12696                EntityKey::DimensionalSizeWithDatumFeature(*i)
12697            }
12698            GroupableItemRef::DirectedDimensionalLocation(i) => {
12699                EntityKey::DirectedDimensionalLocation(*i)
12700            }
12701            GroupableItemRef::Direction(i) => EntityKey::Direction(*i),
12702            GroupableItemRef::DocumentFile(i) => EntityKey::DocumentFile(*i),
12703            GroupableItemRef::DraughtingAnnotationOccurrence(i) => {
12704                EntityKey::DraughtingAnnotationOccurrence(*i)
12705            }
12706            GroupableItemRef::DraughtingCallout(i) => EntityKey::DraughtingCallout(*i),
12707            GroupableItemRef::DraughtingModel(i) => EntityKey::DraughtingModel(*i),
12708            GroupableItemRef::Edge(i) => EntityKey::Edge(*i),
12709            GroupableItemRef::EdgeCurve(i) => EntityKey::EdgeCurve(*i),
12710            GroupableItemRef::EdgeLoop(i) => EntityKey::EdgeLoop(*i),
12711            GroupableItemRef::Effectivity(i) => EntityKey::Effectivity(*i),
12712            GroupableItemRef::ElementarySurface(i) => EntityKey::ElementarySurface(*i),
12713            GroupableItemRef::Ellipse(i) => EntityKey::Ellipse(*i),
12714            GroupableItemRef::ExternalSource(i) => EntityKey::ExternalSource(*i),
12715            GroupableItemRef::ExternallyDefinedHatchStyle(i) => {
12716                EntityKey::ExternallyDefinedHatchStyle(*i)
12717            }
12718            GroupableItemRef::ExternallyDefinedTileStyle(i) => {
12719                EntityKey::ExternallyDefinedTileStyle(*i)
12720            }
12721            GroupableItemRef::Face(i) => EntityKey::Face(*i),
12722            GroupableItemRef::FaceBound(i) => EntityKey::FaceBound(*i),
12723            GroupableItemRef::FaceOuterBound(i) => EntityKey::FaceOuterBound(*i),
12724            GroupableItemRef::FaceSurface(i) => EntityKey::FaceSurface(*i),
12725            GroupableItemRef::FeatureForDatumTargetRelationship(i) => {
12726                EntityKey::FeatureForDatumTargetRelationship(*i)
12727            }
12728            GroupableItemRef::FillAreaStyleHatching(i) => EntityKey::FillAreaStyleHatching(*i),
12729            GroupableItemRef::FillAreaStyleTileColouredRegion(i) => {
12730                EntityKey::FillAreaStyleTileColouredRegion(*i)
12731            }
12732            GroupableItemRef::FillAreaStyleTileCurveWithStyle(i) => {
12733                EntityKey::FillAreaStyleTileCurveWithStyle(*i)
12734            }
12735            GroupableItemRef::FillAreaStyleTileSymbolWithStyle(i) => {
12736                EntityKey::FillAreaStyleTileSymbolWithStyle(*i)
12737            }
12738            GroupableItemRef::FillAreaStyleTiles(i) => EntityKey::FillAreaStyleTiles(*i),
12739            GroupableItemRef::GeneralDatumReference(i) => EntityKey::GeneralDatumReference(*i),
12740            GroupableItemRef::GeneralProperty(i) => EntityKey::GeneralProperty(*i),
12741            GroupableItemRef::GeometricCurveSet(i) => EntityKey::GeometricCurveSet(*i),
12742            GroupableItemRef::GeometricItemSpecificUsage(i) => {
12743                EntityKey::GeometricItemSpecificUsage(*i)
12744            }
12745            GroupableItemRef::GeometricRepresentationContext(i) => {
12746                EntityKey::GeometricRepresentationContext(*i)
12747            }
12748            GroupableItemRef::GeometricRepresentationItem(i) => {
12749                EntityKey::GeometricRepresentationItem(*i)
12750            }
12751            GroupableItemRef::GeometricSet(i) => EntityKey::GeometricSet(*i),
12752            GroupableItemRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => {
12753                EntityKey::GeometricallyBoundedSurfaceShapeRepresentation(*i)
12754            }
12755            GroupableItemRef::GeometricallyBoundedWireframeShapeRepresentation(i) => {
12756                EntityKey::GeometricallyBoundedWireframeShapeRepresentation(*i)
12757            }
12758            GroupableItemRef::GlobalUncertaintyAssignedContext(i) => {
12759                EntityKey::GlobalUncertaintyAssignedContext(*i)
12760            }
12761            GroupableItemRef::GlobalUnitAssignedContext(i) => {
12762                EntityKey::GlobalUnitAssignedContext(*i)
12763            }
12764            GroupableItemRef::Hyperbola(i) => EntityKey::Hyperbola(*i),
12765            GroupableItemRef::IntegerRepresentationItem(i) => {
12766                EntityKey::IntegerRepresentationItem(*i)
12767            }
12768            GroupableItemRef::IntersectionCurve(i) => EntityKey::IntersectionCurve(*i),
12769            GroupableItemRef::ItemDefinedTransformation(i) => {
12770                EntityKey::ItemDefinedTransformation(*i)
12771            }
12772            GroupableItemRef::LeaderCurve(i) => EntityKey::LeaderCurve(*i),
12773            GroupableItemRef::LeaderDirectedCallout(i) => EntityKey::LeaderDirectedCallout(*i),
12774            GroupableItemRef::LeaderTerminator(i) => EntityKey::LeaderTerminator(*i),
12775            GroupableItemRef::LengthMeasureWithUnit(i) => EntityKey::LengthMeasureWithUnit(*i),
12776            GroupableItemRef::LengthUnit(i) => EntityKey::LengthUnit(*i),
12777            GroupableItemRef::Line(i) => EntityKey::Line(*i),
12778            GroupableItemRef::LocalTime(i) => EntityKey::LocalTime(*i),
12779            GroupableItemRef::Loop(i) => EntityKey::Loop(*i),
12780            GroupableItemRef::MakeFromUsageOption(i) => EntityKey::MakeFromUsageOption(*i),
12781            GroupableItemRef::ManifoldSolidBrep(i) => EntityKey::ManifoldSolidBrep(*i),
12782            GroupableItemRef::ManifoldSurfaceShapeRepresentation(i) => {
12783                EntityKey::ManifoldSurfaceShapeRepresentation(*i)
12784            }
12785            GroupableItemRef::MappedItem(i) => EntityKey::MappedItem(*i),
12786            GroupableItemRef::MassMeasureWithUnit(i) => EntityKey::MassMeasureWithUnit(*i),
12787            GroupableItemRef::MassUnit(i) => EntityKey::MassUnit(*i),
12788            GroupableItemRef::MeasureRepresentationItem(i) => {
12789                EntityKey::MeasureRepresentationItem(*i)
12790            }
12791            GroupableItemRef::MeasureWithUnit(i) => EntityKey::MeasureWithUnit(*i),
12792            GroupableItemRef::MechanicalDesignAndDraughtingRelationship(i) => {
12793                EntityKey::MechanicalDesignAndDraughtingRelationship(*i)
12794            }
12795            GroupableItemRef::MechanicalDesignGeometricPresentationRepresentation(i) => {
12796                EntityKey::MechanicalDesignGeometricPresentationRepresentation(*i)
12797            }
12798            GroupableItemRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => {
12799                EntityKey::MechanicalDesignPresentationRepresentationWithDraughting(*i)
12800            }
12801            GroupableItemRef::MechanicalDesignShadedPresentationRepresentation(i) => {
12802                EntityKey::MechanicalDesignShadedPresentationRepresentation(*i)
12803            }
12804            GroupableItemRef::NamedUnit(i) => EntityKey::NamedUnit(*i),
12805            GroupableItemRef::NextAssemblyUsageOccurrence(i) => {
12806                EntityKey::NextAssemblyUsageOccurrence(*i)
12807            }
12808            GroupableItemRef::OffsetSurface(i) => EntityKey::OffsetSurface(*i),
12809            GroupableItemRef::OneDirectionRepeatFactor(i) => {
12810                EntityKey::OneDirectionRepeatFactor(*i)
12811            }
12812            GroupableItemRef::OpenShell(i) => EntityKey::OpenShell(*i),
12813            GroupableItemRef::Organization(i) => EntityKey::Organization(*i),
12814            GroupableItemRef::OrganizationRelationship(i) => {
12815                EntityKey::OrganizationRelationship(*i)
12816            }
12817            GroupableItemRef::OrganizationType(i) => EntityKey::OrganizationType(*i),
12818            GroupableItemRef::OrganizationalAddress(i) => EntityKey::OrganizationalAddress(*i),
12819            GroupableItemRef::OrganizationalProject(i) => EntityKey::OrganizationalProject(*i),
12820            GroupableItemRef::OrganizationalProjectRelationship(i) => {
12821                EntityKey::OrganizationalProjectRelationship(*i)
12822            }
12823            GroupableItemRef::OrientedClosedShell(i) => EntityKey::OrientedClosedShell(*i),
12824            GroupableItemRef::OrientedEdge(i) => EntityKey::OrientedEdge(*i),
12825            GroupableItemRef::OverRidingStyledItem(i) => EntityKey::OverRidingStyledItem(*i),
12826            GroupableItemRef::ParametricRepresentationContext(i) => {
12827                EntityKey::ParametricRepresentationContext(*i)
12828            }
12829            GroupableItemRef::Path(i) => EntityKey::Path(*i),
12830            GroupableItemRef::Pcurve(i) => EntityKey::Pcurve(*i),
12831            GroupableItemRef::Person(i) => EntityKey::Person(*i),
12832            GroupableItemRef::PersonAndOrganization(i) => EntityKey::PersonAndOrganization(*i),
12833            GroupableItemRef::PersonAndOrganizationAddress(i) => {
12834                EntityKey::PersonAndOrganizationAddress(*i)
12835            }
12836            GroupableItemRef::PersonalAddress(i) => EntityKey::PersonalAddress(*i),
12837            GroupableItemRef::PlacedDatumTargetFeature(i) => {
12838                EntityKey::PlacedDatumTargetFeature(*i)
12839            }
12840            GroupableItemRef::Placement(i) => EntityKey::Placement(*i),
12841            GroupableItemRef::PlanarBox(i) => EntityKey::PlanarBox(*i),
12842            GroupableItemRef::PlanarExtent(i) => EntityKey::PlanarExtent(*i),
12843            GroupableItemRef::Plane(i) => EntityKey::Plane(*i),
12844            GroupableItemRef::PlaneAngleMeasureWithUnit(i) => {
12845                EntityKey::PlaneAngleMeasureWithUnit(*i)
12846            }
12847            GroupableItemRef::PlaneAngleUnit(i) => EntityKey::PlaneAngleUnit(*i),
12848            GroupableItemRef::Point(i) => EntityKey::Point(*i),
12849            GroupableItemRef::PolyLoop(i) => EntityKey::PolyLoop(*i),
12850            GroupableItemRef::Polyline(i) => EntityKey::Polyline(*i),
12851            GroupableItemRef::PrecisionQualifier(i) => EntityKey::PrecisionQualifier(*i),
12852            GroupableItemRef::PresentationArea(i) => EntityKey::PresentationArea(*i),
12853            GroupableItemRef::PresentationRepresentation(i) => {
12854                EntityKey::PresentationRepresentation(*i)
12855            }
12856            GroupableItemRef::PresentationView(i) => EntityKey::PresentationView(*i),
12857            GroupableItemRef::Product(i) => EntityKey::Product(*i),
12858            GroupableItemRef::ProductConcept(i) => EntityKey::ProductConcept(*i),
12859            GroupableItemRef::ProductConceptContext(i) => EntityKey::ProductConceptContext(*i),
12860            GroupableItemRef::ProductDefinition(i) => EntityKey::ProductDefinition(*i),
12861            GroupableItemRef::ProductDefinitionContext(i) => {
12862                EntityKey::ProductDefinitionContext(*i)
12863            }
12864            GroupableItemRef::ProductDefinitionEffectivity(i) => {
12865                EntityKey::ProductDefinitionEffectivity(*i)
12866            }
12867            GroupableItemRef::ProductDefinitionFormation(i) => {
12868                EntityKey::ProductDefinitionFormation(*i)
12869            }
12870            GroupableItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => {
12871                EntityKey::ProductDefinitionFormationWithSpecifiedSource(*i)
12872            }
12873            GroupableItemRef::ProductDefinitionRelationship(i) => {
12874                EntityKey::ProductDefinitionRelationship(*i)
12875            }
12876            GroupableItemRef::ProductDefinitionShape(i) => EntityKey::ProductDefinitionShape(*i),
12877            GroupableItemRef::ProductDefinitionUsage(i) => EntityKey::ProductDefinitionUsage(*i),
12878            GroupableItemRef::ProductDefinitionWithAssociatedDocuments(i) => {
12879                EntityKey::ProductDefinitionWithAssociatedDocuments(*i)
12880            }
12881            GroupableItemRef::PropertyDefinition(i) => EntityKey::PropertyDefinition(*i),
12882            GroupableItemRef::PropertyDefinitionRepresentation(i) => {
12883                EntityKey::PropertyDefinitionRepresentation(*i)
12884            }
12885            GroupableItemRef::QualifiedRepresentationItem(i) => {
12886                EntityKey::QualifiedRepresentationItem(*i)
12887            }
12888            GroupableItemRef::QuasiUniformCurve(i) => EntityKey::QuasiUniformCurve(*i),
12889            GroupableItemRef::QuasiUniformSurface(i) => EntityKey::QuasiUniformSurface(*i),
12890            GroupableItemRef::RatioMeasureWithUnit(i) => EntityKey::RatioMeasureWithUnit(*i),
12891            GroupableItemRef::RatioUnit(i) => EntityKey::RatioUnit(*i),
12892            GroupableItemRef::RationalBSplineCurve(i) => EntityKey::RationalBSplineCurve(*i),
12893            GroupableItemRef::RationalBSplineSurface(i) => EntityKey::RationalBSplineSurface(*i),
12894            GroupableItemRef::RealRepresentationItem(i) => EntityKey::RealRepresentationItem(*i),
12895            GroupableItemRef::RepositionedTessellatedItem(i) => {
12896                EntityKey::RepositionedTessellatedItem(*i)
12897            }
12898            GroupableItemRef::Representation(i) => EntityKey::Representation(*i),
12899            GroupableItemRef::RepresentationContext(i) => EntityKey::RepresentationContext(*i),
12900            GroupableItemRef::RepresentationItem(i) => EntityKey::RepresentationItem(*i),
12901            GroupableItemRef::RepresentationRelationship(i) => {
12902                EntityKey::RepresentationRelationship(*i)
12903            }
12904            GroupableItemRef::RepresentationRelationshipWithTransformation(i) => {
12905                EntityKey::RepresentationRelationshipWithTransformation(*i)
12906            }
12907            GroupableItemRef::SeamCurve(i) => EntityKey::SeamCurve(*i),
12908            GroupableItemRef::SecurityClassification(i) => EntityKey::SecurityClassification(*i),
12909            GroupableItemRef::ShapeAspect(i) => EntityKey::ShapeAspect(*i),
12910            GroupableItemRef::ShapeAspectAssociativity(i) => {
12911                EntityKey::ShapeAspectAssociativity(*i)
12912            }
12913            GroupableItemRef::ShapeAspectDerivingRelationship(i) => {
12914                EntityKey::ShapeAspectDerivingRelationship(*i)
12915            }
12916            GroupableItemRef::ShapeAspectRelationship(i) => EntityKey::ShapeAspectRelationship(*i),
12917            GroupableItemRef::ShapeDefinitionRepresentation(i) => {
12918                EntityKey::ShapeDefinitionRepresentation(*i)
12919            }
12920            GroupableItemRef::ShapeDimensionRepresentation(i) => {
12921                EntityKey::ShapeDimensionRepresentation(*i)
12922            }
12923            GroupableItemRef::ShapeRepresentation(i) => EntityKey::ShapeRepresentation(*i),
12924            GroupableItemRef::ShapeRepresentationRelationship(i) => {
12925                EntityKey::ShapeRepresentationRelationship(*i)
12926            }
12927            GroupableItemRef::ShapeRepresentationWithParameters(i) => {
12928                EntityKey::ShapeRepresentationWithParameters(*i)
12929            }
12930            GroupableItemRef::ShellBasedSurfaceModel(i) => EntityKey::ShellBasedSurfaceModel(*i),
12931            GroupableItemRef::SiUnit(i) => EntityKey::SiUnit(*i),
12932            GroupableItemRef::SolidAngleUnit(i) => EntityKey::SolidAngleUnit(*i),
12933            GroupableItemRef::SolidModel(i) => EntityKey::SolidModel(*i),
12934            GroupableItemRef::SphericalSurface(i) => EntityKey::SphericalSurface(*i),
12935            GroupableItemRef::StateObserved(i) => EntityKey::StateObserved(*i),
12936            GroupableItemRef::StateType(i) => EntityKey::StateType(*i),
12937            GroupableItemRef::StyledItem(i) => EntityKey::StyledItem(*i),
12938            GroupableItemRef::Surface(i) => EntityKey::Surface(*i),
12939            GroupableItemRef::SurfaceCurve(i) => EntityKey::SurfaceCurve(*i),
12940            GroupableItemRef::SurfaceOfLinearExtrusion(i) => {
12941                EntityKey::SurfaceOfLinearExtrusion(*i)
12942            }
12943            GroupableItemRef::SurfaceOfRevolution(i) => EntityKey::SurfaceOfRevolution(*i),
12944            GroupableItemRef::SweptSurface(i) => EntityKey::SweptSurface(*i),
12945            GroupableItemRef::SymbolRepresentation(i) => EntityKey::SymbolRepresentation(*i),
12946            GroupableItemRef::SymbolTarget(i) => EntityKey::SymbolTarget(*i),
12947            GroupableItemRef::TerminatorSymbol(i) => EntityKey::TerminatorSymbol(*i),
12948            GroupableItemRef::TessellatedAnnotationOccurrence(i) => {
12949                EntityKey::TessellatedAnnotationOccurrence(*i)
12950            }
12951            GroupableItemRef::TessellatedCurveSet(i) => EntityKey::TessellatedCurveSet(*i),
12952            GroupableItemRef::TessellatedFace(i) => EntityKey::TessellatedFace(*i),
12953            GroupableItemRef::TessellatedGeometricSet(i) => EntityKey::TessellatedGeometricSet(*i),
12954            GroupableItemRef::TessellatedItem(i) => EntityKey::TessellatedItem(*i),
12955            GroupableItemRef::TessellatedShapeRepresentation(i) => {
12956                EntityKey::TessellatedShapeRepresentation(*i)
12957            }
12958            GroupableItemRef::TessellatedShell(i) => EntityKey::TessellatedShell(*i),
12959            GroupableItemRef::TessellatedSolid(i) => EntityKey::TessellatedSolid(*i),
12960            GroupableItemRef::TessellatedStructuredItem(i) => {
12961                EntityKey::TessellatedStructuredItem(*i)
12962            }
12963            GroupableItemRef::TessellatedSurfaceSet(i) => EntityKey::TessellatedSurfaceSet(*i),
12964            GroupableItemRef::TextLiteral(i) => EntityKey::TextLiteral(*i),
12965            GroupableItemRef::TimeUnit(i) => EntityKey::TimeUnit(*i),
12966            GroupableItemRef::ToleranceZone(i) => EntityKey::ToleranceZone(*i),
12967            GroupableItemRef::ToleranceZoneWithDatum(i) => EntityKey::ToleranceZoneWithDatum(*i),
12968            GroupableItemRef::TopologicalRepresentationItem(i) => {
12969                EntityKey::TopologicalRepresentationItem(*i)
12970            }
12971            GroupableItemRef::ToroidalSurface(i) => EntityKey::ToroidalSurface(*i),
12972            GroupableItemRef::TrimmedCurve(i) => EntityKey::TrimmedCurve(*i),
12973            GroupableItemRef::TwoDirectionRepeatFactor(i) => {
12974                EntityKey::TwoDirectionRepeatFactor(*i)
12975            }
12976            GroupableItemRef::TypeQualifier(i) => EntityKey::TypeQualifier(*i),
12977            GroupableItemRef::UncertaintyMeasureWithUnit(i) => {
12978                EntityKey::UncertaintyMeasureWithUnit(*i)
12979            }
12980            GroupableItemRef::UncertaintyQualifier(i) => EntityKey::UncertaintyQualifier(*i),
12981            GroupableItemRef::UniformCurve(i) => EntityKey::UniformCurve(*i),
12982            GroupableItemRef::UniformSurface(i) => EntityKey::UniformSurface(*i),
12983            GroupableItemRef::ValueRepresentationItem(i) => EntityKey::ValueRepresentationItem(*i),
12984            GroupableItemRef::Vector(i) => EntityKey::Vector(*i),
12985            GroupableItemRef::VersionedActionRequest(i) => EntityKey::VersionedActionRequest(*i),
12986            GroupableItemRef::Vertex(i) => EntityKey::Vertex(*i),
12987            GroupableItemRef::VertexLoop(i) => EntityKey::VertexLoop(*i),
12988            GroupableItemRef::VertexPoint(i) => EntityKey::VertexPoint(*i),
12989            GroupableItemRef::VertexShell(i) => EntityKey::VertexShell(*i),
12990            GroupableItemRef::VolumeUnit(i) => EntityKey::VolumeUnit(*i),
12991            GroupableItemRef::WireShell(i) => EntityKey::WireShell(*i),
12992            GroupableItemRef::Complex(i) => EntityKey::ComplexUnit(*i),
12993        }
12994    }
12995}
12996
12997#[derive(Clone, Copy, Debug)]
12998pub enum IdAttributeSelectRefView<'m> {
12999    Action(&'m Action),
13000    Address(&'m Address),
13001    AdvancedBrepShapeRepresentation(&'m AdvancedBrepShapeRepresentation),
13002    AdvancedFace(&'m AdvancedFace),
13003    AllAroundShapeAspect(&'m AllAroundShapeAspect),
13004    AngularLocation(&'m AngularLocation),
13005    AngularSize(&'m AngularSize),
13006    AngularityTolerance(&'m AngularityTolerance),
13007    ApplicationContext(&'m ApplicationContext),
13008    AscribableStateRelationship(&'m AscribableStateRelationship),
13009    CentreOfSymmetry(&'m CentreOfSymmetry),
13010    CharacterizedRepresentation(&'m CharacterizedRepresentation),
13011    CircularRunoutTolerance(&'m CircularRunoutTolerance),
13012    ClosedShell(&'m ClosedShell),
13013    CoaxialityTolerance(&'m CoaxialityTolerance),
13014    CommonDatum(&'m CommonDatum),
13015    CompositeGroupShapeAspect(&'m CompositeGroupShapeAspect),
13016    CompositeShapeAspect(&'m CompositeShapeAspect),
13017    ConcentricityTolerance(&'m ConcentricityTolerance),
13018    ConnectedFaceSet(&'m ConnectedFaceSet),
13019    ConstructiveGeometryRepresentation(&'m ConstructiveGeometryRepresentation),
13020    ContinuousShapeAspect(&'m ContinuousShapeAspect),
13021    CylindricityTolerance(&'m CylindricityTolerance),
13022    Datum(&'m Datum),
13023    DatumFeature(&'m DatumFeature),
13024    DatumReferenceCompartment(&'m DatumReferenceCompartment),
13025    DatumReferenceElement(&'m DatumReferenceElement),
13026    DatumSystem(&'m DatumSystem),
13027    DatumTarget(&'m DatumTarget),
13028    DefaultModelGeometricView(&'m DefaultModelGeometricView),
13029    DefinitionalRepresentation(&'m DefinitionalRepresentation),
13030    DerivedShapeAspect(&'m DerivedShapeAspect),
13031    DimensionalLocation(&'m DimensionalLocation),
13032    DimensionalLocationWithPath(&'m DimensionalLocationWithPath),
13033    DimensionalSize(&'m DimensionalSize),
13034    DimensionalSizeWithDatumFeature(&'m DimensionalSizeWithDatumFeature),
13035    DimensionalSizeWithPath(&'m DimensionalSizeWithPath),
13036    DirectedDimensionalLocation(&'m DirectedDimensionalLocation),
13037    DraughtingModel(&'m DraughtingModel),
13038    Edge(&'m Edge),
13039    EdgeCurve(&'m EdgeCurve),
13040    EdgeLoop(&'m EdgeLoop),
13041    Face(&'m Face),
13042    FaceBound(&'m FaceBound),
13043    FaceOuterBound(&'m FaceOuterBound),
13044    FaceSurface(&'m FaceSurface),
13045    FeatureForDatumTargetRelationship(&'m FeatureForDatumTargetRelationship),
13046    FlatnessTolerance(&'m FlatnessTolerance),
13047    GeneralDatumReference(&'m GeneralDatumReference),
13048    GeometricTolerance(&'m GeometricTolerance),
13049    GeometricToleranceWithDatumReference(&'m GeometricToleranceWithDatumReference),
13050    GeometricToleranceWithDefinedAreaUnit(&'m GeometricToleranceWithDefinedAreaUnit),
13051    GeometricToleranceWithDefinedUnit(&'m GeometricToleranceWithDefinedUnit),
13052    GeometricToleranceWithMaximumTolerance(&'m GeometricToleranceWithMaximumTolerance),
13053    GeometricToleranceWithModifiers(&'m GeometricToleranceWithModifiers),
13054    GeometricallyBoundedSurfaceShapeRepresentation(
13055        &'m GeometricallyBoundedSurfaceShapeRepresentation,
13056    ),
13057    GeometricallyBoundedWireframeShapeRepresentation(
13058        &'m GeometricallyBoundedWireframeShapeRepresentation,
13059    ),
13060    Group(&'m Group),
13061    LineProfileTolerance(&'m LineProfileTolerance),
13062    Loop(&'m Loop),
13063    ManifoldSurfaceShapeRepresentation(&'m ManifoldSurfaceShapeRepresentation),
13064    MechanicalDesignGeometricPresentationRepresentation(
13065        &'m MechanicalDesignGeometricPresentationRepresentation,
13066    ),
13067    MechanicalDesignPresentationRepresentationWithDraughting(
13068        &'m MechanicalDesignPresentationRepresentationWithDraughting,
13069    ),
13070    MechanicalDesignShadedPresentationRepresentation(
13071        &'m MechanicalDesignShadedPresentationRepresentation,
13072    ),
13073    ModifiedGeometricTolerance(&'m ModifiedGeometricTolerance),
13074    OpenShell(&'m OpenShell),
13075    OrganizationalAddress(&'m OrganizationalAddress),
13076    OrganizationalProject(&'m OrganizationalProject),
13077    OrientedClosedShell(&'m OrientedClosedShell),
13078    OrientedEdge(&'m OrientedEdge),
13079    ParallelismTolerance(&'m ParallelismTolerance),
13080    Path(&'m Path),
13081    PerpendicularityTolerance(&'m PerpendicularityTolerance),
13082    PersonAndOrganizationAddress(&'m PersonAndOrganizationAddress),
13083    PersonalAddress(&'m PersonalAddress),
13084    PlacedDatumTargetFeature(&'m PlacedDatumTargetFeature),
13085    PolyLoop(&'m PolyLoop),
13086    PositionTolerance(&'m PositionTolerance),
13087    PresentationArea(&'m PresentationArea),
13088    PresentationRepresentation(&'m PresentationRepresentation),
13089    PresentationView(&'m PresentationView),
13090    ProductCategory(&'m ProductCategory),
13091    ProductConceptFeatureCategory(&'m ProductConceptFeatureCategory),
13092    ProductDefinitionShape(&'m ProductDefinitionShape),
13093    ProductRelatedProductCategory(&'m ProductRelatedProductCategory),
13094    PropertyDefinition(&'m PropertyDefinition),
13095    Representation(&'m Representation),
13096    RoundnessTolerance(&'m RoundnessTolerance),
13097    ShapeAspect(&'m ShapeAspect),
13098    ShapeAspectAssociativity(&'m ShapeAspectAssociativity),
13099    ShapeAspectDerivingRelationship(&'m ShapeAspectDerivingRelationship),
13100    ShapeAspectRelationship(&'m ShapeAspectRelationship),
13101    ShapeDimensionRepresentation(&'m ShapeDimensionRepresentation),
13102    ShapeRepresentation(&'m ShapeRepresentation),
13103    ShapeRepresentationWithParameters(&'m ShapeRepresentationWithParameters),
13104    StraightnessTolerance(&'m StraightnessTolerance),
13105    SurfaceProfileTolerance(&'m SurfaceProfileTolerance),
13106    SymbolRepresentation(&'m SymbolRepresentation),
13107    SymmetryTolerance(&'m SymmetryTolerance),
13108    TessellatedShapeRepresentation(&'m TessellatedShapeRepresentation),
13109    ToleranceZone(&'m ToleranceZone),
13110    ToleranceZoneWithDatum(&'m ToleranceZoneWithDatum),
13111    TopologicalRepresentationItem(&'m TopologicalRepresentationItem),
13112    TotalRunoutTolerance(&'m TotalRunoutTolerance),
13113    UnequallyDisposedGeometricTolerance(&'m UnequallyDisposedGeometricTolerance),
13114    Vertex(&'m Vertex),
13115    VertexLoop(&'m VertexLoop),
13116    VertexPoint(&'m VertexPoint),
13117    VertexShell(&'m VertexShell),
13118    WireShell(&'m WireShell),
13119    Complex(&'m ComplexUnit),
13120}
13121impl IdAttributeSelectRef {
13122    pub fn resolve<'m>(&self, model: &'m StepModel) -> IdAttributeSelectRefView<'m> {
13123        match self {
13124            IdAttributeSelectRef::Action(i) => {
13125                IdAttributeSelectRefView::Action(model.action_arena.get(i.0))
13126            }
13127            IdAttributeSelectRef::Address(i) => {
13128                IdAttributeSelectRefView::Address(model.address_arena.get(i.0))
13129            }
13130            IdAttributeSelectRef::AdvancedBrepShapeRepresentation(i) => {
13131                IdAttributeSelectRefView::AdvancedBrepShapeRepresentation(
13132                    model.advanced_brep_shape_representation_arena.get(i.0),
13133                )
13134            }
13135            IdAttributeSelectRef::AdvancedFace(i) => {
13136                IdAttributeSelectRefView::AdvancedFace(model.advanced_face_arena.get(i.0))
13137            }
13138            IdAttributeSelectRef::AllAroundShapeAspect(i) => {
13139                IdAttributeSelectRefView::AllAroundShapeAspect(
13140                    model.all_around_shape_aspect_arena.get(i.0),
13141                )
13142            }
13143            IdAttributeSelectRef::AngularLocation(i) => {
13144                IdAttributeSelectRefView::AngularLocation(model.angular_location_arena.get(i.0))
13145            }
13146            IdAttributeSelectRef::AngularSize(i) => {
13147                IdAttributeSelectRefView::AngularSize(model.angular_size_arena.get(i.0))
13148            }
13149            IdAttributeSelectRef::AngularityTolerance(i) => {
13150                IdAttributeSelectRefView::AngularityTolerance(
13151                    model.angularity_tolerance_arena.get(i.0),
13152                )
13153            }
13154            IdAttributeSelectRef::ApplicationContext(i) => {
13155                IdAttributeSelectRefView::ApplicationContext(
13156                    model.application_context_arena.get(i.0),
13157                )
13158            }
13159            IdAttributeSelectRef::AscribableStateRelationship(i) => {
13160                IdAttributeSelectRefView::AscribableStateRelationship(
13161                    model.ascribable_state_relationship_arena.get(i.0),
13162                )
13163            }
13164            IdAttributeSelectRef::CentreOfSymmetry(i) => {
13165                IdAttributeSelectRefView::CentreOfSymmetry(model.centre_of_symmetry_arena.get(i.0))
13166            }
13167            IdAttributeSelectRef::CharacterizedRepresentation(i) => {
13168                IdAttributeSelectRefView::CharacterizedRepresentation(
13169                    model.characterized_representation_arena.get(i.0),
13170                )
13171            }
13172            IdAttributeSelectRef::CircularRunoutTolerance(i) => {
13173                IdAttributeSelectRefView::CircularRunoutTolerance(
13174                    model.circular_runout_tolerance_arena.get(i.0),
13175                )
13176            }
13177            IdAttributeSelectRef::ClosedShell(i) => {
13178                IdAttributeSelectRefView::ClosedShell(model.closed_shell_arena.get(i.0))
13179            }
13180            IdAttributeSelectRef::CoaxialityTolerance(i) => {
13181                IdAttributeSelectRefView::CoaxialityTolerance(
13182                    model.coaxiality_tolerance_arena.get(i.0),
13183                )
13184            }
13185            IdAttributeSelectRef::CommonDatum(i) => {
13186                IdAttributeSelectRefView::CommonDatum(model.common_datum_arena.get(i.0))
13187            }
13188            IdAttributeSelectRef::CompositeGroupShapeAspect(i) => {
13189                IdAttributeSelectRefView::CompositeGroupShapeAspect(
13190                    model.composite_group_shape_aspect_arena.get(i.0),
13191                )
13192            }
13193            IdAttributeSelectRef::CompositeShapeAspect(i) => {
13194                IdAttributeSelectRefView::CompositeShapeAspect(
13195                    model.composite_shape_aspect_arena.get(i.0),
13196                )
13197            }
13198            IdAttributeSelectRef::ConcentricityTolerance(i) => {
13199                IdAttributeSelectRefView::ConcentricityTolerance(
13200                    model.concentricity_tolerance_arena.get(i.0),
13201                )
13202            }
13203            IdAttributeSelectRef::ConnectedFaceSet(i) => {
13204                IdAttributeSelectRefView::ConnectedFaceSet(model.connected_face_set_arena.get(i.0))
13205            }
13206            IdAttributeSelectRef::ConstructiveGeometryRepresentation(i) => {
13207                IdAttributeSelectRefView::ConstructiveGeometryRepresentation(
13208                    model.constructive_geometry_representation_arena.get(i.0),
13209                )
13210            }
13211            IdAttributeSelectRef::ContinuousShapeAspect(i) => {
13212                IdAttributeSelectRefView::ContinuousShapeAspect(
13213                    model.continuous_shape_aspect_arena.get(i.0),
13214                )
13215            }
13216            IdAttributeSelectRef::CylindricityTolerance(i) => {
13217                IdAttributeSelectRefView::CylindricityTolerance(
13218                    model.cylindricity_tolerance_arena.get(i.0),
13219                )
13220            }
13221            IdAttributeSelectRef::Datum(i) => {
13222                IdAttributeSelectRefView::Datum(model.datum_arena.get(i.0))
13223            }
13224            IdAttributeSelectRef::DatumFeature(i) => {
13225                IdAttributeSelectRefView::DatumFeature(model.datum_feature_arena.get(i.0))
13226            }
13227            IdAttributeSelectRef::DatumReferenceCompartment(i) => {
13228                IdAttributeSelectRefView::DatumReferenceCompartment(
13229                    model.datum_reference_compartment_arena.get(i.0),
13230                )
13231            }
13232            IdAttributeSelectRef::DatumReferenceElement(i) => {
13233                IdAttributeSelectRefView::DatumReferenceElement(
13234                    model.datum_reference_element_arena.get(i.0),
13235                )
13236            }
13237            IdAttributeSelectRef::DatumSystem(i) => {
13238                IdAttributeSelectRefView::DatumSystem(model.datum_system_arena.get(i.0))
13239            }
13240            IdAttributeSelectRef::DatumTarget(i) => {
13241                IdAttributeSelectRefView::DatumTarget(model.datum_target_arena.get(i.0))
13242            }
13243            IdAttributeSelectRef::DefaultModelGeometricView(i) => {
13244                IdAttributeSelectRefView::DefaultModelGeometricView(
13245                    model.default_model_geometric_view_arena.get(i.0),
13246                )
13247            }
13248            IdAttributeSelectRef::DefinitionalRepresentation(i) => {
13249                IdAttributeSelectRefView::DefinitionalRepresentation(
13250                    model.definitional_representation_arena.get(i.0),
13251                )
13252            }
13253            IdAttributeSelectRef::DerivedShapeAspect(i) => {
13254                IdAttributeSelectRefView::DerivedShapeAspect(
13255                    model.derived_shape_aspect_arena.get(i.0),
13256                )
13257            }
13258            IdAttributeSelectRef::DimensionalLocation(i) => {
13259                IdAttributeSelectRefView::DimensionalLocation(
13260                    model.dimensional_location_arena.get(i.0),
13261                )
13262            }
13263            IdAttributeSelectRef::DimensionalLocationWithPath(i) => {
13264                IdAttributeSelectRefView::DimensionalLocationWithPath(
13265                    model.dimensional_location_with_path_arena.get(i.0),
13266                )
13267            }
13268            IdAttributeSelectRef::DimensionalSize(i) => {
13269                IdAttributeSelectRefView::DimensionalSize(model.dimensional_size_arena.get(i.0))
13270            }
13271            IdAttributeSelectRef::DimensionalSizeWithDatumFeature(i) => {
13272                IdAttributeSelectRefView::DimensionalSizeWithDatumFeature(
13273                    model.dimensional_size_with_datum_feature_arena.get(i.0),
13274                )
13275            }
13276            IdAttributeSelectRef::DimensionalSizeWithPath(i) => {
13277                IdAttributeSelectRefView::DimensionalSizeWithPath(
13278                    model.dimensional_size_with_path_arena.get(i.0),
13279                )
13280            }
13281            IdAttributeSelectRef::DirectedDimensionalLocation(i) => {
13282                IdAttributeSelectRefView::DirectedDimensionalLocation(
13283                    model.directed_dimensional_location_arena.get(i.0),
13284                )
13285            }
13286            IdAttributeSelectRef::DraughtingModel(i) => {
13287                IdAttributeSelectRefView::DraughtingModel(model.draughting_model_arena.get(i.0))
13288            }
13289            IdAttributeSelectRef::Edge(i) => {
13290                IdAttributeSelectRefView::Edge(model.edge_arena.get(i.0))
13291            }
13292            IdAttributeSelectRef::EdgeCurve(i) => {
13293                IdAttributeSelectRefView::EdgeCurve(model.edge_curve_arena.get(i.0))
13294            }
13295            IdAttributeSelectRef::EdgeLoop(i) => {
13296                IdAttributeSelectRefView::EdgeLoop(model.edge_loop_arena.get(i.0))
13297            }
13298            IdAttributeSelectRef::Face(i) => {
13299                IdAttributeSelectRefView::Face(model.face_arena.get(i.0))
13300            }
13301            IdAttributeSelectRef::FaceBound(i) => {
13302                IdAttributeSelectRefView::FaceBound(model.face_bound_arena.get(i.0))
13303            }
13304            IdAttributeSelectRef::FaceOuterBound(i) => {
13305                IdAttributeSelectRefView::FaceOuterBound(model.face_outer_bound_arena.get(i.0))
13306            }
13307            IdAttributeSelectRef::FaceSurface(i) => {
13308                IdAttributeSelectRefView::FaceSurface(model.face_surface_arena.get(i.0))
13309            }
13310            IdAttributeSelectRef::FeatureForDatumTargetRelationship(i) => {
13311                IdAttributeSelectRefView::FeatureForDatumTargetRelationship(
13312                    model.feature_for_datum_target_relationship_arena.get(i.0),
13313                )
13314            }
13315            IdAttributeSelectRef::FlatnessTolerance(i) => {
13316                IdAttributeSelectRefView::FlatnessTolerance(model.flatness_tolerance_arena.get(i.0))
13317            }
13318            IdAttributeSelectRef::GeneralDatumReference(i) => {
13319                IdAttributeSelectRefView::GeneralDatumReference(
13320                    model.general_datum_reference_arena.get(i.0),
13321                )
13322            }
13323            IdAttributeSelectRef::GeometricTolerance(i) => {
13324                IdAttributeSelectRefView::GeometricTolerance(
13325                    model.geometric_tolerance_arena.get(i.0),
13326                )
13327            }
13328            IdAttributeSelectRef::GeometricToleranceWithDatumReference(i) => {
13329                IdAttributeSelectRefView::GeometricToleranceWithDatumReference(
13330                    model
13331                        .geometric_tolerance_with_datum_reference_arena
13332                        .get(i.0),
13333                )
13334            }
13335            IdAttributeSelectRef::GeometricToleranceWithDefinedAreaUnit(i) => {
13336                IdAttributeSelectRefView::GeometricToleranceWithDefinedAreaUnit(
13337                    model
13338                        .geometric_tolerance_with_defined_area_unit_arena
13339                        .get(i.0),
13340                )
13341            }
13342            IdAttributeSelectRef::GeometricToleranceWithDefinedUnit(i) => {
13343                IdAttributeSelectRefView::GeometricToleranceWithDefinedUnit(
13344                    model.geometric_tolerance_with_defined_unit_arena.get(i.0),
13345                )
13346            }
13347            IdAttributeSelectRef::GeometricToleranceWithMaximumTolerance(i) => {
13348                IdAttributeSelectRefView::GeometricToleranceWithMaximumTolerance(
13349                    model
13350                        .geometric_tolerance_with_maximum_tolerance_arena
13351                        .get(i.0),
13352                )
13353            }
13354            IdAttributeSelectRef::GeometricToleranceWithModifiers(i) => {
13355                IdAttributeSelectRefView::GeometricToleranceWithModifiers(
13356                    model.geometric_tolerance_with_modifiers_arena.get(i.0),
13357                )
13358            }
13359            IdAttributeSelectRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => {
13360                IdAttributeSelectRefView::GeometricallyBoundedSurfaceShapeRepresentation(
13361                    model
13362                        .geometrically_bounded_surface_shape_representation_arena
13363                        .get(i.0),
13364                )
13365            }
13366            IdAttributeSelectRef::GeometricallyBoundedWireframeShapeRepresentation(i) => {
13367                IdAttributeSelectRefView::GeometricallyBoundedWireframeShapeRepresentation(
13368                    model
13369                        .geometrically_bounded_wireframe_shape_representation_arena
13370                        .get(i.0),
13371                )
13372            }
13373            IdAttributeSelectRef::Group(i) => {
13374                IdAttributeSelectRefView::Group(model.group_arena.get(i.0))
13375            }
13376            IdAttributeSelectRef::LineProfileTolerance(i) => {
13377                IdAttributeSelectRefView::LineProfileTolerance(
13378                    model.line_profile_tolerance_arena.get(i.0),
13379                )
13380            }
13381            IdAttributeSelectRef::Loop(i) => {
13382                IdAttributeSelectRefView::Loop(model.loop_arena.get(i.0))
13383            }
13384            IdAttributeSelectRef::ManifoldSurfaceShapeRepresentation(i) => {
13385                IdAttributeSelectRefView::ManifoldSurfaceShapeRepresentation(
13386                    model.manifold_surface_shape_representation_arena.get(i.0),
13387                )
13388            }
13389            IdAttributeSelectRef::MechanicalDesignGeometricPresentationRepresentation(i) => {
13390                IdAttributeSelectRefView::MechanicalDesignGeometricPresentationRepresentation(
13391                    model
13392                        .mechanical_design_geometric_presentation_representation_arena
13393                        .get(i.0),
13394                )
13395            }
13396            IdAttributeSelectRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => {
13397                IdAttributeSelectRefView::MechanicalDesignPresentationRepresentationWithDraughting(
13398                    model
13399                        .mechanical_design_presentation_representation_with_draughting_arena
13400                        .get(i.0),
13401                )
13402            }
13403            IdAttributeSelectRef::MechanicalDesignShadedPresentationRepresentation(i) => {
13404                IdAttributeSelectRefView::MechanicalDesignShadedPresentationRepresentation(
13405                    model
13406                        .mechanical_design_shaded_presentation_representation_arena
13407                        .get(i.0),
13408                )
13409            }
13410            IdAttributeSelectRef::ModifiedGeometricTolerance(i) => {
13411                IdAttributeSelectRefView::ModifiedGeometricTolerance(
13412                    model.modified_geometric_tolerance_arena.get(i.0),
13413                )
13414            }
13415            IdAttributeSelectRef::OpenShell(i) => {
13416                IdAttributeSelectRefView::OpenShell(model.open_shell_arena.get(i.0))
13417            }
13418            IdAttributeSelectRef::OrganizationalAddress(i) => {
13419                IdAttributeSelectRefView::OrganizationalAddress(
13420                    model.organizational_address_arena.get(i.0),
13421                )
13422            }
13423            IdAttributeSelectRef::OrganizationalProject(i) => {
13424                IdAttributeSelectRefView::OrganizationalProject(
13425                    model.organizational_project_arena.get(i.0),
13426                )
13427            }
13428            IdAttributeSelectRef::OrientedClosedShell(i) => {
13429                IdAttributeSelectRefView::OrientedClosedShell(
13430                    model.oriented_closed_shell_arena.get(i.0),
13431                )
13432            }
13433            IdAttributeSelectRef::OrientedEdge(i) => {
13434                IdAttributeSelectRefView::OrientedEdge(model.oriented_edge_arena.get(i.0))
13435            }
13436            IdAttributeSelectRef::ParallelismTolerance(i) => {
13437                IdAttributeSelectRefView::ParallelismTolerance(
13438                    model.parallelism_tolerance_arena.get(i.0),
13439                )
13440            }
13441            IdAttributeSelectRef::Path(i) => {
13442                IdAttributeSelectRefView::Path(model.path_arena.get(i.0))
13443            }
13444            IdAttributeSelectRef::PerpendicularityTolerance(i) => {
13445                IdAttributeSelectRefView::PerpendicularityTolerance(
13446                    model.perpendicularity_tolerance_arena.get(i.0),
13447                )
13448            }
13449            IdAttributeSelectRef::PersonAndOrganizationAddress(i) => {
13450                IdAttributeSelectRefView::PersonAndOrganizationAddress(
13451                    model.person_and_organization_address_arena.get(i.0),
13452                )
13453            }
13454            IdAttributeSelectRef::PersonalAddress(i) => {
13455                IdAttributeSelectRefView::PersonalAddress(model.personal_address_arena.get(i.0))
13456            }
13457            IdAttributeSelectRef::PlacedDatumTargetFeature(i) => {
13458                IdAttributeSelectRefView::PlacedDatumTargetFeature(
13459                    model.placed_datum_target_feature_arena.get(i.0),
13460                )
13461            }
13462            IdAttributeSelectRef::PolyLoop(i) => {
13463                IdAttributeSelectRefView::PolyLoop(model.poly_loop_arena.get(i.0))
13464            }
13465            IdAttributeSelectRef::PositionTolerance(i) => {
13466                IdAttributeSelectRefView::PositionTolerance(model.position_tolerance_arena.get(i.0))
13467            }
13468            IdAttributeSelectRef::PresentationArea(i) => {
13469                IdAttributeSelectRefView::PresentationArea(model.presentation_area_arena.get(i.0))
13470            }
13471            IdAttributeSelectRef::PresentationRepresentation(i) => {
13472                IdAttributeSelectRefView::PresentationRepresentation(
13473                    model.presentation_representation_arena.get(i.0),
13474                )
13475            }
13476            IdAttributeSelectRef::PresentationView(i) => {
13477                IdAttributeSelectRefView::PresentationView(model.presentation_view_arena.get(i.0))
13478            }
13479            IdAttributeSelectRef::ProductCategory(i) => {
13480                IdAttributeSelectRefView::ProductCategory(model.product_category_arena.get(i.0))
13481            }
13482            IdAttributeSelectRef::ProductConceptFeatureCategory(i) => {
13483                IdAttributeSelectRefView::ProductConceptFeatureCategory(
13484                    model.product_concept_feature_category_arena.get(i.0),
13485                )
13486            }
13487            IdAttributeSelectRef::ProductDefinitionShape(i) => {
13488                IdAttributeSelectRefView::ProductDefinitionShape(
13489                    model.product_definition_shape_arena.get(i.0),
13490                )
13491            }
13492            IdAttributeSelectRef::ProductRelatedProductCategory(i) => {
13493                IdAttributeSelectRefView::ProductRelatedProductCategory(
13494                    model.product_related_product_category_arena.get(i.0),
13495                )
13496            }
13497            IdAttributeSelectRef::PropertyDefinition(i) => {
13498                IdAttributeSelectRefView::PropertyDefinition(
13499                    model.property_definition_arena.get(i.0),
13500                )
13501            }
13502            IdAttributeSelectRef::Representation(i) => {
13503                IdAttributeSelectRefView::Representation(model.representation_arena.get(i.0))
13504            }
13505            IdAttributeSelectRef::RoundnessTolerance(i) => {
13506                IdAttributeSelectRefView::RoundnessTolerance(
13507                    model.roundness_tolerance_arena.get(i.0),
13508                )
13509            }
13510            IdAttributeSelectRef::ShapeAspect(i) => {
13511                IdAttributeSelectRefView::ShapeAspect(model.shape_aspect_arena.get(i.0))
13512            }
13513            IdAttributeSelectRef::ShapeAspectAssociativity(i) => {
13514                IdAttributeSelectRefView::ShapeAspectAssociativity(
13515                    model.shape_aspect_associativity_arena.get(i.0),
13516                )
13517            }
13518            IdAttributeSelectRef::ShapeAspectDerivingRelationship(i) => {
13519                IdAttributeSelectRefView::ShapeAspectDerivingRelationship(
13520                    model.shape_aspect_deriving_relationship_arena.get(i.0),
13521                )
13522            }
13523            IdAttributeSelectRef::ShapeAspectRelationship(i) => {
13524                IdAttributeSelectRefView::ShapeAspectRelationship(
13525                    model.shape_aspect_relationship_arena.get(i.0),
13526                )
13527            }
13528            IdAttributeSelectRef::ShapeDimensionRepresentation(i) => {
13529                IdAttributeSelectRefView::ShapeDimensionRepresentation(
13530                    model.shape_dimension_representation_arena.get(i.0),
13531                )
13532            }
13533            IdAttributeSelectRef::ShapeRepresentation(i) => {
13534                IdAttributeSelectRefView::ShapeRepresentation(
13535                    model.shape_representation_arena.get(i.0),
13536                )
13537            }
13538            IdAttributeSelectRef::ShapeRepresentationWithParameters(i) => {
13539                IdAttributeSelectRefView::ShapeRepresentationWithParameters(
13540                    model.shape_representation_with_parameters_arena.get(i.0),
13541                )
13542            }
13543            IdAttributeSelectRef::StraightnessTolerance(i) => {
13544                IdAttributeSelectRefView::StraightnessTolerance(
13545                    model.straightness_tolerance_arena.get(i.0),
13546                )
13547            }
13548            IdAttributeSelectRef::SurfaceProfileTolerance(i) => {
13549                IdAttributeSelectRefView::SurfaceProfileTolerance(
13550                    model.surface_profile_tolerance_arena.get(i.0),
13551                )
13552            }
13553            IdAttributeSelectRef::SymbolRepresentation(i) => {
13554                IdAttributeSelectRefView::SymbolRepresentation(
13555                    model.symbol_representation_arena.get(i.0),
13556                )
13557            }
13558            IdAttributeSelectRef::SymmetryTolerance(i) => {
13559                IdAttributeSelectRefView::SymmetryTolerance(model.symmetry_tolerance_arena.get(i.0))
13560            }
13561            IdAttributeSelectRef::TessellatedShapeRepresentation(i) => {
13562                IdAttributeSelectRefView::TessellatedShapeRepresentation(
13563                    model.tessellated_shape_representation_arena.get(i.0),
13564                )
13565            }
13566            IdAttributeSelectRef::ToleranceZone(i) => {
13567                IdAttributeSelectRefView::ToleranceZone(model.tolerance_zone_arena.get(i.0))
13568            }
13569            IdAttributeSelectRef::ToleranceZoneWithDatum(i) => {
13570                IdAttributeSelectRefView::ToleranceZoneWithDatum(
13571                    model.tolerance_zone_with_datum_arena.get(i.0),
13572                )
13573            }
13574            IdAttributeSelectRef::TopologicalRepresentationItem(i) => {
13575                IdAttributeSelectRefView::TopologicalRepresentationItem(
13576                    model.topological_representation_item_arena.get(i.0),
13577                )
13578            }
13579            IdAttributeSelectRef::TotalRunoutTolerance(i) => {
13580                IdAttributeSelectRefView::TotalRunoutTolerance(
13581                    model.total_runout_tolerance_arena.get(i.0),
13582                )
13583            }
13584            IdAttributeSelectRef::UnequallyDisposedGeometricTolerance(i) => {
13585                IdAttributeSelectRefView::UnequallyDisposedGeometricTolerance(
13586                    model.unequally_disposed_geometric_tolerance_arena.get(i.0),
13587                )
13588            }
13589            IdAttributeSelectRef::Vertex(i) => {
13590                IdAttributeSelectRefView::Vertex(model.vertex_arena.get(i.0))
13591            }
13592            IdAttributeSelectRef::VertexLoop(i) => {
13593                IdAttributeSelectRefView::VertexLoop(model.vertex_loop_arena.get(i.0))
13594            }
13595            IdAttributeSelectRef::VertexPoint(i) => {
13596                IdAttributeSelectRefView::VertexPoint(model.vertex_point_arena.get(i.0))
13597            }
13598            IdAttributeSelectRef::VertexShell(i) => {
13599                IdAttributeSelectRefView::VertexShell(model.vertex_shell_arena.get(i.0))
13600            }
13601            IdAttributeSelectRef::WireShell(i) => {
13602                IdAttributeSelectRefView::WireShell(model.wire_shell_arena.get(i.0))
13603            }
13604            IdAttributeSelectRef::Complex(i) => {
13605                IdAttributeSelectRefView::Complex(model.complex_unit_arena.get(i.0))
13606            }
13607        }
13608    }
13609    pub fn entity_key(&self) -> EntityKey {
13610        match self {
13611            IdAttributeSelectRef::Action(i) => EntityKey::Action(*i),
13612            IdAttributeSelectRef::Address(i) => EntityKey::Address(*i),
13613            IdAttributeSelectRef::AdvancedBrepShapeRepresentation(i) => {
13614                EntityKey::AdvancedBrepShapeRepresentation(*i)
13615            }
13616            IdAttributeSelectRef::AdvancedFace(i) => EntityKey::AdvancedFace(*i),
13617            IdAttributeSelectRef::AllAroundShapeAspect(i) => EntityKey::AllAroundShapeAspect(*i),
13618            IdAttributeSelectRef::AngularLocation(i) => EntityKey::AngularLocation(*i),
13619            IdAttributeSelectRef::AngularSize(i) => EntityKey::AngularSize(*i),
13620            IdAttributeSelectRef::AngularityTolerance(i) => EntityKey::AngularityTolerance(*i),
13621            IdAttributeSelectRef::ApplicationContext(i) => EntityKey::ApplicationContext(*i),
13622            IdAttributeSelectRef::AscribableStateRelationship(i) => {
13623                EntityKey::AscribableStateRelationship(*i)
13624            }
13625            IdAttributeSelectRef::CentreOfSymmetry(i) => EntityKey::CentreOfSymmetry(*i),
13626            IdAttributeSelectRef::CharacterizedRepresentation(i) => {
13627                EntityKey::CharacterizedRepresentation(*i)
13628            }
13629            IdAttributeSelectRef::CircularRunoutTolerance(i) => {
13630                EntityKey::CircularRunoutTolerance(*i)
13631            }
13632            IdAttributeSelectRef::ClosedShell(i) => EntityKey::ClosedShell(*i),
13633            IdAttributeSelectRef::CoaxialityTolerance(i) => EntityKey::CoaxialityTolerance(*i),
13634            IdAttributeSelectRef::CommonDatum(i) => EntityKey::CommonDatum(*i),
13635            IdAttributeSelectRef::CompositeGroupShapeAspect(i) => {
13636                EntityKey::CompositeGroupShapeAspect(*i)
13637            }
13638            IdAttributeSelectRef::CompositeShapeAspect(i) => EntityKey::CompositeShapeAspect(*i),
13639            IdAttributeSelectRef::ConcentricityTolerance(i) => {
13640                EntityKey::ConcentricityTolerance(*i)
13641            }
13642            IdAttributeSelectRef::ConnectedFaceSet(i) => EntityKey::ConnectedFaceSet(*i),
13643            IdAttributeSelectRef::ConstructiveGeometryRepresentation(i) => {
13644                EntityKey::ConstructiveGeometryRepresentation(*i)
13645            }
13646            IdAttributeSelectRef::ContinuousShapeAspect(i) => EntityKey::ContinuousShapeAspect(*i),
13647            IdAttributeSelectRef::CylindricityTolerance(i) => EntityKey::CylindricityTolerance(*i),
13648            IdAttributeSelectRef::Datum(i) => EntityKey::Datum(*i),
13649            IdAttributeSelectRef::DatumFeature(i) => EntityKey::DatumFeature(*i),
13650            IdAttributeSelectRef::DatumReferenceCompartment(i) => {
13651                EntityKey::DatumReferenceCompartment(*i)
13652            }
13653            IdAttributeSelectRef::DatumReferenceElement(i) => EntityKey::DatumReferenceElement(*i),
13654            IdAttributeSelectRef::DatumSystem(i) => EntityKey::DatumSystem(*i),
13655            IdAttributeSelectRef::DatumTarget(i) => EntityKey::DatumTarget(*i),
13656            IdAttributeSelectRef::DefaultModelGeometricView(i) => {
13657                EntityKey::DefaultModelGeometricView(*i)
13658            }
13659            IdAttributeSelectRef::DefinitionalRepresentation(i) => {
13660                EntityKey::DefinitionalRepresentation(*i)
13661            }
13662            IdAttributeSelectRef::DerivedShapeAspect(i) => EntityKey::DerivedShapeAspect(*i),
13663            IdAttributeSelectRef::DimensionalLocation(i) => EntityKey::DimensionalLocation(*i),
13664            IdAttributeSelectRef::DimensionalLocationWithPath(i) => {
13665                EntityKey::DimensionalLocationWithPath(*i)
13666            }
13667            IdAttributeSelectRef::DimensionalSize(i) => EntityKey::DimensionalSize(*i),
13668            IdAttributeSelectRef::DimensionalSizeWithDatumFeature(i) => {
13669                EntityKey::DimensionalSizeWithDatumFeature(*i)
13670            }
13671            IdAttributeSelectRef::DimensionalSizeWithPath(i) => {
13672                EntityKey::DimensionalSizeWithPath(*i)
13673            }
13674            IdAttributeSelectRef::DirectedDimensionalLocation(i) => {
13675                EntityKey::DirectedDimensionalLocation(*i)
13676            }
13677            IdAttributeSelectRef::DraughtingModel(i) => EntityKey::DraughtingModel(*i),
13678            IdAttributeSelectRef::Edge(i) => EntityKey::Edge(*i),
13679            IdAttributeSelectRef::EdgeCurve(i) => EntityKey::EdgeCurve(*i),
13680            IdAttributeSelectRef::EdgeLoop(i) => EntityKey::EdgeLoop(*i),
13681            IdAttributeSelectRef::Face(i) => EntityKey::Face(*i),
13682            IdAttributeSelectRef::FaceBound(i) => EntityKey::FaceBound(*i),
13683            IdAttributeSelectRef::FaceOuterBound(i) => EntityKey::FaceOuterBound(*i),
13684            IdAttributeSelectRef::FaceSurface(i) => EntityKey::FaceSurface(*i),
13685            IdAttributeSelectRef::FeatureForDatumTargetRelationship(i) => {
13686                EntityKey::FeatureForDatumTargetRelationship(*i)
13687            }
13688            IdAttributeSelectRef::FlatnessTolerance(i) => EntityKey::FlatnessTolerance(*i),
13689            IdAttributeSelectRef::GeneralDatumReference(i) => EntityKey::GeneralDatumReference(*i),
13690            IdAttributeSelectRef::GeometricTolerance(i) => EntityKey::GeometricTolerance(*i),
13691            IdAttributeSelectRef::GeometricToleranceWithDatumReference(i) => {
13692                EntityKey::GeometricToleranceWithDatumReference(*i)
13693            }
13694            IdAttributeSelectRef::GeometricToleranceWithDefinedAreaUnit(i) => {
13695                EntityKey::GeometricToleranceWithDefinedAreaUnit(*i)
13696            }
13697            IdAttributeSelectRef::GeometricToleranceWithDefinedUnit(i) => {
13698                EntityKey::GeometricToleranceWithDefinedUnit(*i)
13699            }
13700            IdAttributeSelectRef::GeometricToleranceWithMaximumTolerance(i) => {
13701                EntityKey::GeometricToleranceWithMaximumTolerance(*i)
13702            }
13703            IdAttributeSelectRef::GeometricToleranceWithModifiers(i) => {
13704                EntityKey::GeometricToleranceWithModifiers(*i)
13705            }
13706            IdAttributeSelectRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => {
13707                EntityKey::GeometricallyBoundedSurfaceShapeRepresentation(*i)
13708            }
13709            IdAttributeSelectRef::GeometricallyBoundedWireframeShapeRepresentation(i) => {
13710                EntityKey::GeometricallyBoundedWireframeShapeRepresentation(*i)
13711            }
13712            IdAttributeSelectRef::Group(i) => EntityKey::Group(*i),
13713            IdAttributeSelectRef::LineProfileTolerance(i) => EntityKey::LineProfileTolerance(*i),
13714            IdAttributeSelectRef::Loop(i) => EntityKey::Loop(*i),
13715            IdAttributeSelectRef::ManifoldSurfaceShapeRepresentation(i) => {
13716                EntityKey::ManifoldSurfaceShapeRepresentation(*i)
13717            }
13718            IdAttributeSelectRef::MechanicalDesignGeometricPresentationRepresentation(i) => {
13719                EntityKey::MechanicalDesignGeometricPresentationRepresentation(*i)
13720            }
13721            IdAttributeSelectRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => {
13722                EntityKey::MechanicalDesignPresentationRepresentationWithDraughting(*i)
13723            }
13724            IdAttributeSelectRef::MechanicalDesignShadedPresentationRepresentation(i) => {
13725                EntityKey::MechanicalDesignShadedPresentationRepresentation(*i)
13726            }
13727            IdAttributeSelectRef::ModifiedGeometricTolerance(i) => {
13728                EntityKey::ModifiedGeometricTolerance(*i)
13729            }
13730            IdAttributeSelectRef::OpenShell(i) => EntityKey::OpenShell(*i),
13731            IdAttributeSelectRef::OrganizationalAddress(i) => EntityKey::OrganizationalAddress(*i),
13732            IdAttributeSelectRef::OrganizationalProject(i) => EntityKey::OrganizationalProject(*i),
13733            IdAttributeSelectRef::OrientedClosedShell(i) => EntityKey::OrientedClosedShell(*i),
13734            IdAttributeSelectRef::OrientedEdge(i) => EntityKey::OrientedEdge(*i),
13735            IdAttributeSelectRef::ParallelismTolerance(i) => EntityKey::ParallelismTolerance(*i),
13736            IdAttributeSelectRef::Path(i) => EntityKey::Path(*i),
13737            IdAttributeSelectRef::PerpendicularityTolerance(i) => {
13738                EntityKey::PerpendicularityTolerance(*i)
13739            }
13740            IdAttributeSelectRef::PersonAndOrganizationAddress(i) => {
13741                EntityKey::PersonAndOrganizationAddress(*i)
13742            }
13743            IdAttributeSelectRef::PersonalAddress(i) => EntityKey::PersonalAddress(*i),
13744            IdAttributeSelectRef::PlacedDatumTargetFeature(i) => {
13745                EntityKey::PlacedDatumTargetFeature(*i)
13746            }
13747            IdAttributeSelectRef::PolyLoop(i) => EntityKey::PolyLoop(*i),
13748            IdAttributeSelectRef::PositionTolerance(i) => EntityKey::PositionTolerance(*i),
13749            IdAttributeSelectRef::PresentationArea(i) => EntityKey::PresentationArea(*i),
13750            IdAttributeSelectRef::PresentationRepresentation(i) => {
13751                EntityKey::PresentationRepresentation(*i)
13752            }
13753            IdAttributeSelectRef::PresentationView(i) => EntityKey::PresentationView(*i),
13754            IdAttributeSelectRef::ProductCategory(i) => EntityKey::ProductCategory(*i),
13755            IdAttributeSelectRef::ProductConceptFeatureCategory(i) => {
13756                EntityKey::ProductConceptFeatureCategory(*i)
13757            }
13758            IdAttributeSelectRef::ProductDefinitionShape(i) => {
13759                EntityKey::ProductDefinitionShape(*i)
13760            }
13761            IdAttributeSelectRef::ProductRelatedProductCategory(i) => {
13762                EntityKey::ProductRelatedProductCategory(*i)
13763            }
13764            IdAttributeSelectRef::PropertyDefinition(i) => EntityKey::PropertyDefinition(*i),
13765            IdAttributeSelectRef::Representation(i) => EntityKey::Representation(*i),
13766            IdAttributeSelectRef::RoundnessTolerance(i) => EntityKey::RoundnessTolerance(*i),
13767            IdAttributeSelectRef::ShapeAspect(i) => EntityKey::ShapeAspect(*i),
13768            IdAttributeSelectRef::ShapeAspectAssociativity(i) => {
13769                EntityKey::ShapeAspectAssociativity(*i)
13770            }
13771            IdAttributeSelectRef::ShapeAspectDerivingRelationship(i) => {
13772                EntityKey::ShapeAspectDerivingRelationship(*i)
13773            }
13774            IdAttributeSelectRef::ShapeAspectRelationship(i) => {
13775                EntityKey::ShapeAspectRelationship(*i)
13776            }
13777            IdAttributeSelectRef::ShapeDimensionRepresentation(i) => {
13778                EntityKey::ShapeDimensionRepresentation(*i)
13779            }
13780            IdAttributeSelectRef::ShapeRepresentation(i) => EntityKey::ShapeRepresentation(*i),
13781            IdAttributeSelectRef::ShapeRepresentationWithParameters(i) => {
13782                EntityKey::ShapeRepresentationWithParameters(*i)
13783            }
13784            IdAttributeSelectRef::StraightnessTolerance(i) => EntityKey::StraightnessTolerance(*i),
13785            IdAttributeSelectRef::SurfaceProfileTolerance(i) => {
13786                EntityKey::SurfaceProfileTolerance(*i)
13787            }
13788            IdAttributeSelectRef::SymbolRepresentation(i) => EntityKey::SymbolRepresentation(*i),
13789            IdAttributeSelectRef::SymmetryTolerance(i) => EntityKey::SymmetryTolerance(*i),
13790            IdAttributeSelectRef::TessellatedShapeRepresentation(i) => {
13791                EntityKey::TessellatedShapeRepresentation(*i)
13792            }
13793            IdAttributeSelectRef::ToleranceZone(i) => EntityKey::ToleranceZone(*i),
13794            IdAttributeSelectRef::ToleranceZoneWithDatum(i) => {
13795                EntityKey::ToleranceZoneWithDatum(*i)
13796            }
13797            IdAttributeSelectRef::TopologicalRepresentationItem(i) => {
13798                EntityKey::TopologicalRepresentationItem(*i)
13799            }
13800            IdAttributeSelectRef::TotalRunoutTolerance(i) => EntityKey::TotalRunoutTolerance(*i),
13801            IdAttributeSelectRef::UnequallyDisposedGeometricTolerance(i) => {
13802                EntityKey::UnequallyDisposedGeometricTolerance(*i)
13803            }
13804            IdAttributeSelectRef::Vertex(i) => EntityKey::Vertex(*i),
13805            IdAttributeSelectRef::VertexLoop(i) => EntityKey::VertexLoop(*i),
13806            IdAttributeSelectRef::VertexPoint(i) => EntityKey::VertexPoint(*i),
13807            IdAttributeSelectRef::VertexShell(i) => EntityKey::VertexShell(*i),
13808            IdAttributeSelectRef::WireShell(i) => EntityKey::WireShell(*i),
13809            IdAttributeSelectRef::Complex(i) => EntityKey::ComplexUnit(*i),
13810        }
13811    }
13812}
13813
13814#[derive(Clone, Copy, Debug)]
13815pub enum IdentificationRoleRefView<'m> {
13816    IdentificationRole(&'m IdentificationRole),
13817}
13818impl IdentificationRoleRef {
13819    pub fn resolve<'m>(&self, model: &'m StepModel) -> IdentificationRoleRefView<'m> {
13820        match self {
13821            IdentificationRoleRef::IdentificationRole(i) => {
13822                IdentificationRoleRefView::IdentificationRole(
13823                    model.identification_role_arena.get(i.0),
13824                )
13825            }
13826        }
13827    }
13828    pub fn entity_key(&self) -> EntityKey {
13829        match self {
13830            IdentificationRoleRef::IdentificationRole(i) => EntityKey::IdentificationRole(*i),
13831        }
13832    }
13833}
13834
13835#[derive(Clone, Copy, Debug)]
13836pub enum InvisibleItemRefView<'m> {
13837    AdvancedBrepShapeRepresentation(&'m AdvancedBrepShapeRepresentation),
13838    AnnotationCurveOccurrence(&'m AnnotationCurveOccurrence),
13839    AnnotationFillAreaOccurrence(&'m AnnotationFillAreaOccurrence),
13840    AnnotationOccurrence(&'m AnnotationOccurrence),
13841    AnnotationPlaceholderOccurrence(&'m AnnotationPlaceholderOccurrence),
13842    AnnotationPlaceholderOccurrenceWithLeaderLine(
13843        &'m AnnotationPlaceholderOccurrenceWithLeaderLine,
13844    ),
13845    AnnotationPlane(&'m AnnotationPlane),
13846    AnnotationSymbolOccurrence(&'m AnnotationSymbolOccurrence),
13847    AnnotationTextOccurrence(&'m AnnotationTextOccurrence),
13848    CharacterizedRepresentation(&'m CharacterizedRepresentation),
13849    ConstructiveGeometryRepresentation(&'m ConstructiveGeometryRepresentation),
13850    ContextDependentOverRidingStyledItem(&'m ContextDependentOverRidingStyledItem),
13851    DefinitionalRepresentation(&'m DefinitionalRepresentation),
13852    DraughtingAnnotationOccurrence(&'m DraughtingAnnotationOccurrence),
13853    DraughtingCallout(&'m DraughtingCallout),
13854    DraughtingModel(&'m DraughtingModel),
13855    GeometricallyBoundedSurfaceShapeRepresentation(
13856        &'m GeometricallyBoundedSurfaceShapeRepresentation,
13857    ),
13858    GeometricallyBoundedWireframeShapeRepresentation(
13859        &'m GeometricallyBoundedWireframeShapeRepresentation,
13860    ),
13861    LeaderCurve(&'m LeaderCurve),
13862    LeaderDirectedCallout(&'m LeaderDirectedCallout),
13863    LeaderTerminator(&'m LeaderTerminator),
13864    ManifoldSurfaceShapeRepresentation(&'m ManifoldSurfaceShapeRepresentation),
13865    MechanicalDesignGeometricPresentationRepresentation(
13866        &'m MechanicalDesignGeometricPresentationRepresentation,
13867    ),
13868    MechanicalDesignPresentationRepresentationWithDraughting(
13869        &'m MechanicalDesignPresentationRepresentationWithDraughting,
13870    ),
13871    MechanicalDesignShadedPresentationRepresentation(
13872        &'m MechanicalDesignShadedPresentationRepresentation,
13873    ),
13874    OverRidingStyledItem(&'m OverRidingStyledItem),
13875    PresentationArea(&'m PresentationArea),
13876    PresentationLayerAssignment(&'m PresentationLayerAssignment),
13877    PresentationRepresentation(&'m PresentationRepresentation),
13878    PresentationView(&'m PresentationView),
13879    Representation(&'m Representation),
13880    ShapeDimensionRepresentation(&'m ShapeDimensionRepresentation),
13881    ShapeRepresentation(&'m ShapeRepresentation),
13882    ShapeRepresentationWithParameters(&'m ShapeRepresentationWithParameters),
13883    StyledItem(&'m StyledItem),
13884    SymbolRepresentation(&'m SymbolRepresentation),
13885    TerminatorSymbol(&'m TerminatorSymbol),
13886    TessellatedAnnotationOccurrence(&'m TessellatedAnnotationOccurrence),
13887    TessellatedShapeRepresentation(&'m TessellatedShapeRepresentation),
13888    Complex(&'m ComplexUnit),
13889}
13890impl InvisibleItemRef {
13891    pub fn resolve<'m>(&self, model: &'m StepModel) -> InvisibleItemRefView<'m> {
13892        match self {
13893            InvisibleItemRef::AdvancedBrepShapeRepresentation(i) => {
13894                InvisibleItemRefView::AdvancedBrepShapeRepresentation(
13895                    model.advanced_brep_shape_representation_arena.get(i.0),
13896                )
13897            }
13898            InvisibleItemRef::AnnotationCurveOccurrence(i) => {
13899                InvisibleItemRefView::AnnotationCurveOccurrence(
13900                    model.annotation_curve_occurrence_arena.get(i.0),
13901                )
13902            }
13903            InvisibleItemRef::AnnotationFillAreaOccurrence(i) => {
13904                InvisibleItemRefView::AnnotationFillAreaOccurrence(
13905                    model.annotation_fill_area_occurrence_arena.get(i.0),
13906                )
13907            }
13908            InvisibleItemRef::AnnotationOccurrence(i) => {
13909                InvisibleItemRefView::AnnotationOccurrence(
13910                    model.annotation_occurrence_arena.get(i.0),
13911                )
13912            }
13913            InvisibleItemRef::AnnotationPlaceholderOccurrence(i) => {
13914                InvisibleItemRefView::AnnotationPlaceholderOccurrence(
13915                    model.annotation_placeholder_occurrence_arena.get(i.0),
13916                )
13917            }
13918            InvisibleItemRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => {
13919                InvisibleItemRefView::AnnotationPlaceholderOccurrenceWithLeaderLine(
13920                    model
13921                        .annotation_placeholder_occurrence_with_leader_line_arena
13922                        .get(i.0),
13923                )
13924            }
13925            InvisibleItemRef::AnnotationPlane(i) => {
13926                InvisibleItemRefView::AnnotationPlane(model.annotation_plane_arena.get(i.0))
13927            }
13928            InvisibleItemRef::AnnotationSymbolOccurrence(i) => {
13929                InvisibleItemRefView::AnnotationSymbolOccurrence(
13930                    model.annotation_symbol_occurrence_arena.get(i.0),
13931                )
13932            }
13933            InvisibleItemRef::AnnotationTextOccurrence(i) => {
13934                InvisibleItemRefView::AnnotationTextOccurrence(
13935                    model.annotation_text_occurrence_arena.get(i.0),
13936                )
13937            }
13938            InvisibleItemRef::CharacterizedRepresentation(i) => {
13939                InvisibleItemRefView::CharacterizedRepresentation(
13940                    model.characterized_representation_arena.get(i.0),
13941                )
13942            }
13943            InvisibleItemRef::ConstructiveGeometryRepresentation(i) => {
13944                InvisibleItemRefView::ConstructiveGeometryRepresentation(
13945                    model.constructive_geometry_representation_arena.get(i.0),
13946                )
13947            }
13948            InvisibleItemRef::ContextDependentOverRidingStyledItem(i) => {
13949                InvisibleItemRefView::ContextDependentOverRidingStyledItem(
13950                    model
13951                        .context_dependent_over_riding_styled_item_arena
13952                        .get(i.0),
13953                )
13954            }
13955            InvisibleItemRef::DefinitionalRepresentation(i) => {
13956                InvisibleItemRefView::DefinitionalRepresentation(
13957                    model.definitional_representation_arena.get(i.0),
13958                )
13959            }
13960            InvisibleItemRef::DraughtingAnnotationOccurrence(i) => {
13961                InvisibleItemRefView::DraughtingAnnotationOccurrence(
13962                    model.draughting_annotation_occurrence_arena.get(i.0),
13963                )
13964            }
13965            InvisibleItemRef::DraughtingCallout(i) => {
13966                InvisibleItemRefView::DraughtingCallout(model.draughting_callout_arena.get(i.0))
13967            }
13968            InvisibleItemRef::DraughtingModel(i) => {
13969                InvisibleItemRefView::DraughtingModel(model.draughting_model_arena.get(i.0))
13970            }
13971            InvisibleItemRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => {
13972                InvisibleItemRefView::GeometricallyBoundedSurfaceShapeRepresentation(
13973                    model
13974                        .geometrically_bounded_surface_shape_representation_arena
13975                        .get(i.0),
13976                )
13977            }
13978            InvisibleItemRef::GeometricallyBoundedWireframeShapeRepresentation(i) => {
13979                InvisibleItemRefView::GeometricallyBoundedWireframeShapeRepresentation(
13980                    model
13981                        .geometrically_bounded_wireframe_shape_representation_arena
13982                        .get(i.0),
13983                )
13984            }
13985            InvisibleItemRef::LeaderCurve(i) => {
13986                InvisibleItemRefView::LeaderCurve(model.leader_curve_arena.get(i.0))
13987            }
13988            InvisibleItemRef::LeaderDirectedCallout(i) => {
13989                InvisibleItemRefView::LeaderDirectedCallout(
13990                    model.leader_directed_callout_arena.get(i.0),
13991                )
13992            }
13993            InvisibleItemRef::LeaderTerminator(i) => {
13994                InvisibleItemRefView::LeaderTerminator(model.leader_terminator_arena.get(i.0))
13995            }
13996            InvisibleItemRef::ManifoldSurfaceShapeRepresentation(i) => {
13997                InvisibleItemRefView::ManifoldSurfaceShapeRepresentation(
13998                    model.manifold_surface_shape_representation_arena.get(i.0),
13999                )
14000            }
14001            InvisibleItemRef::MechanicalDesignGeometricPresentationRepresentation(i) => {
14002                InvisibleItemRefView::MechanicalDesignGeometricPresentationRepresentation(
14003                    model
14004                        .mechanical_design_geometric_presentation_representation_arena
14005                        .get(i.0),
14006                )
14007            }
14008            InvisibleItemRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => {
14009                InvisibleItemRefView::MechanicalDesignPresentationRepresentationWithDraughting(
14010                    model
14011                        .mechanical_design_presentation_representation_with_draughting_arena
14012                        .get(i.0),
14013                )
14014            }
14015            InvisibleItemRef::MechanicalDesignShadedPresentationRepresentation(i) => {
14016                InvisibleItemRefView::MechanicalDesignShadedPresentationRepresentation(
14017                    model
14018                        .mechanical_design_shaded_presentation_representation_arena
14019                        .get(i.0),
14020                )
14021            }
14022            InvisibleItemRef::OverRidingStyledItem(i) => {
14023                InvisibleItemRefView::OverRidingStyledItem(
14024                    model.over_riding_styled_item_arena.get(i.0),
14025                )
14026            }
14027            InvisibleItemRef::PresentationArea(i) => {
14028                InvisibleItemRefView::PresentationArea(model.presentation_area_arena.get(i.0))
14029            }
14030            InvisibleItemRef::PresentationLayerAssignment(i) => {
14031                InvisibleItemRefView::PresentationLayerAssignment(
14032                    model.presentation_layer_assignment_arena.get(i.0),
14033                )
14034            }
14035            InvisibleItemRef::PresentationRepresentation(i) => {
14036                InvisibleItemRefView::PresentationRepresentation(
14037                    model.presentation_representation_arena.get(i.0),
14038                )
14039            }
14040            InvisibleItemRef::PresentationView(i) => {
14041                InvisibleItemRefView::PresentationView(model.presentation_view_arena.get(i.0))
14042            }
14043            InvisibleItemRef::Representation(i) => {
14044                InvisibleItemRefView::Representation(model.representation_arena.get(i.0))
14045            }
14046            InvisibleItemRef::ShapeDimensionRepresentation(i) => {
14047                InvisibleItemRefView::ShapeDimensionRepresentation(
14048                    model.shape_dimension_representation_arena.get(i.0),
14049                )
14050            }
14051            InvisibleItemRef::ShapeRepresentation(i) => {
14052                InvisibleItemRefView::ShapeRepresentation(model.shape_representation_arena.get(i.0))
14053            }
14054            InvisibleItemRef::ShapeRepresentationWithParameters(i) => {
14055                InvisibleItemRefView::ShapeRepresentationWithParameters(
14056                    model.shape_representation_with_parameters_arena.get(i.0),
14057                )
14058            }
14059            InvisibleItemRef::StyledItem(i) => {
14060                InvisibleItemRefView::StyledItem(model.styled_item_arena.get(i.0))
14061            }
14062            InvisibleItemRef::SymbolRepresentation(i) => {
14063                InvisibleItemRefView::SymbolRepresentation(
14064                    model.symbol_representation_arena.get(i.0),
14065                )
14066            }
14067            InvisibleItemRef::TerminatorSymbol(i) => {
14068                InvisibleItemRefView::TerminatorSymbol(model.terminator_symbol_arena.get(i.0))
14069            }
14070            InvisibleItemRef::TessellatedAnnotationOccurrence(i) => {
14071                InvisibleItemRefView::TessellatedAnnotationOccurrence(
14072                    model.tessellated_annotation_occurrence_arena.get(i.0),
14073                )
14074            }
14075            InvisibleItemRef::TessellatedShapeRepresentation(i) => {
14076                InvisibleItemRefView::TessellatedShapeRepresentation(
14077                    model.tessellated_shape_representation_arena.get(i.0),
14078                )
14079            }
14080            InvisibleItemRef::Complex(i) => {
14081                InvisibleItemRefView::Complex(model.complex_unit_arena.get(i.0))
14082            }
14083        }
14084    }
14085    pub fn entity_key(&self) -> EntityKey {
14086        match self {
14087            InvisibleItemRef::AdvancedBrepShapeRepresentation(i) => {
14088                EntityKey::AdvancedBrepShapeRepresentation(*i)
14089            }
14090            InvisibleItemRef::AnnotationCurveOccurrence(i) => {
14091                EntityKey::AnnotationCurveOccurrence(*i)
14092            }
14093            InvisibleItemRef::AnnotationFillAreaOccurrence(i) => {
14094                EntityKey::AnnotationFillAreaOccurrence(*i)
14095            }
14096            InvisibleItemRef::AnnotationOccurrence(i) => EntityKey::AnnotationOccurrence(*i),
14097            InvisibleItemRef::AnnotationPlaceholderOccurrence(i) => {
14098                EntityKey::AnnotationPlaceholderOccurrence(*i)
14099            }
14100            InvisibleItemRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => {
14101                EntityKey::AnnotationPlaceholderOccurrenceWithLeaderLine(*i)
14102            }
14103            InvisibleItemRef::AnnotationPlane(i) => EntityKey::AnnotationPlane(*i),
14104            InvisibleItemRef::AnnotationSymbolOccurrence(i) => {
14105                EntityKey::AnnotationSymbolOccurrence(*i)
14106            }
14107            InvisibleItemRef::AnnotationTextOccurrence(i) => {
14108                EntityKey::AnnotationTextOccurrence(*i)
14109            }
14110            InvisibleItemRef::CharacterizedRepresentation(i) => {
14111                EntityKey::CharacterizedRepresentation(*i)
14112            }
14113            InvisibleItemRef::ConstructiveGeometryRepresentation(i) => {
14114                EntityKey::ConstructiveGeometryRepresentation(*i)
14115            }
14116            InvisibleItemRef::ContextDependentOverRidingStyledItem(i) => {
14117                EntityKey::ContextDependentOverRidingStyledItem(*i)
14118            }
14119            InvisibleItemRef::DefinitionalRepresentation(i) => {
14120                EntityKey::DefinitionalRepresentation(*i)
14121            }
14122            InvisibleItemRef::DraughtingAnnotationOccurrence(i) => {
14123                EntityKey::DraughtingAnnotationOccurrence(*i)
14124            }
14125            InvisibleItemRef::DraughtingCallout(i) => EntityKey::DraughtingCallout(*i),
14126            InvisibleItemRef::DraughtingModel(i) => EntityKey::DraughtingModel(*i),
14127            InvisibleItemRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => {
14128                EntityKey::GeometricallyBoundedSurfaceShapeRepresentation(*i)
14129            }
14130            InvisibleItemRef::GeometricallyBoundedWireframeShapeRepresentation(i) => {
14131                EntityKey::GeometricallyBoundedWireframeShapeRepresentation(*i)
14132            }
14133            InvisibleItemRef::LeaderCurve(i) => EntityKey::LeaderCurve(*i),
14134            InvisibleItemRef::LeaderDirectedCallout(i) => EntityKey::LeaderDirectedCallout(*i),
14135            InvisibleItemRef::LeaderTerminator(i) => EntityKey::LeaderTerminator(*i),
14136            InvisibleItemRef::ManifoldSurfaceShapeRepresentation(i) => {
14137                EntityKey::ManifoldSurfaceShapeRepresentation(*i)
14138            }
14139            InvisibleItemRef::MechanicalDesignGeometricPresentationRepresentation(i) => {
14140                EntityKey::MechanicalDesignGeometricPresentationRepresentation(*i)
14141            }
14142            InvisibleItemRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => {
14143                EntityKey::MechanicalDesignPresentationRepresentationWithDraughting(*i)
14144            }
14145            InvisibleItemRef::MechanicalDesignShadedPresentationRepresentation(i) => {
14146                EntityKey::MechanicalDesignShadedPresentationRepresentation(*i)
14147            }
14148            InvisibleItemRef::OverRidingStyledItem(i) => EntityKey::OverRidingStyledItem(*i),
14149            InvisibleItemRef::PresentationArea(i) => EntityKey::PresentationArea(*i),
14150            InvisibleItemRef::PresentationLayerAssignment(i) => {
14151                EntityKey::PresentationLayerAssignment(*i)
14152            }
14153            InvisibleItemRef::PresentationRepresentation(i) => {
14154                EntityKey::PresentationRepresentation(*i)
14155            }
14156            InvisibleItemRef::PresentationView(i) => EntityKey::PresentationView(*i),
14157            InvisibleItemRef::Representation(i) => EntityKey::Representation(*i),
14158            InvisibleItemRef::ShapeDimensionRepresentation(i) => {
14159                EntityKey::ShapeDimensionRepresentation(*i)
14160            }
14161            InvisibleItemRef::ShapeRepresentation(i) => EntityKey::ShapeRepresentation(*i),
14162            InvisibleItemRef::ShapeRepresentationWithParameters(i) => {
14163                EntityKey::ShapeRepresentationWithParameters(*i)
14164            }
14165            InvisibleItemRef::StyledItem(i) => EntityKey::StyledItem(*i),
14166            InvisibleItemRef::SymbolRepresentation(i) => EntityKey::SymbolRepresentation(*i),
14167            InvisibleItemRef::TerminatorSymbol(i) => EntityKey::TerminatorSymbol(*i),
14168            InvisibleItemRef::TessellatedAnnotationOccurrence(i) => {
14169                EntityKey::TessellatedAnnotationOccurrence(*i)
14170            }
14171            InvisibleItemRef::TessellatedShapeRepresentation(i) => {
14172                EntityKey::TessellatedShapeRepresentation(*i)
14173            }
14174            InvisibleItemRef::Complex(i) => EntityKey::ComplexUnit(*i),
14175        }
14176    }
14177}
14178
14179#[derive(Clone, Copy, Debug)]
14180pub enum ItemDefinedTransformationRefView<'m> {
14181    ItemDefinedTransformation(&'m ItemDefinedTransformation),
14182    Complex(&'m ComplexUnit),
14183}
14184impl ItemDefinedTransformationRef {
14185    pub fn resolve<'m>(&self, model: &'m StepModel) -> ItemDefinedTransformationRefView<'m> {
14186        match self {
14187            ItemDefinedTransformationRef::ItemDefinedTransformation(i) => {
14188                ItemDefinedTransformationRefView::ItemDefinedTransformation(
14189                    model.item_defined_transformation_arena.get(i.0),
14190                )
14191            }
14192            ItemDefinedTransformationRef::Complex(i) => {
14193                ItemDefinedTransformationRefView::Complex(model.complex_unit_arena.get(i.0))
14194            }
14195        }
14196    }
14197    pub fn entity_key(&self) -> EntityKey {
14198        match self {
14199            ItemDefinedTransformationRef::ItemDefinedTransformation(i) => {
14200                EntityKey::ItemDefinedTransformation(*i)
14201            }
14202            ItemDefinedTransformationRef::Complex(i) => EntityKey::ComplexUnit(*i),
14203        }
14204    }
14205}
14206
14207#[derive(Clone, Copy, Debug)]
14208pub enum ItemIdentifiedRepresentationUsageDefinitionRefView<'m> {
14209    AllAroundShapeAspect(&'m AllAroundShapeAspect),
14210    AngularLocation(&'m AngularLocation),
14211    AngularSize(&'m AngularSize),
14212    AngularityTolerance(&'m AngularityTolerance),
14213    AppliedApprovalAssignment(&'m AppliedApprovalAssignment),
14214    AppliedDateAndTimeAssignment(&'m AppliedDateAndTimeAssignment),
14215    AppliedDocumentReference(&'m AppliedDocumentReference),
14216    AppliedExternalIdentificationAssignment(&'m AppliedExternalIdentificationAssignment),
14217    AppliedGroupAssignment(&'m AppliedGroupAssignment),
14218    AppliedPersonAndOrganizationAssignment(&'m AppliedPersonAndOrganizationAssignment),
14219    AssemblyComponentUsage(&'m AssemblyComponentUsage),
14220    CentreOfSymmetry(&'m CentreOfSymmetry),
14221    CharacterizedItemWithinRepresentation(&'m CharacterizedItemWithinRepresentation),
14222    CharacterizedObject(&'m CharacterizedObject),
14223    CharacterizedRepresentation(&'m CharacterizedRepresentation),
14224    CircularRunoutTolerance(&'m CircularRunoutTolerance),
14225    CoaxialityTolerance(&'m CoaxialityTolerance),
14226    CommonDatum(&'m CommonDatum),
14227    CompositeGroupShapeAspect(&'m CompositeGroupShapeAspect),
14228    CompositeShapeAspect(&'m CompositeShapeAspect),
14229    ConcentricityTolerance(&'m ConcentricityTolerance),
14230    ContinuousShapeAspect(&'m ContinuousShapeAspect),
14231    CylindricityTolerance(&'m CylindricityTolerance),
14232    Datum(&'m Datum),
14233    DatumFeature(&'m DatumFeature),
14234    DatumReferenceCompartment(&'m DatumReferenceCompartment),
14235    DatumReferenceElement(&'m DatumReferenceElement),
14236    DatumSystem(&'m DatumSystem),
14237    DatumTarget(&'m DatumTarget),
14238    DefaultModelGeometricView(&'m DefaultModelGeometricView),
14239    DerivedShapeAspect(&'m DerivedShapeAspect),
14240    DimensionalLocation(&'m DimensionalLocation),
14241    DimensionalLocationWithPath(&'m DimensionalLocationWithPath),
14242    DimensionalSize(&'m DimensionalSize),
14243    DimensionalSizeWithDatumFeature(&'m DimensionalSizeWithDatumFeature),
14244    DimensionalSizeWithPath(&'m DimensionalSizeWithPath),
14245    DirectedDimensionalLocation(&'m DirectedDimensionalLocation),
14246    DocumentFile(&'m DocumentFile),
14247    FeatureForDatumTargetRelationship(&'m FeatureForDatumTargetRelationship),
14248    FlatnessTolerance(&'m FlatnessTolerance),
14249    GeneralDatumReference(&'m GeneralDatumReference),
14250    GeneralProperty(&'m GeneralProperty),
14251    GeometricTolerance(&'m GeometricTolerance),
14252    GeometricToleranceWithDatumReference(&'m GeometricToleranceWithDatumReference),
14253    GeometricToleranceWithDefinedAreaUnit(&'m GeometricToleranceWithDefinedAreaUnit),
14254    GeometricToleranceWithDefinedUnit(&'m GeometricToleranceWithDefinedUnit),
14255    GeometricToleranceWithMaximumTolerance(&'m GeometricToleranceWithMaximumTolerance),
14256    GeometricToleranceWithModifiers(&'m GeometricToleranceWithModifiers),
14257    LineProfileTolerance(&'m LineProfileTolerance),
14258    MakeFromUsageOption(&'m MakeFromUsageOption),
14259    ModelGeometricView(&'m ModelGeometricView),
14260    ModifiedGeometricTolerance(&'m ModifiedGeometricTolerance),
14261    NextAssemblyUsageOccurrence(&'m NextAssemblyUsageOccurrence),
14262    ParallelismTolerance(&'m ParallelismTolerance),
14263    PerpendicularityTolerance(&'m PerpendicularityTolerance),
14264    PlacedDatumTargetFeature(&'m PlacedDatumTargetFeature),
14265    PositionTolerance(&'m PositionTolerance),
14266    ProductDefinitionRelationship(&'m ProductDefinitionRelationship),
14267    ProductDefinitionShape(&'m ProductDefinitionShape),
14268    ProductDefinitionUsage(&'m ProductDefinitionUsage),
14269    PropertyDefinition(&'m PropertyDefinition),
14270    PropertyDefinitionRelationship(&'m PropertyDefinitionRelationship),
14271    RoundnessTolerance(&'m RoundnessTolerance),
14272    ShapeAspect(&'m ShapeAspect),
14273    ShapeAspectAssociativity(&'m ShapeAspectAssociativity),
14274    ShapeAspectDerivingRelationship(&'m ShapeAspectDerivingRelationship),
14275    ShapeAspectRelationship(&'m ShapeAspectRelationship),
14276    StraightnessTolerance(&'m StraightnessTolerance),
14277    SurfaceProfileTolerance(&'m SurfaceProfileTolerance),
14278    SymmetryTolerance(&'m SymmetryTolerance),
14279    ToleranceZone(&'m ToleranceZone),
14280    ToleranceZoneWithDatum(&'m ToleranceZoneWithDatum),
14281    TotalRunoutTolerance(&'m TotalRunoutTolerance),
14282    UnequallyDisposedGeometricTolerance(&'m UnequallyDisposedGeometricTolerance),
14283    Complex(&'m ComplexUnit),
14284}
14285impl ItemIdentifiedRepresentationUsageDefinitionRef {
14286    pub fn resolve<'m>(
14287        &self,
14288        model: &'m StepModel,
14289    ) -> ItemIdentifiedRepresentationUsageDefinitionRefView<'m> {
14290        match self {
14291            ItemIdentifiedRepresentationUsageDefinitionRef::AllAroundShapeAspect(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::AllAroundShapeAspect(model.all_around_shape_aspect_arena.get(i.0)),
14292            ItemIdentifiedRepresentationUsageDefinitionRef::AngularLocation(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::AngularLocation(model.angular_location_arena.get(i.0)),
14293            ItemIdentifiedRepresentationUsageDefinitionRef::AngularSize(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::AngularSize(model.angular_size_arena.get(i.0)),
14294            ItemIdentifiedRepresentationUsageDefinitionRef::AngularityTolerance(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::AngularityTolerance(model.angularity_tolerance_arena.get(i.0)),
14295            ItemIdentifiedRepresentationUsageDefinitionRef::AppliedApprovalAssignment(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::AppliedApprovalAssignment(model.applied_approval_assignment_arena.get(i.0)),
14296            ItemIdentifiedRepresentationUsageDefinitionRef::AppliedDateAndTimeAssignment(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::AppliedDateAndTimeAssignment(model.applied_date_and_time_assignment_arena.get(i.0)),
14297            ItemIdentifiedRepresentationUsageDefinitionRef::AppliedDocumentReference(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::AppliedDocumentReference(model.applied_document_reference_arena.get(i.0)),
14298            ItemIdentifiedRepresentationUsageDefinitionRef::AppliedExternalIdentificationAssignment(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::AppliedExternalIdentificationAssignment(model.applied_external_identification_assignment_arena.get(i.0)),
14299            ItemIdentifiedRepresentationUsageDefinitionRef::AppliedGroupAssignment(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::AppliedGroupAssignment(model.applied_group_assignment_arena.get(i.0)),
14300            ItemIdentifiedRepresentationUsageDefinitionRef::AppliedPersonAndOrganizationAssignment(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::AppliedPersonAndOrganizationAssignment(model.applied_person_and_organization_assignment_arena.get(i.0)),
14301            ItemIdentifiedRepresentationUsageDefinitionRef::AssemblyComponentUsage(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::AssemblyComponentUsage(model.assembly_component_usage_arena.get(i.0)),
14302            ItemIdentifiedRepresentationUsageDefinitionRef::CentreOfSymmetry(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::CentreOfSymmetry(model.centre_of_symmetry_arena.get(i.0)),
14303            ItemIdentifiedRepresentationUsageDefinitionRef::CharacterizedItemWithinRepresentation(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::CharacterizedItemWithinRepresentation(model.characterized_item_within_representation_arena.get(i.0)),
14304            ItemIdentifiedRepresentationUsageDefinitionRef::CharacterizedObject(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::CharacterizedObject(model.characterized_object_arena.get(i.0)),
14305            ItemIdentifiedRepresentationUsageDefinitionRef::CharacterizedRepresentation(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::CharacterizedRepresentation(model.characterized_representation_arena.get(i.0)),
14306            ItemIdentifiedRepresentationUsageDefinitionRef::CircularRunoutTolerance(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::CircularRunoutTolerance(model.circular_runout_tolerance_arena.get(i.0)),
14307            ItemIdentifiedRepresentationUsageDefinitionRef::CoaxialityTolerance(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::CoaxialityTolerance(model.coaxiality_tolerance_arena.get(i.0)),
14308            ItemIdentifiedRepresentationUsageDefinitionRef::CommonDatum(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::CommonDatum(model.common_datum_arena.get(i.0)),
14309            ItemIdentifiedRepresentationUsageDefinitionRef::CompositeGroupShapeAspect(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::CompositeGroupShapeAspect(model.composite_group_shape_aspect_arena.get(i.0)),
14310            ItemIdentifiedRepresentationUsageDefinitionRef::CompositeShapeAspect(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::CompositeShapeAspect(model.composite_shape_aspect_arena.get(i.0)),
14311            ItemIdentifiedRepresentationUsageDefinitionRef::ConcentricityTolerance(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::ConcentricityTolerance(model.concentricity_tolerance_arena.get(i.0)),
14312            ItemIdentifiedRepresentationUsageDefinitionRef::ContinuousShapeAspect(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::ContinuousShapeAspect(model.continuous_shape_aspect_arena.get(i.0)),
14313            ItemIdentifiedRepresentationUsageDefinitionRef::CylindricityTolerance(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::CylindricityTolerance(model.cylindricity_tolerance_arena.get(i.0)),
14314            ItemIdentifiedRepresentationUsageDefinitionRef::Datum(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::Datum(model.datum_arena.get(i.0)),
14315            ItemIdentifiedRepresentationUsageDefinitionRef::DatumFeature(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::DatumFeature(model.datum_feature_arena.get(i.0)),
14316            ItemIdentifiedRepresentationUsageDefinitionRef::DatumReferenceCompartment(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::DatumReferenceCompartment(model.datum_reference_compartment_arena.get(i.0)),
14317            ItemIdentifiedRepresentationUsageDefinitionRef::DatumReferenceElement(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::DatumReferenceElement(model.datum_reference_element_arena.get(i.0)),
14318            ItemIdentifiedRepresentationUsageDefinitionRef::DatumSystem(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::DatumSystem(model.datum_system_arena.get(i.0)),
14319            ItemIdentifiedRepresentationUsageDefinitionRef::DatumTarget(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::DatumTarget(model.datum_target_arena.get(i.0)),
14320            ItemIdentifiedRepresentationUsageDefinitionRef::DefaultModelGeometricView(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::DefaultModelGeometricView(model.default_model_geometric_view_arena.get(i.0)),
14321            ItemIdentifiedRepresentationUsageDefinitionRef::DerivedShapeAspect(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::DerivedShapeAspect(model.derived_shape_aspect_arena.get(i.0)),
14322            ItemIdentifiedRepresentationUsageDefinitionRef::DimensionalLocation(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::DimensionalLocation(model.dimensional_location_arena.get(i.0)),
14323            ItemIdentifiedRepresentationUsageDefinitionRef::DimensionalLocationWithPath(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::DimensionalLocationWithPath(model.dimensional_location_with_path_arena.get(i.0)),
14324            ItemIdentifiedRepresentationUsageDefinitionRef::DimensionalSize(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::DimensionalSize(model.dimensional_size_arena.get(i.0)),
14325            ItemIdentifiedRepresentationUsageDefinitionRef::DimensionalSizeWithDatumFeature(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::DimensionalSizeWithDatumFeature(model.dimensional_size_with_datum_feature_arena.get(i.0)),
14326            ItemIdentifiedRepresentationUsageDefinitionRef::DimensionalSizeWithPath(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::DimensionalSizeWithPath(model.dimensional_size_with_path_arena.get(i.0)),
14327            ItemIdentifiedRepresentationUsageDefinitionRef::DirectedDimensionalLocation(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::DirectedDimensionalLocation(model.directed_dimensional_location_arena.get(i.0)),
14328            ItemIdentifiedRepresentationUsageDefinitionRef::DocumentFile(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::DocumentFile(model.document_file_arena.get(i.0)),
14329            ItemIdentifiedRepresentationUsageDefinitionRef::FeatureForDatumTargetRelationship(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::FeatureForDatumTargetRelationship(model.feature_for_datum_target_relationship_arena.get(i.0)),
14330            ItemIdentifiedRepresentationUsageDefinitionRef::FlatnessTolerance(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::FlatnessTolerance(model.flatness_tolerance_arena.get(i.0)),
14331            ItemIdentifiedRepresentationUsageDefinitionRef::GeneralDatumReference(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::GeneralDatumReference(model.general_datum_reference_arena.get(i.0)),
14332            ItemIdentifiedRepresentationUsageDefinitionRef::GeneralProperty(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::GeneralProperty(model.general_property_arena.get(i.0)),
14333            ItemIdentifiedRepresentationUsageDefinitionRef::GeometricTolerance(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::GeometricTolerance(model.geometric_tolerance_arena.get(i.0)),
14334            ItemIdentifiedRepresentationUsageDefinitionRef::GeometricToleranceWithDatumReference(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::GeometricToleranceWithDatumReference(model.geometric_tolerance_with_datum_reference_arena.get(i.0)),
14335            ItemIdentifiedRepresentationUsageDefinitionRef::GeometricToleranceWithDefinedAreaUnit(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::GeometricToleranceWithDefinedAreaUnit(model.geometric_tolerance_with_defined_area_unit_arena.get(i.0)),
14336            ItemIdentifiedRepresentationUsageDefinitionRef::GeometricToleranceWithDefinedUnit(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::GeometricToleranceWithDefinedUnit(model.geometric_tolerance_with_defined_unit_arena.get(i.0)),
14337            ItemIdentifiedRepresentationUsageDefinitionRef::GeometricToleranceWithMaximumTolerance(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::GeometricToleranceWithMaximumTolerance(model.geometric_tolerance_with_maximum_tolerance_arena.get(i.0)),
14338            ItemIdentifiedRepresentationUsageDefinitionRef::GeometricToleranceWithModifiers(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::GeometricToleranceWithModifiers(model.geometric_tolerance_with_modifiers_arena.get(i.0)),
14339            ItemIdentifiedRepresentationUsageDefinitionRef::LineProfileTolerance(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::LineProfileTolerance(model.line_profile_tolerance_arena.get(i.0)),
14340            ItemIdentifiedRepresentationUsageDefinitionRef::MakeFromUsageOption(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::MakeFromUsageOption(model.make_from_usage_option_arena.get(i.0)),
14341            ItemIdentifiedRepresentationUsageDefinitionRef::ModelGeometricView(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::ModelGeometricView(model.model_geometric_view_arena.get(i.0)),
14342            ItemIdentifiedRepresentationUsageDefinitionRef::ModifiedGeometricTolerance(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::ModifiedGeometricTolerance(model.modified_geometric_tolerance_arena.get(i.0)),
14343            ItemIdentifiedRepresentationUsageDefinitionRef::NextAssemblyUsageOccurrence(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::NextAssemblyUsageOccurrence(model.next_assembly_usage_occurrence_arena.get(i.0)),
14344            ItemIdentifiedRepresentationUsageDefinitionRef::ParallelismTolerance(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::ParallelismTolerance(model.parallelism_tolerance_arena.get(i.0)),
14345            ItemIdentifiedRepresentationUsageDefinitionRef::PerpendicularityTolerance(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::PerpendicularityTolerance(model.perpendicularity_tolerance_arena.get(i.0)),
14346            ItemIdentifiedRepresentationUsageDefinitionRef::PlacedDatumTargetFeature(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::PlacedDatumTargetFeature(model.placed_datum_target_feature_arena.get(i.0)),
14347            ItemIdentifiedRepresentationUsageDefinitionRef::PositionTolerance(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::PositionTolerance(model.position_tolerance_arena.get(i.0)),
14348            ItemIdentifiedRepresentationUsageDefinitionRef::ProductDefinitionRelationship(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::ProductDefinitionRelationship(model.product_definition_relationship_arena.get(i.0)),
14349            ItemIdentifiedRepresentationUsageDefinitionRef::ProductDefinitionShape(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::ProductDefinitionShape(model.product_definition_shape_arena.get(i.0)),
14350            ItemIdentifiedRepresentationUsageDefinitionRef::ProductDefinitionUsage(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::ProductDefinitionUsage(model.product_definition_usage_arena.get(i.0)),
14351            ItemIdentifiedRepresentationUsageDefinitionRef::PropertyDefinition(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::PropertyDefinition(model.property_definition_arena.get(i.0)),
14352            ItemIdentifiedRepresentationUsageDefinitionRef::PropertyDefinitionRelationship(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::PropertyDefinitionRelationship(model.property_definition_relationship_arena.get(i.0)),
14353            ItemIdentifiedRepresentationUsageDefinitionRef::RoundnessTolerance(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::RoundnessTolerance(model.roundness_tolerance_arena.get(i.0)),
14354            ItemIdentifiedRepresentationUsageDefinitionRef::ShapeAspect(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::ShapeAspect(model.shape_aspect_arena.get(i.0)),
14355            ItemIdentifiedRepresentationUsageDefinitionRef::ShapeAspectAssociativity(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::ShapeAspectAssociativity(model.shape_aspect_associativity_arena.get(i.0)),
14356            ItemIdentifiedRepresentationUsageDefinitionRef::ShapeAspectDerivingRelationship(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::ShapeAspectDerivingRelationship(model.shape_aspect_deriving_relationship_arena.get(i.0)),
14357            ItemIdentifiedRepresentationUsageDefinitionRef::ShapeAspectRelationship(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::ShapeAspectRelationship(model.shape_aspect_relationship_arena.get(i.0)),
14358            ItemIdentifiedRepresentationUsageDefinitionRef::StraightnessTolerance(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::StraightnessTolerance(model.straightness_tolerance_arena.get(i.0)),
14359            ItemIdentifiedRepresentationUsageDefinitionRef::SurfaceProfileTolerance(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::SurfaceProfileTolerance(model.surface_profile_tolerance_arena.get(i.0)),
14360            ItemIdentifiedRepresentationUsageDefinitionRef::SymmetryTolerance(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::SymmetryTolerance(model.symmetry_tolerance_arena.get(i.0)),
14361            ItemIdentifiedRepresentationUsageDefinitionRef::ToleranceZone(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::ToleranceZone(model.tolerance_zone_arena.get(i.0)),
14362            ItemIdentifiedRepresentationUsageDefinitionRef::ToleranceZoneWithDatum(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::ToleranceZoneWithDatum(model.tolerance_zone_with_datum_arena.get(i.0)),
14363            ItemIdentifiedRepresentationUsageDefinitionRef::TotalRunoutTolerance(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::TotalRunoutTolerance(model.total_runout_tolerance_arena.get(i.0)),
14364            ItemIdentifiedRepresentationUsageDefinitionRef::UnequallyDisposedGeometricTolerance(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::UnequallyDisposedGeometricTolerance(model.unequally_disposed_geometric_tolerance_arena.get(i.0)),
14365            ItemIdentifiedRepresentationUsageDefinitionRef::Complex(i) => ItemIdentifiedRepresentationUsageDefinitionRefView::Complex(model.complex_unit_arena.get(i.0)),
14366        }
14367    }
14368    pub fn entity_key(&self) -> EntityKey {
14369        match self {
14370            ItemIdentifiedRepresentationUsageDefinitionRef::AllAroundShapeAspect(i) => EntityKey::AllAroundShapeAspect(*i),
14371            ItemIdentifiedRepresentationUsageDefinitionRef::AngularLocation(i) => EntityKey::AngularLocation(*i),
14372            ItemIdentifiedRepresentationUsageDefinitionRef::AngularSize(i) => EntityKey::AngularSize(*i),
14373            ItemIdentifiedRepresentationUsageDefinitionRef::AngularityTolerance(i) => EntityKey::AngularityTolerance(*i),
14374            ItemIdentifiedRepresentationUsageDefinitionRef::AppliedApprovalAssignment(i) => EntityKey::AppliedApprovalAssignment(*i),
14375            ItemIdentifiedRepresentationUsageDefinitionRef::AppliedDateAndTimeAssignment(i) => EntityKey::AppliedDateAndTimeAssignment(*i),
14376            ItemIdentifiedRepresentationUsageDefinitionRef::AppliedDocumentReference(i) => EntityKey::AppliedDocumentReference(*i),
14377            ItemIdentifiedRepresentationUsageDefinitionRef::AppliedExternalIdentificationAssignment(i) => EntityKey::AppliedExternalIdentificationAssignment(*i),
14378            ItemIdentifiedRepresentationUsageDefinitionRef::AppliedGroupAssignment(i) => EntityKey::AppliedGroupAssignment(*i),
14379            ItemIdentifiedRepresentationUsageDefinitionRef::AppliedPersonAndOrganizationAssignment(i) => EntityKey::AppliedPersonAndOrganizationAssignment(*i),
14380            ItemIdentifiedRepresentationUsageDefinitionRef::AssemblyComponentUsage(i) => EntityKey::AssemblyComponentUsage(*i),
14381            ItemIdentifiedRepresentationUsageDefinitionRef::CentreOfSymmetry(i) => EntityKey::CentreOfSymmetry(*i),
14382            ItemIdentifiedRepresentationUsageDefinitionRef::CharacterizedItemWithinRepresentation(i) => EntityKey::CharacterizedItemWithinRepresentation(*i),
14383            ItemIdentifiedRepresentationUsageDefinitionRef::CharacterizedObject(i) => EntityKey::CharacterizedObject(*i),
14384            ItemIdentifiedRepresentationUsageDefinitionRef::CharacterizedRepresentation(i) => EntityKey::CharacterizedRepresentation(*i),
14385            ItemIdentifiedRepresentationUsageDefinitionRef::CircularRunoutTolerance(i) => EntityKey::CircularRunoutTolerance(*i),
14386            ItemIdentifiedRepresentationUsageDefinitionRef::CoaxialityTolerance(i) => EntityKey::CoaxialityTolerance(*i),
14387            ItemIdentifiedRepresentationUsageDefinitionRef::CommonDatum(i) => EntityKey::CommonDatum(*i),
14388            ItemIdentifiedRepresentationUsageDefinitionRef::CompositeGroupShapeAspect(i) => EntityKey::CompositeGroupShapeAspect(*i),
14389            ItemIdentifiedRepresentationUsageDefinitionRef::CompositeShapeAspect(i) => EntityKey::CompositeShapeAspect(*i),
14390            ItemIdentifiedRepresentationUsageDefinitionRef::ConcentricityTolerance(i) => EntityKey::ConcentricityTolerance(*i),
14391            ItemIdentifiedRepresentationUsageDefinitionRef::ContinuousShapeAspect(i) => EntityKey::ContinuousShapeAspect(*i),
14392            ItemIdentifiedRepresentationUsageDefinitionRef::CylindricityTolerance(i) => EntityKey::CylindricityTolerance(*i),
14393            ItemIdentifiedRepresentationUsageDefinitionRef::Datum(i) => EntityKey::Datum(*i),
14394            ItemIdentifiedRepresentationUsageDefinitionRef::DatumFeature(i) => EntityKey::DatumFeature(*i),
14395            ItemIdentifiedRepresentationUsageDefinitionRef::DatumReferenceCompartment(i) => EntityKey::DatumReferenceCompartment(*i),
14396            ItemIdentifiedRepresentationUsageDefinitionRef::DatumReferenceElement(i) => EntityKey::DatumReferenceElement(*i),
14397            ItemIdentifiedRepresentationUsageDefinitionRef::DatumSystem(i) => EntityKey::DatumSystem(*i),
14398            ItemIdentifiedRepresentationUsageDefinitionRef::DatumTarget(i) => EntityKey::DatumTarget(*i),
14399            ItemIdentifiedRepresentationUsageDefinitionRef::DefaultModelGeometricView(i) => EntityKey::DefaultModelGeometricView(*i),
14400            ItemIdentifiedRepresentationUsageDefinitionRef::DerivedShapeAspect(i) => EntityKey::DerivedShapeAspect(*i),
14401            ItemIdentifiedRepresentationUsageDefinitionRef::DimensionalLocation(i) => EntityKey::DimensionalLocation(*i),
14402            ItemIdentifiedRepresentationUsageDefinitionRef::DimensionalLocationWithPath(i) => EntityKey::DimensionalLocationWithPath(*i),
14403            ItemIdentifiedRepresentationUsageDefinitionRef::DimensionalSize(i) => EntityKey::DimensionalSize(*i),
14404            ItemIdentifiedRepresentationUsageDefinitionRef::DimensionalSizeWithDatumFeature(i) => EntityKey::DimensionalSizeWithDatumFeature(*i),
14405            ItemIdentifiedRepresentationUsageDefinitionRef::DimensionalSizeWithPath(i) => EntityKey::DimensionalSizeWithPath(*i),
14406            ItemIdentifiedRepresentationUsageDefinitionRef::DirectedDimensionalLocation(i) => EntityKey::DirectedDimensionalLocation(*i),
14407            ItemIdentifiedRepresentationUsageDefinitionRef::DocumentFile(i) => EntityKey::DocumentFile(*i),
14408            ItemIdentifiedRepresentationUsageDefinitionRef::FeatureForDatumTargetRelationship(i) => EntityKey::FeatureForDatumTargetRelationship(*i),
14409            ItemIdentifiedRepresentationUsageDefinitionRef::FlatnessTolerance(i) => EntityKey::FlatnessTolerance(*i),
14410            ItemIdentifiedRepresentationUsageDefinitionRef::GeneralDatumReference(i) => EntityKey::GeneralDatumReference(*i),
14411            ItemIdentifiedRepresentationUsageDefinitionRef::GeneralProperty(i) => EntityKey::GeneralProperty(*i),
14412            ItemIdentifiedRepresentationUsageDefinitionRef::GeometricTolerance(i) => EntityKey::GeometricTolerance(*i),
14413            ItemIdentifiedRepresentationUsageDefinitionRef::GeometricToleranceWithDatumReference(i) => EntityKey::GeometricToleranceWithDatumReference(*i),
14414            ItemIdentifiedRepresentationUsageDefinitionRef::GeometricToleranceWithDefinedAreaUnit(i) => EntityKey::GeometricToleranceWithDefinedAreaUnit(*i),
14415            ItemIdentifiedRepresentationUsageDefinitionRef::GeometricToleranceWithDefinedUnit(i) => EntityKey::GeometricToleranceWithDefinedUnit(*i),
14416            ItemIdentifiedRepresentationUsageDefinitionRef::GeometricToleranceWithMaximumTolerance(i) => EntityKey::GeometricToleranceWithMaximumTolerance(*i),
14417            ItemIdentifiedRepresentationUsageDefinitionRef::GeometricToleranceWithModifiers(i) => EntityKey::GeometricToleranceWithModifiers(*i),
14418            ItemIdentifiedRepresentationUsageDefinitionRef::LineProfileTolerance(i) => EntityKey::LineProfileTolerance(*i),
14419            ItemIdentifiedRepresentationUsageDefinitionRef::MakeFromUsageOption(i) => EntityKey::MakeFromUsageOption(*i),
14420            ItemIdentifiedRepresentationUsageDefinitionRef::ModelGeometricView(i) => EntityKey::ModelGeometricView(*i),
14421            ItemIdentifiedRepresentationUsageDefinitionRef::ModifiedGeometricTolerance(i) => EntityKey::ModifiedGeometricTolerance(*i),
14422            ItemIdentifiedRepresentationUsageDefinitionRef::NextAssemblyUsageOccurrence(i) => EntityKey::NextAssemblyUsageOccurrence(*i),
14423            ItemIdentifiedRepresentationUsageDefinitionRef::ParallelismTolerance(i) => EntityKey::ParallelismTolerance(*i),
14424            ItemIdentifiedRepresentationUsageDefinitionRef::PerpendicularityTolerance(i) => EntityKey::PerpendicularityTolerance(*i),
14425            ItemIdentifiedRepresentationUsageDefinitionRef::PlacedDatumTargetFeature(i) => EntityKey::PlacedDatumTargetFeature(*i),
14426            ItemIdentifiedRepresentationUsageDefinitionRef::PositionTolerance(i) => EntityKey::PositionTolerance(*i),
14427            ItemIdentifiedRepresentationUsageDefinitionRef::ProductDefinitionRelationship(i) => EntityKey::ProductDefinitionRelationship(*i),
14428            ItemIdentifiedRepresentationUsageDefinitionRef::ProductDefinitionShape(i) => EntityKey::ProductDefinitionShape(*i),
14429            ItemIdentifiedRepresentationUsageDefinitionRef::ProductDefinitionUsage(i) => EntityKey::ProductDefinitionUsage(*i),
14430            ItemIdentifiedRepresentationUsageDefinitionRef::PropertyDefinition(i) => EntityKey::PropertyDefinition(*i),
14431            ItemIdentifiedRepresentationUsageDefinitionRef::PropertyDefinitionRelationship(i) => EntityKey::PropertyDefinitionRelationship(*i),
14432            ItemIdentifiedRepresentationUsageDefinitionRef::RoundnessTolerance(i) => EntityKey::RoundnessTolerance(*i),
14433            ItemIdentifiedRepresentationUsageDefinitionRef::ShapeAspect(i) => EntityKey::ShapeAspect(*i),
14434            ItemIdentifiedRepresentationUsageDefinitionRef::ShapeAspectAssociativity(i) => EntityKey::ShapeAspectAssociativity(*i),
14435            ItemIdentifiedRepresentationUsageDefinitionRef::ShapeAspectDerivingRelationship(i) => EntityKey::ShapeAspectDerivingRelationship(*i),
14436            ItemIdentifiedRepresentationUsageDefinitionRef::ShapeAspectRelationship(i) => EntityKey::ShapeAspectRelationship(*i),
14437            ItemIdentifiedRepresentationUsageDefinitionRef::StraightnessTolerance(i) => EntityKey::StraightnessTolerance(*i),
14438            ItemIdentifiedRepresentationUsageDefinitionRef::SurfaceProfileTolerance(i) => EntityKey::SurfaceProfileTolerance(*i),
14439            ItemIdentifiedRepresentationUsageDefinitionRef::SymmetryTolerance(i) => EntityKey::SymmetryTolerance(*i),
14440            ItemIdentifiedRepresentationUsageDefinitionRef::ToleranceZone(i) => EntityKey::ToleranceZone(*i),
14441            ItemIdentifiedRepresentationUsageDefinitionRef::ToleranceZoneWithDatum(i) => EntityKey::ToleranceZoneWithDatum(*i),
14442            ItemIdentifiedRepresentationUsageDefinitionRef::TotalRunoutTolerance(i) => EntityKey::TotalRunoutTolerance(*i),
14443            ItemIdentifiedRepresentationUsageDefinitionRef::UnequallyDisposedGeometricTolerance(i) => EntityKey::UnequallyDisposedGeometricTolerance(*i),
14444            ItemIdentifiedRepresentationUsageDefinitionRef::Complex(i) => EntityKey::ComplexUnit(*i),
14445        }
14446    }
14447}
14448
14449#[derive(Clone, Copy, Debug)]
14450pub enum LayeredItemRefView<'m> {
14451    AdvancedFace(&'m AdvancedFace),
14452    AnnotationCurveOccurrence(&'m AnnotationCurveOccurrence),
14453    AnnotationFillAreaOccurrence(&'m AnnotationFillAreaOccurrence),
14454    AnnotationOccurrence(&'m AnnotationOccurrence),
14455    AnnotationPlaceholderLeaderLine(&'m AnnotationPlaceholderLeaderLine),
14456    AnnotationPlaceholderOccurrence(&'m AnnotationPlaceholderOccurrence),
14457    AnnotationPlaceholderOccurrenceWithLeaderLine(
14458        &'m AnnotationPlaceholderOccurrenceWithLeaderLine,
14459    ),
14460    AnnotationPlane(&'m AnnotationPlane),
14461    AnnotationSymbol(&'m AnnotationSymbol),
14462    AnnotationSymbolOccurrence(&'m AnnotationSymbolOccurrence),
14463    AnnotationText(&'m AnnotationText),
14464    AnnotationTextCharacter(&'m AnnotationTextCharacter),
14465    AnnotationTextOccurrence(&'m AnnotationTextOccurrence),
14466    AnnotationToAnnotationLeaderLine(&'m AnnotationToAnnotationLeaderLine),
14467    AnnotationToModelLeaderLine(&'m AnnotationToModelLeaderLine),
14468    ApllPoint(&'m ApllPoint),
14469    ApllPointWithSurface(&'m ApllPointWithSurface),
14470    AuxiliaryLeaderLine(&'m AuxiliaryLeaderLine),
14471    Axis1Placement(&'m Axis1Placement),
14472    Axis2Placement2d(&'m Axis2Placement2d),
14473    Axis2Placement3d(&'m Axis2Placement3d),
14474    BSplineCurve(&'m BSplineCurve),
14475    BSplineCurveWithKnots(&'m BSplineCurveWithKnots),
14476    BSplineSurface(&'m BSplineSurface),
14477    BSplineSurfaceWithKnots(&'m BSplineSurfaceWithKnots),
14478    BezierCurve(&'m BezierCurve),
14479    BezierSurface(&'m BezierSurface),
14480    BoundedCurve(&'m BoundedCurve),
14481    BoundedPcurve(&'m BoundedPcurve),
14482    BoundedSurface(&'m BoundedSurface),
14483    BoundedSurfaceCurve(&'m BoundedSurfaceCurve),
14484    BrepWithVoids(&'m BrepWithVoids),
14485    CameraImage(&'m CameraImage),
14486    CameraImage3dWithScale(&'m CameraImage3dWithScale),
14487    CameraModel(&'m CameraModel),
14488    CameraModelD3(&'m CameraModelD3),
14489    CameraModelD3MultiClipping(&'m CameraModelD3MultiClipping),
14490    CameraModelD3WithHlhsr(&'m CameraModelD3WithHlhsr),
14491    CartesianPoint(&'m CartesianPoint),
14492    Circle(&'m Circle),
14493    ClosedShell(&'m ClosedShell),
14494    ComplexTriangulatedFace(&'m ComplexTriangulatedFace),
14495    ComplexTriangulatedSurfaceSet(&'m ComplexTriangulatedSurfaceSet),
14496    CompositeCurve(&'m CompositeCurve),
14497    CompositeText(&'m CompositeText),
14498    CompoundRepresentationItem(&'m CompoundRepresentationItem),
14499    Conic(&'m Conic),
14500    ConicalSurface(&'m ConicalSurface),
14501    ConnectedFaceSet(&'m ConnectedFaceSet),
14502    ContextDependentOverRidingStyledItem(&'m ContextDependentOverRidingStyledItem),
14503    CoordinatesList(&'m CoordinatesList),
14504    Curve(&'m Curve),
14505    CylindricalSurface(&'m CylindricalSurface),
14506    DefinedCharacterGlyph(&'m DefinedCharacterGlyph),
14507    DefinedSymbol(&'m DefinedSymbol),
14508    DegenerateToroidalSurface(&'m DegenerateToroidalSurface),
14509    DescriptiveRepresentationItem(&'m DescriptiveRepresentationItem),
14510    Direction(&'m Direction),
14511    DraughtingAnnotationOccurrence(&'m DraughtingAnnotationOccurrence),
14512    DraughtingCallout(&'m DraughtingCallout),
14513    Edge(&'m Edge),
14514    EdgeCurve(&'m EdgeCurve),
14515    EdgeLoop(&'m EdgeLoop),
14516    ElementarySurface(&'m ElementarySurface),
14517    Ellipse(&'m Ellipse),
14518    ExternallyDefinedHatchStyle(&'m ExternallyDefinedHatchStyle),
14519    ExternallyDefinedTileStyle(&'m ExternallyDefinedTileStyle),
14520    Face(&'m Face),
14521    FaceBound(&'m FaceBound),
14522    FaceOuterBound(&'m FaceOuterBound),
14523    FaceSurface(&'m FaceSurface),
14524    FillAreaStyleHatching(&'m FillAreaStyleHatching),
14525    FillAreaStyleTileColouredRegion(&'m FillAreaStyleTileColouredRegion),
14526    FillAreaStyleTileCurveWithStyle(&'m FillAreaStyleTileCurveWithStyle),
14527    FillAreaStyleTileSymbolWithStyle(&'m FillAreaStyleTileSymbolWithStyle),
14528    FillAreaStyleTiles(&'m FillAreaStyleTiles),
14529    GeometricCurveSet(&'m GeometricCurveSet),
14530    GeometricRepresentationItem(&'m GeometricRepresentationItem),
14531    GeometricSet(&'m GeometricSet),
14532    Hyperbola(&'m Hyperbola),
14533    IntegerRepresentationItem(&'m IntegerRepresentationItem),
14534    IntersectionCurve(&'m IntersectionCurve),
14535    LeaderCurve(&'m LeaderCurve),
14536    LeaderDirectedCallout(&'m LeaderDirectedCallout),
14537    LeaderTerminator(&'m LeaderTerminator),
14538    Line(&'m Line),
14539    Loop(&'m Loop),
14540    ManifoldSolidBrep(&'m ManifoldSolidBrep),
14541    MappedItem(&'m MappedItem),
14542    MeasureRepresentationItem(&'m MeasureRepresentationItem),
14543    OffsetSurface(&'m OffsetSurface),
14544    OneDirectionRepeatFactor(&'m OneDirectionRepeatFactor),
14545    OpenShell(&'m OpenShell),
14546    OrientedClosedShell(&'m OrientedClosedShell),
14547    OrientedEdge(&'m OrientedEdge),
14548    OverRidingStyledItem(&'m OverRidingStyledItem),
14549    Path(&'m Path),
14550    Pcurve(&'m Pcurve),
14551    Placement(&'m Placement),
14552    PlanarBox(&'m PlanarBox),
14553    PlanarExtent(&'m PlanarExtent),
14554    Plane(&'m Plane),
14555    Point(&'m Point),
14556    PolyLoop(&'m PolyLoop),
14557    Polyline(&'m Polyline),
14558    PresentationArea(&'m PresentationArea),
14559    PresentationRepresentation(&'m PresentationRepresentation),
14560    PresentationView(&'m PresentationView),
14561    QualifiedRepresentationItem(&'m QualifiedRepresentationItem),
14562    QuasiUniformCurve(&'m QuasiUniformCurve),
14563    QuasiUniformSurface(&'m QuasiUniformSurface),
14564    RationalBSplineCurve(&'m RationalBSplineCurve),
14565    RationalBSplineSurface(&'m RationalBSplineSurface),
14566    RealRepresentationItem(&'m RealRepresentationItem),
14567    RepositionedTessellatedItem(&'m RepositionedTessellatedItem),
14568    RepresentationItem(&'m RepresentationItem),
14569    SeamCurve(&'m SeamCurve),
14570    ShellBasedSurfaceModel(&'m ShellBasedSurfaceModel),
14571    SolidModel(&'m SolidModel),
14572    SphericalSurface(&'m SphericalSurface),
14573    StyledItem(&'m StyledItem),
14574    Surface(&'m Surface),
14575    SurfaceCurve(&'m SurfaceCurve),
14576    SurfaceOfLinearExtrusion(&'m SurfaceOfLinearExtrusion),
14577    SurfaceOfRevolution(&'m SurfaceOfRevolution),
14578    SweptSurface(&'m SweptSurface),
14579    SymbolTarget(&'m SymbolTarget),
14580    TerminatorSymbol(&'m TerminatorSymbol),
14581    TessellatedAnnotationOccurrence(&'m TessellatedAnnotationOccurrence),
14582    TessellatedCurveSet(&'m TessellatedCurveSet),
14583    TessellatedFace(&'m TessellatedFace),
14584    TessellatedGeometricSet(&'m TessellatedGeometricSet),
14585    TessellatedItem(&'m TessellatedItem),
14586    TessellatedShell(&'m TessellatedShell),
14587    TessellatedSolid(&'m TessellatedSolid),
14588    TessellatedStructuredItem(&'m TessellatedStructuredItem),
14589    TessellatedSurfaceSet(&'m TessellatedSurfaceSet),
14590    TextLiteral(&'m TextLiteral),
14591    TopologicalRepresentationItem(&'m TopologicalRepresentationItem),
14592    ToroidalSurface(&'m ToroidalSurface),
14593    TrimmedCurve(&'m TrimmedCurve),
14594    TwoDirectionRepeatFactor(&'m TwoDirectionRepeatFactor),
14595    UniformCurve(&'m UniformCurve),
14596    UniformSurface(&'m UniformSurface),
14597    ValueRepresentationItem(&'m ValueRepresentationItem),
14598    Vector(&'m Vector),
14599    Vertex(&'m Vertex),
14600    VertexLoop(&'m VertexLoop),
14601    VertexPoint(&'m VertexPoint),
14602    VertexShell(&'m VertexShell),
14603    WireShell(&'m WireShell),
14604    Complex(&'m ComplexUnit),
14605}
14606impl LayeredItemRef {
14607    pub fn resolve<'m>(&self, model: &'m StepModel) -> LayeredItemRefView<'m> {
14608        match self {
14609            LayeredItemRef::AdvancedFace(i) => {
14610                LayeredItemRefView::AdvancedFace(model.advanced_face_arena.get(i.0))
14611            }
14612            LayeredItemRef::AnnotationCurveOccurrence(i) => {
14613                LayeredItemRefView::AnnotationCurveOccurrence(
14614                    model.annotation_curve_occurrence_arena.get(i.0),
14615                )
14616            }
14617            LayeredItemRef::AnnotationFillAreaOccurrence(i) => {
14618                LayeredItemRefView::AnnotationFillAreaOccurrence(
14619                    model.annotation_fill_area_occurrence_arena.get(i.0),
14620                )
14621            }
14622            LayeredItemRef::AnnotationOccurrence(i) => {
14623                LayeredItemRefView::AnnotationOccurrence(model.annotation_occurrence_arena.get(i.0))
14624            }
14625            LayeredItemRef::AnnotationPlaceholderLeaderLine(i) => {
14626                LayeredItemRefView::AnnotationPlaceholderLeaderLine(
14627                    model.annotation_placeholder_leader_line_arena.get(i.0),
14628                )
14629            }
14630            LayeredItemRef::AnnotationPlaceholderOccurrence(i) => {
14631                LayeredItemRefView::AnnotationPlaceholderOccurrence(
14632                    model.annotation_placeholder_occurrence_arena.get(i.0),
14633                )
14634            }
14635            LayeredItemRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => {
14636                LayeredItemRefView::AnnotationPlaceholderOccurrenceWithLeaderLine(
14637                    model
14638                        .annotation_placeholder_occurrence_with_leader_line_arena
14639                        .get(i.0),
14640                )
14641            }
14642            LayeredItemRef::AnnotationPlane(i) => {
14643                LayeredItemRefView::AnnotationPlane(model.annotation_plane_arena.get(i.0))
14644            }
14645            LayeredItemRef::AnnotationSymbol(i) => {
14646                LayeredItemRefView::AnnotationSymbol(model.annotation_symbol_arena.get(i.0))
14647            }
14648            LayeredItemRef::AnnotationSymbolOccurrence(i) => {
14649                LayeredItemRefView::AnnotationSymbolOccurrence(
14650                    model.annotation_symbol_occurrence_arena.get(i.0),
14651                )
14652            }
14653            LayeredItemRef::AnnotationText(i) => {
14654                LayeredItemRefView::AnnotationText(model.annotation_text_arena.get(i.0))
14655            }
14656            LayeredItemRef::AnnotationTextCharacter(i) => {
14657                LayeredItemRefView::AnnotationTextCharacter(
14658                    model.annotation_text_character_arena.get(i.0),
14659                )
14660            }
14661            LayeredItemRef::AnnotationTextOccurrence(i) => {
14662                LayeredItemRefView::AnnotationTextOccurrence(
14663                    model.annotation_text_occurrence_arena.get(i.0),
14664                )
14665            }
14666            LayeredItemRef::AnnotationToAnnotationLeaderLine(i) => {
14667                LayeredItemRefView::AnnotationToAnnotationLeaderLine(
14668                    model.annotation_to_annotation_leader_line_arena.get(i.0),
14669                )
14670            }
14671            LayeredItemRef::AnnotationToModelLeaderLine(i) => {
14672                LayeredItemRefView::AnnotationToModelLeaderLine(
14673                    model.annotation_to_model_leader_line_arena.get(i.0),
14674                )
14675            }
14676            LayeredItemRef::ApllPoint(i) => {
14677                LayeredItemRefView::ApllPoint(model.apll_point_arena.get(i.0))
14678            }
14679            LayeredItemRef::ApllPointWithSurface(i) => LayeredItemRefView::ApllPointWithSurface(
14680                model.apll_point_with_surface_arena.get(i.0),
14681            ),
14682            LayeredItemRef::AuxiliaryLeaderLine(i) => {
14683                LayeredItemRefView::AuxiliaryLeaderLine(model.auxiliary_leader_line_arena.get(i.0))
14684            }
14685            LayeredItemRef::Axis1Placement(i) => {
14686                LayeredItemRefView::Axis1Placement(model.axis1_placement_arena.get(i.0))
14687            }
14688            LayeredItemRef::Axis2Placement2d(i) => {
14689                LayeredItemRefView::Axis2Placement2d(model.axis2_placement2d_arena.get(i.0))
14690            }
14691            LayeredItemRef::Axis2Placement3d(i) => {
14692                LayeredItemRefView::Axis2Placement3d(model.axis2_placement3d_arena.get(i.0))
14693            }
14694            LayeredItemRef::BSplineCurve(i) => {
14695                LayeredItemRefView::BSplineCurve(model.b_spline_curve_arena.get(i.0))
14696            }
14697            LayeredItemRef::BSplineCurveWithKnots(i) => LayeredItemRefView::BSplineCurveWithKnots(
14698                model.b_spline_curve_with_knots_arena.get(i.0),
14699            ),
14700            LayeredItemRef::BSplineSurface(i) => {
14701                LayeredItemRefView::BSplineSurface(model.b_spline_surface_arena.get(i.0))
14702            }
14703            LayeredItemRef::BSplineSurfaceWithKnots(i) => {
14704                LayeredItemRefView::BSplineSurfaceWithKnots(
14705                    model.b_spline_surface_with_knots_arena.get(i.0),
14706                )
14707            }
14708            LayeredItemRef::BezierCurve(i) => {
14709                LayeredItemRefView::BezierCurve(model.bezier_curve_arena.get(i.0))
14710            }
14711            LayeredItemRef::BezierSurface(i) => {
14712                LayeredItemRefView::BezierSurface(model.bezier_surface_arena.get(i.0))
14713            }
14714            LayeredItemRef::BoundedCurve(i) => {
14715                LayeredItemRefView::BoundedCurve(model.bounded_curve_arena.get(i.0))
14716            }
14717            LayeredItemRef::BoundedPcurve(i) => {
14718                LayeredItemRefView::BoundedPcurve(model.bounded_pcurve_arena.get(i.0))
14719            }
14720            LayeredItemRef::BoundedSurface(i) => {
14721                LayeredItemRefView::BoundedSurface(model.bounded_surface_arena.get(i.0))
14722            }
14723            LayeredItemRef::BoundedSurfaceCurve(i) => {
14724                LayeredItemRefView::BoundedSurfaceCurve(model.bounded_surface_curve_arena.get(i.0))
14725            }
14726            LayeredItemRef::BrepWithVoids(i) => {
14727                LayeredItemRefView::BrepWithVoids(model.brep_with_voids_arena.get(i.0))
14728            }
14729            LayeredItemRef::CameraImage(i) => {
14730                LayeredItemRefView::CameraImage(model.camera_image_arena.get(i.0))
14731            }
14732            LayeredItemRef::CameraImage3dWithScale(i) => {
14733                LayeredItemRefView::CameraImage3dWithScale(
14734                    model.camera_image3d_with_scale_arena.get(i.0),
14735                )
14736            }
14737            LayeredItemRef::CameraModel(i) => {
14738                LayeredItemRefView::CameraModel(model.camera_model_arena.get(i.0))
14739            }
14740            LayeredItemRef::CameraModelD3(i) => {
14741                LayeredItemRefView::CameraModelD3(model.camera_model_d3_arena.get(i.0))
14742            }
14743            LayeredItemRef::CameraModelD3MultiClipping(i) => {
14744                LayeredItemRefView::CameraModelD3MultiClipping(
14745                    model.camera_model_d3_multi_clipping_arena.get(i.0),
14746                )
14747            }
14748            LayeredItemRef::CameraModelD3WithHlhsr(i) => {
14749                LayeredItemRefView::CameraModelD3WithHlhsr(
14750                    model.camera_model_d3_with_hlhsr_arena.get(i.0),
14751                )
14752            }
14753            LayeredItemRef::CartesianPoint(i) => {
14754                LayeredItemRefView::CartesianPoint(model.cartesian_point_arena.get(i.0))
14755            }
14756            LayeredItemRef::Circle(i) => LayeredItemRefView::Circle(model.circle_arena.get(i.0)),
14757            LayeredItemRef::ClosedShell(i) => {
14758                LayeredItemRefView::ClosedShell(model.closed_shell_arena.get(i.0))
14759            }
14760            LayeredItemRef::ComplexTriangulatedFace(i) => {
14761                LayeredItemRefView::ComplexTriangulatedFace(
14762                    model.complex_triangulated_face_arena.get(i.0),
14763                )
14764            }
14765            LayeredItemRef::ComplexTriangulatedSurfaceSet(i) => {
14766                LayeredItemRefView::ComplexTriangulatedSurfaceSet(
14767                    model.complex_triangulated_surface_set_arena.get(i.0),
14768                )
14769            }
14770            LayeredItemRef::CompositeCurve(i) => {
14771                LayeredItemRefView::CompositeCurve(model.composite_curve_arena.get(i.0))
14772            }
14773            LayeredItemRef::CompositeText(i) => {
14774                LayeredItemRefView::CompositeText(model.composite_text_arena.get(i.0))
14775            }
14776            LayeredItemRef::CompoundRepresentationItem(i) => {
14777                LayeredItemRefView::CompoundRepresentationItem(
14778                    model.compound_representation_item_arena.get(i.0),
14779                )
14780            }
14781            LayeredItemRef::Conic(i) => LayeredItemRefView::Conic(model.conic_arena.get(i.0)),
14782            LayeredItemRef::ConicalSurface(i) => {
14783                LayeredItemRefView::ConicalSurface(model.conical_surface_arena.get(i.0))
14784            }
14785            LayeredItemRef::ConnectedFaceSet(i) => {
14786                LayeredItemRefView::ConnectedFaceSet(model.connected_face_set_arena.get(i.0))
14787            }
14788            LayeredItemRef::ContextDependentOverRidingStyledItem(i) => {
14789                LayeredItemRefView::ContextDependentOverRidingStyledItem(
14790                    model
14791                        .context_dependent_over_riding_styled_item_arena
14792                        .get(i.0),
14793                )
14794            }
14795            LayeredItemRef::CoordinatesList(i) => {
14796                LayeredItemRefView::CoordinatesList(model.coordinates_list_arena.get(i.0))
14797            }
14798            LayeredItemRef::Curve(i) => LayeredItemRefView::Curve(model.curve_arena.get(i.0)),
14799            LayeredItemRef::CylindricalSurface(i) => {
14800                LayeredItemRefView::CylindricalSurface(model.cylindrical_surface_arena.get(i.0))
14801            }
14802            LayeredItemRef::DefinedCharacterGlyph(i) => LayeredItemRefView::DefinedCharacterGlyph(
14803                model.defined_character_glyph_arena.get(i.0),
14804            ),
14805            LayeredItemRef::DefinedSymbol(i) => {
14806                LayeredItemRefView::DefinedSymbol(model.defined_symbol_arena.get(i.0))
14807            }
14808            LayeredItemRef::DegenerateToroidalSurface(i) => {
14809                LayeredItemRefView::DegenerateToroidalSurface(
14810                    model.degenerate_toroidal_surface_arena.get(i.0),
14811                )
14812            }
14813            LayeredItemRef::DescriptiveRepresentationItem(i) => {
14814                LayeredItemRefView::DescriptiveRepresentationItem(
14815                    model.descriptive_representation_item_arena.get(i.0),
14816                )
14817            }
14818            LayeredItemRef::Direction(i) => {
14819                LayeredItemRefView::Direction(model.direction_arena.get(i.0))
14820            }
14821            LayeredItemRef::DraughtingAnnotationOccurrence(i) => {
14822                LayeredItemRefView::DraughtingAnnotationOccurrence(
14823                    model.draughting_annotation_occurrence_arena.get(i.0),
14824                )
14825            }
14826            LayeredItemRef::DraughtingCallout(i) => {
14827                LayeredItemRefView::DraughtingCallout(model.draughting_callout_arena.get(i.0))
14828            }
14829            LayeredItemRef::Edge(i) => LayeredItemRefView::Edge(model.edge_arena.get(i.0)),
14830            LayeredItemRef::EdgeCurve(i) => {
14831                LayeredItemRefView::EdgeCurve(model.edge_curve_arena.get(i.0))
14832            }
14833            LayeredItemRef::EdgeLoop(i) => {
14834                LayeredItemRefView::EdgeLoop(model.edge_loop_arena.get(i.0))
14835            }
14836            LayeredItemRef::ElementarySurface(i) => {
14837                LayeredItemRefView::ElementarySurface(model.elementary_surface_arena.get(i.0))
14838            }
14839            LayeredItemRef::Ellipse(i) => LayeredItemRefView::Ellipse(model.ellipse_arena.get(i.0)),
14840            LayeredItemRef::ExternallyDefinedHatchStyle(i) => {
14841                LayeredItemRefView::ExternallyDefinedHatchStyle(
14842                    model.externally_defined_hatch_style_arena.get(i.0),
14843                )
14844            }
14845            LayeredItemRef::ExternallyDefinedTileStyle(i) => {
14846                LayeredItemRefView::ExternallyDefinedTileStyle(
14847                    model.externally_defined_tile_style_arena.get(i.0),
14848                )
14849            }
14850            LayeredItemRef::Face(i) => LayeredItemRefView::Face(model.face_arena.get(i.0)),
14851            LayeredItemRef::FaceBound(i) => {
14852                LayeredItemRefView::FaceBound(model.face_bound_arena.get(i.0))
14853            }
14854            LayeredItemRef::FaceOuterBound(i) => {
14855                LayeredItemRefView::FaceOuterBound(model.face_outer_bound_arena.get(i.0))
14856            }
14857            LayeredItemRef::FaceSurface(i) => {
14858                LayeredItemRefView::FaceSurface(model.face_surface_arena.get(i.0))
14859            }
14860            LayeredItemRef::FillAreaStyleHatching(i) => LayeredItemRefView::FillAreaStyleHatching(
14861                model.fill_area_style_hatching_arena.get(i.0),
14862            ),
14863            LayeredItemRef::FillAreaStyleTileColouredRegion(i) => {
14864                LayeredItemRefView::FillAreaStyleTileColouredRegion(
14865                    model.fill_area_style_tile_coloured_region_arena.get(i.0),
14866                )
14867            }
14868            LayeredItemRef::FillAreaStyleTileCurveWithStyle(i) => {
14869                LayeredItemRefView::FillAreaStyleTileCurveWithStyle(
14870                    model.fill_area_style_tile_curve_with_style_arena.get(i.0),
14871                )
14872            }
14873            LayeredItemRef::FillAreaStyleTileSymbolWithStyle(i) => {
14874                LayeredItemRefView::FillAreaStyleTileSymbolWithStyle(
14875                    model.fill_area_style_tile_symbol_with_style_arena.get(i.0),
14876                )
14877            }
14878            LayeredItemRef::FillAreaStyleTiles(i) => {
14879                LayeredItemRefView::FillAreaStyleTiles(model.fill_area_style_tiles_arena.get(i.0))
14880            }
14881            LayeredItemRef::GeometricCurveSet(i) => {
14882                LayeredItemRefView::GeometricCurveSet(model.geometric_curve_set_arena.get(i.0))
14883            }
14884            LayeredItemRef::GeometricRepresentationItem(i) => {
14885                LayeredItemRefView::GeometricRepresentationItem(
14886                    model.geometric_representation_item_arena.get(i.0),
14887                )
14888            }
14889            LayeredItemRef::GeometricSet(i) => {
14890                LayeredItemRefView::GeometricSet(model.geometric_set_arena.get(i.0))
14891            }
14892            LayeredItemRef::Hyperbola(i) => {
14893                LayeredItemRefView::Hyperbola(model.hyperbola_arena.get(i.0))
14894            }
14895            LayeredItemRef::IntegerRepresentationItem(i) => {
14896                LayeredItemRefView::IntegerRepresentationItem(
14897                    model.integer_representation_item_arena.get(i.0),
14898                )
14899            }
14900            LayeredItemRef::IntersectionCurve(i) => {
14901                LayeredItemRefView::IntersectionCurve(model.intersection_curve_arena.get(i.0))
14902            }
14903            LayeredItemRef::LeaderCurve(i) => {
14904                LayeredItemRefView::LeaderCurve(model.leader_curve_arena.get(i.0))
14905            }
14906            LayeredItemRef::LeaderDirectedCallout(i) => LayeredItemRefView::LeaderDirectedCallout(
14907                model.leader_directed_callout_arena.get(i.0),
14908            ),
14909            LayeredItemRef::LeaderTerminator(i) => {
14910                LayeredItemRefView::LeaderTerminator(model.leader_terminator_arena.get(i.0))
14911            }
14912            LayeredItemRef::Line(i) => LayeredItemRefView::Line(model.line_arena.get(i.0)),
14913            LayeredItemRef::Loop(i) => LayeredItemRefView::Loop(model.loop_arena.get(i.0)),
14914            LayeredItemRef::ManifoldSolidBrep(i) => {
14915                LayeredItemRefView::ManifoldSolidBrep(model.manifold_solid_brep_arena.get(i.0))
14916            }
14917            LayeredItemRef::MappedItem(i) => {
14918                LayeredItemRefView::MappedItem(model.mapped_item_arena.get(i.0))
14919            }
14920            LayeredItemRef::MeasureRepresentationItem(i) => {
14921                LayeredItemRefView::MeasureRepresentationItem(
14922                    model.measure_representation_item_arena.get(i.0),
14923                )
14924            }
14925            LayeredItemRef::OffsetSurface(i) => {
14926                LayeredItemRefView::OffsetSurface(model.offset_surface_arena.get(i.0))
14927            }
14928            LayeredItemRef::OneDirectionRepeatFactor(i) => {
14929                LayeredItemRefView::OneDirectionRepeatFactor(
14930                    model.one_direction_repeat_factor_arena.get(i.0),
14931                )
14932            }
14933            LayeredItemRef::OpenShell(i) => {
14934                LayeredItemRefView::OpenShell(model.open_shell_arena.get(i.0))
14935            }
14936            LayeredItemRef::OrientedClosedShell(i) => {
14937                LayeredItemRefView::OrientedClosedShell(model.oriented_closed_shell_arena.get(i.0))
14938            }
14939            LayeredItemRef::OrientedEdge(i) => {
14940                LayeredItemRefView::OrientedEdge(model.oriented_edge_arena.get(i.0))
14941            }
14942            LayeredItemRef::OverRidingStyledItem(i) => LayeredItemRefView::OverRidingStyledItem(
14943                model.over_riding_styled_item_arena.get(i.0),
14944            ),
14945            LayeredItemRef::Path(i) => LayeredItemRefView::Path(model.path_arena.get(i.0)),
14946            LayeredItemRef::Pcurve(i) => LayeredItemRefView::Pcurve(model.pcurve_arena.get(i.0)),
14947            LayeredItemRef::Placement(i) => {
14948                LayeredItemRefView::Placement(model.placement_arena.get(i.0))
14949            }
14950            LayeredItemRef::PlanarBox(i) => {
14951                LayeredItemRefView::PlanarBox(model.planar_box_arena.get(i.0))
14952            }
14953            LayeredItemRef::PlanarExtent(i) => {
14954                LayeredItemRefView::PlanarExtent(model.planar_extent_arena.get(i.0))
14955            }
14956            LayeredItemRef::Plane(i) => LayeredItemRefView::Plane(model.plane_arena.get(i.0)),
14957            LayeredItemRef::Point(i) => LayeredItemRefView::Point(model.point_arena.get(i.0)),
14958            LayeredItemRef::PolyLoop(i) => {
14959                LayeredItemRefView::PolyLoop(model.poly_loop_arena.get(i.0))
14960            }
14961            LayeredItemRef::Polyline(i) => {
14962                LayeredItemRefView::Polyline(model.polyline_arena.get(i.0))
14963            }
14964            LayeredItemRef::PresentationArea(i) => {
14965                LayeredItemRefView::PresentationArea(model.presentation_area_arena.get(i.0))
14966            }
14967            LayeredItemRef::PresentationRepresentation(i) => {
14968                LayeredItemRefView::PresentationRepresentation(
14969                    model.presentation_representation_arena.get(i.0),
14970                )
14971            }
14972            LayeredItemRef::PresentationView(i) => {
14973                LayeredItemRefView::PresentationView(model.presentation_view_arena.get(i.0))
14974            }
14975            LayeredItemRef::QualifiedRepresentationItem(i) => {
14976                LayeredItemRefView::QualifiedRepresentationItem(
14977                    model.qualified_representation_item_arena.get(i.0),
14978                )
14979            }
14980            LayeredItemRef::QuasiUniformCurve(i) => {
14981                LayeredItemRefView::QuasiUniformCurve(model.quasi_uniform_curve_arena.get(i.0))
14982            }
14983            LayeredItemRef::QuasiUniformSurface(i) => {
14984                LayeredItemRefView::QuasiUniformSurface(model.quasi_uniform_surface_arena.get(i.0))
14985            }
14986            LayeredItemRef::RationalBSplineCurve(i) => LayeredItemRefView::RationalBSplineCurve(
14987                model.rational_b_spline_curve_arena.get(i.0),
14988            ),
14989            LayeredItemRef::RationalBSplineSurface(i) => {
14990                LayeredItemRefView::RationalBSplineSurface(
14991                    model.rational_b_spline_surface_arena.get(i.0),
14992                )
14993            }
14994            LayeredItemRef::RealRepresentationItem(i) => {
14995                LayeredItemRefView::RealRepresentationItem(
14996                    model.real_representation_item_arena.get(i.0),
14997                )
14998            }
14999            LayeredItemRef::RepositionedTessellatedItem(i) => {
15000                LayeredItemRefView::RepositionedTessellatedItem(
15001                    model.repositioned_tessellated_item_arena.get(i.0),
15002                )
15003            }
15004            LayeredItemRef::RepresentationItem(i) => {
15005                LayeredItemRefView::RepresentationItem(model.representation_item_arena.get(i.0))
15006            }
15007            LayeredItemRef::SeamCurve(i) => {
15008                LayeredItemRefView::SeamCurve(model.seam_curve_arena.get(i.0))
15009            }
15010            LayeredItemRef::ShellBasedSurfaceModel(i) => {
15011                LayeredItemRefView::ShellBasedSurfaceModel(
15012                    model.shell_based_surface_model_arena.get(i.0),
15013                )
15014            }
15015            LayeredItemRef::SolidModel(i) => {
15016                LayeredItemRefView::SolidModel(model.solid_model_arena.get(i.0))
15017            }
15018            LayeredItemRef::SphericalSurface(i) => {
15019                LayeredItemRefView::SphericalSurface(model.spherical_surface_arena.get(i.0))
15020            }
15021            LayeredItemRef::StyledItem(i) => {
15022                LayeredItemRefView::StyledItem(model.styled_item_arena.get(i.0))
15023            }
15024            LayeredItemRef::Surface(i) => LayeredItemRefView::Surface(model.surface_arena.get(i.0)),
15025            LayeredItemRef::SurfaceCurve(i) => {
15026                LayeredItemRefView::SurfaceCurve(model.surface_curve_arena.get(i.0))
15027            }
15028            LayeredItemRef::SurfaceOfLinearExtrusion(i) => {
15029                LayeredItemRefView::SurfaceOfLinearExtrusion(
15030                    model.surface_of_linear_extrusion_arena.get(i.0),
15031                )
15032            }
15033            LayeredItemRef::SurfaceOfRevolution(i) => {
15034                LayeredItemRefView::SurfaceOfRevolution(model.surface_of_revolution_arena.get(i.0))
15035            }
15036            LayeredItemRef::SweptSurface(i) => {
15037                LayeredItemRefView::SweptSurface(model.swept_surface_arena.get(i.0))
15038            }
15039            LayeredItemRef::SymbolTarget(i) => {
15040                LayeredItemRefView::SymbolTarget(model.symbol_target_arena.get(i.0))
15041            }
15042            LayeredItemRef::TerminatorSymbol(i) => {
15043                LayeredItemRefView::TerminatorSymbol(model.terminator_symbol_arena.get(i.0))
15044            }
15045            LayeredItemRef::TessellatedAnnotationOccurrence(i) => {
15046                LayeredItemRefView::TessellatedAnnotationOccurrence(
15047                    model.tessellated_annotation_occurrence_arena.get(i.0),
15048                )
15049            }
15050            LayeredItemRef::TessellatedCurveSet(i) => {
15051                LayeredItemRefView::TessellatedCurveSet(model.tessellated_curve_set_arena.get(i.0))
15052            }
15053            LayeredItemRef::TessellatedFace(i) => {
15054                LayeredItemRefView::TessellatedFace(model.tessellated_face_arena.get(i.0))
15055            }
15056            LayeredItemRef::TessellatedGeometricSet(i) => {
15057                LayeredItemRefView::TessellatedGeometricSet(
15058                    model.tessellated_geometric_set_arena.get(i.0),
15059                )
15060            }
15061            LayeredItemRef::TessellatedItem(i) => {
15062                LayeredItemRefView::TessellatedItem(model.tessellated_item_arena.get(i.0))
15063            }
15064            LayeredItemRef::TessellatedShell(i) => {
15065                LayeredItemRefView::TessellatedShell(model.tessellated_shell_arena.get(i.0))
15066            }
15067            LayeredItemRef::TessellatedSolid(i) => {
15068                LayeredItemRefView::TessellatedSolid(model.tessellated_solid_arena.get(i.0))
15069            }
15070            LayeredItemRef::TessellatedStructuredItem(i) => {
15071                LayeredItemRefView::TessellatedStructuredItem(
15072                    model.tessellated_structured_item_arena.get(i.0),
15073                )
15074            }
15075            LayeredItemRef::TessellatedSurfaceSet(i) => LayeredItemRefView::TessellatedSurfaceSet(
15076                model.tessellated_surface_set_arena.get(i.0),
15077            ),
15078            LayeredItemRef::TextLiteral(i) => {
15079                LayeredItemRefView::TextLiteral(model.text_literal_arena.get(i.0))
15080            }
15081            LayeredItemRef::TopologicalRepresentationItem(i) => {
15082                LayeredItemRefView::TopologicalRepresentationItem(
15083                    model.topological_representation_item_arena.get(i.0),
15084                )
15085            }
15086            LayeredItemRef::ToroidalSurface(i) => {
15087                LayeredItemRefView::ToroidalSurface(model.toroidal_surface_arena.get(i.0))
15088            }
15089            LayeredItemRef::TrimmedCurve(i) => {
15090                LayeredItemRefView::TrimmedCurve(model.trimmed_curve_arena.get(i.0))
15091            }
15092            LayeredItemRef::TwoDirectionRepeatFactor(i) => {
15093                LayeredItemRefView::TwoDirectionRepeatFactor(
15094                    model.two_direction_repeat_factor_arena.get(i.0),
15095                )
15096            }
15097            LayeredItemRef::UniformCurve(i) => {
15098                LayeredItemRefView::UniformCurve(model.uniform_curve_arena.get(i.0))
15099            }
15100            LayeredItemRef::UniformSurface(i) => {
15101                LayeredItemRefView::UniformSurface(model.uniform_surface_arena.get(i.0))
15102            }
15103            LayeredItemRef::ValueRepresentationItem(i) => {
15104                LayeredItemRefView::ValueRepresentationItem(
15105                    model.value_representation_item_arena.get(i.0),
15106                )
15107            }
15108            LayeredItemRef::Vector(i) => LayeredItemRefView::Vector(model.vector_arena.get(i.0)),
15109            LayeredItemRef::Vertex(i) => LayeredItemRefView::Vertex(model.vertex_arena.get(i.0)),
15110            LayeredItemRef::VertexLoop(i) => {
15111                LayeredItemRefView::VertexLoop(model.vertex_loop_arena.get(i.0))
15112            }
15113            LayeredItemRef::VertexPoint(i) => {
15114                LayeredItemRefView::VertexPoint(model.vertex_point_arena.get(i.0))
15115            }
15116            LayeredItemRef::VertexShell(i) => {
15117                LayeredItemRefView::VertexShell(model.vertex_shell_arena.get(i.0))
15118            }
15119            LayeredItemRef::WireShell(i) => {
15120                LayeredItemRefView::WireShell(model.wire_shell_arena.get(i.0))
15121            }
15122            LayeredItemRef::Complex(i) => {
15123                LayeredItemRefView::Complex(model.complex_unit_arena.get(i.0))
15124            }
15125        }
15126    }
15127    pub fn entity_key(&self) -> EntityKey {
15128        match self {
15129            LayeredItemRef::AdvancedFace(i) => EntityKey::AdvancedFace(*i),
15130            LayeredItemRef::AnnotationCurveOccurrence(i) => {
15131                EntityKey::AnnotationCurveOccurrence(*i)
15132            }
15133            LayeredItemRef::AnnotationFillAreaOccurrence(i) => {
15134                EntityKey::AnnotationFillAreaOccurrence(*i)
15135            }
15136            LayeredItemRef::AnnotationOccurrence(i) => EntityKey::AnnotationOccurrence(*i),
15137            LayeredItemRef::AnnotationPlaceholderLeaderLine(i) => {
15138                EntityKey::AnnotationPlaceholderLeaderLine(*i)
15139            }
15140            LayeredItemRef::AnnotationPlaceholderOccurrence(i) => {
15141                EntityKey::AnnotationPlaceholderOccurrence(*i)
15142            }
15143            LayeredItemRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => {
15144                EntityKey::AnnotationPlaceholderOccurrenceWithLeaderLine(*i)
15145            }
15146            LayeredItemRef::AnnotationPlane(i) => EntityKey::AnnotationPlane(*i),
15147            LayeredItemRef::AnnotationSymbol(i) => EntityKey::AnnotationSymbol(*i),
15148            LayeredItemRef::AnnotationSymbolOccurrence(i) => {
15149                EntityKey::AnnotationSymbolOccurrence(*i)
15150            }
15151            LayeredItemRef::AnnotationText(i) => EntityKey::AnnotationText(*i),
15152            LayeredItemRef::AnnotationTextCharacter(i) => EntityKey::AnnotationTextCharacter(*i),
15153            LayeredItemRef::AnnotationTextOccurrence(i) => EntityKey::AnnotationTextOccurrence(*i),
15154            LayeredItemRef::AnnotationToAnnotationLeaderLine(i) => {
15155                EntityKey::AnnotationToAnnotationLeaderLine(*i)
15156            }
15157            LayeredItemRef::AnnotationToModelLeaderLine(i) => {
15158                EntityKey::AnnotationToModelLeaderLine(*i)
15159            }
15160            LayeredItemRef::ApllPoint(i) => EntityKey::ApllPoint(*i),
15161            LayeredItemRef::ApllPointWithSurface(i) => EntityKey::ApllPointWithSurface(*i),
15162            LayeredItemRef::AuxiliaryLeaderLine(i) => EntityKey::AuxiliaryLeaderLine(*i),
15163            LayeredItemRef::Axis1Placement(i) => EntityKey::Axis1Placement(*i),
15164            LayeredItemRef::Axis2Placement2d(i) => EntityKey::Axis2Placement2d(*i),
15165            LayeredItemRef::Axis2Placement3d(i) => EntityKey::Axis2Placement3d(*i),
15166            LayeredItemRef::BSplineCurve(i) => EntityKey::BSplineCurve(*i),
15167            LayeredItemRef::BSplineCurveWithKnots(i) => EntityKey::BSplineCurveWithKnots(*i),
15168            LayeredItemRef::BSplineSurface(i) => EntityKey::BSplineSurface(*i),
15169            LayeredItemRef::BSplineSurfaceWithKnots(i) => EntityKey::BSplineSurfaceWithKnots(*i),
15170            LayeredItemRef::BezierCurve(i) => EntityKey::BezierCurve(*i),
15171            LayeredItemRef::BezierSurface(i) => EntityKey::BezierSurface(*i),
15172            LayeredItemRef::BoundedCurve(i) => EntityKey::BoundedCurve(*i),
15173            LayeredItemRef::BoundedPcurve(i) => EntityKey::BoundedPcurve(*i),
15174            LayeredItemRef::BoundedSurface(i) => EntityKey::BoundedSurface(*i),
15175            LayeredItemRef::BoundedSurfaceCurve(i) => EntityKey::BoundedSurfaceCurve(*i),
15176            LayeredItemRef::BrepWithVoids(i) => EntityKey::BrepWithVoids(*i),
15177            LayeredItemRef::CameraImage(i) => EntityKey::CameraImage(*i),
15178            LayeredItemRef::CameraImage3dWithScale(i) => EntityKey::CameraImage3dWithScale(*i),
15179            LayeredItemRef::CameraModel(i) => EntityKey::CameraModel(*i),
15180            LayeredItemRef::CameraModelD3(i) => EntityKey::CameraModelD3(*i),
15181            LayeredItemRef::CameraModelD3MultiClipping(i) => {
15182                EntityKey::CameraModelD3MultiClipping(*i)
15183            }
15184            LayeredItemRef::CameraModelD3WithHlhsr(i) => EntityKey::CameraModelD3WithHlhsr(*i),
15185            LayeredItemRef::CartesianPoint(i) => EntityKey::CartesianPoint(*i),
15186            LayeredItemRef::Circle(i) => EntityKey::Circle(*i),
15187            LayeredItemRef::ClosedShell(i) => EntityKey::ClosedShell(*i),
15188            LayeredItemRef::ComplexTriangulatedFace(i) => EntityKey::ComplexTriangulatedFace(*i),
15189            LayeredItemRef::ComplexTriangulatedSurfaceSet(i) => {
15190                EntityKey::ComplexTriangulatedSurfaceSet(*i)
15191            }
15192            LayeredItemRef::CompositeCurve(i) => EntityKey::CompositeCurve(*i),
15193            LayeredItemRef::CompositeText(i) => EntityKey::CompositeText(*i),
15194            LayeredItemRef::CompoundRepresentationItem(i) => {
15195                EntityKey::CompoundRepresentationItem(*i)
15196            }
15197            LayeredItemRef::Conic(i) => EntityKey::Conic(*i),
15198            LayeredItemRef::ConicalSurface(i) => EntityKey::ConicalSurface(*i),
15199            LayeredItemRef::ConnectedFaceSet(i) => EntityKey::ConnectedFaceSet(*i),
15200            LayeredItemRef::ContextDependentOverRidingStyledItem(i) => {
15201                EntityKey::ContextDependentOverRidingStyledItem(*i)
15202            }
15203            LayeredItemRef::CoordinatesList(i) => EntityKey::CoordinatesList(*i),
15204            LayeredItemRef::Curve(i) => EntityKey::Curve(*i),
15205            LayeredItemRef::CylindricalSurface(i) => EntityKey::CylindricalSurface(*i),
15206            LayeredItemRef::DefinedCharacterGlyph(i) => EntityKey::DefinedCharacterGlyph(*i),
15207            LayeredItemRef::DefinedSymbol(i) => EntityKey::DefinedSymbol(*i),
15208            LayeredItemRef::DegenerateToroidalSurface(i) => {
15209                EntityKey::DegenerateToroidalSurface(*i)
15210            }
15211            LayeredItemRef::DescriptiveRepresentationItem(i) => {
15212                EntityKey::DescriptiveRepresentationItem(*i)
15213            }
15214            LayeredItemRef::Direction(i) => EntityKey::Direction(*i),
15215            LayeredItemRef::DraughtingAnnotationOccurrence(i) => {
15216                EntityKey::DraughtingAnnotationOccurrence(*i)
15217            }
15218            LayeredItemRef::DraughtingCallout(i) => EntityKey::DraughtingCallout(*i),
15219            LayeredItemRef::Edge(i) => EntityKey::Edge(*i),
15220            LayeredItemRef::EdgeCurve(i) => EntityKey::EdgeCurve(*i),
15221            LayeredItemRef::EdgeLoop(i) => EntityKey::EdgeLoop(*i),
15222            LayeredItemRef::ElementarySurface(i) => EntityKey::ElementarySurface(*i),
15223            LayeredItemRef::Ellipse(i) => EntityKey::Ellipse(*i),
15224            LayeredItemRef::ExternallyDefinedHatchStyle(i) => {
15225                EntityKey::ExternallyDefinedHatchStyle(*i)
15226            }
15227            LayeredItemRef::ExternallyDefinedTileStyle(i) => {
15228                EntityKey::ExternallyDefinedTileStyle(*i)
15229            }
15230            LayeredItemRef::Face(i) => EntityKey::Face(*i),
15231            LayeredItemRef::FaceBound(i) => EntityKey::FaceBound(*i),
15232            LayeredItemRef::FaceOuterBound(i) => EntityKey::FaceOuterBound(*i),
15233            LayeredItemRef::FaceSurface(i) => EntityKey::FaceSurface(*i),
15234            LayeredItemRef::FillAreaStyleHatching(i) => EntityKey::FillAreaStyleHatching(*i),
15235            LayeredItemRef::FillAreaStyleTileColouredRegion(i) => {
15236                EntityKey::FillAreaStyleTileColouredRegion(*i)
15237            }
15238            LayeredItemRef::FillAreaStyleTileCurveWithStyle(i) => {
15239                EntityKey::FillAreaStyleTileCurveWithStyle(*i)
15240            }
15241            LayeredItemRef::FillAreaStyleTileSymbolWithStyle(i) => {
15242                EntityKey::FillAreaStyleTileSymbolWithStyle(*i)
15243            }
15244            LayeredItemRef::FillAreaStyleTiles(i) => EntityKey::FillAreaStyleTiles(*i),
15245            LayeredItemRef::GeometricCurveSet(i) => EntityKey::GeometricCurveSet(*i),
15246            LayeredItemRef::GeometricRepresentationItem(i) => {
15247                EntityKey::GeometricRepresentationItem(*i)
15248            }
15249            LayeredItemRef::GeometricSet(i) => EntityKey::GeometricSet(*i),
15250            LayeredItemRef::Hyperbola(i) => EntityKey::Hyperbola(*i),
15251            LayeredItemRef::IntegerRepresentationItem(i) => {
15252                EntityKey::IntegerRepresentationItem(*i)
15253            }
15254            LayeredItemRef::IntersectionCurve(i) => EntityKey::IntersectionCurve(*i),
15255            LayeredItemRef::LeaderCurve(i) => EntityKey::LeaderCurve(*i),
15256            LayeredItemRef::LeaderDirectedCallout(i) => EntityKey::LeaderDirectedCallout(*i),
15257            LayeredItemRef::LeaderTerminator(i) => EntityKey::LeaderTerminator(*i),
15258            LayeredItemRef::Line(i) => EntityKey::Line(*i),
15259            LayeredItemRef::Loop(i) => EntityKey::Loop(*i),
15260            LayeredItemRef::ManifoldSolidBrep(i) => EntityKey::ManifoldSolidBrep(*i),
15261            LayeredItemRef::MappedItem(i) => EntityKey::MappedItem(*i),
15262            LayeredItemRef::MeasureRepresentationItem(i) => {
15263                EntityKey::MeasureRepresentationItem(*i)
15264            }
15265            LayeredItemRef::OffsetSurface(i) => EntityKey::OffsetSurface(*i),
15266            LayeredItemRef::OneDirectionRepeatFactor(i) => EntityKey::OneDirectionRepeatFactor(*i),
15267            LayeredItemRef::OpenShell(i) => EntityKey::OpenShell(*i),
15268            LayeredItemRef::OrientedClosedShell(i) => EntityKey::OrientedClosedShell(*i),
15269            LayeredItemRef::OrientedEdge(i) => EntityKey::OrientedEdge(*i),
15270            LayeredItemRef::OverRidingStyledItem(i) => EntityKey::OverRidingStyledItem(*i),
15271            LayeredItemRef::Path(i) => EntityKey::Path(*i),
15272            LayeredItemRef::Pcurve(i) => EntityKey::Pcurve(*i),
15273            LayeredItemRef::Placement(i) => EntityKey::Placement(*i),
15274            LayeredItemRef::PlanarBox(i) => EntityKey::PlanarBox(*i),
15275            LayeredItemRef::PlanarExtent(i) => EntityKey::PlanarExtent(*i),
15276            LayeredItemRef::Plane(i) => EntityKey::Plane(*i),
15277            LayeredItemRef::Point(i) => EntityKey::Point(*i),
15278            LayeredItemRef::PolyLoop(i) => EntityKey::PolyLoop(*i),
15279            LayeredItemRef::Polyline(i) => EntityKey::Polyline(*i),
15280            LayeredItemRef::PresentationArea(i) => EntityKey::PresentationArea(*i),
15281            LayeredItemRef::PresentationRepresentation(i) => {
15282                EntityKey::PresentationRepresentation(*i)
15283            }
15284            LayeredItemRef::PresentationView(i) => EntityKey::PresentationView(*i),
15285            LayeredItemRef::QualifiedRepresentationItem(i) => {
15286                EntityKey::QualifiedRepresentationItem(*i)
15287            }
15288            LayeredItemRef::QuasiUniformCurve(i) => EntityKey::QuasiUniformCurve(*i),
15289            LayeredItemRef::QuasiUniformSurface(i) => EntityKey::QuasiUniformSurface(*i),
15290            LayeredItemRef::RationalBSplineCurve(i) => EntityKey::RationalBSplineCurve(*i),
15291            LayeredItemRef::RationalBSplineSurface(i) => EntityKey::RationalBSplineSurface(*i),
15292            LayeredItemRef::RealRepresentationItem(i) => EntityKey::RealRepresentationItem(*i),
15293            LayeredItemRef::RepositionedTessellatedItem(i) => {
15294                EntityKey::RepositionedTessellatedItem(*i)
15295            }
15296            LayeredItemRef::RepresentationItem(i) => EntityKey::RepresentationItem(*i),
15297            LayeredItemRef::SeamCurve(i) => EntityKey::SeamCurve(*i),
15298            LayeredItemRef::ShellBasedSurfaceModel(i) => EntityKey::ShellBasedSurfaceModel(*i),
15299            LayeredItemRef::SolidModel(i) => EntityKey::SolidModel(*i),
15300            LayeredItemRef::SphericalSurface(i) => EntityKey::SphericalSurface(*i),
15301            LayeredItemRef::StyledItem(i) => EntityKey::StyledItem(*i),
15302            LayeredItemRef::Surface(i) => EntityKey::Surface(*i),
15303            LayeredItemRef::SurfaceCurve(i) => EntityKey::SurfaceCurve(*i),
15304            LayeredItemRef::SurfaceOfLinearExtrusion(i) => EntityKey::SurfaceOfLinearExtrusion(*i),
15305            LayeredItemRef::SurfaceOfRevolution(i) => EntityKey::SurfaceOfRevolution(*i),
15306            LayeredItemRef::SweptSurface(i) => EntityKey::SweptSurface(*i),
15307            LayeredItemRef::SymbolTarget(i) => EntityKey::SymbolTarget(*i),
15308            LayeredItemRef::TerminatorSymbol(i) => EntityKey::TerminatorSymbol(*i),
15309            LayeredItemRef::TessellatedAnnotationOccurrence(i) => {
15310                EntityKey::TessellatedAnnotationOccurrence(*i)
15311            }
15312            LayeredItemRef::TessellatedCurveSet(i) => EntityKey::TessellatedCurveSet(*i),
15313            LayeredItemRef::TessellatedFace(i) => EntityKey::TessellatedFace(*i),
15314            LayeredItemRef::TessellatedGeometricSet(i) => EntityKey::TessellatedGeometricSet(*i),
15315            LayeredItemRef::TessellatedItem(i) => EntityKey::TessellatedItem(*i),
15316            LayeredItemRef::TessellatedShell(i) => EntityKey::TessellatedShell(*i),
15317            LayeredItemRef::TessellatedSolid(i) => EntityKey::TessellatedSolid(*i),
15318            LayeredItemRef::TessellatedStructuredItem(i) => {
15319                EntityKey::TessellatedStructuredItem(*i)
15320            }
15321            LayeredItemRef::TessellatedSurfaceSet(i) => EntityKey::TessellatedSurfaceSet(*i),
15322            LayeredItemRef::TextLiteral(i) => EntityKey::TextLiteral(*i),
15323            LayeredItemRef::TopologicalRepresentationItem(i) => {
15324                EntityKey::TopologicalRepresentationItem(*i)
15325            }
15326            LayeredItemRef::ToroidalSurface(i) => EntityKey::ToroidalSurface(*i),
15327            LayeredItemRef::TrimmedCurve(i) => EntityKey::TrimmedCurve(*i),
15328            LayeredItemRef::TwoDirectionRepeatFactor(i) => EntityKey::TwoDirectionRepeatFactor(*i),
15329            LayeredItemRef::UniformCurve(i) => EntityKey::UniformCurve(*i),
15330            LayeredItemRef::UniformSurface(i) => EntityKey::UniformSurface(*i),
15331            LayeredItemRef::ValueRepresentationItem(i) => EntityKey::ValueRepresentationItem(*i),
15332            LayeredItemRef::Vector(i) => EntityKey::Vector(*i),
15333            LayeredItemRef::Vertex(i) => EntityKey::Vertex(*i),
15334            LayeredItemRef::VertexLoop(i) => EntityKey::VertexLoop(*i),
15335            LayeredItemRef::VertexPoint(i) => EntityKey::VertexPoint(*i),
15336            LayeredItemRef::VertexShell(i) => EntityKey::VertexShell(*i),
15337            LayeredItemRef::WireShell(i) => EntityKey::WireShell(*i),
15338            LayeredItemRef::Complex(i) => EntityKey::ComplexUnit(*i),
15339        }
15340    }
15341}
15342
15343#[derive(Clone, Copy, Debug)]
15344pub enum LengthMeasureWithUnitRefView<'m> {
15345    LengthMeasureWithUnit(&'m LengthMeasureWithUnit),
15346    Complex(&'m ComplexUnit),
15347}
15348impl LengthMeasureWithUnitRef {
15349    pub fn resolve<'m>(&self, model: &'m StepModel) -> LengthMeasureWithUnitRefView<'m> {
15350        match self {
15351            LengthMeasureWithUnitRef::LengthMeasureWithUnit(i) => {
15352                LengthMeasureWithUnitRefView::LengthMeasureWithUnit(
15353                    model.length_measure_with_unit_arena.get(i.0),
15354                )
15355            }
15356            LengthMeasureWithUnitRef::Complex(i) => {
15357                LengthMeasureWithUnitRefView::Complex(model.complex_unit_arena.get(i.0))
15358            }
15359        }
15360    }
15361    pub fn entity_key(&self) -> EntityKey {
15362        match self {
15363            LengthMeasureWithUnitRef::LengthMeasureWithUnit(i) => {
15364                EntityKey::LengthMeasureWithUnit(*i)
15365            }
15366            LengthMeasureWithUnitRef::Complex(i) => EntityKey::ComplexUnit(*i),
15367        }
15368    }
15369}
15370
15371#[derive(Clone, Copy, Debug)]
15372pub enum LengthOrPlaneAngleMeasureWithUnitSelectRefView<'m> {
15373    LengthMeasureWithUnit(&'m LengthMeasureWithUnit),
15374    PlaneAngleMeasureWithUnit(&'m PlaneAngleMeasureWithUnit),
15375    Complex(&'m ComplexUnit),
15376}
15377impl LengthOrPlaneAngleMeasureWithUnitSelectRef {
15378    pub fn resolve<'m>(
15379        &self,
15380        model: &'m StepModel,
15381    ) -> LengthOrPlaneAngleMeasureWithUnitSelectRefView<'m> {
15382        match self {
15383            LengthOrPlaneAngleMeasureWithUnitSelectRef::LengthMeasureWithUnit(i) => {
15384                LengthOrPlaneAngleMeasureWithUnitSelectRefView::LengthMeasureWithUnit(
15385                    model.length_measure_with_unit_arena.get(i.0),
15386                )
15387            }
15388            LengthOrPlaneAngleMeasureWithUnitSelectRef::PlaneAngleMeasureWithUnit(i) => {
15389                LengthOrPlaneAngleMeasureWithUnitSelectRefView::PlaneAngleMeasureWithUnit(
15390                    model.plane_angle_measure_with_unit_arena.get(i.0),
15391                )
15392            }
15393            LengthOrPlaneAngleMeasureWithUnitSelectRef::Complex(i) => {
15394                LengthOrPlaneAngleMeasureWithUnitSelectRefView::Complex(
15395                    model.complex_unit_arena.get(i.0),
15396                )
15397            }
15398        }
15399    }
15400    pub fn entity_key(&self) -> EntityKey {
15401        match self {
15402            LengthOrPlaneAngleMeasureWithUnitSelectRef::LengthMeasureWithUnit(i) => {
15403                EntityKey::LengthMeasureWithUnit(*i)
15404            }
15405            LengthOrPlaneAngleMeasureWithUnitSelectRef::PlaneAngleMeasureWithUnit(i) => {
15406                EntityKey::PlaneAngleMeasureWithUnit(*i)
15407            }
15408            LengthOrPlaneAngleMeasureWithUnitSelectRef::Complex(i) => EntityKey::ComplexUnit(*i),
15409        }
15410    }
15411}
15412
15413#[derive(Clone, Copy, Debug)]
15414pub enum LocalTimeRefView<'m> {
15415    LocalTime(&'m LocalTime),
15416}
15417impl LocalTimeRef {
15418    pub fn resolve<'m>(&self, model: &'m StepModel) -> LocalTimeRefView<'m> {
15419        match self {
15420            LocalTimeRef::LocalTime(i) => {
15421                LocalTimeRefView::LocalTime(model.local_time_arena.get(i.0))
15422            }
15423        }
15424    }
15425    pub fn entity_key(&self) -> EntityKey {
15426        match self {
15427            LocalTimeRef::LocalTime(i) => EntityKey::LocalTime(*i),
15428        }
15429    }
15430}
15431
15432#[derive(Clone, Copy, Debug)]
15433pub enum LoopRefView<'m> {
15434    EdgeLoop(&'m EdgeLoop),
15435    Loop(&'m Loop),
15436    PolyLoop(&'m PolyLoop),
15437    VertexLoop(&'m VertexLoop),
15438    Complex(&'m ComplexUnit),
15439}
15440impl LoopRef {
15441    pub fn resolve<'m>(&self, model: &'m StepModel) -> LoopRefView<'m> {
15442        match self {
15443            LoopRef::EdgeLoop(i) => LoopRefView::EdgeLoop(model.edge_loop_arena.get(i.0)),
15444            LoopRef::Loop(i) => LoopRefView::Loop(model.loop_arena.get(i.0)),
15445            LoopRef::PolyLoop(i) => LoopRefView::PolyLoop(model.poly_loop_arena.get(i.0)),
15446            LoopRef::VertexLoop(i) => LoopRefView::VertexLoop(model.vertex_loop_arena.get(i.0)),
15447            LoopRef::Complex(i) => LoopRefView::Complex(model.complex_unit_arena.get(i.0)),
15448        }
15449    }
15450    pub fn entity_key(&self) -> EntityKey {
15451        match self {
15452            LoopRef::EdgeLoop(i) => EntityKey::EdgeLoop(*i),
15453            LoopRef::Loop(i) => EntityKey::Loop(*i),
15454            LoopRef::PolyLoop(i) => EntityKey::PolyLoop(*i),
15455            LoopRef::VertexLoop(i) => EntityKey::VertexLoop(*i),
15456            LoopRef::Complex(i) => EntityKey::ComplexUnit(*i),
15457        }
15458    }
15459}
15460
15461#[derive(Clone, Copy, Debug)]
15462pub enum ManifoldSolidBrepRefView<'m> {
15463    BrepWithVoids(&'m BrepWithVoids),
15464    ManifoldSolidBrep(&'m ManifoldSolidBrep),
15465    Complex(&'m ComplexUnit),
15466}
15467impl ManifoldSolidBrepRef {
15468    pub fn resolve<'m>(&self, model: &'m StepModel) -> ManifoldSolidBrepRefView<'m> {
15469        match self {
15470            ManifoldSolidBrepRef::BrepWithVoids(i) => {
15471                ManifoldSolidBrepRefView::BrepWithVoids(model.brep_with_voids_arena.get(i.0))
15472            }
15473            ManifoldSolidBrepRef::ManifoldSolidBrep(i) => {
15474                ManifoldSolidBrepRefView::ManifoldSolidBrep(
15475                    model.manifold_solid_brep_arena.get(i.0),
15476                )
15477            }
15478            ManifoldSolidBrepRef::Complex(i) => {
15479                ManifoldSolidBrepRefView::Complex(model.complex_unit_arena.get(i.0))
15480            }
15481        }
15482    }
15483    pub fn entity_key(&self) -> EntityKey {
15484        match self {
15485            ManifoldSolidBrepRef::BrepWithVoids(i) => EntityKey::BrepWithVoids(*i),
15486            ManifoldSolidBrepRef::ManifoldSolidBrep(i) => EntityKey::ManifoldSolidBrep(*i),
15487            ManifoldSolidBrepRef::Complex(i) => EntityKey::ComplexUnit(*i),
15488        }
15489    }
15490}
15491
15492#[derive(Clone, Copy, Debug)]
15493pub enum MeasureWithUnitRefView<'m> {
15494    LengthMeasureWithUnit(&'m LengthMeasureWithUnit),
15495    MassMeasureWithUnit(&'m MassMeasureWithUnit),
15496    MeasureRepresentationItem(&'m MeasureRepresentationItem),
15497    MeasureWithUnit(&'m MeasureWithUnit),
15498    PlaneAngleMeasureWithUnit(&'m PlaneAngleMeasureWithUnit),
15499    RatioMeasureWithUnit(&'m RatioMeasureWithUnit),
15500    UncertaintyMeasureWithUnit(&'m UncertaintyMeasureWithUnit),
15501    Complex(&'m ComplexUnit),
15502}
15503impl MeasureWithUnitRef {
15504    pub fn resolve<'m>(&self, model: &'m StepModel) -> MeasureWithUnitRefView<'m> {
15505        match self {
15506            MeasureWithUnitRef::LengthMeasureWithUnit(i) => {
15507                MeasureWithUnitRefView::LengthMeasureWithUnit(
15508                    model.length_measure_with_unit_arena.get(i.0),
15509                )
15510            }
15511            MeasureWithUnitRef::MassMeasureWithUnit(i) => {
15512                MeasureWithUnitRefView::MassMeasureWithUnit(
15513                    model.mass_measure_with_unit_arena.get(i.0),
15514                )
15515            }
15516            MeasureWithUnitRef::MeasureRepresentationItem(i) => {
15517                MeasureWithUnitRefView::MeasureRepresentationItem(
15518                    model.measure_representation_item_arena.get(i.0),
15519                )
15520            }
15521            MeasureWithUnitRef::MeasureWithUnit(i) => {
15522                MeasureWithUnitRefView::MeasureWithUnit(model.measure_with_unit_arena.get(i.0))
15523            }
15524            MeasureWithUnitRef::PlaneAngleMeasureWithUnit(i) => {
15525                MeasureWithUnitRefView::PlaneAngleMeasureWithUnit(
15526                    model.plane_angle_measure_with_unit_arena.get(i.0),
15527                )
15528            }
15529            MeasureWithUnitRef::RatioMeasureWithUnit(i) => {
15530                MeasureWithUnitRefView::RatioMeasureWithUnit(
15531                    model.ratio_measure_with_unit_arena.get(i.0),
15532                )
15533            }
15534            MeasureWithUnitRef::UncertaintyMeasureWithUnit(i) => {
15535                MeasureWithUnitRefView::UncertaintyMeasureWithUnit(
15536                    model.uncertainty_measure_with_unit_arena.get(i.0),
15537                )
15538            }
15539            MeasureWithUnitRef::Complex(i) => {
15540                MeasureWithUnitRefView::Complex(model.complex_unit_arena.get(i.0))
15541            }
15542        }
15543    }
15544    pub fn entity_key(&self) -> EntityKey {
15545        match self {
15546            MeasureWithUnitRef::LengthMeasureWithUnit(i) => EntityKey::LengthMeasureWithUnit(*i),
15547            MeasureWithUnitRef::MassMeasureWithUnit(i) => EntityKey::MassMeasureWithUnit(*i),
15548            MeasureWithUnitRef::MeasureRepresentationItem(i) => {
15549                EntityKey::MeasureRepresentationItem(*i)
15550            }
15551            MeasureWithUnitRef::MeasureWithUnit(i) => EntityKey::MeasureWithUnit(*i),
15552            MeasureWithUnitRef::PlaneAngleMeasureWithUnit(i) => {
15553                EntityKey::PlaneAngleMeasureWithUnit(*i)
15554            }
15555            MeasureWithUnitRef::RatioMeasureWithUnit(i) => EntityKey::RatioMeasureWithUnit(*i),
15556            MeasureWithUnitRef::UncertaintyMeasureWithUnit(i) => {
15557                EntityKey::UncertaintyMeasureWithUnit(*i)
15558            }
15559            MeasureWithUnitRef::Complex(i) => EntityKey::ComplexUnit(*i),
15560        }
15561    }
15562}
15563
15564#[derive(Clone, Copy, Debug)]
15565pub enum MechanicalDesignAndDraughtingRelationshipSelectRefView<'m> {
15566    AdvancedBrepShapeRepresentation(&'m AdvancedBrepShapeRepresentation),
15567    DraughtingModel(&'m DraughtingModel),
15568    GeometricallyBoundedSurfaceShapeRepresentation(
15569        &'m GeometricallyBoundedSurfaceShapeRepresentation,
15570    ),
15571    GeometricallyBoundedWireframeShapeRepresentation(
15572        &'m GeometricallyBoundedWireframeShapeRepresentation,
15573    ),
15574    ManifoldSurfaceShapeRepresentation(&'m ManifoldSurfaceShapeRepresentation),
15575    MechanicalDesignGeometricPresentationRepresentation(
15576        &'m MechanicalDesignGeometricPresentationRepresentation,
15577    ),
15578    MechanicalDesignPresentationRepresentationWithDraughting(
15579        &'m MechanicalDesignPresentationRepresentationWithDraughting,
15580    ),
15581    MechanicalDesignShadedPresentationRepresentation(
15582        &'m MechanicalDesignShadedPresentationRepresentation,
15583    ),
15584    ShapeDimensionRepresentation(&'m ShapeDimensionRepresentation),
15585    ShapeRepresentation(&'m ShapeRepresentation),
15586    ShapeRepresentationWithParameters(&'m ShapeRepresentationWithParameters),
15587    TessellatedShapeRepresentation(&'m TessellatedShapeRepresentation),
15588    Complex(&'m ComplexUnit),
15589}
15590impl MechanicalDesignAndDraughtingRelationshipSelectRef {
15591    pub fn resolve<'m>(
15592        &self,
15593        model: &'m StepModel,
15594    ) -> MechanicalDesignAndDraughtingRelationshipSelectRefView<'m> {
15595        match self {
15596            MechanicalDesignAndDraughtingRelationshipSelectRef::AdvancedBrepShapeRepresentation(i) => MechanicalDesignAndDraughtingRelationshipSelectRefView::AdvancedBrepShapeRepresentation(model.advanced_brep_shape_representation_arena.get(i.0)),
15597            MechanicalDesignAndDraughtingRelationshipSelectRef::DraughtingModel(i) => MechanicalDesignAndDraughtingRelationshipSelectRefView::DraughtingModel(model.draughting_model_arena.get(i.0)),
15598            MechanicalDesignAndDraughtingRelationshipSelectRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => MechanicalDesignAndDraughtingRelationshipSelectRefView::GeometricallyBoundedSurfaceShapeRepresentation(model.geometrically_bounded_surface_shape_representation_arena.get(i.0)),
15599            MechanicalDesignAndDraughtingRelationshipSelectRef::GeometricallyBoundedWireframeShapeRepresentation(i) => MechanicalDesignAndDraughtingRelationshipSelectRefView::GeometricallyBoundedWireframeShapeRepresentation(model.geometrically_bounded_wireframe_shape_representation_arena.get(i.0)),
15600            MechanicalDesignAndDraughtingRelationshipSelectRef::ManifoldSurfaceShapeRepresentation(i) => MechanicalDesignAndDraughtingRelationshipSelectRefView::ManifoldSurfaceShapeRepresentation(model.manifold_surface_shape_representation_arena.get(i.0)),
15601            MechanicalDesignAndDraughtingRelationshipSelectRef::MechanicalDesignGeometricPresentationRepresentation(i) => MechanicalDesignAndDraughtingRelationshipSelectRefView::MechanicalDesignGeometricPresentationRepresentation(model.mechanical_design_geometric_presentation_representation_arena.get(i.0)),
15602            MechanicalDesignAndDraughtingRelationshipSelectRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => MechanicalDesignAndDraughtingRelationshipSelectRefView::MechanicalDesignPresentationRepresentationWithDraughting(model.mechanical_design_presentation_representation_with_draughting_arena.get(i.0)),
15603            MechanicalDesignAndDraughtingRelationshipSelectRef::MechanicalDesignShadedPresentationRepresentation(i) => MechanicalDesignAndDraughtingRelationshipSelectRefView::MechanicalDesignShadedPresentationRepresentation(model.mechanical_design_shaded_presentation_representation_arena.get(i.0)),
15604            MechanicalDesignAndDraughtingRelationshipSelectRef::ShapeDimensionRepresentation(i) => MechanicalDesignAndDraughtingRelationshipSelectRefView::ShapeDimensionRepresentation(model.shape_dimension_representation_arena.get(i.0)),
15605            MechanicalDesignAndDraughtingRelationshipSelectRef::ShapeRepresentation(i) => MechanicalDesignAndDraughtingRelationshipSelectRefView::ShapeRepresentation(model.shape_representation_arena.get(i.0)),
15606            MechanicalDesignAndDraughtingRelationshipSelectRef::ShapeRepresentationWithParameters(i) => MechanicalDesignAndDraughtingRelationshipSelectRefView::ShapeRepresentationWithParameters(model.shape_representation_with_parameters_arena.get(i.0)),
15607            MechanicalDesignAndDraughtingRelationshipSelectRef::TessellatedShapeRepresentation(i) => MechanicalDesignAndDraughtingRelationshipSelectRefView::TessellatedShapeRepresentation(model.tessellated_shape_representation_arena.get(i.0)),
15608            MechanicalDesignAndDraughtingRelationshipSelectRef::Complex(i) => MechanicalDesignAndDraughtingRelationshipSelectRefView::Complex(model.complex_unit_arena.get(i.0)),
15609        }
15610    }
15611    pub fn entity_key(&self) -> EntityKey {
15612        match self {
15613            MechanicalDesignAndDraughtingRelationshipSelectRef::AdvancedBrepShapeRepresentation(i) => EntityKey::AdvancedBrepShapeRepresentation(*i),
15614            MechanicalDesignAndDraughtingRelationshipSelectRef::DraughtingModel(i) => EntityKey::DraughtingModel(*i),
15615            MechanicalDesignAndDraughtingRelationshipSelectRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => EntityKey::GeometricallyBoundedSurfaceShapeRepresentation(*i),
15616            MechanicalDesignAndDraughtingRelationshipSelectRef::GeometricallyBoundedWireframeShapeRepresentation(i) => EntityKey::GeometricallyBoundedWireframeShapeRepresentation(*i),
15617            MechanicalDesignAndDraughtingRelationshipSelectRef::ManifoldSurfaceShapeRepresentation(i) => EntityKey::ManifoldSurfaceShapeRepresentation(*i),
15618            MechanicalDesignAndDraughtingRelationshipSelectRef::MechanicalDesignGeometricPresentationRepresentation(i) => EntityKey::MechanicalDesignGeometricPresentationRepresentation(*i),
15619            MechanicalDesignAndDraughtingRelationshipSelectRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => EntityKey::MechanicalDesignPresentationRepresentationWithDraughting(*i),
15620            MechanicalDesignAndDraughtingRelationshipSelectRef::MechanicalDesignShadedPresentationRepresentation(i) => EntityKey::MechanicalDesignShadedPresentationRepresentation(*i),
15621            MechanicalDesignAndDraughtingRelationshipSelectRef::ShapeDimensionRepresentation(i) => EntityKey::ShapeDimensionRepresentation(*i),
15622            MechanicalDesignAndDraughtingRelationshipSelectRef::ShapeRepresentation(i) => EntityKey::ShapeRepresentation(*i),
15623            MechanicalDesignAndDraughtingRelationshipSelectRef::ShapeRepresentationWithParameters(i) => EntityKey::ShapeRepresentationWithParameters(*i),
15624            MechanicalDesignAndDraughtingRelationshipSelectRef::TessellatedShapeRepresentation(i) => EntityKey::TessellatedShapeRepresentation(*i),
15625            MechanicalDesignAndDraughtingRelationshipSelectRef::Complex(i) => EntityKey::ComplexUnit(*i),
15626        }
15627    }
15628}
15629
15630#[derive(Clone, Copy, Debug)]
15631pub enum NameAttributeSelectRefView<'m> {
15632    ActionRequestSolution(&'m ActionRequestSolution),
15633    Address(&'m Address),
15634    AreaUnit(&'m AreaUnit),
15635    ConfigurationDesign(&'m ConfigurationDesign),
15636    ConfigurationEffectivity(&'m ConfigurationEffectivity),
15637    ContextDependentShapeRepresentation(&'m ContextDependentShapeRepresentation),
15638    DerivedUnit(&'m DerivedUnit),
15639    Effectivity(&'m Effectivity),
15640    OrganizationalAddress(&'m OrganizationalAddress),
15641    PersonAndOrganization(&'m PersonAndOrganization),
15642    PersonAndOrganizationAddress(&'m PersonAndOrganizationAddress),
15643    PersonalAddress(&'m PersonalAddress),
15644    ProductDefinition(&'m ProductDefinition),
15645    ProductDefinitionEffectivity(&'m ProductDefinitionEffectivity),
15646    ProductDefinitionSubstitute(&'m ProductDefinitionSubstitute),
15647    ProductDefinitionWithAssociatedDocuments(&'m ProductDefinitionWithAssociatedDocuments),
15648    PropertyDefinitionRepresentation(&'m PropertyDefinitionRepresentation),
15649    ShapeDefinitionRepresentation(&'m ShapeDefinitionRepresentation),
15650    VolumeUnit(&'m VolumeUnit),
15651    Complex(&'m ComplexUnit),
15652}
15653impl NameAttributeSelectRef {
15654    pub fn resolve<'m>(&self, model: &'m StepModel) -> NameAttributeSelectRefView<'m> {
15655        match self {
15656            NameAttributeSelectRef::ActionRequestSolution(i) => {
15657                NameAttributeSelectRefView::ActionRequestSolution(
15658                    model.action_request_solution_arena.get(i.0),
15659                )
15660            }
15661            NameAttributeSelectRef::Address(i) => {
15662                NameAttributeSelectRefView::Address(model.address_arena.get(i.0))
15663            }
15664            NameAttributeSelectRef::AreaUnit(i) => {
15665                NameAttributeSelectRefView::AreaUnit(model.area_unit_arena.get(i.0))
15666            }
15667            NameAttributeSelectRef::ConfigurationDesign(i) => {
15668                NameAttributeSelectRefView::ConfigurationDesign(
15669                    model.configuration_design_arena.get(i.0),
15670                )
15671            }
15672            NameAttributeSelectRef::ConfigurationEffectivity(i) => {
15673                NameAttributeSelectRefView::ConfigurationEffectivity(
15674                    model.configuration_effectivity_arena.get(i.0),
15675                )
15676            }
15677            NameAttributeSelectRef::ContextDependentShapeRepresentation(i) => {
15678                NameAttributeSelectRefView::ContextDependentShapeRepresentation(
15679                    model.context_dependent_shape_representation_arena.get(i.0),
15680                )
15681            }
15682            NameAttributeSelectRef::DerivedUnit(i) => {
15683                NameAttributeSelectRefView::DerivedUnit(model.derived_unit_arena.get(i.0))
15684            }
15685            NameAttributeSelectRef::Effectivity(i) => {
15686                NameAttributeSelectRefView::Effectivity(model.effectivity_arena.get(i.0))
15687            }
15688            NameAttributeSelectRef::OrganizationalAddress(i) => {
15689                NameAttributeSelectRefView::OrganizationalAddress(
15690                    model.organizational_address_arena.get(i.0),
15691                )
15692            }
15693            NameAttributeSelectRef::PersonAndOrganization(i) => {
15694                NameAttributeSelectRefView::PersonAndOrganization(
15695                    model.person_and_organization_arena.get(i.0),
15696                )
15697            }
15698            NameAttributeSelectRef::PersonAndOrganizationAddress(i) => {
15699                NameAttributeSelectRefView::PersonAndOrganizationAddress(
15700                    model.person_and_organization_address_arena.get(i.0),
15701                )
15702            }
15703            NameAttributeSelectRef::PersonalAddress(i) => {
15704                NameAttributeSelectRefView::PersonalAddress(model.personal_address_arena.get(i.0))
15705            }
15706            NameAttributeSelectRef::ProductDefinition(i) => {
15707                NameAttributeSelectRefView::ProductDefinition(
15708                    model.product_definition_arena.get(i.0),
15709                )
15710            }
15711            NameAttributeSelectRef::ProductDefinitionEffectivity(i) => {
15712                NameAttributeSelectRefView::ProductDefinitionEffectivity(
15713                    model.product_definition_effectivity_arena.get(i.0),
15714                )
15715            }
15716            NameAttributeSelectRef::ProductDefinitionSubstitute(i) => {
15717                NameAttributeSelectRefView::ProductDefinitionSubstitute(
15718                    model.product_definition_substitute_arena.get(i.0),
15719                )
15720            }
15721            NameAttributeSelectRef::ProductDefinitionWithAssociatedDocuments(i) => {
15722                NameAttributeSelectRefView::ProductDefinitionWithAssociatedDocuments(
15723                    model
15724                        .product_definition_with_associated_documents_arena
15725                        .get(i.0),
15726                )
15727            }
15728            NameAttributeSelectRef::PropertyDefinitionRepresentation(i) => {
15729                NameAttributeSelectRefView::PropertyDefinitionRepresentation(
15730                    model.property_definition_representation_arena.get(i.0),
15731                )
15732            }
15733            NameAttributeSelectRef::ShapeDefinitionRepresentation(i) => {
15734                NameAttributeSelectRefView::ShapeDefinitionRepresentation(
15735                    model.shape_definition_representation_arena.get(i.0),
15736                )
15737            }
15738            NameAttributeSelectRef::VolumeUnit(i) => {
15739                NameAttributeSelectRefView::VolumeUnit(model.volume_unit_arena.get(i.0))
15740            }
15741            NameAttributeSelectRef::Complex(i) => {
15742                NameAttributeSelectRefView::Complex(model.complex_unit_arena.get(i.0))
15743            }
15744        }
15745    }
15746    pub fn entity_key(&self) -> EntityKey {
15747        match self {
15748            NameAttributeSelectRef::ActionRequestSolution(i) => {
15749                EntityKey::ActionRequestSolution(*i)
15750            }
15751            NameAttributeSelectRef::Address(i) => EntityKey::Address(*i),
15752            NameAttributeSelectRef::AreaUnit(i) => EntityKey::AreaUnit(*i),
15753            NameAttributeSelectRef::ConfigurationDesign(i) => EntityKey::ConfigurationDesign(*i),
15754            NameAttributeSelectRef::ConfigurationEffectivity(i) => {
15755                EntityKey::ConfigurationEffectivity(*i)
15756            }
15757            NameAttributeSelectRef::ContextDependentShapeRepresentation(i) => {
15758                EntityKey::ContextDependentShapeRepresentation(*i)
15759            }
15760            NameAttributeSelectRef::DerivedUnit(i) => EntityKey::DerivedUnit(*i),
15761            NameAttributeSelectRef::Effectivity(i) => EntityKey::Effectivity(*i),
15762            NameAttributeSelectRef::OrganizationalAddress(i) => {
15763                EntityKey::OrganizationalAddress(*i)
15764            }
15765            NameAttributeSelectRef::PersonAndOrganization(i) => {
15766                EntityKey::PersonAndOrganization(*i)
15767            }
15768            NameAttributeSelectRef::PersonAndOrganizationAddress(i) => {
15769                EntityKey::PersonAndOrganizationAddress(*i)
15770            }
15771            NameAttributeSelectRef::PersonalAddress(i) => EntityKey::PersonalAddress(*i),
15772            NameAttributeSelectRef::ProductDefinition(i) => EntityKey::ProductDefinition(*i),
15773            NameAttributeSelectRef::ProductDefinitionEffectivity(i) => {
15774                EntityKey::ProductDefinitionEffectivity(*i)
15775            }
15776            NameAttributeSelectRef::ProductDefinitionSubstitute(i) => {
15777                EntityKey::ProductDefinitionSubstitute(*i)
15778            }
15779            NameAttributeSelectRef::ProductDefinitionWithAssociatedDocuments(i) => {
15780                EntityKey::ProductDefinitionWithAssociatedDocuments(*i)
15781            }
15782            NameAttributeSelectRef::PropertyDefinitionRepresentation(i) => {
15783                EntityKey::PropertyDefinitionRepresentation(*i)
15784            }
15785            NameAttributeSelectRef::ShapeDefinitionRepresentation(i) => {
15786                EntityKey::ShapeDefinitionRepresentation(*i)
15787            }
15788            NameAttributeSelectRef::VolumeUnit(i) => EntityKey::VolumeUnit(*i),
15789            NameAttributeSelectRef::Complex(i) => EntityKey::ComplexUnit(*i),
15790        }
15791    }
15792}
15793
15794#[derive(Clone, Copy, Debug)]
15795pub enum NamedUnitRefView<'m> {
15796    ContextDependentUnit(&'m ContextDependentUnit),
15797    ConversionBasedUnit(&'m ConversionBasedUnit),
15798    LengthUnit(&'m LengthUnit),
15799    MassUnit(&'m MassUnit),
15800    NamedUnit(&'m NamedUnit),
15801    PlaneAngleUnit(&'m PlaneAngleUnit),
15802    RatioUnit(&'m RatioUnit),
15803    SiUnit(&'m SiUnit),
15804    SolidAngleUnit(&'m SolidAngleUnit),
15805    TimeUnit(&'m TimeUnit),
15806    Complex(&'m ComplexUnit),
15807}
15808impl NamedUnitRef {
15809    pub fn resolve<'m>(&self, model: &'m StepModel) -> NamedUnitRefView<'m> {
15810        match self {
15811            NamedUnitRef::ContextDependentUnit(i) => {
15812                NamedUnitRefView::ContextDependentUnit(model.context_dependent_unit_arena.get(i.0))
15813            }
15814            NamedUnitRef::ConversionBasedUnit(i) => {
15815                NamedUnitRefView::ConversionBasedUnit(model.conversion_based_unit_arena.get(i.0))
15816            }
15817            NamedUnitRef::LengthUnit(i) => {
15818                NamedUnitRefView::LengthUnit(model.length_unit_arena.get(i.0))
15819            }
15820            NamedUnitRef::MassUnit(i) => NamedUnitRefView::MassUnit(model.mass_unit_arena.get(i.0)),
15821            NamedUnitRef::NamedUnit(i) => {
15822                NamedUnitRefView::NamedUnit(model.named_unit_arena.get(i.0))
15823            }
15824            NamedUnitRef::PlaneAngleUnit(i) => {
15825                NamedUnitRefView::PlaneAngleUnit(model.plane_angle_unit_arena.get(i.0))
15826            }
15827            NamedUnitRef::RatioUnit(i) => {
15828                NamedUnitRefView::RatioUnit(model.ratio_unit_arena.get(i.0))
15829            }
15830            NamedUnitRef::SiUnit(i) => NamedUnitRefView::SiUnit(model.si_unit_arena.get(i.0)),
15831            NamedUnitRef::SolidAngleUnit(i) => {
15832                NamedUnitRefView::SolidAngleUnit(model.solid_angle_unit_arena.get(i.0))
15833            }
15834            NamedUnitRef::TimeUnit(i) => NamedUnitRefView::TimeUnit(model.time_unit_arena.get(i.0)),
15835            NamedUnitRef::Complex(i) => {
15836                NamedUnitRefView::Complex(model.complex_unit_arena.get(i.0))
15837            }
15838        }
15839    }
15840    pub fn entity_key(&self) -> EntityKey {
15841        match self {
15842            NamedUnitRef::ContextDependentUnit(i) => EntityKey::ContextDependentUnit(*i),
15843            NamedUnitRef::ConversionBasedUnit(i) => EntityKey::ConversionBasedUnit(*i),
15844            NamedUnitRef::LengthUnit(i) => EntityKey::LengthUnit(*i),
15845            NamedUnitRef::MassUnit(i) => EntityKey::MassUnit(*i),
15846            NamedUnitRef::NamedUnit(i) => EntityKey::NamedUnit(*i),
15847            NamedUnitRef::PlaneAngleUnit(i) => EntityKey::PlaneAngleUnit(*i),
15848            NamedUnitRef::RatioUnit(i) => EntityKey::RatioUnit(*i),
15849            NamedUnitRef::SiUnit(i) => EntityKey::SiUnit(*i),
15850            NamedUnitRef::SolidAngleUnit(i) => EntityKey::SolidAngleUnit(*i),
15851            NamedUnitRef::TimeUnit(i) => EntityKey::TimeUnit(*i),
15852            NamedUnitRef::Complex(i) => EntityKey::ComplexUnit(*i),
15853        }
15854    }
15855}
15856
15857#[derive(Clone, Copy, Debug)]
15858pub enum ObjectRoleRefView<'m> {
15859    ObjectRole(&'m ObjectRole),
15860}
15861impl ObjectRoleRef {
15862    pub fn resolve<'m>(&self, model: &'m StepModel) -> ObjectRoleRefView<'m> {
15863        match self {
15864            ObjectRoleRef::ObjectRole(i) => {
15865                ObjectRoleRefView::ObjectRole(model.object_role_arena.get(i.0))
15866            }
15867        }
15868    }
15869    pub fn entity_key(&self) -> EntityKey {
15870        match self {
15871            ObjectRoleRef::ObjectRole(i) => EntityKey::ObjectRole(*i),
15872        }
15873    }
15874}
15875
15876#[derive(Clone, Copy, Debug)]
15877pub enum OneDirectionRepeatFactorRefView<'m> {
15878    OneDirectionRepeatFactor(&'m OneDirectionRepeatFactor),
15879    TwoDirectionRepeatFactor(&'m TwoDirectionRepeatFactor),
15880    Complex(&'m ComplexUnit),
15881}
15882impl OneDirectionRepeatFactorRef {
15883    pub fn resolve<'m>(&self, model: &'m StepModel) -> OneDirectionRepeatFactorRefView<'m> {
15884        match self {
15885            OneDirectionRepeatFactorRef::OneDirectionRepeatFactor(i) => {
15886                OneDirectionRepeatFactorRefView::OneDirectionRepeatFactor(
15887                    model.one_direction_repeat_factor_arena.get(i.0),
15888                )
15889            }
15890            OneDirectionRepeatFactorRef::TwoDirectionRepeatFactor(i) => {
15891                OneDirectionRepeatFactorRefView::TwoDirectionRepeatFactor(
15892                    model.two_direction_repeat_factor_arena.get(i.0),
15893                )
15894            }
15895            OneDirectionRepeatFactorRef::Complex(i) => {
15896                OneDirectionRepeatFactorRefView::Complex(model.complex_unit_arena.get(i.0))
15897            }
15898        }
15899    }
15900    pub fn entity_key(&self) -> EntityKey {
15901        match self {
15902            OneDirectionRepeatFactorRef::OneDirectionRepeatFactor(i) => {
15903                EntityKey::OneDirectionRepeatFactor(*i)
15904            }
15905            OneDirectionRepeatFactorRef::TwoDirectionRepeatFactor(i) => {
15906                EntityKey::TwoDirectionRepeatFactor(*i)
15907            }
15908            OneDirectionRepeatFactorRef::Complex(i) => EntityKey::ComplexUnit(*i),
15909        }
15910    }
15911}
15912
15913#[derive(Clone, Copy, Debug)]
15914pub enum OrganizationRefView<'m> {
15915    Organization(&'m Organization),
15916}
15917impl OrganizationRef {
15918    pub fn resolve<'m>(&self, model: &'m StepModel) -> OrganizationRefView<'m> {
15919        match self {
15920            OrganizationRef::Organization(i) => {
15921                OrganizationRefView::Organization(model.organization_arena.get(i.0))
15922            }
15923        }
15924    }
15925    pub fn entity_key(&self) -> EntityKey {
15926        match self {
15927            OrganizationRef::Organization(i) => EntityKey::Organization(*i),
15928        }
15929    }
15930}
15931
15932#[derive(Clone, Copy, Debug)]
15933pub enum OrganizationalProjectRefView<'m> {
15934    OrganizationalProject(&'m OrganizationalProject),
15935}
15936impl OrganizationalProjectRef {
15937    pub fn resolve<'m>(&self, model: &'m StepModel) -> OrganizationalProjectRefView<'m> {
15938        match self {
15939            OrganizationalProjectRef::OrganizationalProject(i) => {
15940                OrganizationalProjectRefView::OrganizationalProject(
15941                    model.organizational_project_arena.get(i.0),
15942                )
15943            }
15944        }
15945    }
15946    pub fn entity_key(&self) -> EntityKey {
15947        match self {
15948            OrganizationalProjectRef::OrganizationalProject(i) => {
15949                EntityKey::OrganizationalProject(*i)
15950            }
15951        }
15952    }
15953}
15954
15955#[derive(Clone, Copy, Debug)]
15956pub enum OrientedClosedShellRefView<'m> {
15957    OrientedClosedShell(&'m OrientedClosedShell),
15958    Complex(&'m ComplexUnit),
15959}
15960impl OrientedClosedShellRef {
15961    pub fn resolve<'m>(&self, model: &'m StepModel) -> OrientedClosedShellRefView<'m> {
15962        match self {
15963            OrientedClosedShellRef::OrientedClosedShell(i) => {
15964                OrientedClosedShellRefView::OrientedClosedShell(
15965                    model.oriented_closed_shell_arena.get(i.0),
15966                )
15967            }
15968            OrientedClosedShellRef::Complex(i) => {
15969                OrientedClosedShellRefView::Complex(model.complex_unit_arena.get(i.0))
15970            }
15971        }
15972    }
15973    pub fn entity_key(&self) -> EntityKey {
15974        match self {
15975            OrientedClosedShellRef::OrientedClosedShell(i) => EntityKey::OrientedClosedShell(*i),
15976            OrientedClosedShellRef::Complex(i) => EntityKey::ComplexUnit(*i),
15977        }
15978    }
15979}
15980
15981#[derive(Clone, Copy, Debug)]
15982pub enum OrientedEdgeRefView<'m> {
15983    OrientedEdge(&'m OrientedEdge),
15984    Complex(&'m ComplexUnit),
15985}
15986impl OrientedEdgeRef {
15987    pub fn resolve<'m>(&self, model: &'m StepModel) -> OrientedEdgeRefView<'m> {
15988        match self {
15989            OrientedEdgeRef::OrientedEdge(i) => {
15990                OrientedEdgeRefView::OrientedEdge(model.oriented_edge_arena.get(i.0))
15991            }
15992            OrientedEdgeRef::Complex(i) => {
15993                OrientedEdgeRefView::Complex(model.complex_unit_arena.get(i.0))
15994            }
15995        }
15996    }
15997    pub fn entity_key(&self) -> EntityKey {
15998        match self {
15999            OrientedEdgeRef::OrientedEdge(i) => EntityKey::OrientedEdge(*i),
16000            OrientedEdgeRef::Complex(i) => EntityKey::ComplexUnit(*i),
16001        }
16002    }
16003}
16004
16005#[derive(Clone, Copy, Debug)]
16006pub enum PcurveOrSurfaceRefView<'m> {
16007    BSplineSurface(&'m BSplineSurface),
16008    BSplineSurfaceWithKnots(&'m BSplineSurfaceWithKnots),
16009    BezierSurface(&'m BezierSurface),
16010    BoundedPcurve(&'m BoundedPcurve),
16011    BoundedSurface(&'m BoundedSurface),
16012    ConicalSurface(&'m ConicalSurface),
16013    CylindricalSurface(&'m CylindricalSurface),
16014    DegenerateToroidalSurface(&'m DegenerateToroidalSurface),
16015    ElementarySurface(&'m ElementarySurface),
16016    OffsetSurface(&'m OffsetSurface),
16017    Pcurve(&'m Pcurve),
16018    Plane(&'m Plane),
16019    QuasiUniformSurface(&'m QuasiUniformSurface),
16020    RationalBSplineSurface(&'m RationalBSplineSurface),
16021    SphericalSurface(&'m SphericalSurface),
16022    Surface(&'m Surface),
16023    SurfaceOfLinearExtrusion(&'m SurfaceOfLinearExtrusion),
16024    SurfaceOfRevolution(&'m SurfaceOfRevolution),
16025    SweptSurface(&'m SweptSurface),
16026    ToroidalSurface(&'m ToroidalSurface),
16027    UniformSurface(&'m UniformSurface),
16028    Complex(&'m ComplexUnit),
16029}
16030impl PcurveOrSurfaceRef {
16031    pub fn resolve<'m>(&self, model: &'m StepModel) -> PcurveOrSurfaceRefView<'m> {
16032        match self {
16033            PcurveOrSurfaceRef::BSplineSurface(i) => {
16034                PcurveOrSurfaceRefView::BSplineSurface(model.b_spline_surface_arena.get(i.0))
16035            }
16036            PcurveOrSurfaceRef::BSplineSurfaceWithKnots(i) => {
16037                PcurveOrSurfaceRefView::BSplineSurfaceWithKnots(
16038                    model.b_spline_surface_with_knots_arena.get(i.0),
16039                )
16040            }
16041            PcurveOrSurfaceRef::BezierSurface(i) => {
16042                PcurveOrSurfaceRefView::BezierSurface(model.bezier_surface_arena.get(i.0))
16043            }
16044            PcurveOrSurfaceRef::BoundedPcurve(i) => {
16045                PcurveOrSurfaceRefView::BoundedPcurve(model.bounded_pcurve_arena.get(i.0))
16046            }
16047            PcurveOrSurfaceRef::BoundedSurface(i) => {
16048                PcurveOrSurfaceRefView::BoundedSurface(model.bounded_surface_arena.get(i.0))
16049            }
16050            PcurveOrSurfaceRef::ConicalSurface(i) => {
16051                PcurveOrSurfaceRefView::ConicalSurface(model.conical_surface_arena.get(i.0))
16052            }
16053            PcurveOrSurfaceRef::CylindricalSurface(i) => {
16054                PcurveOrSurfaceRefView::CylindricalSurface(model.cylindrical_surface_arena.get(i.0))
16055            }
16056            PcurveOrSurfaceRef::DegenerateToroidalSurface(i) => {
16057                PcurveOrSurfaceRefView::DegenerateToroidalSurface(
16058                    model.degenerate_toroidal_surface_arena.get(i.0),
16059                )
16060            }
16061            PcurveOrSurfaceRef::ElementarySurface(i) => {
16062                PcurveOrSurfaceRefView::ElementarySurface(model.elementary_surface_arena.get(i.0))
16063            }
16064            PcurveOrSurfaceRef::OffsetSurface(i) => {
16065                PcurveOrSurfaceRefView::OffsetSurface(model.offset_surface_arena.get(i.0))
16066            }
16067            PcurveOrSurfaceRef::Pcurve(i) => {
16068                PcurveOrSurfaceRefView::Pcurve(model.pcurve_arena.get(i.0))
16069            }
16070            PcurveOrSurfaceRef::Plane(i) => {
16071                PcurveOrSurfaceRefView::Plane(model.plane_arena.get(i.0))
16072            }
16073            PcurveOrSurfaceRef::QuasiUniformSurface(i) => {
16074                PcurveOrSurfaceRefView::QuasiUniformSurface(
16075                    model.quasi_uniform_surface_arena.get(i.0),
16076                )
16077            }
16078            PcurveOrSurfaceRef::RationalBSplineSurface(i) => {
16079                PcurveOrSurfaceRefView::RationalBSplineSurface(
16080                    model.rational_b_spline_surface_arena.get(i.0),
16081                )
16082            }
16083            PcurveOrSurfaceRef::SphericalSurface(i) => {
16084                PcurveOrSurfaceRefView::SphericalSurface(model.spherical_surface_arena.get(i.0))
16085            }
16086            PcurveOrSurfaceRef::Surface(i) => {
16087                PcurveOrSurfaceRefView::Surface(model.surface_arena.get(i.0))
16088            }
16089            PcurveOrSurfaceRef::SurfaceOfLinearExtrusion(i) => {
16090                PcurveOrSurfaceRefView::SurfaceOfLinearExtrusion(
16091                    model.surface_of_linear_extrusion_arena.get(i.0),
16092                )
16093            }
16094            PcurveOrSurfaceRef::SurfaceOfRevolution(i) => {
16095                PcurveOrSurfaceRefView::SurfaceOfRevolution(
16096                    model.surface_of_revolution_arena.get(i.0),
16097                )
16098            }
16099            PcurveOrSurfaceRef::SweptSurface(i) => {
16100                PcurveOrSurfaceRefView::SweptSurface(model.swept_surface_arena.get(i.0))
16101            }
16102            PcurveOrSurfaceRef::ToroidalSurface(i) => {
16103                PcurveOrSurfaceRefView::ToroidalSurface(model.toroidal_surface_arena.get(i.0))
16104            }
16105            PcurveOrSurfaceRef::UniformSurface(i) => {
16106                PcurveOrSurfaceRefView::UniformSurface(model.uniform_surface_arena.get(i.0))
16107            }
16108            PcurveOrSurfaceRef::Complex(i) => {
16109                PcurveOrSurfaceRefView::Complex(model.complex_unit_arena.get(i.0))
16110            }
16111        }
16112    }
16113    pub fn entity_key(&self) -> EntityKey {
16114        match self {
16115            PcurveOrSurfaceRef::BSplineSurface(i) => EntityKey::BSplineSurface(*i),
16116            PcurveOrSurfaceRef::BSplineSurfaceWithKnots(i) => {
16117                EntityKey::BSplineSurfaceWithKnots(*i)
16118            }
16119            PcurveOrSurfaceRef::BezierSurface(i) => EntityKey::BezierSurface(*i),
16120            PcurveOrSurfaceRef::BoundedPcurve(i) => EntityKey::BoundedPcurve(*i),
16121            PcurveOrSurfaceRef::BoundedSurface(i) => EntityKey::BoundedSurface(*i),
16122            PcurveOrSurfaceRef::ConicalSurface(i) => EntityKey::ConicalSurface(*i),
16123            PcurveOrSurfaceRef::CylindricalSurface(i) => EntityKey::CylindricalSurface(*i),
16124            PcurveOrSurfaceRef::DegenerateToroidalSurface(i) => {
16125                EntityKey::DegenerateToroidalSurface(*i)
16126            }
16127            PcurveOrSurfaceRef::ElementarySurface(i) => EntityKey::ElementarySurface(*i),
16128            PcurveOrSurfaceRef::OffsetSurface(i) => EntityKey::OffsetSurface(*i),
16129            PcurveOrSurfaceRef::Pcurve(i) => EntityKey::Pcurve(*i),
16130            PcurveOrSurfaceRef::Plane(i) => EntityKey::Plane(*i),
16131            PcurveOrSurfaceRef::QuasiUniformSurface(i) => EntityKey::QuasiUniformSurface(*i),
16132            PcurveOrSurfaceRef::RationalBSplineSurface(i) => EntityKey::RationalBSplineSurface(*i),
16133            PcurveOrSurfaceRef::SphericalSurface(i) => EntityKey::SphericalSurface(*i),
16134            PcurveOrSurfaceRef::Surface(i) => EntityKey::Surface(*i),
16135            PcurveOrSurfaceRef::SurfaceOfLinearExtrusion(i) => {
16136                EntityKey::SurfaceOfLinearExtrusion(*i)
16137            }
16138            PcurveOrSurfaceRef::SurfaceOfRevolution(i) => EntityKey::SurfaceOfRevolution(*i),
16139            PcurveOrSurfaceRef::SweptSurface(i) => EntityKey::SweptSurface(*i),
16140            PcurveOrSurfaceRef::ToroidalSurface(i) => EntityKey::ToroidalSurface(*i),
16141            PcurveOrSurfaceRef::UniformSurface(i) => EntityKey::UniformSurface(*i),
16142            PcurveOrSurfaceRef::Complex(i) => EntityKey::ComplexUnit(*i),
16143        }
16144    }
16145}
16146
16147#[derive(Clone, Copy, Debug)]
16148pub enum PersonRefView<'m> {
16149    Person(&'m Person),
16150}
16151impl PersonRef {
16152    pub fn resolve<'m>(&self, model: &'m StepModel) -> PersonRefView<'m> {
16153        match self {
16154            PersonRef::Person(i) => PersonRefView::Person(model.person_arena.get(i.0)),
16155        }
16156    }
16157    pub fn entity_key(&self) -> EntityKey {
16158        match self {
16159            PersonRef::Person(i) => EntityKey::Person(*i),
16160        }
16161    }
16162}
16163
16164#[derive(Clone, Copy, Debug)]
16165pub enum PersonAndOrganizationRefView<'m> {
16166    PersonAndOrganization(&'m PersonAndOrganization),
16167}
16168impl PersonAndOrganizationRef {
16169    pub fn resolve<'m>(&self, model: &'m StepModel) -> PersonAndOrganizationRefView<'m> {
16170        match self {
16171            PersonAndOrganizationRef::PersonAndOrganization(i) => {
16172                PersonAndOrganizationRefView::PersonAndOrganization(
16173                    model.person_and_organization_arena.get(i.0),
16174                )
16175            }
16176        }
16177    }
16178    pub fn entity_key(&self) -> EntityKey {
16179        match self {
16180            PersonAndOrganizationRef::PersonAndOrganization(i) => {
16181                EntityKey::PersonAndOrganization(*i)
16182            }
16183        }
16184    }
16185}
16186
16187#[derive(Clone, Copy, Debug)]
16188pub enum PersonAndOrganizationItemRefView<'m> {
16189    Action(&'m Action),
16190    ActionDirective(&'m ActionDirective),
16191    ActionMethod(&'m ActionMethod),
16192    ActionProperty(&'m ActionProperty),
16193    ActionRelationship(&'m ActionRelationship),
16194    ActionRequestSolution(&'m ActionRequestSolution),
16195    AdvancedBrepShapeRepresentation(&'m AdvancedBrepShapeRepresentation),
16196    AppliedDateAndTimeAssignment(&'m AppliedDateAndTimeAssignment),
16197    AppliedDocumentReference(&'m AppliedDocumentReference),
16198    AppliedPersonAndOrganizationAssignment(&'m AppliedPersonAndOrganizationAssignment),
16199    Approval(&'m Approval),
16200    ApprovalStatus(&'m ApprovalStatus),
16201    AscribableState(&'m AscribableState),
16202    AssemblyComponentUsage(&'m AssemblyComponentUsage),
16203    CcDesignDateAndTimeAssignment(&'m CcDesignDateAndTimeAssignment),
16204    Certification(&'m Certification),
16205    CharacterizedRepresentation(&'m CharacterizedRepresentation),
16206    ConfigurationDesign(&'m ConfigurationDesign),
16207    ConfigurationEffectivity(&'m ConfigurationEffectivity),
16208    ConfigurationItem(&'m ConfigurationItem),
16209    ConstructiveGeometryRepresentation(&'m ConstructiveGeometryRepresentation),
16210    Contract(&'m Contract),
16211    DateAndTimeAssignment(&'m DateAndTimeAssignment),
16212    DefinitionalRepresentation(&'m DefinitionalRepresentation),
16213    DesignContext(&'m DesignContext),
16214    DocumentFile(&'m DocumentFile),
16215    DocumentType(&'m DocumentType),
16216    DraughtingModel(&'m DraughtingModel),
16217    Effectivity(&'m Effectivity),
16218    GeneralProperty(&'m GeneralProperty),
16219    GeometricallyBoundedSurfaceShapeRepresentation(
16220        &'m GeometricallyBoundedSurfaceShapeRepresentation,
16221    ),
16222    GeometricallyBoundedWireframeShapeRepresentation(
16223        &'m GeometricallyBoundedWireframeShapeRepresentation,
16224    ),
16225    MakeFromUsageOption(&'m MakeFromUsageOption),
16226    ManifoldSurfaceShapeRepresentation(&'m ManifoldSurfaceShapeRepresentation),
16227    MechanicalDesignGeometricPresentationRepresentation(
16228        &'m MechanicalDesignGeometricPresentationRepresentation,
16229    ),
16230    MechanicalDesignPresentationRepresentationWithDraughting(
16231        &'m MechanicalDesignPresentationRepresentationWithDraughting,
16232    ),
16233    MechanicalDesignShadedPresentationRepresentation(
16234        &'m MechanicalDesignShadedPresentationRepresentation,
16235    ),
16236    NextAssemblyUsageOccurrence(&'m NextAssemblyUsageOccurrence),
16237    Organization(&'m Organization),
16238    OrganizationRelationship(&'m OrganizationRelationship),
16239    OrganizationalAddress(&'m OrganizationalAddress),
16240    OrganizationalProject(&'m OrganizationalProject),
16241    PersonAndOrganization(&'m PersonAndOrganization),
16242    PersonAndOrganizationAddress(&'m PersonAndOrganizationAddress),
16243    PresentationArea(&'m PresentationArea),
16244    PresentationRepresentation(&'m PresentationRepresentation),
16245    PresentationView(&'m PresentationView),
16246    Product(&'m Product),
16247    ProductConcept(&'m ProductConcept),
16248    ProductConceptFeature(&'m ProductConceptFeature),
16249    ProductConceptFeatureCategory(&'m ProductConceptFeatureCategory),
16250    ProductDefinition(&'m ProductDefinition),
16251    ProductDefinitionContext(&'m ProductDefinitionContext),
16252    ProductDefinitionEffectivity(&'m ProductDefinitionEffectivity),
16253    ProductDefinitionFormation(&'m ProductDefinitionFormation),
16254    ProductDefinitionFormationWithSpecifiedSource(
16255        &'m ProductDefinitionFormationWithSpecifiedSource,
16256    ),
16257    ProductDefinitionRelationship(&'m ProductDefinitionRelationship),
16258    ProductDefinitionShape(&'m ProductDefinitionShape),
16259    ProductDefinitionSubstitute(&'m ProductDefinitionSubstitute),
16260    ProductDefinitionUsage(&'m ProductDefinitionUsage),
16261    ProductDefinitionWithAssociatedDocuments(&'m ProductDefinitionWithAssociatedDocuments),
16262    PropertyDefinition(&'m PropertyDefinition),
16263    PropertyDefinitionRepresentation(&'m PropertyDefinitionRepresentation),
16264    Representation(&'m Representation),
16265    ResourceProperty(&'m ResourceProperty),
16266    SecurityClassification(&'m SecurityClassification),
16267    SecurityClassificationLevel(&'m SecurityClassificationLevel),
16268    ShapeDefinitionRepresentation(&'m ShapeDefinitionRepresentation),
16269    ShapeDimensionRepresentation(&'m ShapeDimensionRepresentation),
16270    ShapeRepresentation(&'m ShapeRepresentation),
16271    ShapeRepresentationWithParameters(&'m ShapeRepresentationWithParameters),
16272    StateObserved(&'m StateObserved),
16273    StateType(&'m StateType),
16274    SymbolRepresentation(&'m SymbolRepresentation),
16275    TessellatedShapeRepresentation(&'m TessellatedShapeRepresentation),
16276    VersionedActionRequest(&'m VersionedActionRequest),
16277    Complex(&'m ComplexUnit),
16278}
16279impl PersonAndOrganizationItemRef {
16280    pub fn resolve<'m>(&self, model: &'m StepModel) -> PersonAndOrganizationItemRefView<'m> {
16281        match self {
16282            PersonAndOrganizationItemRef::Action(i) => PersonAndOrganizationItemRefView::Action(model.action_arena.get(i.0)),
16283            PersonAndOrganizationItemRef::ActionDirective(i) => PersonAndOrganizationItemRefView::ActionDirective(model.action_directive_arena.get(i.0)),
16284            PersonAndOrganizationItemRef::ActionMethod(i) => PersonAndOrganizationItemRefView::ActionMethod(model.action_method_arena.get(i.0)),
16285            PersonAndOrganizationItemRef::ActionProperty(i) => PersonAndOrganizationItemRefView::ActionProperty(model.action_property_arena.get(i.0)),
16286            PersonAndOrganizationItemRef::ActionRelationship(i) => PersonAndOrganizationItemRefView::ActionRelationship(model.action_relationship_arena.get(i.0)),
16287            PersonAndOrganizationItemRef::ActionRequestSolution(i) => PersonAndOrganizationItemRefView::ActionRequestSolution(model.action_request_solution_arena.get(i.0)),
16288            PersonAndOrganizationItemRef::AdvancedBrepShapeRepresentation(i) => PersonAndOrganizationItemRefView::AdvancedBrepShapeRepresentation(model.advanced_brep_shape_representation_arena.get(i.0)),
16289            PersonAndOrganizationItemRef::AppliedDateAndTimeAssignment(i) => PersonAndOrganizationItemRefView::AppliedDateAndTimeAssignment(model.applied_date_and_time_assignment_arena.get(i.0)),
16290            PersonAndOrganizationItemRef::AppliedDocumentReference(i) => PersonAndOrganizationItemRefView::AppliedDocumentReference(model.applied_document_reference_arena.get(i.0)),
16291            PersonAndOrganizationItemRef::AppliedPersonAndOrganizationAssignment(i) => PersonAndOrganizationItemRefView::AppliedPersonAndOrganizationAssignment(model.applied_person_and_organization_assignment_arena.get(i.0)),
16292            PersonAndOrganizationItemRef::Approval(i) => PersonAndOrganizationItemRefView::Approval(model.approval_arena.get(i.0)),
16293            PersonAndOrganizationItemRef::ApprovalStatus(i) => PersonAndOrganizationItemRefView::ApprovalStatus(model.approval_status_arena.get(i.0)),
16294            PersonAndOrganizationItemRef::AscribableState(i) => PersonAndOrganizationItemRefView::AscribableState(model.ascribable_state_arena.get(i.0)),
16295            PersonAndOrganizationItemRef::AssemblyComponentUsage(i) => PersonAndOrganizationItemRefView::AssemblyComponentUsage(model.assembly_component_usage_arena.get(i.0)),
16296            PersonAndOrganizationItemRef::CcDesignDateAndTimeAssignment(i) => PersonAndOrganizationItemRefView::CcDesignDateAndTimeAssignment(model.cc_design_date_and_time_assignment_arena.get(i.0)),
16297            PersonAndOrganizationItemRef::Certification(i) => PersonAndOrganizationItemRefView::Certification(model.certification_arena.get(i.0)),
16298            PersonAndOrganizationItemRef::CharacterizedRepresentation(i) => PersonAndOrganizationItemRefView::CharacterizedRepresentation(model.characterized_representation_arena.get(i.0)),
16299            PersonAndOrganizationItemRef::ConfigurationDesign(i) => PersonAndOrganizationItemRefView::ConfigurationDesign(model.configuration_design_arena.get(i.0)),
16300            PersonAndOrganizationItemRef::ConfigurationEffectivity(i) => PersonAndOrganizationItemRefView::ConfigurationEffectivity(model.configuration_effectivity_arena.get(i.0)),
16301            PersonAndOrganizationItemRef::ConfigurationItem(i) => PersonAndOrganizationItemRefView::ConfigurationItem(model.configuration_item_arena.get(i.0)),
16302            PersonAndOrganizationItemRef::ConstructiveGeometryRepresentation(i) => PersonAndOrganizationItemRefView::ConstructiveGeometryRepresentation(model.constructive_geometry_representation_arena.get(i.0)),
16303            PersonAndOrganizationItemRef::Contract(i) => PersonAndOrganizationItemRefView::Contract(model.contract_arena.get(i.0)),
16304            PersonAndOrganizationItemRef::DateAndTimeAssignment(i) => PersonAndOrganizationItemRefView::DateAndTimeAssignment(model.date_and_time_assignment_arena.get(i.0)),
16305            PersonAndOrganizationItemRef::DefinitionalRepresentation(i) => PersonAndOrganizationItemRefView::DefinitionalRepresentation(model.definitional_representation_arena.get(i.0)),
16306            PersonAndOrganizationItemRef::DesignContext(i) => PersonAndOrganizationItemRefView::DesignContext(model.design_context_arena.get(i.0)),
16307            PersonAndOrganizationItemRef::DocumentFile(i) => PersonAndOrganizationItemRefView::DocumentFile(model.document_file_arena.get(i.0)),
16308            PersonAndOrganizationItemRef::DocumentType(i) => PersonAndOrganizationItemRefView::DocumentType(model.document_type_arena.get(i.0)),
16309            PersonAndOrganizationItemRef::DraughtingModel(i) => PersonAndOrganizationItemRefView::DraughtingModel(model.draughting_model_arena.get(i.0)),
16310            PersonAndOrganizationItemRef::Effectivity(i) => PersonAndOrganizationItemRefView::Effectivity(model.effectivity_arena.get(i.0)),
16311            PersonAndOrganizationItemRef::GeneralProperty(i) => PersonAndOrganizationItemRefView::GeneralProperty(model.general_property_arena.get(i.0)),
16312            PersonAndOrganizationItemRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => PersonAndOrganizationItemRefView::GeometricallyBoundedSurfaceShapeRepresentation(model.geometrically_bounded_surface_shape_representation_arena.get(i.0)),
16313            PersonAndOrganizationItemRef::GeometricallyBoundedWireframeShapeRepresentation(i) => PersonAndOrganizationItemRefView::GeometricallyBoundedWireframeShapeRepresentation(model.geometrically_bounded_wireframe_shape_representation_arena.get(i.0)),
16314            PersonAndOrganizationItemRef::MakeFromUsageOption(i) => PersonAndOrganizationItemRefView::MakeFromUsageOption(model.make_from_usage_option_arena.get(i.0)),
16315            PersonAndOrganizationItemRef::ManifoldSurfaceShapeRepresentation(i) => PersonAndOrganizationItemRefView::ManifoldSurfaceShapeRepresentation(model.manifold_surface_shape_representation_arena.get(i.0)),
16316            PersonAndOrganizationItemRef::MechanicalDesignGeometricPresentationRepresentation(i) => PersonAndOrganizationItemRefView::MechanicalDesignGeometricPresentationRepresentation(model.mechanical_design_geometric_presentation_representation_arena.get(i.0)),
16317            PersonAndOrganizationItemRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => PersonAndOrganizationItemRefView::MechanicalDesignPresentationRepresentationWithDraughting(model.mechanical_design_presentation_representation_with_draughting_arena.get(i.0)),
16318            PersonAndOrganizationItemRef::MechanicalDesignShadedPresentationRepresentation(i) => PersonAndOrganizationItemRefView::MechanicalDesignShadedPresentationRepresentation(model.mechanical_design_shaded_presentation_representation_arena.get(i.0)),
16319            PersonAndOrganizationItemRef::NextAssemblyUsageOccurrence(i) => PersonAndOrganizationItemRefView::NextAssemblyUsageOccurrence(model.next_assembly_usage_occurrence_arena.get(i.0)),
16320            PersonAndOrganizationItemRef::Organization(i) => PersonAndOrganizationItemRefView::Organization(model.organization_arena.get(i.0)),
16321            PersonAndOrganizationItemRef::OrganizationRelationship(i) => PersonAndOrganizationItemRefView::OrganizationRelationship(model.organization_relationship_arena.get(i.0)),
16322            PersonAndOrganizationItemRef::OrganizationalAddress(i) => PersonAndOrganizationItemRefView::OrganizationalAddress(model.organizational_address_arena.get(i.0)),
16323            PersonAndOrganizationItemRef::OrganizationalProject(i) => PersonAndOrganizationItemRefView::OrganizationalProject(model.organizational_project_arena.get(i.0)),
16324            PersonAndOrganizationItemRef::PersonAndOrganization(i) => PersonAndOrganizationItemRefView::PersonAndOrganization(model.person_and_organization_arena.get(i.0)),
16325            PersonAndOrganizationItemRef::PersonAndOrganizationAddress(i) => PersonAndOrganizationItemRefView::PersonAndOrganizationAddress(model.person_and_organization_address_arena.get(i.0)),
16326            PersonAndOrganizationItemRef::PresentationArea(i) => PersonAndOrganizationItemRefView::PresentationArea(model.presentation_area_arena.get(i.0)),
16327            PersonAndOrganizationItemRef::PresentationRepresentation(i) => PersonAndOrganizationItemRefView::PresentationRepresentation(model.presentation_representation_arena.get(i.0)),
16328            PersonAndOrganizationItemRef::PresentationView(i) => PersonAndOrganizationItemRefView::PresentationView(model.presentation_view_arena.get(i.0)),
16329            PersonAndOrganizationItemRef::Product(i) => PersonAndOrganizationItemRefView::Product(model.product_arena.get(i.0)),
16330            PersonAndOrganizationItemRef::ProductConcept(i) => PersonAndOrganizationItemRefView::ProductConcept(model.product_concept_arena.get(i.0)),
16331            PersonAndOrganizationItemRef::ProductConceptFeature(i) => PersonAndOrganizationItemRefView::ProductConceptFeature(model.product_concept_feature_arena.get(i.0)),
16332            PersonAndOrganizationItemRef::ProductConceptFeatureCategory(i) => PersonAndOrganizationItemRefView::ProductConceptFeatureCategory(model.product_concept_feature_category_arena.get(i.0)),
16333            PersonAndOrganizationItemRef::ProductDefinition(i) => PersonAndOrganizationItemRefView::ProductDefinition(model.product_definition_arena.get(i.0)),
16334            PersonAndOrganizationItemRef::ProductDefinitionContext(i) => PersonAndOrganizationItemRefView::ProductDefinitionContext(model.product_definition_context_arena.get(i.0)),
16335            PersonAndOrganizationItemRef::ProductDefinitionEffectivity(i) => PersonAndOrganizationItemRefView::ProductDefinitionEffectivity(model.product_definition_effectivity_arena.get(i.0)),
16336            PersonAndOrganizationItemRef::ProductDefinitionFormation(i) => PersonAndOrganizationItemRefView::ProductDefinitionFormation(model.product_definition_formation_arena.get(i.0)),
16337            PersonAndOrganizationItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => PersonAndOrganizationItemRefView::ProductDefinitionFormationWithSpecifiedSource(model.product_definition_formation_with_specified_source_arena.get(i.0)),
16338            PersonAndOrganizationItemRef::ProductDefinitionRelationship(i) => PersonAndOrganizationItemRefView::ProductDefinitionRelationship(model.product_definition_relationship_arena.get(i.0)),
16339            PersonAndOrganizationItemRef::ProductDefinitionShape(i) => PersonAndOrganizationItemRefView::ProductDefinitionShape(model.product_definition_shape_arena.get(i.0)),
16340            PersonAndOrganizationItemRef::ProductDefinitionSubstitute(i) => PersonAndOrganizationItemRefView::ProductDefinitionSubstitute(model.product_definition_substitute_arena.get(i.0)),
16341            PersonAndOrganizationItemRef::ProductDefinitionUsage(i) => PersonAndOrganizationItemRefView::ProductDefinitionUsage(model.product_definition_usage_arena.get(i.0)),
16342            PersonAndOrganizationItemRef::ProductDefinitionWithAssociatedDocuments(i) => PersonAndOrganizationItemRefView::ProductDefinitionWithAssociatedDocuments(model.product_definition_with_associated_documents_arena.get(i.0)),
16343            PersonAndOrganizationItemRef::PropertyDefinition(i) => PersonAndOrganizationItemRefView::PropertyDefinition(model.property_definition_arena.get(i.0)),
16344            PersonAndOrganizationItemRef::PropertyDefinitionRepresentation(i) => PersonAndOrganizationItemRefView::PropertyDefinitionRepresentation(model.property_definition_representation_arena.get(i.0)),
16345            PersonAndOrganizationItemRef::Representation(i) => PersonAndOrganizationItemRefView::Representation(model.representation_arena.get(i.0)),
16346            PersonAndOrganizationItemRef::ResourceProperty(i) => PersonAndOrganizationItemRefView::ResourceProperty(model.resource_property_arena.get(i.0)),
16347            PersonAndOrganizationItemRef::SecurityClassification(i) => PersonAndOrganizationItemRefView::SecurityClassification(model.security_classification_arena.get(i.0)),
16348            PersonAndOrganizationItemRef::SecurityClassificationLevel(i) => PersonAndOrganizationItemRefView::SecurityClassificationLevel(model.security_classification_level_arena.get(i.0)),
16349            PersonAndOrganizationItemRef::ShapeDefinitionRepresentation(i) => PersonAndOrganizationItemRefView::ShapeDefinitionRepresentation(model.shape_definition_representation_arena.get(i.0)),
16350            PersonAndOrganizationItemRef::ShapeDimensionRepresentation(i) => PersonAndOrganizationItemRefView::ShapeDimensionRepresentation(model.shape_dimension_representation_arena.get(i.0)),
16351            PersonAndOrganizationItemRef::ShapeRepresentation(i) => PersonAndOrganizationItemRefView::ShapeRepresentation(model.shape_representation_arena.get(i.0)),
16352            PersonAndOrganizationItemRef::ShapeRepresentationWithParameters(i) => PersonAndOrganizationItemRefView::ShapeRepresentationWithParameters(model.shape_representation_with_parameters_arena.get(i.0)),
16353            PersonAndOrganizationItemRef::StateObserved(i) => PersonAndOrganizationItemRefView::StateObserved(model.state_observed_arena.get(i.0)),
16354            PersonAndOrganizationItemRef::StateType(i) => PersonAndOrganizationItemRefView::StateType(model.state_type_arena.get(i.0)),
16355            PersonAndOrganizationItemRef::SymbolRepresentation(i) => PersonAndOrganizationItemRefView::SymbolRepresentation(model.symbol_representation_arena.get(i.0)),
16356            PersonAndOrganizationItemRef::TessellatedShapeRepresentation(i) => PersonAndOrganizationItemRefView::TessellatedShapeRepresentation(model.tessellated_shape_representation_arena.get(i.0)),
16357            PersonAndOrganizationItemRef::VersionedActionRequest(i) => PersonAndOrganizationItemRefView::VersionedActionRequest(model.versioned_action_request_arena.get(i.0)),
16358            PersonAndOrganizationItemRef::Complex(i) => PersonAndOrganizationItemRefView::Complex(model.complex_unit_arena.get(i.0)),
16359        }
16360    }
16361    pub fn entity_key(&self) -> EntityKey {
16362        match self {
16363            PersonAndOrganizationItemRef::Action(i) => EntityKey::Action(*i),
16364            PersonAndOrganizationItemRef::ActionDirective(i) => EntityKey::ActionDirective(*i),
16365            PersonAndOrganizationItemRef::ActionMethod(i) => EntityKey::ActionMethod(*i),
16366            PersonAndOrganizationItemRef::ActionProperty(i) => EntityKey::ActionProperty(*i),
16367            PersonAndOrganizationItemRef::ActionRelationship(i) => EntityKey::ActionRelationship(*i),
16368            PersonAndOrganizationItemRef::ActionRequestSolution(i) => EntityKey::ActionRequestSolution(*i),
16369            PersonAndOrganizationItemRef::AdvancedBrepShapeRepresentation(i) => EntityKey::AdvancedBrepShapeRepresentation(*i),
16370            PersonAndOrganizationItemRef::AppliedDateAndTimeAssignment(i) => EntityKey::AppliedDateAndTimeAssignment(*i),
16371            PersonAndOrganizationItemRef::AppliedDocumentReference(i) => EntityKey::AppliedDocumentReference(*i),
16372            PersonAndOrganizationItemRef::AppliedPersonAndOrganizationAssignment(i) => EntityKey::AppliedPersonAndOrganizationAssignment(*i),
16373            PersonAndOrganizationItemRef::Approval(i) => EntityKey::Approval(*i),
16374            PersonAndOrganizationItemRef::ApprovalStatus(i) => EntityKey::ApprovalStatus(*i),
16375            PersonAndOrganizationItemRef::AscribableState(i) => EntityKey::AscribableState(*i),
16376            PersonAndOrganizationItemRef::AssemblyComponentUsage(i) => EntityKey::AssemblyComponentUsage(*i),
16377            PersonAndOrganizationItemRef::CcDesignDateAndTimeAssignment(i) => EntityKey::CcDesignDateAndTimeAssignment(*i),
16378            PersonAndOrganizationItemRef::Certification(i) => EntityKey::Certification(*i),
16379            PersonAndOrganizationItemRef::CharacterizedRepresentation(i) => EntityKey::CharacterizedRepresentation(*i),
16380            PersonAndOrganizationItemRef::ConfigurationDesign(i) => EntityKey::ConfigurationDesign(*i),
16381            PersonAndOrganizationItemRef::ConfigurationEffectivity(i) => EntityKey::ConfigurationEffectivity(*i),
16382            PersonAndOrganizationItemRef::ConfigurationItem(i) => EntityKey::ConfigurationItem(*i),
16383            PersonAndOrganizationItemRef::ConstructiveGeometryRepresentation(i) => EntityKey::ConstructiveGeometryRepresentation(*i),
16384            PersonAndOrganizationItemRef::Contract(i) => EntityKey::Contract(*i),
16385            PersonAndOrganizationItemRef::DateAndTimeAssignment(i) => EntityKey::DateAndTimeAssignment(*i),
16386            PersonAndOrganizationItemRef::DefinitionalRepresentation(i) => EntityKey::DefinitionalRepresentation(*i),
16387            PersonAndOrganizationItemRef::DesignContext(i) => EntityKey::DesignContext(*i),
16388            PersonAndOrganizationItemRef::DocumentFile(i) => EntityKey::DocumentFile(*i),
16389            PersonAndOrganizationItemRef::DocumentType(i) => EntityKey::DocumentType(*i),
16390            PersonAndOrganizationItemRef::DraughtingModel(i) => EntityKey::DraughtingModel(*i),
16391            PersonAndOrganizationItemRef::Effectivity(i) => EntityKey::Effectivity(*i),
16392            PersonAndOrganizationItemRef::GeneralProperty(i) => EntityKey::GeneralProperty(*i),
16393            PersonAndOrganizationItemRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => EntityKey::GeometricallyBoundedSurfaceShapeRepresentation(*i),
16394            PersonAndOrganizationItemRef::GeometricallyBoundedWireframeShapeRepresentation(i) => EntityKey::GeometricallyBoundedWireframeShapeRepresentation(*i),
16395            PersonAndOrganizationItemRef::MakeFromUsageOption(i) => EntityKey::MakeFromUsageOption(*i),
16396            PersonAndOrganizationItemRef::ManifoldSurfaceShapeRepresentation(i) => EntityKey::ManifoldSurfaceShapeRepresentation(*i),
16397            PersonAndOrganizationItemRef::MechanicalDesignGeometricPresentationRepresentation(i) => EntityKey::MechanicalDesignGeometricPresentationRepresentation(*i),
16398            PersonAndOrganizationItemRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => EntityKey::MechanicalDesignPresentationRepresentationWithDraughting(*i),
16399            PersonAndOrganizationItemRef::MechanicalDesignShadedPresentationRepresentation(i) => EntityKey::MechanicalDesignShadedPresentationRepresentation(*i),
16400            PersonAndOrganizationItemRef::NextAssemblyUsageOccurrence(i) => EntityKey::NextAssemblyUsageOccurrence(*i),
16401            PersonAndOrganizationItemRef::Organization(i) => EntityKey::Organization(*i),
16402            PersonAndOrganizationItemRef::OrganizationRelationship(i) => EntityKey::OrganizationRelationship(*i),
16403            PersonAndOrganizationItemRef::OrganizationalAddress(i) => EntityKey::OrganizationalAddress(*i),
16404            PersonAndOrganizationItemRef::OrganizationalProject(i) => EntityKey::OrganizationalProject(*i),
16405            PersonAndOrganizationItemRef::PersonAndOrganization(i) => EntityKey::PersonAndOrganization(*i),
16406            PersonAndOrganizationItemRef::PersonAndOrganizationAddress(i) => EntityKey::PersonAndOrganizationAddress(*i),
16407            PersonAndOrganizationItemRef::PresentationArea(i) => EntityKey::PresentationArea(*i),
16408            PersonAndOrganizationItemRef::PresentationRepresentation(i) => EntityKey::PresentationRepresentation(*i),
16409            PersonAndOrganizationItemRef::PresentationView(i) => EntityKey::PresentationView(*i),
16410            PersonAndOrganizationItemRef::Product(i) => EntityKey::Product(*i),
16411            PersonAndOrganizationItemRef::ProductConcept(i) => EntityKey::ProductConcept(*i),
16412            PersonAndOrganizationItemRef::ProductConceptFeature(i) => EntityKey::ProductConceptFeature(*i),
16413            PersonAndOrganizationItemRef::ProductConceptFeatureCategory(i) => EntityKey::ProductConceptFeatureCategory(*i),
16414            PersonAndOrganizationItemRef::ProductDefinition(i) => EntityKey::ProductDefinition(*i),
16415            PersonAndOrganizationItemRef::ProductDefinitionContext(i) => EntityKey::ProductDefinitionContext(*i),
16416            PersonAndOrganizationItemRef::ProductDefinitionEffectivity(i) => EntityKey::ProductDefinitionEffectivity(*i),
16417            PersonAndOrganizationItemRef::ProductDefinitionFormation(i) => EntityKey::ProductDefinitionFormation(*i),
16418            PersonAndOrganizationItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => EntityKey::ProductDefinitionFormationWithSpecifiedSource(*i),
16419            PersonAndOrganizationItemRef::ProductDefinitionRelationship(i) => EntityKey::ProductDefinitionRelationship(*i),
16420            PersonAndOrganizationItemRef::ProductDefinitionShape(i) => EntityKey::ProductDefinitionShape(*i),
16421            PersonAndOrganizationItemRef::ProductDefinitionSubstitute(i) => EntityKey::ProductDefinitionSubstitute(*i),
16422            PersonAndOrganizationItemRef::ProductDefinitionUsage(i) => EntityKey::ProductDefinitionUsage(*i),
16423            PersonAndOrganizationItemRef::ProductDefinitionWithAssociatedDocuments(i) => EntityKey::ProductDefinitionWithAssociatedDocuments(*i),
16424            PersonAndOrganizationItemRef::PropertyDefinition(i) => EntityKey::PropertyDefinition(*i),
16425            PersonAndOrganizationItemRef::PropertyDefinitionRepresentation(i) => EntityKey::PropertyDefinitionRepresentation(*i),
16426            PersonAndOrganizationItemRef::Representation(i) => EntityKey::Representation(*i),
16427            PersonAndOrganizationItemRef::ResourceProperty(i) => EntityKey::ResourceProperty(*i),
16428            PersonAndOrganizationItemRef::SecurityClassification(i) => EntityKey::SecurityClassification(*i),
16429            PersonAndOrganizationItemRef::SecurityClassificationLevel(i) => EntityKey::SecurityClassificationLevel(*i),
16430            PersonAndOrganizationItemRef::ShapeDefinitionRepresentation(i) => EntityKey::ShapeDefinitionRepresentation(*i),
16431            PersonAndOrganizationItemRef::ShapeDimensionRepresentation(i) => EntityKey::ShapeDimensionRepresentation(*i),
16432            PersonAndOrganizationItemRef::ShapeRepresentation(i) => EntityKey::ShapeRepresentation(*i),
16433            PersonAndOrganizationItemRef::ShapeRepresentationWithParameters(i) => EntityKey::ShapeRepresentationWithParameters(*i),
16434            PersonAndOrganizationItemRef::StateObserved(i) => EntityKey::StateObserved(*i),
16435            PersonAndOrganizationItemRef::StateType(i) => EntityKey::StateType(*i),
16436            PersonAndOrganizationItemRef::SymbolRepresentation(i) => EntityKey::SymbolRepresentation(*i),
16437            PersonAndOrganizationItemRef::TessellatedShapeRepresentation(i) => EntityKey::TessellatedShapeRepresentation(*i),
16438            PersonAndOrganizationItemRef::VersionedActionRequest(i) => EntityKey::VersionedActionRequest(*i),
16439            PersonAndOrganizationItemRef::Complex(i) => EntityKey::ComplexUnit(*i),
16440        }
16441    }
16442}
16443
16444#[derive(Clone, Copy, Debug)]
16445pub enum PersonAndOrganizationRoleRefView<'m> {
16446    PersonAndOrganizationRole(&'m PersonAndOrganizationRole),
16447}
16448impl PersonAndOrganizationRoleRef {
16449    pub fn resolve<'m>(&self, model: &'m StepModel) -> PersonAndOrganizationRoleRefView<'m> {
16450        match self {
16451            PersonAndOrganizationRoleRef::PersonAndOrganizationRole(i) => {
16452                PersonAndOrganizationRoleRefView::PersonAndOrganizationRole(
16453                    model.person_and_organization_role_arena.get(i.0),
16454                )
16455            }
16456        }
16457    }
16458    pub fn entity_key(&self) -> EntityKey {
16459        match self {
16460            PersonAndOrganizationRoleRef::PersonAndOrganizationRole(i) => {
16461                EntityKey::PersonAndOrganizationRole(*i)
16462            }
16463        }
16464    }
16465}
16466
16467#[derive(Clone, Copy, Debug)]
16468pub enum PersonOrganizationSelectRefView<'m> {
16469    Organization(&'m Organization),
16470    Person(&'m Person),
16471    PersonAndOrganization(&'m PersonAndOrganization),
16472}
16473impl PersonOrganizationSelectRef {
16474    pub fn resolve<'m>(&self, model: &'m StepModel) -> PersonOrganizationSelectRefView<'m> {
16475        match self {
16476            PersonOrganizationSelectRef::Organization(i) => {
16477                PersonOrganizationSelectRefView::Organization(model.organization_arena.get(i.0))
16478            }
16479            PersonOrganizationSelectRef::Person(i) => {
16480                PersonOrganizationSelectRefView::Person(model.person_arena.get(i.0))
16481            }
16482            PersonOrganizationSelectRef::PersonAndOrganization(i) => {
16483                PersonOrganizationSelectRefView::PersonAndOrganization(
16484                    model.person_and_organization_arena.get(i.0),
16485                )
16486            }
16487        }
16488    }
16489    pub fn entity_key(&self) -> EntityKey {
16490        match self {
16491            PersonOrganizationSelectRef::Organization(i) => EntityKey::Organization(*i),
16492            PersonOrganizationSelectRef::Person(i) => EntityKey::Person(*i),
16493            PersonOrganizationSelectRef::PersonAndOrganization(i) => {
16494                EntityKey::PersonAndOrganization(*i)
16495            }
16496        }
16497    }
16498}
16499
16500#[derive(Clone, Copy, Debug)]
16501pub enum PlanarBoxRefView<'m> {
16502    PlanarBox(&'m PlanarBox),
16503    Complex(&'m ComplexUnit),
16504}
16505impl PlanarBoxRef {
16506    pub fn resolve<'m>(&self, model: &'m StepModel) -> PlanarBoxRefView<'m> {
16507        match self {
16508            PlanarBoxRef::PlanarBox(i) => {
16509                PlanarBoxRefView::PlanarBox(model.planar_box_arena.get(i.0))
16510            }
16511            PlanarBoxRef::Complex(i) => {
16512                PlanarBoxRefView::Complex(model.complex_unit_arena.get(i.0))
16513            }
16514        }
16515    }
16516    pub fn entity_key(&self) -> EntityKey {
16517        match self {
16518            PlanarBoxRef::PlanarBox(i) => EntityKey::PlanarBox(*i),
16519            PlanarBoxRef::Complex(i) => EntityKey::ComplexUnit(*i),
16520        }
16521    }
16522}
16523
16524#[derive(Clone, Copy, Debug)]
16525pub enum PlaneOrPlanarBoxRefView<'m> {
16526    PlanarBox(&'m PlanarBox),
16527    Plane(&'m Plane),
16528    Complex(&'m ComplexUnit),
16529}
16530impl PlaneOrPlanarBoxRef {
16531    pub fn resolve<'m>(&self, model: &'m StepModel) -> PlaneOrPlanarBoxRefView<'m> {
16532        match self {
16533            PlaneOrPlanarBoxRef::PlanarBox(i) => {
16534                PlaneOrPlanarBoxRefView::PlanarBox(model.planar_box_arena.get(i.0))
16535            }
16536            PlaneOrPlanarBoxRef::Plane(i) => {
16537                PlaneOrPlanarBoxRefView::Plane(model.plane_arena.get(i.0))
16538            }
16539            PlaneOrPlanarBoxRef::Complex(i) => {
16540                PlaneOrPlanarBoxRefView::Complex(model.complex_unit_arena.get(i.0))
16541            }
16542        }
16543    }
16544    pub fn entity_key(&self) -> EntityKey {
16545        match self {
16546            PlaneOrPlanarBoxRef::PlanarBox(i) => EntityKey::PlanarBox(*i),
16547            PlaneOrPlanarBoxRef::Plane(i) => EntityKey::Plane(*i),
16548            PlaneOrPlanarBoxRef::Complex(i) => EntityKey::ComplexUnit(*i),
16549        }
16550    }
16551}
16552
16553#[derive(Clone, Copy, Debug)]
16554pub enum PointRefView<'m> {
16555    ApllPoint(&'m ApllPoint),
16556    ApllPointWithSurface(&'m ApllPointWithSurface),
16557    CartesianPoint(&'m CartesianPoint),
16558    Point(&'m Point),
16559    Complex(&'m ComplexUnit),
16560}
16561impl PointRef {
16562    pub fn resolve<'m>(&self, model: &'m StepModel) -> PointRefView<'m> {
16563        match self {
16564            PointRef::ApllPoint(i) => PointRefView::ApllPoint(model.apll_point_arena.get(i.0)),
16565            PointRef::ApllPointWithSurface(i) => {
16566                PointRefView::ApllPointWithSurface(model.apll_point_with_surface_arena.get(i.0))
16567            }
16568            PointRef::CartesianPoint(i) => {
16569                PointRefView::CartesianPoint(model.cartesian_point_arena.get(i.0))
16570            }
16571            PointRef::Point(i) => PointRefView::Point(model.point_arena.get(i.0)),
16572            PointRef::Complex(i) => PointRefView::Complex(model.complex_unit_arena.get(i.0)),
16573        }
16574    }
16575    pub fn entity_key(&self) -> EntityKey {
16576        match self {
16577            PointRef::ApllPoint(i) => EntityKey::ApllPoint(*i),
16578            PointRef::ApllPointWithSurface(i) => EntityKey::ApllPointWithSurface(*i),
16579            PointRef::CartesianPoint(i) => EntityKey::CartesianPoint(*i),
16580            PointRef::Point(i) => EntityKey::Point(*i),
16581            PointRef::Complex(i) => EntityKey::ComplexUnit(*i),
16582        }
16583    }
16584}
16585
16586#[derive(Clone, Copy, Debug)]
16587pub enum PresentationAreaRefView<'m> {
16588    PresentationArea(&'m PresentationArea),
16589    Complex(&'m ComplexUnit),
16590}
16591impl PresentationAreaRef {
16592    pub fn resolve<'m>(&self, model: &'m StepModel) -> PresentationAreaRefView<'m> {
16593        match self {
16594            PresentationAreaRef::PresentationArea(i) => {
16595                PresentationAreaRefView::PresentationArea(model.presentation_area_arena.get(i.0))
16596            }
16597            PresentationAreaRef::Complex(i) => {
16598                PresentationAreaRefView::Complex(model.complex_unit_arena.get(i.0))
16599            }
16600        }
16601    }
16602    pub fn entity_key(&self) -> EntityKey {
16603        match self {
16604            PresentationAreaRef::PresentationArea(i) => EntityKey::PresentationArea(*i),
16605            PresentationAreaRef::Complex(i) => EntityKey::ComplexUnit(*i),
16606        }
16607    }
16608}
16609
16610#[derive(Clone, Copy, Debug)]
16611pub enum PresentationRepresentationSelectRefView<'m> {
16612    PresentationArea(&'m PresentationArea),
16613    PresentationRepresentation(&'m PresentationRepresentation),
16614    PresentationSet(&'m PresentationSet),
16615    PresentationView(&'m PresentationView),
16616    Complex(&'m ComplexUnit),
16617}
16618impl PresentationRepresentationSelectRef {
16619    pub fn resolve<'m>(&self, model: &'m StepModel) -> PresentationRepresentationSelectRefView<'m> {
16620        match self {
16621            PresentationRepresentationSelectRef::PresentationArea(i) => {
16622                PresentationRepresentationSelectRefView::PresentationArea(
16623                    model.presentation_area_arena.get(i.0),
16624                )
16625            }
16626            PresentationRepresentationSelectRef::PresentationRepresentation(i) => {
16627                PresentationRepresentationSelectRefView::PresentationRepresentation(
16628                    model.presentation_representation_arena.get(i.0),
16629                )
16630            }
16631            PresentationRepresentationSelectRef::PresentationSet(i) => {
16632                PresentationRepresentationSelectRefView::PresentationSet(
16633                    model.presentation_set_arena.get(i.0),
16634                )
16635            }
16636            PresentationRepresentationSelectRef::PresentationView(i) => {
16637                PresentationRepresentationSelectRefView::PresentationView(
16638                    model.presentation_view_arena.get(i.0),
16639                )
16640            }
16641            PresentationRepresentationSelectRef::Complex(i) => {
16642                PresentationRepresentationSelectRefView::Complex(model.complex_unit_arena.get(i.0))
16643            }
16644        }
16645    }
16646    pub fn entity_key(&self) -> EntityKey {
16647        match self {
16648            PresentationRepresentationSelectRef::PresentationArea(i) => {
16649                EntityKey::PresentationArea(*i)
16650            }
16651            PresentationRepresentationSelectRef::PresentationRepresentation(i) => {
16652                EntityKey::PresentationRepresentation(*i)
16653            }
16654            PresentationRepresentationSelectRef::PresentationSet(i) => {
16655                EntityKey::PresentationSet(*i)
16656            }
16657            PresentationRepresentationSelectRef::PresentationView(i) => {
16658                EntityKey::PresentationView(*i)
16659            }
16660            PresentationRepresentationSelectRef::Complex(i) => EntityKey::ComplexUnit(*i),
16661        }
16662    }
16663}
16664
16665#[derive(Clone, Copy, Debug)]
16666pub enum PresentationSetRefView<'m> {
16667    PresentationSet(&'m PresentationSet),
16668    Complex(&'m ComplexUnit),
16669}
16670impl PresentationSetRef {
16671    pub fn resolve<'m>(&self, model: &'m StepModel) -> PresentationSetRefView<'m> {
16672        match self {
16673            PresentationSetRef::PresentationSet(i) => {
16674                PresentationSetRefView::PresentationSet(model.presentation_set_arena.get(i.0))
16675            }
16676            PresentationSetRef::Complex(i) => {
16677                PresentationSetRefView::Complex(model.complex_unit_arena.get(i.0))
16678            }
16679        }
16680    }
16681    pub fn entity_key(&self) -> EntityKey {
16682        match self {
16683            PresentationSetRef::PresentationSet(i) => EntityKey::PresentationSet(*i),
16684            PresentationSetRef::Complex(i) => EntityKey::ComplexUnit(*i),
16685        }
16686    }
16687}
16688
16689#[derive(Clone, Copy, Debug)]
16690pub enum PresentationSizeAssignmentSelectRefView<'m> {
16691    AreaInSet(&'m AreaInSet),
16692    PresentationArea(&'m PresentationArea),
16693    PresentationView(&'m PresentationView),
16694    Complex(&'m ComplexUnit),
16695}
16696impl PresentationSizeAssignmentSelectRef {
16697    pub fn resolve<'m>(&self, model: &'m StepModel) -> PresentationSizeAssignmentSelectRefView<'m> {
16698        match self {
16699            PresentationSizeAssignmentSelectRef::AreaInSet(i) => {
16700                PresentationSizeAssignmentSelectRefView::AreaInSet(model.area_in_set_arena.get(i.0))
16701            }
16702            PresentationSizeAssignmentSelectRef::PresentationArea(i) => {
16703                PresentationSizeAssignmentSelectRefView::PresentationArea(
16704                    model.presentation_area_arena.get(i.0),
16705                )
16706            }
16707            PresentationSizeAssignmentSelectRef::PresentationView(i) => {
16708                PresentationSizeAssignmentSelectRefView::PresentationView(
16709                    model.presentation_view_arena.get(i.0),
16710                )
16711            }
16712            PresentationSizeAssignmentSelectRef::Complex(i) => {
16713                PresentationSizeAssignmentSelectRefView::Complex(model.complex_unit_arena.get(i.0))
16714            }
16715        }
16716    }
16717    pub fn entity_key(&self) -> EntityKey {
16718        match self {
16719            PresentationSizeAssignmentSelectRef::AreaInSet(i) => EntityKey::AreaInSet(*i),
16720            PresentationSizeAssignmentSelectRef::PresentationArea(i) => {
16721                EntityKey::PresentationArea(*i)
16722            }
16723            PresentationSizeAssignmentSelectRef::PresentationView(i) => {
16724                EntityKey::PresentationView(*i)
16725            }
16726            PresentationSizeAssignmentSelectRef::Complex(i) => EntityKey::ComplexUnit(*i),
16727        }
16728    }
16729}
16730
16731#[derive(Clone, Copy, Debug)]
16732pub enum PresentationStyleAssignmentRefView<'m> {
16733    PresentationStyleAssignment(&'m PresentationStyleAssignment),
16734    PresentationStyleByContext(&'m PresentationStyleByContext),
16735    Complex(&'m ComplexUnit),
16736}
16737impl PresentationStyleAssignmentRef {
16738    pub fn resolve<'m>(&self, model: &'m StepModel) -> PresentationStyleAssignmentRefView<'m> {
16739        match self {
16740            PresentationStyleAssignmentRef::PresentationStyleAssignment(i) => {
16741                PresentationStyleAssignmentRefView::PresentationStyleAssignment(
16742                    model.presentation_style_assignment_arena.get(i.0),
16743                )
16744            }
16745            PresentationStyleAssignmentRef::PresentationStyleByContext(i) => {
16746                PresentationStyleAssignmentRefView::PresentationStyleByContext(
16747                    model.presentation_style_by_context_arena.get(i.0),
16748                )
16749            }
16750            PresentationStyleAssignmentRef::Complex(i) => {
16751                PresentationStyleAssignmentRefView::Complex(model.complex_unit_arena.get(i.0))
16752            }
16753        }
16754    }
16755    pub fn entity_key(&self) -> EntityKey {
16756        match self {
16757            PresentationStyleAssignmentRef::PresentationStyleAssignment(i) => {
16758                EntityKey::PresentationStyleAssignment(*i)
16759            }
16760            PresentationStyleAssignmentRef::PresentationStyleByContext(i) => {
16761                EntityKey::PresentationStyleByContext(*i)
16762            }
16763            PresentationStyleAssignmentRef::Complex(i) => EntityKey::ComplexUnit(*i),
16764        }
16765    }
16766}
16767
16768#[derive(Clone, Copy, Debug)]
16769pub enum PresentedItemRefView<'m> {
16770    AppliedPresentedItem(&'m AppliedPresentedItem),
16771    PresentedItem(&'m PresentedItem),
16772    Complex(&'m ComplexUnit),
16773}
16774impl PresentedItemRef {
16775    pub fn resolve<'m>(&self, model: &'m StepModel) -> PresentedItemRefView<'m> {
16776        match self {
16777            PresentedItemRef::AppliedPresentedItem(i) => {
16778                PresentedItemRefView::AppliedPresentedItem(
16779                    model.applied_presented_item_arena.get(i.0),
16780                )
16781            }
16782            PresentedItemRef::PresentedItem(i) => {
16783                PresentedItemRefView::PresentedItem(model.presented_item_arena.get(i.0))
16784            }
16785            PresentedItemRef::Complex(i) => {
16786                PresentedItemRefView::Complex(model.complex_unit_arena.get(i.0))
16787            }
16788        }
16789    }
16790    pub fn entity_key(&self) -> EntityKey {
16791        match self {
16792            PresentedItemRef::AppliedPresentedItem(i) => EntityKey::AppliedPresentedItem(*i),
16793            PresentedItemRef::PresentedItem(i) => EntityKey::PresentedItem(*i),
16794            PresentedItemRef::Complex(i) => EntityKey::ComplexUnit(*i),
16795        }
16796    }
16797}
16798
16799#[derive(Clone, Copy, Debug)]
16800pub enum PresentedItemSelectRefView<'m> {
16801    Action(&'m Action),
16802    ActionMethod(&'m ActionMethod),
16803    ActionRelationship(&'m ActionRelationship),
16804    AssemblyComponentUsage(&'m AssemblyComponentUsage),
16805    MakeFromUsageOption(&'m MakeFromUsageOption),
16806    NextAssemblyUsageOccurrence(&'m NextAssemblyUsageOccurrence),
16807    ProductConcept(&'m ProductConcept),
16808    ProductConceptFeature(&'m ProductConceptFeature),
16809    ProductConceptFeatureCategory(&'m ProductConceptFeatureCategory),
16810    ProductDefinition(&'m ProductDefinition),
16811    ProductDefinitionFormation(&'m ProductDefinitionFormation),
16812    ProductDefinitionFormationWithSpecifiedSource(
16813        &'m ProductDefinitionFormationWithSpecifiedSource,
16814    ),
16815    ProductDefinitionRelationship(&'m ProductDefinitionRelationship),
16816    ProductDefinitionUsage(&'m ProductDefinitionUsage),
16817    ProductDefinitionWithAssociatedDocuments(&'m ProductDefinitionWithAssociatedDocuments),
16818    Complex(&'m ComplexUnit),
16819}
16820impl PresentedItemSelectRef {
16821    pub fn resolve<'m>(&self, model: &'m StepModel) -> PresentedItemSelectRefView<'m> {
16822        match self {
16823            PresentedItemSelectRef::Action(i) => {
16824                PresentedItemSelectRefView::Action(model.action_arena.get(i.0))
16825            }
16826            PresentedItemSelectRef::ActionMethod(i) => {
16827                PresentedItemSelectRefView::ActionMethod(model.action_method_arena.get(i.0))
16828            }
16829            PresentedItemSelectRef::ActionRelationship(i) => {
16830                PresentedItemSelectRefView::ActionRelationship(
16831                    model.action_relationship_arena.get(i.0),
16832                )
16833            }
16834            PresentedItemSelectRef::AssemblyComponentUsage(i) => {
16835                PresentedItemSelectRefView::AssemblyComponentUsage(
16836                    model.assembly_component_usage_arena.get(i.0),
16837                )
16838            }
16839            PresentedItemSelectRef::MakeFromUsageOption(i) => {
16840                PresentedItemSelectRefView::MakeFromUsageOption(
16841                    model.make_from_usage_option_arena.get(i.0),
16842                )
16843            }
16844            PresentedItemSelectRef::NextAssemblyUsageOccurrence(i) => {
16845                PresentedItemSelectRefView::NextAssemblyUsageOccurrence(
16846                    model.next_assembly_usage_occurrence_arena.get(i.0),
16847                )
16848            }
16849            PresentedItemSelectRef::ProductConcept(i) => {
16850                PresentedItemSelectRefView::ProductConcept(model.product_concept_arena.get(i.0))
16851            }
16852            PresentedItemSelectRef::ProductConceptFeature(i) => {
16853                PresentedItemSelectRefView::ProductConceptFeature(
16854                    model.product_concept_feature_arena.get(i.0),
16855                )
16856            }
16857            PresentedItemSelectRef::ProductConceptFeatureCategory(i) => {
16858                PresentedItemSelectRefView::ProductConceptFeatureCategory(
16859                    model.product_concept_feature_category_arena.get(i.0),
16860                )
16861            }
16862            PresentedItemSelectRef::ProductDefinition(i) => {
16863                PresentedItemSelectRefView::ProductDefinition(
16864                    model.product_definition_arena.get(i.0),
16865                )
16866            }
16867            PresentedItemSelectRef::ProductDefinitionFormation(i) => {
16868                PresentedItemSelectRefView::ProductDefinitionFormation(
16869                    model.product_definition_formation_arena.get(i.0),
16870                )
16871            }
16872            PresentedItemSelectRef::ProductDefinitionFormationWithSpecifiedSource(i) => {
16873                PresentedItemSelectRefView::ProductDefinitionFormationWithSpecifiedSource(
16874                    model
16875                        .product_definition_formation_with_specified_source_arena
16876                        .get(i.0),
16877                )
16878            }
16879            PresentedItemSelectRef::ProductDefinitionRelationship(i) => {
16880                PresentedItemSelectRefView::ProductDefinitionRelationship(
16881                    model.product_definition_relationship_arena.get(i.0),
16882                )
16883            }
16884            PresentedItemSelectRef::ProductDefinitionUsage(i) => {
16885                PresentedItemSelectRefView::ProductDefinitionUsage(
16886                    model.product_definition_usage_arena.get(i.0),
16887                )
16888            }
16889            PresentedItemSelectRef::ProductDefinitionWithAssociatedDocuments(i) => {
16890                PresentedItemSelectRefView::ProductDefinitionWithAssociatedDocuments(
16891                    model
16892                        .product_definition_with_associated_documents_arena
16893                        .get(i.0),
16894                )
16895            }
16896            PresentedItemSelectRef::Complex(i) => {
16897                PresentedItemSelectRefView::Complex(model.complex_unit_arena.get(i.0))
16898            }
16899        }
16900    }
16901    pub fn entity_key(&self) -> EntityKey {
16902        match self {
16903            PresentedItemSelectRef::Action(i) => EntityKey::Action(*i),
16904            PresentedItemSelectRef::ActionMethod(i) => EntityKey::ActionMethod(*i),
16905            PresentedItemSelectRef::ActionRelationship(i) => EntityKey::ActionRelationship(*i),
16906            PresentedItemSelectRef::AssemblyComponentUsage(i) => {
16907                EntityKey::AssemblyComponentUsage(*i)
16908            }
16909            PresentedItemSelectRef::MakeFromUsageOption(i) => EntityKey::MakeFromUsageOption(*i),
16910            PresentedItemSelectRef::NextAssemblyUsageOccurrence(i) => {
16911                EntityKey::NextAssemblyUsageOccurrence(*i)
16912            }
16913            PresentedItemSelectRef::ProductConcept(i) => EntityKey::ProductConcept(*i),
16914            PresentedItemSelectRef::ProductConceptFeature(i) => {
16915                EntityKey::ProductConceptFeature(*i)
16916            }
16917            PresentedItemSelectRef::ProductConceptFeatureCategory(i) => {
16918                EntityKey::ProductConceptFeatureCategory(*i)
16919            }
16920            PresentedItemSelectRef::ProductDefinition(i) => EntityKey::ProductDefinition(*i),
16921            PresentedItemSelectRef::ProductDefinitionFormation(i) => {
16922                EntityKey::ProductDefinitionFormation(*i)
16923            }
16924            PresentedItemSelectRef::ProductDefinitionFormationWithSpecifiedSource(i) => {
16925                EntityKey::ProductDefinitionFormationWithSpecifiedSource(*i)
16926            }
16927            PresentedItemSelectRef::ProductDefinitionRelationship(i) => {
16928                EntityKey::ProductDefinitionRelationship(*i)
16929            }
16930            PresentedItemSelectRef::ProductDefinitionUsage(i) => {
16931                EntityKey::ProductDefinitionUsage(*i)
16932            }
16933            PresentedItemSelectRef::ProductDefinitionWithAssociatedDocuments(i) => {
16934                EntityKey::ProductDefinitionWithAssociatedDocuments(*i)
16935            }
16936            PresentedItemSelectRef::Complex(i) => EntityKey::ComplexUnit(*i),
16937        }
16938    }
16939}
16940
16941#[derive(Clone, Copy, Debug)]
16942pub enum ProductRefView<'m> {
16943    Product(&'m Product),
16944    Complex(&'m ComplexUnit),
16945}
16946impl ProductRef {
16947    pub fn resolve<'m>(&self, model: &'m StepModel) -> ProductRefView<'m> {
16948        match self {
16949            ProductRef::Product(i) => ProductRefView::Product(model.product_arena.get(i.0)),
16950            ProductRef::Complex(i) => ProductRefView::Complex(model.complex_unit_arena.get(i.0)),
16951        }
16952    }
16953    pub fn entity_key(&self) -> EntityKey {
16954        match self {
16955            ProductRef::Product(i) => EntityKey::Product(*i),
16956            ProductRef::Complex(i) => EntityKey::ComplexUnit(*i),
16957        }
16958    }
16959}
16960
16961#[derive(Clone, Copy, Debug)]
16962pub enum ProductCategoryRefView<'m> {
16963    ProductCategory(&'m ProductCategory),
16964    ProductRelatedProductCategory(&'m ProductRelatedProductCategory),
16965    Complex(&'m ComplexUnit),
16966}
16967impl ProductCategoryRef {
16968    pub fn resolve<'m>(&self, model: &'m StepModel) -> ProductCategoryRefView<'m> {
16969        match self {
16970            ProductCategoryRef::ProductCategory(i) => {
16971                ProductCategoryRefView::ProductCategory(model.product_category_arena.get(i.0))
16972            }
16973            ProductCategoryRef::ProductRelatedProductCategory(i) => {
16974                ProductCategoryRefView::ProductRelatedProductCategory(
16975                    model.product_related_product_category_arena.get(i.0),
16976                )
16977            }
16978            ProductCategoryRef::Complex(i) => {
16979                ProductCategoryRefView::Complex(model.complex_unit_arena.get(i.0))
16980            }
16981        }
16982    }
16983    pub fn entity_key(&self) -> EntityKey {
16984        match self {
16985            ProductCategoryRef::ProductCategory(i) => EntityKey::ProductCategory(*i),
16986            ProductCategoryRef::ProductRelatedProductCategory(i) => {
16987                EntityKey::ProductRelatedProductCategory(*i)
16988            }
16989            ProductCategoryRef::Complex(i) => EntityKey::ComplexUnit(*i),
16990        }
16991    }
16992}
16993
16994#[derive(Clone, Copy, Debug)]
16995pub enum ProductConceptRefView<'m> {
16996    ProductConcept(&'m ProductConcept),
16997    Complex(&'m ComplexUnit),
16998}
16999impl ProductConceptRef {
17000    pub fn resolve<'m>(&self, model: &'m StepModel) -> ProductConceptRefView<'m> {
17001        match self {
17002            ProductConceptRef::ProductConcept(i) => {
17003                ProductConceptRefView::ProductConcept(model.product_concept_arena.get(i.0))
17004            }
17005            ProductConceptRef::Complex(i) => {
17006                ProductConceptRefView::Complex(model.complex_unit_arena.get(i.0))
17007            }
17008        }
17009    }
17010    pub fn entity_key(&self) -> EntityKey {
17011        match self {
17012            ProductConceptRef::ProductConcept(i) => EntityKey::ProductConcept(*i),
17013            ProductConceptRef::Complex(i) => EntityKey::ComplexUnit(*i),
17014        }
17015    }
17016}
17017
17018#[derive(Clone, Copy, Debug)]
17019pub enum ProductConceptContextRefView<'m> {
17020    ProductConceptContext(&'m ProductConceptContext),
17021}
17022impl ProductConceptContextRef {
17023    pub fn resolve<'m>(&self, model: &'m StepModel) -> ProductConceptContextRefView<'m> {
17024        match self {
17025            ProductConceptContextRef::ProductConceptContext(i) => {
17026                ProductConceptContextRefView::ProductConceptContext(
17027                    model.product_concept_context_arena.get(i.0),
17028                )
17029            }
17030        }
17031    }
17032    pub fn entity_key(&self) -> EntityKey {
17033        match self {
17034            ProductConceptContextRef::ProductConceptContext(i) => {
17035                EntityKey::ProductConceptContext(*i)
17036            }
17037        }
17038    }
17039}
17040
17041#[derive(Clone, Copy, Debug)]
17042pub enum ProductContextRefView<'m> {
17043    MechanicalContext(&'m MechanicalContext),
17044    ProductContext(&'m ProductContext),
17045    Complex(&'m ComplexUnit),
17046}
17047impl ProductContextRef {
17048    pub fn resolve<'m>(&self, model: &'m StepModel) -> ProductContextRefView<'m> {
17049        match self {
17050            ProductContextRef::MechanicalContext(i) => {
17051                ProductContextRefView::MechanicalContext(model.mechanical_context_arena.get(i.0))
17052            }
17053            ProductContextRef::ProductContext(i) => {
17054                ProductContextRefView::ProductContext(model.product_context_arena.get(i.0))
17055            }
17056            ProductContextRef::Complex(i) => {
17057                ProductContextRefView::Complex(model.complex_unit_arena.get(i.0))
17058            }
17059        }
17060    }
17061    pub fn entity_key(&self) -> EntityKey {
17062        match self {
17063            ProductContextRef::MechanicalContext(i) => EntityKey::MechanicalContext(*i),
17064            ProductContextRef::ProductContext(i) => EntityKey::ProductContext(*i),
17065            ProductContextRef::Complex(i) => EntityKey::ComplexUnit(*i),
17066        }
17067    }
17068}
17069
17070#[derive(Clone, Copy, Debug)]
17071pub enum ProductDefinitionRefView<'m> {
17072    ProductDefinition(&'m ProductDefinition),
17073    ProductDefinitionWithAssociatedDocuments(&'m ProductDefinitionWithAssociatedDocuments),
17074    Complex(&'m ComplexUnit),
17075}
17076impl ProductDefinitionRef {
17077    pub fn resolve<'m>(&self, model: &'m StepModel) -> ProductDefinitionRefView<'m> {
17078        match self {
17079            ProductDefinitionRef::ProductDefinition(i) => {
17080                ProductDefinitionRefView::ProductDefinition(model.product_definition_arena.get(i.0))
17081            }
17082            ProductDefinitionRef::ProductDefinitionWithAssociatedDocuments(i) => {
17083                ProductDefinitionRefView::ProductDefinitionWithAssociatedDocuments(
17084                    model
17085                        .product_definition_with_associated_documents_arena
17086                        .get(i.0),
17087                )
17088            }
17089            ProductDefinitionRef::Complex(i) => {
17090                ProductDefinitionRefView::Complex(model.complex_unit_arena.get(i.0))
17091            }
17092        }
17093    }
17094    pub fn entity_key(&self) -> EntityKey {
17095        match self {
17096            ProductDefinitionRef::ProductDefinition(i) => EntityKey::ProductDefinition(*i),
17097            ProductDefinitionRef::ProductDefinitionWithAssociatedDocuments(i) => {
17098                EntityKey::ProductDefinitionWithAssociatedDocuments(*i)
17099            }
17100            ProductDefinitionRef::Complex(i) => EntityKey::ComplexUnit(*i),
17101        }
17102    }
17103}
17104
17105#[derive(Clone, Copy, Debug)]
17106pub enum ProductDefinitionContextRefView<'m> {
17107    DesignContext(&'m DesignContext),
17108    ProductDefinitionContext(&'m ProductDefinitionContext),
17109    Complex(&'m ComplexUnit),
17110}
17111impl ProductDefinitionContextRef {
17112    pub fn resolve<'m>(&self, model: &'m StepModel) -> ProductDefinitionContextRefView<'m> {
17113        match self {
17114            ProductDefinitionContextRef::DesignContext(i) => {
17115                ProductDefinitionContextRefView::DesignContext(model.design_context_arena.get(i.0))
17116            }
17117            ProductDefinitionContextRef::ProductDefinitionContext(i) => {
17118                ProductDefinitionContextRefView::ProductDefinitionContext(
17119                    model.product_definition_context_arena.get(i.0),
17120                )
17121            }
17122            ProductDefinitionContextRef::Complex(i) => {
17123                ProductDefinitionContextRefView::Complex(model.complex_unit_arena.get(i.0))
17124            }
17125        }
17126    }
17127    pub fn entity_key(&self) -> EntityKey {
17128        match self {
17129            ProductDefinitionContextRef::DesignContext(i) => EntityKey::DesignContext(*i),
17130            ProductDefinitionContextRef::ProductDefinitionContext(i) => {
17131                EntityKey::ProductDefinitionContext(*i)
17132            }
17133            ProductDefinitionContextRef::Complex(i) => EntityKey::ComplexUnit(*i),
17134        }
17135    }
17136}
17137
17138#[derive(Clone, Copy, Debug)]
17139pub enum ProductDefinitionContextRoleRefView<'m> {
17140    ProductDefinitionContextRole(&'m ProductDefinitionContextRole),
17141}
17142impl ProductDefinitionContextRoleRef {
17143    pub fn resolve<'m>(&self, model: &'m StepModel) -> ProductDefinitionContextRoleRefView<'m> {
17144        match self {
17145            ProductDefinitionContextRoleRef::ProductDefinitionContextRole(i) => {
17146                ProductDefinitionContextRoleRefView::ProductDefinitionContextRole(
17147                    model.product_definition_context_role_arena.get(i.0),
17148                )
17149            }
17150        }
17151    }
17152    pub fn entity_key(&self) -> EntityKey {
17153        match self {
17154            ProductDefinitionContextRoleRef::ProductDefinitionContextRole(i) => {
17155                EntityKey::ProductDefinitionContextRole(*i)
17156            }
17157        }
17158    }
17159}
17160
17161#[derive(Clone, Copy, Debug)]
17162pub enum ProductDefinitionFormationRefView<'m> {
17163    ProductDefinitionFormation(&'m ProductDefinitionFormation),
17164    ProductDefinitionFormationWithSpecifiedSource(
17165        &'m ProductDefinitionFormationWithSpecifiedSource,
17166    ),
17167    Complex(&'m ComplexUnit),
17168}
17169impl ProductDefinitionFormationRef {
17170    pub fn resolve<'m>(&self, model: &'m StepModel) -> ProductDefinitionFormationRefView<'m> {
17171        match self {
17172            ProductDefinitionFormationRef::ProductDefinitionFormation(i) => {
17173                ProductDefinitionFormationRefView::ProductDefinitionFormation(
17174                    model.product_definition_formation_arena.get(i.0),
17175                )
17176            }
17177            ProductDefinitionFormationRef::ProductDefinitionFormationWithSpecifiedSource(i) => {
17178                ProductDefinitionFormationRefView::ProductDefinitionFormationWithSpecifiedSource(
17179                    model
17180                        .product_definition_formation_with_specified_source_arena
17181                        .get(i.0),
17182                )
17183            }
17184            ProductDefinitionFormationRef::Complex(i) => {
17185                ProductDefinitionFormationRefView::Complex(model.complex_unit_arena.get(i.0))
17186            }
17187        }
17188    }
17189    pub fn entity_key(&self) -> EntityKey {
17190        match self {
17191            ProductDefinitionFormationRef::ProductDefinitionFormation(i) => {
17192                EntityKey::ProductDefinitionFormation(*i)
17193            }
17194            ProductDefinitionFormationRef::ProductDefinitionFormationWithSpecifiedSource(i) => {
17195                EntityKey::ProductDefinitionFormationWithSpecifiedSource(*i)
17196            }
17197            ProductDefinitionFormationRef::Complex(i) => EntityKey::ComplexUnit(*i),
17198        }
17199    }
17200}
17201
17202#[derive(Clone, Copy, Debug)]
17203pub enum ProductDefinitionOrReferenceRefView<'m> {
17204    GenericProductDefinitionReference(&'m GenericProductDefinitionReference),
17205    ProductDefinition(&'m ProductDefinition),
17206    ProductDefinitionOccurrence(&'m ProductDefinitionOccurrence),
17207    ProductDefinitionWithAssociatedDocuments(&'m ProductDefinitionWithAssociatedDocuments),
17208    Complex(&'m ComplexUnit),
17209}
17210impl ProductDefinitionOrReferenceRef {
17211    pub fn resolve<'m>(&self, model: &'m StepModel) -> ProductDefinitionOrReferenceRefView<'m> {
17212        match self {
17213            ProductDefinitionOrReferenceRef::GenericProductDefinitionReference(i) => {
17214                ProductDefinitionOrReferenceRefView::GenericProductDefinitionReference(
17215                    model.generic_product_definition_reference_arena.get(i.0),
17216                )
17217            }
17218            ProductDefinitionOrReferenceRef::ProductDefinition(i) => {
17219                ProductDefinitionOrReferenceRefView::ProductDefinition(
17220                    model.product_definition_arena.get(i.0),
17221                )
17222            }
17223            ProductDefinitionOrReferenceRef::ProductDefinitionOccurrence(i) => {
17224                ProductDefinitionOrReferenceRefView::ProductDefinitionOccurrence(
17225                    model.product_definition_occurrence_arena.get(i.0),
17226                )
17227            }
17228            ProductDefinitionOrReferenceRef::ProductDefinitionWithAssociatedDocuments(i) => {
17229                ProductDefinitionOrReferenceRefView::ProductDefinitionWithAssociatedDocuments(
17230                    model
17231                        .product_definition_with_associated_documents_arena
17232                        .get(i.0),
17233                )
17234            }
17235            ProductDefinitionOrReferenceRef::Complex(i) => {
17236                ProductDefinitionOrReferenceRefView::Complex(model.complex_unit_arena.get(i.0))
17237            }
17238        }
17239    }
17240    pub fn entity_key(&self) -> EntityKey {
17241        match self {
17242            ProductDefinitionOrReferenceRef::GenericProductDefinitionReference(i) => {
17243                EntityKey::GenericProductDefinitionReference(*i)
17244            }
17245            ProductDefinitionOrReferenceRef::ProductDefinition(i) => {
17246                EntityKey::ProductDefinition(*i)
17247            }
17248            ProductDefinitionOrReferenceRef::ProductDefinitionOccurrence(i) => {
17249                EntityKey::ProductDefinitionOccurrence(*i)
17250            }
17251            ProductDefinitionOrReferenceRef::ProductDefinitionWithAssociatedDocuments(i) => {
17252                EntityKey::ProductDefinitionWithAssociatedDocuments(*i)
17253            }
17254            ProductDefinitionOrReferenceRef::Complex(i) => EntityKey::ComplexUnit(*i),
17255        }
17256    }
17257}
17258
17259#[derive(Clone, Copy, Debug)]
17260pub enum ProductDefinitionRelationshipRefView<'m> {
17261    AssemblyComponentUsage(&'m AssemblyComponentUsage),
17262    MakeFromUsageOption(&'m MakeFromUsageOption),
17263    NextAssemblyUsageOccurrence(&'m NextAssemblyUsageOccurrence),
17264    ProductDefinitionRelationship(&'m ProductDefinitionRelationship),
17265    ProductDefinitionUsage(&'m ProductDefinitionUsage),
17266    Complex(&'m ComplexUnit),
17267}
17268impl ProductDefinitionRelationshipRef {
17269    pub fn resolve<'m>(&self, model: &'m StepModel) -> ProductDefinitionRelationshipRefView<'m> {
17270        match self {
17271            ProductDefinitionRelationshipRef::AssemblyComponentUsage(i) => {
17272                ProductDefinitionRelationshipRefView::AssemblyComponentUsage(
17273                    model.assembly_component_usage_arena.get(i.0),
17274                )
17275            }
17276            ProductDefinitionRelationshipRef::MakeFromUsageOption(i) => {
17277                ProductDefinitionRelationshipRefView::MakeFromUsageOption(
17278                    model.make_from_usage_option_arena.get(i.0),
17279                )
17280            }
17281            ProductDefinitionRelationshipRef::NextAssemblyUsageOccurrence(i) => {
17282                ProductDefinitionRelationshipRefView::NextAssemblyUsageOccurrence(
17283                    model.next_assembly_usage_occurrence_arena.get(i.0),
17284                )
17285            }
17286            ProductDefinitionRelationshipRef::ProductDefinitionRelationship(i) => {
17287                ProductDefinitionRelationshipRefView::ProductDefinitionRelationship(
17288                    model.product_definition_relationship_arena.get(i.0),
17289                )
17290            }
17291            ProductDefinitionRelationshipRef::ProductDefinitionUsage(i) => {
17292                ProductDefinitionRelationshipRefView::ProductDefinitionUsage(
17293                    model.product_definition_usage_arena.get(i.0),
17294                )
17295            }
17296            ProductDefinitionRelationshipRef::Complex(i) => {
17297                ProductDefinitionRelationshipRefView::Complex(model.complex_unit_arena.get(i.0))
17298            }
17299        }
17300    }
17301    pub fn entity_key(&self) -> EntityKey {
17302        match self {
17303            ProductDefinitionRelationshipRef::AssemblyComponentUsage(i) => {
17304                EntityKey::AssemblyComponentUsage(*i)
17305            }
17306            ProductDefinitionRelationshipRef::MakeFromUsageOption(i) => {
17307                EntityKey::MakeFromUsageOption(*i)
17308            }
17309            ProductDefinitionRelationshipRef::NextAssemblyUsageOccurrence(i) => {
17310                EntityKey::NextAssemblyUsageOccurrence(*i)
17311            }
17312            ProductDefinitionRelationshipRef::ProductDefinitionRelationship(i) => {
17313                EntityKey::ProductDefinitionRelationship(*i)
17314            }
17315            ProductDefinitionRelationshipRef::ProductDefinitionUsage(i) => {
17316                EntityKey::ProductDefinitionUsage(*i)
17317            }
17318            ProductDefinitionRelationshipRef::Complex(i) => EntityKey::ComplexUnit(*i),
17319        }
17320    }
17321}
17322
17323#[derive(Clone, Copy, Debug)]
17324pub enum ProductDefinitionShapeRefView<'m> {
17325    ProductDefinitionShape(&'m ProductDefinitionShape),
17326    Complex(&'m ComplexUnit),
17327}
17328impl ProductDefinitionShapeRef {
17329    pub fn resolve<'m>(&self, model: &'m StepModel) -> ProductDefinitionShapeRefView<'m> {
17330        match self {
17331            ProductDefinitionShapeRef::ProductDefinitionShape(i) => {
17332                ProductDefinitionShapeRefView::ProductDefinitionShape(
17333                    model.product_definition_shape_arena.get(i.0),
17334                )
17335            }
17336            ProductDefinitionShapeRef::Complex(i) => {
17337                ProductDefinitionShapeRefView::Complex(model.complex_unit_arena.get(i.0))
17338            }
17339        }
17340    }
17341    pub fn entity_key(&self) -> EntityKey {
17342        match self {
17343            ProductDefinitionShapeRef::ProductDefinitionShape(i) => {
17344                EntityKey::ProductDefinitionShape(*i)
17345            }
17346            ProductDefinitionShapeRef::Complex(i) => EntityKey::ComplexUnit(*i),
17347        }
17348    }
17349}
17350
17351#[derive(Clone, Copy, Debug)]
17352pub enum ProductOrFormationOrDefinitionRefView<'m> {
17353    Product(&'m Product),
17354    ProductDefinition(&'m ProductDefinition),
17355    ProductDefinitionFormation(&'m ProductDefinitionFormation),
17356    ProductDefinitionFormationWithSpecifiedSource(
17357        &'m ProductDefinitionFormationWithSpecifiedSource,
17358    ),
17359    ProductDefinitionWithAssociatedDocuments(&'m ProductDefinitionWithAssociatedDocuments),
17360    Complex(&'m ComplexUnit),
17361}
17362impl ProductOrFormationOrDefinitionRef {
17363    pub fn resolve<'m>(&self, model: &'m StepModel) -> ProductOrFormationOrDefinitionRefView<'m> {
17364        match self {
17365            ProductOrFormationOrDefinitionRef::Product(i) => {
17366                ProductOrFormationOrDefinitionRefView::Product(model.product_arena.get(i.0))
17367            }
17368            ProductOrFormationOrDefinitionRef::ProductDefinition(i) => {
17369                ProductOrFormationOrDefinitionRefView::ProductDefinition(
17370                    model.product_definition_arena.get(i.0),
17371                )
17372            }
17373            ProductOrFormationOrDefinitionRef::ProductDefinitionFormation(i) => {
17374                ProductOrFormationOrDefinitionRefView::ProductDefinitionFormation(
17375                    model.product_definition_formation_arena.get(i.0),
17376                )
17377            }
17378            ProductOrFormationOrDefinitionRef::ProductDefinitionFormationWithSpecifiedSource(i) => {
17379                ProductOrFormationOrDefinitionRefView::ProductDefinitionFormationWithSpecifiedSource(
17380                    model
17381                        .product_definition_formation_with_specified_source_arena
17382                        .get(i.0),
17383                )
17384            }
17385            ProductOrFormationOrDefinitionRef::ProductDefinitionWithAssociatedDocuments(i) => {
17386                ProductOrFormationOrDefinitionRefView::ProductDefinitionWithAssociatedDocuments(
17387                    model
17388                        .product_definition_with_associated_documents_arena
17389                        .get(i.0),
17390                )
17391            }
17392            ProductOrFormationOrDefinitionRef::Complex(i) => {
17393                ProductOrFormationOrDefinitionRefView::Complex(model.complex_unit_arena.get(i.0))
17394            }
17395        }
17396    }
17397    pub fn entity_key(&self) -> EntityKey {
17398        match self {
17399            ProductOrFormationOrDefinitionRef::Product(i) => EntityKey::Product(*i),
17400            ProductOrFormationOrDefinitionRef::ProductDefinition(i) => {
17401                EntityKey::ProductDefinition(*i)
17402            }
17403            ProductOrFormationOrDefinitionRef::ProductDefinitionFormation(i) => {
17404                EntityKey::ProductDefinitionFormation(*i)
17405            }
17406            ProductOrFormationOrDefinitionRef::ProductDefinitionFormationWithSpecifiedSource(i) => {
17407                EntityKey::ProductDefinitionFormationWithSpecifiedSource(*i)
17408            }
17409            ProductOrFormationOrDefinitionRef::ProductDefinitionWithAssociatedDocuments(i) => {
17410                EntityKey::ProductDefinitionWithAssociatedDocuments(*i)
17411            }
17412            ProductOrFormationOrDefinitionRef::Complex(i) => EntityKey::ComplexUnit(*i),
17413        }
17414    }
17415}
17416
17417#[derive(Clone, Copy, Debug)]
17418pub enum PropertyDefinitionRefView<'m> {
17419    ProductDefinitionShape(&'m ProductDefinitionShape),
17420    PropertyDefinition(&'m PropertyDefinition),
17421    Complex(&'m ComplexUnit),
17422}
17423impl PropertyDefinitionRef {
17424    pub fn resolve<'m>(&self, model: &'m StepModel) -> PropertyDefinitionRefView<'m> {
17425        match self {
17426            PropertyDefinitionRef::ProductDefinitionShape(i) => {
17427                PropertyDefinitionRefView::ProductDefinitionShape(
17428                    model.product_definition_shape_arena.get(i.0),
17429                )
17430            }
17431            PropertyDefinitionRef::PropertyDefinition(i) => {
17432                PropertyDefinitionRefView::PropertyDefinition(
17433                    model.property_definition_arena.get(i.0),
17434                )
17435            }
17436            PropertyDefinitionRef::Complex(i) => {
17437                PropertyDefinitionRefView::Complex(model.complex_unit_arena.get(i.0))
17438            }
17439        }
17440    }
17441    pub fn entity_key(&self) -> EntityKey {
17442        match self {
17443            PropertyDefinitionRef::ProductDefinitionShape(i) => {
17444                EntityKey::ProductDefinitionShape(*i)
17445            }
17446            PropertyDefinitionRef::PropertyDefinition(i) => EntityKey::PropertyDefinition(*i),
17447            PropertyDefinitionRef::Complex(i) => EntityKey::ComplexUnit(*i),
17448        }
17449    }
17450}
17451
17452#[derive(Clone, Copy, Debug)]
17453pub enum RenderingPropertiesSelectRefView<'m> {
17454    SurfaceStyleReflectanceAmbient(&'m SurfaceStyleReflectanceAmbient),
17455    SurfaceStyleTransparent(&'m SurfaceStyleTransparent),
17456    Complex(&'m ComplexUnit),
17457}
17458impl RenderingPropertiesSelectRef {
17459    pub fn resolve<'m>(&self, model: &'m StepModel) -> RenderingPropertiesSelectRefView<'m> {
17460        match self {
17461            RenderingPropertiesSelectRef::SurfaceStyleReflectanceAmbient(i) => {
17462                RenderingPropertiesSelectRefView::SurfaceStyleReflectanceAmbient(
17463                    model.surface_style_reflectance_ambient_arena.get(i.0),
17464                )
17465            }
17466            RenderingPropertiesSelectRef::SurfaceStyleTransparent(i) => {
17467                RenderingPropertiesSelectRefView::SurfaceStyleTransparent(
17468                    model.surface_style_transparent_arena.get(i.0),
17469                )
17470            }
17471            RenderingPropertiesSelectRef::Complex(i) => {
17472                RenderingPropertiesSelectRefView::Complex(model.complex_unit_arena.get(i.0))
17473            }
17474        }
17475    }
17476    pub fn entity_key(&self) -> EntityKey {
17477        match self {
17478            RenderingPropertiesSelectRef::SurfaceStyleReflectanceAmbient(i) => {
17479                EntityKey::SurfaceStyleReflectanceAmbient(*i)
17480            }
17481            RenderingPropertiesSelectRef::SurfaceStyleTransparent(i) => {
17482                EntityKey::SurfaceStyleTransparent(*i)
17483            }
17484            RenderingPropertiesSelectRef::Complex(i) => EntityKey::ComplexUnit(*i),
17485        }
17486    }
17487}
17488
17489#[derive(Clone, Copy, Debug)]
17490pub enum RepresentationRefView<'m> {
17491    AdvancedBrepShapeRepresentation(&'m AdvancedBrepShapeRepresentation),
17492    CharacterizedRepresentation(&'m CharacterizedRepresentation),
17493    ConstructiveGeometryRepresentation(&'m ConstructiveGeometryRepresentation),
17494    DefinitionalRepresentation(&'m DefinitionalRepresentation),
17495    DraughtingModel(&'m DraughtingModel),
17496    GeometricallyBoundedSurfaceShapeRepresentation(
17497        &'m GeometricallyBoundedSurfaceShapeRepresentation,
17498    ),
17499    GeometricallyBoundedWireframeShapeRepresentation(
17500        &'m GeometricallyBoundedWireframeShapeRepresentation,
17501    ),
17502    ManifoldSurfaceShapeRepresentation(&'m ManifoldSurfaceShapeRepresentation),
17503    MechanicalDesignGeometricPresentationRepresentation(
17504        &'m MechanicalDesignGeometricPresentationRepresentation,
17505    ),
17506    MechanicalDesignPresentationRepresentationWithDraughting(
17507        &'m MechanicalDesignPresentationRepresentationWithDraughting,
17508    ),
17509    MechanicalDesignShadedPresentationRepresentation(
17510        &'m MechanicalDesignShadedPresentationRepresentation,
17511    ),
17512    PresentationArea(&'m PresentationArea),
17513    PresentationRepresentation(&'m PresentationRepresentation),
17514    PresentationView(&'m PresentationView),
17515    Representation(&'m Representation),
17516    ShapeDimensionRepresentation(&'m ShapeDimensionRepresentation),
17517    ShapeRepresentation(&'m ShapeRepresentation),
17518    ShapeRepresentationWithParameters(&'m ShapeRepresentationWithParameters),
17519    SymbolRepresentation(&'m SymbolRepresentation),
17520    TessellatedShapeRepresentation(&'m TessellatedShapeRepresentation),
17521    Complex(&'m ComplexUnit),
17522}
17523impl RepresentationRef {
17524    pub fn resolve<'m>(&self, model: &'m StepModel) -> RepresentationRefView<'m> {
17525        match self {
17526            RepresentationRef::AdvancedBrepShapeRepresentation(i) => {
17527                RepresentationRefView::AdvancedBrepShapeRepresentation(
17528                    model.advanced_brep_shape_representation_arena.get(i.0),
17529                )
17530            }
17531            RepresentationRef::CharacterizedRepresentation(i) => {
17532                RepresentationRefView::CharacterizedRepresentation(
17533                    model.characterized_representation_arena.get(i.0),
17534                )
17535            }
17536            RepresentationRef::ConstructiveGeometryRepresentation(i) => {
17537                RepresentationRefView::ConstructiveGeometryRepresentation(
17538                    model.constructive_geometry_representation_arena.get(i.0),
17539                )
17540            }
17541            RepresentationRef::DefinitionalRepresentation(i) => {
17542                RepresentationRefView::DefinitionalRepresentation(
17543                    model.definitional_representation_arena.get(i.0),
17544                )
17545            }
17546            RepresentationRef::DraughtingModel(i) => {
17547                RepresentationRefView::DraughtingModel(model.draughting_model_arena.get(i.0))
17548            }
17549            RepresentationRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => {
17550                RepresentationRefView::GeometricallyBoundedSurfaceShapeRepresentation(
17551                    model
17552                        .geometrically_bounded_surface_shape_representation_arena
17553                        .get(i.0),
17554                )
17555            }
17556            RepresentationRef::GeometricallyBoundedWireframeShapeRepresentation(i) => {
17557                RepresentationRefView::GeometricallyBoundedWireframeShapeRepresentation(
17558                    model
17559                        .geometrically_bounded_wireframe_shape_representation_arena
17560                        .get(i.0),
17561                )
17562            }
17563            RepresentationRef::ManifoldSurfaceShapeRepresentation(i) => {
17564                RepresentationRefView::ManifoldSurfaceShapeRepresentation(
17565                    model.manifold_surface_shape_representation_arena.get(i.0),
17566                )
17567            }
17568            RepresentationRef::MechanicalDesignGeometricPresentationRepresentation(i) => {
17569                RepresentationRefView::MechanicalDesignGeometricPresentationRepresentation(
17570                    model
17571                        .mechanical_design_geometric_presentation_representation_arena
17572                        .get(i.0),
17573                )
17574            }
17575            RepresentationRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => {
17576                RepresentationRefView::MechanicalDesignPresentationRepresentationWithDraughting(
17577                    model
17578                        .mechanical_design_presentation_representation_with_draughting_arena
17579                        .get(i.0),
17580                )
17581            }
17582            RepresentationRef::MechanicalDesignShadedPresentationRepresentation(i) => {
17583                RepresentationRefView::MechanicalDesignShadedPresentationRepresentation(
17584                    model
17585                        .mechanical_design_shaded_presentation_representation_arena
17586                        .get(i.0),
17587                )
17588            }
17589            RepresentationRef::PresentationArea(i) => {
17590                RepresentationRefView::PresentationArea(model.presentation_area_arena.get(i.0))
17591            }
17592            RepresentationRef::PresentationRepresentation(i) => {
17593                RepresentationRefView::PresentationRepresentation(
17594                    model.presentation_representation_arena.get(i.0),
17595                )
17596            }
17597            RepresentationRef::PresentationView(i) => {
17598                RepresentationRefView::PresentationView(model.presentation_view_arena.get(i.0))
17599            }
17600            RepresentationRef::Representation(i) => {
17601                RepresentationRefView::Representation(model.representation_arena.get(i.0))
17602            }
17603            RepresentationRef::ShapeDimensionRepresentation(i) => {
17604                RepresentationRefView::ShapeDimensionRepresentation(
17605                    model.shape_dimension_representation_arena.get(i.0),
17606                )
17607            }
17608            RepresentationRef::ShapeRepresentation(i) => {
17609                RepresentationRefView::ShapeRepresentation(
17610                    model.shape_representation_arena.get(i.0),
17611                )
17612            }
17613            RepresentationRef::ShapeRepresentationWithParameters(i) => {
17614                RepresentationRefView::ShapeRepresentationWithParameters(
17615                    model.shape_representation_with_parameters_arena.get(i.0),
17616                )
17617            }
17618            RepresentationRef::SymbolRepresentation(i) => {
17619                RepresentationRefView::SymbolRepresentation(
17620                    model.symbol_representation_arena.get(i.0),
17621                )
17622            }
17623            RepresentationRef::TessellatedShapeRepresentation(i) => {
17624                RepresentationRefView::TessellatedShapeRepresentation(
17625                    model.tessellated_shape_representation_arena.get(i.0),
17626                )
17627            }
17628            RepresentationRef::Complex(i) => {
17629                RepresentationRefView::Complex(model.complex_unit_arena.get(i.0))
17630            }
17631        }
17632    }
17633    pub fn entity_key(&self) -> EntityKey {
17634        match self {
17635            RepresentationRef::AdvancedBrepShapeRepresentation(i) => {
17636                EntityKey::AdvancedBrepShapeRepresentation(*i)
17637            }
17638            RepresentationRef::CharacterizedRepresentation(i) => {
17639                EntityKey::CharacterizedRepresentation(*i)
17640            }
17641            RepresentationRef::ConstructiveGeometryRepresentation(i) => {
17642                EntityKey::ConstructiveGeometryRepresentation(*i)
17643            }
17644            RepresentationRef::DefinitionalRepresentation(i) => {
17645                EntityKey::DefinitionalRepresentation(*i)
17646            }
17647            RepresentationRef::DraughtingModel(i) => EntityKey::DraughtingModel(*i),
17648            RepresentationRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => {
17649                EntityKey::GeometricallyBoundedSurfaceShapeRepresentation(*i)
17650            }
17651            RepresentationRef::GeometricallyBoundedWireframeShapeRepresentation(i) => {
17652                EntityKey::GeometricallyBoundedWireframeShapeRepresentation(*i)
17653            }
17654            RepresentationRef::ManifoldSurfaceShapeRepresentation(i) => {
17655                EntityKey::ManifoldSurfaceShapeRepresentation(*i)
17656            }
17657            RepresentationRef::MechanicalDesignGeometricPresentationRepresentation(i) => {
17658                EntityKey::MechanicalDesignGeometricPresentationRepresentation(*i)
17659            }
17660            RepresentationRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => {
17661                EntityKey::MechanicalDesignPresentationRepresentationWithDraughting(*i)
17662            }
17663            RepresentationRef::MechanicalDesignShadedPresentationRepresentation(i) => {
17664                EntityKey::MechanicalDesignShadedPresentationRepresentation(*i)
17665            }
17666            RepresentationRef::PresentationArea(i) => EntityKey::PresentationArea(*i),
17667            RepresentationRef::PresentationRepresentation(i) => {
17668                EntityKey::PresentationRepresentation(*i)
17669            }
17670            RepresentationRef::PresentationView(i) => EntityKey::PresentationView(*i),
17671            RepresentationRef::Representation(i) => EntityKey::Representation(*i),
17672            RepresentationRef::ShapeDimensionRepresentation(i) => {
17673                EntityKey::ShapeDimensionRepresentation(*i)
17674            }
17675            RepresentationRef::ShapeRepresentation(i) => EntityKey::ShapeRepresentation(*i),
17676            RepresentationRef::ShapeRepresentationWithParameters(i) => {
17677                EntityKey::ShapeRepresentationWithParameters(*i)
17678            }
17679            RepresentationRef::SymbolRepresentation(i) => EntityKey::SymbolRepresentation(*i),
17680            RepresentationRef::TessellatedShapeRepresentation(i) => {
17681                EntityKey::TessellatedShapeRepresentation(*i)
17682            }
17683            RepresentationRef::Complex(i) => EntityKey::ComplexUnit(*i),
17684        }
17685    }
17686}
17687
17688#[derive(Clone, Copy, Debug)]
17689pub enum RepresentationContextRefView<'m> {
17690    GeometricRepresentationContext(&'m GeometricRepresentationContext),
17691    GlobalUncertaintyAssignedContext(&'m GlobalUncertaintyAssignedContext),
17692    GlobalUnitAssignedContext(&'m GlobalUnitAssignedContext),
17693    ParametricRepresentationContext(&'m ParametricRepresentationContext),
17694    RepresentationContext(&'m RepresentationContext),
17695    Complex(&'m ComplexUnit),
17696}
17697impl RepresentationContextRef {
17698    pub fn resolve<'m>(&self, model: &'m StepModel) -> RepresentationContextRefView<'m> {
17699        match self {
17700            RepresentationContextRef::GeometricRepresentationContext(i) => {
17701                RepresentationContextRefView::GeometricRepresentationContext(
17702                    model.geometric_representation_context_arena.get(i.0),
17703                )
17704            }
17705            RepresentationContextRef::GlobalUncertaintyAssignedContext(i) => {
17706                RepresentationContextRefView::GlobalUncertaintyAssignedContext(
17707                    model.global_uncertainty_assigned_context_arena.get(i.0),
17708                )
17709            }
17710            RepresentationContextRef::GlobalUnitAssignedContext(i) => {
17711                RepresentationContextRefView::GlobalUnitAssignedContext(
17712                    model.global_unit_assigned_context_arena.get(i.0),
17713                )
17714            }
17715            RepresentationContextRef::ParametricRepresentationContext(i) => {
17716                RepresentationContextRefView::ParametricRepresentationContext(
17717                    model.parametric_representation_context_arena.get(i.0),
17718                )
17719            }
17720            RepresentationContextRef::RepresentationContext(i) => {
17721                RepresentationContextRefView::RepresentationContext(
17722                    model.representation_context_arena.get(i.0),
17723                )
17724            }
17725            RepresentationContextRef::Complex(i) => {
17726                RepresentationContextRefView::Complex(model.complex_unit_arena.get(i.0))
17727            }
17728        }
17729    }
17730    pub fn entity_key(&self) -> EntityKey {
17731        match self {
17732            RepresentationContextRef::GeometricRepresentationContext(i) => {
17733                EntityKey::GeometricRepresentationContext(*i)
17734            }
17735            RepresentationContextRef::GlobalUncertaintyAssignedContext(i) => {
17736                EntityKey::GlobalUncertaintyAssignedContext(*i)
17737            }
17738            RepresentationContextRef::GlobalUnitAssignedContext(i) => {
17739                EntityKey::GlobalUnitAssignedContext(*i)
17740            }
17741            RepresentationContextRef::ParametricRepresentationContext(i) => {
17742                EntityKey::ParametricRepresentationContext(*i)
17743            }
17744            RepresentationContextRef::RepresentationContext(i) => {
17745                EntityKey::RepresentationContext(*i)
17746            }
17747            RepresentationContextRef::Complex(i) => EntityKey::ComplexUnit(*i),
17748        }
17749    }
17750}
17751
17752#[derive(Clone, Copy, Debug)]
17753pub enum RepresentationContextReferenceRefView<'m> {
17754    RepresentationContextReference(&'m RepresentationContextReference),
17755}
17756impl RepresentationContextReferenceRef {
17757    pub fn resolve<'m>(&self, model: &'m StepModel) -> RepresentationContextReferenceRefView<'m> {
17758        match self {
17759            RepresentationContextReferenceRef::RepresentationContextReference(i) => {
17760                RepresentationContextReferenceRefView::RepresentationContextReference(
17761                    model.representation_context_reference_arena.get(i.0),
17762                )
17763            }
17764        }
17765    }
17766    pub fn entity_key(&self) -> EntityKey {
17767        match self {
17768            RepresentationContextReferenceRef::RepresentationContextReference(i) => {
17769                EntityKey::RepresentationContextReference(*i)
17770            }
17771        }
17772    }
17773}
17774
17775#[derive(Clone, Copy, Debug)]
17776pub enum RepresentationItemRefView<'m> {
17777    AdvancedFace(&'m AdvancedFace),
17778    AnnotationCurveOccurrence(&'m AnnotationCurveOccurrence),
17779    AnnotationFillAreaOccurrence(&'m AnnotationFillAreaOccurrence),
17780    AnnotationOccurrence(&'m AnnotationOccurrence),
17781    AnnotationPlaceholderLeaderLine(&'m AnnotationPlaceholderLeaderLine),
17782    AnnotationPlaceholderOccurrence(&'m AnnotationPlaceholderOccurrence),
17783    AnnotationPlaceholderOccurrenceWithLeaderLine(
17784        &'m AnnotationPlaceholderOccurrenceWithLeaderLine,
17785    ),
17786    AnnotationPlane(&'m AnnotationPlane),
17787    AnnotationSymbol(&'m AnnotationSymbol),
17788    AnnotationSymbolOccurrence(&'m AnnotationSymbolOccurrence),
17789    AnnotationText(&'m AnnotationText),
17790    AnnotationTextCharacter(&'m AnnotationTextCharacter),
17791    AnnotationTextOccurrence(&'m AnnotationTextOccurrence),
17792    AnnotationToAnnotationLeaderLine(&'m AnnotationToAnnotationLeaderLine),
17793    AnnotationToModelLeaderLine(&'m AnnotationToModelLeaderLine),
17794    ApllPoint(&'m ApllPoint),
17795    ApllPointWithSurface(&'m ApllPointWithSurface),
17796    AuxiliaryLeaderLine(&'m AuxiliaryLeaderLine),
17797    Axis1Placement(&'m Axis1Placement),
17798    Axis2Placement2d(&'m Axis2Placement2d),
17799    Axis2Placement3d(&'m Axis2Placement3d),
17800    BSplineCurve(&'m BSplineCurve),
17801    BSplineCurveWithKnots(&'m BSplineCurveWithKnots),
17802    BSplineSurface(&'m BSplineSurface),
17803    BSplineSurfaceWithKnots(&'m BSplineSurfaceWithKnots),
17804    BezierCurve(&'m BezierCurve),
17805    BezierSurface(&'m BezierSurface),
17806    BoundedCurve(&'m BoundedCurve),
17807    BoundedPcurve(&'m BoundedPcurve),
17808    BoundedSurface(&'m BoundedSurface),
17809    BoundedSurfaceCurve(&'m BoundedSurfaceCurve),
17810    BrepWithVoids(&'m BrepWithVoids),
17811    CameraImage(&'m CameraImage),
17812    CameraImage3dWithScale(&'m CameraImage3dWithScale),
17813    CameraModel(&'m CameraModel),
17814    CameraModelD3(&'m CameraModelD3),
17815    CameraModelD3MultiClipping(&'m CameraModelD3MultiClipping),
17816    CameraModelD3WithHlhsr(&'m CameraModelD3WithHlhsr),
17817    CartesianPoint(&'m CartesianPoint),
17818    Circle(&'m Circle),
17819    ClosedShell(&'m ClosedShell),
17820    ComplexTriangulatedFace(&'m ComplexTriangulatedFace),
17821    ComplexTriangulatedSurfaceSet(&'m ComplexTriangulatedSurfaceSet),
17822    CompositeCurve(&'m CompositeCurve),
17823    CompositeText(&'m CompositeText),
17824    CompoundRepresentationItem(&'m CompoundRepresentationItem),
17825    Conic(&'m Conic),
17826    ConicalSurface(&'m ConicalSurface),
17827    ConnectedFaceSet(&'m ConnectedFaceSet),
17828    ContextDependentOverRidingStyledItem(&'m ContextDependentOverRidingStyledItem),
17829    CoordinatesList(&'m CoordinatesList),
17830    Curve(&'m Curve),
17831    CylindricalSurface(&'m CylindricalSurface),
17832    DefinedCharacterGlyph(&'m DefinedCharacterGlyph),
17833    DefinedSymbol(&'m DefinedSymbol),
17834    DegenerateToroidalSurface(&'m DegenerateToroidalSurface),
17835    DescriptiveRepresentationItem(&'m DescriptiveRepresentationItem),
17836    Direction(&'m Direction),
17837    DraughtingAnnotationOccurrence(&'m DraughtingAnnotationOccurrence),
17838    DraughtingCallout(&'m DraughtingCallout),
17839    Edge(&'m Edge),
17840    EdgeCurve(&'m EdgeCurve),
17841    EdgeLoop(&'m EdgeLoop),
17842    ElementarySurface(&'m ElementarySurface),
17843    Ellipse(&'m Ellipse),
17844    ExternallyDefinedHatchStyle(&'m ExternallyDefinedHatchStyle),
17845    ExternallyDefinedTileStyle(&'m ExternallyDefinedTileStyle),
17846    Face(&'m Face),
17847    FaceBound(&'m FaceBound),
17848    FaceOuterBound(&'m FaceOuterBound),
17849    FaceSurface(&'m FaceSurface),
17850    FillAreaStyleHatching(&'m FillAreaStyleHatching),
17851    FillAreaStyleTileColouredRegion(&'m FillAreaStyleTileColouredRegion),
17852    FillAreaStyleTileCurveWithStyle(&'m FillAreaStyleTileCurveWithStyle),
17853    FillAreaStyleTileSymbolWithStyle(&'m FillAreaStyleTileSymbolWithStyle),
17854    FillAreaStyleTiles(&'m FillAreaStyleTiles),
17855    GeometricCurveSet(&'m GeometricCurveSet),
17856    GeometricRepresentationItem(&'m GeometricRepresentationItem),
17857    GeometricSet(&'m GeometricSet),
17858    Hyperbola(&'m Hyperbola),
17859    IntegerRepresentationItem(&'m IntegerRepresentationItem),
17860    IntersectionCurve(&'m IntersectionCurve),
17861    LeaderCurve(&'m LeaderCurve),
17862    LeaderDirectedCallout(&'m LeaderDirectedCallout),
17863    LeaderTerminator(&'m LeaderTerminator),
17864    Line(&'m Line),
17865    Loop(&'m Loop),
17866    ManifoldSolidBrep(&'m ManifoldSolidBrep),
17867    MappedItem(&'m MappedItem),
17868    MeasureRepresentationItem(&'m MeasureRepresentationItem),
17869    OffsetSurface(&'m OffsetSurface),
17870    OneDirectionRepeatFactor(&'m OneDirectionRepeatFactor),
17871    OpenShell(&'m OpenShell),
17872    OrientedClosedShell(&'m OrientedClosedShell),
17873    OrientedEdge(&'m OrientedEdge),
17874    OverRidingStyledItem(&'m OverRidingStyledItem),
17875    Path(&'m Path),
17876    Pcurve(&'m Pcurve),
17877    Placement(&'m Placement),
17878    PlanarBox(&'m PlanarBox),
17879    PlanarExtent(&'m PlanarExtent),
17880    Plane(&'m Plane),
17881    Point(&'m Point),
17882    PolyLoop(&'m PolyLoop),
17883    Polyline(&'m Polyline),
17884    QualifiedRepresentationItem(&'m QualifiedRepresentationItem),
17885    QuasiUniformCurve(&'m QuasiUniformCurve),
17886    QuasiUniformSurface(&'m QuasiUniformSurface),
17887    RationalBSplineCurve(&'m RationalBSplineCurve),
17888    RationalBSplineSurface(&'m RationalBSplineSurface),
17889    RealRepresentationItem(&'m RealRepresentationItem),
17890    RepositionedTessellatedItem(&'m RepositionedTessellatedItem),
17891    RepresentationItem(&'m RepresentationItem),
17892    SeamCurve(&'m SeamCurve),
17893    ShellBasedSurfaceModel(&'m ShellBasedSurfaceModel),
17894    SolidModel(&'m SolidModel),
17895    SphericalSurface(&'m SphericalSurface),
17896    StyledItem(&'m StyledItem),
17897    Surface(&'m Surface),
17898    SurfaceCurve(&'m SurfaceCurve),
17899    SurfaceOfLinearExtrusion(&'m SurfaceOfLinearExtrusion),
17900    SurfaceOfRevolution(&'m SurfaceOfRevolution),
17901    SweptSurface(&'m SweptSurface),
17902    SymbolTarget(&'m SymbolTarget),
17903    TerminatorSymbol(&'m TerminatorSymbol),
17904    TessellatedAnnotationOccurrence(&'m TessellatedAnnotationOccurrence),
17905    TessellatedCurveSet(&'m TessellatedCurveSet),
17906    TessellatedFace(&'m TessellatedFace),
17907    TessellatedGeometricSet(&'m TessellatedGeometricSet),
17908    TessellatedItem(&'m TessellatedItem),
17909    TessellatedShell(&'m TessellatedShell),
17910    TessellatedSolid(&'m TessellatedSolid),
17911    TessellatedStructuredItem(&'m TessellatedStructuredItem),
17912    TessellatedSurfaceSet(&'m TessellatedSurfaceSet),
17913    TextLiteral(&'m TextLiteral),
17914    TopologicalRepresentationItem(&'m TopologicalRepresentationItem),
17915    ToroidalSurface(&'m ToroidalSurface),
17916    TrimmedCurve(&'m TrimmedCurve),
17917    TwoDirectionRepeatFactor(&'m TwoDirectionRepeatFactor),
17918    UniformCurve(&'m UniformCurve),
17919    UniformSurface(&'m UniformSurface),
17920    ValueRepresentationItem(&'m ValueRepresentationItem),
17921    Vector(&'m Vector),
17922    Vertex(&'m Vertex),
17923    VertexLoop(&'m VertexLoop),
17924    VertexPoint(&'m VertexPoint),
17925    VertexShell(&'m VertexShell),
17926    WireShell(&'m WireShell),
17927    Complex(&'m ComplexUnit),
17928}
17929impl RepresentationItemRef {
17930    pub fn resolve<'m>(&self, model: &'m StepModel) -> RepresentationItemRefView<'m> {
17931        match self {
17932            RepresentationItemRef::AdvancedFace(i) => {
17933                RepresentationItemRefView::AdvancedFace(model.advanced_face_arena.get(i.0))
17934            }
17935            RepresentationItemRef::AnnotationCurveOccurrence(i) => {
17936                RepresentationItemRefView::AnnotationCurveOccurrence(
17937                    model.annotation_curve_occurrence_arena.get(i.0),
17938                )
17939            }
17940            RepresentationItemRef::AnnotationFillAreaOccurrence(i) => {
17941                RepresentationItemRefView::AnnotationFillAreaOccurrence(
17942                    model.annotation_fill_area_occurrence_arena.get(i.0),
17943                )
17944            }
17945            RepresentationItemRef::AnnotationOccurrence(i) => {
17946                RepresentationItemRefView::AnnotationOccurrence(
17947                    model.annotation_occurrence_arena.get(i.0),
17948                )
17949            }
17950            RepresentationItemRef::AnnotationPlaceholderLeaderLine(i) => {
17951                RepresentationItemRefView::AnnotationPlaceholderLeaderLine(
17952                    model.annotation_placeholder_leader_line_arena.get(i.0),
17953                )
17954            }
17955            RepresentationItemRef::AnnotationPlaceholderOccurrence(i) => {
17956                RepresentationItemRefView::AnnotationPlaceholderOccurrence(
17957                    model.annotation_placeholder_occurrence_arena.get(i.0),
17958                )
17959            }
17960            RepresentationItemRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => {
17961                RepresentationItemRefView::AnnotationPlaceholderOccurrenceWithLeaderLine(
17962                    model
17963                        .annotation_placeholder_occurrence_with_leader_line_arena
17964                        .get(i.0),
17965                )
17966            }
17967            RepresentationItemRef::AnnotationPlane(i) => {
17968                RepresentationItemRefView::AnnotationPlane(model.annotation_plane_arena.get(i.0))
17969            }
17970            RepresentationItemRef::AnnotationSymbol(i) => {
17971                RepresentationItemRefView::AnnotationSymbol(model.annotation_symbol_arena.get(i.0))
17972            }
17973            RepresentationItemRef::AnnotationSymbolOccurrence(i) => {
17974                RepresentationItemRefView::AnnotationSymbolOccurrence(
17975                    model.annotation_symbol_occurrence_arena.get(i.0),
17976                )
17977            }
17978            RepresentationItemRef::AnnotationText(i) => {
17979                RepresentationItemRefView::AnnotationText(model.annotation_text_arena.get(i.0))
17980            }
17981            RepresentationItemRef::AnnotationTextCharacter(i) => {
17982                RepresentationItemRefView::AnnotationTextCharacter(
17983                    model.annotation_text_character_arena.get(i.0),
17984                )
17985            }
17986            RepresentationItemRef::AnnotationTextOccurrence(i) => {
17987                RepresentationItemRefView::AnnotationTextOccurrence(
17988                    model.annotation_text_occurrence_arena.get(i.0),
17989                )
17990            }
17991            RepresentationItemRef::AnnotationToAnnotationLeaderLine(i) => {
17992                RepresentationItemRefView::AnnotationToAnnotationLeaderLine(
17993                    model.annotation_to_annotation_leader_line_arena.get(i.0),
17994                )
17995            }
17996            RepresentationItemRef::AnnotationToModelLeaderLine(i) => {
17997                RepresentationItemRefView::AnnotationToModelLeaderLine(
17998                    model.annotation_to_model_leader_line_arena.get(i.0),
17999                )
18000            }
18001            RepresentationItemRef::ApllPoint(i) => {
18002                RepresentationItemRefView::ApllPoint(model.apll_point_arena.get(i.0))
18003            }
18004            RepresentationItemRef::ApllPointWithSurface(i) => {
18005                RepresentationItemRefView::ApllPointWithSurface(
18006                    model.apll_point_with_surface_arena.get(i.0),
18007                )
18008            }
18009            RepresentationItemRef::AuxiliaryLeaderLine(i) => {
18010                RepresentationItemRefView::AuxiliaryLeaderLine(
18011                    model.auxiliary_leader_line_arena.get(i.0),
18012                )
18013            }
18014            RepresentationItemRef::Axis1Placement(i) => {
18015                RepresentationItemRefView::Axis1Placement(model.axis1_placement_arena.get(i.0))
18016            }
18017            RepresentationItemRef::Axis2Placement2d(i) => {
18018                RepresentationItemRefView::Axis2Placement2d(model.axis2_placement2d_arena.get(i.0))
18019            }
18020            RepresentationItemRef::Axis2Placement3d(i) => {
18021                RepresentationItemRefView::Axis2Placement3d(model.axis2_placement3d_arena.get(i.0))
18022            }
18023            RepresentationItemRef::BSplineCurve(i) => {
18024                RepresentationItemRefView::BSplineCurve(model.b_spline_curve_arena.get(i.0))
18025            }
18026            RepresentationItemRef::BSplineCurveWithKnots(i) => {
18027                RepresentationItemRefView::BSplineCurveWithKnots(
18028                    model.b_spline_curve_with_knots_arena.get(i.0),
18029                )
18030            }
18031            RepresentationItemRef::BSplineSurface(i) => {
18032                RepresentationItemRefView::BSplineSurface(model.b_spline_surface_arena.get(i.0))
18033            }
18034            RepresentationItemRef::BSplineSurfaceWithKnots(i) => {
18035                RepresentationItemRefView::BSplineSurfaceWithKnots(
18036                    model.b_spline_surface_with_knots_arena.get(i.0),
18037                )
18038            }
18039            RepresentationItemRef::BezierCurve(i) => {
18040                RepresentationItemRefView::BezierCurve(model.bezier_curve_arena.get(i.0))
18041            }
18042            RepresentationItemRef::BezierSurface(i) => {
18043                RepresentationItemRefView::BezierSurface(model.bezier_surface_arena.get(i.0))
18044            }
18045            RepresentationItemRef::BoundedCurve(i) => {
18046                RepresentationItemRefView::BoundedCurve(model.bounded_curve_arena.get(i.0))
18047            }
18048            RepresentationItemRef::BoundedPcurve(i) => {
18049                RepresentationItemRefView::BoundedPcurve(model.bounded_pcurve_arena.get(i.0))
18050            }
18051            RepresentationItemRef::BoundedSurface(i) => {
18052                RepresentationItemRefView::BoundedSurface(model.bounded_surface_arena.get(i.0))
18053            }
18054            RepresentationItemRef::BoundedSurfaceCurve(i) => {
18055                RepresentationItemRefView::BoundedSurfaceCurve(
18056                    model.bounded_surface_curve_arena.get(i.0),
18057                )
18058            }
18059            RepresentationItemRef::BrepWithVoids(i) => {
18060                RepresentationItemRefView::BrepWithVoids(model.brep_with_voids_arena.get(i.0))
18061            }
18062            RepresentationItemRef::CameraImage(i) => {
18063                RepresentationItemRefView::CameraImage(model.camera_image_arena.get(i.0))
18064            }
18065            RepresentationItemRef::CameraImage3dWithScale(i) => {
18066                RepresentationItemRefView::CameraImage3dWithScale(
18067                    model.camera_image3d_with_scale_arena.get(i.0),
18068                )
18069            }
18070            RepresentationItemRef::CameraModel(i) => {
18071                RepresentationItemRefView::CameraModel(model.camera_model_arena.get(i.0))
18072            }
18073            RepresentationItemRef::CameraModelD3(i) => {
18074                RepresentationItemRefView::CameraModelD3(model.camera_model_d3_arena.get(i.0))
18075            }
18076            RepresentationItemRef::CameraModelD3MultiClipping(i) => {
18077                RepresentationItemRefView::CameraModelD3MultiClipping(
18078                    model.camera_model_d3_multi_clipping_arena.get(i.0),
18079                )
18080            }
18081            RepresentationItemRef::CameraModelD3WithHlhsr(i) => {
18082                RepresentationItemRefView::CameraModelD3WithHlhsr(
18083                    model.camera_model_d3_with_hlhsr_arena.get(i.0),
18084                )
18085            }
18086            RepresentationItemRef::CartesianPoint(i) => {
18087                RepresentationItemRefView::CartesianPoint(model.cartesian_point_arena.get(i.0))
18088            }
18089            RepresentationItemRef::Circle(i) => {
18090                RepresentationItemRefView::Circle(model.circle_arena.get(i.0))
18091            }
18092            RepresentationItemRef::ClosedShell(i) => {
18093                RepresentationItemRefView::ClosedShell(model.closed_shell_arena.get(i.0))
18094            }
18095            RepresentationItemRef::ComplexTriangulatedFace(i) => {
18096                RepresentationItemRefView::ComplexTriangulatedFace(
18097                    model.complex_triangulated_face_arena.get(i.0),
18098                )
18099            }
18100            RepresentationItemRef::ComplexTriangulatedSurfaceSet(i) => {
18101                RepresentationItemRefView::ComplexTriangulatedSurfaceSet(
18102                    model.complex_triangulated_surface_set_arena.get(i.0),
18103                )
18104            }
18105            RepresentationItemRef::CompositeCurve(i) => {
18106                RepresentationItemRefView::CompositeCurve(model.composite_curve_arena.get(i.0))
18107            }
18108            RepresentationItemRef::CompositeText(i) => {
18109                RepresentationItemRefView::CompositeText(model.composite_text_arena.get(i.0))
18110            }
18111            RepresentationItemRef::CompoundRepresentationItem(i) => {
18112                RepresentationItemRefView::CompoundRepresentationItem(
18113                    model.compound_representation_item_arena.get(i.0),
18114                )
18115            }
18116            RepresentationItemRef::Conic(i) => {
18117                RepresentationItemRefView::Conic(model.conic_arena.get(i.0))
18118            }
18119            RepresentationItemRef::ConicalSurface(i) => {
18120                RepresentationItemRefView::ConicalSurface(model.conical_surface_arena.get(i.0))
18121            }
18122            RepresentationItemRef::ConnectedFaceSet(i) => {
18123                RepresentationItemRefView::ConnectedFaceSet(model.connected_face_set_arena.get(i.0))
18124            }
18125            RepresentationItemRef::ContextDependentOverRidingStyledItem(i) => {
18126                RepresentationItemRefView::ContextDependentOverRidingStyledItem(
18127                    model
18128                        .context_dependent_over_riding_styled_item_arena
18129                        .get(i.0),
18130                )
18131            }
18132            RepresentationItemRef::CoordinatesList(i) => {
18133                RepresentationItemRefView::CoordinatesList(model.coordinates_list_arena.get(i.0))
18134            }
18135            RepresentationItemRef::Curve(i) => {
18136                RepresentationItemRefView::Curve(model.curve_arena.get(i.0))
18137            }
18138            RepresentationItemRef::CylindricalSurface(i) => {
18139                RepresentationItemRefView::CylindricalSurface(
18140                    model.cylindrical_surface_arena.get(i.0),
18141                )
18142            }
18143            RepresentationItemRef::DefinedCharacterGlyph(i) => {
18144                RepresentationItemRefView::DefinedCharacterGlyph(
18145                    model.defined_character_glyph_arena.get(i.0),
18146                )
18147            }
18148            RepresentationItemRef::DefinedSymbol(i) => {
18149                RepresentationItemRefView::DefinedSymbol(model.defined_symbol_arena.get(i.0))
18150            }
18151            RepresentationItemRef::DegenerateToroidalSurface(i) => {
18152                RepresentationItemRefView::DegenerateToroidalSurface(
18153                    model.degenerate_toroidal_surface_arena.get(i.0),
18154                )
18155            }
18156            RepresentationItemRef::DescriptiveRepresentationItem(i) => {
18157                RepresentationItemRefView::DescriptiveRepresentationItem(
18158                    model.descriptive_representation_item_arena.get(i.0),
18159                )
18160            }
18161            RepresentationItemRef::Direction(i) => {
18162                RepresentationItemRefView::Direction(model.direction_arena.get(i.0))
18163            }
18164            RepresentationItemRef::DraughtingAnnotationOccurrence(i) => {
18165                RepresentationItemRefView::DraughtingAnnotationOccurrence(
18166                    model.draughting_annotation_occurrence_arena.get(i.0),
18167                )
18168            }
18169            RepresentationItemRef::DraughtingCallout(i) => {
18170                RepresentationItemRefView::DraughtingCallout(
18171                    model.draughting_callout_arena.get(i.0),
18172                )
18173            }
18174            RepresentationItemRef::Edge(i) => {
18175                RepresentationItemRefView::Edge(model.edge_arena.get(i.0))
18176            }
18177            RepresentationItemRef::EdgeCurve(i) => {
18178                RepresentationItemRefView::EdgeCurve(model.edge_curve_arena.get(i.0))
18179            }
18180            RepresentationItemRef::EdgeLoop(i) => {
18181                RepresentationItemRefView::EdgeLoop(model.edge_loop_arena.get(i.0))
18182            }
18183            RepresentationItemRef::ElementarySurface(i) => {
18184                RepresentationItemRefView::ElementarySurface(
18185                    model.elementary_surface_arena.get(i.0),
18186                )
18187            }
18188            RepresentationItemRef::Ellipse(i) => {
18189                RepresentationItemRefView::Ellipse(model.ellipse_arena.get(i.0))
18190            }
18191            RepresentationItemRef::ExternallyDefinedHatchStyle(i) => {
18192                RepresentationItemRefView::ExternallyDefinedHatchStyle(
18193                    model.externally_defined_hatch_style_arena.get(i.0),
18194                )
18195            }
18196            RepresentationItemRef::ExternallyDefinedTileStyle(i) => {
18197                RepresentationItemRefView::ExternallyDefinedTileStyle(
18198                    model.externally_defined_tile_style_arena.get(i.0),
18199                )
18200            }
18201            RepresentationItemRef::Face(i) => {
18202                RepresentationItemRefView::Face(model.face_arena.get(i.0))
18203            }
18204            RepresentationItemRef::FaceBound(i) => {
18205                RepresentationItemRefView::FaceBound(model.face_bound_arena.get(i.0))
18206            }
18207            RepresentationItemRef::FaceOuterBound(i) => {
18208                RepresentationItemRefView::FaceOuterBound(model.face_outer_bound_arena.get(i.0))
18209            }
18210            RepresentationItemRef::FaceSurface(i) => {
18211                RepresentationItemRefView::FaceSurface(model.face_surface_arena.get(i.0))
18212            }
18213            RepresentationItemRef::FillAreaStyleHatching(i) => {
18214                RepresentationItemRefView::FillAreaStyleHatching(
18215                    model.fill_area_style_hatching_arena.get(i.0),
18216                )
18217            }
18218            RepresentationItemRef::FillAreaStyleTileColouredRegion(i) => {
18219                RepresentationItemRefView::FillAreaStyleTileColouredRegion(
18220                    model.fill_area_style_tile_coloured_region_arena.get(i.0),
18221                )
18222            }
18223            RepresentationItemRef::FillAreaStyleTileCurveWithStyle(i) => {
18224                RepresentationItemRefView::FillAreaStyleTileCurveWithStyle(
18225                    model.fill_area_style_tile_curve_with_style_arena.get(i.0),
18226                )
18227            }
18228            RepresentationItemRef::FillAreaStyleTileSymbolWithStyle(i) => {
18229                RepresentationItemRefView::FillAreaStyleTileSymbolWithStyle(
18230                    model.fill_area_style_tile_symbol_with_style_arena.get(i.0),
18231                )
18232            }
18233            RepresentationItemRef::FillAreaStyleTiles(i) => {
18234                RepresentationItemRefView::FillAreaStyleTiles(
18235                    model.fill_area_style_tiles_arena.get(i.0),
18236                )
18237            }
18238            RepresentationItemRef::GeometricCurveSet(i) => {
18239                RepresentationItemRefView::GeometricCurveSet(
18240                    model.geometric_curve_set_arena.get(i.0),
18241                )
18242            }
18243            RepresentationItemRef::GeometricRepresentationItem(i) => {
18244                RepresentationItemRefView::GeometricRepresentationItem(
18245                    model.geometric_representation_item_arena.get(i.0),
18246                )
18247            }
18248            RepresentationItemRef::GeometricSet(i) => {
18249                RepresentationItemRefView::GeometricSet(model.geometric_set_arena.get(i.0))
18250            }
18251            RepresentationItemRef::Hyperbola(i) => {
18252                RepresentationItemRefView::Hyperbola(model.hyperbola_arena.get(i.0))
18253            }
18254            RepresentationItemRef::IntegerRepresentationItem(i) => {
18255                RepresentationItemRefView::IntegerRepresentationItem(
18256                    model.integer_representation_item_arena.get(i.0),
18257                )
18258            }
18259            RepresentationItemRef::IntersectionCurve(i) => {
18260                RepresentationItemRefView::IntersectionCurve(
18261                    model.intersection_curve_arena.get(i.0),
18262                )
18263            }
18264            RepresentationItemRef::LeaderCurve(i) => {
18265                RepresentationItemRefView::LeaderCurve(model.leader_curve_arena.get(i.0))
18266            }
18267            RepresentationItemRef::LeaderDirectedCallout(i) => {
18268                RepresentationItemRefView::LeaderDirectedCallout(
18269                    model.leader_directed_callout_arena.get(i.0),
18270                )
18271            }
18272            RepresentationItemRef::LeaderTerminator(i) => {
18273                RepresentationItemRefView::LeaderTerminator(model.leader_terminator_arena.get(i.0))
18274            }
18275            RepresentationItemRef::Line(i) => {
18276                RepresentationItemRefView::Line(model.line_arena.get(i.0))
18277            }
18278            RepresentationItemRef::Loop(i) => {
18279                RepresentationItemRefView::Loop(model.loop_arena.get(i.0))
18280            }
18281            RepresentationItemRef::ManifoldSolidBrep(i) => {
18282                RepresentationItemRefView::ManifoldSolidBrep(
18283                    model.manifold_solid_brep_arena.get(i.0),
18284                )
18285            }
18286            RepresentationItemRef::MappedItem(i) => {
18287                RepresentationItemRefView::MappedItem(model.mapped_item_arena.get(i.0))
18288            }
18289            RepresentationItemRef::MeasureRepresentationItem(i) => {
18290                RepresentationItemRefView::MeasureRepresentationItem(
18291                    model.measure_representation_item_arena.get(i.0),
18292                )
18293            }
18294            RepresentationItemRef::OffsetSurface(i) => {
18295                RepresentationItemRefView::OffsetSurface(model.offset_surface_arena.get(i.0))
18296            }
18297            RepresentationItemRef::OneDirectionRepeatFactor(i) => {
18298                RepresentationItemRefView::OneDirectionRepeatFactor(
18299                    model.one_direction_repeat_factor_arena.get(i.0),
18300                )
18301            }
18302            RepresentationItemRef::OpenShell(i) => {
18303                RepresentationItemRefView::OpenShell(model.open_shell_arena.get(i.0))
18304            }
18305            RepresentationItemRef::OrientedClosedShell(i) => {
18306                RepresentationItemRefView::OrientedClosedShell(
18307                    model.oriented_closed_shell_arena.get(i.0),
18308                )
18309            }
18310            RepresentationItemRef::OrientedEdge(i) => {
18311                RepresentationItemRefView::OrientedEdge(model.oriented_edge_arena.get(i.0))
18312            }
18313            RepresentationItemRef::OverRidingStyledItem(i) => {
18314                RepresentationItemRefView::OverRidingStyledItem(
18315                    model.over_riding_styled_item_arena.get(i.0),
18316                )
18317            }
18318            RepresentationItemRef::Path(i) => {
18319                RepresentationItemRefView::Path(model.path_arena.get(i.0))
18320            }
18321            RepresentationItemRef::Pcurve(i) => {
18322                RepresentationItemRefView::Pcurve(model.pcurve_arena.get(i.0))
18323            }
18324            RepresentationItemRef::Placement(i) => {
18325                RepresentationItemRefView::Placement(model.placement_arena.get(i.0))
18326            }
18327            RepresentationItemRef::PlanarBox(i) => {
18328                RepresentationItemRefView::PlanarBox(model.planar_box_arena.get(i.0))
18329            }
18330            RepresentationItemRef::PlanarExtent(i) => {
18331                RepresentationItemRefView::PlanarExtent(model.planar_extent_arena.get(i.0))
18332            }
18333            RepresentationItemRef::Plane(i) => {
18334                RepresentationItemRefView::Plane(model.plane_arena.get(i.0))
18335            }
18336            RepresentationItemRef::Point(i) => {
18337                RepresentationItemRefView::Point(model.point_arena.get(i.0))
18338            }
18339            RepresentationItemRef::PolyLoop(i) => {
18340                RepresentationItemRefView::PolyLoop(model.poly_loop_arena.get(i.0))
18341            }
18342            RepresentationItemRef::Polyline(i) => {
18343                RepresentationItemRefView::Polyline(model.polyline_arena.get(i.0))
18344            }
18345            RepresentationItemRef::QualifiedRepresentationItem(i) => {
18346                RepresentationItemRefView::QualifiedRepresentationItem(
18347                    model.qualified_representation_item_arena.get(i.0),
18348                )
18349            }
18350            RepresentationItemRef::QuasiUniformCurve(i) => {
18351                RepresentationItemRefView::QuasiUniformCurve(
18352                    model.quasi_uniform_curve_arena.get(i.0),
18353                )
18354            }
18355            RepresentationItemRef::QuasiUniformSurface(i) => {
18356                RepresentationItemRefView::QuasiUniformSurface(
18357                    model.quasi_uniform_surface_arena.get(i.0),
18358                )
18359            }
18360            RepresentationItemRef::RationalBSplineCurve(i) => {
18361                RepresentationItemRefView::RationalBSplineCurve(
18362                    model.rational_b_spline_curve_arena.get(i.0),
18363                )
18364            }
18365            RepresentationItemRef::RationalBSplineSurface(i) => {
18366                RepresentationItemRefView::RationalBSplineSurface(
18367                    model.rational_b_spline_surface_arena.get(i.0),
18368                )
18369            }
18370            RepresentationItemRef::RealRepresentationItem(i) => {
18371                RepresentationItemRefView::RealRepresentationItem(
18372                    model.real_representation_item_arena.get(i.0),
18373                )
18374            }
18375            RepresentationItemRef::RepositionedTessellatedItem(i) => {
18376                RepresentationItemRefView::RepositionedTessellatedItem(
18377                    model.repositioned_tessellated_item_arena.get(i.0),
18378                )
18379            }
18380            RepresentationItemRef::RepresentationItem(i) => {
18381                RepresentationItemRefView::RepresentationItem(
18382                    model.representation_item_arena.get(i.0),
18383                )
18384            }
18385            RepresentationItemRef::SeamCurve(i) => {
18386                RepresentationItemRefView::SeamCurve(model.seam_curve_arena.get(i.0))
18387            }
18388            RepresentationItemRef::ShellBasedSurfaceModel(i) => {
18389                RepresentationItemRefView::ShellBasedSurfaceModel(
18390                    model.shell_based_surface_model_arena.get(i.0),
18391                )
18392            }
18393            RepresentationItemRef::SolidModel(i) => {
18394                RepresentationItemRefView::SolidModel(model.solid_model_arena.get(i.0))
18395            }
18396            RepresentationItemRef::SphericalSurface(i) => {
18397                RepresentationItemRefView::SphericalSurface(model.spherical_surface_arena.get(i.0))
18398            }
18399            RepresentationItemRef::StyledItem(i) => {
18400                RepresentationItemRefView::StyledItem(model.styled_item_arena.get(i.0))
18401            }
18402            RepresentationItemRef::Surface(i) => {
18403                RepresentationItemRefView::Surface(model.surface_arena.get(i.0))
18404            }
18405            RepresentationItemRef::SurfaceCurve(i) => {
18406                RepresentationItemRefView::SurfaceCurve(model.surface_curve_arena.get(i.0))
18407            }
18408            RepresentationItemRef::SurfaceOfLinearExtrusion(i) => {
18409                RepresentationItemRefView::SurfaceOfLinearExtrusion(
18410                    model.surface_of_linear_extrusion_arena.get(i.0),
18411                )
18412            }
18413            RepresentationItemRef::SurfaceOfRevolution(i) => {
18414                RepresentationItemRefView::SurfaceOfRevolution(
18415                    model.surface_of_revolution_arena.get(i.0),
18416                )
18417            }
18418            RepresentationItemRef::SweptSurface(i) => {
18419                RepresentationItemRefView::SweptSurface(model.swept_surface_arena.get(i.0))
18420            }
18421            RepresentationItemRef::SymbolTarget(i) => {
18422                RepresentationItemRefView::SymbolTarget(model.symbol_target_arena.get(i.0))
18423            }
18424            RepresentationItemRef::TerminatorSymbol(i) => {
18425                RepresentationItemRefView::TerminatorSymbol(model.terminator_symbol_arena.get(i.0))
18426            }
18427            RepresentationItemRef::TessellatedAnnotationOccurrence(i) => {
18428                RepresentationItemRefView::TessellatedAnnotationOccurrence(
18429                    model.tessellated_annotation_occurrence_arena.get(i.0),
18430                )
18431            }
18432            RepresentationItemRef::TessellatedCurveSet(i) => {
18433                RepresentationItemRefView::TessellatedCurveSet(
18434                    model.tessellated_curve_set_arena.get(i.0),
18435                )
18436            }
18437            RepresentationItemRef::TessellatedFace(i) => {
18438                RepresentationItemRefView::TessellatedFace(model.tessellated_face_arena.get(i.0))
18439            }
18440            RepresentationItemRef::TessellatedGeometricSet(i) => {
18441                RepresentationItemRefView::TessellatedGeometricSet(
18442                    model.tessellated_geometric_set_arena.get(i.0),
18443                )
18444            }
18445            RepresentationItemRef::TessellatedItem(i) => {
18446                RepresentationItemRefView::TessellatedItem(model.tessellated_item_arena.get(i.0))
18447            }
18448            RepresentationItemRef::TessellatedShell(i) => {
18449                RepresentationItemRefView::TessellatedShell(model.tessellated_shell_arena.get(i.0))
18450            }
18451            RepresentationItemRef::TessellatedSolid(i) => {
18452                RepresentationItemRefView::TessellatedSolid(model.tessellated_solid_arena.get(i.0))
18453            }
18454            RepresentationItemRef::TessellatedStructuredItem(i) => {
18455                RepresentationItemRefView::TessellatedStructuredItem(
18456                    model.tessellated_structured_item_arena.get(i.0),
18457                )
18458            }
18459            RepresentationItemRef::TessellatedSurfaceSet(i) => {
18460                RepresentationItemRefView::TessellatedSurfaceSet(
18461                    model.tessellated_surface_set_arena.get(i.0),
18462                )
18463            }
18464            RepresentationItemRef::TextLiteral(i) => {
18465                RepresentationItemRefView::TextLiteral(model.text_literal_arena.get(i.0))
18466            }
18467            RepresentationItemRef::TopologicalRepresentationItem(i) => {
18468                RepresentationItemRefView::TopologicalRepresentationItem(
18469                    model.topological_representation_item_arena.get(i.0),
18470                )
18471            }
18472            RepresentationItemRef::ToroidalSurface(i) => {
18473                RepresentationItemRefView::ToroidalSurface(model.toroidal_surface_arena.get(i.0))
18474            }
18475            RepresentationItemRef::TrimmedCurve(i) => {
18476                RepresentationItemRefView::TrimmedCurve(model.trimmed_curve_arena.get(i.0))
18477            }
18478            RepresentationItemRef::TwoDirectionRepeatFactor(i) => {
18479                RepresentationItemRefView::TwoDirectionRepeatFactor(
18480                    model.two_direction_repeat_factor_arena.get(i.0),
18481                )
18482            }
18483            RepresentationItemRef::UniformCurve(i) => {
18484                RepresentationItemRefView::UniformCurve(model.uniform_curve_arena.get(i.0))
18485            }
18486            RepresentationItemRef::UniformSurface(i) => {
18487                RepresentationItemRefView::UniformSurface(model.uniform_surface_arena.get(i.0))
18488            }
18489            RepresentationItemRef::ValueRepresentationItem(i) => {
18490                RepresentationItemRefView::ValueRepresentationItem(
18491                    model.value_representation_item_arena.get(i.0),
18492                )
18493            }
18494            RepresentationItemRef::Vector(i) => {
18495                RepresentationItemRefView::Vector(model.vector_arena.get(i.0))
18496            }
18497            RepresentationItemRef::Vertex(i) => {
18498                RepresentationItemRefView::Vertex(model.vertex_arena.get(i.0))
18499            }
18500            RepresentationItemRef::VertexLoop(i) => {
18501                RepresentationItemRefView::VertexLoop(model.vertex_loop_arena.get(i.0))
18502            }
18503            RepresentationItemRef::VertexPoint(i) => {
18504                RepresentationItemRefView::VertexPoint(model.vertex_point_arena.get(i.0))
18505            }
18506            RepresentationItemRef::VertexShell(i) => {
18507                RepresentationItemRefView::VertexShell(model.vertex_shell_arena.get(i.0))
18508            }
18509            RepresentationItemRef::WireShell(i) => {
18510                RepresentationItemRefView::WireShell(model.wire_shell_arena.get(i.0))
18511            }
18512            RepresentationItemRef::Complex(i) => {
18513                RepresentationItemRefView::Complex(model.complex_unit_arena.get(i.0))
18514            }
18515        }
18516    }
18517    pub fn entity_key(&self) -> EntityKey {
18518        match self {
18519            RepresentationItemRef::AdvancedFace(i) => EntityKey::AdvancedFace(*i),
18520            RepresentationItemRef::AnnotationCurveOccurrence(i) => {
18521                EntityKey::AnnotationCurveOccurrence(*i)
18522            }
18523            RepresentationItemRef::AnnotationFillAreaOccurrence(i) => {
18524                EntityKey::AnnotationFillAreaOccurrence(*i)
18525            }
18526            RepresentationItemRef::AnnotationOccurrence(i) => EntityKey::AnnotationOccurrence(*i),
18527            RepresentationItemRef::AnnotationPlaceholderLeaderLine(i) => {
18528                EntityKey::AnnotationPlaceholderLeaderLine(*i)
18529            }
18530            RepresentationItemRef::AnnotationPlaceholderOccurrence(i) => {
18531                EntityKey::AnnotationPlaceholderOccurrence(*i)
18532            }
18533            RepresentationItemRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => {
18534                EntityKey::AnnotationPlaceholderOccurrenceWithLeaderLine(*i)
18535            }
18536            RepresentationItemRef::AnnotationPlane(i) => EntityKey::AnnotationPlane(*i),
18537            RepresentationItemRef::AnnotationSymbol(i) => EntityKey::AnnotationSymbol(*i),
18538            RepresentationItemRef::AnnotationSymbolOccurrence(i) => {
18539                EntityKey::AnnotationSymbolOccurrence(*i)
18540            }
18541            RepresentationItemRef::AnnotationText(i) => EntityKey::AnnotationText(*i),
18542            RepresentationItemRef::AnnotationTextCharacter(i) => {
18543                EntityKey::AnnotationTextCharacter(*i)
18544            }
18545            RepresentationItemRef::AnnotationTextOccurrence(i) => {
18546                EntityKey::AnnotationTextOccurrence(*i)
18547            }
18548            RepresentationItemRef::AnnotationToAnnotationLeaderLine(i) => {
18549                EntityKey::AnnotationToAnnotationLeaderLine(*i)
18550            }
18551            RepresentationItemRef::AnnotationToModelLeaderLine(i) => {
18552                EntityKey::AnnotationToModelLeaderLine(*i)
18553            }
18554            RepresentationItemRef::ApllPoint(i) => EntityKey::ApllPoint(*i),
18555            RepresentationItemRef::ApllPointWithSurface(i) => EntityKey::ApllPointWithSurface(*i),
18556            RepresentationItemRef::AuxiliaryLeaderLine(i) => EntityKey::AuxiliaryLeaderLine(*i),
18557            RepresentationItemRef::Axis1Placement(i) => EntityKey::Axis1Placement(*i),
18558            RepresentationItemRef::Axis2Placement2d(i) => EntityKey::Axis2Placement2d(*i),
18559            RepresentationItemRef::Axis2Placement3d(i) => EntityKey::Axis2Placement3d(*i),
18560            RepresentationItemRef::BSplineCurve(i) => EntityKey::BSplineCurve(*i),
18561            RepresentationItemRef::BSplineCurveWithKnots(i) => EntityKey::BSplineCurveWithKnots(*i),
18562            RepresentationItemRef::BSplineSurface(i) => EntityKey::BSplineSurface(*i),
18563            RepresentationItemRef::BSplineSurfaceWithKnots(i) => {
18564                EntityKey::BSplineSurfaceWithKnots(*i)
18565            }
18566            RepresentationItemRef::BezierCurve(i) => EntityKey::BezierCurve(*i),
18567            RepresentationItemRef::BezierSurface(i) => EntityKey::BezierSurface(*i),
18568            RepresentationItemRef::BoundedCurve(i) => EntityKey::BoundedCurve(*i),
18569            RepresentationItemRef::BoundedPcurve(i) => EntityKey::BoundedPcurve(*i),
18570            RepresentationItemRef::BoundedSurface(i) => EntityKey::BoundedSurface(*i),
18571            RepresentationItemRef::BoundedSurfaceCurve(i) => EntityKey::BoundedSurfaceCurve(*i),
18572            RepresentationItemRef::BrepWithVoids(i) => EntityKey::BrepWithVoids(*i),
18573            RepresentationItemRef::CameraImage(i) => EntityKey::CameraImage(*i),
18574            RepresentationItemRef::CameraImage3dWithScale(i) => {
18575                EntityKey::CameraImage3dWithScale(*i)
18576            }
18577            RepresentationItemRef::CameraModel(i) => EntityKey::CameraModel(*i),
18578            RepresentationItemRef::CameraModelD3(i) => EntityKey::CameraModelD3(*i),
18579            RepresentationItemRef::CameraModelD3MultiClipping(i) => {
18580                EntityKey::CameraModelD3MultiClipping(*i)
18581            }
18582            RepresentationItemRef::CameraModelD3WithHlhsr(i) => {
18583                EntityKey::CameraModelD3WithHlhsr(*i)
18584            }
18585            RepresentationItemRef::CartesianPoint(i) => EntityKey::CartesianPoint(*i),
18586            RepresentationItemRef::Circle(i) => EntityKey::Circle(*i),
18587            RepresentationItemRef::ClosedShell(i) => EntityKey::ClosedShell(*i),
18588            RepresentationItemRef::ComplexTriangulatedFace(i) => {
18589                EntityKey::ComplexTriangulatedFace(*i)
18590            }
18591            RepresentationItemRef::ComplexTriangulatedSurfaceSet(i) => {
18592                EntityKey::ComplexTriangulatedSurfaceSet(*i)
18593            }
18594            RepresentationItemRef::CompositeCurve(i) => EntityKey::CompositeCurve(*i),
18595            RepresentationItemRef::CompositeText(i) => EntityKey::CompositeText(*i),
18596            RepresentationItemRef::CompoundRepresentationItem(i) => {
18597                EntityKey::CompoundRepresentationItem(*i)
18598            }
18599            RepresentationItemRef::Conic(i) => EntityKey::Conic(*i),
18600            RepresentationItemRef::ConicalSurface(i) => EntityKey::ConicalSurface(*i),
18601            RepresentationItemRef::ConnectedFaceSet(i) => EntityKey::ConnectedFaceSet(*i),
18602            RepresentationItemRef::ContextDependentOverRidingStyledItem(i) => {
18603                EntityKey::ContextDependentOverRidingStyledItem(*i)
18604            }
18605            RepresentationItemRef::CoordinatesList(i) => EntityKey::CoordinatesList(*i),
18606            RepresentationItemRef::Curve(i) => EntityKey::Curve(*i),
18607            RepresentationItemRef::CylindricalSurface(i) => EntityKey::CylindricalSurface(*i),
18608            RepresentationItemRef::DefinedCharacterGlyph(i) => EntityKey::DefinedCharacterGlyph(*i),
18609            RepresentationItemRef::DefinedSymbol(i) => EntityKey::DefinedSymbol(*i),
18610            RepresentationItemRef::DegenerateToroidalSurface(i) => {
18611                EntityKey::DegenerateToroidalSurface(*i)
18612            }
18613            RepresentationItemRef::DescriptiveRepresentationItem(i) => {
18614                EntityKey::DescriptiveRepresentationItem(*i)
18615            }
18616            RepresentationItemRef::Direction(i) => EntityKey::Direction(*i),
18617            RepresentationItemRef::DraughtingAnnotationOccurrence(i) => {
18618                EntityKey::DraughtingAnnotationOccurrence(*i)
18619            }
18620            RepresentationItemRef::DraughtingCallout(i) => EntityKey::DraughtingCallout(*i),
18621            RepresentationItemRef::Edge(i) => EntityKey::Edge(*i),
18622            RepresentationItemRef::EdgeCurve(i) => EntityKey::EdgeCurve(*i),
18623            RepresentationItemRef::EdgeLoop(i) => EntityKey::EdgeLoop(*i),
18624            RepresentationItemRef::ElementarySurface(i) => EntityKey::ElementarySurface(*i),
18625            RepresentationItemRef::Ellipse(i) => EntityKey::Ellipse(*i),
18626            RepresentationItemRef::ExternallyDefinedHatchStyle(i) => {
18627                EntityKey::ExternallyDefinedHatchStyle(*i)
18628            }
18629            RepresentationItemRef::ExternallyDefinedTileStyle(i) => {
18630                EntityKey::ExternallyDefinedTileStyle(*i)
18631            }
18632            RepresentationItemRef::Face(i) => EntityKey::Face(*i),
18633            RepresentationItemRef::FaceBound(i) => EntityKey::FaceBound(*i),
18634            RepresentationItemRef::FaceOuterBound(i) => EntityKey::FaceOuterBound(*i),
18635            RepresentationItemRef::FaceSurface(i) => EntityKey::FaceSurface(*i),
18636            RepresentationItemRef::FillAreaStyleHatching(i) => EntityKey::FillAreaStyleHatching(*i),
18637            RepresentationItemRef::FillAreaStyleTileColouredRegion(i) => {
18638                EntityKey::FillAreaStyleTileColouredRegion(*i)
18639            }
18640            RepresentationItemRef::FillAreaStyleTileCurveWithStyle(i) => {
18641                EntityKey::FillAreaStyleTileCurveWithStyle(*i)
18642            }
18643            RepresentationItemRef::FillAreaStyleTileSymbolWithStyle(i) => {
18644                EntityKey::FillAreaStyleTileSymbolWithStyle(*i)
18645            }
18646            RepresentationItemRef::FillAreaStyleTiles(i) => EntityKey::FillAreaStyleTiles(*i),
18647            RepresentationItemRef::GeometricCurveSet(i) => EntityKey::GeometricCurveSet(*i),
18648            RepresentationItemRef::GeometricRepresentationItem(i) => {
18649                EntityKey::GeometricRepresentationItem(*i)
18650            }
18651            RepresentationItemRef::GeometricSet(i) => EntityKey::GeometricSet(*i),
18652            RepresentationItemRef::Hyperbola(i) => EntityKey::Hyperbola(*i),
18653            RepresentationItemRef::IntegerRepresentationItem(i) => {
18654                EntityKey::IntegerRepresentationItem(*i)
18655            }
18656            RepresentationItemRef::IntersectionCurve(i) => EntityKey::IntersectionCurve(*i),
18657            RepresentationItemRef::LeaderCurve(i) => EntityKey::LeaderCurve(*i),
18658            RepresentationItemRef::LeaderDirectedCallout(i) => EntityKey::LeaderDirectedCallout(*i),
18659            RepresentationItemRef::LeaderTerminator(i) => EntityKey::LeaderTerminator(*i),
18660            RepresentationItemRef::Line(i) => EntityKey::Line(*i),
18661            RepresentationItemRef::Loop(i) => EntityKey::Loop(*i),
18662            RepresentationItemRef::ManifoldSolidBrep(i) => EntityKey::ManifoldSolidBrep(*i),
18663            RepresentationItemRef::MappedItem(i) => EntityKey::MappedItem(*i),
18664            RepresentationItemRef::MeasureRepresentationItem(i) => {
18665                EntityKey::MeasureRepresentationItem(*i)
18666            }
18667            RepresentationItemRef::OffsetSurface(i) => EntityKey::OffsetSurface(*i),
18668            RepresentationItemRef::OneDirectionRepeatFactor(i) => {
18669                EntityKey::OneDirectionRepeatFactor(*i)
18670            }
18671            RepresentationItemRef::OpenShell(i) => EntityKey::OpenShell(*i),
18672            RepresentationItemRef::OrientedClosedShell(i) => EntityKey::OrientedClosedShell(*i),
18673            RepresentationItemRef::OrientedEdge(i) => EntityKey::OrientedEdge(*i),
18674            RepresentationItemRef::OverRidingStyledItem(i) => EntityKey::OverRidingStyledItem(*i),
18675            RepresentationItemRef::Path(i) => EntityKey::Path(*i),
18676            RepresentationItemRef::Pcurve(i) => EntityKey::Pcurve(*i),
18677            RepresentationItemRef::Placement(i) => EntityKey::Placement(*i),
18678            RepresentationItemRef::PlanarBox(i) => EntityKey::PlanarBox(*i),
18679            RepresentationItemRef::PlanarExtent(i) => EntityKey::PlanarExtent(*i),
18680            RepresentationItemRef::Plane(i) => EntityKey::Plane(*i),
18681            RepresentationItemRef::Point(i) => EntityKey::Point(*i),
18682            RepresentationItemRef::PolyLoop(i) => EntityKey::PolyLoop(*i),
18683            RepresentationItemRef::Polyline(i) => EntityKey::Polyline(*i),
18684            RepresentationItemRef::QualifiedRepresentationItem(i) => {
18685                EntityKey::QualifiedRepresentationItem(*i)
18686            }
18687            RepresentationItemRef::QuasiUniformCurve(i) => EntityKey::QuasiUniformCurve(*i),
18688            RepresentationItemRef::QuasiUniformSurface(i) => EntityKey::QuasiUniformSurface(*i),
18689            RepresentationItemRef::RationalBSplineCurve(i) => EntityKey::RationalBSplineCurve(*i),
18690            RepresentationItemRef::RationalBSplineSurface(i) => {
18691                EntityKey::RationalBSplineSurface(*i)
18692            }
18693            RepresentationItemRef::RealRepresentationItem(i) => {
18694                EntityKey::RealRepresentationItem(*i)
18695            }
18696            RepresentationItemRef::RepositionedTessellatedItem(i) => {
18697                EntityKey::RepositionedTessellatedItem(*i)
18698            }
18699            RepresentationItemRef::RepresentationItem(i) => EntityKey::RepresentationItem(*i),
18700            RepresentationItemRef::SeamCurve(i) => EntityKey::SeamCurve(*i),
18701            RepresentationItemRef::ShellBasedSurfaceModel(i) => {
18702                EntityKey::ShellBasedSurfaceModel(*i)
18703            }
18704            RepresentationItemRef::SolidModel(i) => EntityKey::SolidModel(*i),
18705            RepresentationItemRef::SphericalSurface(i) => EntityKey::SphericalSurface(*i),
18706            RepresentationItemRef::StyledItem(i) => EntityKey::StyledItem(*i),
18707            RepresentationItemRef::Surface(i) => EntityKey::Surface(*i),
18708            RepresentationItemRef::SurfaceCurve(i) => EntityKey::SurfaceCurve(*i),
18709            RepresentationItemRef::SurfaceOfLinearExtrusion(i) => {
18710                EntityKey::SurfaceOfLinearExtrusion(*i)
18711            }
18712            RepresentationItemRef::SurfaceOfRevolution(i) => EntityKey::SurfaceOfRevolution(*i),
18713            RepresentationItemRef::SweptSurface(i) => EntityKey::SweptSurface(*i),
18714            RepresentationItemRef::SymbolTarget(i) => EntityKey::SymbolTarget(*i),
18715            RepresentationItemRef::TerminatorSymbol(i) => EntityKey::TerminatorSymbol(*i),
18716            RepresentationItemRef::TessellatedAnnotationOccurrence(i) => {
18717                EntityKey::TessellatedAnnotationOccurrence(*i)
18718            }
18719            RepresentationItemRef::TessellatedCurveSet(i) => EntityKey::TessellatedCurveSet(*i),
18720            RepresentationItemRef::TessellatedFace(i) => EntityKey::TessellatedFace(*i),
18721            RepresentationItemRef::TessellatedGeometricSet(i) => {
18722                EntityKey::TessellatedGeometricSet(*i)
18723            }
18724            RepresentationItemRef::TessellatedItem(i) => EntityKey::TessellatedItem(*i),
18725            RepresentationItemRef::TessellatedShell(i) => EntityKey::TessellatedShell(*i),
18726            RepresentationItemRef::TessellatedSolid(i) => EntityKey::TessellatedSolid(*i),
18727            RepresentationItemRef::TessellatedStructuredItem(i) => {
18728                EntityKey::TessellatedStructuredItem(*i)
18729            }
18730            RepresentationItemRef::TessellatedSurfaceSet(i) => EntityKey::TessellatedSurfaceSet(*i),
18731            RepresentationItemRef::TextLiteral(i) => EntityKey::TextLiteral(*i),
18732            RepresentationItemRef::TopologicalRepresentationItem(i) => {
18733                EntityKey::TopologicalRepresentationItem(*i)
18734            }
18735            RepresentationItemRef::ToroidalSurface(i) => EntityKey::ToroidalSurface(*i),
18736            RepresentationItemRef::TrimmedCurve(i) => EntityKey::TrimmedCurve(*i),
18737            RepresentationItemRef::TwoDirectionRepeatFactor(i) => {
18738                EntityKey::TwoDirectionRepeatFactor(*i)
18739            }
18740            RepresentationItemRef::UniformCurve(i) => EntityKey::UniformCurve(*i),
18741            RepresentationItemRef::UniformSurface(i) => EntityKey::UniformSurface(*i),
18742            RepresentationItemRef::ValueRepresentationItem(i) => {
18743                EntityKey::ValueRepresentationItem(*i)
18744            }
18745            RepresentationItemRef::Vector(i) => EntityKey::Vector(*i),
18746            RepresentationItemRef::Vertex(i) => EntityKey::Vertex(*i),
18747            RepresentationItemRef::VertexLoop(i) => EntityKey::VertexLoop(*i),
18748            RepresentationItemRef::VertexPoint(i) => EntityKey::VertexPoint(*i),
18749            RepresentationItemRef::VertexShell(i) => EntityKey::VertexShell(*i),
18750            RepresentationItemRef::WireShell(i) => EntityKey::WireShell(*i),
18751            RepresentationItemRef::Complex(i) => EntityKey::ComplexUnit(*i),
18752        }
18753    }
18754}
18755
18756#[derive(Clone, Copy, Debug)]
18757pub enum RepresentationMapRefView<'m> {
18758    CameraUsage(&'m CameraUsage),
18759    RepresentationMap(&'m RepresentationMap),
18760    Complex(&'m ComplexUnit),
18761}
18762impl RepresentationMapRef {
18763    pub fn resolve<'m>(&self, model: &'m StepModel) -> RepresentationMapRefView<'m> {
18764        match self {
18765            RepresentationMapRef::CameraUsage(i) => {
18766                RepresentationMapRefView::CameraUsage(model.camera_usage_arena.get(i.0))
18767            }
18768            RepresentationMapRef::RepresentationMap(i) => {
18769                RepresentationMapRefView::RepresentationMap(model.representation_map_arena.get(i.0))
18770            }
18771            RepresentationMapRef::Complex(i) => {
18772                RepresentationMapRefView::Complex(model.complex_unit_arena.get(i.0))
18773            }
18774        }
18775    }
18776    pub fn entity_key(&self) -> EntityKey {
18777        match self {
18778            RepresentationMapRef::CameraUsage(i) => EntityKey::CameraUsage(*i),
18779            RepresentationMapRef::RepresentationMap(i) => EntityKey::RepresentationMap(*i),
18780            RepresentationMapRef::Complex(i) => EntityKey::ComplexUnit(*i),
18781        }
18782    }
18783}
18784
18785#[derive(Clone, Copy, Debug)]
18786pub enum RepresentationOrRepresentationReferenceRefView<'m> {
18787    AdvancedBrepShapeRepresentation(&'m AdvancedBrepShapeRepresentation),
18788    CharacterizedRepresentation(&'m CharacterizedRepresentation),
18789    ConstructiveGeometryRepresentation(&'m ConstructiveGeometryRepresentation),
18790    DefinitionalRepresentation(&'m DefinitionalRepresentation),
18791    DraughtingModel(&'m DraughtingModel),
18792    GeometricallyBoundedSurfaceShapeRepresentation(
18793        &'m GeometricallyBoundedSurfaceShapeRepresentation,
18794    ),
18795    GeometricallyBoundedWireframeShapeRepresentation(
18796        &'m GeometricallyBoundedWireframeShapeRepresentation,
18797    ),
18798    ManifoldSurfaceShapeRepresentation(&'m ManifoldSurfaceShapeRepresentation),
18799    MechanicalDesignGeometricPresentationRepresentation(
18800        &'m MechanicalDesignGeometricPresentationRepresentation,
18801    ),
18802    MechanicalDesignPresentationRepresentationWithDraughting(
18803        &'m MechanicalDesignPresentationRepresentationWithDraughting,
18804    ),
18805    MechanicalDesignShadedPresentationRepresentation(
18806        &'m MechanicalDesignShadedPresentationRepresentation,
18807    ),
18808    PresentationArea(&'m PresentationArea),
18809    PresentationRepresentation(&'m PresentationRepresentation),
18810    PresentationView(&'m PresentationView),
18811    Representation(&'m Representation),
18812    RepresentationReference(&'m RepresentationReference),
18813    ShapeDimensionRepresentation(&'m ShapeDimensionRepresentation),
18814    ShapeRepresentation(&'m ShapeRepresentation),
18815    ShapeRepresentationWithParameters(&'m ShapeRepresentationWithParameters),
18816    SymbolRepresentation(&'m SymbolRepresentation),
18817    TessellatedShapeRepresentation(&'m TessellatedShapeRepresentation),
18818    Complex(&'m ComplexUnit),
18819}
18820impl RepresentationOrRepresentationReferenceRef {
18821    pub fn resolve<'m>(
18822        &self,
18823        model: &'m StepModel,
18824    ) -> RepresentationOrRepresentationReferenceRefView<'m> {
18825        match self {
18826            RepresentationOrRepresentationReferenceRef::AdvancedBrepShapeRepresentation(i) => RepresentationOrRepresentationReferenceRefView::AdvancedBrepShapeRepresentation(model.advanced_brep_shape_representation_arena.get(i.0)),
18827            RepresentationOrRepresentationReferenceRef::CharacterizedRepresentation(i) => RepresentationOrRepresentationReferenceRefView::CharacterizedRepresentation(model.characterized_representation_arena.get(i.0)),
18828            RepresentationOrRepresentationReferenceRef::ConstructiveGeometryRepresentation(i) => RepresentationOrRepresentationReferenceRefView::ConstructiveGeometryRepresentation(model.constructive_geometry_representation_arena.get(i.0)),
18829            RepresentationOrRepresentationReferenceRef::DefinitionalRepresentation(i) => RepresentationOrRepresentationReferenceRefView::DefinitionalRepresentation(model.definitional_representation_arena.get(i.0)),
18830            RepresentationOrRepresentationReferenceRef::DraughtingModel(i) => RepresentationOrRepresentationReferenceRefView::DraughtingModel(model.draughting_model_arena.get(i.0)),
18831            RepresentationOrRepresentationReferenceRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => RepresentationOrRepresentationReferenceRefView::GeometricallyBoundedSurfaceShapeRepresentation(model.geometrically_bounded_surface_shape_representation_arena.get(i.0)),
18832            RepresentationOrRepresentationReferenceRef::GeometricallyBoundedWireframeShapeRepresentation(i) => RepresentationOrRepresentationReferenceRefView::GeometricallyBoundedWireframeShapeRepresentation(model.geometrically_bounded_wireframe_shape_representation_arena.get(i.0)),
18833            RepresentationOrRepresentationReferenceRef::ManifoldSurfaceShapeRepresentation(i) => RepresentationOrRepresentationReferenceRefView::ManifoldSurfaceShapeRepresentation(model.manifold_surface_shape_representation_arena.get(i.0)),
18834            RepresentationOrRepresentationReferenceRef::MechanicalDesignGeometricPresentationRepresentation(i) => RepresentationOrRepresentationReferenceRefView::MechanicalDesignGeometricPresentationRepresentation(model.mechanical_design_geometric_presentation_representation_arena.get(i.0)),
18835            RepresentationOrRepresentationReferenceRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => RepresentationOrRepresentationReferenceRefView::MechanicalDesignPresentationRepresentationWithDraughting(model.mechanical_design_presentation_representation_with_draughting_arena.get(i.0)),
18836            RepresentationOrRepresentationReferenceRef::MechanicalDesignShadedPresentationRepresentation(i) => RepresentationOrRepresentationReferenceRefView::MechanicalDesignShadedPresentationRepresentation(model.mechanical_design_shaded_presentation_representation_arena.get(i.0)),
18837            RepresentationOrRepresentationReferenceRef::PresentationArea(i) => RepresentationOrRepresentationReferenceRefView::PresentationArea(model.presentation_area_arena.get(i.0)),
18838            RepresentationOrRepresentationReferenceRef::PresentationRepresentation(i) => RepresentationOrRepresentationReferenceRefView::PresentationRepresentation(model.presentation_representation_arena.get(i.0)),
18839            RepresentationOrRepresentationReferenceRef::PresentationView(i) => RepresentationOrRepresentationReferenceRefView::PresentationView(model.presentation_view_arena.get(i.0)),
18840            RepresentationOrRepresentationReferenceRef::Representation(i) => RepresentationOrRepresentationReferenceRefView::Representation(model.representation_arena.get(i.0)),
18841            RepresentationOrRepresentationReferenceRef::RepresentationReference(i) => RepresentationOrRepresentationReferenceRefView::RepresentationReference(model.representation_reference_arena.get(i.0)),
18842            RepresentationOrRepresentationReferenceRef::ShapeDimensionRepresentation(i) => RepresentationOrRepresentationReferenceRefView::ShapeDimensionRepresentation(model.shape_dimension_representation_arena.get(i.0)),
18843            RepresentationOrRepresentationReferenceRef::ShapeRepresentation(i) => RepresentationOrRepresentationReferenceRefView::ShapeRepresentation(model.shape_representation_arena.get(i.0)),
18844            RepresentationOrRepresentationReferenceRef::ShapeRepresentationWithParameters(i) => RepresentationOrRepresentationReferenceRefView::ShapeRepresentationWithParameters(model.shape_representation_with_parameters_arena.get(i.0)),
18845            RepresentationOrRepresentationReferenceRef::SymbolRepresentation(i) => RepresentationOrRepresentationReferenceRefView::SymbolRepresentation(model.symbol_representation_arena.get(i.0)),
18846            RepresentationOrRepresentationReferenceRef::TessellatedShapeRepresentation(i) => RepresentationOrRepresentationReferenceRefView::TessellatedShapeRepresentation(model.tessellated_shape_representation_arena.get(i.0)),
18847            RepresentationOrRepresentationReferenceRef::Complex(i) => RepresentationOrRepresentationReferenceRefView::Complex(model.complex_unit_arena.get(i.0)),
18848        }
18849    }
18850    pub fn entity_key(&self) -> EntityKey {
18851        match self {
18852            RepresentationOrRepresentationReferenceRef::AdvancedBrepShapeRepresentation(i) => EntityKey::AdvancedBrepShapeRepresentation(*i),
18853            RepresentationOrRepresentationReferenceRef::CharacterizedRepresentation(i) => EntityKey::CharacterizedRepresentation(*i),
18854            RepresentationOrRepresentationReferenceRef::ConstructiveGeometryRepresentation(i) => EntityKey::ConstructiveGeometryRepresentation(*i),
18855            RepresentationOrRepresentationReferenceRef::DefinitionalRepresentation(i) => EntityKey::DefinitionalRepresentation(*i),
18856            RepresentationOrRepresentationReferenceRef::DraughtingModel(i) => EntityKey::DraughtingModel(*i),
18857            RepresentationOrRepresentationReferenceRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => EntityKey::GeometricallyBoundedSurfaceShapeRepresentation(*i),
18858            RepresentationOrRepresentationReferenceRef::GeometricallyBoundedWireframeShapeRepresentation(i) => EntityKey::GeometricallyBoundedWireframeShapeRepresentation(*i),
18859            RepresentationOrRepresentationReferenceRef::ManifoldSurfaceShapeRepresentation(i) => EntityKey::ManifoldSurfaceShapeRepresentation(*i),
18860            RepresentationOrRepresentationReferenceRef::MechanicalDesignGeometricPresentationRepresentation(i) => EntityKey::MechanicalDesignGeometricPresentationRepresentation(*i),
18861            RepresentationOrRepresentationReferenceRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => EntityKey::MechanicalDesignPresentationRepresentationWithDraughting(*i),
18862            RepresentationOrRepresentationReferenceRef::MechanicalDesignShadedPresentationRepresentation(i) => EntityKey::MechanicalDesignShadedPresentationRepresentation(*i),
18863            RepresentationOrRepresentationReferenceRef::PresentationArea(i) => EntityKey::PresentationArea(*i),
18864            RepresentationOrRepresentationReferenceRef::PresentationRepresentation(i) => EntityKey::PresentationRepresentation(*i),
18865            RepresentationOrRepresentationReferenceRef::PresentationView(i) => EntityKey::PresentationView(*i),
18866            RepresentationOrRepresentationReferenceRef::Representation(i) => EntityKey::Representation(*i),
18867            RepresentationOrRepresentationReferenceRef::RepresentationReference(i) => EntityKey::RepresentationReference(*i),
18868            RepresentationOrRepresentationReferenceRef::ShapeDimensionRepresentation(i) => EntityKey::ShapeDimensionRepresentation(*i),
18869            RepresentationOrRepresentationReferenceRef::ShapeRepresentation(i) => EntityKey::ShapeRepresentation(*i),
18870            RepresentationOrRepresentationReferenceRef::ShapeRepresentationWithParameters(i) => EntityKey::ShapeRepresentationWithParameters(*i),
18871            RepresentationOrRepresentationReferenceRef::SymbolRepresentation(i) => EntityKey::SymbolRepresentation(*i),
18872            RepresentationOrRepresentationReferenceRef::TessellatedShapeRepresentation(i) => EntityKey::TessellatedShapeRepresentation(*i),
18873            RepresentationOrRepresentationReferenceRef::Complex(i) => EntityKey::ComplexUnit(*i),
18874        }
18875    }
18876}
18877
18878#[derive(Clone, Copy, Debug)]
18879pub enum RepresentedDefinitionRefView<'m> {
18880    AllAroundShapeAspect(&'m AllAroundShapeAspect),
18881    AngularLocation(&'m AngularLocation),
18882    CentreOfSymmetry(&'m CentreOfSymmetry),
18883    CommonDatum(&'m CommonDatum),
18884    CompositeGroupShapeAspect(&'m CompositeGroupShapeAspect),
18885    CompositeShapeAspect(&'m CompositeShapeAspect),
18886    ContinuousShapeAspect(&'m ContinuousShapeAspect),
18887    Datum(&'m Datum),
18888    DatumFeature(&'m DatumFeature),
18889    DatumReferenceCompartment(&'m DatumReferenceCompartment),
18890    DatumReferenceElement(&'m DatumReferenceElement),
18891    DatumSystem(&'m DatumSystem),
18892    DatumTarget(&'m DatumTarget),
18893    DefaultModelGeometricView(&'m DefaultModelGeometricView),
18894    DerivedShapeAspect(&'m DerivedShapeAspect),
18895    DimensionalLocation(&'m DimensionalLocation),
18896    DimensionalLocationWithPath(&'m DimensionalLocationWithPath),
18897    DimensionalSizeWithDatumFeature(&'m DimensionalSizeWithDatumFeature),
18898    DirectedDimensionalLocation(&'m DirectedDimensionalLocation),
18899    FeatureForDatumTargetRelationship(&'m FeatureForDatumTargetRelationship),
18900    GeneralDatumReference(&'m GeneralDatumReference),
18901    GeneralProperty(&'m GeneralProperty),
18902    PlacedDatumTargetFeature(&'m PlacedDatumTargetFeature),
18903    ProductDefinitionShape(&'m ProductDefinitionShape),
18904    PropertyDefinition(&'m PropertyDefinition),
18905    PropertyDefinitionRelationship(&'m PropertyDefinitionRelationship),
18906    ShapeAspect(&'m ShapeAspect),
18907    ShapeAspectAssociativity(&'m ShapeAspectAssociativity),
18908    ShapeAspectDerivingRelationship(&'m ShapeAspectDerivingRelationship),
18909    ShapeAspectRelationship(&'m ShapeAspectRelationship),
18910    ToleranceZone(&'m ToleranceZone),
18911    ToleranceZoneWithDatum(&'m ToleranceZoneWithDatum),
18912    Complex(&'m ComplexUnit),
18913}
18914impl RepresentedDefinitionRef {
18915    pub fn resolve<'m>(&self, model: &'m StepModel) -> RepresentedDefinitionRefView<'m> {
18916        match self {
18917            RepresentedDefinitionRef::AllAroundShapeAspect(i) => {
18918                RepresentedDefinitionRefView::AllAroundShapeAspect(
18919                    model.all_around_shape_aspect_arena.get(i.0),
18920                )
18921            }
18922            RepresentedDefinitionRef::AngularLocation(i) => {
18923                RepresentedDefinitionRefView::AngularLocation(model.angular_location_arena.get(i.0))
18924            }
18925            RepresentedDefinitionRef::CentreOfSymmetry(i) => {
18926                RepresentedDefinitionRefView::CentreOfSymmetry(
18927                    model.centre_of_symmetry_arena.get(i.0),
18928                )
18929            }
18930            RepresentedDefinitionRef::CommonDatum(i) => {
18931                RepresentedDefinitionRefView::CommonDatum(model.common_datum_arena.get(i.0))
18932            }
18933            RepresentedDefinitionRef::CompositeGroupShapeAspect(i) => {
18934                RepresentedDefinitionRefView::CompositeGroupShapeAspect(
18935                    model.composite_group_shape_aspect_arena.get(i.0),
18936                )
18937            }
18938            RepresentedDefinitionRef::CompositeShapeAspect(i) => {
18939                RepresentedDefinitionRefView::CompositeShapeAspect(
18940                    model.composite_shape_aspect_arena.get(i.0),
18941                )
18942            }
18943            RepresentedDefinitionRef::ContinuousShapeAspect(i) => {
18944                RepresentedDefinitionRefView::ContinuousShapeAspect(
18945                    model.continuous_shape_aspect_arena.get(i.0),
18946                )
18947            }
18948            RepresentedDefinitionRef::Datum(i) => {
18949                RepresentedDefinitionRefView::Datum(model.datum_arena.get(i.0))
18950            }
18951            RepresentedDefinitionRef::DatumFeature(i) => {
18952                RepresentedDefinitionRefView::DatumFeature(model.datum_feature_arena.get(i.0))
18953            }
18954            RepresentedDefinitionRef::DatumReferenceCompartment(i) => {
18955                RepresentedDefinitionRefView::DatumReferenceCompartment(
18956                    model.datum_reference_compartment_arena.get(i.0),
18957                )
18958            }
18959            RepresentedDefinitionRef::DatumReferenceElement(i) => {
18960                RepresentedDefinitionRefView::DatumReferenceElement(
18961                    model.datum_reference_element_arena.get(i.0),
18962                )
18963            }
18964            RepresentedDefinitionRef::DatumSystem(i) => {
18965                RepresentedDefinitionRefView::DatumSystem(model.datum_system_arena.get(i.0))
18966            }
18967            RepresentedDefinitionRef::DatumTarget(i) => {
18968                RepresentedDefinitionRefView::DatumTarget(model.datum_target_arena.get(i.0))
18969            }
18970            RepresentedDefinitionRef::DefaultModelGeometricView(i) => {
18971                RepresentedDefinitionRefView::DefaultModelGeometricView(
18972                    model.default_model_geometric_view_arena.get(i.0),
18973                )
18974            }
18975            RepresentedDefinitionRef::DerivedShapeAspect(i) => {
18976                RepresentedDefinitionRefView::DerivedShapeAspect(
18977                    model.derived_shape_aspect_arena.get(i.0),
18978                )
18979            }
18980            RepresentedDefinitionRef::DimensionalLocation(i) => {
18981                RepresentedDefinitionRefView::DimensionalLocation(
18982                    model.dimensional_location_arena.get(i.0),
18983                )
18984            }
18985            RepresentedDefinitionRef::DimensionalLocationWithPath(i) => {
18986                RepresentedDefinitionRefView::DimensionalLocationWithPath(
18987                    model.dimensional_location_with_path_arena.get(i.0),
18988                )
18989            }
18990            RepresentedDefinitionRef::DimensionalSizeWithDatumFeature(i) => {
18991                RepresentedDefinitionRefView::DimensionalSizeWithDatumFeature(
18992                    model.dimensional_size_with_datum_feature_arena.get(i.0),
18993                )
18994            }
18995            RepresentedDefinitionRef::DirectedDimensionalLocation(i) => {
18996                RepresentedDefinitionRefView::DirectedDimensionalLocation(
18997                    model.directed_dimensional_location_arena.get(i.0),
18998                )
18999            }
19000            RepresentedDefinitionRef::FeatureForDatumTargetRelationship(i) => {
19001                RepresentedDefinitionRefView::FeatureForDatumTargetRelationship(
19002                    model.feature_for_datum_target_relationship_arena.get(i.0),
19003                )
19004            }
19005            RepresentedDefinitionRef::GeneralDatumReference(i) => {
19006                RepresentedDefinitionRefView::GeneralDatumReference(
19007                    model.general_datum_reference_arena.get(i.0),
19008                )
19009            }
19010            RepresentedDefinitionRef::GeneralProperty(i) => {
19011                RepresentedDefinitionRefView::GeneralProperty(model.general_property_arena.get(i.0))
19012            }
19013            RepresentedDefinitionRef::PlacedDatumTargetFeature(i) => {
19014                RepresentedDefinitionRefView::PlacedDatumTargetFeature(
19015                    model.placed_datum_target_feature_arena.get(i.0),
19016                )
19017            }
19018            RepresentedDefinitionRef::ProductDefinitionShape(i) => {
19019                RepresentedDefinitionRefView::ProductDefinitionShape(
19020                    model.product_definition_shape_arena.get(i.0),
19021                )
19022            }
19023            RepresentedDefinitionRef::PropertyDefinition(i) => {
19024                RepresentedDefinitionRefView::PropertyDefinition(
19025                    model.property_definition_arena.get(i.0),
19026                )
19027            }
19028            RepresentedDefinitionRef::PropertyDefinitionRelationship(i) => {
19029                RepresentedDefinitionRefView::PropertyDefinitionRelationship(
19030                    model.property_definition_relationship_arena.get(i.0),
19031                )
19032            }
19033            RepresentedDefinitionRef::ShapeAspect(i) => {
19034                RepresentedDefinitionRefView::ShapeAspect(model.shape_aspect_arena.get(i.0))
19035            }
19036            RepresentedDefinitionRef::ShapeAspectAssociativity(i) => {
19037                RepresentedDefinitionRefView::ShapeAspectAssociativity(
19038                    model.shape_aspect_associativity_arena.get(i.0),
19039                )
19040            }
19041            RepresentedDefinitionRef::ShapeAspectDerivingRelationship(i) => {
19042                RepresentedDefinitionRefView::ShapeAspectDerivingRelationship(
19043                    model.shape_aspect_deriving_relationship_arena.get(i.0),
19044                )
19045            }
19046            RepresentedDefinitionRef::ShapeAspectRelationship(i) => {
19047                RepresentedDefinitionRefView::ShapeAspectRelationship(
19048                    model.shape_aspect_relationship_arena.get(i.0),
19049                )
19050            }
19051            RepresentedDefinitionRef::ToleranceZone(i) => {
19052                RepresentedDefinitionRefView::ToleranceZone(model.tolerance_zone_arena.get(i.0))
19053            }
19054            RepresentedDefinitionRef::ToleranceZoneWithDatum(i) => {
19055                RepresentedDefinitionRefView::ToleranceZoneWithDatum(
19056                    model.tolerance_zone_with_datum_arena.get(i.0),
19057                )
19058            }
19059            RepresentedDefinitionRef::Complex(i) => {
19060                RepresentedDefinitionRefView::Complex(model.complex_unit_arena.get(i.0))
19061            }
19062        }
19063    }
19064    pub fn entity_key(&self) -> EntityKey {
19065        match self {
19066            RepresentedDefinitionRef::AllAroundShapeAspect(i) => {
19067                EntityKey::AllAroundShapeAspect(*i)
19068            }
19069            RepresentedDefinitionRef::AngularLocation(i) => EntityKey::AngularLocation(*i),
19070            RepresentedDefinitionRef::CentreOfSymmetry(i) => EntityKey::CentreOfSymmetry(*i),
19071            RepresentedDefinitionRef::CommonDatum(i) => EntityKey::CommonDatum(*i),
19072            RepresentedDefinitionRef::CompositeGroupShapeAspect(i) => {
19073                EntityKey::CompositeGroupShapeAspect(*i)
19074            }
19075            RepresentedDefinitionRef::CompositeShapeAspect(i) => {
19076                EntityKey::CompositeShapeAspect(*i)
19077            }
19078            RepresentedDefinitionRef::ContinuousShapeAspect(i) => {
19079                EntityKey::ContinuousShapeAspect(*i)
19080            }
19081            RepresentedDefinitionRef::Datum(i) => EntityKey::Datum(*i),
19082            RepresentedDefinitionRef::DatumFeature(i) => EntityKey::DatumFeature(*i),
19083            RepresentedDefinitionRef::DatumReferenceCompartment(i) => {
19084                EntityKey::DatumReferenceCompartment(*i)
19085            }
19086            RepresentedDefinitionRef::DatumReferenceElement(i) => {
19087                EntityKey::DatumReferenceElement(*i)
19088            }
19089            RepresentedDefinitionRef::DatumSystem(i) => EntityKey::DatumSystem(*i),
19090            RepresentedDefinitionRef::DatumTarget(i) => EntityKey::DatumTarget(*i),
19091            RepresentedDefinitionRef::DefaultModelGeometricView(i) => {
19092                EntityKey::DefaultModelGeometricView(*i)
19093            }
19094            RepresentedDefinitionRef::DerivedShapeAspect(i) => EntityKey::DerivedShapeAspect(*i),
19095            RepresentedDefinitionRef::DimensionalLocation(i) => EntityKey::DimensionalLocation(*i),
19096            RepresentedDefinitionRef::DimensionalLocationWithPath(i) => {
19097                EntityKey::DimensionalLocationWithPath(*i)
19098            }
19099            RepresentedDefinitionRef::DimensionalSizeWithDatumFeature(i) => {
19100                EntityKey::DimensionalSizeWithDatumFeature(*i)
19101            }
19102            RepresentedDefinitionRef::DirectedDimensionalLocation(i) => {
19103                EntityKey::DirectedDimensionalLocation(*i)
19104            }
19105            RepresentedDefinitionRef::FeatureForDatumTargetRelationship(i) => {
19106                EntityKey::FeatureForDatumTargetRelationship(*i)
19107            }
19108            RepresentedDefinitionRef::GeneralDatumReference(i) => {
19109                EntityKey::GeneralDatumReference(*i)
19110            }
19111            RepresentedDefinitionRef::GeneralProperty(i) => EntityKey::GeneralProperty(*i),
19112            RepresentedDefinitionRef::PlacedDatumTargetFeature(i) => {
19113                EntityKey::PlacedDatumTargetFeature(*i)
19114            }
19115            RepresentedDefinitionRef::ProductDefinitionShape(i) => {
19116                EntityKey::ProductDefinitionShape(*i)
19117            }
19118            RepresentedDefinitionRef::PropertyDefinition(i) => EntityKey::PropertyDefinition(*i),
19119            RepresentedDefinitionRef::PropertyDefinitionRelationship(i) => {
19120                EntityKey::PropertyDefinitionRelationship(*i)
19121            }
19122            RepresentedDefinitionRef::ShapeAspect(i) => EntityKey::ShapeAspect(*i),
19123            RepresentedDefinitionRef::ShapeAspectAssociativity(i) => {
19124                EntityKey::ShapeAspectAssociativity(*i)
19125            }
19126            RepresentedDefinitionRef::ShapeAspectDerivingRelationship(i) => {
19127                EntityKey::ShapeAspectDerivingRelationship(*i)
19128            }
19129            RepresentedDefinitionRef::ShapeAspectRelationship(i) => {
19130                EntityKey::ShapeAspectRelationship(*i)
19131            }
19132            RepresentedDefinitionRef::ToleranceZone(i) => EntityKey::ToleranceZone(*i),
19133            RepresentedDefinitionRef::ToleranceZoneWithDatum(i) => {
19134                EntityKey::ToleranceZoneWithDatum(*i)
19135            }
19136            RepresentedDefinitionRef::Complex(i) => EntityKey::ComplexUnit(*i),
19137        }
19138    }
19139}
19140
19141#[derive(Clone, Copy, Debug)]
19142pub enum ResourceRequirementTypeRefView<'m> {
19143    ResourceRequirementType(&'m ResourceRequirementType),
19144}
19145impl ResourceRequirementTypeRef {
19146    pub fn resolve<'m>(&self, model: &'m StepModel) -> ResourceRequirementTypeRefView<'m> {
19147        match self {
19148            ResourceRequirementTypeRef::ResourceRequirementType(i) => {
19149                ResourceRequirementTypeRefView::ResourceRequirementType(
19150                    model.resource_requirement_type_arena.get(i.0),
19151                )
19152            }
19153        }
19154    }
19155    pub fn entity_key(&self) -> EntityKey {
19156        match self {
19157            ResourceRequirementTypeRef::ResourceRequirementType(i) => {
19158                EntityKey::ResourceRequirementType(*i)
19159            }
19160        }
19161    }
19162}
19163
19164#[derive(Clone, Copy, Debug)]
19165pub enum RoleSelectRefView<'m> {
19166    ActionAssignment(&'m ActionAssignment),
19167    ActionRequestAssignment(&'m ActionRequestAssignment),
19168    AppliedApprovalAssignment(&'m AppliedApprovalAssignment),
19169    AppliedDocumentReference(&'m AppliedDocumentReference),
19170    AppliedGroupAssignment(&'m AppliedGroupAssignment),
19171    AppliedSecurityClassificationAssignment(&'m AppliedSecurityClassificationAssignment),
19172    ApprovalAssignment(&'m ApprovalAssignment),
19173    ApprovalDateTime(&'m ApprovalDateTime),
19174    CcDesignApproval(&'m CcDesignApproval),
19175    CcDesignSecurityClassification(&'m CcDesignSecurityClassification),
19176    Change(&'m Change),
19177    ChangeRequest(&'m ChangeRequest),
19178    DocumentReference(&'m DocumentReference),
19179    GroupAssignment(&'m GroupAssignment),
19180    SecurityClassificationAssignment(&'m SecurityClassificationAssignment),
19181    StartRequest(&'m StartRequest),
19182    StartWork(&'m StartWork),
19183    Complex(&'m ComplexUnit),
19184}
19185impl RoleSelectRef {
19186    pub fn resolve<'m>(&self, model: &'m StepModel) -> RoleSelectRefView<'m> {
19187        match self {
19188            RoleSelectRef::ActionAssignment(i) => {
19189                RoleSelectRefView::ActionAssignment(model.action_assignment_arena.get(i.0))
19190            }
19191            RoleSelectRef::ActionRequestAssignment(i) => {
19192                RoleSelectRefView::ActionRequestAssignment(
19193                    model.action_request_assignment_arena.get(i.0),
19194                )
19195            }
19196            RoleSelectRef::AppliedApprovalAssignment(i) => {
19197                RoleSelectRefView::AppliedApprovalAssignment(
19198                    model.applied_approval_assignment_arena.get(i.0),
19199                )
19200            }
19201            RoleSelectRef::AppliedDocumentReference(i) => {
19202                RoleSelectRefView::AppliedDocumentReference(
19203                    model.applied_document_reference_arena.get(i.0),
19204                )
19205            }
19206            RoleSelectRef::AppliedGroupAssignment(i) => RoleSelectRefView::AppliedGroupAssignment(
19207                model.applied_group_assignment_arena.get(i.0),
19208            ),
19209            RoleSelectRef::AppliedSecurityClassificationAssignment(i) => {
19210                RoleSelectRefView::AppliedSecurityClassificationAssignment(
19211                    model
19212                        .applied_security_classification_assignment_arena
19213                        .get(i.0),
19214                )
19215            }
19216            RoleSelectRef::ApprovalAssignment(i) => {
19217                RoleSelectRefView::ApprovalAssignment(model.approval_assignment_arena.get(i.0))
19218            }
19219            RoleSelectRef::ApprovalDateTime(i) => {
19220                RoleSelectRefView::ApprovalDateTime(model.approval_date_time_arena.get(i.0))
19221            }
19222            RoleSelectRef::CcDesignApproval(i) => {
19223                RoleSelectRefView::CcDesignApproval(model.cc_design_approval_arena.get(i.0))
19224            }
19225            RoleSelectRef::CcDesignSecurityClassification(i) => {
19226                RoleSelectRefView::CcDesignSecurityClassification(
19227                    model.cc_design_security_classification_arena.get(i.0),
19228                )
19229            }
19230            RoleSelectRef::Change(i) => RoleSelectRefView::Change(model.change_arena.get(i.0)),
19231            RoleSelectRef::ChangeRequest(i) => {
19232                RoleSelectRefView::ChangeRequest(model.change_request_arena.get(i.0))
19233            }
19234            RoleSelectRef::DocumentReference(i) => {
19235                RoleSelectRefView::DocumentReference(model.document_reference_arena.get(i.0))
19236            }
19237            RoleSelectRef::GroupAssignment(i) => {
19238                RoleSelectRefView::GroupAssignment(model.group_assignment_arena.get(i.0))
19239            }
19240            RoleSelectRef::SecurityClassificationAssignment(i) => {
19241                RoleSelectRefView::SecurityClassificationAssignment(
19242                    model.security_classification_assignment_arena.get(i.0),
19243                )
19244            }
19245            RoleSelectRef::StartRequest(i) => {
19246                RoleSelectRefView::StartRequest(model.start_request_arena.get(i.0))
19247            }
19248            RoleSelectRef::StartWork(i) => {
19249                RoleSelectRefView::StartWork(model.start_work_arena.get(i.0))
19250            }
19251            RoleSelectRef::Complex(i) => {
19252                RoleSelectRefView::Complex(model.complex_unit_arena.get(i.0))
19253            }
19254        }
19255    }
19256    pub fn entity_key(&self) -> EntityKey {
19257        match self {
19258            RoleSelectRef::ActionAssignment(i) => EntityKey::ActionAssignment(*i),
19259            RoleSelectRef::ActionRequestAssignment(i) => EntityKey::ActionRequestAssignment(*i),
19260            RoleSelectRef::AppliedApprovalAssignment(i) => EntityKey::AppliedApprovalAssignment(*i),
19261            RoleSelectRef::AppliedDocumentReference(i) => EntityKey::AppliedDocumentReference(*i),
19262            RoleSelectRef::AppliedGroupAssignment(i) => EntityKey::AppliedGroupAssignment(*i),
19263            RoleSelectRef::AppliedSecurityClassificationAssignment(i) => {
19264                EntityKey::AppliedSecurityClassificationAssignment(*i)
19265            }
19266            RoleSelectRef::ApprovalAssignment(i) => EntityKey::ApprovalAssignment(*i),
19267            RoleSelectRef::ApprovalDateTime(i) => EntityKey::ApprovalDateTime(*i),
19268            RoleSelectRef::CcDesignApproval(i) => EntityKey::CcDesignApproval(*i),
19269            RoleSelectRef::CcDesignSecurityClassification(i) => {
19270                EntityKey::CcDesignSecurityClassification(*i)
19271            }
19272            RoleSelectRef::Change(i) => EntityKey::Change(*i),
19273            RoleSelectRef::ChangeRequest(i) => EntityKey::ChangeRequest(*i),
19274            RoleSelectRef::DocumentReference(i) => EntityKey::DocumentReference(*i),
19275            RoleSelectRef::GroupAssignment(i) => EntityKey::GroupAssignment(*i),
19276            RoleSelectRef::SecurityClassificationAssignment(i) => {
19277                EntityKey::SecurityClassificationAssignment(*i)
19278            }
19279            RoleSelectRef::StartRequest(i) => EntityKey::StartRequest(*i),
19280            RoleSelectRef::StartWork(i) => EntityKey::StartWork(*i),
19281            RoleSelectRef::Complex(i) => EntityKey::ComplexUnit(*i),
19282        }
19283    }
19284}
19285
19286#[derive(Clone, Copy, Debug)]
19287pub enum SecurityClassificationRefView<'m> {
19288    SecurityClassification(&'m SecurityClassification),
19289}
19290impl SecurityClassificationRef {
19291    pub fn resolve<'m>(&self, model: &'m StepModel) -> SecurityClassificationRefView<'m> {
19292        match self {
19293            SecurityClassificationRef::SecurityClassification(i) => {
19294                SecurityClassificationRefView::SecurityClassification(
19295                    model.security_classification_arena.get(i.0),
19296                )
19297            }
19298        }
19299    }
19300    pub fn entity_key(&self) -> EntityKey {
19301        match self {
19302            SecurityClassificationRef::SecurityClassification(i) => {
19303                EntityKey::SecurityClassification(*i)
19304            }
19305        }
19306    }
19307}
19308
19309#[derive(Clone, Copy, Debug)]
19310pub enum SecurityClassificationItemRefView<'m> {
19311    Action(&'m Action),
19312    ActionDirective(&'m ActionDirective),
19313    ActionMethod(&'m ActionMethod),
19314    ActionMethodRelationship(&'m ActionMethodRelationship),
19315    ActionProperty(&'m ActionProperty),
19316    AdvancedBrepShapeRepresentation(&'m AdvancedBrepShapeRepresentation),
19317    AppliedDocumentReference(&'m AppliedDocumentReference),
19318    AppliedExternalIdentificationAssignment(&'m AppliedExternalIdentificationAssignment),
19319    AssemblyComponentUsage(&'m AssemblyComponentUsage),
19320    CharacterizedRepresentation(&'m CharacterizedRepresentation),
19321    ConfigurationDesign(&'m ConfigurationDesign),
19322    ConfigurationEffectivity(&'m ConfigurationEffectivity),
19323    ConstructiveGeometryRepresentation(&'m ConstructiveGeometryRepresentation),
19324    DefinitionalRepresentation(&'m DefinitionalRepresentation),
19325    Document(&'m Document),
19326    DocumentFile(&'m DocumentFile),
19327    DraughtingModel(&'m DraughtingModel),
19328    GeneralProperty(&'m GeneralProperty),
19329    GeometricallyBoundedSurfaceShapeRepresentation(
19330        &'m GeometricallyBoundedSurfaceShapeRepresentation,
19331    ),
19332    GeometricallyBoundedWireframeShapeRepresentation(
19333        &'m GeometricallyBoundedWireframeShapeRepresentation,
19334    ),
19335    Group(&'m Group),
19336    MakeFromUsageOption(&'m MakeFromUsageOption),
19337    ManifoldSurfaceShapeRepresentation(&'m ManifoldSurfaceShapeRepresentation),
19338    MechanicalDesignGeometricPresentationRepresentation(
19339        &'m MechanicalDesignGeometricPresentationRepresentation,
19340    ),
19341    MechanicalDesignPresentationRepresentationWithDraughting(
19342        &'m MechanicalDesignPresentationRepresentationWithDraughting,
19343    ),
19344    MechanicalDesignShadedPresentationRepresentation(
19345        &'m MechanicalDesignShadedPresentationRepresentation,
19346    ),
19347    NextAssemblyUsageOccurrence(&'m NextAssemblyUsageOccurrence),
19348    OrganizationalProject(&'m OrganizationalProject),
19349    PresentationArea(&'m PresentationArea),
19350    PresentationRepresentation(&'m PresentationRepresentation),
19351    PresentationView(&'m PresentationView),
19352    Product(&'m Product),
19353    ProductConcept(&'m ProductConcept),
19354    ProductConceptFeature(&'m ProductConceptFeature),
19355    ProductConceptFeatureCategory(&'m ProductConceptFeatureCategory),
19356    ProductDefinition(&'m ProductDefinition),
19357    ProductDefinitionFormation(&'m ProductDefinitionFormation),
19358    ProductDefinitionFormationWithSpecifiedSource(
19359        &'m ProductDefinitionFormationWithSpecifiedSource,
19360    ),
19361    ProductDefinitionRelationship(&'m ProductDefinitionRelationship),
19362    ProductDefinitionShape(&'m ProductDefinitionShape),
19363    ProductDefinitionUsage(&'m ProductDefinitionUsage),
19364    ProductDefinitionWithAssociatedDocuments(&'m ProductDefinitionWithAssociatedDocuments),
19365    PropertyDefinition(&'m PropertyDefinition),
19366    PropertyDefinitionRepresentation(&'m PropertyDefinitionRepresentation),
19367    Representation(&'m Representation),
19368    ResourceProperty(&'m ResourceProperty),
19369    ShapeDefinitionRepresentation(&'m ShapeDefinitionRepresentation),
19370    ShapeDimensionRepresentation(&'m ShapeDimensionRepresentation),
19371    ShapeRepresentation(&'m ShapeRepresentation),
19372    ShapeRepresentationWithParameters(&'m ShapeRepresentationWithParameters),
19373    SymbolRepresentation(&'m SymbolRepresentation),
19374    TessellatedShapeRepresentation(&'m TessellatedShapeRepresentation),
19375    VersionedActionRequest(&'m VersionedActionRequest),
19376    Complex(&'m ComplexUnit),
19377}
19378impl SecurityClassificationItemRef {
19379    pub fn resolve<'m>(&self, model: &'m StepModel) -> SecurityClassificationItemRefView<'m> {
19380        match self {
19381            SecurityClassificationItemRef::Action(i) => SecurityClassificationItemRefView::Action(model.action_arena.get(i.0)),
19382            SecurityClassificationItemRef::ActionDirective(i) => SecurityClassificationItemRefView::ActionDirective(model.action_directive_arena.get(i.0)),
19383            SecurityClassificationItemRef::ActionMethod(i) => SecurityClassificationItemRefView::ActionMethod(model.action_method_arena.get(i.0)),
19384            SecurityClassificationItemRef::ActionMethodRelationship(i) => SecurityClassificationItemRefView::ActionMethodRelationship(model.action_method_relationship_arena.get(i.0)),
19385            SecurityClassificationItemRef::ActionProperty(i) => SecurityClassificationItemRefView::ActionProperty(model.action_property_arena.get(i.0)),
19386            SecurityClassificationItemRef::AdvancedBrepShapeRepresentation(i) => SecurityClassificationItemRefView::AdvancedBrepShapeRepresentation(model.advanced_brep_shape_representation_arena.get(i.0)),
19387            SecurityClassificationItemRef::AppliedDocumentReference(i) => SecurityClassificationItemRefView::AppliedDocumentReference(model.applied_document_reference_arena.get(i.0)),
19388            SecurityClassificationItemRef::AppliedExternalIdentificationAssignment(i) => SecurityClassificationItemRefView::AppliedExternalIdentificationAssignment(model.applied_external_identification_assignment_arena.get(i.0)),
19389            SecurityClassificationItemRef::AssemblyComponentUsage(i) => SecurityClassificationItemRefView::AssemblyComponentUsage(model.assembly_component_usage_arena.get(i.0)),
19390            SecurityClassificationItemRef::CharacterizedRepresentation(i) => SecurityClassificationItemRefView::CharacterizedRepresentation(model.characterized_representation_arena.get(i.0)),
19391            SecurityClassificationItemRef::ConfigurationDesign(i) => SecurityClassificationItemRefView::ConfigurationDesign(model.configuration_design_arena.get(i.0)),
19392            SecurityClassificationItemRef::ConfigurationEffectivity(i) => SecurityClassificationItemRefView::ConfigurationEffectivity(model.configuration_effectivity_arena.get(i.0)),
19393            SecurityClassificationItemRef::ConstructiveGeometryRepresentation(i) => SecurityClassificationItemRefView::ConstructiveGeometryRepresentation(model.constructive_geometry_representation_arena.get(i.0)),
19394            SecurityClassificationItemRef::DefinitionalRepresentation(i) => SecurityClassificationItemRefView::DefinitionalRepresentation(model.definitional_representation_arena.get(i.0)),
19395            SecurityClassificationItemRef::Document(i) => SecurityClassificationItemRefView::Document(model.document_arena.get(i.0)),
19396            SecurityClassificationItemRef::DocumentFile(i) => SecurityClassificationItemRefView::DocumentFile(model.document_file_arena.get(i.0)),
19397            SecurityClassificationItemRef::DraughtingModel(i) => SecurityClassificationItemRefView::DraughtingModel(model.draughting_model_arena.get(i.0)),
19398            SecurityClassificationItemRef::GeneralProperty(i) => SecurityClassificationItemRefView::GeneralProperty(model.general_property_arena.get(i.0)),
19399            SecurityClassificationItemRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => SecurityClassificationItemRefView::GeometricallyBoundedSurfaceShapeRepresentation(model.geometrically_bounded_surface_shape_representation_arena.get(i.0)),
19400            SecurityClassificationItemRef::GeometricallyBoundedWireframeShapeRepresentation(i) => SecurityClassificationItemRefView::GeometricallyBoundedWireframeShapeRepresentation(model.geometrically_bounded_wireframe_shape_representation_arena.get(i.0)),
19401            SecurityClassificationItemRef::Group(i) => SecurityClassificationItemRefView::Group(model.group_arena.get(i.0)),
19402            SecurityClassificationItemRef::MakeFromUsageOption(i) => SecurityClassificationItemRefView::MakeFromUsageOption(model.make_from_usage_option_arena.get(i.0)),
19403            SecurityClassificationItemRef::ManifoldSurfaceShapeRepresentation(i) => SecurityClassificationItemRefView::ManifoldSurfaceShapeRepresentation(model.manifold_surface_shape_representation_arena.get(i.0)),
19404            SecurityClassificationItemRef::MechanicalDesignGeometricPresentationRepresentation(i) => SecurityClassificationItemRefView::MechanicalDesignGeometricPresentationRepresentation(model.mechanical_design_geometric_presentation_representation_arena.get(i.0)),
19405            SecurityClassificationItemRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => SecurityClassificationItemRefView::MechanicalDesignPresentationRepresentationWithDraughting(model.mechanical_design_presentation_representation_with_draughting_arena.get(i.0)),
19406            SecurityClassificationItemRef::MechanicalDesignShadedPresentationRepresentation(i) => SecurityClassificationItemRefView::MechanicalDesignShadedPresentationRepresentation(model.mechanical_design_shaded_presentation_representation_arena.get(i.0)),
19407            SecurityClassificationItemRef::NextAssemblyUsageOccurrence(i) => SecurityClassificationItemRefView::NextAssemblyUsageOccurrence(model.next_assembly_usage_occurrence_arena.get(i.0)),
19408            SecurityClassificationItemRef::OrganizationalProject(i) => SecurityClassificationItemRefView::OrganizationalProject(model.organizational_project_arena.get(i.0)),
19409            SecurityClassificationItemRef::PresentationArea(i) => SecurityClassificationItemRefView::PresentationArea(model.presentation_area_arena.get(i.0)),
19410            SecurityClassificationItemRef::PresentationRepresentation(i) => SecurityClassificationItemRefView::PresentationRepresentation(model.presentation_representation_arena.get(i.0)),
19411            SecurityClassificationItemRef::PresentationView(i) => SecurityClassificationItemRefView::PresentationView(model.presentation_view_arena.get(i.0)),
19412            SecurityClassificationItemRef::Product(i) => SecurityClassificationItemRefView::Product(model.product_arena.get(i.0)),
19413            SecurityClassificationItemRef::ProductConcept(i) => SecurityClassificationItemRefView::ProductConcept(model.product_concept_arena.get(i.0)),
19414            SecurityClassificationItemRef::ProductConceptFeature(i) => SecurityClassificationItemRefView::ProductConceptFeature(model.product_concept_feature_arena.get(i.0)),
19415            SecurityClassificationItemRef::ProductConceptFeatureCategory(i) => SecurityClassificationItemRefView::ProductConceptFeatureCategory(model.product_concept_feature_category_arena.get(i.0)),
19416            SecurityClassificationItemRef::ProductDefinition(i) => SecurityClassificationItemRefView::ProductDefinition(model.product_definition_arena.get(i.0)),
19417            SecurityClassificationItemRef::ProductDefinitionFormation(i) => SecurityClassificationItemRefView::ProductDefinitionFormation(model.product_definition_formation_arena.get(i.0)),
19418            SecurityClassificationItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => SecurityClassificationItemRefView::ProductDefinitionFormationWithSpecifiedSource(model.product_definition_formation_with_specified_source_arena.get(i.0)),
19419            SecurityClassificationItemRef::ProductDefinitionRelationship(i) => SecurityClassificationItemRefView::ProductDefinitionRelationship(model.product_definition_relationship_arena.get(i.0)),
19420            SecurityClassificationItemRef::ProductDefinitionShape(i) => SecurityClassificationItemRefView::ProductDefinitionShape(model.product_definition_shape_arena.get(i.0)),
19421            SecurityClassificationItemRef::ProductDefinitionUsage(i) => SecurityClassificationItemRefView::ProductDefinitionUsage(model.product_definition_usage_arena.get(i.0)),
19422            SecurityClassificationItemRef::ProductDefinitionWithAssociatedDocuments(i) => SecurityClassificationItemRefView::ProductDefinitionWithAssociatedDocuments(model.product_definition_with_associated_documents_arena.get(i.0)),
19423            SecurityClassificationItemRef::PropertyDefinition(i) => SecurityClassificationItemRefView::PropertyDefinition(model.property_definition_arena.get(i.0)),
19424            SecurityClassificationItemRef::PropertyDefinitionRepresentation(i) => SecurityClassificationItemRefView::PropertyDefinitionRepresentation(model.property_definition_representation_arena.get(i.0)),
19425            SecurityClassificationItemRef::Representation(i) => SecurityClassificationItemRefView::Representation(model.representation_arena.get(i.0)),
19426            SecurityClassificationItemRef::ResourceProperty(i) => SecurityClassificationItemRefView::ResourceProperty(model.resource_property_arena.get(i.0)),
19427            SecurityClassificationItemRef::ShapeDefinitionRepresentation(i) => SecurityClassificationItemRefView::ShapeDefinitionRepresentation(model.shape_definition_representation_arena.get(i.0)),
19428            SecurityClassificationItemRef::ShapeDimensionRepresentation(i) => SecurityClassificationItemRefView::ShapeDimensionRepresentation(model.shape_dimension_representation_arena.get(i.0)),
19429            SecurityClassificationItemRef::ShapeRepresentation(i) => SecurityClassificationItemRefView::ShapeRepresentation(model.shape_representation_arena.get(i.0)),
19430            SecurityClassificationItemRef::ShapeRepresentationWithParameters(i) => SecurityClassificationItemRefView::ShapeRepresentationWithParameters(model.shape_representation_with_parameters_arena.get(i.0)),
19431            SecurityClassificationItemRef::SymbolRepresentation(i) => SecurityClassificationItemRefView::SymbolRepresentation(model.symbol_representation_arena.get(i.0)),
19432            SecurityClassificationItemRef::TessellatedShapeRepresentation(i) => SecurityClassificationItemRefView::TessellatedShapeRepresentation(model.tessellated_shape_representation_arena.get(i.0)),
19433            SecurityClassificationItemRef::VersionedActionRequest(i) => SecurityClassificationItemRefView::VersionedActionRequest(model.versioned_action_request_arena.get(i.0)),
19434            SecurityClassificationItemRef::Complex(i) => SecurityClassificationItemRefView::Complex(model.complex_unit_arena.get(i.0)),
19435        }
19436    }
19437    pub fn entity_key(&self) -> EntityKey {
19438        match self {
19439            SecurityClassificationItemRef::Action(i) => EntityKey::Action(*i),
19440            SecurityClassificationItemRef::ActionDirective(i) => EntityKey::ActionDirective(*i),
19441            SecurityClassificationItemRef::ActionMethod(i) => EntityKey::ActionMethod(*i),
19442            SecurityClassificationItemRef::ActionMethodRelationship(i) => EntityKey::ActionMethodRelationship(*i),
19443            SecurityClassificationItemRef::ActionProperty(i) => EntityKey::ActionProperty(*i),
19444            SecurityClassificationItemRef::AdvancedBrepShapeRepresentation(i) => EntityKey::AdvancedBrepShapeRepresentation(*i),
19445            SecurityClassificationItemRef::AppliedDocumentReference(i) => EntityKey::AppliedDocumentReference(*i),
19446            SecurityClassificationItemRef::AppliedExternalIdentificationAssignment(i) => EntityKey::AppliedExternalIdentificationAssignment(*i),
19447            SecurityClassificationItemRef::AssemblyComponentUsage(i) => EntityKey::AssemblyComponentUsage(*i),
19448            SecurityClassificationItemRef::CharacterizedRepresentation(i) => EntityKey::CharacterizedRepresentation(*i),
19449            SecurityClassificationItemRef::ConfigurationDesign(i) => EntityKey::ConfigurationDesign(*i),
19450            SecurityClassificationItemRef::ConfigurationEffectivity(i) => EntityKey::ConfigurationEffectivity(*i),
19451            SecurityClassificationItemRef::ConstructiveGeometryRepresentation(i) => EntityKey::ConstructiveGeometryRepresentation(*i),
19452            SecurityClassificationItemRef::DefinitionalRepresentation(i) => EntityKey::DefinitionalRepresentation(*i),
19453            SecurityClassificationItemRef::Document(i) => EntityKey::Document(*i),
19454            SecurityClassificationItemRef::DocumentFile(i) => EntityKey::DocumentFile(*i),
19455            SecurityClassificationItemRef::DraughtingModel(i) => EntityKey::DraughtingModel(*i),
19456            SecurityClassificationItemRef::GeneralProperty(i) => EntityKey::GeneralProperty(*i),
19457            SecurityClassificationItemRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => EntityKey::GeometricallyBoundedSurfaceShapeRepresentation(*i),
19458            SecurityClassificationItemRef::GeometricallyBoundedWireframeShapeRepresentation(i) => EntityKey::GeometricallyBoundedWireframeShapeRepresentation(*i),
19459            SecurityClassificationItemRef::Group(i) => EntityKey::Group(*i),
19460            SecurityClassificationItemRef::MakeFromUsageOption(i) => EntityKey::MakeFromUsageOption(*i),
19461            SecurityClassificationItemRef::ManifoldSurfaceShapeRepresentation(i) => EntityKey::ManifoldSurfaceShapeRepresentation(*i),
19462            SecurityClassificationItemRef::MechanicalDesignGeometricPresentationRepresentation(i) => EntityKey::MechanicalDesignGeometricPresentationRepresentation(*i),
19463            SecurityClassificationItemRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => EntityKey::MechanicalDesignPresentationRepresentationWithDraughting(*i),
19464            SecurityClassificationItemRef::MechanicalDesignShadedPresentationRepresentation(i) => EntityKey::MechanicalDesignShadedPresentationRepresentation(*i),
19465            SecurityClassificationItemRef::NextAssemblyUsageOccurrence(i) => EntityKey::NextAssemblyUsageOccurrence(*i),
19466            SecurityClassificationItemRef::OrganizationalProject(i) => EntityKey::OrganizationalProject(*i),
19467            SecurityClassificationItemRef::PresentationArea(i) => EntityKey::PresentationArea(*i),
19468            SecurityClassificationItemRef::PresentationRepresentation(i) => EntityKey::PresentationRepresentation(*i),
19469            SecurityClassificationItemRef::PresentationView(i) => EntityKey::PresentationView(*i),
19470            SecurityClassificationItemRef::Product(i) => EntityKey::Product(*i),
19471            SecurityClassificationItemRef::ProductConcept(i) => EntityKey::ProductConcept(*i),
19472            SecurityClassificationItemRef::ProductConceptFeature(i) => EntityKey::ProductConceptFeature(*i),
19473            SecurityClassificationItemRef::ProductConceptFeatureCategory(i) => EntityKey::ProductConceptFeatureCategory(*i),
19474            SecurityClassificationItemRef::ProductDefinition(i) => EntityKey::ProductDefinition(*i),
19475            SecurityClassificationItemRef::ProductDefinitionFormation(i) => EntityKey::ProductDefinitionFormation(*i),
19476            SecurityClassificationItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => EntityKey::ProductDefinitionFormationWithSpecifiedSource(*i),
19477            SecurityClassificationItemRef::ProductDefinitionRelationship(i) => EntityKey::ProductDefinitionRelationship(*i),
19478            SecurityClassificationItemRef::ProductDefinitionShape(i) => EntityKey::ProductDefinitionShape(*i),
19479            SecurityClassificationItemRef::ProductDefinitionUsage(i) => EntityKey::ProductDefinitionUsage(*i),
19480            SecurityClassificationItemRef::ProductDefinitionWithAssociatedDocuments(i) => EntityKey::ProductDefinitionWithAssociatedDocuments(*i),
19481            SecurityClassificationItemRef::PropertyDefinition(i) => EntityKey::PropertyDefinition(*i),
19482            SecurityClassificationItemRef::PropertyDefinitionRepresentation(i) => EntityKey::PropertyDefinitionRepresentation(*i),
19483            SecurityClassificationItemRef::Representation(i) => EntityKey::Representation(*i),
19484            SecurityClassificationItemRef::ResourceProperty(i) => EntityKey::ResourceProperty(*i),
19485            SecurityClassificationItemRef::ShapeDefinitionRepresentation(i) => EntityKey::ShapeDefinitionRepresentation(*i),
19486            SecurityClassificationItemRef::ShapeDimensionRepresentation(i) => EntityKey::ShapeDimensionRepresentation(*i),
19487            SecurityClassificationItemRef::ShapeRepresentation(i) => EntityKey::ShapeRepresentation(*i),
19488            SecurityClassificationItemRef::ShapeRepresentationWithParameters(i) => EntityKey::ShapeRepresentationWithParameters(*i),
19489            SecurityClassificationItemRef::SymbolRepresentation(i) => EntityKey::SymbolRepresentation(*i),
19490            SecurityClassificationItemRef::TessellatedShapeRepresentation(i) => EntityKey::TessellatedShapeRepresentation(*i),
19491            SecurityClassificationItemRef::VersionedActionRequest(i) => EntityKey::VersionedActionRequest(*i),
19492            SecurityClassificationItemRef::Complex(i) => EntityKey::ComplexUnit(*i),
19493        }
19494    }
19495}
19496
19497#[derive(Clone, Copy, Debug)]
19498pub enum SecurityClassificationLevelRefView<'m> {
19499    SecurityClassificationLevel(&'m SecurityClassificationLevel),
19500}
19501impl SecurityClassificationLevelRef {
19502    pub fn resolve<'m>(&self, model: &'m StepModel) -> SecurityClassificationLevelRefView<'m> {
19503        match self {
19504            SecurityClassificationLevelRef::SecurityClassificationLevel(i) => {
19505                SecurityClassificationLevelRefView::SecurityClassificationLevel(
19506                    model.security_classification_level_arena.get(i.0),
19507                )
19508            }
19509        }
19510    }
19511    pub fn entity_key(&self) -> EntityKey {
19512        match self {
19513            SecurityClassificationLevelRef::SecurityClassificationLevel(i) => {
19514                EntityKey::SecurityClassificationLevel(*i)
19515            }
19516        }
19517    }
19518}
19519
19520#[derive(Clone, Copy, Debug)]
19521pub enum ShapeAspectRefView<'m> {
19522    AllAroundShapeAspect(&'m AllAroundShapeAspect),
19523    CentreOfSymmetry(&'m CentreOfSymmetry),
19524    CommonDatum(&'m CommonDatum),
19525    CompositeGroupShapeAspect(&'m CompositeGroupShapeAspect),
19526    CompositeShapeAspect(&'m CompositeShapeAspect),
19527    ContinuousShapeAspect(&'m ContinuousShapeAspect),
19528    Datum(&'m Datum),
19529    DatumFeature(&'m DatumFeature),
19530    DatumReferenceCompartment(&'m DatumReferenceCompartment),
19531    DatumReferenceElement(&'m DatumReferenceElement),
19532    DatumSystem(&'m DatumSystem),
19533    DatumTarget(&'m DatumTarget),
19534    DefaultModelGeometricView(&'m DefaultModelGeometricView),
19535    DerivedShapeAspect(&'m DerivedShapeAspect),
19536    DimensionalSizeWithDatumFeature(&'m DimensionalSizeWithDatumFeature),
19537    GeneralDatumReference(&'m GeneralDatumReference),
19538    PlacedDatumTargetFeature(&'m PlacedDatumTargetFeature),
19539    ShapeAspect(&'m ShapeAspect),
19540    ToleranceZone(&'m ToleranceZone),
19541    ToleranceZoneWithDatum(&'m ToleranceZoneWithDatum),
19542    Complex(&'m ComplexUnit),
19543}
19544impl ShapeAspectRef {
19545    pub fn resolve<'m>(&self, model: &'m StepModel) -> ShapeAspectRefView<'m> {
19546        match self {
19547            ShapeAspectRef::AllAroundShapeAspect(i) => ShapeAspectRefView::AllAroundShapeAspect(
19548                model.all_around_shape_aspect_arena.get(i.0),
19549            ),
19550            ShapeAspectRef::CentreOfSymmetry(i) => {
19551                ShapeAspectRefView::CentreOfSymmetry(model.centre_of_symmetry_arena.get(i.0))
19552            }
19553            ShapeAspectRef::CommonDatum(i) => {
19554                ShapeAspectRefView::CommonDatum(model.common_datum_arena.get(i.0))
19555            }
19556            ShapeAspectRef::CompositeGroupShapeAspect(i) => {
19557                ShapeAspectRefView::CompositeGroupShapeAspect(
19558                    model.composite_group_shape_aspect_arena.get(i.0),
19559                )
19560            }
19561            ShapeAspectRef::CompositeShapeAspect(i) => ShapeAspectRefView::CompositeShapeAspect(
19562                model.composite_shape_aspect_arena.get(i.0),
19563            ),
19564            ShapeAspectRef::ContinuousShapeAspect(i) => ShapeAspectRefView::ContinuousShapeAspect(
19565                model.continuous_shape_aspect_arena.get(i.0),
19566            ),
19567            ShapeAspectRef::Datum(i) => ShapeAspectRefView::Datum(model.datum_arena.get(i.0)),
19568            ShapeAspectRef::DatumFeature(i) => {
19569                ShapeAspectRefView::DatumFeature(model.datum_feature_arena.get(i.0))
19570            }
19571            ShapeAspectRef::DatumReferenceCompartment(i) => {
19572                ShapeAspectRefView::DatumReferenceCompartment(
19573                    model.datum_reference_compartment_arena.get(i.0),
19574                )
19575            }
19576            ShapeAspectRef::DatumReferenceElement(i) => ShapeAspectRefView::DatumReferenceElement(
19577                model.datum_reference_element_arena.get(i.0),
19578            ),
19579            ShapeAspectRef::DatumSystem(i) => {
19580                ShapeAspectRefView::DatumSystem(model.datum_system_arena.get(i.0))
19581            }
19582            ShapeAspectRef::DatumTarget(i) => {
19583                ShapeAspectRefView::DatumTarget(model.datum_target_arena.get(i.0))
19584            }
19585            ShapeAspectRef::DefaultModelGeometricView(i) => {
19586                ShapeAspectRefView::DefaultModelGeometricView(
19587                    model.default_model_geometric_view_arena.get(i.0),
19588                )
19589            }
19590            ShapeAspectRef::DerivedShapeAspect(i) => {
19591                ShapeAspectRefView::DerivedShapeAspect(model.derived_shape_aspect_arena.get(i.0))
19592            }
19593            ShapeAspectRef::DimensionalSizeWithDatumFeature(i) => {
19594                ShapeAspectRefView::DimensionalSizeWithDatumFeature(
19595                    model.dimensional_size_with_datum_feature_arena.get(i.0),
19596                )
19597            }
19598            ShapeAspectRef::GeneralDatumReference(i) => ShapeAspectRefView::GeneralDatumReference(
19599                model.general_datum_reference_arena.get(i.0),
19600            ),
19601            ShapeAspectRef::PlacedDatumTargetFeature(i) => {
19602                ShapeAspectRefView::PlacedDatumTargetFeature(
19603                    model.placed_datum_target_feature_arena.get(i.0),
19604                )
19605            }
19606            ShapeAspectRef::ShapeAspect(i) => {
19607                ShapeAspectRefView::ShapeAspect(model.shape_aspect_arena.get(i.0))
19608            }
19609            ShapeAspectRef::ToleranceZone(i) => {
19610                ShapeAspectRefView::ToleranceZone(model.tolerance_zone_arena.get(i.0))
19611            }
19612            ShapeAspectRef::ToleranceZoneWithDatum(i) => {
19613                ShapeAspectRefView::ToleranceZoneWithDatum(
19614                    model.tolerance_zone_with_datum_arena.get(i.0),
19615                )
19616            }
19617            ShapeAspectRef::Complex(i) => {
19618                ShapeAspectRefView::Complex(model.complex_unit_arena.get(i.0))
19619            }
19620        }
19621    }
19622    pub fn entity_key(&self) -> EntityKey {
19623        match self {
19624            ShapeAspectRef::AllAroundShapeAspect(i) => EntityKey::AllAroundShapeAspect(*i),
19625            ShapeAspectRef::CentreOfSymmetry(i) => EntityKey::CentreOfSymmetry(*i),
19626            ShapeAspectRef::CommonDatum(i) => EntityKey::CommonDatum(*i),
19627            ShapeAspectRef::CompositeGroupShapeAspect(i) => {
19628                EntityKey::CompositeGroupShapeAspect(*i)
19629            }
19630            ShapeAspectRef::CompositeShapeAspect(i) => EntityKey::CompositeShapeAspect(*i),
19631            ShapeAspectRef::ContinuousShapeAspect(i) => EntityKey::ContinuousShapeAspect(*i),
19632            ShapeAspectRef::Datum(i) => EntityKey::Datum(*i),
19633            ShapeAspectRef::DatumFeature(i) => EntityKey::DatumFeature(*i),
19634            ShapeAspectRef::DatumReferenceCompartment(i) => {
19635                EntityKey::DatumReferenceCompartment(*i)
19636            }
19637            ShapeAspectRef::DatumReferenceElement(i) => EntityKey::DatumReferenceElement(*i),
19638            ShapeAspectRef::DatumSystem(i) => EntityKey::DatumSystem(*i),
19639            ShapeAspectRef::DatumTarget(i) => EntityKey::DatumTarget(*i),
19640            ShapeAspectRef::DefaultModelGeometricView(i) => {
19641                EntityKey::DefaultModelGeometricView(*i)
19642            }
19643            ShapeAspectRef::DerivedShapeAspect(i) => EntityKey::DerivedShapeAspect(*i),
19644            ShapeAspectRef::DimensionalSizeWithDatumFeature(i) => {
19645                EntityKey::DimensionalSizeWithDatumFeature(*i)
19646            }
19647            ShapeAspectRef::GeneralDatumReference(i) => EntityKey::GeneralDatumReference(*i),
19648            ShapeAspectRef::PlacedDatumTargetFeature(i) => EntityKey::PlacedDatumTargetFeature(*i),
19649            ShapeAspectRef::ShapeAspect(i) => EntityKey::ShapeAspect(*i),
19650            ShapeAspectRef::ToleranceZone(i) => EntityKey::ToleranceZone(*i),
19651            ShapeAspectRef::ToleranceZoneWithDatum(i) => EntityKey::ToleranceZoneWithDatum(*i),
19652            ShapeAspectRef::Complex(i) => EntityKey::ComplexUnit(*i),
19653        }
19654    }
19655}
19656
19657#[derive(Clone, Copy, Debug)]
19658pub enum ShapeDimensionRepresentationRefView<'m> {
19659    ShapeDimensionRepresentation(&'m ShapeDimensionRepresentation),
19660    Complex(&'m ComplexUnit),
19661}
19662impl ShapeDimensionRepresentationRef {
19663    pub fn resolve<'m>(&self, model: &'m StepModel) -> ShapeDimensionRepresentationRefView<'m> {
19664        match self {
19665            ShapeDimensionRepresentationRef::ShapeDimensionRepresentation(i) => {
19666                ShapeDimensionRepresentationRefView::ShapeDimensionRepresentation(
19667                    model.shape_dimension_representation_arena.get(i.0),
19668                )
19669            }
19670            ShapeDimensionRepresentationRef::Complex(i) => {
19671                ShapeDimensionRepresentationRefView::Complex(model.complex_unit_arena.get(i.0))
19672            }
19673        }
19674    }
19675    pub fn entity_key(&self) -> EntityKey {
19676        match self {
19677            ShapeDimensionRepresentationRef::ShapeDimensionRepresentation(i) => {
19678                EntityKey::ShapeDimensionRepresentation(*i)
19679            }
19680            ShapeDimensionRepresentationRef::Complex(i) => EntityKey::ComplexUnit(*i),
19681        }
19682    }
19683}
19684
19685#[derive(Clone, Copy, Debug)]
19686pub enum ShapeModelRefView<'m> {
19687    AdvancedBrepShapeRepresentation(&'m AdvancedBrepShapeRepresentation),
19688    ConstructiveGeometryRepresentation(&'m ConstructiveGeometryRepresentation),
19689    GeometricallyBoundedSurfaceShapeRepresentation(
19690        &'m GeometricallyBoundedSurfaceShapeRepresentation,
19691    ),
19692    GeometricallyBoundedWireframeShapeRepresentation(
19693        &'m GeometricallyBoundedWireframeShapeRepresentation,
19694    ),
19695    ManifoldSurfaceShapeRepresentation(&'m ManifoldSurfaceShapeRepresentation),
19696    ShapeDimensionRepresentation(&'m ShapeDimensionRepresentation),
19697    ShapeRepresentation(&'m ShapeRepresentation),
19698    ShapeRepresentationWithParameters(&'m ShapeRepresentationWithParameters),
19699    TessellatedShapeRepresentation(&'m TessellatedShapeRepresentation),
19700    Complex(&'m ComplexUnit),
19701}
19702impl ShapeModelRef {
19703    pub fn resolve<'m>(&self, model: &'m StepModel) -> ShapeModelRefView<'m> {
19704        match self {
19705            ShapeModelRef::AdvancedBrepShapeRepresentation(i) => {
19706                ShapeModelRefView::AdvancedBrepShapeRepresentation(
19707                    model.advanced_brep_shape_representation_arena.get(i.0),
19708                )
19709            }
19710            ShapeModelRef::ConstructiveGeometryRepresentation(i) => {
19711                ShapeModelRefView::ConstructiveGeometryRepresentation(
19712                    model.constructive_geometry_representation_arena.get(i.0),
19713                )
19714            }
19715            ShapeModelRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => {
19716                ShapeModelRefView::GeometricallyBoundedSurfaceShapeRepresentation(
19717                    model
19718                        .geometrically_bounded_surface_shape_representation_arena
19719                        .get(i.0),
19720                )
19721            }
19722            ShapeModelRef::GeometricallyBoundedWireframeShapeRepresentation(i) => {
19723                ShapeModelRefView::GeometricallyBoundedWireframeShapeRepresentation(
19724                    model
19725                        .geometrically_bounded_wireframe_shape_representation_arena
19726                        .get(i.0),
19727                )
19728            }
19729            ShapeModelRef::ManifoldSurfaceShapeRepresentation(i) => {
19730                ShapeModelRefView::ManifoldSurfaceShapeRepresentation(
19731                    model.manifold_surface_shape_representation_arena.get(i.0),
19732                )
19733            }
19734            ShapeModelRef::ShapeDimensionRepresentation(i) => {
19735                ShapeModelRefView::ShapeDimensionRepresentation(
19736                    model.shape_dimension_representation_arena.get(i.0),
19737                )
19738            }
19739            ShapeModelRef::ShapeRepresentation(i) => {
19740                ShapeModelRefView::ShapeRepresentation(model.shape_representation_arena.get(i.0))
19741            }
19742            ShapeModelRef::ShapeRepresentationWithParameters(i) => {
19743                ShapeModelRefView::ShapeRepresentationWithParameters(
19744                    model.shape_representation_with_parameters_arena.get(i.0),
19745                )
19746            }
19747            ShapeModelRef::TessellatedShapeRepresentation(i) => {
19748                ShapeModelRefView::TessellatedShapeRepresentation(
19749                    model.tessellated_shape_representation_arena.get(i.0),
19750                )
19751            }
19752            ShapeModelRef::Complex(i) => {
19753                ShapeModelRefView::Complex(model.complex_unit_arena.get(i.0))
19754            }
19755        }
19756    }
19757    pub fn entity_key(&self) -> EntityKey {
19758        match self {
19759            ShapeModelRef::AdvancedBrepShapeRepresentation(i) => {
19760                EntityKey::AdvancedBrepShapeRepresentation(*i)
19761            }
19762            ShapeModelRef::ConstructiveGeometryRepresentation(i) => {
19763                EntityKey::ConstructiveGeometryRepresentation(*i)
19764            }
19765            ShapeModelRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => {
19766                EntityKey::GeometricallyBoundedSurfaceShapeRepresentation(*i)
19767            }
19768            ShapeModelRef::GeometricallyBoundedWireframeShapeRepresentation(i) => {
19769                EntityKey::GeometricallyBoundedWireframeShapeRepresentation(*i)
19770            }
19771            ShapeModelRef::ManifoldSurfaceShapeRepresentation(i) => {
19772                EntityKey::ManifoldSurfaceShapeRepresentation(*i)
19773            }
19774            ShapeModelRef::ShapeDimensionRepresentation(i) => {
19775                EntityKey::ShapeDimensionRepresentation(*i)
19776            }
19777            ShapeModelRef::ShapeRepresentation(i) => EntityKey::ShapeRepresentation(*i),
19778            ShapeModelRef::ShapeRepresentationWithParameters(i) => {
19779                EntityKey::ShapeRepresentationWithParameters(*i)
19780            }
19781            ShapeModelRef::TessellatedShapeRepresentation(i) => {
19782                EntityKey::TessellatedShapeRepresentation(*i)
19783            }
19784            ShapeModelRef::Complex(i) => EntityKey::ComplexUnit(*i),
19785        }
19786    }
19787}
19788
19789#[derive(Clone, Copy, Debug)]
19790pub enum ShapeRepresentationRelationshipRefView<'m> {
19791    ShapeRepresentationRelationship(&'m ShapeRepresentationRelationship),
19792    Complex(&'m ComplexUnit),
19793}
19794impl ShapeRepresentationRelationshipRef {
19795    pub fn resolve<'m>(&self, model: &'m StepModel) -> ShapeRepresentationRelationshipRefView<'m> {
19796        match self {
19797            ShapeRepresentationRelationshipRef::ShapeRepresentationRelationship(i) => {
19798                ShapeRepresentationRelationshipRefView::ShapeRepresentationRelationship(
19799                    model.shape_representation_relationship_arena.get(i.0),
19800                )
19801            }
19802            ShapeRepresentationRelationshipRef::Complex(i) => {
19803                ShapeRepresentationRelationshipRefView::Complex(model.complex_unit_arena.get(i.0))
19804            }
19805        }
19806    }
19807    pub fn entity_key(&self) -> EntityKey {
19808        match self {
19809            ShapeRepresentationRelationshipRef::ShapeRepresentationRelationship(i) => {
19810                EntityKey::ShapeRepresentationRelationship(*i)
19811            }
19812            ShapeRepresentationRelationshipRef::Complex(i) => EntityKey::ComplexUnit(*i),
19813        }
19814    }
19815}
19816
19817#[derive(Clone, Copy, Debug)]
19818pub enum ShellRefView<'m> {
19819    ClosedShell(&'m ClosedShell),
19820    OpenShell(&'m OpenShell),
19821    OrientedClosedShell(&'m OrientedClosedShell),
19822    VertexShell(&'m VertexShell),
19823    WireShell(&'m WireShell),
19824    Complex(&'m ComplexUnit),
19825}
19826impl ShellRef {
19827    pub fn resolve<'m>(&self, model: &'m StepModel) -> ShellRefView<'m> {
19828        match self {
19829            ShellRef::ClosedShell(i) => {
19830                ShellRefView::ClosedShell(model.closed_shell_arena.get(i.0))
19831            }
19832            ShellRef::OpenShell(i) => ShellRefView::OpenShell(model.open_shell_arena.get(i.0)),
19833            ShellRef::OrientedClosedShell(i) => {
19834                ShellRefView::OrientedClosedShell(model.oriented_closed_shell_arena.get(i.0))
19835            }
19836            ShellRef::VertexShell(i) => {
19837                ShellRefView::VertexShell(model.vertex_shell_arena.get(i.0))
19838            }
19839            ShellRef::WireShell(i) => ShellRefView::WireShell(model.wire_shell_arena.get(i.0)),
19840            ShellRef::Complex(i) => ShellRefView::Complex(model.complex_unit_arena.get(i.0)),
19841        }
19842    }
19843    pub fn entity_key(&self) -> EntityKey {
19844        match self {
19845            ShellRef::ClosedShell(i) => EntityKey::ClosedShell(*i),
19846            ShellRef::OpenShell(i) => EntityKey::OpenShell(*i),
19847            ShellRef::OrientedClosedShell(i) => EntityKey::OrientedClosedShell(*i),
19848            ShellRef::VertexShell(i) => EntityKey::VertexShell(*i),
19849            ShellRef::WireShell(i) => EntityKey::WireShell(*i),
19850            ShellRef::Complex(i) => EntityKey::ComplexUnit(*i),
19851        }
19852    }
19853}
19854
19855#[derive(Clone, Copy, Debug)]
19856pub enum StartRequestItemRefView<'m> {
19857    ProductDefinitionFormation(&'m ProductDefinitionFormation),
19858    ProductDefinitionFormationWithSpecifiedSource(
19859        &'m ProductDefinitionFormationWithSpecifiedSource,
19860    ),
19861    Complex(&'m ComplexUnit),
19862}
19863impl StartRequestItemRef {
19864    pub fn resolve<'m>(&self, model: &'m StepModel) -> StartRequestItemRefView<'m> {
19865        match self {
19866            StartRequestItemRef::ProductDefinitionFormation(i) => {
19867                StartRequestItemRefView::ProductDefinitionFormation(
19868                    model.product_definition_formation_arena.get(i.0),
19869                )
19870            }
19871            StartRequestItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => {
19872                StartRequestItemRefView::ProductDefinitionFormationWithSpecifiedSource(
19873                    model
19874                        .product_definition_formation_with_specified_source_arena
19875                        .get(i.0),
19876                )
19877            }
19878            StartRequestItemRef::Complex(i) => {
19879                StartRequestItemRefView::Complex(model.complex_unit_arena.get(i.0))
19880            }
19881        }
19882    }
19883    pub fn entity_key(&self) -> EntityKey {
19884        match self {
19885            StartRequestItemRef::ProductDefinitionFormation(i) => {
19886                EntityKey::ProductDefinitionFormation(*i)
19887            }
19888            StartRequestItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => {
19889                EntityKey::ProductDefinitionFormationWithSpecifiedSource(*i)
19890            }
19891            StartRequestItemRef::Complex(i) => EntityKey::ComplexUnit(*i),
19892        }
19893    }
19894}
19895
19896#[derive(Clone, Copy, Debug)]
19897pub enum StateObservedRefView<'m> {
19898    StateObserved(&'m StateObserved),
19899    Complex(&'m ComplexUnit),
19900}
19901impl StateObservedRef {
19902    pub fn resolve<'m>(&self, model: &'m StepModel) -> StateObservedRefView<'m> {
19903        match self {
19904            StateObservedRef::StateObserved(i) => {
19905                StateObservedRefView::StateObserved(model.state_observed_arena.get(i.0))
19906            }
19907            StateObservedRef::Complex(i) => {
19908                StateObservedRefView::Complex(model.complex_unit_arena.get(i.0))
19909            }
19910        }
19911    }
19912    pub fn entity_key(&self) -> EntityKey {
19913        match self {
19914            StateObservedRef::StateObserved(i) => EntityKey::StateObserved(*i),
19915            StateObservedRef::Complex(i) => EntityKey::ComplexUnit(*i),
19916        }
19917    }
19918}
19919
19920#[derive(Clone, Copy, Debug)]
19921pub enum StateTypeRefView<'m> {
19922    StateType(&'m StateType),
19923    Complex(&'m ComplexUnit),
19924}
19925impl StateTypeRef {
19926    pub fn resolve<'m>(&self, model: &'m StepModel) -> StateTypeRefView<'m> {
19927        match self {
19928            StateTypeRef::StateType(i) => {
19929                StateTypeRefView::StateType(model.state_type_arena.get(i.0))
19930            }
19931            StateTypeRef::Complex(i) => {
19932                StateTypeRefView::Complex(model.complex_unit_arena.get(i.0))
19933            }
19934        }
19935    }
19936    pub fn entity_key(&self) -> EntityKey {
19937        match self {
19938            StateTypeRef::StateType(i) => EntityKey::StateType(*i),
19939            StateTypeRef::Complex(i) => EntityKey::ComplexUnit(*i),
19940        }
19941    }
19942}
19943
19944#[derive(Clone, Copy, Debug)]
19945pub enum StyleContextSelectRefView<'m> {
19946    AdvancedBrepShapeRepresentation(&'m AdvancedBrepShapeRepresentation),
19947    AdvancedFace(&'m AdvancedFace),
19948    AnnotationCurveOccurrence(&'m AnnotationCurveOccurrence),
19949    AnnotationFillAreaOccurrence(&'m AnnotationFillAreaOccurrence),
19950    AnnotationOccurrence(&'m AnnotationOccurrence),
19951    AnnotationPlaceholderLeaderLine(&'m AnnotationPlaceholderLeaderLine),
19952    AnnotationPlaceholderOccurrence(&'m AnnotationPlaceholderOccurrence),
19953    AnnotationPlaceholderOccurrenceWithLeaderLine(
19954        &'m AnnotationPlaceholderOccurrenceWithLeaderLine,
19955    ),
19956    AnnotationPlane(&'m AnnotationPlane),
19957    AnnotationSymbol(&'m AnnotationSymbol),
19958    AnnotationSymbolOccurrence(&'m AnnotationSymbolOccurrence),
19959    AnnotationText(&'m AnnotationText),
19960    AnnotationTextCharacter(&'m AnnotationTextCharacter),
19961    AnnotationTextOccurrence(&'m AnnotationTextOccurrence),
19962    AnnotationToAnnotationLeaderLine(&'m AnnotationToAnnotationLeaderLine),
19963    AnnotationToModelLeaderLine(&'m AnnotationToModelLeaderLine),
19964    ApllPoint(&'m ApllPoint),
19965    ApllPointWithSurface(&'m ApllPointWithSurface),
19966    AuxiliaryLeaderLine(&'m AuxiliaryLeaderLine),
19967    Axis1Placement(&'m Axis1Placement),
19968    Axis2Placement2d(&'m Axis2Placement2d),
19969    Axis2Placement3d(&'m Axis2Placement3d),
19970    BSplineCurve(&'m BSplineCurve),
19971    BSplineCurveWithKnots(&'m BSplineCurveWithKnots),
19972    BSplineSurface(&'m BSplineSurface),
19973    BSplineSurfaceWithKnots(&'m BSplineSurfaceWithKnots),
19974    BezierCurve(&'m BezierCurve),
19975    BezierSurface(&'m BezierSurface),
19976    BoundedCurve(&'m BoundedCurve),
19977    BoundedPcurve(&'m BoundedPcurve),
19978    BoundedSurface(&'m BoundedSurface),
19979    BoundedSurfaceCurve(&'m BoundedSurfaceCurve),
19980    BrepWithVoids(&'m BrepWithVoids),
19981    CameraImage(&'m CameraImage),
19982    CameraImage3dWithScale(&'m CameraImage3dWithScale),
19983    CameraModel(&'m CameraModel),
19984    CameraModelD3(&'m CameraModelD3),
19985    CameraModelD3MultiClipping(&'m CameraModelD3MultiClipping),
19986    CameraModelD3WithHlhsr(&'m CameraModelD3WithHlhsr),
19987    CartesianPoint(&'m CartesianPoint),
19988    CharacterizedRepresentation(&'m CharacterizedRepresentation),
19989    Circle(&'m Circle),
19990    ClosedShell(&'m ClosedShell),
19991    ComplexTriangulatedFace(&'m ComplexTriangulatedFace),
19992    ComplexTriangulatedSurfaceSet(&'m ComplexTriangulatedSurfaceSet),
19993    CompositeCurve(&'m CompositeCurve),
19994    CompositeText(&'m CompositeText),
19995    CompoundRepresentationItem(&'m CompoundRepresentationItem),
19996    Conic(&'m Conic),
19997    ConicalSurface(&'m ConicalSurface),
19998    ConnectedFaceSet(&'m ConnectedFaceSet),
19999    ConstructiveGeometryRepresentation(&'m ConstructiveGeometryRepresentation),
20000    ConstructiveGeometryRepresentationRelationship(
20001        &'m ConstructiveGeometryRepresentationRelationship,
20002    ),
20003    ContextDependentOverRidingStyledItem(&'m ContextDependentOverRidingStyledItem),
20004    ContextDependentShapeRepresentation(&'m ContextDependentShapeRepresentation),
20005    CoordinatesList(&'m CoordinatesList),
20006    Curve(&'m Curve),
20007    CylindricalSurface(&'m CylindricalSurface),
20008    DefinedCharacterGlyph(&'m DefinedCharacterGlyph),
20009    DefinedSymbol(&'m DefinedSymbol),
20010    DefinitionalRepresentation(&'m DefinitionalRepresentation),
20011    DefinitionalRepresentationRelationship(&'m DefinitionalRepresentationRelationship),
20012    DefinitionalRepresentationRelationshipWithSameContext(
20013        &'m DefinitionalRepresentationRelationshipWithSameContext,
20014    ),
20015    DegenerateToroidalSurface(&'m DegenerateToroidalSurface),
20016    DescriptiveRepresentationItem(&'m DescriptiveRepresentationItem),
20017    Direction(&'m Direction),
20018    DraughtingAnnotationOccurrence(&'m DraughtingAnnotationOccurrence),
20019    DraughtingCallout(&'m DraughtingCallout),
20020    DraughtingModel(&'m DraughtingModel),
20021    Edge(&'m Edge),
20022    EdgeCurve(&'m EdgeCurve),
20023    EdgeLoop(&'m EdgeLoop),
20024    ElementarySurface(&'m ElementarySurface),
20025    Ellipse(&'m Ellipse),
20026    ExternallyDefinedHatchStyle(&'m ExternallyDefinedHatchStyle),
20027    ExternallyDefinedTileStyle(&'m ExternallyDefinedTileStyle),
20028    Face(&'m Face),
20029    FaceBound(&'m FaceBound),
20030    FaceOuterBound(&'m FaceOuterBound),
20031    FaceSurface(&'m FaceSurface),
20032    FillAreaStyleHatching(&'m FillAreaStyleHatching),
20033    FillAreaStyleTileColouredRegion(&'m FillAreaStyleTileColouredRegion),
20034    FillAreaStyleTileCurveWithStyle(&'m FillAreaStyleTileCurveWithStyle),
20035    FillAreaStyleTileSymbolWithStyle(&'m FillAreaStyleTileSymbolWithStyle),
20036    FillAreaStyleTiles(&'m FillAreaStyleTiles),
20037    GeometricCurveSet(&'m GeometricCurveSet),
20038    GeometricRepresentationItem(&'m GeometricRepresentationItem),
20039    GeometricSet(&'m GeometricSet),
20040    GeometricallyBoundedSurfaceShapeRepresentation(
20041        &'m GeometricallyBoundedSurfaceShapeRepresentation,
20042    ),
20043    GeometricallyBoundedWireframeShapeRepresentation(
20044        &'m GeometricallyBoundedWireframeShapeRepresentation,
20045    ),
20046    Group(&'m Group),
20047    Hyperbola(&'m Hyperbola),
20048    IntegerRepresentationItem(&'m IntegerRepresentationItem),
20049    IntersectionCurve(&'m IntersectionCurve),
20050    LeaderCurve(&'m LeaderCurve),
20051    LeaderDirectedCallout(&'m LeaderDirectedCallout),
20052    LeaderTerminator(&'m LeaderTerminator),
20053    Line(&'m Line),
20054    Loop(&'m Loop),
20055    ManifoldSolidBrep(&'m ManifoldSolidBrep),
20056    ManifoldSurfaceShapeRepresentation(&'m ManifoldSurfaceShapeRepresentation),
20057    MappedItem(&'m MappedItem),
20058    MeasureRepresentationItem(&'m MeasureRepresentationItem),
20059    MechanicalDesignAndDraughtingRelationship(&'m MechanicalDesignAndDraughtingRelationship),
20060    MechanicalDesignGeometricPresentationRepresentation(
20061        &'m MechanicalDesignGeometricPresentationRepresentation,
20062    ),
20063    MechanicalDesignPresentationRepresentationWithDraughting(
20064        &'m MechanicalDesignPresentationRepresentationWithDraughting,
20065    ),
20066    MechanicalDesignShadedPresentationRepresentation(
20067        &'m MechanicalDesignShadedPresentationRepresentation,
20068    ),
20069    OffsetSurface(&'m OffsetSurface),
20070    OneDirectionRepeatFactor(&'m OneDirectionRepeatFactor),
20071    OpenShell(&'m OpenShell),
20072    OrientedClosedShell(&'m OrientedClosedShell),
20073    OrientedEdge(&'m OrientedEdge),
20074    OverRidingStyledItem(&'m OverRidingStyledItem),
20075    Path(&'m Path),
20076    Pcurve(&'m Pcurve),
20077    Placement(&'m Placement),
20078    PlanarBox(&'m PlanarBox),
20079    PlanarExtent(&'m PlanarExtent),
20080    Plane(&'m Plane),
20081    Point(&'m Point),
20082    PolyLoop(&'m PolyLoop),
20083    Polyline(&'m Polyline),
20084    PresentationArea(&'m PresentationArea),
20085    PresentationLayerAssignment(&'m PresentationLayerAssignment),
20086    PresentationRepresentation(&'m PresentationRepresentation),
20087    PresentationSet(&'m PresentationSet),
20088    PresentationView(&'m PresentationView),
20089    ProductConceptFeatureCategory(&'m ProductConceptFeatureCategory),
20090    QualifiedRepresentationItem(&'m QualifiedRepresentationItem),
20091    QuasiUniformCurve(&'m QuasiUniformCurve),
20092    QuasiUniformSurface(&'m QuasiUniformSurface),
20093    RationalBSplineCurve(&'m RationalBSplineCurve),
20094    RationalBSplineSurface(&'m RationalBSplineSurface),
20095    RealRepresentationItem(&'m RealRepresentationItem),
20096    RepositionedTessellatedItem(&'m RepositionedTessellatedItem),
20097    Representation(&'m Representation),
20098    RepresentationItem(&'m RepresentationItem),
20099    RepresentationRelationship(&'m RepresentationRelationship),
20100    RepresentationRelationshipWithTransformation(&'m RepresentationRelationshipWithTransformation),
20101    SeamCurve(&'m SeamCurve),
20102    ShapeDimensionRepresentation(&'m ShapeDimensionRepresentation),
20103    ShapeRepresentation(&'m ShapeRepresentation),
20104    ShapeRepresentationRelationship(&'m ShapeRepresentationRelationship),
20105    ShapeRepresentationWithParameters(&'m ShapeRepresentationWithParameters),
20106    ShellBasedSurfaceModel(&'m ShellBasedSurfaceModel),
20107    SolidModel(&'m SolidModel),
20108    SphericalSurface(&'m SphericalSurface),
20109    StyledItem(&'m StyledItem),
20110    Surface(&'m Surface),
20111    SurfaceCurve(&'m SurfaceCurve),
20112    SurfaceOfLinearExtrusion(&'m SurfaceOfLinearExtrusion),
20113    SurfaceOfRevolution(&'m SurfaceOfRevolution),
20114    SweptSurface(&'m SweptSurface),
20115    SymbolRepresentation(&'m SymbolRepresentation),
20116    SymbolTarget(&'m SymbolTarget),
20117    TerminatorSymbol(&'m TerminatorSymbol),
20118    TessellatedAnnotationOccurrence(&'m TessellatedAnnotationOccurrence),
20119    TessellatedCurveSet(&'m TessellatedCurveSet),
20120    TessellatedFace(&'m TessellatedFace),
20121    TessellatedGeometricSet(&'m TessellatedGeometricSet),
20122    TessellatedItem(&'m TessellatedItem),
20123    TessellatedShapeRepresentation(&'m TessellatedShapeRepresentation),
20124    TessellatedShell(&'m TessellatedShell),
20125    TessellatedSolid(&'m TessellatedSolid),
20126    TessellatedStructuredItem(&'m TessellatedStructuredItem),
20127    TessellatedSurfaceSet(&'m TessellatedSurfaceSet),
20128    TextLiteral(&'m TextLiteral),
20129    TopologicalRepresentationItem(&'m TopologicalRepresentationItem),
20130    ToroidalSurface(&'m ToroidalSurface),
20131    TrimmedCurve(&'m TrimmedCurve),
20132    TwoDirectionRepeatFactor(&'m TwoDirectionRepeatFactor),
20133    UniformCurve(&'m UniformCurve),
20134    UniformSurface(&'m UniformSurface),
20135    ValueRepresentationItem(&'m ValueRepresentationItem),
20136    Vector(&'m Vector),
20137    Vertex(&'m Vertex),
20138    VertexLoop(&'m VertexLoop),
20139    VertexPoint(&'m VertexPoint),
20140    VertexShell(&'m VertexShell),
20141    WireShell(&'m WireShell),
20142    Complex(&'m ComplexUnit),
20143}
20144impl StyleContextSelectRef {
20145    pub fn resolve<'m>(&self, model: &'m StepModel) -> StyleContextSelectRefView<'m> {
20146        match self {
20147            StyleContextSelectRef::AdvancedBrepShapeRepresentation(i) => {
20148                StyleContextSelectRefView::AdvancedBrepShapeRepresentation(
20149                    model.advanced_brep_shape_representation_arena.get(i.0),
20150                )
20151            }
20152            StyleContextSelectRef::AdvancedFace(i) => {
20153                StyleContextSelectRefView::AdvancedFace(model.advanced_face_arena.get(i.0))
20154            }
20155            StyleContextSelectRef::AnnotationCurveOccurrence(i) => {
20156                StyleContextSelectRefView::AnnotationCurveOccurrence(
20157                    model.annotation_curve_occurrence_arena.get(i.0),
20158                )
20159            }
20160            StyleContextSelectRef::AnnotationFillAreaOccurrence(i) => {
20161                StyleContextSelectRefView::AnnotationFillAreaOccurrence(
20162                    model.annotation_fill_area_occurrence_arena.get(i.0),
20163                )
20164            }
20165            StyleContextSelectRef::AnnotationOccurrence(i) => {
20166                StyleContextSelectRefView::AnnotationOccurrence(
20167                    model.annotation_occurrence_arena.get(i.0),
20168                )
20169            }
20170            StyleContextSelectRef::AnnotationPlaceholderLeaderLine(i) => {
20171                StyleContextSelectRefView::AnnotationPlaceholderLeaderLine(
20172                    model.annotation_placeholder_leader_line_arena.get(i.0),
20173                )
20174            }
20175            StyleContextSelectRef::AnnotationPlaceholderOccurrence(i) => {
20176                StyleContextSelectRefView::AnnotationPlaceholderOccurrence(
20177                    model.annotation_placeholder_occurrence_arena.get(i.0),
20178                )
20179            }
20180            StyleContextSelectRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => {
20181                StyleContextSelectRefView::AnnotationPlaceholderOccurrenceWithLeaderLine(
20182                    model
20183                        .annotation_placeholder_occurrence_with_leader_line_arena
20184                        .get(i.0),
20185                )
20186            }
20187            StyleContextSelectRef::AnnotationPlane(i) => {
20188                StyleContextSelectRefView::AnnotationPlane(model.annotation_plane_arena.get(i.0))
20189            }
20190            StyleContextSelectRef::AnnotationSymbol(i) => {
20191                StyleContextSelectRefView::AnnotationSymbol(model.annotation_symbol_arena.get(i.0))
20192            }
20193            StyleContextSelectRef::AnnotationSymbolOccurrence(i) => {
20194                StyleContextSelectRefView::AnnotationSymbolOccurrence(
20195                    model.annotation_symbol_occurrence_arena.get(i.0),
20196                )
20197            }
20198            StyleContextSelectRef::AnnotationText(i) => {
20199                StyleContextSelectRefView::AnnotationText(model.annotation_text_arena.get(i.0))
20200            }
20201            StyleContextSelectRef::AnnotationTextCharacter(i) => {
20202                StyleContextSelectRefView::AnnotationTextCharacter(
20203                    model.annotation_text_character_arena.get(i.0),
20204                )
20205            }
20206            StyleContextSelectRef::AnnotationTextOccurrence(i) => {
20207                StyleContextSelectRefView::AnnotationTextOccurrence(
20208                    model.annotation_text_occurrence_arena.get(i.0),
20209                )
20210            }
20211            StyleContextSelectRef::AnnotationToAnnotationLeaderLine(i) => {
20212                StyleContextSelectRefView::AnnotationToAnnotationLeaderLine(
20213                    model.annotation_to_annotation_leader_line_arena.get(i.0),
20214                )
20215            }
20216            StyleContextSelectRef::AnnotationToModelLeaderLine(i) => {
20217                StyleContextSelectRefView::AnnotationToModelLeaderLine(
20218                    model.annotation_to_model_leader_line_arena.get(i.0),
20219                )
20220            }
20221            StyleContextSelectRef::ApllPoint(i) => {
20222                StyleContextSelectRefView::ApllPoint(model.apll_point_arena.get(i.0))
20223            }
20224            StyleContextSelectRef::ApllPointWithSurface(i) => {
20225                StyleContextSelectRefView::ApllPointWithSurface(
20226                    model.apll_point_with_surface_arena.get(i.0),
20227                )
20228            }
20229            StyleContextSelectRef::AuxiliaryLeaderLine(i) => {
20230                StyleContextSelectRefView::AuxiliaryLeaderLine(
20231                    model.auxiliary_leader_line_arena.get(i.0),
20232                )
20233            }
20234            StyleContextSelectRef::Axis1Placement(i) => {
20235                StyleContextSelectRefView::Axis1Placement(model.axis1_placement_arena.get(i.0))
20236            }
20237            StyleContextSelectRef::Axis2Placement2d(i) => {
20238                StyleContextSelectRefView::Axis2Placement2d(model.axis2_placement2d_arena.get(i.0))
20239            }
20240            StyleContextSelectRef::Axis2Placement3d(i) => {
20241                StyleContextSelectRefView::Axis2Placement3d(model.axis2_placement3d_arena.get(i.0))
20242            }
20243            StyleContextSelectRef::BSplineCurve(i) => {
20244                StyleContextSelectRefView::BSplineCurve(model.b_spline_curve_arena.get(i.0))
20245            }
20246            StyleContextSelectRef::BSplineCurveWithKnots(i) => {
20247                StyleContextSelectRefView::BSplineCurveWithKnots(
20248                    model.b_spline_curve_with_knots_arena.get(i.0),
20249                )
20250            }
20251            StyleContextSelectRef::BSplineSurface(i) => {
20252                StyleContextSelectRefView::BSplineSurface(model.b_spline_surface_arena.get(i.0))
20253            }
20254            StyleContextSelectRef::BSplineSurfaceWithKnots(i) => {
20255                StyleContextSelectRefView::BSplineSurfaceWithKnots(
20256                    model.b_spline_surface_with_knots_arena.get(i.0),
20257                )
20258            }
20259            StyleContextSelectRef::BezierCurve(i) => {
20260                StyleContextSelectRefView::BezierCurve(model.bezier_curve_arena.get(i.0))
20261            }
20262            StyleContextSelectRef::BezierSurface(i) => {
20263                StyleContextSelectRefView::BezierSurface(model.bezier_surface_arena.get(i.0))
20264            }
20265            StyleContextSelectRef::BoundedCurve(i) => {
20266                StyleContextSelectRefView::BoundedCurve(model.bounded_curve_arena.get(i.0))
20267            }
20268            StyleContextSelectRef::BoundedPcurve(i) => {
20269                StyleContextSelectRefView::BoundedPcurve(model.bounded_pcurve_arena.get(i.0))
20270            }
20271            StyleContextSelectRef::BoundedSurface(i) => {
20272                StyleContextSelectRefView::BoundedSurface(model.bounded_surface_arena.get(i.0))
20273            }
20274            StyleContextSelectRef::BoundedSurfaceCurve(i) => {
20275                StyleContextSelectRefView::BoundedSurfaceCurve(
20276                    model.bounded_surface_curve_arena.get(i.0),
20277                )
20278            }
20279            StyleContextSelectRef::BrepWithVoids(i) => {
20280                StyleContextSelectRefView::BrepWithVoids(model.brep_with_voids_arena.get(i.0))
20281            }
20282            StyleContextSelectRef::CameraImage(i) => {
20283                StyleContextSelectRefView::CameraImage(model.camera_image_arena.get(i.0))
20284            }
20285            StyleContextSelectRef::CameraImage3dWithScale(i) => {
20286                StyleContextSelectRefView::CameraImage3dWithScale(
20287                    model.camera_image3d_with_scale_arena.get(i.0),
20288                )
20289            }
20290            StyleContextSelectRef::CameraModel(i) => {
20291                StyleContextSelectRefView::CameraModel(model.camera_model_arena.get(i.0))
20292            }
20293            StyleContextSelectRef::CameraModelD3(i) => {
20294                StyleContextSelectRefView::CameraModelD3(model.camera_model_d3_arena.get(i.0))
20295            }
20296            StyleContextSelectRef::CameraModelD3MultiClipping(i) => {
20297                StyleContextSelectRefView::CameraModelD3MultiClipping(
20298                    model.camera_model_d3_multi_clipping_arena.get(i.0),
20299                )
20300            }
20301            StyleContextSelectRef::CameraModelD3WithHlhsr(i) => {
20302                StyleContextSelectRefView::CameraModelD3WithHlhsr(
20303                    model.camera_model_d3_with_hlhsr_arena.get(i.0),
20304                )
20305            }
20306            StyleContextSelectRef::CartesianPoint(i) => {
20307                StyleContextSelectRefView::CartesianPoint(model.cartesian_point_arena.get(i.0))
20308            }
20309            StyleContextSelectRef::CharacterizedRepresentation(i) => {
20310                StyleContextSelectRefView::CharacterizedRepresentation(
20311                    model.characterized_representation_arena.get(i.0),
20312                )
20313            }
20314            StyleContextSelectRef::Circle(i) => {
20315                StyleContextSelectRefView::Circle(model.circle_arena.get(i.0))
20316            }
20317            StyleContextSelectRef::ClosedShell(i) => {
20318                StyleContextSelectRefView::ClosedShell(model.closed_shell_arena.get(i.0))
20319            }
20320            StyleContextSelectRef::ComplexTriangulatedFace(i) => {
20321                StyleContextSelectRefView::ComplexTriangulatedFace(
20322                    model.complex_triangulated_face_arena.get(i.0),
20323                )
20324            }
20325            StyleContextSelectRef::ComplexTriangulatedSurfaceSet(i) => {
20326                StyleContextSelectRefView::ComplexTriangulatedSurfaceSet(
20327                    model.complex_triangulated_surface_set_arena.get(i.0),
20328                )
20329            }
20330            StyleContextSelectRef::CompositeCurve(i) => {
20331                StyleContextSelectRefView::CompositeCurve(model.composite_curve_arena.get(i.0))
20332            }
20333            StyleContextSelectRef::CompositeText(i) => {
20334                StyleContextSelectRefView::CompositeText(model.composite_text_arena.get(i.0))
20335            }
20336            StyleContextSelectRef::CompoundRepresentationItem(i) => {
20337                StyleContextSelectRefView::CompoundRepresentationItem(
20338                    model.compound_representation_item_arena.get(i.0),
20339                )
20340            }
20341            StyleContextSelectRef::Conic(i) => {
20342                StyleContextSelectRefView::Conic(model.conic_arena.get(i.0))
20343            }
20344            StyleContextSelectRef::ConicalSurface(i) => {
20345                StyleContextSelectRefView::ConicalSurface(model.conical_surface_arena.get(i.0))
20346            }
20347            StyleContextSelectRef::ConnectedFaceSet(i) => {
20348                StyleContextSelectRefView::ConnectedFaceSet(model.connected_face_set_arena.get(i.0))
20349            }
20350            StyleContextSelectRef::ConstructiveGeometryRepresentation(i) => {
20351                StyleContextSelectRefView::ConstructiveGeometryRepresentation(
20352                    model.constructive_geometry_representation_arena.get(i.0),
20353                )
20354            }
20355            StyleContextSelectRef::ConstructiveGeometryRepresentationRelationship(i) => {
20356                StyleContextSelectRefView::ConstructiveGeometryRepresentationRelationship(
20357                    model
20358                        .constructive_geometry_representation_relationship_arena
20359                        .get(i.0),
20360                )
20361            }
20362            StyleContextSelectRef::ContextDependentOverRidingStyledItem(i) => {
20363                StyleContextSelectRefView::ContextDependentOverRidingStyledItem(
20364                    model
20365                        .context_dependent_over_riding_styled_item_arena
20366                        .get(i.0),
20367                )
20368            }
20369            StyleContextSelectRef::ContextDependentShapeRepresentation(i) => {
20370                StyleContextSelectRefView::ContextDependentShapeRepresentation(
20371                    model.context_dependent_shape_representation_arena.get(i.0),
20372                )
20373            }
20374            StyleContextSelectRef::CoordinatesList(i) => {
20375                StyleContextSelectRefView::CoordinatesList(model.coordinates_list_arena.get(i.0))
20376            }
20377            StyleContextSelectRef::Curve(i) => {
20378                StyleContextSelectRefView::Curve(model.curve_arena.get(i.0))
20379            }
20380            StyleContextSelectRef::CylindricalSurface(i) => {
20381                StyleContextSelectRefView::CylindricalSurface(
20382                    model.cylindrical_surface_arena.get(i.0),
20383                )
20384            }
20385            StyleContextSelectRef::DefinedCharacterGlyph(i) => {
20386                StyleContextSelectRefView::DefinedCharacterGlyph(
20387                    model.defined_character_glyph_arena.get(i.0),
20388                )
20389            }
20390            StyleContextSelectRef::DefinedSymbol(i) => {
20391                StyleContextSelectRefView::DefinedSymbol(model.defined_symbol_arena.get(i.0))
20392            }
20393            StyleContextSelectRef::DefinitionalRepresentation(i) => {
20394                StyleContextSelectRefView::DefinitionalRepresentation(
20395                    model.definitional_representation_arena.get(i.0),
20396                )
20397            }
20398            StyleContextSelectRef::DefinitionalRepresentationRelationship(i) => {
20399                StyleContextSelectRefView::DefinitionalRepresentationRelationship(
20400                    model
20401                        .definitional_representation_relationship_arena
20402                        .get(i.0),
20403                )
20404            }
20405            StyleContextSelectRef::DefinitionalRepresentationRelationshipWithSameContext(i) => {
20406                StyleContextSelectRefView::DefinitionalRepresentationRelationshipWithSameContext(
20407                    model
20408                        .definitional_representation_relationship_with_same_context_arena
20409                        .get(i.0),
20410                )
20411            }
20412            StyleContextSelectRef::DegenerateToroidalSurface(i) => {
20413                StyleContextSelectRefView::DegenerateToroidalSurface(
20414                    model.degenerate_toroidal_surface_arena.get(i.0),
20415                )
20416            }
20417            StyleContextSelectRef::DescriptiveRepresentationItem(i) => {
20418                StyleContextSelectRefView::DescriptiveRepresentationItem(
20419                    model.descriptive_representation_item_arena.get(i.0),
20420                )
20421            }
20422            StyleContextSelectRef::Direction(i) => {
20423                StyleContextSelectRefView::Direction(model.direction_arena.get(i.0))
20424            }
20425            StyleContextSelectRef::DraughtingAnnotationOccurrence(i) => {
20426                StyleContextSelectRefView::DraughtingAnnotationOccurrence(
20427                    model.draughting_annotation_occurrence_arena.get(i.0),
20428                )
20429            }
20430            StyleContextSelectRef::DraughtingCallout(i) => {
20431                StyleContextSelectRefView::DraughtingCallout(
20432                    model.draughting_callout_arena.get(i.0),
20433                )
20434            }
20435            StyleContextSelectRef::DraughtingModel(i) => {
20436                StyleContextSelectRefView::DraughtingModel(model.draughting_model_arena.get(i.0))
20437            }
20438            StyleContextSelectRef::Edge(i) => {
20439                StyleContextSelectRefView::Edge(model.edge_arena.get(i.0))
20440            }
20441            StyleContextSelectRef::EdgeCurve(i) => {
20442                StyleContextSelectRefView::EdgeCurve(model.edge_curve_arena.get(i.0))
20443            }
20444            StyleContextSelectRef::EdgeLoop(i) => {
20445                StyleContextSelectRefView::EdgeLoop(model.edge_loop_arena.get(i.0))
20446            }
20447            StyleContextSelectRef::ElementarySurface(i) => {
20448                StyleContextSelectRefView::ElementarySurface(
20449                    model.elementary_surface_arena.get(i.0),
20450                )
20451            }
20452            StyleContextSelectRef::Ellipse(i) => {
20453                StyleContextSelectRefView::Ellipse(model.ellipse_arena.get(i.0))
20454            }
20455            StyleContextSelectRef::ExternallyDefinedHatchStyle(i) => {
20456                StyleContextSelectRefView::ExternallyDefinedHatchStyle(
20457                    model.externally_defined_hatch_style_arena.get(i.0),
20458                )
20459            }
20460            StyleContextSelectRef::ExternallyDefinedTileStyle(i) => {
20461                StyleContextSelectRefView::ExternallyDefinedTileStyle(
20462                    model.externally_defined_tile_style_arena.get(i.0),
20463                )
20464            }
20465            StyleContextSelectRef::Face(i) => {
20466                StyleContextSelectRefView::Face(model.face_arena.get(i.0))
20467            }
20468            StyleContextSelectRef::FaceBound(i) => {
20469                StyleContextSelectRefView::FaceBound(model.face_bound_arena.get(i.0))
20470            }
20471            StyleContextSelectRef::FaceOuterBound(i) => {
20472                StyleContextSelectRefView::FaceOuterBound(model.face_outer_bound_arena.get(i.0))
20473            }
20474            StyleContextSelectRef::FaceSurface(i) => {
20475                StyleContextSelectRefView::FaceSurface(model.face_surface_arena.get(i.0))
20476            }
20477            StyleContextSelectRef::FillAreaStyleHatching(i) => {
20478                StyleContextSelectRefView::FillAreaStyleHatching(
20479                    model.fill_area_style_hatching_arena.get(i.0),
20480                )
20481            }
20482            StyleContextSelectRef::FillAreaStyleTileColouredRegion(i) => {
20483                StyleContextSelectRefView::FillAreaStyleTileColouredRegion(
20484                    model.fill_area_style_tile_coloured_region_arena.get(i.0),
20485                )
20486            }
20487            StyleContextSelectRef::FillAreaStyleTileCurveWithStyle(i) => {
20488                StyleContextSelectRefView::FillAreaStyleTileCurveWithStyle(
20489                    model.fill_area_style_tile_curve_with_style_arena.get(i.0),
20490                )
20491            }
20492            StyleContextSelectRef::FillAreaStyleTileSymbolWithStyle(i) => {
20493                StyleContextSelectRefView::FillAreaStyleTileSymbolWithStyle(
20494                    model.fill_area_style_tile_symbol_with_style_arena.get(i.0),
20495                )
20496            }
20497            StyleContextSelectRef::FillAreaStyleTiles(i) => {
20498                StyleContextSelectRefView::FillAreaStyleTiles(
20499                    model.fill_area_style_tiles_arena.get(i.0),
20500                )
20501            }
20502            StyleContextSelectRef::GeometricCurveSet(i) => {
20503                StyleContextSelectRefView::GeometricCurveSet(
20504                    model.geometric_curve_set_arena.get(i.0),
20505                )
20506            }
20507            StyleContextSelectRef::GeometricRepresentationItem(i) => {
20508                StyleContextSelectRefView::GeometricRepresentationItem(
20509                    model.geometric_representation_item_arena.get(i.0),
20510                )
20511            }
20512            StyleContextSelectRef::GeometricSet(i) => {
20513                StyleContextSelectRefView::GeometricSet(model.geometric_set_arena.get(i.0))
20514            }
20515            StyleContextSelectRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => {
20516                StyleContextSelectRefView::GeometricallyBoundedSurfaceShapeRepresentation(
20517                    model
20518                        .geometrically_bounded_surface_shape_representation_arena
20519                        .get(i.0),
20520                )
20521            }
20522            StyleContextSelectRef::GeometricallyBoundedWireframeShapeRepresentation(i) => {
20523                StyleContextSelectRefView::GeometricallyBoundedWireframeShapeRepresentation(
20524                    model
20525                        .geometrically_bounded_wireframe_shape_representation_arena
20526                        .get(i.0),
20527                )
20528            }
20529            StyleContextSelectRef::Group(i) => {
20530                StyleContextSelectRefView::Group(model.group_arena.get(i.0))
20531            }
20532            StyleContextSelectRef::Hyperbola(i) => {
20533                StyleContextSelectRefView::Hyperbola(model.hyperbola_arena.get(i.0))
20534            }
20535            StyleContextSelectRef::IntegerRepresentationItem(i) => {
20536                StyleContextSelectRefView::IntegerRepresentationItem(
20537                    model.integer_representation_item_arena.get(i.0),
20538                )
20539            }
20540            StyleContextSelectRef::IntersectionCurve(i) => {
20541                StyleContextSelectRefView::IntersectionCurve(
20542                    model.intersection_curve_arena.get(i.0),
20543                )
20544            }
20545            StyleContextSelectRef::LeaderCurve(i) => {
20546                StyleContextSelectRefView::LeaderCurve(model.leader_curve_arena.get(i.0))
20547            }
20548            StyleContextSelectRef::LeaderDirectedCallout(i) => {
20549                StyleContextSelectRefView::LeaderDirectedCallout(
20550                    model.leader_directed_callout_arena.get(i.0),
20551                )
20552            }
20553            StyleContextSelectRef::LeaderTerminator(i) => {
20554                StyleContextSelectRefView::LeaderTerminator(model.leader_terminator_arena.get(i.0))
20555            }
20556            StyleContextSelectRef::Line(i) => {
20557                StyleContextSelectRefView::Line(model.line_arena.get(i.0))
20558            }
20559            StyleContextSelectRef::Loop(i) => {
20560                StyleContextSelectRefView::Loop(model.loop_arena.get(i.0))
20561            }
20562            StyleContextSelectRef::ManifoldSolidBrep(i) => {
20563                StyleContextSelectRefView::ManifoldSolidBrep(
20564                    model.manifold_solid_brep_arena.get(i.0),
20565                )
20566            }
20567            StyleContextSelectRef::ManifoldSurfaceShapeRepresentation(i) => {
20568                StyleContextSelectRefView::ManifoldSurfaceShapeRepresentation(
20569                    model.manifold_surface_shape_representation_arena.get(i.0),
20570                )
20571            }
20572            StyleContextSelectRef::MappedItem(i) => {
20573                StyleContextSelectRefView::MappedItem(model.mapped_item_arena.get(i.0))
20574            }
20575            StyleContextSelectRef::MeasureRepresentationItem(i) => {
20576                StyleContextSelectRefView::MeasureRepresentationItem(
20577                    model.measure_representation_item_arena.get(i.0),
20578                )
20579            }
20580            StyleContextSelectRef::MechanicalDesignAndDraughtingRelationship(i) => {
20581                StyleContextSelectRefView::MechanicalDesignAndDraughtingRelationship(
20582                    model
20583                        .mechanical_design_and_draughting_relationship_arena
20584                        .get(i.0),
20585                )
20586            }
20587            StyleContextSelectRef::MechanicalDesignGeometricPresentationRepresentation(i) => {
20588                StyleContextSelectRefView::MechanicalDesignGeometricPresentationRepresentation(
20589                    model
20590                        .mechanical_design_geometric_presentation_representation_arena
20591                        .get(i.0),
20592                )
20593            }
20594            StyleContextSelectRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => {
20595                StyleContextSelectRefView::MechanicalDesignPresentationRepresentationWithDraughting(
20596                    model
20597                        .mechanical_design_presentation_representation_with_draughting_arena
20598                        .get(i.0),
20599                )
20600            }
20601            StyleContextSelectRef::MechanicalDesignShadedPresentationRepresentation(i) => {
20602                StyleContextSelectRefView::MechanicalDesignShadedPresentationRepresentation(
20603                    model
20604                        .mechanical_design_shaded_presentation_representation_arena
20605                        .get(i.0),
20606                )
20607            }
20608            StyleContextSelectRef::OffsetSurface(i) => {
20609                StyleContextSelectRefView::OffsetSurface(model.offset_surface_arena.get(i.0))
20610            }
20611            StyleContextSelectRef::OneDirectionRepeatFactor(i) => {
20612                StyleContextSelectRefView::OneDirectionRepeatFactor(
20613                    model.one_direction_repeat_factor_arena.get(i.0),
20614                )
20615            }
20616            StyleContextSelectRef::OpenShell(i) => {
20617                StyleContextSelectRefView::OpenShell(model.open_shell_arena.get(i.0))
20618            }
20619            StyleContextSelectRef::OrientedClosedShell(i) => {
20620                StyleContextSelectRefView::OrientedClosedShell(
20621                    model.oriented_closed_shell_arena.get(i.0),
20622                )
20623            }
20624            StyleContextSelectRef::OrientedEdge(i) => {
20625                StyleContextSelectRefView::OrientedEdge(model.oriented_edge_arena.get(i.0))
20626            }
20627            StyleContextSelectRef::OverRidingStyledItem(i) => {
20628                StyleContextSelectRefView::OverRidingStyledItem(
20629                    model.over_riding_styled_item_arena.get(i.0),
20630                )
20631            }
20632            StyleContextSelectRef::Path(i) => {
20633                StyleContextSelectRefView::Path(model.path_arena.get(i.0))
20634            }
20635            StyleContextSelectRef::Pcurve(i) => {
20636                StyleContextSelectRefView::Pcurve(model.pcurve_arena.get(i.0))
20637            }
20638            StyleContextSelectRef::Placement(i) => {
20639                StyleContextSelectRefView::Placement(model.placement_arena.get(i.0))
20640            }
20641            StyleContextSelectRef::PlanarBox(i) => {
20642                StyleContextSelectRefView::PlanarBox(model.planar_box_arena.get(i.0))
20643            }
20644            StyleContextSelectRef::PlanarExtent(i) => {
20645                StyleContextSelectRefView::PlanarExtent(model.planar_extent_arena.get(i.0))
20646            }
20647            StyleContextSelectRef::Plane(i) => {
20648                StyleContextSelectRefView::Plane(model.plane_arena.get(i.0))
20649            }
20650            StyleContextSelectRef::Point(i) => {
20651                StyleContextSelectRefView::Point(model.point_arena.get(i.0))
20652            }
20653            StyleContextSelectRef::PolyLoop(i) => {
20654                StyleContextSelectRefView::PolyLoop(model.poly_loop_arena.get(i.0))
20655            }
20656            StyleContextSelectRef::Polyline(i) => {
20657                StyleContextSelectRefView::Polyline(model.polyline_arena.get(i.0))
20658            }
20659            StyleContextSelectRef::PresentationArea(i) => {
20660                StyleContextSelectRefView::PresentationArea(model.presentation_area_arena.get(i.0))
20661            }
20662            StyleContextSelectRef::PresentationLayerAssignment(i) => {
20663                StyleContextSelectRefView::PresentationLayerAssignment(
20664                    model.presentation_layer_assignment_arena.get(i.0),
20665                )
20666            }
20667            StyleContextSelectRef::PresentationRepresentation(i) => {
20668                StyleContextSelectRefView::PresentationRepresentation(
20669                    model.presentation_representation_arena.get(i.0),
20670                )
20671            }
20672            StyleContextSelectRef::PresentationSet(i) => {
20673                StyleContextSelectRefView::PresentationSet(model.presentation_set_arena.get(i.0))
20674            }
20675            StyleContextSelectRef::PresentationView(i) => {
20676                StyleContextSelectRefView::PresentationView(model.presentation_view_arena.get(i.0))
20677            }
20678            StyleContextSelectRef::ProductConceptFeatureCategory(i) => {
20679                StyleContextSelectRefView::ProductConceptFeatureCategory(
20680                    model.product_concept_feature_category_arena.get(i.0),
20681                )
20682            }
20683            StyleContextSelectRef::QualifiedRepresentationItem(i) => {
20684                StyleContextSelectRefView::QualifiedRepresentationItem(
20685                    model.qualified_representation_item_arena.get(i.0),
20686                )
20687            }
20688            StyleContextSelectRef::QuasiUniformCurve(i) => {
20689                StyleContextSelectRefView::QuasiUniformCurve(
20690                    model.quasi_uniform_curve_arena.get(i.0),
20691                )
20692            }
20693            StyleContextSelectRef::QuasiUniformSurface(i) => {
20694                StyleContextSelectRefView::QuasiUniformSurface(
20695                    model.quasi_uniform_surface_arena.get(i.0),
20696                )
20697            }
20698            StyleContextSelectRef::RationalBSplineCurve(i) => {
20699                StyleContextSelectRefView::RationalBSplineCurve(
20700                    model.rational_b_spline_curve_arena.get(i.0),
20701                )
20702            }
20703            StyleContextSelectRef::RationalBSplineSurface(i) => {
20704                StyleContextSelectRefView::RationalBSplineSurface(
20705                    model.rational_b_spline_surface_arena.get(i.0),
20706                )
20707            }
20708            StyleContextSelectRef::RealRepresentationItem(i) => {
20709                StyleContextSelectRefView::RealRepresentationItem(
20710                    model.real_representation_item_arena.get(i.0),
20711                )
20712            }
20713            StyleContextSelectRef::RepositionedTessellatedItem(i) => {
20714                StyleContextSelectRefView::RepositionedTessellatedItem(
20715                    model.repositioned_tessellated_item_arena.get(i.0),
20716                )
20717            }
20718            StyleContextSelectRef::Representation(i) => {
20719                StyleContextSelectRefView::Representation(model.representation_arena.get(i.0))
20720            }
20721            StyleContextSelectRef::RepresentationItem(i) => {
20722                StyleContextSelectRefView::RepresentationItem(
20723                    model.representation_item_arena.get(i.0),
20724                )
20725            }
20726            StyleContextSelectRef::RepresentationRelationship(i) => {
20727                StyleContextSelectRefView::RepresentationRelationship(
20728                    model.representation_relationship_arena.get(i.0),
20729                )
20730            }
20731            StyleContextSelectRef::RepresentationRelationshipWithTransformation(i) => {
20732                StyleContextSelectRefView::RepresentationRelationshipWithTransformation(
20733                    model
20734                        .representation_relationship_with_transformation_arena
20735                        .get(i.0),
20736                )
20737            }
20738            StyleContextSelectRef::SeamCurve(i) => {
20739                StyleContextSelectRefView::SeamCurve(model.seam_curve_arena.get(i.0))
20740            }
20741            StyleContextSelectRef::ShapeDimensionRepresentation(i) => {
20742                StyleContextSelectRefView::ShapeDimensionRepresentation(
20743                    model.shape_dimension_representation_arena.get(i.0),
20744                )
20745            }
20746            StyleContextSelectRef::ShapeRepresentation(i) => {
20747                StyleContextSelectRefView::ShapeRepresentation(
20748                    model.shape_representation_arena.get(i.0),
20749                )
20750            }
20751            StyleContextSelectRef::ShapeRepresentationRelationship(i) => {
20752                StyleContextSelectRefView::ShapeRepresentationRelationship(
20753                    model.shape_representation_relationship_arena.get(i.0),
20754                )
20755            }
20756            StyleContextSelectRef::ShapeRepresentationWithParameters(i) => {
20757                StyleContextSelectRefView::ShapeRepresentationWithParameters(
20758                    model.shape_representation_with_parameters_arena.get(i.0),
20759                )
20760            }
20761            StyleContextSelectRef::ShellBasedSurfaceModel(i) => {
20762                StyleContextSelectRefView::ShellBasedSurfaceModel(
20763                    model.shell_based_surface_model_arena.get(i.0),
20764                )
20765            }
20766            StyleContextSelectRef::SolidModel(i) => {
20767                StyleContextSelectRefView::SolidModel(model.solid_model_arena.get(i.0))
20768            }
20769            StyleContextSelectRef::SphericalSurface(i) => {
20770                StyleContextSelectRefView::SphericalSurface(model.spherical_surface_arena.get(i.0))
20771            }
20772            StyleContextSelectRef::StyledItem(i) => {
20773                StyleContextSelectRefView::StyledItem(model.styled_item_arena.get(i.0))
20774            }
20775            StyleContextSelectRef::Surface(i) => {
20776                StyleContextSelectRefView::Surface(model.surface_arena.get(i.0))
20777            }
20778            StyleContextSelectRef::SurfaceCurve(i) => {
20779                StyleContextSelectRefView::SurfaceCurve(model.surface_curve_arena.get(i.0))
20780            }
20781            StyleContextSelectRef::SurfaceOfLinearExtrusion(i) => {
20782                StyleContextSelectRefView::SurfaceOfLinearExtrusion(
20783                    model.surface_of_linear_extrusion_arena.get(i.0),
20784                )
20785            }
20786            StyleContextSelectRef::SurfaceOfRevolution(i) => {
20787                StyleContextSelectRefView::SurfaceOfRevolution(
20788                    model.surface_of_revolution_arena.get(i.0),
20789                )
20790            }
20791            StyleContextSelectRef::SweptSurface(i) => {
20792                StyleContextSelectRefView::SweptSurface(model.swept_surface_arena.get(i.0))
20793            }
20794            StyleContextSelectRef::SymbolRepresentation(i) => {
20795                StyleContextSelectRefView::SymbolRepresentation(
20796                    model.symbol_representation_arena.get(i.0),
20797                )
20798            }
20799            StyleContextSelectRef::SymbolTarget(i) => {
20800                StyleContextSelectRefView::SymbolTarget(model.symbol_target_arena.get(i.0))
20801            }
20802            StyleContextSelectRef::TerminatorSymbol(i) => {
20803                StyleContextSelectRefView::TerminatorSymbol(model.terminator_symbol_arena.get(i.0))
20804            }
20805            StyleContextSelectRef::TessellatedAnnotationOccurrence(i) => {
20806                StyleContextSelectRefView::TessellatedAnnotationOccurrence(
20807                    model.tessellated_annotation_occurrence_arena.get(i.0),
20808                )
20809            }
20810            StyleContextSelectRef::TessellatedCurveSet(i) => {
20811                StyleContextSelectRefView::TessellatedCurveSet(
20812                    model.tessellated_curve_set_arena.get(i.0),
20813                )
20814            }
20815            StyleContextSelectRef::TessellatedFace(i) => {
20816                StyleContextSelectRefView::TessellatedFace(model.tessellated_face_arena.get(i.0))
20817            }
20818            StyleContextSelectRef::TessellatedGeometricSet(i) => {
20819                StyleContextSelectRefView::TessellatedGeometricSet(
20820                    model.tessellated_geometric_set_arena.get(i.0),
20821                )
20822            }
20823            StyleContextSelectRef::TessellatedItem(i) => {
20824                StyleContextSelectRefView::TessellatedItem(model.tessellated_item_arena.get(i.0))
20825            }
20826            StyleContextSelectRef::TessellatedShapeRepresentation(i) => {
20827                StyleContextSelectRefView::TessellatedShapeRepresentation(
20828                    model.tessellated_shape_representation_arena.get(i.0),
20829                )
20830            }
20831            StyleContextSelectRef::TessellatedShell(i) => {
20832                StyleContextSelectRefView::TessellatedShell(model.tessellated_shell_arena.get(i.0))
20833            }
20834            StyleContextSelectRef::TessellatedSolid(i) => {
20835                StyleContextSelectRefView::TessellatedSolid(model.tessellated_solid_arena.get(i.0))
20836            }
20837            StyleContextSelectRef::TessellatedStructuredItem(i) => {
20838                StyleContextSelectRefView::TessellatedStructuredItem(
20839                    model.tessellated_structured_item_arena.get(i.0),
20840                )
20841            }
20842            StyleContextSelectRef::TessellatedSurfaceSet(i) => {
20843                StyleContextSelectRefView::TessellatedSurfaceSet(
20844                    model.tessellated_surface_set_arena.get(i.0),
20845                )
20846            }
20847            StyleContextSelectRef::TextLiteral(i) => {
20848                StyleContextSelectRefView::TextLiteral(model.text_literal_arena.get(i.0))
20849            }
20850            StyleContextSelectRef::TopologicalRepresentationItem(i) => {
20851                StyleContextSelectRefView::TopologicalRepresentationItem(
20852                    model.topological_representation_item_arena.get(i.0),
20853                )
20854            }
20855            StyleContextSelectRef::ToroidalSurface(i) => {
20856                StyleContextSelectRefView::ToroidalSurface(model.toroidal_surface_arena.get(i.0))
20857            }
20858            StyleContextSelectRef::TrimmedCurve(i) => {
20859                StyleContextSelectRefView::TrimmedCurve(model.trimmed_curve_arena.get(i.0))
20860            }
20861            StyleContextSelectRef::TwoDirectionRepeatFactor(i) => {
20862                StyleContextSelectRefView::TwoDirectionRepeatFactor(
20863                    model.two_direction_repeat_factor_arena.get(i.0),
20864                )
20865            }
20866            StyleContextSelectRef::UniformCurve(i) => {
20867                StyleContextSelectRefView::UniformCurve(model.uniform_curve_arena.get(i.0))
20868            }
20869            StyleContextSelectRef::UniformSurface(i) => {
20870                StyleContextSelectRefView::UniformSurface(model.uniform_surface_arena.get(i.0))
20871            }
20872            StyleContextSelectRef::ValueRepresentationItem(i) => {
20873                StyleContextSelectRefView::ValueRepresentationItem(
20874                    model.value_representation_item_arena.get(i.0),
20875                )
20876            }
20877            StyleContextSelectRef::Vector(i) => {
20878                StyleContextSelectRefView::Vector(model.vector_arena.get(i.0))
20879            }
20880            StyleContextSelectRef::Vertex(i) => {
20881                StyleContextSelectRefView::Vertex(model.vertex_arena.get(i.0))
20882            }
20883            StyleContextSelectRef::VertexLoop(i) => {
20884                StyleContextSelectRefView::VertexLoop(model.vertex_loop_arena.get(i.0))
20885            }
20886            StyleContextSelectRef::VertexPoint(i) => {
20887                StyleContextSelectRefView::VertexPoint(model.vertex_point_arena.get(i.0))
20888            }
20889            StyleContextSelectRef::VertexShell(i) => {
20890                StyleContextSelectRefView::VertexShell(model.vertex_shell_arena.get(i.0))
20891            }
20892            StyleContextSelectRef::WireShell(i) => {
20893                StyleContextSelectRefView::WireShell(model.wire_shell_arena.get(i.0))
20894            }
20895            StyleContextSelectRef::Complex(i) => {
20896                StyleContextSelectRefView::Complex(model.complex_unit_arena.get(i.0))
20897            }
20898        }
20899    }
20900    pub fn entity_key(&self) -> EntityKey {
20901        match self {
20902            StyleContextSelectRef::AdvancedBrepShapeRepresentation(i) => {
20903                EntityKey::AdvancedBrepShapeRepresentation(*i)
20904            }
20905            StyleContextSelectRef::AdvancedFace(i) => EntityKey::AdvancedFace(*i),
20906            StyleContextSelectRef::AnnotationCurveOccurrence(i) => {
20907                EntityKey::AnnotationCurveOccurrence(*i)
20908            }
20909            StyleContextSelectRef::AnnotationFillAreaOccurrence(i) => {
20910                EntityKey::AnnotationFillAreaOccurrence(*i)
20911            }
20912            StyleContextSelectRef::AnnotationOccurrence(i) => EntityKey::AnnotationOccurrence(*i),
20913            StyleContextSelectRef::AnnotationPlaceholderLeaderLine(i) => {
20914                EntityKey::AnnotationPlaceholderLeaderLine(*i)
20915            }
20916            StyleContextSelectRef::AnnotationPlaceholderOccurrence(i) => {
20917                EntityKey::AnnotationPlaceholderOccurrence(*i)
20918            }
20919            StyleContextSelectRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => {
20920                EntityKey::AnnotationPlaceholderOccurrenceWithLeaderLine(*i)
20921            }
20922            StyleContextSelectRef::AnnotationPlane(i) => EntityKey::AnnotationPlane(*i),
20923            StyleContextSelectRef::AnnotationSymbol(i) => EntityKey::AnnotationSymbol(*i),
20924            StyleContextSelectRef::AnnotationSymbolOccurrence(i) => {
20925                EntityKey::AnnotationSymbolOccurrence(*i)
20926            }
20927            StyleContextSelectRef::AnnotationText(i) => EntityKey::AnnotationText(*i),
20928            StyleContextSelectRef::AnnotationTextCharacter(i) => {
20929                EntityKey::AnnotationTextCharacter(*i)
20930            }
20931            StyleContextSelectRef::AnnotationTextOccurrence(i) => {
20932                EntityKey::AnnotationTextOccurrence(*i)
20933            }
20934            StyleContextSelectRef::AnnotationToAnnotationLeaderLine(i) => {
20935                EntityKey::AnnotationToAnnotationLeaderLine(*i)
20936            }
20937            StyleContextSelectRef::AnnotationToModelLeaderLine(i) => {
20938                EntityKey::AnnotationToModelLeaderLine(*i)
20939            }
20940            StyleContextSelectRef::ApllPoint(i) => EntityKey::ApllPoint(*i),
20941            StyleContextSelectRef::ApllPointWithSurface(i) => EntityKey::ApllPointWithSurface(*i),
20942            StyleContextSelectRef::AuxiliaryLeaderLine(i) => EntityKey::AuxiliaryLeaderLine(*i),
20943            StyleContextSelectRef::Axis1Placement(i) => EntityKey::Axis1Placement(*i),
20944            StyleContextSelectRef::Axis2Placement2d(i) => EntityKey::Axis2Placement2d(*i),
20945            StyleContextSelectRef::Axis2Placement3d(i) => EntityKey::Axis2Placement3d(*i),
20946            StyleContextSelectRef::BSplineCurve(i) => EntityKey::BSplineCurve(*i),
20947            StyleContextSelectRef::BSplineCurveWithKnots(i) => EntityKey::BSplineCurveWithKnots(*i),
20948            StyleContextSelectRef::BSplineSurface(i) => EntityKey::BSplineSurface(*i),
20949            StyleContextSelectRef::BSplineSurfaceWithKnots(i) => {
20950                EntityKey::BSplineSurfaceWithKnots(*i)
20951            }
20952            StyleContextSelectRef::BezierCurve(i) => EntityKey::BezierCurve(*i),
20953            StyleContextSelectRef::BezierSurface(i) => EntityKey::BezierSurface(*i),
20954            StyleContextSelectRef::BoundedCurve(i) => EntityKey::BoundedCurve(*i),
20955            StyleContextSelectRef::BoundedPcurve(i) => EntityKey::BoundedPcurve(*i),
20956            StyleContextSelectRef::BoundedSurface(i) => EntityKey::BoundedSurface(*i),
20957            StyleContextSelectRef::BoundedSurfaceCurve(i) => EntityKey::BoundedSurfaceCurve(*i),
20958            StyleContextSelectRef::BrepWithVoids(i) => EntityKey::BrepWithVoids(*i),
20959            StyleContextSelectRef::CameraImage(i) => EntityKey::CameraImage(*i),
20960            StyleContextSelectRef::CameraImage3dWithScale(i) => {
20961                EntityKey::CameraImage3dWithScale(*i)
20962            }
20963            StyleContextSelectRef::CameraModel(i) => EntityKey::CameraModel(*i),
20964            StyleContextSelectRef::CameraModelD3(i) => EntityKey::CameraModelD3(*i),
20965            StyleContextSelectRef::CameraModelD3MultiClipping(i) => {
20966                EntityKey::CameraModelD3MultiClipping(*i)
20967            }
20968            StyleContextSelectRef::CameraModelD3WithHlhsr(i) => {
20969                EntityKey::CameraModelD3WithHlhsr(*i)
20970            }
20971            StyleContextSelectRef::CartesianPoint(i) => EntityKey::CartesianPoint(*i),
20972            StyleContextSelectRef::CharacterizedRepresentation(i) => {
20973                EntityKey::CharacterizedRepresentation(*i)
20974            }
20975            StyleContextSelectRef::Circle(i) => EntityKey::Circle(*i),
20976            StyleContextSelectRef::ClosedShell(i) => EntityKey::ClosedShell(*i),
20977            StyleContextSelectRef::ComplexTriangulatedFace(i) => {
20978                EntityKey::ComplexTriangulatedFace(*i)
20979            }
20980            StyleContextSelectRef::ComplexTriangulatedSurfaceSet(i) => {
20981                EntityKey::ComplexTriangulatedSurfaceSet(*i)
20982            }
20983            StyleContextSelectRef::CompositeCurve(i) => EntityKey::CompositeCurve(*i),
20984            StyleContextSelectRef::CompositeText(i) => EntityKey::CompositeText(*i),
20985            StyleContextSelectRef::CompoundRepresentationItem(i) => {
20986                EntityKey::CompoundRepresentationItem(*i)
20987            }
20988            StyleContextSelectRef::Conic(i) => EntityKey::Conic(*i),
20989            StyleContextSelectRef::ConicalSurface(i) => EntityKey::ConicalSurface(*i),
20990            StyleContextSelectRef::ConnectedFaceSet(i) => EntityKey::ConnectedFaceSet(*i),
20991            StyleContextSelectRef::ConstructiveGeometryRepresentation(i) => {
20992                EntityKey::ConstructiveGeometryRepresentation(*i)
20993            }
20994            StyleContextSelectRef::ConstructiveGeometryRepresentationRelationship(i) => {
20995                EntityKey::ConstructiveGeometryRepresentationRelationship(*i)
20996            }
20997            StyleContextSelectRef::ContextDependentOverRidingStyledItem(i) => {
20998                EntityKey::ContextDependentOverRidingStyledItem(*i)
20999            }
21000            StyleContextSelectRef::ContextDependentShapeRepresentation(i) => {
21001                EntityKey::ContextDependentShapeRepresentation(*i)
21002            }
21003            StyleContextSelectRef::CoordinatesList(i) => EntityKey::CoordinatesList(*i),
21004            StyleContextSelectRef::Curve(i) => EntityKey::Curve(*i),
21005            StyleContextSelectRef::CylindricalSurface(i) => EntityKey::CylindricalSurface(*i),
21006            StyleContextSelectRef::DefinedCharacterGlyph(i) => EntityKey::DefinedCharacterGlyph(*i),
21007            StyleContextSelectRef::DefinedSymbol(i) => EntityKey::DefinedSymbol(*i),
21008            StyleContextSelectRef::DefinitionalRepresentation(i) => {
21009                EntityKey::DefinitionalRepresentation(*i)
21010            }
21011            StyleContextSelectRef::DefinitionalRepresentationRelationship(i) => {
21012                EntityKey::DefinitionalRepresentationRelationship(*i)
21013            }
21014            StyleContextSelectRef::DefinitionalRepresentationRelationshipWithSameContext(i) => {
21015                EntityKey::DefinitionalRepresentationRelationshipWithSameContext(*i)
21016            }
21017            StyleContextSelectRef::DegenerateToroidalSurface(i) => {
21018                EntityKey::DegenerateToroidalSurface(*i)
21019            }
21020            StyleContextSelectRef::DescriptiveRepresentationItem(i) => {
21021                EntityKey::DescriptiveRepresentationItem(*i)
21022            }
21023            StyleContextSelectRef::Direction(i) => EntityKey::Direction(*i),
21024            StyleContextSelectRef::DraughtingAnnotationOccurrence(i) => {
21025                EntityKey::DraughtingAnnotationOccurrence(*i)
21026            }
21027            StyleContextSelectRef::DraughtingCallout(i) => EntityKey::DraughtingCallout(*i),
21028            StyleContextSelectRef::DraughtingModel(i) => EntityKey::DraughtingModel(*i),
21029            StyleContextSelectRef::Edge(i) => EntityKey::Edge(*i),
21030            StyleContextSelectRef::EdgeCurve(i) => EntityKey::EdgeCurve(*i),
21031            StyleContextSelectRef::EdgeLoop(i) => EntityKey::EdgeLoop(*i),
21032            StyleContextSelectRef::ElementarySurface(i) => EntityKey::ElementarySurface(*i),
21033            StyleContextSelectRef::Ellipse(i) => EntityKey::Ellipse(*i),
21034            StyleContextSelectRef::ExternallyDefinedHatchStyle(i) => {
21035                EntityKey::ExternallyDefinedHatchStyle(*i)
21036            }
21037            StyleContextSelectRef::ExternallyDefinedTileStyle(i) => {
21038                EntityKey::ExternallyDefinedTileStyle(*i)
21039            }
21040            StyleContextSelectRef::Face(i) => EntityKey::Face(*i),
21041            StyleContextSelectRef::FaceBound(i) => EntityKey::FaceBound(*i),
21042            StyleContextSelectRef::FaceOuterBound(i) => EntityKey::FaceOuterBound(*i),
21043            StyleContextSelectRef::FaceSurface(i) => EntityKey::FaceSurface(*i),
21044            StyleContextSelectRef::FillAreaStyleHatching(i) => EntityKey::FillAreaStyleHatching(*i),
21045            StyleContextSelectRef::FillAreaStyleTileColouredRegion(i) => {
21046                EntityKey::FillAreaStyleTileColouredRegion(*i)
21047            }
21048            StyleContextSelectRef::FillAreaStyleTileCurveWithStyle(i) => {
21049                EntityKey::FillAreaStyleTileCurveWithStyle(*i)
21050            }
21051            StyleContextSelectRef::FillAreaStyleTileSymbolWithStyle(i) => {
21052                EntityKey::FillAreaStyleTileSymbolWithStyle(*i)
21053            }
21054            StyleContextSelectRef::FillAreaStyleTiles(i) => EntityKey::FillAreaStyleTiles(*i),
21055            StyleContextSelectRef::GeometricCurveSet(i) => EntityKey::GeometricCurveSet(*i),
21056            StyleContextSelectRef::GeometricRepresentationItem(i) => {
21057                EntityKey::GeometricRepresentationItem(*i)
21058            }
21059            StyleContextSelectRef::GeometricSet(i) => EntityKey::GeometricSet(*i),
21060            StyleContextSelectRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => {
21061                EntityKey::GeometricallyBoundedSurfaceShapeRepresentation(*i)
21062            }
21063            StyleContextSelectRef::GeometricallyBoundedWireframeShapeRepresentation(i) => {
21064                EntityKey::GeometricallyBoundedWireframeShapeRepresentation(*i)
21065            }
21066            StyleContextSelectRef::Group(i) => EntityKey::Group(*i),
21067            StyleContextSelectRef::Hyperbola(i) => EntityKey::Hyperbola(*i),
21068            StyleContextSelectRef::IntegerRepresentationItem(i) => {
21069                EntityKey::IntegerRepresentationItem(*i)
21070            }
21071            StyleContextSelectRef::IntersectionCurve(i) => EntityKey::IntersectionCurve(*i),
21072            StyleContextSelectRef::LeaderCurve(i) => EntityKey::LeaderCurve(*i),
21073            StyleContextSelectRef::LeaderDirectedCallout(i) => EntityKey::LeaderDirectedCallout(*i),
21074            StyleContextSelectRef::LeaderTerminator(i) => EntityKey::LeaderTerminator(*i),
21075            StyleContextSelectRef::Line(i) => EntityKey::Line(*i),
21076            StyleContextSelectRef::Loop(i) => EntityKey::Loop(*i),
21077            StyleContextSelectRef::ManifoldSolidBrep(i) => EntityKey::ManifoldSolidBrep(*i),
21078            StyleContextSelectRef::ManifoldSurfaceShapeRepresentation(i) => {
21079                EntityKey::ManifoldSurfaceShapeRepresentation(*i)
21080            }
21081            StyleContextSelectRef::MappedItem(i) => EntityKey::MappedItem(*i),
21082            StyleContextSelectRef::MeasureRepresentationItem(i) => {
21083                EntityKey::MeasureRepresentationItem(*i)
21084            }
21085            StyleContextSelectRef::MechanicalDesignAndDraughtingRelationship(i) => {
21086                EntityKey::MechanicalDesignAndDraughtingRelationship(*i)
21087            }
21088            StyleContextSelectRef::MechanicalDesignGeometricPresentationRepresentation(i) => {
21089                EntityKey::MechanicalDesignGeometricPresentationRepresentation(*i)
21090            }
21091            StyleContextSelectRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => {
21092                EntityKey::MechanicalDesignPresentationRepresentationWithDraughting(*i)
21093            }
21094            StyleContextSelectRef::MechanicalDesignShadedPresentationRepresentation(i) => {
21095                EntityKey::MechanicalDesignShadedPresentationRepresentation(*i)
21096            }
21097            StyleContextSelectRef::OffsetSurface(i) => EntityKey::OffsetSurface(*i),
21098            StyleContextSelectRef::OneDirectionRepeatFactor(i) => {
21099                EntityKey::OneDirectionRepeatFactor(*i)
21100            }
21101            StyleContextSelectRef::OpenShell(i) => EntityKey::OpenShell(*i),
21102            StyleContextSelectRef::OrientedClosedShell(i) => EntityKey::OrientedClosedShell(*i),
21103            StyleContextSelectRef::OrientedEdge(i) => EntityKey::OrientedEdge(*i),
21104            StyleContextSelectRef::OverRidingStyledItem(i) => EntityKey::OverRidingStyledItem(*i),
21105            StyleContextSelectRef::Path(i) => EntityKey::Path(*i),
21106            StyleContextSelectRef::Pcurve(i) => EntityKey::Pcurve(*i),
21107            StyleContextSelectRef::Placement(i) => EntityKey::Placement(*i),
21108            StyleContextSelectRef::PlanarBox(i) => EntityKey::PlanarBox(*i),
21109            StyleContextSelectRef::PlanarExtent(i) => EntityKey::PlanarExtent(*i),
21110            StyleContextSelectRef::Plane(i) => EntityKey::Plane(*i),
21111            StyleContextSelectRef::Point(i) => EntityKey::Point(*i),
21112            StyleContextSelectRef::PolyLoop(i) => EntityKey::PolyLoop(*i),
21113            StyleContextSelectRef::Polyline(i) => EntityKey::Polyline(*i),
21114            StyleContextSelectRef::PresentationArea(i) => EntityKey::PresentationArea(*i),
21115            StyleContextSelectRef::PresentationLayerAssignment(i) => {
21116                EntityKey::PresentationLayerAssignment(*i)
21117            }
21118            StyleContextSelectRef::PresentationRepresentation(i) => {
21119                EntityKey::PresentationRepresentation(*i)
21120            }
21121            StyleContextSelectRef::PresentationSet(i) => EntityKey::PresentationSet(*i),
21122            StyleContextSelectRef::PresentationView(i) => EntityKey::PresentationView(*i),
21123            StyleContextSelectRef::ProductConceptFeatureCategory(i) => {
21124                EntityKey::ProductConceptFeatureCategory(*i)
21125            }
21126            StyleContextSelectRef::QualifiedRepresentationItem(i) => {
21127                EntityKey::QualifiedRepresentationItem(*i)
21128            }
21129            StyleContextSelectRef::QuasiUniformCurve(i) => EntityKey::QuasiUniformCurve(*i),
21130            StyleContextSelectRef::QuasiUniformSurface(i) => EntityKey::QuasiUniformSurface(*i),
21131            StyleContextSelectRef::RationalBSplineCurve(i) => EntityKey::RationalBSplineCurve(*i),
21132            StyleContextSelectRef::RationalBSplineSurface(i) => {
21133                EntityKey::RationalBSplineSurface(*i)
21134            }
21135            StyleContextSelectRef::RealRepresentationItem(i) => {
21136                EntityKey::RealRepresentationItem(*i)
21137            }
21138            StyleContextSelectRef::RepositionedTessellatedItem(i) => {
21139                EntityKey::RepositionedTessellatedItem(*i)
21140            }
21141            StyleContextSelectRef::Representation(i) => EntityKey::Representation(*i),
21142            StyleContextSelectRef::RepresentationItem(i) => EntityKey::RepresentationItem(*i),
21143            StyleContextSelectRef::RepresentationRelationship(i) => {
21144                EntityKey::RepresentationRelationship(*i)
21145            }
21146            StyleContextSelectRef::RepresentationRelationshipWithTransformation(i) => {
21147                EntityKey::RepresentationRelationshipWithTransformation(*i)
21148            }
21149            StyleContextSelectRef::SeamCurve(i) => EntityKey::SeamCurve(*i),
21150            StyleContextSelectRef::ShapeDimensionRepresentation(i) => {
21151                EntityKey::ShapeDimensionRepresentation(*i)
21152            }
21153            StyleContextSelectRef::ShapeRepresentation(i) => EntityKey::ShapeRepresentation(*i),
21154            StyleContextSelectRef::ShapeRepresentationRelationship(i) => {
21155                EntityKey::ShapeRepresentationRelationship(*i)
21156            }
21157            StyleContextSelectRef::ShapeRepresentationWithParameters(i) => {
21158                EntityKey::ShapeRepresentationWithParameters(*i)
21159            }
21160            StyleContextSelectRef::ShellBasedSurfaceModel(i) => {
21161                EntityKey::ShellBasedSurfaceModel(*i)
21162            }
21163            StyleContextSelectRef::SolidModel(i) => EntityKey::SolidModel(*i),
21164            StyleContextSelectRef::SphericalSurface(i) => EntityKey::SphericalSurface(*i),
21165            StyleContextSelectRef::StyledItem(i) => EntityKey::StyledItem(*i),
21166            StyleContextSelectRef::Surface(i) => EntityKey::Surface(*i),
21167            StyleContextSelectRef::SurfaceCurve(i) => EntityKey::SurfaceCurve(*i),
21168            StyleContextSelectRef::SurfaceOfLinearExtrusion(i) => {
21169                EntityKey::SurfaceOfLinearExtrusion(*i)
21170            }
21171            StyleContextSelectRef::SurfaceOfRevolution(i) => EntityKey::SurfaceOfRevolution(*i),
21172            StyleContextSelectRef::SweptSurface(i) => EntityKey::SweptSurface(*i),
21173            StyleContextSelectRef::SymbolRepresentation(i) => EntityKey::SymbolRepresentation(*i),
21174            StyleContextSelectRef::SymbolTarget(i) => EntityKey::SymbolTarget(*i),
21175            StyleContextSelectRef::TerminatorSymbol(i) => EntityKey::TerminatorSymbol(*i),
21176            StyleContextSelectRef::TessellatedAnnotationOccurrence(i) => {
21177                EntityKey::TessellatedAnnotationOccurrence(*i)
21178            }
21179            StyleContextSelectRef::TessellatedCurveSet(i) => EntityKey::TessellatedCurveSet(*i),
21180            StyleContextSelectRef::TessellatedFace(i) => EntityKey::TessellatedFace(*i),
21181            StyleContextSelectRef::TessellatedGeometricSet(i) => {
21182                EntityKey::TessellatedGeometricSet(*i)
21183            }
21184            StyleContextSelectRef::TessellatedItem(i) => EntityKey::TessellatedItem(*i),
21185            StyleContextSelectRef::TessellatedShapeRepresentation(i) => {
21186                EntityKey::TessellatedShapeRepresentation(*i)
21187            }
21188            StyleContextSelectRef::TessellatedShell(i) => EntityKey::TessellatedShell(*i),
21189            StyleContextSelectRef::TessellatedSolid(i) => EntityKey::TessellatedSolid(*i),
21190            StyleContextSelectRef::TessellatedStructuredItem(i) => {
21191                EntityKey::TessellatedStructuredItem(*i)
21192            }
21193            StyleContextSelectRef::TessellatedSurfaceSet(i) => EntityKey::TessellatedSurfaceSet(*i),
21194            StyleContextSelectRef::TextLiteral(i) => EntityKey::TextLiteral(*i),
21195            StyleContextSelectRef::TopologicalRepresentationItem(i) => {
21196                EntityKey::TopologicalRepresentationItem(*i)
21197            }
21198            StyleContextSelectRef::ToroidalSurface(i) => EntityKey::ToroidalSurface(*i),
21199            StyleContextSelectRef::TrimmedCurve(i) => EntityKey::TrimmedCurve(*i),
21200            StyleContextSelectRef::TwoDirectionRepeatFactor(i) => {
21201                EntityKey::TwoDirectionRepeatFactor(*i)
21202            }
21203            StyleContextSelectRef::UniformCurve(i) => EntityKey::UniformCurve(*i),
21204            StyleContextSelectRef::UniformSurface(i) => EntityKey::UniformSurface(*i),
21205            StyleContextSelectRef::ValueRepresentationItem(i) => {
21206                EntityKey::ValueRepresentationItem(*i)
21207            }
21208            StyleContextSelectRef::Vector(i) => EntityKey::Vector(*i),
21209            StyleContextSelectRef::Vertex(i) => EntityKey::Vertex(*i),
21210            StyleContextSelectRef::VertexLoop(i) => EntityKey::VertexLoop(*i),
21211            StyleContextSelectRef::VertexPoint(i) => EntityKey::VertexPoint(*i),
21212            StyleContextSelectRef::VertexShell(i) => EntityKey::VertexShell(*i),
21213            StyleContextSelectRef::WireShell(i) => EntityKey::WireShell(*i),
21214            StyleContextSelectRef::Complex(i) => EntityKey::ComplexUnit(*i),
21215        }
21216    }
21217}
21218
21219#[derive(Clone, Copy, Debug)]
21220pub enum StyledItemRefView<'m> {
21221    AnnotationCurveOccurrence(&'m AnnotationCurveOccurrence),
21222    AnnotationFillAreaOccurrence(&'m AnnotationFillAreaOccurrence),
21223    AnnotationOccurrence(&'m AnnotationOccurrence),
21224    AnnotationPlaceholderOccurrence(&'m AnnotationPlaceholderOccurrence),
21225    AnnotationPlaceholderOccurrenceWithLeaderLine(
21226        &'m AnnotationPlaceholderOccurrenceWithLeaderLine,
21227    ),
21228    AnnotationPlane(&'m AnnotationPlane),
21229    AnnotationSymbolOccurrence(&'m AnnotationSymbolOccurrence),
21230    AnnotationTextOccurrence(&'m AnnotationTextOccurrence),
21231    ContextDependentOverRidingStyledItem(&'m ContextDependentOverRidingStyledItem),
21232    DraughtingAnnotationOccurrence(&'m DraughtingAnnotationOccurrence),
21233    LeaderCurve(&'m LeaderCurve),
21234    LeaderTerminator(&'m LeaderTerminator),
21235    OverRidingStyledItem(&'m OverRidingStyledItem),
21236    StyledItem(&'m StyledItem),
21237    TerminatorSymbol(&'m TerminatorSymbol),
21238    TessellatedAnnotationOccurrence(&'m TessellatedAnnotationOccurrence),
21239    Complex(&'m ComplexUnit),
21240}
21241impl StyledItemRef {
21242    pub fn resolve<'m>(&self, model: &'m StepModel) -> StyledItemRefView<'m> {
21243        match self {
21244            StyledItemRef::AnnotationCurveOccurrence(i) => {
21245                StyledItemRefView::AnnotationCurveOccurrence(
21246                    model.annotation_curve_occurrence_arena.get(i.0),
21247                )
21248            }
21249            StyledItemRef::AnnotationFillAreaOccurrence(i) => {
21250                StyledItemRefView::AnnotationFillAreaOccurrence(
21251                    model.annotation_fill_area_occurrence_arena.get(i.0),
21252                )
21253            }
21254            StyledItemRef::AnnotationOccurrence(i) => {
21255                StyledItemRefView::AnnotationOccurrence(model.annotation_occurrence_arena.get(i.0))
21256            }
21257            StyledItemRef::AnnotationPlaceholderOccurrence(i) => {
21258                StyledItemRefView::AnnotationPlaceholderOccurrence(
21259                    model.annotation_placeholder_occurrence_arena.get(i.0),
21260                )
21261            }
21262            StyledItemRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => {
21263                StyledItemRefView::AnnotationPlaceholderOccurrenceWithLeaderLine(
21264                    model
21265                        .annotation_placeholder_occurrence_with_leader_line_arena
21266                        .get(i.0),
21267                )
21268            }
21269            StyledItemRef::AnnotationPlane(i) => {
21270                StyledItemRefView::AnnotationPlane(model.annotation_plane_arena.get(i.0))
21271            }
21272            StyledItemRef::AnnotationSymbolOccurrence(i) => {
21273                StyledItemRefView::AnnotationSymbolOccurrence(
21274                    model.annotation_symbol_occurrence_arena.get(i.0),
21275                )
21276            }
21277            StyledItemRef::AnnotationTextOccurrence(i) => {
21278                StyledItemRefView::AnnotationTextOccurrence(
21279                    model.annotation_text_occurrence_arena.get(i.0),
21280                )
21281            }
21282            StyledItemRef::ContextDependentOverRidingStyledItem(i) => {
21283                StyledItemRefView::ContextDependentOverRidingStyledItem(
21284                    model
21285                        .context_dependent_over_riding_styled_item_arena
21286                        .get(i.0),
21287                )
21288            }
21289            StyledItemRef::DraughtingAnnotationOccurrence(i) => {
21290                StyledItemRefView::DraughtingAnnotationOccurrence(
21291                    model.draughting_annotation_occurrence_arena.get(i.0),
21292                )
21293            }
21294            StyledItemRef::LeaderCurve(i) => {
21295                StyledItemRefView::LeaderCurve(model.leader_curve_arena.get(i.0))
21296            }
21297            StyledItemRef::LeaderTerminator(i) => {
21298                StyledItemRefView::LeaderTerminator(model.leader_terminator_arena.get(i.0))
21299            }
21300            StyledItemRef::OverRidingStyledItem(i) => StyledItemRefView::OverRidingStyledItem(
21301                model.over_riding_styled_item_arena.get(i.0),
21302            ),
21303            StyledItemRef::StyledItem(i) => {
21304                StyledItemRefView::StyledItem(model.styled_item_arena.get(i.0))
21305            }
21306            StyledItemRef::TerminatorSymbol(i) => {
21307                StyledItemRefView::TerminatorSymbol(model.terminator_symbol_arena.get(i.0))
21308            }
21309            StyledItemRef::TessellatedAnnotationOccurrence(i) => {
21310                StyledItemRefView::TessellatedAnnotationOccurrence(
21311                    model.tessellated_annotation_occurrence_arena.get(i.0),
21312                )
21313            }
21314            StyledItemRef::Complex(i) => {
21315                StyledItemRefView::Complex(model.complex_unit_arena.get(i.0))
21316            }
21317        }
21318    }
21319    pub fn entity_key(&self) -> EntityKey {
21320        match self {
21321            StyledItemRef::AnnotationCurveOccurrence(i) => EntityKey::AnnotationCurveOccurrence(*i),
21322            StyledItemRef::AnnotationFillAreaOccurrence(i) => {
21323                EntityKey::AnnotationFillAreaOccurrence(*i)
21324            }
21325            StyledItemRef::AnnotationOccurrence(i) => EntityKey::AnnotationOccurrence(*i),
21326            StyledItemRef::AnnotationPlaceholderOccurrence(i) => {
21327                EntityKey::AnnotationPlaceholderOccurrence(*i)
21328            }
21329            StyledItemRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => {
21330                EntityKey::AnnotationPlaceholderOccurrenceWithLeaderLine(*i)
21331            }
21332            StyledItemRef::AnnotationPlane(i) => EntityKey::AnnotationPlane(*i),
21333            StyledItemRef::AnnotationSymbolOccurrence(i) => {
21334                EntityKey::AnnotationSymbolOccurrence(*i)
21335            }
21336            StyledItemRef::AnnotationTextOccurrence(i) => EntityKey::AnnotationTextOccurrence(*i),
21337            StyledItemRef::ContextDependentOverRidingStyledItem(i) => {
21338                EntityKey::ContextDependentOverRidingStyledItem(*i)
21339            }
21340            StyledItemRef::DraughtingAnnotationOccurrence(i) => {
21341                EntityKey::DraughtingAnnotationOccurrence(*i)
21342            }
21343            StyledItemRef::LeaderCurve(i) => EntityKey::LeaderCurve(*i),
21344            StyledItemRef::LeaderTerminator(i) => EntityKey::LeaderTerminator(*i),
21345            StyledItemRef::OverRidingStyledItem(i) => EntityKey::OverRidingStyledItem(*i),
21346            StyledItemRef::StyledItem(i) => EntityKey::StyledItem(*i),
21347            StyledItemRef::TerminatorSymbol(i) => EntityKey::TerminatorSymbol(*i),
21348            StyledItemRef::TessellatedAnnotationOccurrence(i) => {
21349                EntityKey::TessellatedAnnotationOccurrence(*i)
21350            }
21351            StyledItemRef::Complex(i) => EntityKey::ComplexUnit(*i),
21352        }
21353    }
21354}
21355
21356#[derive(Clone, Copy, Debug)]
21357pub enum StyledItemTargetRefView<'m> {
21358    AdvancedBrepShapeRepresentation(&'m AdvancedBrepShapeRepresentation),
21359    AdvancedFace(&'m AdvancedFace),
21360    AnnotationPlaceholderLeaderLine(&'m AnnotationPlaceholderLeaderLine),
21361    AnnotationPlaceholderOccurrence(&'m AnnotationPlaceholderOccurrence),
21362    AnnotationPlaceholderOccurrenceWithLeaderLine(
21363        &'m AnnotationPlaceholderOccurrenceWithLeaderLine,
21364    ),
21365    AnnotationPlane(&'m AnnotationPlane),
21366    AnnotationSymbol(&'m AnnotationSymbol),
21367    AnnotationText(&'m AnnotationText),
21368    AnnotationTextCharacter(&'m AnnotationTextCharacter),
21369    AnnotationToAnnotationLeaderLine(&'m AnnotationToAnnotationLeaderLine),
21370    AnnotationToModelLeaderLine(&'m AnnotationToModelLeaderLine),
21371    ApllPoint(&'m ApllPoint),
21372    ApllPointWithSurface(&'m ApllPointWithSurface),
21373    AuxiliaryLeaderLine(&'m AuxiliaryLeaderLine),
21374    Axis1Placement(&'m Axis1Placement),
21375    Axis2Placement2d(&'m Axis2Placement2d),
21376    Axis2Placement3d(&'m Axis2Placement3d),
21377    BSplineCurve(&'m BSplineCurve),
21378    BSplineCurveWithKnots(&'m BSplineCurveWithKnots),
21379    BSplineSurface(&'m BSplineSurface),
21380    BSplineSurfaceWithKnots(&'m BSplineSurfaceWithKnots),
21381    BezierCurve(&'m BezierCurve),
21382    BezierSurface(&'m BezierSurface),
21383    BoundedCurve(&'m BoundedCurve),
21384    BoundedPcurve(&'m BoundedPcurve),
21385    BoundedSurface(&'m BoundedSurface),
21386    BoundedSurfaceCurve(&'m BoundedSurfaceCurve),
21387    BrepWithVoids(&'m BrepWithVoids),
21388    CameraImage(&'m CameraImage),
21389    CameraImage3dWithScale(&'m CameraImage3dWithScale),
21390    CameraModel(&'m CameraModel),
21391    CameraModelD3(&'m CameraModelD3),
21392    CameraModelD3MultiClipping(&'m CameraModelD3MultiClipping),
21393    CameraModelD3WithHlhsr(&'m CameraModelD3WithHlhsr),
21394    CartesianPoint(&'m CartesianPoint),
21395    CharacterizedRepresentation(&'m CharacterizedRepresentation),
21396    Circle(&'m Circle),
21397    ClosedShell(&'m ClosedShell),
21398    ComplexTriangulatedFace(&'m ComplexTriangulatedFace),
21399    ComplexTriangulatedSurfaceSet(&'m ComplexTriangulatedSurfaceSet),
21400    CompositeCurve(&'m CompositeCurve),
21401    CompositeText(&'m CompositeText),
21402    Conic(&'m Conic),
21403    ConicalSurface(&'m ConicalSurface),
21404    ConnectedFaceSet(&'m ConnectedFaceSet),
21405    ConstructiveGeometryRepresentation(&'m ConstructiveGeometryRepresentation),
21406    CoordinatesList(&'m CoordinatesList),
21407    Curve(&'m Curve),
21408    CylindricalSurface(&'m CylindricalSurface),
21409    DefinedCharacterGlyph(&'m DefinedCharacterGlyph),
21410    DefinedSymbol(&'m DefinedSymbol),
21411    DefinitionalRepresentation(&'m DefinitionalRepresentation),
21412    DegenerateToroidalSurface(&'m DegenerateToroidalSurface),
21413    Direction(&'m Direction),
21414    DraughtingCallout(&'m DraughtingCallout),
21415    DraughtingModel(&'m DraughtingModel),
21416    Edge(&'m Edge),
21417    EdgeCurve(&'m EdgeCurve),
21418    EdgeLoop(&'m EdgeLoop),
21419    ElementarySurface(&'m ElementarySurface),
21420    Ellipse(&'m Ellipse),
21421    ExternallyDefinedHatchStyle(&'m ExternallyDefinedHatchStyle),
21422    ExternallyDefinedTileStyle(&'m ExternallyDefinedTileStyle),
21423    Face(&'m Face),
21424    FaceBound(&'m FaceBound),
21425    FaceOuterBound(&'m FaceOuterBound),
21426    FaceSurface(&'m FaceSurface),
21427    FillAreaStyleHatching(&'m FillAreaStyleHatching),
21428    FillAreaStyleTileColouredRegion(&'m FillAreaStyleTileColouredRegion),
21429    FillAreaStyleTileCurveWithStyle(&'m FillAreaStyleTileCurveWithStyle),
21430    FillAreaStyleTileSymbolWithStyle(&'m FillAreaStyleTileSymbolWithStyle),
21431    FillAreaStyleTiles(&'m FillAreaStyleTiles),
21432    GeometricCurveSet(&'m GeometricCurveSet),
21433    GeometricRepresentationItem(&'m GeometricRepresentationItem),
21434    GeometricSet(&'m GeometricSet),
21435    GeometricallyBoundedSurfaceShapeRepresentation(
21436        &'m GeometricallyBoundedSurfaceShapeRepresentation,
21437    ),
21438    GeometricallyBoundedWireframeShapeRepresentation(
21439        &'m GeometricallyBoundedWireframeShapeRepresentation,
21440    ),
21441    Hyperbola(&'m Hyperbola),
21442    IntersectionCurve(&'m IntersectionCurve),
21443    LeaderDirectedCallout(&'m LeaderDirectedCallout),
21444    Line(&'m Line),
21445    Loop(&'m Loop),
21446    ManifoldSolidBrep(&'m ManifoldSolidBrep),
21447    ManifoldSurfaceShapeRepresentation(&'m ManifoldSurfaceShapeRepresentation),
21448    MappedItem(&'m MappedItem),
21449    MechanicalDesignGeometricPresentationRepresentation(
21450        &'m MechanicalDesignGeometricPresentationRepresentation,
21451    ),
21452    MechanicalDesignPresentationRepresentationWithDraughting(
21453        &'m MechanicalDesignPresentationRepresentationWithDraughting,
21454    ),
21455    MechanicalDesignShadedPresentationRepresentation(
21456        &'m MechanicalDesignShadedPresentationRepresentation,
21457    ),
21458    OffsetSurface(&'m OffsetSurface),
21459    OneDirectionRepeatFactor(&'m OneDirectionRepeatFactor),
21460    OpenShell(&'m OpenShell),
21461    OrientedClosedShell(&'m OrientedClosedShell),
21462    OrientedEdge(&'m OrientedEdge),
21463    Path(&'m Path),
21464    Pcurve(&'m Pcurve),
21465    Placement(&'m Placement),
21466    PlanarBox(&'m PlanarBox),
21467    PlanarExtent(&'m PlanarExtent),
21468    Plane(&'m Plane),
21469    Point(&'m Point),
21470    PolyLoop(&'m PolyLoop),
21471    Polyline(&'m Polyline),
21472    PresentationArea(&'m PresentationArea),
21473    PresentationRepresentation(&'m PresentationRepresentation),
21474    PresentationView(&'m PresentationView),
21475    QuasiUniformCurve(&'m QuasiUniformCurve),
21476    QuasiUniformSurface(&'m QuasiUniformSurface),
21477    RationalBSplineCurve(&'m RationalBSplineCurve),
21478    RationalBSplineSurface(&'m RationalBSplineSurface),
21479    RepositionedTessellatedItem(&'m RepositionedTessellatedItem),
21480    Representation(&'m Representation),
21481    RepresentationReference(&'m RepresentationReference),
21482    SeamCurve(&'m SeamCurve),
21483    ShapeDimensionRepresentation(&'m ShapeDimensionRepresentation),
21484    ShapeRepresentation(&'m ShapeRepresentation),
21485    ShapeRepresentationWithParameters(&'m ShapeRepresentationWithParameters),
21486    ShellBasedSurfaceModel(&'m ShellBasedSurfaceModel),
21487    SolidModel(&'m SolidModel),
21488    SphericalSurface(&'m SphericalSurface),
21489    Surface(&'m Surface),
21490    SurfaceCurve(&'m SurfaceCurve),
21491    SurfaceOfLinearExtrusion(&'m SurfaceOfLinearExtrusion),
21492    SurfaceOfRevolution(&'m SurfaceOfRevolution),
21493    SweptSurface(&'m SweptSurface),
21494    SymbolRepresentation(&'m SymbolRepresentation),
21495    SymbolTarget(&'m SymbolTarget),
21496    TessellatedCurveSet(&'m TessellatedCurveSet),
21497    TessellatedFace(&'m TessellatedFace),
21498    TessellatedGeometricSet(&'m TessellatedGeometricSet),
21499    TessellatedItem(&'m TessellatedItem),
21500    TessellatedShapeRepresentation(&'m TessellatedShapeRepresentation),
21501    TessellatedShell(&'m TessellatedShell),
21502    TessellatedSolid(&'m TessellatedSolid),
21503    TessellatedStructuredItem(&'m TessellatedStructuredItem),
21504    TessellatedSurfaceSet(&'m TessellatedSurfaceSet),
21505    TextLiteral(&'m TextLiteral),
21506    TopologicalRepresentationItem(&'m TopologicalRepresentationItem),
21507    ToroidalSurface(&'m ToroidalSurface),
21508    TrimmedCurve(&'m TrimmedCurve),
21509    TwoDirectionRepeatFactor(&'m TwoDirectionRepeatFactor),
21510    UniformCurve(&'m UniformCurve),
21511    UniformSurface(&'m UniformSurface),
21512    Vector(&'m Vector),
21513    Vertex(&'m Vertex),
21514    VertexLoop(&'m VertexLoop),
21515    VertexPoint(&'m VertexPoint),
21516    VertexShell(&'m VertexShell),
21517    WireShell(&'m WireShell),
21518    Complex(&'m ComplexUnit),
21519}
21520impl StyledItemTargetRef {
21521    pub fn resolve<'m>(&self, model: &'m StepModel) -> StyledItemTargetRefView<'m> {
21522        match self {
21523            StyledItemTargetRef::AdvancedBrepShapeRepresentation(i) => {
21524                StyledItemTargetRefView::AdvancedBrepShapeRepresentation(
21525                    model.advanced_brep_shape_representation_arena.get(i.0),
21526                )
21527            }
21528            StyledItemTargetRef::AdvancedFace(i) => {
21529                StyledItemTargetRefView::AdvancedFace(model.advanced_face_arena.get(i.0))
21530            }
21531            StyledItemTargetRef::AnnotationPlaceholderLeaderLine(i) => {
21532                StyledItemTargetRefView::AnnotationPlaceholderLeaderLine(
21533                    model.annotation_placeholder_leader_line_arena.get(i.0),
21534                )
21535            }
21536            StyledItemTargetRef::AnnotationPlaceholderOccurrence(i) => {
21537                StyledItemTargetRefView::AnnotationPlaceholderOccurrence(
21538                    model.annotation_placeholder_occurrence_arena.get(i.0),
21539                )
21540            }
21541            StyledItemTargetRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => {
21542                StyledItemTargetRefView::AnnotationPlaceholderOccurrenceWithLeaderLine(
21543                    model
21544                        .annotation_placeholder_occurrence_with_leader_line_arena
21545                        .get(i.0),
21546                )
21547            }
21548            StyledItemTargetRef::AnnotationPlane(i) => {
21549                StyledItemTargetRefView::AnnotationPlane(model.annotation_plane_arena.get(i.0))
21550            }
21551            StyledItemTargetRef::AnnotationSymbol(i) => {
21552                StyledItemTargetRefView::AnnotationSymbol(model.annotation_symbol_arena.get(i.0))
21553            }
21554            StyledItemTargetRef::AnnotationText(i) => {
21555                StyledItemTargetRefView::AnnotationText(model.annotation_text_arena.get(i.0))
21556            }
21557            StyledItemTargetRef::AnnotationTextCharacter(i) => {
21558                StyledItemTargetRefView::AnnotationTextCharacter(
21559                    model.annotation_text_character_arena.get(i.0),
21560                )
21561            }
21562            StyledItemTargetRef::AnnotationToAnnotationLeaderLine(i) => {
21563                StyledItemTargetRefView::AnnotationToAnnotationLeaderLine(
21564                    model.annotation_to_annotation_leader_line_arena.get(i.0),
21565                )
21566            }
21567            StyledItemTargetRef::AnnotationToModelLeaderLine(i) => {
21568                StyledItemTargetRefView::AnnotationToModelLeaderLine(
21569                    model.annotation_to_model_leader_line_arena.get(i.0),
21570                )
21571            }
21572            StyledItemTargetRef::ApllPoint(i) => {
21573                StyledItemTargetRefView::ApllPoint(model.apll_point_arena.get(i.0))
21574            }
21575            StyledItemTargetRef::ApllPointWithSurface(i) => {
21576                StyledItemTargetRefView::ApllPointWithSurface(
21577                    model.apll_point_with_surface_arena.get(i.0),
21578                )
21579            }
21580            StyledItemTargetRef::AuxiliaryLeaderLine(i) => {
21581                StyledItemTargetRefView::AuxiliaryLeaderLine(
21582                    model.auxiliary_leader_line_arena.get(i.0),
21583                )
21584            }
21585            StyledItemTargetRef::Axis1Placement(i) => {
21586                StyledItemTargetRefView::Axis1Placement(model.axis1_placement_arena.get(i.0))
21587            }
21588            StyledItemTargetRef::Axis2Placement2d(i) => {
21589                StyledItemTargetRefView::Axis2Placement2d(model.axis2_placement2d_arena.get(i.0))
21590            }
21591            StyledItemTargetRef::Axis2Placement3d(i) => {
21592                StyledItemTargetRefView::Axis2Placement3d(model.axis2_placement3d_arena.get(i.0))
21593            }
21594            StyledItemTargetRef::BSplineCurve(i) => {
21595                StyledItemTargetRefView::BSplineCurve(model.b_spline_curve_arena.get(i.0))
21596            }
21597            StyledItemTargetRef::BSplineCurveWithKnots(i) => {
21598                StyledItemTargetRefView::BSplineCurveWithKnots(
21599                    model.b_spline_curve_with_knots_arena.get(i.0),
21600                )
21601            }
21602            StyledItemTargetRef::BSplineSurface(i) => {
21603                StyledItemTargetRefView::BSplineSurface(model.b_spline_surface_arena.get(i.0))
21604            }
21605            StyledItemTargetRef::BSplineSurfaceWithKnots(i) => {
21606                StyledItemTargetRefView::BSplineSurfaceWithKnots(
21607                    model.b_spline_surface_with_knots_arena.get(i.0),
21608                )
21609            }
21610            StyledItemTargetRef::BezierCurve(i) => {
21611                StyledItemTargetRefView::BezierCurve(model.bezier_curve_arena.get(i.0))
21612            }
21613            StyledItemTargetRef::BezierSurface(i) => {
21614                StyledItemTargetRefView::BezierSurface(model.bezier_surface_arena.get(i.0))
21615            }
21616            StyledItemTargetRef::BoundedCurve(i) => {
21617                StyledItemTargetRefView::BoundedCurve(model.bounded_curve_arena.get(i.0))
21618            }
21619            StyledItemTargetRef::BoundedPcurve(i) => {
21620                StyledItemTargetRefView::BoundedPcurve(model.bounded_pcurve_arena.get(i.0))
21621            }
21622            StyledItemTargetRef::BoundedSurface(i) => {
21623                StyledItemTargetRefView::BoundedSurface(model.bounded_surface_arena.get(i.0))
21624            }
21625            StyledItemTargetRef::BoundedSurfaceCurve(i) => {
21626                StyledItemTargetRefView::BoundedSurfaceCurve(
21627                    model.bounded_surface_curve_arena.get(i.0),
21628                )
21629            }
21630            StyledItemTargetRef::BrepWithVoids(i) => {
21631                StyledItemTargetRefView::BrepWithVoids(model.brep_with_voids_arena.get(i.0))
21632            }
21633            StyledItemTargetRef::CameraImage(i) => {
21634                StyledItemTargetRefView::CameraImage(model.camera_image_arena.get(i.0))
21635            }
21636            StyledItemTargetRef::CameraImage3dWithScale(i) => {
21637                StyledItemTargetRefView::CameraImage3dWithScale(
21638                    model.camera_image3d_with_scale_arena.get(i.0),
21639                )
21640            }
21641            StyledItemTargetRef::CameraModel(i) => {
21642                StyledItemTargetRefView::CameraModel(model.camera_model_arena.get(i.0))
21643            }
21644            StyledItemTargetRef::CameraModelD3(i) => {
21645                StyledItemTargetRefView::CameraModelD3(model.camera_model_d3_arena.get(i.0))
21646            }
21647            StyledItemTargetRef::CameraModelD3MultiClipping(i) => {
21648                StyledItemTargetRefView::CameraModelD3MultiClipping(
21649                    model.camera_model_d3_multi_clipping_arena.get(i.0),
21650                )
21651            }
21652            StyledItemTargetRef::CameraModelD3WithHlhsr(i) => {
21653                StyledItemTargetRefView::CameraModelD3WithHlhsr(
21654                    model.camera_model_d3_with_hlhsr_arena.get(i.0),
21655                )
21656            }
21657            StyledItemTargetRef::CartesianPoint(i) => {
21658                StyledItemTargetRefView::CartesianPoint(model.cartesian_point_arena.get(i.0))
21659            }
21660            StyledItemTargetRef::CharacterizedRepresentation(i) => {
21661                StyledItemTargetRefView::CharacterizedRepresentation(
21662                    model.characterized_representation_arena.get(i.0),
21663                )
21664            }
21665            StyledItemTargetRef::Circle(i) => {
21666                StyledItemTargetRefView::Circle(model.circle_arena.get(i.0))
21667            }
21668            StyledItemTargetRef::ClosedShell(i) => {
21669                StyledItemTargetRefView::ClosedShell(model.closed_shell_arena.get(i.0))
21670            }
21671            StyledItemTargetRef::ComplexTriangulatedFace(i) => {
21672                StyledItemTargetRefView::ComplexTriangulatedFace(
21673                    model.complex_triangulated_face_arena.get(i.0),
21674                )
21675            }
21676            StyledItemTargetRef::ComplexTriangulatedSurfaceSet(i) => {
21677                StyledItemTargetRefView::ComplexTriangulatedSurfaceSet(
21678                    model.complex_triangulated_surface_set_arena.get(i.0),
21679                )
21680            }
21681            StyledItemTargetRef::CompositeCurve(i) => {
21682                StyledItemTargetRefView::CompositeCurve(model.composite_curve_arena.get(i.0))
21683            }
21684            StyledItemTargetRef::CompositeText(i) => {
21685                StyledItemTargetRefView::CompositeText(model.composite_text_arena.get(i.0))
21686            }
21687            StyledItemTargetRef::Conic(i) => {
21688                StyledItemTargetRefView::Conic(model.conic_arena.get(i.0))
21689            }
21690            StyledItemTargetRef::ConicalSurface(i) => {
21691                StyledItemTargetRefView::ConicalSurface(model.conical_surface_arena.get(i.0))
21692            }
21693            StyledItemTargetRef::ConnectedFaceSet(i) => {
21694                StyledItemTargetRefView::ConnectedFaceSet(model.connected_face_set_arena.get(i.0))
21695            }
21696            StyledItemTargetRef::ConstructiveGeometryRepresentation(i) => {
21697                StyledItemTargetRefView::ConstructiveGeometryRepresentation(
21698                    model.constructive_geometry_representation_arena.get(i.0),
21699                )
21700            }
21701            StyledItemTargetRef::CoordinatesList(i) => {
21702                StyledItemTargetRefView::CoordinatesList(model.coordinates_list_arena.get(i.0))
21703            }
21704            StyledItemTargetRef::Curve(i) => {
21705                StyledItemTargetRefView::Curve(model.curve_arena.get(i.0))
21706            }
21707            StyledItemTargetRef::CylindricalSurface(i) => {
21708                StyledItemTargetRefView::CylindricalSurface(
21709                    model.cylindrical_surface_arena.get(i.0),
21710                )
21711            }
21712            StyledItemTargetRef::DefinedCharacterGlyph(i) => {
21713                StyledItemTargetRefView::DefinedCharacterGlyph(
21714                    model.defined_character_glyph_arena.get(i.0),
21715                )
21716            }
21717            StyledItemTargetRef::DefinedSymbol(i) => {
21718                StyledItemTargetRefView::DefinedSymbol(model.defined_symbol_arena.get(i.0))
21719            }
21720            StyledItemTargetRef::DefinitionalRepresentation(i) => {
21721                StyledItemTargetRefView::DefinitionalRepresentation(
21722                    model.definitional_representation_arena.get(i.0),
21723                )
21724            }
21725            StyledItemTargetRef::DegenerateToroidalSurface(i) => {
21726                StyledItemTargetRefView::DegenerateToroidalSurface(
21727                    model.degenerate_toroidal_surface_arena.get(i.0),
21728                )
21729            }
21730            StyledItemTargetRef::Direction(i) => {
21731                StyledItemTargetRefView::Direction(model.direction_arena.get(i.0))
21732            }
21733            StyledItemTargetRef::DraughtingCallout(i) => {
21734                StyledItemTargetRefView::DraughtingCallout(model.draughting_callout_arena.get(i.0))
21735            }
21736            StyledItemTargetRef::DraughtingModel(i) => {
21737                StyledItemTargetRefView::DraughtingModel(model.draughting_model_arena.get(i.0))
21738            }
21739            StyledItemTargetRef::Edge(i) => {
21740                StyledItemTargetRefView::Edge(model.edge_arena.get(i.0))
21741            }
21742            StyledItemTargetRef::EdgeCurve(i) => {
21743                StyledItemTargetRefView::EdgeCurve(model.edge_curve_arena.get(i.0))
21744            }
21745            StyledItemTargetRef::EdgeLoop(i) => {
21746                StyledItemTargetRefView::EdgeLoop(model.edge_loop_arena.get(i.0))
21747            }
21748            StyledItemTargetRef::ElementarySurface(i) => {
21749                StyledItemTargetRefView::ElementarySurface(model.elementary_surface_arena.get(i.0))
21750            }
21751            StyledItemTargetRef::Ellipse(i) => {
21752                StyledItemTargetRefView::Ellipse(model.ellipse_arena.get(i.0))
21753            }
21754            StyledItemTargetRef::ExternallyDefinedHatchStyle(i) => {
21755                StyledItemTargetRefView::ExternallyDefinedHatchStyle(
21756                    model.externally_defined_hatch_style_arena.get(i.0),
21757                )
21758            }
21759            StyledItemTargetRef::ExternallyDefinedTileStyle(i) => {
21760                StyledItemTargetRefView::ExternallyDefinedTileStyle(
21761                    model.externally_defined_tile_style_arena.get(i.0),
21762                )
21763            }
21764            StyledItemTargetRef::Face(i) => {
21765                StyledItemTargetRefView::Face(model.face_arena.get(i.0))
21766            }
21767            StyledItemTargetRef::FaceBound(i) => {
21768                StyledItemTargetRefView::FaceBound(model.face_bound_arena.get(i.0))
21769            }
21770            StyledItemTargetRef::FaceOuterBound(i) => {
21771                StyledItemTargetRefView::FaceOuterBound(model.face_outer_bound_arena.get(i.0))
21772            }
21773            StyledItemTargetRef::FaceSurface(i) => {
21774                StyledItemTargetRefView::FaceSurface(model.face_surface_arena.get(i.0))
21775            }
21776            StyledItemTargetRef::FillAreaStyleHatching(i) => {
21777                StyledItemTargetRefView::FillAreaStyleHatching(
21778                    model.fill_area_style_hatching_arena.get(i.0),
21779                )
21780            }
21781            StyledItemTargetRef::FillAreaStyleTileColouredRegion(i) => {
21782                StyledItemTargetRefView::FillAreaStyleTileColouredRegion(
21783                    model.fill_area_style_tile_coloured_region_arena.get(i.0),
21784                )
21785            }
21786            StyledItemTargetRef::FillAreaStyleTileCurveWithStyle(i) => {
21787                StyledItemTargetRefView::FillAreaStyleTileCurveWithStyle(
21788                    model.fill_area_style_tile_curve_with_style_arena.get(i.0),
21789                )
21790            }
21791            StyledItemTargetRef::FillAreaStyleTileSymbolWithStyle(i) => {
21792                StyledItemTargetRefView::FillAreaStyleTileSymbolWithStyle(
21793                    model.fill_area_style_tile_symbol_with_style_arena.get(i.0),
21794                )
21795            }
21796            StyledItemTargetRef::FillAreaStyleTiles(i) => {
21797                StyledItemTargetRefView::FillAreaStyleTiles(
21798                    model.fill_area_style_tiles_arena.get(i.0),
21799                )
21800            }
21801            StyledItemTargetRef::GeometricCurveSet(i) => {
21802                StyledItemTargetRefView::GeometricCurveSet(model.geometric_curve_set_arena.get(i.0))
21803            }
21804            StyledItemTargetRef::GeometricRepresentationItem(i) => {
21805                StyledItemTargetRefView::GeometricRepresentationItem(
21806                    model.geometric_representation_item_arena.get(i.0),
21807                )
21808            }
21809            StyledItemTargetRef::GeometricSet(i) => {
21810                StyledItemTargetRefView::GeometricSet(model.geometric_set_arena.get(i.0))
21811            }
21812            StyledItemTargetRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => {
21813                StyledItemTargetRefView::GeometricallyBoundedSurfaceShapeRepresentation(
21814                    model
21815                        .geometrically_bounded_surface_shape_representation_arena
21816                        .get(i.0),
21817                )
21818            }
21819            StyledItemTargetRef::GeometricallyBoundedWireframeShapeRepresentation(i) => {
21820                StyledItemTargetRefView::GeometricallyBoundedWireframeShapeRepresentation(
21821                    model
21822                        .geometrically_bounded_wireframe_shape_representation_arena
21823                        .get(i.0),
21824                )
21825            }
21826            StyledItemTargetRef::Hyperbola(i) => {
21827                StyledItemTargetRefView::Hyperbola(model.hyperbola_arena.get(i.0))
21828            }
21829            StyledItemTargetRef::IntersectionCurve(i) => {
21830                StyledItemTargetRefView::IntersectionCurve(model.intersection_curve_arena.get(i.0))
21831            }
21832            StyledItemTargetRef::LeaderDirectedCallout(i) => {
21833                StyledItemTargetRefView::LeaderDirectedCallout(
21834                    model.leader_directed_callout_arena.get(i.0),
21835                )
21836            }
21837            StyledItemTargetRef::Line(i) => {
21838                StyledItemTargetRefView::Line(model.line_arena.get(i.0))
21839            }
21840            StyledItemTargetRef::Loop(i) => {
21841                StyledItemTargetRefView::Loop(model.loop_arena.get(i.0))
21842            }
21843            StyledItemTargetRef::ManifoldSolidBrep(i) => {
21844                StyledItemTargetRefView::ManifoldSolidBrep(model.manifold_solid_brep_arena.get(i.0))
21845            }
21846            StyledItemTargetRef::ManifoldSurfaceShapeRepresentation(i) => {
21847                StyledItemTargetRefView::ManifoldSurfaceShapeRepresentation(
21848                    model.manifold_surface_shape_representation_arena.get(i.0),
21849                )
21850            }
21851            StyledItemTargetRef::MappedItem(i) => {
21852                StyledItemTargetRefView::MappedItem(model.mapped_item_arena.get(i.0))
21853            }
21854            StyledItemTargetRef::MechanicalDesignGeometricPresentationRepresentation(i) => {
21855                StyledItemTargetRefView::MechanicalDesignGeometricPresentationRepresentation(
21856                    model
21857                        .mechanical_design_geometric_presentation_representation_arena
21858                        .get(i.0),
21859                )
21860            }
21861            StyledItemTargetRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => {
21862                StyledItemTargetRefView::MechanicalDesignPresentationRepresentationWithDraughting(
21863                    model
21864                        .mechanical_design_presentation_representation_with_draughting_arena
21865                        .get(i.0),
21866                )
21867            }
21868            StyledItemTargetRef::MechanicalDesignShadedPresentationRepresentation(i) => {
21869                StyledItemTargetRefView::MechanicalDesignShadedPresentationRepresentation(
21870                    model
21871                        .mechanical_design_shaded_presentation_representation_arena
21872                        .get(i.0),
21873                )
21874            }
21875            StyledItemTargetRef::OffsetSurface(i) => {
21876                StyledItemTargetRefView::OffsetSurface(model.offset_surface_arena.get(i.0))
21877            }
21878            StyledItemTargetRef::OneDirectionRepeatFactor(i) => {
21879                StyledItemTargetRefView::OneDirectionRepeatFactor(
21880                    model.one_direction_repeat_factor_arena.get(i.0),
21881                )
21882            }
21883            StyledItemTargetRef::OpenShell(i) => {
21884                StyledItemTargetRefView::OpenShell(model.open_shell_arena.get(i.0))
21885            }
21886            StyledItemTargetRef::OrientedClosedShell(i) => {
21887                StyledItemTargetRefView::OrientedClosedShell(
21888                    model.oriented_closed_shell_arena.get(i.0),
21889                )
21890            }
21891            StyledItemTargetRef::OrientedEdge(i) => {
21892                StyledItemTargetRefView::OrientedEdge(model.oriented_edge_arena.get(i.0))
21893            }
21894            StyledItemTargetRef::Path(i) => {
21895                StyledItemTargetRefView::Path(model.path_arena.get(i.0))
21896            }
21897            StyledItemTargetRef::Pcurve(i) => {
21898                StyledItemTargetRefView::Pcurve(model.pcurve_arena.get(i.0))
21899            }
21900            StyledItemTargetRef::Placement(i) => {
21901                StyledItemTargetRefView::Placement(model.placement_arena.get(i.0))
21902            }
21903            StyledItemTargetRef::PlanarBox(i) => {
21904                StyledItemTargetRefView::PlanarBox(model.planar_box_arena.get(i.0))
21905            }
21906            StyledItemTargetRef::PlanarExtent(i) => {
21907                StyledItemTargetRefView::PlanarExtent(model.planar_extent_arena.get(i.0))
21908            }
21909            StyledItemTargetRef::Plane(i) => {
21910                StyledItemTargetRefView::Plane(model.plane_arena.get(i.0))
21911            }
21912            StyledItemTargetRef::Point(i) => {
21913                StyledItemTargetRefView::Point(model.point_arena.get(i.0))
21914            }
21915            StyledItemTargetRef::PolyLoop(i) => {
21916                StyledItemTargetRefView::PolyLoop(model.poly_loop_arena.get(i.0))
21917            }
21918            StyledItemTargetRef::Polyline(i) => {
21919                StyledItemTargetRefView::Polyline(model.polyline_arena.get(i.0))
21920            }
21921            StyledItemTargetRef::PresentationArea(i) => {
21922                StyledItemTargetRefView::PresentationArea(model.presentation_area_arena.get(i.0))
21923            }
21924            StyledItemTargetRef::PresentationRepresentation(i) => {
21925                StyledItemTargetRefView::PresentationRepresentation(
21926                    model.presentation_representation_arena.get(i.0),
21927                )
21928            }
21929            StyledItemTargetRef::PresentationView(i) => {
21930                StyledItemTargetRefView::PresentationView(model.presentation_view_arena.get(i.0))
21931            }
21932            StyledItemTargetRef::QuasiUniformCurve(i) => {
21933                StyledItemTargetRefView::QuasiUniformCurve(model.quasi_uniform_curve_arena.get(i.0))
21934            }
21935            StyledItemTargetRef::QuasiUniformSurface(i) => {
21936                StyledItemTargetRefView::QuasiUniformSurface(
21937                    model.quasi_uniform_surface_arena.get(i.0),
21938                )
21939            }
21940            StyledItemTargetRef::RationalBSplineCurve(i) => {
21941                StyledItemTargetRefView::RationalBSplineCurve(
21942                    model.rational_b_spline_curve_arena.get(i.0),
21943                )
21944            }
21945            StyledItemTargetRef::RationalBSplineSurface(i) => {
21946                StyledItemTargetRefView::RationalBSplineSurface(
21947                    model.rational_b_spline_surface_arena.get(i.0),
21948                )
21949            }
21950            StyledItemTargetRef::RepositionedTessellatedItem(i) => {
21951                StyledItemTargetRefView::RepositionedTessellatedItem(
21952                    model.repositioned_tessellated_item_arena.get(i.0),
21953                )
21954            }
21955            StyledItemTargetRef::Representation(i) => {
21956                StyledItemTargetRefView::Representation(model.representation_arena.get(i.0))
21957            }
21958            StyledItemTargetRef::RepresentationReference(i) => {
21959                StyledItemTargetRefView::RepresentationReference(
21960                    model.representation_reference_arena.get(i.0),
21961                )
21962            }
21963            StyledItemTargetRef::SeamCurve(i) => {
21964                StyledItemTargetRefView::SeamCurve(model.seam_curve_arena.get(i.0))
21965            }
21966            StyledItemTargetRef::ShapeDimensionRepresentation(i) => {
21967                StyledItemTargetRefView::ShapeDimensionRepresentation(
21968                    model.shape_dimension_representation_arena.get(i.0),
21969                )
21970            }
21971            StyledItemTargetRef::ShapeRepresentation(i) => {
21972                StyledItemTargetRefView::ShapeRepresentation(
21973                    model.shape_representation_arena.get(i.0),
21974                )
21975            }
21976            StyledItemTargetRef::ShapeRepresentationWithParameters(i) => {
21977                StyledItemTargetRefView::ShapeRepresentationWithParameters(
21978                    model.shape_representation_with_parameters_arena.get(i.0),
21979                )
21980            }
21981            StyledItemTargetRef::ShellBasedSurfaceModel(i) => {
21982                StyledItemTargetRefView::ShellBasedSurfaceModel(
21983                    model.shell_based_surface_model_arena.get(i.0),
21984                )
21985            }
21986            StyledItemTargetRef::SolidModel(i) => {
21987                StyledItemTargetRefView::SolidModel(model.solid_model_arena.get(i.0))
21988            }
21989            StyledItemTargetRef::SphericalSurface(i) => {
21990                StyledItemTargetRefView::SphericalSurface(model.spherical_surface_arena.get(i.0))
21991            }
21992            StyledItemTargetRef::Surface(i) => {
21993                StyledItemTargetRefView::Surface(model.surface_arena.get(i.0))
21994            }
21995            StyledItemTargetRef::SurfaceCurve(i) => {
21996                StyledItemTargetRefView::SurfaceCurve(model.surface_curve_arena.get(i.0))
21997            }
21998            StyledItemTargetRef::SurfaceOfLinearExtrusion(i) => {
21999                StyledItemTargetRefView::SurfaceOfLinearExtrusion(
22000                    model.surface_of_linear_extrusion_arena.get(i.0),
22001                )
22002            }
22003            StyledItemTargetRef::SurfaceOfRevolution(i) => {
22004                StyledItemTargetRefView::SurfaceOfRevolution(
22005                    model.surface_of_revolution_arena.get(i.0),
22006                )
22007            }
22008            StyledItemTargetRef::SweptSurface(i) => {
22009                StyledItemTargetRefView::SweptSurface(model.swept_surface_arena.get(i.0))
22010            }
22011            StyledItemTargetRef::SymbolRepresentation(i) => {
22012                StyledItemTargetRefView::SymbolRepresentation(
22013                    model.symbol_representation_arena.get(i.0),
22014                )
22015            }
22016            StyledItemTargetRef::SymbolTarget(i) => {
22017                StyledItemTargetRefView::SymbolTarget(model.symbol_target_arena.get(i.0))
22018            }
22019            StyledItemTargetRef::TessellatedCurveSet(i) => {
22020                StyledItemTargetRefView::TessellatedCurveSet(
22021                    model.tessellated_curve_set_arena.get(i.0),
22022                )
22023            }
22024            StyledItemTargetRef::TessellatedFace(i) => {
22025                StyledItemTargetRefView::TessellatedFace(model.tessellated_face_arena.get(i.0))
22026            }
22027            StyledItemTargetRef::TessellatedGeometricSet(i) => {
22028                StyledItemTargetRefView::TessellatedGeometricSet(
22029                    model.tessellated_geometric_set_arena.get(i.0),
22030                )
22031            }
22032            StyledItemTargetRef::TessellatedItem(i) => {
22033                StyledItemTargetRefView::TessellatedItem(model.tessellated_item_arena.get(i.0))
22034            }
22035            StyledItemTargetRef::TessellatedShapeRepresentation(i) => {
22036                StyledItemTargetRefView::TessellatedShapeRepresentation(
22037                    model.tessellated_shape_representation_arena.get(i.0),
22038                )
22039            }
22040            StyledItemTargetRef::TessellatedShell(i) => {
22041                StyledItemTargetRefView::TessellatedShell(model.tessellated_shell_arena.get(i.0))
22042            }
22043            StyledItemTargetRef::TessellatedSolid(i) => {
22044                StyledItemTargetRefView::TessellatedSolid(model.tessellated_solid_arena.get(i.0))
22045            }
22046            StyledItemTargetRef::TessellatedStructuredItem(i) => {
22047                StyledItemTargetRefView::TessellatedStructuredItem(
22048                    model.tessellated_structured_item_arena.get(i.0),
22049                )
22050            }
22051            StyledItemTargetRef::TessellatedSurfaceSet(i) => {
22052                StyledItemTargetRefView::TessellatedSurfaceSet(
22053                    model.tessellated_surface_set_arena.get(i.0),
22054                )
22055            }
22056            StyledItemTargetRef::TextLiteral(i) => {
22057                StyledItemTargetRefView::TextLiteral(model.text_literal_arena.get(i.0))
22058            }
22059            StyledItemTargetRef::TopologicalRepresentationItem(i) => {
22060                StyledItemTargetRefView::TopologicalRepresentationItem(
22061                    model.topological_representation_item_arena.get(i.0),
22062                )
22063            }
22064            StyledItemTargetRef::ToroidalSurface(i) => {
22065                StyledItemTargetRefView::ToroidalSurface(model.toroidal_surface_arena.get(i.0))
22066            }
22067            StyledItemTargetRef::TrimmedCurve(i) => {
22068                StyledItemTargetRefView::TrimmedCurve(model.trimmed_curve_arena.get(i.0))
22069            }
22070            StyledItemTargetRef::TwoDirectionRepeatFactor(i) => {
22071                StyledItemTargetRefView::TwoDirectionRepeatFactor(
22072                    model.two_direction_repeat_factor_arena.get(i.0),
22073                )
22074            }
22075            StyledItemTargetRef::UniformCurve(i) => {
22076                StyledItemTargetRefView::UniformCurve(model.uniform_curve_arena.get(i.0))
22077            }
22078            StyledItemTargetRef::UniformSurface(i) => {
22079                StyledItemTargetRefView::UniformSurface(model.uniform_surface_arena.get(i.0))
22080            }
22081            StyledItemTargetRef::Vector(i) => {
22082                StyledItemTargetRefView::Vector(model.vector_arena.get(i.0))
22083            }
22084            StyledItemTargetRef::Vertex(i) => {
22085                StyledItemTargetRefView::Vertex(model.vertex_arena.get(i.0))
22086            }
22087            StyledItemTargetRef::VertexLoop(i) => {
22088                StyledItemTargetRefView::VertexLoop(model.vertex_loop_arena.get(i.0))
22089            }
22090            StyledItemTargetRef::VertexPoint(i) => {
22091                StyledItemTargetRefView::VertexPoint(model.vertex_point_arena.get(i.0))
22092            }
22093            StyledItemTargetRef::VertexShell(i) => {
22094                StyledItemTargetRefView::VertexShell(model.vertex_shell_arena.get(i.0))
22095            }
22096            StyledItemTargetRef::WireShell(i) => {
22097                StyledItemTargetRefView::WireShell(model.wire_shell_arena.get(i.0))
22098            }
22099            StyledItemTargetRef::Complex(i) => {
22100                StyledItemTargetRefView::Complex(model.complex_unit_arena.get(i.0))
22101            }
22102        }
22103    }
22104    pub fn entity_key(&self) -> EntityKey {
22105        match self {
22106            StyledItemTargetRef::AdvancedBrepShapeRepresentation(i) => {
22107                EntityKey::AdvancedBrepShapeRepresentation(*i)
22108            }
22109            StyledItemTargetRef::AdvancedFace(i) => EntityKey::AdvancedFace(*i),
22110            StyledItemTargetRef::AnnotationPlaceholderLeaderLine(i) => {
22111                EntityKey::AnnotationPlaceholderLeaderLine(*i)
22112            }
22113            StyledItemTargetRef::AnnotationPlaceholderOccurrence(i) => {
22114                EntityKey::AnnotationPlaceholderOccurrence(*i)
22115            }
22116            StyledItemTargetRef::AnnotationPlaceholderOccurrenceWithLeaderLine(i) => {
22117                EntityKey::AnnotationPlaceholderOccurrenceWithLeaderLine(*i)
22118            }
22119            StyledItemTargetRef::AnnotationPlane(i) => EntityKey::AnnotationPlane(*i),
22120            StyledItemTargetRef::AnnotationSymbol(i) => EntityKey::AnnotationSymbol(*i),
22121            StyledItemTargetRef::AnnotationText(i) => EntityKey::AnnotationText(*i),
22122            StyledItemTargetRef::AnnotationTextCharacter(i) => {
22123                EntityKey::AnnotationTextCharacter(*i)
22124            }
22125            StyledItemTargetRef::AnnotationToAnnotationLeaderLine(i) => {
22126                EntityKey::AnnotationToAnnotationLeaderLine(*i)
22127            }
22128            StyledItemTargetRef::AnnotationToModelLeaderLine(i) => {
22129                EntityKey::AnnotationToModelLeaderLine(*i)
22130            }
22131            StyledItemTargetRef::ApllPoint(i) => EntityKey::ApllPoint(*i),
22132            StyledItemTargetRef::ApllPointWithSurface(i) => EntityKey::ApllPointWithSurface(*i),
22133            StyledItemTargetRef::AuxiliaryLeaderLine(i) => EntityKey::AuxiliaryLeaderLine(*i),
22134            StyledItemTargetRef::Axis1Placement(i) => EntityKey::Axis1Placement(*i),
22135            StyledItemTargetRef::Axis2Placement2d(i) => EntityKey::Axis2Placement2d(*i),
22136            StyledItemTargetRef::Axis2Placement3d(i) => EntityKey::Axis2Placement3d(*i),
22137            StyledItemTargetRef::BSplineCurve(i) => EntityKey::BSplineCurve(*i),
22138            StyledItemTargetRef::BSplineCurveWithKnots(i) => EntityKey::BSplineCurveWithKnots(*i),
22139            StyledItemTargetRef::BSplineSurface(i) => EntityKey::BSplineSurface(*i),
22140            StyledItemTargetRef::BSplineSurfaceWithKnots(i) => {
22141                EntityKey::BSplineSurfaceWithKnots(*i)
22142            }
22143            StyledItemTargetRef::BezierCurve(i) => EntityKey::BezierCurve(*i),
22144            StyledItemTargetRef::BezierSurface(i) => EntityKey::BezierSurface(*i),
22145            StyledItemTargetRef::BoundedCurve(i) => EntityKey::BoundedCurve(*i),
22146            StyledItemTargetRef::BoundedPcurve(i) => EntityKey::BoundedPcurve(*i),
22147            StyledItemTargetRef::BoundedSurface(i) => EntityKey::BoundedSurface(*i),
22148            StyledItemTargetRef::BoundedSurfaceCurve(i) => EntityKey::BoundedSurfaceCurve(*i),
22149            StyledItemTargetRef::BrepWithVoids(i) => EntityKey::BrepWithVoids(*i),
22150            StyledItemTargetRef::CameraImage(i) => EntityKey::CameraImage(*i),
22151            StyledItemTargetRef::CameraImage3dWithScale(i) => EntityKey::CameraImage3dWithScale(*i),
22152            StyledItemTargetRef::CameraModel(i) => EntityKey::CameraModel(*i),
22153            StyledItemTargetRef::CameraModelD3(i) => EntityKey::CameraModelD3(*i),
22154            StyledItemTargetRef::CameraModelD3MultiClipping(i) => {
22155                EntityKey::CameraModelD3MultiClipping(*i)
22156            }
22157            StyledItemTargetRef::CameraModelD3WithHlhsr(i) => EntityKey::CameraModelD3WithHlhsr(*i),
22158            StyledItemTargetRef::CartesianPoint(i) => EntityKey::CartesianPoint(*i),
22159            StyledItemTargetRef::CharacterizedRepresentation(i) => {
22160                EntityKey::CharacterizedRepresentation(*i)
22161            }
22162            StyledItemTargetRef::Circle(i) => EntityKey::Circle(*i),
22163            StyledItemTargetRef::ClosedShell(i) => EntityKey::ClosedShell(*i),
22164            StyledItemTargetRef::ComplexTriangulatedFace(i) => {
22165                EntityKey::ComplexTriangulatedFace(*i)
22166            }
22167            StyledItemTargetRef::ComplexTriangulatedSurfaceSet(i) => {
22168                EntityKey::ComplexTriangulatedSurfaceSet(*i)
22169            }
22170            StyledItemTargetRef::CompositeCurve(i) => EntityKey::CompositeCurve(*i),
22171            StyledItemTargetRef::CompositeText(i) => EntityKey::CompositeText(*i),
22172            StyledItemTargetRef::Conic(i) => EntityKey::Conic(*i),
22173            StyledItemTargetRef::ConicalSurface(i) => EntityKey::ConicalSurface(*i),
22174            StyledItemTargetRef::ConnectedFaceSet(i) => EntityKey::ConnectedFaceSet(*i),
22175            StyledItemTargetRef::ConstructiveGeometryRepresentation(i) => {
22176                EntityKey::ConstructiveGeometryRepresentation(*i)
22177            }
22178            StyledItemTargetRef::CoordinatesList(i) => EntityKey::CoordinatesList(*i),
22179            StyledItemTargetRef::Curve(i) => EntityKey::Curve(*i),
22180            StyledItemTargetRef::CylindricalSurface(i) => EntityKey::CylindricalSurface(*i),
22181            StyledItemTargetRef::DefinedCharacterGlyph(i) => EntityKey::DefinedCharacterGlyph(*i),
22182            StyledItemTargetRef::DefinedSymbol(i) => EntityKey::DefinedSymbol(*i),
22183            StyledItemTargetRef::DefinitionalRepresentation(i) => {
22184                EntityKey::DefinitionalRepresentation(*i)
22185            }
22186            StyledItemTargetRef::DegenerateToroidalSurface(i) => {
22187                EntityKey::DegenerateToroidalSurface(*i)
22188            }
22189            StyledItemTargetRef::Direction(i) => EntityKey::Direction(*i),
22190            StyledItemTargetRef::DraughtingCallout(i) => EntityKey::DraughtingCallout(*i),
22191            StyledItemTargetRef::DraughtingModel(i) => EntityKey::DraughtingModel(*i),
22192            StyledItemTargetRef::Edge(i) => EntityKey::Edge(*i),
22193            StyledItemTargetRef::EdgeCurve(i) => EntityKey::EdgeCurve(*i),
22194            StyledItemTargetRef::EdgeLoop(i) => EntityKey::EdgeLoop(*i),
22195            StyledItemTargetRef::ElementarySurface(i) => EntityKey::ElementarySurface(*i),
22196            StyledItemTargetRef::Ellipse(i) => EntityKey::Ellipse(*i),
22197            StyledItemTargetRef::ExternallyDefinedHatchStyle(i) => {
22198                EntityKey::ExternallyDefinedHatchStyle(*i)
22199            }
22200            StyledItemTargetRef::ExternallyDefinedTileStyle(i) => {
22201                EntityKey::ExternallyDefinedTileStyle(*i)
22202            }
22203            StyledItemTargetRef::Face(i) => EntityKey::Face(*i),
22204            StyledItemTargetRef::FaceBound(i) => EntityKey::FaceBound(*i),
22205            StyledItemTargetRef::FaceOuterBound(i) => EntityKey::FaceOuterBound(*i),
22206            StyledItemTargetRef::FaceSurface(i) => EntityKey::FaceSurface(*i),
22207            StyledItemTargetRef::FillAreaStyleHatching(i) => EntityKey::FillAreaStyleHatching(*i),
22208            StyledItemTargetRef::FillAreaStyleTileColouredRegion(i) => {
22209                EntityKey::FillAreaStyleTileColouredRegion(*i)
22210            }
22211            StyledItemTargetRef::FillAreaStyleTileCurveWithStyle(i) => {
22212                EntityKey::FillAreaStyleTileCurveWithStyle(*i)
22213            }
22214            StyledItemTargetRef::FillAreaStyleTileSymbolWithStyle(i) => {
22215                EntityKey::FillAreaStyleTileSymbolWithStyle(*i)
22216            }
22217            StyledItemTargetRef::FillAreaStyleTiles(i) => EntityKey::FillAreaStyleTiles(*i),
22218            StyledItemTargetRef::GeometricCurveSet(i) => EntityKey::GeometricCurveSet(*i),
22219            StyledItemTargetRef::GeometricRepresentationItem(i) => {
22220                EntityKey::GeometricRepresentationItem(*i)
22221            }
22222            StyledItemTargetRef::GeometricSet(i) => EntityKey::GeometricSet(*i),
22223            StyledItemTargetRef::GeometricallyBoundedSurfaceShapeRepresentation(i) => {
22224                EntityKey::GeometricallyBoundedSurfaceShapeRepresentation(*i)
22225            }
22226            StyledItemTargetRef::GeometricallyBoundedWireframeShapeRepresentation(i) => {
22227                EntityKey::GeometricallyBoundedWireframeShapeRepresentation(*i)
22228            }
22229            StyledItemTargetRef::Hyperbola(i) => EntityKey::Hyperbola(*i),
22230            StyledItemTargetRef::IntersectionCurve(i) => EntityKey::IntersectionCurve(*i),
22231            StyledItemTargetRef::LeaderDirectedCallout(i) => EntityKey::LeaderDirectedCallout(*i),
22232            StyledItemTargetRef::Line(i) => EntityKey::Line(*i),
22233            StyledItemTargetRef::Loop(i) => EntityKey::Loop(*i),
22234            StyledItemTargetRef::ManifoldSolidBrep(i) => EntityKey::ManifoldSolidBrep(*i),
22235            StyledItemTargetRef::ManifoldSurfaceShapeRepresentation(i) => {
22236                EntityKey::ManifoldSurfaceShapeRepresentation(*i)
22237            }
22238            StyledItemTargetRef::MappedItem(i) => EntityKey::MappedItem(*i),
22239            StyledItemTargetRef::MechanicalDesignGeometricPresentationRepresentation(i) => {
22240                EntityKey::MechanicalDesignGeometricPresentationRepresentation(*i)
22241            }
22242            StyledItemTargetRef::MechanicalDesignPresentationRepresentationWithDraughting(i) => {
22243                EntityKey::MechanicalDesignPresentationRepresentationWithDraughting(*i)
22244            }
22245            StyledItemTargetRef::MechanicalDesignShadedPresentationRepresentation(i) => {
22246                EntityKey::MechanicalDesignShadedPresentationRepresentation(*i)
22247            }
22248            StyledItemTargetRef::OffsetSurface(i) => EntityKey::OffsetSurface(*i),
22249            StyledItemTargetRef::OneDirectionRepeatFactor(i) => {
22250                EntityKey::OneDirectionRepeatFactor(*i)
22251            }
22252            StyledItemTargetRef::OpenShell(i) => EntityKey::OpenShell(*i),
22253            StyledItemTargetRef::OrientedClosedShell(i) => EntityKey::OrientedClosedShell(*i),
22254            StyledItemTargetRef::OrientedEdge(i) => EntityKey::OrientedEdge(*i),
22255            StyledItemTargetRef::Path(i) => EntityKey::Path(*i),
22256            StyledItemTargetRef::Pcurve(i) => EntityKey::Pcurve(*i),
22257            StyledItemTargetRef::Placement(i) => EntityKey::Placement(*i),
22258            StyledItemTargetRef::PlanarBox(i) => EntityKey::PlanarBox(*i),
22259            StyledItemTargetRef::PlanarExtent(i) => EntityKey::PlanarExtent(*i),
22260            StyledItemTargetRef::Plane(i) => EntityKey::Plane(*i),
22261            StyledItemTargetRef::Point(i) => EntityKey::Point(*i),
22262            StyledItemTargetRef::PolyLoop(i) => EntityKey::PolyLoop(*i),
22263            StyledItemTargetRef::Polyline(i) => EntityKey::Polyline(*i),
22264            StyledItemTargetRef::PresentationArea(i) => EntityKey::PresentationArea(*i),
22265            StyledItemTargetRef::PresentationRepresentation(i) => {
22266                EntityKey::PresentationRepresentation(*i)
22267            }
22268            StyledItemTargetRef::PresentationView(i) => EntityKey::PresentationView(*i),
22269            StyledItemTargetRef::QuasiUniformCurve(i) => EntityKey::QuasiUniformCurve(*i),
22270            StyledItemTargetRef::QuasiUniformSurface(i) => EntityKey::QuasiUniformSurface(*i),
22271            StyledItemTargetRef::RationalBSplineCurve(i) => EntityKey::RationalBSplineCurve(*i),
22272            StyledItemTargetRef::RationalBSplineSurface(i) => EntityKey::RationalBSplineSurface(*i),
22273            StyledItemTargetRef::RepositionedTessellatedItem(i) => {
22274                EntityKey::RepositionedTessellatedItem(*i)
22275            }
22276            StyledItemTargetRef::Representation(i) => EntityKey::Representation(*i),
22277            StyledItemTargetRef::RepresentationReference(i) => {
22278                EntityKey::RepresentationReference(*i)
22279            }
22280            StyledItemTargetRef::SeamCurve(i) => EntityKey::SeamCurve(*i),
22281            StyledItemTargetRef::ShapeDimensionRepresentation(i) => {
22282                EntityKey::ShapeDimensionRepresentation(*i)
22283            }
22284            StyledItemTargetRef::ShapeRepresentation(i) => EntityKey::ShapeRepresentation(*i),
22285            StyledItemTargetRef::ShapeRepresentationWithParameters(i) => {
22286                EntityKey::ShapeRepresentationWithParameters(*i)
22287            }
22288            StyledItemTargetRef::ShellBasedSurfaceModel(i) => EntityKey::ShellBasedSurfaceModel(*i),
22289            StyledItemTargetRef::SolidModel(i) => EntityKey::SolidModel(*i),
22290            StyledItemTargetRef::SphericalSurface(i) => EntityKey::SphericalSurface(*i),
22291            StyledItemTargetRef::Surface(i) => EntityKey::Surface(*i),
22292            StyledItemTargetRef::SurfaceCurve(i) => EntityKey::SurfaceCurve(*i),
22293            StyledItemTargetRef::SurfaceOfLinearExtrusion(i) => {
22294                EntityKey::SurfaceOfLinearExtrusion(*i)
22295            }
22296            StyledItemTargetRef::SurfaceOfRevolution(i) => EntityKey::SurfaceOfRevolution(*i),
22297            StyledItemTargetRef::SweptSurface(i) => EntityKey::SweptSurface(*i),
22298            StyledItemTargetRef::SymbolRepresentation(i) => EntityKey::SymbolRepresentation(*i),
22299            StyledItemTargetRef::SymbolTarget(i) => EntityKey::SymbolTarget(*i),
22300            StyledItemTargetRef::TessellatedCurveSet(i) => EntityKey::TessellatedCurveSet(*i),
22301            StyledItemTargetRef::TessellatedFace(i) => EntityKey::TessellatedFace(*i),
22302            StyledItemTargetRef::TessellatedGeometricSet(i) => {
22303                EntityKey::TessellatedGeometricSet(*i)
22304            }
22305            StyledItemTargetRef::TessellatedItem(i) => EntityKey::TessellatedItem(*i),
22306            StyledItemTargetRef::TessellatedShapeRepresentation(i) => {
22307                EntityKey::TessellatedShapeRepresentation(*i)
22308            }
22309            StyledItemTargetRef::TessellatedShell(i) => EntityKey::TessellatedShell(*i),
22310            StyledItemTargetRef::TessellatedSolid(i) => EntityKey::TessellatedSolid(*i),
22311            StyledItemTargetRef::TessellatedStructuredItem(i) => {
22312                EntityKey::TessellatedStructuredItem(*i)
22313            }
22314            StyledItemTargetRef::TessellatedSurfaceSet(i) => EntityKey::TessellatedSurfaceSet(*i),
22315            StyledItemTargetRef::TextLiteral(i) => EntityKey::TextLiteral(*i),
22316            StyledItemTargetRef::TopologicalRepresentationItem(i) => {
22317                EntityKey::TopologicalRepresentationItem(*i)
22318            }
22319            StyledItemTargetRef::ToroidalSurface(i) => EntityKey::ToroidalSurface(*i),
22320            StyledItemTargetRef::TrimmedCurve(i) => EntityKey::TrimmedCurve(*i),
22321            StyledItemTargetRef::TwoDirectionRepeatFactor(i) => {
22322                EntityKey::TwoDirectionRepeatFactor(*i)
22323            }
22324            StyledItemTargetRef::UniformCurve(i) => EntityKey::UniformCurve(*i),
22325            StyledItemTargetRef::UniformSurface(i) => EntityKey::UniformSurface(*i),
22326            StyledItemTargetRef::Vector(i) => EntityKey::Vector(*i),
22327            StyledItemTargetRef::Vertex(i) => EntityKey::Vertex(*i),
22328            StyledItemTargetRef::VertexLoop(i) => EntityKey::VertexLoop(*i),
22329            StyledItemTargetRef::VertexPoint(i) => EntityKey::VertexPoint(*i),
22330            StyledItemTargetRef::VertexShell(i) => EntityKey::VertexShell(*i),
22331            StyledItemTargetRef::WireShell(i) => EntityKey::WireShell(*i),
22332            StyledItemTargetRef::Complex(i) => EntityKey::ComplexUnit(*i),
22333        }
22334    }
22335}
22336
22337#[derive(Clone, Copy, Debug)]
22338pub enum SupportedItemRefView<'m> {
22339    Action(&'m Action),
22340    ActionDirective(&'m ActionDirective),
22341    ActionMethod(&'m ActionMethod),
22342    Complex(&'m ComplexUnit),
22343}
22344impl SupportedItemRef {
22345    pub fn resolve<'m>(&self, model: &'m StepModel) -> SupportedItemRefView<'m> {
22346        match self {
22347            SupportedItemRef::Action(i) => {
22348                SupportedItemRefView::Action(model.action_arena.get(i.0))
22349            }
22350            SupportedItemRef::ActionDirective(i) => {
22351                SupportedItemRefView::ActionDirective(model.action_directive_arena.get(i.0))
22352            }
22353            SupportedItemRef::ActionMethod(i) => {
22354                SupportedItemRefView::ActionMethod(model.action_method_arena.get(i.0))
22355            }
22356            SupportedItemRef::Complex(i) => {
22357                SupportedItemRefView::Complex(model.complex_unit_arena.get(i.0))
22358            }
22359        }
22360    }
22361    pub fn entity_key(&self) -> EntityKey {
22362        match self {
22363            SupportedItemRef::Action(i) => EntityKey::Action(*i),
22364            SupportedItemRef::ActionDirective(i) => EntityKey::ActionDirective(*i),
22365            SupportedItemRef::ActionMethod(i) => EntityKey::ActionMethod(*i),
22366            SupportedItemRef::Complex(i) => EntityKey::ComplexUnit(*i),
22367        }
22368    }
22369}
22370
22371#[derive(Clone, Copy, Debug)]
22372pub enum SurfaceRefView<'m> {
22373    BSplineSurface(&'m BSplineSurface),
22374    BSplineSurfaceWithKnots(&'m BSplineSurfaceWithKnots),
22375    BezierSurface(&'m BezierSurface),
22376    BoundedSurface(&'m BoundedSurface),
22377    ConicalSurface(&'m ConicalSurface),
22378    CylindricalSurface(&'m CylindricalSurface),
22379    DegenerateToroidalSurface(&'m DegenerateToroidalSurface),
22380    ElementarySurface(&'m ElementarySurface),
22381    OffsetSurface(&'m OffsetSurface),
22382    Plane(&'m Plane),
22383    QuasiUniformSurface(&'m QuasiUniformSurface),
22384    RationalBSplineSurface(&'m RationalBSplineSurface),
22385    SphericalSurface(&'m SphericalSurface),
22386    Surface(&'m Surface),
22387    SurfaceOfLinearExtrusion(&'m SurfaceOfLinearExtrusion),
22388    SurfaceOfRevolution(&'m SurfaceOfRevolution),
22389    SweptSurface(&'m SweptSurface),
22390    ToroidalSurface(&'m ToroidalSurface),
22391    UniformSurface(&'m UniformSurface),
22392    Complex(&'m ComplexUnit),
22393}
22394impl SurfaceRef {
22395    pub fn resolve<'m>(&self, model: &'m StepModel) -> SurfaceRefView<'m> {
22396        match self {
22397            SurfaceRef::BSplineSurface(i) => {
22398                SurfaceRefView::BSplineSurface(model.b_spline_surface_arena.get(i.0))
22399            }
22400            SurfaceRef::BSplineSurfaceWithKnots(i) => SurfaceRefView::BSplineSurfaceWithKnots(
22401                model.b_spline_surface_with_knots_arena.get(i.0),
22402            ),
22403            SurfaceRef::BezierSurface(i) => {
22404                SurfaceRefView::BezierSurface(model.bezier_surface_arena.get(i.0))
22405            }
22406            SurfaceRef::BoundedSurface(i) => {
22407                SurfaceRefView::BoundedSurface(model.bounded_surface_arena.get(i.0))
22408            }
22409            SurfaceRef::ConicalSurface(i) => {
22410                SurfaceRefView::ConicalSurface(model.conical_surface_arena.get(i.0))
22411            }
22412            SurfaceRef::CylindricalSurface(i) => {
22413                SurfaceRefView::CylindricalSurface(model.cylindrical_surface_arena.get(i.0))
22414            }
22415            SurfaceRef::DegenerateToroidalSurface(i) => SurfaceRefView::DegenerateToroidalSurface(
22416                model.degenerate_toroidal_surface_arena.get(i.0),
22417            ),
22418            SurfaceRef::ElementarySurface(i) => {
22419                SurfaceRefView::ElementarySurface(model.elementary_surface_arena.get(i.0))
22420            }
22421            SurfaceRef::OffsetSurface(i) => {
22422                SurfaceRefView::OffsetSurface(model.offset_surface_arena.get(i.0))
22423            }
22424            SurfaceRef::Plane(i) => SurfaceRefView::Plane(model.plane_arena.get(i.0)),
22425            SurfaceRef::QuasiUniformSurface(i) => {
22426                SurfaceRefView::QuasiUniformSurface(model.quasi_uniform_surface_arena.get(i.0))
22427            }
22428            SurfaceRef::RationalBSplineSurface(i) => SurfaceRefView::RationalBSplineSurface(
22429                model.rational_b_spline_surface_arena.get(i.0),
22430            ),
22431            SurfaceRef::SphericalSurface(i) => {
22432                SurfaceRefView::SphericalSurface(model.spherical_surface_arena.get(i.0))
22433            }
22434            SurfaceRef::Surface(i) => SurfaceRefView::Surface(model.surface_arena.get(i.0)),
22435            SurfaceRef::SurfaceOfLinearExtrusion(i) => SurfaceRefView::SurfaceOfLinearExtrusion(
22436                model.surface_of_linear_extrusion_arena.get(i.0),
22437            ),
22438            SurfaceRef::SurfaceOfRevolution(i) => {
22439                SurfaceRefView::SurfaceOfRevolution(model.surface_of_revolution_arena.get(i.0))
22440            }
22441            SurfaceRef::SweptSurface(i) => {
22442                SurfaceRefView::SweptSurface(model.swept_surface_arena.get(i.0))
22443            }
22444            SurfaceRef::ToroidalSurface(i) => {
22445                SurfaceRefView::ToroidalSurface(model.toroidal_surface_arena.get(i.0))
22446            }
22447            SurfaceRef::UniformSurface(i) => {
22448                SurfaceRefView::UniformSurface(model.uniform_surface_arena.get(i.0))
22449            }
22450            SurfaceRef::Complex(i) => SurfaceRefView::Complex(model.complex_unit_arena.get(i.0)),
22451        }
22452    }
22453    pub fn entity_key(&self) -> EntityKey {
22454        match self {
22455            SurfaceRef::BSplineSurface(i) => EntityKey::BSplineSurface(*i),
22456            SurfaceRef::BSplineSurfaceWithKnots(i) => EntityKey::BSplineSurfaceWithKnots(*i),
22457            SurfaceRef::BezierSurface(i) => EntityKey::BezierSurface(*i),
22458            SurfaceRef::BoundedSurface(i) => EntityKey::BoundedSurface(*i),
22459            SurfaceRef::ConicalSurface(i) => EntityKey::ConicalSurface(*i),
22460            SurfaceRef::CylindricalSurface(i) => EntityKey::CylindricalSurface(*i),
22461            SurfaceRef::DegenerateToroidalSurface(i) => EntityKey::DegenerateToroidalSurface(*i),
22462            SurfaceRef::ElementarySurface(i) => EntityKey::ElementarySurface(*i),
22463            SurfaceRef::OffsetSurface(i) => EntityKey::OffsetSurface(*i),
22464            SurfaceRef::Plane(i) => EntityKey::Plane(*i),
22465            SurfaceRef::QuasiUniformSurface(i) => EntityKey::QuasiUniformSurface(*i),
22466            SurfaceRef::RationalBSplineSurface(i) => EntityKey::RationalBSplineSurface(*i),
22467            SurfaceRef::SphericalSurface(i) => EntityKey::SphericalSurface(*i),
22468            SurfaceRef::Surface(i) => EntityKey::Surface(*i),
22469            SurfaceRef::SurfaceOfLinearExtrusion(i) => EntityKey::SurfaceOfLinearExtrusion(*i),
22470            SurfaceRef::SurfaceOfRevolution(i) => EntityKey::SurfaceOfRevolution(*i),
22471            SurfaceRef::SweptSurface(i) => EntityKey::SweptSurface(*i),
22472            SurfaceRef::ToroidalSurface(i) => EntityKey::ToroidalSurface(*i),
22473            SurfaceRef::UniformSurface(i) => EntityKey::UniformSurface(*i),
22474            SurfaceRef::Complex(i) => EntityKey::ComplexUnit(*i),
22475        }
22476    }
22477}
22478
22479#[derive(Clone, Copy, Debug)]
22480pub enum SurfaceRenderingPropertiesRefView<'m> {
22481    SurfaceRenderingProperties(&'m SurfaceRenderingProperties),
22482}
22483impl SurfaceRenderingPropertiesRef {
22484    pub fn resolve<'m>(&self, model: &'m StepModel) -> SurfaceRenderingPropertiesRefView<'m> {
22485        match self {
22486            SurfaceRenderingPropertiesRef::SurfaceRenderingProperties(i) => {
22487                SurfaceRenderingPropertiesRefView::SurfaceRenderingProperties(
22488                    model.surface_rendering_properties_arena.get(i.0),
22489                )
22490            }
22491        }
22492    }
22493    pub fn entity_key(&self) -> EntityKey {
22494        match self {
22495            SurfaceRenderingPropertiesRef::SurfaceRenderingProperties(i) => {
22496                EntityKey::SurfaceRenderingProperties(*i)
22497            }
22498        }
22499    }
22500}
22501
22502#[derive(Clone, Copy, Debug)]
22503pub enum SurfaceSideStyleSelectRefView<'m> {
22504    PreDefinedSurfaceSideStyle(&'m PreDefinedSurfaceSideStyle),
22505    SurfaceSideStyle(&'m SurfaceSideStyle),
22506    Complex(&'m ComplexUnit),
22507}
22508impl SurfaceSideStyleSelectRef {
22509    pub fn resolve<'m>(&self, model: &'m StepModel) -> SurfaceSideStyleSelectRefView<'m> {
22510        match self {
22511            SurfaceSideStyleSelectRef::PreDefinedSurfaceSideStyle(i) => {
22512                SurfaceSideStyleSelectRefView::PreDefinedSurfaceSideStyle(
22513                    model.pre_defined_surface_side_style_arena.get(i.0),
22514                )
22515            }
22516            SurfaceSideStyleSelectRef::SurfaceSideStyle(i) => {
22517                SurfaceSideStyleSelectRefView::SurfaceSideStyle(
22518                    model.surface_side_style_arena.get(i.0),
22519                )
22520            }
22521            SurfaceSideStyleSelectRef::Complex(i) => {
22522                SurfaceSideStyleSelectRefView::Complex(model.complex_unit_arena.get(i.0))
22523            }
22524        }
22525    }
22526    pub fn entity_key(&self) -> EntityKey {
22527        match self {
22528            SurfaceSideStyleSelectRef::PreDefinedSurfaceSideStyle(i) => {
22529                EntityKey::PreDefinedSurfaceSideStyle(*i)
22530            }
22531            SurfaceSideStyleSelectRef::SurfaceSideStyle(i) => EntityKey::SurfaceSideStyle(*i),
22532            SurfaceSideStyleSelectRef::Complex(i) => EntityKey::ComplexUnit(*i),
22533        }
22534    }
22535}
22536
22537#[derive(Clone, Copy, Debug)]
22538pub enum SurfaceStyleElementSelectRefView<'m> {
22539    SurfaceStyleBoundary(&'m SurfaceStyleBoundary),
22540    SurfaceStyleControlGrid(&'m SurfaceStyleControlGrid),
22541    SurfaceStyleFillArea(&'m SurfaceStyleFillArea),
22542    SurfaceStyleParameterLine(&'m SurfaceStyleParameterLine),
22543    SurfaceStyleRendering(&'m SurfaceStyleRendering),
22544    SurfaceStyleRenderingWithProperties(&'m SurfaceStyleRenderingWithProperties),
22545    SurfaceStyleSegmentationCurve(&'m SurfaceStyleSegmentationCurve),
22546    SurfaceStyleSilhouette(&'m SurfaceStyleSilhouette),
22547    Complex(&'m ComplexUnit),
22548}
22549impl SurfaceStyleElementSelectRef {
22550    pub fn resolve<'m>(&self, model: &'m StepModel) -> SurfaceStyleElementSelectRefView<'m> {
22551        match self {
22552            SurfaceStyleElementSelectRef::SurfaceStyleBoundary(i) => {
22553                SurfaceStyleElementSelectRefView::SurfaceStyleBoundary(
22554                    model.surface_style_boundary_arena.get(i.0),
22555                )
22556            }
22557            SurfaceStyleElementSelectRef::SurfaceStyleControlGrid(i) => {
22558                SurfaceStyleElementSelectRefView::SurfaceStyleControlGrid(
22559                    model.surface_style_control_grid_arena.get(i.0),
22560                )
22561            }
22562            SurfaceStyleElementSelectRef::SurfaceStyleFillArea(i) => {
22563                SurfaceStyleElementSelectRefView::SurfaceStyleFillArea(
22564                    model.surface_style_fill_area_arena.get(i.0),
22565                )
22566            }
22567            SurfaceStyleElementSelectRef::SurfaceStyleParameterLine(i) => {
22568                SurfaceStyleElementSelectRefView::SurfaceStyleParameterLine(
22569                    model.surface_style_parameter_line_arena.get(i.0),
22570                )
22571            }
22572            SurfaceStyleElementSelectRef::SurfaceStyleRendering(i) => {
22573                SurfaceStyleElementSelectRefView::SurfaceStyleRendering(
22574                    model.surface_style_rendering_arena.get(i.0),
22575                )
22576            }
22577            SurfaceStyleElementSelectRef::SurfaceStyleRenderingWithProperties(i) => {
22578                SurfaceStyleElementSelectRefView::SurfaceStyleRenderingWithProperties(
22579                    model.surface_style_rendering_with_properties_arena.get(i.0),
22580                )
22581            }
22582            SurfaceStyleElementSelectRef::SurfaceStyleSegmentationCurve(i) => {
22583                SurfaceStyleElementSelectRefView::SurfaceStyleSegmentationCurve(
22584                    model.surface_style_segmentation_curve_arena.get(i.0),
22585                )
22586            }
22587            SurfaceStyleElementSelectRef::SurfaceStyleSilhouette(i) => {
22588                SurfaceStyleElementSelectRefView::SurfaceStyleSilhouette(
22589                    model.surface_style_silhouette_arena.get(i.0),
22590                )
22591            }
22592            SurfaceStyleElementSelectRef::Complex(i) => {
22593                SurfaceStyleElementSelectRefView::Complex(model.complex_unit_arena.get(i.0))
22594            }
22595        }
22596    }
22597    pub fn entity_key(&self) -> EntityKey {
22598        match self {
22599            SurfaceStyleElementSelectRef::SurfaceStyleBoundary(i) => {
22600                EntityKey::SurfaceStyleBoundary(*i)
22601            }
22602            SurfaceStyleElementSelectRef::SurfaceStyleControlGrid(i) => {
22603                EntityKey::SurfaceStyleControlGrid(*i)
22604            }
22605            SurfaceStyleElementSelectRef::SurfaceStyleFillArea(i) => {
22606                EntityKey::SurfaceStyleFillArea(*i)
22607            }
22608            SurfaceStyleElementSelectRef::SurfaceStyleParameterLine(i) => {
22609                EntityKey::SurfaceStyleParameterLine(*i)
22610            }
22611            SurfaceStyleElementSelectRef::SurfaceStyleRendering(i) => {
22612                EntityKey::SurfaceStyleRendering(*i)
22613            }
22614            SurfaceStyleElementSelectRef::SurfaceStyleRenderingWithProperties(i) => {
22615                EntityKey::SurfaceStyleRenderingWithProperties(*i)
22616            }
22617            SurfaceStyleElementSelectRef::SurfaceStyleSegmentationCurve(i) => {
22618                EntityKey::SurfaceStyleSegmentationCurve(*i)
22619            }
22620            SurfaceStyleElementSelectRef::SurfaceStyleSilhouette(i) => {
22621                EntityKey::SurfaceStyleSilhouette(*i)
22622            }
22623            SurfaceStyleElementSelectRef::Complex(i) => EntityKey::ComplexUnit(*i),
22624        }
22625    }
22626}
22627
22628#[derive(Clone, Copy, Debug)]
22629pub enum SymbolStyleSelectRefView<'m> {
22630    SymbolColour(&'m SymbolColour),
22631}
22632impl SymbolStyleSelectRef {
22633    pub fn resolve<'m>(&self, model: &'m StepModel) -> SymbolStyleSelectRefView<'m> {
22634        match self {
22635            SymbolStyleSelectRef::SymbolColour(i) => {
22636                SymbolStyleSelectRefView::SymbolColour(model.symbol_colour_arena.get(i.0))
22637            }
22638        }
22639    }
22640    pub fn entity_key(&self) -> EntityKey {
22641        match self {
22642            SymbolStyleSelectRef::SymbolColour(i) => EntityKey::SymbolColour(*i),
22643        }
22644    }
22645}
22646
22647#[derive(Clone, Copy, Debug)]
22648pub enum SymbolTargetRefView<'m> {
22649    SymbolTarget(&'m SymbolTarget),
22650}
22651impl SymbolTargetRef {
22652    pub fn resolve<'m>(&self, model: &'m StepModel) -> SymbolTargetRefView<'m> {
22653        match self {
22654            SymbolTargetRef::SymbolTarget(i) => {
22655                SymbolTargetRefView::SymbolTarget(model.symbol_target_arena.get(i.0))
22656            }
22657        }
22658    }
22659    pub fn entity_key(&self) -> EntityKey {
22660        match self {
22661            SymbolTargetRef::SymbolTarget(i) => EntityKey::SymbolTarget(*i),
22662        }
22663    }
22664}
22665
22666#[derive(Clone, Copy, Debug)]
22667pub enum TessellatedItemRefView<'m> {
22668    ComplexTriangulatedFace(&'m ComplexTriangulatedFace),
22669    ComplexTriangulatedSurfaceSet(&'m ComplexTriangulatedSurfaceSet),
22670    CoordinatesList(&'m CoordinatesList),
22671    RepositionedTessellatedItem(&'m RepositionedTessellatedItem),
22672    TessellatedCurveSet(&'m TessellatedCurveSet),
22673    TessellatedFace(&'m TessellatedFace),
22674    TessellatedGeometricSet(&'m TessellatedGeometricSet),
22675    TessellatedItem(&'m TessellatedItem),
22676    TessellatedShell(&'m TessellatedShell),
22677    TessellatedSolid(&'m TessellatedSolid),
22678    TessellatedStructuredItem(&'m TessellatedStructuredItem),
22679    TessellatedSurfaceSet(&'m TessellatedSurfaceSet),
22680    Complex(&'m ComplexUnit),
22681}
22682impl TessellatedItemRef {
22683    pub fn resolve<'m>(&self, model: &'m StepModel) -> TessellatedItemRefView<'m> {
22684        match self {
22685            TessellatedItemRef::ComplexTriangulatedFace(i) => {
22686                TessellatedItemRefView::ComplexTriangulatedFace(
22687                    model.complex_triangulated_face_arena.get(i.0),
22688                )
22689            }
22690            TessellatedItemRef::ComplexTriangulatedSurfaceSet(i) => {
22691                TessellatedItemRefView::ComplexTriangulatedSurfaceSet(
22692                    model.complex_triangulated_surface_set_arena.get(i.0),
22693                )
22694            }
22695            TessellatedItemRef::CoordinatesList(i) => {
22696                TessellatedItemRefView::CoordinatesList(model.coordinates_list_arena.get(i.0))
22697            }
22698            TessellatedItemRef::RepositionedTessellatedItem(i) => {
22699                TessellatedItemRefView::RepositionedTessellatedItem(
22700                    model.repositioned_tessellated_item_arena.get(i.0),
22701                )
22702            }
22703            TessellatedItemRef::TessellatedCurveSet(i) => {
22704                TessellatedItemRefView::TessellatedCurveSet(
22705                    model.tessellated_curve_set_arena.get(i.0),
22706                )
22707            }
22708            TessellatedItemRef::TessellatedFace(i) => {
22709                TessellatedItemRefView::TessellatedFace(model.tessellated_face_arena.get(i.0))
22710            }
22711            TessellatedItemRef::TessellatedGeometricSet(i) => {
22712                TessellatedItemRefView::TessellatedGeometricSet(
22713                    model.tessellated_geometric_set_arena.get(i.0),
22714                )
22715            }
22716            TessellatedItemRef::TessellatedItem(i) => {
22717                TessellatedItemRefView::TessellatedItem(model.tessellated_item_arena.get(i.0))
22718            }
22719            TessellatedItemRef::TessellatedShell(i) => {
22720                TessellatedItemRefView::TessellatedShell(model.tessellated_shell_arena.get(i.0))
22721            }
22722            TessellatedItemRef::TessellatedSolid(i) => {
22723                TessellatedItemRefView::TessellatedSolid(model.tessellated_solid_arena.get(i.0))
22724            }
22725            TessellatedItemRef::TessellatedStructuredItem(i) => {
22726                TessellatedItemRefView::TessellatedStructuredItem(
22727                    model.tessellated_structured_item_arena.get(i.0),
22728                )
22729            }
22730            TessellatedItemRef::TessellatedSurfaceSet(i) => {
22731                TessellatedItemRefView::TessellatedSurfaceSet(
22732                    model.tessellated_surface_set_arena.get(i.0),
22733                )
22734            }
22735            TessellatedItemRef::Complex(i) => {
22736                TessellatedItemRefView::Complex(model.complex_unit_arena.get(i.0))
22737            }
22738        }
22739    }
22740    pub fn entity_key(&self) -> EntityKey {
22741        match self {
22742            TessellatedItemRef::ComplexTriangulatedFace(i) => {
22743                EntityKey::ComplexTriangulatedFace(*i)
22744            }
22745            TessellatedItemRef::ComplexTriangulatedSurfaceSet(i) => {
22746                EntityKey::ComplexTriangulatedSurfaceSet(*i)
22747            }
22748            TessellatedItemRef::CoordinatesList(i) => EntityKey::CoordinatesList(*i),
22749            TessellatedItemRef::RepositionedTessellatedItem(i) => {
22750                EntityKey::RepositionedTessellatedItem(*i)
22751            }
22752            TessellatedItemRef::TessellatedCurveSet(i) => EntityKey::TessellatedCurveSet(*i),
22753            TessellatedItemRef::TessellatedFace(i) => EntityKey::TessellatedFace(*i),
22754            TessellatedItemRef::TessellatedGeometricSet(i) => {
22755                EntityKey::TessellatedGeometricSet(*i)
22756            }
22757            TessellatedItemRef::TessellatedItem(i) => EntityKey::TessellatedItem(*i),
22758            TessellatedItemRef::TessellatedShell(i) => EntityKey::TessellatedShell(*i),
22759            TessellatedItemRef::TessellatedSolid(i) => EntityKey::TessellatedSolid(*i),
22760            TessellatedItemRef::TessellatedStructuredItem(i) => {
22761                EntityKey::TessellatedStructuredItem(*i)
22762            }
22763            TessellatedItemRef::TessellatedSurfaceSet(i) => EntityKey::TessellatedSurfaceSet(*i),
22764            TessellatedItemRef::Complex(i) => EntityKey::ComplexUnit(*i),
22765        }
22766    }
22767}
22768
22769#[derive(Clone, Copy, Debug)]
22770pub enum TessellatedStructuredItemRefView<'m> {
22771    ComplexTriangulatedFace(&'m ComplexTriangulatedFace),
22772    TessellatedFace(&'m TessellatedFace),
22773    TessellatedStructuredItem(&'m TessellatedStructuredItem),
22774    Complex(&'m ComplexUnit),
22775}
22776impl TessellatedStructuredItemRef {
22777    pub fn resolve<'m>(&self, model: &'m StepModel) -> TessellatedStructuredItemRefView<'m> {
22778        match self {
22779            TessellatedStructuredItemRef::ComplexTriangulatedFace(i) => {
22780                TessellatedStructuredItemRefView::ComplexTriangulatedFace(
22781                    model.complex_triangulated_face_arena.get(i.0),
22782                )
22783            }
22784            TessellatedStructuredItemRef::TessellatedFace(i) => {
22785                TessellatedStructuredItemRefView::TessellatedFace(
22786                    model.tessellated_face_arena.get(i.0),
22787                )
22788            }
22789            TessellatedStructuredItemRef::TessellatedStructuredItem(i) => {
22790                TessellatedStructuredItemRefView::TessellatedStructuredItem(
22791                    model.tessellated_structured_item_arena.get(i.0),
22792                )
22793            }
22794            TessellatedStructuredItemRef::Complex(i) => {
22795                TessellatedStructuredItemRefView::Complex(model.complex_unit_arena.get(i.0))
22796            }
22797        }
22798    }
22799    pub fn entity_key(&self) -> EntityKey {
22800        match self {
22801            TessellatedStructuredItemRef::ComplexTriangulatedFace(i) => {
22802                EntityKey::ComplexTriangulatedFace(*i)
22803            }
22804            TessellatedStructuredItemRef::TessellatedFace(i) => EntityKey::TessellatedFace(*i),
22805            TessellatedStructuredItemRef::TessellatedStructuredItem(i) => {
22806                EntityKey::TessellatedStructuredItem(*i)
22807            }
22808            TessellatedStructuredItemRef::Complex(i) => EntityKey::ComplexUnit(*i),
22809        }
22810    }
22811}
22812
22813#[derive(Clone, Copy, Debug)]
22814pub enum TextOrCharacterRefView<'m> {
22815    AnnotationText(&'m AnnotationText),
22816    AnnotationTextCharacter(&'m AnnotationTextCharacter),
22817    CompositeText(&'m CompositeText),
22818    DefinedCharacterGlyph(&'m DefinedCharacterGlyph),
22819    TextLiteral(&'m TextLiteral),
22820    Complex(&'m ComplexUnit),
22821}
22822impl TextOrCharacterRef {
22823    pub fn resolve<'m>(&self, model: &'m StepModel) -> TextOrCharacterRefView<'m> {
22824        match self {
22825            TextOrCharacterRef::AnnotationText(i) => {
22826                TextOrCharacterRefView::AnnotationText(model.annotation_text_arena.get(i.0))
22827            }
22828            TextOrCharacterRef::AnnotationTextCharacter(i) => {
22829                TextOrCharacterRefView::AnnotationTextCharacter(
22830                    model.annotation_text_character_arena.get(i.0),
22831                )
22832            }
22833            TextOrCharacterRef::CompositeText(i) => {
22834                TextOrCharacterRefView::CompositeText(model.composite_text_arena.get(i.0))
22835            }
22836            TextOrCharacterRef::DefinedCharacterGlyph(i) => {
22837                TextOrCharacterRefView::DefinedCharacterGlyph(
22838                    model.defined_character_glyph_arena.get(i.0),
22839                )
22840            }
22841            TextOrCharacterRef::TextLiteral(i) => {
22842                TextOrCharacterRefView::TextLiteral(model.text_literal_arena.get(i.0))
22843            }
22844            TextOrCharacterRef::Complex(i) => {
22845                TextOrCharacterRefView::Complex(model.complex_unit_arena.get(i.0))
22846            }
22847        }
22848    }
22849    pub fn entity_key(&self) -> EntityKey {
22850        match self {
22851            TextOrCharacterRef::AnnotationText(i) => EntityKey::AnnotationText(*i),
22852            TextOrCharacterRef::AnnotationTextCharacter(i) => {
22853                EntityKey::AnnotationTextCharacter(*i)
22854            }
22855            TextOrCharacterRef::CompositeText(i) => EntityKey::CompositeText(*i),
22856            TextOrCharacterRef::DefinedCharacterGlyph(i) => EntityKey::DefinedCharacterGlyph(*i),
22857            TextOrCharacterRef::TextLiteral(i) => EntityKey::TextLiteral(*i),
22858            TextOrCharacterRef::Complex(i) => EntityKey::ComplexUnit(*i),
22859        }
22860    }
22861}
22862
22863#[derive(Clone, Copy, Debug)]
22864pub enum ToleranceMethodDefinitionRefView<'m> {
22865    LimitsAndFits(&'m LimitsAndFits),
22866    ToleranceValue(&'m ToleranceValue),
22867}
22868impl ToleranceMethodDefinitionRef {
22869    pub fn resolve<'m>(&self, model: &'m StepModel) -> ToleranceMethodDefinitionRefView<'m> {
22870        match self {
22871            ToleranceMethodDefinitionRef::LimitsAndFits(i) => {
22872                ToleranceMethodDefinitionRefView::LimitsAndFits(
22873                    model.limits_and_fits_arena.get(i.0),
22874                )
22875            }
22876            ToleranceMethodDefinitionRef::ToleranceValue(i) => {
22877                ToleranceMethodDefinitionRefView::ToleranceValue(
22878                    model.tolerance_value_arena.get(i.0),
22879                )
22880            }
22881        }
22882    }
22883    pub fn entity_key(&self) -> EntityKey {
22884        match self {
22885            ToleranceMethodDefinitionRef::LimitsAndFits(i) => EntityKey::LimitsAndFits(*i),
22886            ToleranceMethodDefinitionRef::ToleranceValue(i) => EntityKey::ToleranceValue(*i),
22887        }
22888    }
22889}
22890
22891#[derive(Clone, Copy, Debug)]
22892pub enum ToleranceSelectRefView<'m> {
22893    ApproximationToleranceDeviation(&'m ApproximationToleranceDeviation),
22894    ApproximationToleranceParameter(&'m ApproximationToleranceParameter),
22895}
22896impl ToleranceSelectRef {
22897    pub fn resolve<'m>(&self, model: &'m StepModel) -> ToleranceSelectRefView<'m> {
22898        match self {
22899            ToleranceSelectRef::ApproximationToleranceDeviation(i) => {
22900                ToleranceSelectRefView::ApproximationToleranceDeviation(
22901                    model.approximation_tolerance_deviation_arena.get(i.0),
22902                )
22903            }
22904            ToleranceSelectRef::ApproximationToleranceParameter(i) => {
22905                ToleranceSelectRefView::ApproximationToleranceParameter(
22906                    model.approximation_tolerance_parameter_arena.get(i.0),
22907                )
22908            }
22909        }
22910    }
22911    pub fn entity_key(&self) -> EntityKey {
22912        match self {
22913            ToleranceSelectRef::ApproximationToleranceDeviation(i) => {
22914                EntityKey::ApproximationToleranceDeviation(*i)
22915            }
22916            ToleranceSelectRef::ApproximationToleranceParameter(i) => {
22917                EntityKey::ApproximationToleranceParameter(*i)
22918            }
22919        }
22920    }
22921}
22922
22923#[derive(Clone, Copy, Debug)]
22924pub enum ToleranceZoneRefView<'m> {
22925    ToleranceZone(&'m ToleranceZone),
22926    ToleranceZoneWithDatum(&'m ToleranceZoneWithDatum),
22927    Complex(&'m ComplexUnit),
22928}
22929impl ToleranceZoneRef {
22930    pub fn resolve<'m>(&self, model: &'m StepModel) -> ToleranceZoneRefView<'m> {
22931        match self {
22932            ToleranceZoneRef::ToleranceZone(i) => {
22933                ToleranceZoneRefView::ToleranceZone(model.tolerance_zone_arena.get(i.0))
22934            }
22935            ToleranceZoneRef::ToleranceZoneWithDatum(i) => {
22936                ToleranceZoneRefView::ToleranceZoneWithDatum(
22937                    model.tolerance_zone_with_datum_arena.get(i.0),
22938                )
22939            }
22940            ToleranceZoneRef::Complex(i) => {
22941                ToleranceZoneRefView::Complex(model.complex_unit_arena.get(i.0))
22942            }
22943        }
22944    }
22945    pub fn entity_key(&self) -> EntityKey {
22946        match self {
22947            ToleranceZoneRef::ToleranceZone(i) => EntityKey::ToleranceZone(*i),
22948            ToleranceZoneRef::ToleranceZoneWithDatum(i) => EntityKey::ToleranceZoneWithDatum(*i),
22949            ToleranceZoneRef::Complex(i) => EntityKey::ComplexUnit(*i),
22950        }
22951    }
22952}
22953
22954#[derive(Clone, Copy, Debug)]
22955pub enum ToleranceZoneFormRefView<'m> {
22956    ToleranceZoneForm(&'m ToleranceZoneForm),
22957}
22958impl ToleranceZoneFormRef {
22959    pub fn resolve<'m>(&self, model: &'m StepModel) -> ToleranceZoneFormRefView<'m> {
22960        match self {
22961            ToleranceZoneFormRef::ToleranceZoneForm(i) => {
22962                ToleranceZoneFormRefView::ToleranceZoneForm(
22963                    model.tolerance_zone_form_arena.get(i.0),
22964                )
22965            }
22966        }
22967    }
22968    pub fn entity_key(&self) -> EntityKey {
22969        match self {
22970            ToleranceZoneFormRef::ToleranceZoneForm(i) => EntityKey::ToleranceZoneForm(*i),
22971        }
22972    }
22973}
22974
22975#[derive(Clone, Copy, Debug)]
22976pub enum ToleranceZoneTargetRefView<'m> {
22977    AngularLocation(&'m AngularLocation),
22978    AngularSize(&'m AngularSize),
22979    AngularityTolerance(&'m AngularityTolerance),
22980    CircularRunoutTolerance(&'m CircularRunoutTolerance),
22981    CoaxialityTolerance(&'m CoaxialityTolerance),
22982    ConcentricityTolerance(&'m ConcentricityTolerance),
22983    CylindricityTolerance(&'m CylindricityTolerance),
22984    DatumReferenceCompartment(&'m DatumReferenceCompartment),
22985    DatumReferenceElement(&'m DatumReferenceElement),
22986    DimensionalLocation(&'m DimensionalLocation),
22987    DimensionalLocationWithPath(&'m DimensionalLocationWithPath),
22988    DimensionalSize(&'m DimensionalSize),
22989    DimensionalSizeWithDatumFeature(&'m DimensionalSizeWithDatumFeature),
22990    DimensionalSizeWithPath(&'m DimensionalSizeWithPath),
22991    DirectedDimensionalLocation(&'m DirectedDimensionalLocation),
22992    FlatnessTolerance(&'m FlatnessTolerance),
22993    GeneralDatumReference(&'m GeneralDatumReference),
22994    GeometricTolerance(&'m GeometricTolerance),
22995    GeometricToleranceWithDatumReference(&'m GeometricToleranceWithDatumReference),
22996    GeometricToleranceWithDefinedAreaUnit(&'m GeometricToleranceWithDefinedAreaUnit),
22997    GeometricToleranceWithDefinedUnit(&'m GeometricToleranceWithDefinedUnit),
22998    GeometricToleranceWithMaximumTolerance(&'m GeometricToleranceWithMaximumTolerance),
22999    GeometricToleranceWithModifiers(&'m GeometricToleranceWithModifiers),
23000    LineProfileTolerance(&'m LineProfileTolerance),
23001    ModifiedGeometricTolerance(&'m ModifiedGeometricTolerance),
23002    ParallelismTolerance(&'m ParallelismTolerance),
23003    PerpendicularityTolerance(&'m PerpendicularityTolerance),
23004    PositionTolerance(&'m PositionTolerance),
23005    RoundnessTolerance(&'m RoundnessTolerance),
23006    StraightnessTolerance(&'m StraightnessTolerance),
23007    SurfaceProfileTolerance(&'m SurfaceProfileTolerance),
23008    SymmetryTolerance(&'m SymmetryTolerance),
23009    TotalRunoutTolerance(&'m TotalRunoutTolerance),
23010    UnequallyDisposedGeometricTolerance(&'m UnequallyDisposedGeometricTolerance),
23011    Complex(&'m ComplexUnit),
23012}
23013impl ToleranceZoneTargetRef {
23014    pub fn resolve<'m>(&self, model: &'m StepModel) -> ToleranceZoneTargetRefView<'m> {
23015        match self {
23016            ToleranceZoneTargetRef::AngularLocation(i) => {
23017                ToleranceZoneTargetRefView::AngularLocation(model.angular_location_arena.get(i.0))
23018            }
23019            ToleranceZoneTargetRef::AngularSize(i) => {
23020                ToleranceZoneTargetRefView::AngularSize(model.angular_size_arena.get(i.0))
23021            }
23022            ToleranceZoneTargetRef::AngularityTolerance(i) => {
23023                ToleranceZoneTargetRefView::AngularityTolerance(
23024                    model.angularity_tolerance_arena.get(i.0),
23025                )
23026            }
23027            ToleranceZoneTargetRef::CircularRunoutTolerance(i) => {
23028                ToleranceZoneTargetRefView::CircularRunoutTolerance(
23029                    model.circular_runout_tolerance_arena.get(i.0),
23030                )
23031            }
23032            ToleranceZoneTargetRef::CoaxialityTolerance(i) => {
23033                ToleranceZoneTargetRefView::CoaxialityTolerance(
23034                    model.coaxiality_tolerance_arena.get(i.0),
23035                )
23036            }
23037            ToleranceZoneTargetRef::ConcentricityTolerance(i) => {
23038                ToleranceZoneTargetRefView::ConcentricityTolerance(
23039                    model.concentricity_tolerance_arena.get(i.0),
23040                )
23041            }
23042            ToleranceZoneTargetRef::CylindricityTolerance(i) => {
23043                ToleranceZoneTargetRefView::CylindricityTolerance(
23044                    model.cylindricity_tolerance_arena.get(i.0),
23045                )
23046            }
23047            ToleranceZoneTargetRef::DatumReferenceCompartment(i) => {
23048                ToleranceZoneTargetRefView::DatumReferenceCompartment(
23049                    model.datum_reference_compartment_arena.get(i.0),
23050                )
23051            }
23052            ToleranceZoneTargetRef::DatumReferenceElement(i) => {
23053                ToleranceZoneTargetRefView::DatumReferenceElement(
23054                    model.datum_reference_element_arena.get(i.0),
23055                )
23056            }
23057            ToleranceZoneTargetRef::DimensionalLocation(i) => {
23058                ToleranceZoneTargetRefView::DimensionalLocation(
23059                    model.dimensional_location_arena.get(i.0),
23060                )
23061            }
23062            ToleranceZoneTargetRef::DimensionalLocationWithPath(i) => {
23063                ToleranceZoneTargetRefView::DimensionalLocationWithPath(
23064                    model.dimensional_location_with_path_arena.get(i.0),
23065                )
23066            }
23067            ToleranceZoneTargetRef::DimensionalSize(i) => {
23068                ToleranceZoneTargetRefView::DimensionalSize(model.dimensional_size_arena.get(i.0))
23069            }
23070            ToleranceZoneTargetRef::DimensionalSizeWithDatumFeature(i) => {
23071                ToleranceZoneTargetRefView::DimensionalSizeWithDatumFeature(
23072                    model.dimensional_size_with_datum_feature_arena.get(i.0),
23073                )
23074            }
23075            ToleranceZoneTargetRef::DimensionalSizeWithPath(i) => {
23076                ToleranceZoneTargetRefView::DimensionalSizeWithPath(
23077                    model.dimensional_size_with_path_arena.get(i.0),
23078                )
23079            }
23080            ToleranceZoneTargetRef::DirectedDimensionalLocation(i) => {
23081                ToleranceZoneTargetRefView::DirectedDimensionalLocation(
23082                    model.directed_dimensional_location_arena.get(i.0),
23083                )
23084            }
23085            ToleranceZoneTargetRef::FlatnessTolerance(i) => {
23086                ToleranceZoneTargetRefView::FlatnessTolerance(
23087                    model.flatness_tolerance_arena.get(i.0),
23088                )
23089            }
23090            ToleranceZoneTargetRef::GeneralDatumReference(i) => {
23091                ToleranceZoneTargetRefView::GeneralDatumReference(
23092                    model.general_datum_reference_arena.get(i.0),
23093                )
23094            }
23095            ToleranceZoneTargetRef::GeometricTolerance(i) => {
23096                ToleranceZoneTargetRefView::GeometricTolerance(
23097                    model.geometric_tolerance_arena.get(i.0),
23098                )
23099            }
23100            ToleranceZoneTargetRef::GeometricToleranceWithDatumReference(i) => {
23101                ToleranceZoneTargetRefView::GeometricToleranceWithDatumReference(
23102                    model
23103                        .geometric_tolerance_with_datum_reference_arena
23104                        .get(i.0),
23105                )
23106            }
23107            ToleranceZoneTargetRef::GeometricToleranceWithDefinedAreaUnit(i) => {
23108                ToleranceZoneTargetRefView::GeometricToleranceWithDefinedAreaUnit(
23109                    model
23110                        .geometric_tolerance_with_defined_area_unit_arena
23111                        .get(i.0),
23112                )
23113            }
23114            ToleranceZoneTargetRef::GeometricToleranceWithDefinedUnit(i) => {
23115                ToleranceZoneTargetRefView::GeometricToleranceWithDefinedUnit(
23116                    model.geometric_tolerance_with_defined_unit_arena.get(i.0),
23117                )
23118            }
23119            ToleranceZoneTargetRef::GeometricToleranceWithMaximumTolerance(i) => {
23120                ToleranceZoneTargetRefView::GeometricToleranceWithMaximumTolerance(
23121                    model
23122                        .geometric_tolerance_with_maximum_tolerance_arena
23123                        .get(i.0),
23124                )
23125            }
23126            ToleranceZoneTargetRef::GeometricToleranceWithModifiers(i) => {
23127                ToleranceZoneTargetRefView::GeometricToleranceWithModifiers(
23128                    model.geometric_tolerance_with_modifiers_arena.get(i.0),
23129                )
23130            }
23131            ToleranceZoneTargetRef::LineProfileTolerance(i) => {
23132                ToleranceZoneTargetRefView::LineProfileTolerance(
23133                    model.line_profile_tolerance_arena.get(i.0),
23134                )
23135            }
23136            ToleranceZoneTargetRef::ModifiedGeometricTolerance(i) => {
23137                ToleranceZoneTargetRefView::ModifiedGeometricTolerance(
23138                    model.modified_geometric_tolerance_arena.get(i.0),
23139                )
23140            }
23141            ToleranceZoneTargetRef::ParallelismTolerance(i) => {
23142                ToleranceZoneTargetRefView::ParallelismTolerance(
23143                    model.parallelism_tolerance_arena.get(i.0),
23144                )
23145            }
23146            ToleranceZoneTargetRef::PerpendicularityTolerance(i) => {
23147                ToleranceZoneTargetRefView::PerpendicularityTolerance(
23148                    model.perpendicularity_tolerance_arena.get(i.0),
23149                )
23150            }
23151            ToleranceZoneTargetRef::PositionTolerance(i) => {
23152                ToleranceZoneTargetRefView::PositionTolerance(
23153                    model.position_tolerance_arena.get(i.0),
23154                )
23155            }
23156            ToleranceZoneTargetRef::RoundnessTolerance(i) => {
23157                ToleranceZoneTargetRefView::RoundnessTolerance(
23158                    model.roundness_tolerance_arena.get(i.0),
23159                )
23160            }
23161            ToleranceZoneTargetRef::StraightnessTolerance(i) => {
23162                ToleranceZoneTargetRefView::StraightnessTolerance(
23163                    model.straightness_tolerance_arena.get(i.0),
23164                )
23165            }
23166            ToleranceZoneTargetRef::SurfaceProfileTolerance(i) => {
23167                ToleranceZoneTargetRefView::SurfaceProfileTolerance(
23168                    model.surface_profile_tolerance_arena.get(i.0),
23169                )
23170            }
23171            ToleranceZoneTargetRef::SymmetryTolerance(i) => {
23172                ToleranceZoneTargetRefView::SymmetryTolerance(
23173                    model.symmetry_tolerance_arena.get(i.0),
23174                )
23175            }
23176            ToleranceZoneTargetRef::TotalRunoutTolerance(i) => {
23177                ToleranceZoneTargetRefView::TotalRunoutTolerance(
23178                    model.total_runout_tolerance_arena.get(i.0),
23179                )
23180            }
23181            ToleranceZoneTargetRef::UnequallyDisposedGeometricTolerance(i) => {
23182                ToleranceZoneTargetRefView::UnequallyDisposedGeometricTolerance(
23183                    model.unequally_disposed_geometric_tolerance_arena.get(i.0),
23184                )
23185            }
23186            ToleranceZoneTargetRef::Complex(i) => {
23187                ToleranceZoneTargetRefView::Complex(model.complex_unit_arena.get(i.0))
23188            }
23189        }
23190    }
23191    pub fn entity_key(&self) -> EntityKey {
23192        match self {
23193            ToleranceZoneTargetRef::AngularLocation(i) => EntityKey::AngularLocation(*i),
23194            ToleranceZoneTargetRef::AngularSize(i) => EntityKey::AngularSize(*i),
23195            ToleranceZoneTargetRef::AngularityTolerance(i) => EntityKey::AngularityTolerance(*i),
23196            ToleranceZoneTargetRef::CircularRunoutTolerance(i) => {
23197                EntityKey::CircularRunoutTolerance(*i)
23198            }
23199            ToleranceZoneTargetRef::CoaxialityTolerance(i) => EntityKey::CoaxialityTolerance(*i),
23200            ToleranceZoneTargetRef::ConcentricityTolerance(i) => {
23201                EntityKey::ConcentricityTolerance(*i)
23202            }
23203            ToleranceZoneTargetRef::CylindricityTolerance(i) => {
23204                EntityKey::CylindricityTolerance(*i)
23205            }
23206            ToleranceZoneTargetRef::DatumReferenceCompartment(i) => {
23207                EntityKey::DatumReferenceCompartment(*i)
23208            }
23209            ToleranceZoneTargetRef::DatumReferenceElement(i) => {
23210                EntityKey::DatumReferenceElement(*i)
23211            }
23212            ToleranceZoneTargetRef::DimensionalLocation(i) => EntityKey::DimensionalLocation(*i),
23213            ToleranceZoneTargetRef::DimensionalLocationWithPath(i) => {
23214                EntityKey::DimensionalLocationWithPath(*i)
23215            }
23216            ToleranceZoneTargetRef::DimensionalSize(i) => EntityKey::DimensionalSize(*i),
23217            ToleranceZoneTargetRef::DimensionalSizeWithDatumFeature(i) => {
23218                EntityKey::DimensionalSizeWithDatumFeature(*i)
23219            }
23220            ToleranceZoneTargetRef::DimensionalSizeWithPath(i) => {
23221                EntityKey::DimensionalSizeWithPath(*i)
23222            }
23223            ToleranceZoneTargetRef::DirectedDimensionalLocation(i) => {
23224                EntityKey::DirectedDimensionalLocation(*i)
23225            }
23226            ToleranceZoneTargetRef::FlatnessTolerance(i) => EntityKey::FlatnessTolerance(*i),
23227            ToleranceZoneTargetRef::GeneralDatumReference(i) => {
23228                EntityKey::GeneralDatumReference(*i)
23229            }
23230            ToleranceZoneTargetRef::GeometricTolerance(i) => EntityKey::GeometricTolerance(*i),
23231            ToleranceZoneTargetRef::GeometricToleranceWithDatumReference(i) => {
23232                EntityKey::GeometricToleranceWithDatumReference(*i)
23233            }
23234            ToleranceZoneTargetRef::GeometricToleranceWithDefinedAreaUnit(i) => {
23235                EntityKey::GeometricToleranceWithDefinedAreaUnit(*i)
23236            }
23237            ToleranceZoneTargetRef::GeometricToleranceWithDefinedUnit(i) => {
23238                EntityKey::GeometricToleranceWithDefinedUnit(*i)
23239            }
23240            ToleranceZoneTargetRef::GeometricToleranceWithMaximumTolerance(i) => {
23241                EntityKey::GeometricToleranceWithMaximumTolerance(*i)
23242            }
23243            ToleranceZoneTargetRef::GeometricToleranceWithModifiers(i) => {
23244                EntityKey::GeometricToleranceWithModifiers(*i)
23245            }
23246            ToleranceZoneTargetRef::LineProfileTolerance(i) => EntityKey::LineProfileTolerance(*i),
23247            ToleranceZoneTargetRef::ModifiedGeometricTolerance(i) => {
23248                EntityKey::ModifiedGeometricTolerance(*i)
23249            }
23250            ToleranceZoneTargetRef::ParallelismTolerance(i) => EntityKey::ParallelismTolerance(*i),
23251            ToleranceZoneTargetRef::PerpendicularityTolerance(i) => {
23252                EntityKey::PerpendicularityTolerance(*i)
23253            }
23254            ToleranceZoneTargetRef::PositionTolerance(i) => EntityKey::PositionTolerance(*i),
23255            ToleranceZoneTargetRef::RoundnessTolerance(i) => EntityKey::RoundnessTolerance(*i),
23256            ToleranceZoneTargetRef::StraightnessTolerance(i) => {
23257                EntityKey::StraightnessTolerance(*i)
23258            }
23259            ToleranceZoneTargetRef::SurfaceProfileTolerance(i) => {
23260                EntityKey::SurfaceProfileTolerance(*i)
23261            }
23262            ToleranceZoneTargetRef::SymmetryTolerance(i) => EntityKey::SymmetryTolerance(*i),
23263            ToleranceZoneTargetRef::TotalRunoutTolerance(i) => EntityKey::TotalRunoutTolerance(*i),
23264            ToleranceZoneTargetRef::UnequallyDisposedGeometricTolerance(i) => {
23265                EntityKey::UnequallyDisposedGeometricTolerance(*i)
23266            }
23267            ToleranceZoneTargetRef::Complex(i) => EntityKey::ComplexUnit(*i),
23268        }
23269    }
23270}
23271
23272#[derive(Clone, Copy, Debug)]
23273pub enum TwoDirectionRepeatFactorRefView<'m> {
23274    TwoDirectionRepeatFactor(&'m TwoDirectionRepeatFactor),
23275    Complex(&'m ComplexUnit),
23276}
23277impl TwoDirectionRepeatFactorRef {
23278    pub fn resolve<'m>(&self, model: &'m StepModel) -> TwoDirectionRepeatFactorRefView<'m> {
23279        match self {
23280            TwoDirectionRepeatFactorRef::TwoDirectionRepeatFactor(i) => {
23281                TwoDirectionRepeatFactorRefView::TwoDirectionRepeatFactor(
23282                    model.two_direction_repeat_factor_arena.get(i.0),
23283                )
23284            }
23285            TwoDirectionRepeatFactorRef::Complex(i) => {
23286                TwoDirectionRepeatFactorRefView::Complex(model.complex_unit_arena.get(i.0))
23287            }
23288        }
23289    }
23290    pub fn entity_key(&self) -> EntityKey {
23291        match self {
23292            TwoDirectionRepeatFactorRef::TwoDirectionRepeatFactor(i) => {
23293                EntityKey::TwoDirectionRepeatFactor(*i)
23294            }
23295            TwoDirectionRepeatFactorRef::Complex(i) => EntityKey::ComplexUnit(*i),
23296        }
23297    }
23298}
23299
23300#[derive(Clone, Copy, Debug)]
23301pub enum UncertaintyMeasureWithUnitRefView<'m> {
23302    UncertaintyMeasureWithUnit(&'m UncertaintyMeasureWithUnit),
23303}
23304impl UncertaintyMeasureWithUnitRef {
23305    pub fn resolve<'m>(&self, model: &'m StepModel) -> UncertaintyMeasureWithUnitRefView<'m> {
23306        match self {
23307            UncertaintyMeasureWithUnitRef::UncertaintyMeasureWithUnit(i) => {
23308                UncertaintyMeasureWithUnitRefView::UncertaintyMeasureWithUnit(
23309                    model.uncertainty_measure_with_unit_arena.get(i.0),
23310                )
23311            }
23312        }
23313    }
23314    pub fn entity_key(&self) -> EntityKey {
23315        match self {
23316            UncertaintyMeasureWithUnitRef::UncertaintyMeasureWithUnit(i) => {
23317                EntityKey::UncertaintyMeasureWithUnit(*i)
23318            }
23319        }
23320    }
23321}
23322
23323#[derive(Clone, Copy, Debug)]
23324pub enum UnitRefView<'m> {
23325    AreaUnit(&'m AreaUnit),
23326    ContextDependentUnit(&'m ContextDependentUnit),
23327    ConversionBasedUnit(&'m ConversionBasedUnit),
23328    DerivedUnit(&'m DerivedUnit),
23329    LengthUnit(&'m LengthUnit),
23330    MassUnit(&'m MassUnit),
23331    NamedUnit(&'m NamedUnit),
23332    PlaneAngleUnit(&'m PlaneAngleUnit),
23333    RatioUnit(&'m RatioUnit),
23334    SiUnit(&'m SiUnit),
23335    SolidAngleUnit(&'m SolidAngleUnit),
23336    TimeUnit(&'m TimeUnit),
23337    VolumeUnit(&'m VolumeUnit),
23338    Complex(&'m ComplexUnit),
23339}
23340impl UnitRef {
23341    pub fn resolve<'m>(&self, model: &'m StepModel) -> UnitRefView<'m> {
23342        match self {
23343            UnitRef::AreaUnit(i) => UnitRefView::AreaUnit(model.area_unit_arena.get(i.0)),
23344            UnitRef::ContextDependentUnit(i) => {
23345                UnitRefView::ContextDependentUnit(model.context_dependent_unit_arena.get(i.0))
23346            }
23347            UnitRef::ConversionBasedUnit(i) => {
23348                UnitRefView::ConversionBasedUnit(model.conversion_based_unit_arena.get(i.0))
23349            }
23350            UnitRef::DerivedUnit(i) => UnitRefView::DerivedUnit(model.derived_unit_arena.get(i.0)),
23351            UnitRef::LengthUnit(i) => UnitRefView::LengthUnit(model.length_unit_arena.get(i.0)),
23352            UnitRef::MassUnit(i) => UnitRefView::MassUnit(model.mass_unit_arena.get(i.0)),
23353            UnitRef::NamedUnit(i) => UnitRefView::NamedUnit(model.named_unit_arena.get(i.0)),
23354            UnitRef::PlaneAngleUnit(i) => {
23355                UnitRefView::PlaneAngleUnit(model.plane_angle_unit_arena.get(i.0))
23356            }
23357            UnitRef::RatioUnit(i) => UnitRefView::RatioUnit(model.ratio_unit_arena.get(i.0)),
23358            UnitRef::SiUnit(i) => UnitRefView::SiUnit(model.si_unit_arena.get(i.0)),
23359            UnitRef::SolidAngleUnit(i) => {
23360                UnitRefView::SolidAngleUnit(model.solid_angle_unit_arena.get(i.0))
23361            }
23362            UnitRef::TimeUnit(i) => UnitRefView::TimeUnit(model.time_unit_arena.get(i.0)),
23363            UnitRef::VolumeUnit(i) => UnitRefView::VolumeUnit(model.volume_unit_arena.get(i.0)),
23364            UnitRef::Complex(i) => UnitRefView::Complex(model.complex_unit_arena.get(i.0)),
23365        }
23366    }
23367    pub fn entity_key(&self) -> EntityKey {
23368        match self {
23369            UnitRef::AreaUnit(i) => EntityKey::AreaUnit(*i),
23370            UnitRef::ContextDependentUnit(i) => EntityKey::ContextDependentUnit(*i),
23371            UnitRef::ConversionBasedUnit(i) => EntityKey::ConversionBasedUnit(*i),
23372            UnitRef::DerivedUnit(i) => EntityKey::DerivedUnit(*i),
23373            UnitRef::LengthUnit(i) => EntityKey::LengthUnit(*i),
23374            UnitRef::MassUnit(i) => EntityKey::MassUnit(*i),
23375            UnitRef::NamedUnit(i) => EntityKey::NamedUnit(*i),
23376            UnitRef::PlaneAngleUnit(i) => EntityKey::PlaneAngleUnit(*i),
23377            UnitRef::RatioUnit(i) => EntityKey::RatioUnit(*i),
23378            UnitRef::SiUnit(i) => EntityKey::SiUnit(*i),
23379            UnitRef::SolidAngleUnit(i) => EntityKey::SolidAngleUnit(*i),
23380            UnitRef::TimeUnit(i) => EntityKey::TimeUnit(*i),
23381            UnitRef::VolumeUnit(i) => EntityKey::VolumeUnit(*i),
23382            UnitRef::Complex(i) => EntityKey::ComplexUnit(*i),
23383        }
23384    }
23385}
23386
23387#[derive(Clone, Copy, Debug)]
23388pub enum ValueQualifierRefView<'m> {
23389    PrecisionQualifier(&'m PrecisionQualifier),
23390    TypeQualifier(&'m TypeQualifier),
23391    UncertaintyQualifier(&'m UncertaintyQualifier),
23392    ValueFormatTypeQualifier(&'m ValueFormatTypeQualifier),
23393}
23394impl ValueQualifierRef {
23395    pub fn resolve<'m>(&self, model: &'m StepModel) -> ValueQualifierRefView<'m> {
23396        match self {
23397            ValueQualifierRef::PrecisionQualifier(i) => {
23398                ValueQualifierRefView::PrecisionQualifier(model.precision_qualifier_arena.get(i.0))
23399            }
23400            ValueQualifierRef::TypeQualifier(i) => {
23401                ValueQualifierRefView::TypeQualifier(model.type_qualifier_arena.get(i.0))
23402            }
23403            ValueQualifierRef::UncertaintyQualifier(i) => {
23404                ValueQualifierRefView::UncertaintyQualifier(
23405                    model.uncertainty_qualifier_arena.get(i.0),
23406                )
23407            }
23408            ValueQualifierRef::ValueFormatTypeQualifier(i) => {
23409                ValueQualifierRefView::ValueFormatTypeQualifier(
23410                    model.value_format_type_qualifier_arena.get(i.0),
23411                )
23412            }
23413        }
23414    }
23415    pub fn entity_key(&self) -> EntityKey {
23416        match self {
23417            ValueQualifierRef::PrecisionQualifier(i) => EntityKey::PrecisionQualifier(*i),
23418            ValueQualifierRef::TypeQualifier(i) => EntityKey::TypeQualifier(*i),
23419            ValueQualifierRef::UncertaintyQualifier(i) => EntityKey::UncertaintyQualifier(*i),
23420            ValueQualifierRef::ValueFormatTypeQualifier(i) => {
23421                EntityKey::ValueFormatTypeQualifier(*i)
23422            }
23423        }
23424    }
23425}
23426
23427#[derive(Clone, Copy, Debug)]
23428pub enum VectorRefView<'m> {
23429    Vector(&'m Vector),
23430    Complex(&'m ComplexUnit),
23431}
23432impl VectorRef {
23433    pub fn resolve<'m>(&self, model: &'m StepModel) -> VectorRefView<'m> {
23434        match self {
23435            VectorRef::Vector(i) => VectorRefView::Vector(model.vector_arena.get(i.0)),
23436            VectorRef::Complex(i) => VectorRefView::Complex(model.complex_unit_arena.get(i.0)),
23437        }
23438    }
23439    pub fn entity_key(&self) -> EntityKey {
23440        match self {
23441            VectorRef::Vector(i) => EntityKey::Vector(*i),
23442            VectorRef::Complex(i) => EntityKey::ComplexUnit(*i),
23443        }
23444    }
23445}
23446
23447#[derive(Clone, Copy, Debug)]
23448pub enum VersionedActionRequestRefView<'m> {
23449    VersionedActionRequest(&'m VersionedActionRequest),
23450}
23451impl VersionedActionRequestRef {
23452    pub fn resolve<'m>(&self, model: &'m StepModel) -> VersionedActionRequestRefView<'m> {
23453        match self {
23454            VersionedActionRequestRef::VersionedActionRequest(i) => {
23455                VersionedActionRequestRefView::VersionedActionRequest(
23456                    model.versioned_action_request_arena.get(i.0),
23457                )
23458            }
23459        }
23460    }
23461    pub fn entity_key(&self) -> EntityKey {
23462        match self {
23463            VersionedActionRequestRef::VersionedActionRequest(i) => {
23464                EntityKey::VersionedActionRequest(*i)
23465            }
23466        }
23467    }
23468}
23469
23470#[derive(Clone, Copy, Debug)]
23471pub enum VertexRefView<'m> {
23472    Vertex(&'m Vertex),
23473    VertexPoint(&'m VertexPoint),
23474    Complex(&'m ComplexUnit),
23475}
23476impl VertexRef {
23477    pub fn resolve<'m>(&self, model: &'m StepModel) -> VertexRefView<'m> {
23478        match self {
23479            VertexRef::Vertex(i) => VertexRefView::Vertex(model.vertex_arena.get(i.0)),
23480            VertexRef::VertexPoint(i) => {
23481                VertexRefView::VertexPoint(model.vertex_point_arena.get(i.0))
23482            }
23483            VertexRef::Complex(i) => VertexRefView::Complex(model.complex_unit_arena.get(i.0)),
23484        }
23485    }
23486    pub fn entity_key(&self) -> EntityKey {
23487        match self {
23488            VertexRef::Vertex(i) => EntityKey::Vertex(*i),
23489            VertexRef::VertexPoint(i) => EntityKey::VertexPoint(*i),
23490            VertexRef::Complex(i) => EntityKey::ComplexUnit(*i),
23491        }
23492    }
23493}
23494
23495#[derive(Clone, Copy, Debug)]
23496pub enum VertexLoopRefView<'m> {
23497    VertexLoop(&'m VertexLoop),
23498}
23499impl VertexLoopRef {
23500    pub fn resolve<'m>(&self, model: &'m StepModel) -> VertexLoopRefView<'m> {
23501        match self {
23502            VertexLoopRef::VertexLoop(i) => {
23503                VertexLoopRefView::VertexLoop(model.vertex_loop_arena.get(i.0))
23504            }
23505        }
23506    }
23507    pub fn entity_key(&self) -> EntityKey {
23508        match self {
23509            VertexLoopRef::VertexLoop(i) => EntityKey::VertexLoop(*i),
23510        }
23511    }
23512}
23513
23514#[derive(Clone, Copy, Debug)]
23515pub enum ViewVolumeRefView<'m> {
23516    ViewVolume(&'m ViewVolume),
23517    Complex(&'m ComplexUnit),
23518}
23519impl ViewVolumeRef {
23520    pub fn resolve<'m>(&self, model: &'m StepModel) -> ViewVolumeRefView<'m> {
23521        match self {
23522            ViewVolumeRef::ViewVolume(i) => {
23523                ViewVolumeRefView::ViewVolume(model.view_volume_arena.get(i.0))
23524            }
23525            ViewVolumeRef::Complex(i) => {
23526                ViewVolumeRefView::Complex(model.complex_unit_arena.get(i.0))
23527            }
23528        }
23529    }
23530    pub fn entity_key(&self) -> EntityKey {
23531        match self {
23532            ViewVolumeRef::ViewVolume(i) => EntityKey::ViewVolume(*i),
23533            ViewVolumeRef::Complex(i) => EntityKey::ComplexUnit(*i),
23534        }
23535    }
23536}
23537
23538#[derive(Clone, Copy, Debug)]
23539pub enum WorkItemRefView<'m> {
23540    ProductDefinitionFormation(&'m ProductDefinitionFormation),
23541    ProductDefinitionFormationWithSpecifiedSource(
23542        &'m ProductDefinitionFormationWithSpecifiedSource,
23543    ),
23544    Complex(&'m ComplexUnit),
23545}
23546impl WorkItemRef {
23547    pub fn resolve<'m>(&self, model: &'m StepModel) -> WorkItemRefView<'m> {
23548        match self {
23549            WorkItemRef::ProductDefinitionFormation(i) => {
23550                WorkItemRefView::ProductDefinitionFormation(
23551                    model.product_definition_formation_arena.get(i.0),
23552                )
23553            }
23554            WorkItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => {
23555                WorkItemRefView::ProductDefinitionFormationWithSpecifiedSource(
23556                    model
23557                        .product_definition_formation_with_specified_source_arena
23558                        .get(i.0),
23559                )
23560            }
23561            WorkItemRef::Complex(i) => WorkItemRefView::Complex(model.complex_unit_arena.get(i.0)),
23562        }
23563    }
23564    pub fn entity_key(&self) -> EntityKey {
23565        match self {
23566            WorkItemRef::ProductDefinitionFormation(i) => EntityKey::ProductDefinitionFormation(*i),
23567            WorkItemRef::ProductDefinitionFormationWithSpecifiedSource(i) => {
23568                EntityKey::ProductDefinitionFormationWithSpecifiedSource(*i)
23569            }
23570            WorkItemRef::Complex(i) => EntityKey::ComplexUnit(*i),
23571        }
23572    }
23573}