1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
-
- using Autodesk.Revit.DB;
- using Autodesk.Revit.DB.Mechanical;
- using Autodesk.Revit.DB.Plumbing;
- using RevitExport.Export;
- using RevitToJBim.Common;
- using SAGA.RevitUtils.Extends;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using RevitToJBim.Extension;
- using Autodesk.Revit.DB.Architecture;
- namespace RevitToJBim
- {
- public class ExportDataBuilder
- {
-
-
-
-
- public static List<ElementWrapper> CreateExportData(Document doc)
- {
- List<ElementWrapper> wrappers = new List<ElementWrapper>();
-
-
- #region Unit
- var formatOptions = doc.GetUnits().GetFormatOptions(UnitType.UT_Length);
- ElementWrapper wrapper = new ElementWrapper(formatOptions, null);
- wrappers.Add(wrapper);
- #endregion
- FilteredElementCollector collector = new FilteredElementCollector(doc);
- wrappers.AddRange(collector.Clone().FilterElements<Wall>().Select(e => new ElementWrapper(e)));
- wrappers.AddRange(collector.Clone().FilterElements<CurveElement>(BuiltInCategory.OST_MEPSpaceSeparationLines).Select(e => new ElementWrapper(e)));
-
- var sourceSpaces = collector.Clone().FilterElements<SpatialElement>(BuiltInCategory.OST_MEPSpaces).OfType<Space>().Where(t=>t.IsSpace()).ToList();
- wrappers.AddRange(sourceSpaces.Select(e => new ElementWrapper(e)));
-
- var sourceRooms = collector.Clone().FilterElements<SpatialElement>(BuiltInCategory.OST_Rooms).OfType<Room>().ToList();
- wrappers.AddRange(sourceRooms.Select(e => new ElementWrapper(e)));
- var mepCurves = doc.FilterElements<MEPCurve>().ToList();
- wrappers.AddRange(mepCurves.Select(e => new ElementWrapper(e)));
-
-
- var familyInstances = collector.Clone().FilterElements<FamilyInstance>();
- foreach (FamilyInstance familyInstance in familyInstances)
- {
- var tempWrapper = ElementWrapperFactory.CreateWrapper(familyInstance);
- if (tempWrapper != null)
- {
- wrappers.Add(tempWrapper);
- }
- }
- wrappers.AddRange(collector.Clone().FilterElements<Level>().Select(e => new ElementWrapper(e)));
- wrappers.AddRange(collector.Clone().FilterElements<Grid>().Select(e => new ElementWrapper(e)));
- return wrappers;
- }
- }
- }
|