123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
-
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using Autodesk.Revit.DB;
- using SAGA.DotNetUtils.Extend;
- using SAGA.RevitUtils;
- using SAGA.RevitUtils.Extends;
- namespace RevitToJBim.Extension
- {
- public static class WallExtension
- {
-
-
-
-
-
- public static List<PlanarFace> GetBottomFaces(this Wall wall)
- {
- var solids = Extension.GeometryElementExtension.GetSolids(wall);
-
-
-
- double volume = double.MinValue;
- List<PlanarFace> faces = new List<PlanarFace>();
- foreach (var solid in solids)
- {
- var tempVolume = solid.Volume;
- double topZ = double.MaxValue;
-
- if (tempVolume.IsThan(volume))
- {
- volume = tempVolume;
- faces.Clear();
- }
- else
- {
- continue;
- }
- foreach (Face face in solid.Faces)
- {
- if (face is PlanarFace planarFace && planarFace.FaceNormal.IsEqual(-XYZ.BasisZ))
- {
- var tempZ = planarFace.Origin.Z;
-
- if (tempZ.IsLess(topZ))
- {
- faces.Clear();
- topZ = tempZ;
- faces.Add(planarFace);
- }
- else if(tempZ.IsEqual(topZ))
- {
- faces.Add(planarFace);
- }
-
- }
- }
- }
- return faces;
- }
- }
- }
|