/// <summary> /// 从构件上获取楼层信息 /// </summary> /// <param name="e"></param> /// <param name="doc"></param> /// <param name="units"></param> /// <returns></returns> public static LevelElement GetLevel(this Autodesk.Revit.DB.Element e, Document doc, UnitConversionFactors units) { if (!e.LevelId.Equals(ElementId.InvalidElementId)) { var level = (Level)ElementFilterUtils.GetElement(doc, e.LevelId); return(level.GetLevel(units)); } var l = GetLevelFromParam(doc, e); if (l != null) { return(l.GetLevel(units)); } return(null); }
private static Level GetLevelFromParam(Document doc, Autodesk.Revit.DB.Element e) { //var name = "参照标高"; //string value = string.Empty; var ps = e.Parameters; var psIter = ps.ForwardIterator(); while (psIter.MoveNext()) { var p = (Parameter)psIter.Current; if (p.StorageType == StorageType.ElementId) { var element = ElementFilterUtils.GetElement(doc, p.AsElementId()) as Level; if (element != null) { return(element); } } } return(null); }
public static Element GetElement(this Autodesk.Revit.DB.Element e, Document doc) { var elem = new Element { Id = e.Id.IntegerValue, Guid = e.UniqueId, Name = e.Name }; try { var guid = e.GetIFCGuid(); elem.IfcId = guid; } catch { } if (e.Category != null) { elem.Category = new ElementCategory { Id = e.Category.Id.IntegerValue, Name = e.Category.Name }; } var pIter = e.Parameters.ForwardIterator(); while (pIter.MoveNext()) { var param = GetParameter((Parameter)pIter.Current, doc); elem.Parameters.Add(param); } return(elem); }
public static string GetIFCGuid(this Autodesk.Revit.DB.Element e) { var guid = ExportUtils.GetExportId(e.Document, e.Id); return(ConvertToIFCGuid(guid)); }