添加项目文件。
This commit is contained in:
62
CDMUtil/ToCDM/CDMFloor.cs
Normal file
62
CDMUtil/ToCDM/CDMFloor.cs
Normal file
@@ -0,0 +1,62 @@
|
||||
using Autodesk.Revit.DB;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace CDM.Interop.Revit.CDMComponent
|
||||
{
|
||||
class CDMFloor : CDMComponent
|
||||
{
|
||||
public CDMFloor(Document doc, Floor floor, View3D v3d)
|
||||
{
|
||||
self = floor;
|
||||
|
||||
base.SymbolId = floor.FloorType.Id;
|
||||
base.LevelId = floor.LevelId;
|
||||
base.EleId = floor.Id;
|
||||
|
||||
//base.Name = floor.FloorType.FamilyName + "@" + floor.Name;
|
||||
base.CDMTypeId = HcdmType.CDMFloor;
|
||||
|
||||
max = floor.get_BoundingBox(v3d).Max;
|
||||
min = floor.get_BoundingBox(v3d).Min;
|
||||
base.Xl = min.X * 0.3048;
|
||||
base.Yw = (max.Y + min.Y) / 2 * 0.3048;
|
||||
base.Zh = Convert.ToDouble(floor.get_Parameter(BuiltInParameter.STRUCTURAL_ELEVATION_AT_TOP).AsValueString()) / 1000;
|
||||
|
||||
CDMopenings = GetCDMOpenings(doc, v3d);
|
||||
}
|
||||
private List<CDMOpening> GetCDMOpenings(Document doc, View3D view3D)
|
||||
{
|
||||
var openingcol = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_FloorOpening).OfClass(typeof(Opening)).Cast<Opening>();
|
||||
var openings = from open in openingcol
|
||||
where open.Host.Id == self.Id
|
||||
select open;
|
||||
var CDMOpenings = new List<CDMOpening>();
|
||||
foreach (var opening in openings)
|
||||
{
|
||||
CDMOpening cdmopening = new CDMOpening(opening, view3D);
|
||||
CDMOpenings.Add(cdmopening);
|
||||
}
|
||||
return CDMOpenings;
|
||||
}
|
||||
private XYZ max;
|
||||
private XYZ min;
|
||||
private Floor self;
|
||||
/// <summary>
|
||||
/// 板长
|
||||
/// </summary>
|
||||
public double L => (max.X - min.X) * 304.8;
|
||||
/// <summary>
|
||||
/// 板宽
|
||||
/// </summary>
|
||||
public double W => (max.Y - min.Y) * 304.8;
|
||||
/// <summary>
|
||||
/// 板厚
|
||||
/// </summary>
|
||||
public double T => Convert.ToDouble(self.FloorType.get_Parameter(BuiltInParameter.FLOOR_ATTR_DEFAULT_THICKNESS_PARAM).AsValueString());
|
||||
public List<CDMOpening> CDMopenings { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user