-
Notifications
You must be signed in to change notification settings - Fork 172
/
Copy pathIfcExtendedMaterialProperties.cs
133 lines (120 loc) · 3.71 KB
/
IfcExtendedMaterialProperties.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
// ------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool Xbim.CodeGeneration
//
// Changes to this file may cause incorrect behaviour and will be lost if
// the code is regenerated.
// </auto-generated>
// ------------------------------------------------------------------------------
using Xbim.Ifc2x3.MeasureResource;
using Xbim.Ifc2x3.PropertyResource;
using System;
using System.Collections.Generic;
using System.Linq;
using Xbim.Common;
using Xbim.Common.Exceptions;
using Xbim.Ifc2x3.MaterialPropertyResource;
//## Custom using statements
//##
namespace Xbim.Ifc2x3.MaterialPropertyResource
{
[ExpressType("IfcExtendedMaterialProperties", 585)]
// ReSharper disable once PartialTypeWithSinglePart
public partial class @IfcExtendedMaterialProperties : IfcMaterialProperties, IInstantiableEntity, IContainsEntityReferences, IEquatable<@IfcExtendedMaterialProperties>
{
//internal constructor makes sure that objects are not created outside of the model/ assembly controlled area
internal IfcExtendedMaterialProperties(IModel model, int label, bool activated) : base(model, label, activated)
{
_extendedProperties = new ItemSet<IfcProperty>( this, 0, 2);
}
#region Explicit attribute fields
private readonly ItemSet<IfcProperty> _extendedProperties;
private IfcText? _description;
private IfcLabel _name;
#endregion
#region Explicit attribute properties
[EntityAttribute(2, EntityAttributeState.Mandatory, EntityAttributeType.Set, EntityAttributeType.Class, new int [] { 1 }, new int [] { -1 }, 2)]
public IItemSet<IfcProperty> @ExtendedProperties
{
get
{
if(_activated) return _extendedProperties;
Activate();
return _extendedProperties;
}
}
[EntityAttribute(3, EntityAttributeState.Optional, EntityAttributeType.None, EntityAttributeType.None, null, null, 3)]
public IfcText? @Description
{
get
{
if(_activated) return _description;
Activate();
return _description;
}
set
{
SetValue( v => _description = v, _description, value, "Description", 3);
}
}
[EntityAttribute(4, EntityAttributeState.Mandatory, EntityAttributeType.None, EntityAttributeType.None, null, null, 4)]
public IfcLabel @Name
{
get
{
if(_activated) return _name;
Activate();
return _name;
}
set
{
SetValue( v => _name = v, _name, value, "Name", 4);
}
}
#endregion
#region IPersist implementation
public override void Parse(int propIndex, IPropertyValue value, int[] nestedIndex)
{
switch (propIndex)
{
case 0:
base.Parse(propIndex, value, nestedIndex);
return;
case 1:
_extendedProperties.InternalAdd((IfcProperty)value.EntityVal);
return;
case 2:
_description = value.StringVal;
return;
case 3:
_name = value.StringVal;
return;
default:
throw new XbimParserException(string.Format("Attribute index {0} is out of range for {1}", propIndex + 1, GetType().Name.ToUpper()));
}
}
#endregion
#region Equality comparers and operators
public bool Equals(@IfcExtendedMaterialProperties other)
{
return this == other;
}
#endregion
#region IContainsEntityReferences
IEnumerable<IPersistEntity> IContainsEntityReferences.References
{
get
{
if (@Material != null)
yield return @Material;
foreach(var entity in @ExtendedProperties)
yield return entity;
}
}
#endregion
#region Custom code (will survive code regeneration)
//## Custom code
//##
#endregion
}
}