/* ==============================================================================
* 功能描述:ParseGrid
* 创 建 者:Garrett
* 创建日期:2019/6/26 15:16:06
* ==============================================================================*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autodesk.Revit.DB;
using JBIM;
using JBIM.Definition;
using RevitExport.Export;
using RevitToJBim.Common;
using SAGA.RevitUtils.Extends;
using JGrid=JBIM.Component.Grid;
namespace RevitToJBim.ComponentParse
{
///
/// ParseGrid
///
[UsableParseAttribute]
class ParseGrid : ParseBase
{
public override List FastIndex()
{
return new List(){typeof(Grid).FullName};
}
public override bool Match(ElementWrapper wrapper)
{
return wrapper.RefElement is Grid;
}
protected override List ParseInner(ElementWrapper wrapper, JBimParseContext context)
{
var refElement = wrapper.RefElement as Grid;
if (refElement == null)
{
return null;
}
JGrid jObject = new JGrid();
//ElementType
ParseCore.AttachObject(jObject, wrapper);
//Name,SourceId
jObject.Name = refElement.Name;
//Location
var locations = refElement.GetCurve().Tessellate();
jObject.Location = GeometryLocation.CreateLineLocation(BimConvert.ConvertToXYZs(locations.ToList()));
//Id
context.AddBimObject(jObject);
return new List() { jObject.Id };
}
}
}