-
Notifications
You must be signed in to change notification settings - Fork 201
Expand file tree
/
Copy pathElementWrapper.cs
More file actions
333 lines (273 loc) · 11.6 KB
/
Copy pathElementWrapper.cs
File metadata and controls
333 lines (273 loc) · 11.6 KB
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
using System;
using Autodesk.DesignScript.Runtime;
using Autodesk.Revit.DB;
using Revit.Elements.Views;
using View3D = Revit.Elements.Views.View3D;
namespace Revit.Elements
{
/// <summary>
/// Element wrapper supplies tools for wrapping Autodesk.Revit.DB.Element types
/// in their associated Revit.Elements.Element wrapper
/// </summary>
[SupressImportIntoVM]
public static class ElementWrapper
{
/// <summary>
/// If possible, wrap the element in a DS type
/// </summary>
/// <param name="ele"></param>
/// <param name="isRevitOwned">Whether the returned object should be revit owned or not</param>
/// <returns></returns>
public static Element ToDSType(this Autodesk.Revit.DB.Element ele, bool isRevitOwned)
{
// cast to dynamic to dispatch to the appropriate wrapping method
dynamic dynamicElement = ele;
return ElementWrapper.Wrap(dynamicElement, isRevitOwned);
}
#region Wrap methods
public static UnknownElement Wrap(Autodesk.Revit.DB.Element element, bool isRevitOwned)
{
return UnknownElement.FromExisting(element, isRevitOwned);
}
public static AbstractFamilyInstance Wrap(Autodesk.Revit.DB.FamilyInstance ele, bool isRevitOwned)
{
if (AdaptiveComponentInstanceUtils.HasAdaptiveFamilySymbol(ele))
{
return AdaptiveComponent.FromExisting(ele, isRevitOwned);
}
if (ele.StructuralType != Autodesk.Revit.DB.Structure.StructuralType.NonStructural &&
ele.StructuralType != Autodesk.Revit.DB.Structure.StructuralType.Footing)
{
return StructuralFraming.FromExisting(ele, isRevitOwned);
}
return FamilyInstance.FromExisting(ele, isRevitOwned);
}
public static DirectShape Wrap(Autodesk.Revit.DB.DirectShape ele, bool isRevitOwned)
{
return DirectShape.FromExisting(ele, isRevitOwned);
}
public static DividedPath Wrap(Autodesk.Revit.DB.DividedPath ele, bool isRevitOwned)
{
return DividedPath.FromExisting(ele, isRevitOwned);
}
public static DividedSurface Wrap(Autodesk.Revit.DB.DividedSurface ele, bool isRevitOwned)
{
return DividedSurface.FromExisting(ele, isRevitOwned);
}
public static Family Wrap(Autodesk.Revit.DB.Family ele, bool isRevitOwned)
{
return Family.FromExisting(ele, isRevitOwned);
}
public static FamilyType Wrap(Autodesk.Revit.DB.FamilySymbol ele, bool isRevitOwned)
{
return FamilyType.FromExisting(ele, isRevitOwned);
}
public static Floor Wrap(Autodesk.Revit.DB.Floor ele, bool isRevitOwned)
{
return Floor.FromExisting(ele, isRevitOwned);
}
public static FloorType Wrap(Autodesk.Revit.DB.FloorType ele, bool isRevitOwned)
{
return FloorType.FromExisting(ele, isRevitOwned);
}
public static Form Wrap(Autodesk.Revit.DB.Form ele, bool isRevitOwned)
{
return Form.FromExisting(ele, isRevitOwned);
}
[SupressImportIntoVM]
public static FreeForm Wrap(Autodesk.Revit.DB.FreeFormElement ele, bool isRevitOwned)
{
return FreeForm.FromExisting(ele, isRevitOwned);
}
public static Grid Wrap(Autodesk.Revit.DB.Grid ele, bool isRevitOwned)
{
return Grid.FromExisting(ele, isRevitOwned);
}
public static Level Wrap(Autodesk.Revit.DB.Level ele, bool isRevitOwned)
{
return Level.FromExisting(ele, isRevitOwned);
}
public static ModelCurve Wrap(Autodesk.Revit.DB.ModelCurve ele, bool isRevitOwned)
{
return ModelCurve.FromExisting(ele, isRevitOwned);
}
public static CurveByPoints Wrap(Autodesk.Revit.DB.CurveByPoints ele, bool isRevitOwned)
{
return CurveByPoints.FromExisting(ele, isRevitOwned);
}
public static ModelText Wrap(Autodesk.Revit.DB.ModelText ele, bool isRevitOwned)
{
return ModelText.FromExisting(ele, isRevitOwned);
}
public static ModelTextType Wrap(Autodesk.Revit.DB.ModelTextType ele, bool isRevitOwned)
{
return ModelTextType.FromExisting(ele, isRevitOwned);
}
public static ReferencePlane Wrap(Autodesk.Revit.DB.ReferencePlane ele, bool isRevitOwned)
{
return ReferencePlane.FromExisting(ele, isRevitOwned);
}
public static ReferencePoint Wrap(Autodesk.Revit.DB.ReferencePoint ele, bool isRevitOwned)
{
return ReferencePoint.FromExisting(ele, isRevitOwned);
}
public static SketchPlane Wrap(Autodesk.Revit.DB.SketchPlane ele, bool isRevitOwned)
{
return SketchPlane.FromExisting(ele, isRevitOwned);
}
public static Wall Wrap(Autodesk.Revit.DB.Wall ele, bool isRevitOwned)
{
return Wall.FromExisting(ele, isRevitOwned);
}
public static WallType Wrap(Autodesk.Revit.DB.WallType ele, bool isRevitOwned)
{
return WallType.FromExisting(ele, isRevitOwned);
}
public static View3D Wrap(Autodesk.Revit.DB.View3D view, bool isRevitOwned)
{
if (!view.IsTemplate)
{
if (view.IsPerspective)
return PerspectiveView.FromExisting(view, isRevitOwned);
else
return AxonometricView.FromExisting(view, isRevitOwned);
}
return null;
}
public static Element Wrap(Autodesk.Revit.DB.ViewPlan view, bool isRevitOwned)
{
switch (view.ViewType)
{
case ViewType.CeilingPlan:
return CeilingPlanView.FromExisting(view, isRevitOwned);
case ViewType.FloorPlan:
return FloorPlanView.FromExisting(view, isRevitOwned);
case ViewType.EngineeringPlan:
return StructuralPlanView.FromExisting(view, isRevitOwned);
case ViewType.AreaPlan:
return AreaPlanView.FromExisting(view, isRevitOwned);
default:
return UnknownElement.FromExisting(view, true);
}
}
public static SectionView Wrap(Autodesk.Revit.DB.ViewSection view, bool isRevitOwned)
{
return SectionView.FromExisting(view, isRevitOwned);
}
public static ScheduleView Wrap(Autodesk.Revit.DB.ViewSchedule view, bool isRevitOwned)
{
return ScheduleView.FromExisting(view, isRevitOwned);
}
public static Element Wrap(Autodesk.Revit.DB.View view, bool isRevitOwned)
{
switch (view.ViewType)
{
case ViewType.Legend:
return Legend.FromExisting(view, isRevitOwned);
default:
return UnknownElement.FromExisting(view, true);
}
}
public static Sheet Wrap(Autodesk.Revit.DB.ViewSheet view, bool isRevitOwned)
{
return Sheet.FromExisting(view, isRevitOwned);
}
public static DraftingView Wrap(Autodesk.Revit.DB.ViewDrafting view, bool isRevitOwned)
{
return DraftingView.FromExisting(view, isRevitOwned);
}
public static Topography Wrap(Autodesk.Revit.DB.Architecture.TopographySurface topoSurface, bool isRevitOwned)
{
return Topography.FromExisting(topoSurface, isRevitOwned);
}
public static object Wrap(Autodesk.Revit.DB.Panel ele, bool isRevitOwned)
{
if (AdaptiveComponentInstanceUtils.IsAdaptiveFamilySymbol(ele.Symbol))
{
return AdaptiveComponent.FromExisting(ele, isRevitOwned);
}
return CurtainPanel.FromExisting(ele, isRevitOwned);
}
public static Mullion Wrap(Autodesk.Revit.DB.Mullion ele, bool isRevitOwned)
{
return Mullion.FromExisting(ele, isRevitOwned);
}
public static Dimension Wrap(Autodesk.Revit.DB.Dimension ele, bool isRevitOwned)
{
return Dimension.FromExisting(ele, isRevitOwned);
}
public static DimensionType Wrap(Autodesk.Revit.DB.DimensionType ele, bool isRevitOwned)
{
return DimensionType.FromExisting(ele, isRevitOwned);
}
public static FilledRegionType Wrap(Autodesk.Revit.DB.FilledRegionType ele, bool isRevitOwned)
{
return FilledRegionType.FromExisting(ele, isRevitOwned);
}
public static FilledRegion Wrap(Autodesk.Revit.DB.FilledRegion ele, bool isRevitOwned)
{
return FilledRegion.FromExisting(ele, isRevitOwned);
}
public static FillPatternElement Wrap(Autodesk.Revit.DB.FillPatternElement ele, bool isRevitOwned)
{
return FillPatternElement.FromExisting(ele, isRevitOwned);
}
public static LinePatternElement Wrap(Autodesk.Revit.DB.LinePatternElement ele, bool isRevitOwned)
{
return LinePatternElement.FromExisting(ele, isRevitOwned);
}
public static TextNote Wrap(Autodesk.Revit.DB.TextNote ele, bool isRevitOwned)
{
return TextNote.FromExisting(ele, isRevitOwned);
}
public static Tag Wrap(Autodesk.Revit.DB.IndependentTag ele, bool isRevitOwned)
{
return Tag.FromExisting(ele, isRevitOwned);
}
public static TextNoteType Wrap(Autodesk.Revit.DB.TextNoteType ele, bool isRevitOwned)
{
return TextNoteType.FromExisting(ele, isRevitOwned);
}
public static Revision Wrap(Autodesk.Revit.DB.Revision ele, bool isRevitOwned)
{
return Revision.FromExisting(ele, isRevitOwned);
}
public static RevisionCloud Wrap(Autodesk.Revit.DB.RevisionCloud ele, bool isRevitOwned)
{
return RevisionCloud.FromExisting(ele, isRevitOwned);
}
public static Revit.Filter.ParameterFilterElement Wrap(Autodesk.Revit.DB.ParameterFilterElement ele, bool isRevitOwned)
{
return Revit.Filter.ParameterFilterElement.FromExisting(ele, isRevitOwned);
}
public static Room Wrap(Autodesk.Revit.DB.Architecture.Room ele, bool isRevitOwned)
{
return Room.FromExisting(ele, isRevitOwned);
}
public static DetailCurve Wrap(Autodesk.Revit.DB.DetailCurve ele, bool isRevitOwned)
{
return DetailCurve.FromExisting(ele, isRevitOwned);
}
public static ImportInstance Wrap(Autodesk.Revit.DB.ImportInstance ele, bool isRevitOwned)
{
return ImportInstance.FromExisting(ele, isRevitOwned);
}
public static GlobalParameter Wrap(Autodesk.Revit.DB.GlobalParameter ele, bool isRevitOwned)
{
return GlobalParameter.FromExisting(ele, isRevitOwned);
}
public static FaceWall Wrap(Autodesk.Revit.DB.FaceWall ele, bool isRevitOwned)
{
return FaceWall.FromExisting(ele, isRevitOwned);
}
public static CurtainSystem Wrap(Autodesk.Revit.DB.CurtainSystem ele, bool isRevitOwned)
{
return CurtainSystem.FromExisting(ele, isRevitOwned);
}
public static Material Wrap(Autodesk.Revit.DB.Material ele, bool isRevitOwned)
{
return Material.FromExisting(ele, isRevitOwned);
}
#endregion
}
}