public static Autodesk.Revit.DB.Solid MoveToOrigin(this Autodesk.Revit.DB.Solid solid) { var bb = solid.GetBoundingBox(); var originBb = bb.Transform.Origin; var translateTf = Autodesk.Revit.DB.Transform.CreateTranslation(-originBb); return(Autodesk.Revit.DB.SolidUtils.CreateTransformed(solid, translateTf)); }
public static Autodesk.Revit.DB.Solid DifferenceSolid(this Autodesk.Revit.DB.Solid targetSolid, IEnumerable <Autodesk.Revit.DB.Solid> otherSolids) { var mergeOtherSolid = otherSolids.MergeSolid(); otherSolids.ToList().Add(targetSolid); var mergeAllSolid = Autodesk.Revit.DB.BooleanOperationsUtils.ExecuteBooleanOperation(mergeOtherSolid, targetSolid, Autodesk.Revit.DB.BooleanOperationsType.Union); return(Autodesk.Revit.DB.BooleanOperationsUtils.ExecuteBooleanOperation(mergeAllSolid, mergeOtherSolid, Autodesk.Revit.DB.BooleanOperationsType.Difference)); }
public static Autodesk.Revit.DB.Solid ScaleSolid(this Autodesk.Revit.DB.Solid solid, double factor) { var centerPoint = solid.ComputeCentroid(); var tf = Autodesk.Revit.DB.Transform.Identity.ScaleBasis(factor); var scaledSolid = Autodesk.Revit.DB.SolidUtils.CreateTransformed(solid, tf); var newCenterPoint = scaledSolid.ComputeCentroid(); var translateVector = centerPoint - newCenterPoint; // Vecto tịnh tiến từ tâm mới về tâm cũ var translateTf = Autodesk.Revit.DB.Transform.CreateTranslation(translateVector); return(Autodesk.Revit.DB.SolidUtils.CreateTransformed(scaledSolid, translateTf)); }
public static Autodesk.DesignScript.Geometry.Solid ToProtoType(this Autodesk.Revit.DB.Solid solid) { var srfs = solid.Faces.Cast <Autodesk.Revit.DB.Face>().Select(x => x.ToProtoType()); return(Solid.ByJoinedSurfaces(srfs)); }