61 lines
1.8 KiB
C#
61 lines
1.8 KiB
C#
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Net;
|
|||
|
|
using System.Text;
|
|||
|
|
|
|||
|
|
using Autodesk.Revit.DB;
|
|||
|
|
|
|||
|
|
namespace ShrlAlgoToolkit.RevitCore.Extensions;
|
|||
|
|
|
|||
|
|
internal static class FamilyInstanceExtensions
|
|||
|
|
{
|
|||
|
|
public static bool IsNested(this Autodesk.Revit.DB.FamilyInstance familyInstance)
|
|||
|
|
{
|
|||
|
|
return familyInstance.SuperComponent != null;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public static bool CanBeMove(this Autodesk.Revit.DB.FamilyInstance familyInstance)
|
|||
|
|
{
|
|||
|
|
return !(familyInstance.Symbol.Family.FamilyPlacementType == FamilyPlacementType.WorkPlaneBased &&
|
|||
|
|
familyInstance.Host == null &&
|
|||
|
|
familyInstance.HostFace == null);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public static void DeleteEmptyType(this Document famDocument)
|
|||
|
|
{
|
|||
|
|
if(famDocument == null)
|
|||
|
|
{
|
|||
|
|
throw new ArgumentNullException(nameof(famDocument));
|
|||
|
|
}
|
|||
|
|
if(!famDocument.IsFamilyDocument)
|
|||
|
|
{
|
|||
|
|
throw new InvalidOperationException("该文档不是族文档");
|
|||
|
|
}
|
|||
|
|
var fm = famDocument.FamilyManager;
|
|||
|
|
foreach (FamilyType item in fm.Types)
|
|||
|
|
{
|
|||
|
|
var b = string.IsNullOrWhiteSpace(item.Name);
|
|||
|
|
//MessageBox.Show(item.Name);
|
|||
|
|
if (b)
|
|||
|
|
{
|
|||
|
|
fm.CurrentType = item;
|
|||
|
|
fm.DeleteCurrentType();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public static void Rotate(this Autodesk.Revit.DB.FamilyInstance familyInstance, double radian)
|
|||
|
|
{
|
|||
|
|
var axis = Line.CreateBound(familyInstance.GetTransform().Origin, familyInstance.GetTransform().Origin + XYZ.BasisZ);
|
|||
|
|
ElementTransformUtils.RotateElement(familyInstance.Document, familyInstance.Id, axis, radian);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//extension (Autodesk.Revit.DB.FamilyInstance familyInstance)
|
|||
|
|
//{
|
|||
|
|
// public bool IsNested()
|
|||
|
|
// {
|
|||
|
|
// return familyInstance.SuperComponent != null;
|
|||
|
|
// }
|
|||
|
|
//}
|
|||
|
|
}
|