样式demo
This commit is contained in:
@@ -1,8 +1,4 @@
|
||||
using Autodesk.Revit.DB;
|
||||
|
||||
using ShrlAlgoToolkit.Revit.Extensions;
|
||||
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Windows;
|
||||
|
||||
|
||||
29
ShrlAlgoToolkit.Revit/Extensions/CategoryExtension.cs
Normal file
29
ShrlAlgoToolkit.Revit/Extensions/CategoryExtension.cs
Normal 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), "不存在该内建类别");
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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>
|
||||
/// 生成瞬态显示的方法
|
||||
@@ -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)
|
||||
{
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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>
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using Autodesk.Revit.DB;
|
||||
|
||||
namespace ShrlAlgoToolkit.Revit.Assists;
|
||||
namespace ShrlAlgoToolkit.Revit.Extensions;
|
||||
|
||||
internal static class HostObjectExtensions
|
||||
{
|
||||
|
||||
@@ -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>
|
||||
/// 根据所选的参考,获取所有相同的块参照
|
||||
@@ -1,6 +0,0 @@
|
||||
namespace ShrlAlgoToolkit.Revit.Extensions
|
||||
{
|
||||
internal class JIGAssist
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,7 @@ using Autodesk.Revit.DB.Plumbing;
|
||||
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace ShrlAlgoToolkit.Revit.Assists;
|
||||
namespace ShrlAlgoToolkit.Revit.Extensions;
|
||||
|
||||
/// <summary>
|
||||
/// MEP扩展类
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
/// 运行命令选择元素或选择元素执行操作
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user