样式demo

This commit is contained in:
GG Z
2025-12-28 11:47:54 +08:00
parent ceccab9abb
commit 1fd8d2ced7
65 changed files with 2369 additions and 799 deletions

View File

@@ -1,8 +1,4 @@
using Autodesk.Revit.DB;
using ShrlAlgoToolkit.Revit.Extensions;
using System;
using System.IO;
using System.Windows;

View File

@@ -0,0 +1,29 @@
using Autodesk.Revit.DB;
namespace ShrlAlgoToolkit.Revit.Extensions;
public static class CategoryExtension
{
public static Element ToElement(this ElementId elementId, Document doc)
{
return doc.GetElement(elementId);
}
public static Category ToCategory(this BuiltInCategory builtInCategory, Document doc)
{
return Category.GetCategory(doc, builtInCategory);
}
public static BuiltInCategory ToBuiltInCategory(this Category category)
{
#if REVIT2018 || REVIT2020
var builtInCategory = (BuiltInCategory)category.Id.IntegerValue;
#elif REVIT2025
var builtInCategory = (BuiltInCategory)category.Id.Value;
#endif
return Enum.IsDefined(typeof(BuiltInCategory), builtInCategory)
? builtInCategory
: throw new ArgumentNullException(nameof(category), "不存在该内建类别");
}
}

View File

@@ -2,7 +2,7 @@
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Electrical;
namespace ShrlAlgoToolkit.Revit.Assists;
namespace ShrlAlgoToolkit.Revit.Extensions;
public static class ConnectorExtensions
{

View File

@@ -3,9 +3,9 @@ using System.Reflection;
using Autodesk.Revit.DB;
namespace ShrlAlgoToolkit.Revit.Assists;
namespace ShrlAlgoToolkit.Revit.Extensions;
public static class DebugAssist
public static class DebugExtensions
{
/// <summary>
/// 生成瞬态显示的方法

View File

@@ -6,13 +6,12 @@ using System.Windows;
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Visual;
using Autodesk.Revit.UI;
using ShrlAlgoToolkit.Revit.Assists;
using ShrlAlgoToolkit.Revit.Extensions;
namespace ShrlAlgoToolkit.Revit.Assists;
namespace ShrlAlgoToolkit.Revit.Extensions;
public static class DocumentAssist
public static class DocumentExtensions
{
/// <summary>
/// 轴网标注
@@ -881,7 +880,6 @@ public static class DocumentAssist
/// <param name="definitionId">定义名称,即是族名称、类型名称(强制一致),创建多个实例时,如果相同,则会合并在一个族中</param>
/// <param name="category">族类别</param>
/// <param name="geos">几何</param>
/// <param name="transform">位置</param>
/// <returns></returns>
public static DirectShape CreateDirectShapeInstance(this Document doc, string definitionId, BuiltInCategory category, List<GeometryObject> geos)
{

View File

@@ -1,7 +1,7 @@
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Architecture;
namespace ShrlAlgoToolkit.Revit.Assists;
namespace ShrlAlgoToolkit.Revit.Extensions;
public static class ElementCollectorExtensions
{

View File

@@ -1,51 +1,9 @@
using Autodesk.Revit.DB;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
namespace ShrlAlgoToolkit.Revit.Extensions;
namespace ShrlAlgoToolkit.Revit.Assists;
public static class ElementAssist
public static class ElementExtensions
{
/// <summary>
///获取元素的包围框
/// </summary>
/// <param name="elements"></param>
/// <returns></returns>
public static BoundingBoxXYZ GetBoundingBox(List<Element> elements)
{
if (elements == null || elements.Count == 0)
{
return new BoundingBoxXYZ();
}
var gmax = XYZ.Zero;
var gmin = XYZ.Zero;
var elementIds = elements.Select(e => e.Id).ToList();
var doc = elements.FirstOrDefault()?.Document;
using (SubTransaction sub = new SubTransaction(doc))
{
sub.Start();
Group g;
if (doc.IsFamilyDocument)
{
g = doc.FamilyCreate.NewGroup(elementIds);
}
else
{
g = doc.Create.NewGroup(elementIds);
}
gmax = g.get_BoundingBox(null).Max;
gmin = g.get_BoundingBox(null).Min;
sub.RollBack();
}
return new BoundingBoxXYZ
{
Max = gmax,
Min = gmin
};
}
/// <summary>
/// 镜像元素
/// </summary>

View File

@@ -4,7 +4,7 @@ using System.Windows;
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.ExtensibleStorage;
namespace ShrlAlgoToolkit.Revit.Assists;
namespace ShrlAlgoToolkit.Revit.Extensions;
/// <summary>
/// 可扩展存储工具Schema框架->由字段Field组成是定义
@@ -148,8 +148,7 @@ public static class ExtensibleStorageExtensions
/// <summary>
/// 通过guid名称获取Schema
/// </summary>
/// <param name="elm"></param>
/// <param name="schemaName"></param>
/// <param name="schemaGuid"></param>
/// <returns></returns>
public static Schema GetSchemaByGuid(Guid schemaGuid)
{

View File

@@ -1,6 +1,6 @@
using Autodesk.Revit.DB;
namespace ShrlAlgoToolkit.Revit.Assists;
namespace ShrlAlgoToolkit.Revit.Extensions;
internal static class HostObjectExtensions
{

View File

@@ -3,9 +3,9 @@ using System.Text;
using Autodesk.Revit.DB;
namespace ShrlAlgoToolkit.Revit.Assists;
namespace ShrlAlgoToolkit.Revit.Extensions;
public static class ImportInstanceAssist
public static class ImportInstanceExtensions
{
/// <summary>
/// 根据所选的参考,获取所有相同的块参照

View File

@@ -1,6 +0,0 @@
namespace ShrlAlgoToolkit.Revit.Extensions
{
internal class JIGAssist
{
}
}

View File

@@ -5,7 +5,7 @@ using Autodesk.Revit.DB.Plumbing;
using System.Diagnostics;
namespace ShrlAlgoToolkit.Revit.Assists;
namespace ShrlAlgoToolkit.Revit.Extensions;
/// <summary>
/// MEP扩展类

View File

@@ -6,7 +6,7 @@ using System.Diagnostics;
using System.IO;
using System.Text;
namespace ShrlAlgoToolkit.Revit.Assists;
namespace ShrlAlgoToolkit.Revit.Extensions;
public static class MaterialExtensions

View File

@@ -1,8 +1,4 @@
using System;
using System.Collections.Generic;
using System.Text;
using Autodesk.Revit.DB;
using Autodesk.Revit.DB;
namespace ShrlAlgoToolkit.Revit.Extensions
{

View File

@@ -1,7 +1,8 @@
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Architecture;
using ShrlAlgoToolkit.Core.Assists;
namespace ShrlAlgoToolkit.Revit.Assists;
namespace ShrlAlgoToolkit.Revit.Extensions;
/// <summary>
@@ -224,13 +225,12 @@ public static class RoomExtensions
material == null
? new SolidOptions(ElementId.InvalidElementId, ElementId.InvalidElementId)
: new SolidOptions(material.Id, ElementId.InvalidElementId);
options = new SolidOptions(material.Id, ElementId.InvalidElementId);
var solid = GeometryCreationUtilities.CreateExtrusionGeometry(curveLoops, XYZ.BasisZ, height);
var solid = GeometryCreationUtilities.CreateExtrusionGeometry(curveLoops, XYZ.BasisZ, height, options);
var directShape = doc.CreateDirectShapeInstance(
"房间实体",
BuiltInCategory.OST_GenericModel,
new List<GeometryObject> { solid });
[solid]);
directShape.get_Parameter(BuiltInParameter.DOOR_NUMBER).Set(room.Name);
//ds.SetName(room.Name);
//var option = ds.GetOptions();
@@ -241,11 +241,7 @@ public static class RoomExtensions
var elements = new FilteredElementCollector(doc);
var solidFillPattern = elements.OfClass(typeof(FillPatternElement)).Cast<FillPatternElement>().First(a => a.GetFillPattern().IsSolidFill);
var random = new Random(DateTime.Now.Millisecond);
var r = Convert.ToByte(random.Next(0, 255));
var g = Convert.ToByte(random.Next(0, 255));
var b = Convert.ToByte(random.Next(0, 255));
var color = new Color(r, g, b);
var color = ColorAssist.GetDistinctColorById(directShape.Id);
var ogs = new OverrideGraphicSettings();
ogs.SetProjectionLineColor(color);
#if REVIT2018

View File

@@ -1,12 +1,10 @@
using Autodesk.Revit.DB;
using ShrlAlgoToolkit.Revit.Assists;
namespace ShrlAlgoToolkit.Revit.Assists;
namespace ShrlAlgoToolkit.Revit.Extensions;
public static class SpatialExtensions
{
private static readonly double _curveTolerance = 0.0025;
private static readonly double CurveTolerance = 0.0025;
/// <summary>
/// 容差
/// </summary>
@@ -117,7 +115,7 @@ public static class SpatialExtensions
startParameter += param1;
if (curve.IsInside(startParameter))
{
if (startParameter < _curveTolerance || originParameter < _curveTolerance)//过短返回空一般是0
if (startParameter < CurveTolerance || originParameter < CurveTolerance)//过短返回空一般是0
{
startCurve = null;
}

View File

@@ -1,11 +1,10 @@
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Autodesk.Revit.UI.Selection;
using ShrlAlgoToolkit.Revit.Assists;
namespace ShrlAlgoToolkit.Revit.Assists;
namespace ShrlAlgoToolkit.Revit.Extensions;
public static class UIDocumentAssist
public static class UIDocumentExtensons
{
/// <summary>
/// 运行命令选择元素或选择元素执行操作

View File

@@ -10,15 +10,13 @@ using System.IO;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Windows;
using System.Windows.Input;
using System.Windows.Interop;
using System.Windows.Media.Imaging;
using adWin = Autodesk.Windows;
namespace ShrlAlgoToolkit.Revit.Assists;
namespace ShrlAlgoToolkit.Revit.Extensions;
public static class UIExtensions
{

View File

@@ -3,9 +3,7 @@
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using ShrlAlgoToolkit.Revit.Extensions;
namespace ShrlAlgoToolkit.Revit.Assists;
namespace ShrlAlgoToolkit.Revit.Extensions;
/// SectionView:
/// RightDirection = CropBox.Transform.BasisX;

View File

@@ -1,10 +1,7 @@
using Autodesk.Revit.DB;
using ShrlAlgoToolkit.Revit.Assists;
using ShrlAlgoToolkit.Revit.Extensions;
using ShrlAlgoToolkit.Revit.Assists;
namespace ShrlAlgoToolkit.Revit.Assists;
namespace ShrlAlgoToolkit.Revit.Extensions;
public static class WallExtensions
{