Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        public static string GetIFCGuid(this Autodesk.Revit.DB.Element e)
        {
            var guid = ExportUtils.GetExportId(e.Document, e.Id);

            return(ConvertToIFCGuid(guid));
        }