重命名,明细表更新
This commit is contained in:
@@ -5,14 +5,10 @@ using System;
|
||||
using RookieStation.Utils;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Controls;
|
||||
using System.Collections.ObjectModel;
|
||||
using Autodesk.Revit.DB.Architecture;
|
||||
using System.Security.Cryptography;
|
||||
using RookieStation.Construction.Views;
|
||||
using System.Windows.Media.Media3D;
|
||||
using System.Windows.Forms.VisualStyles;
|
||||
using System.Windows.Controls;
|
||||
|
||||
namespace RookieStation.Construction.ExecuteCmd
|
||||
{
|
||||
@@ -31,8 +27,8 @@ namespace RookieStation.Construction.ExecuteCmd
|
||||
WpfAutoModeling settings = CommonUtils.ShowDialog<WpfAutoModeling>();
|
||||
if (settings.DialogResult == true)
|
||||
{
|
||||
length = settings.Length / 304.8;
|
||||
width = settings.Width / 304.8;
|
||||
length = settings.mLength / 304.8;
|
||||
width = settings.mWidth / 304.8;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -42,8 +38,8 @@ namespace RookieStation.Construction.ExecuteCmd
|
||||
var pointsCorner = new List<XYZ>();
|
||||
//边界
|
||||
IList<Curve> edges = new List<Curve>();
|
||||
|
||||
var p1 = uidoc.Selection.PickPoint(ObjectSnapTypes.Endpoints, "请选择定位点");
|
||||
var p1 = new XYZ(-length / 2, -width / 2, 0);
|
||||
//var p1 = uidoc.Selection.PickPoint(ObjectSnapTypes.Endpoints, "请选择定位点");
|
||||
var p2 = p1.Add(width * XYZ.BasisY);
|
||||
var p3 = p1.Add(new XYZ(length, width, 0));
|
||||
var p4 = p1.Add(length * XYZ.BasisX);
|
||||
@@ -72,22 +68,34 @@ namespace RookieStation.Construction.ExecuteCmd
|
||||
{
|
||||
doc.InvokeGroup(tg =>
|
||||
{
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
CreateGrids(doc, edges);
|
||||
}, "创建轴网");
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
//边界组
|
||||
CreateFloor(doc, edges);
|
||||
});
|
||||
}, "创建楼板");
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
CreateColumnAndFoundation(doc, edges, interval);
|
||||
}, "创建基础和柱");
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
CreateFramings(doc, edges, interval);
|
||||
}, "创建地梁");
|
||||
double horizontalOffest = 150 / 304.8;
|
||||
CreateFramings(doc, edges, horizontalOffest, interval);
|
||||
CreateOuterWallList(doc, loop, horizontalOffest);
|
||||
}, "创建地梁,外墙");
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
var roof = CreateRoof(doc, loop, 125 / 304.8, 160 / 304.8);
|
||||
double distance = 1300 / 304.8;
|
||||
double bottomOffest = 180 / 304.8;
|
||||
double outerOffest = 125 / 304.8;
|
||||
var roof = CreateRoof(doc, loop, outerOffest, bottomOffest);
|
||||
var slope = roof.get_Parameter(BuiltInParameter.ROOF_SLOPE).AsDouble();
|
||||
//var h = roof.get_Parameter(BuiltInParameter.ACTUAL_MAX_RIDGE_HEIGHT_PARAM).AsDouble();
|
||||
CreateTopFramings(doc, edges, slope, distance, 4000 / 304.8);
|
||||
|
||||
#region MyRegion
|
||||
|
||||
@@ -122,33 +130,167 @@ namespace RookieStation.Construction.ExecuteCmd
|
||||
//}
|
||||
|
||||
#endregion MyRegion
|
||||
}, "创建屋面");
|
||||
}, "创建顶部构造");
|
||||
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
CreateGutter(doc, loop, 100.0 / 304.8, 180 / 304.8);
|
||||
}, "创建檐沟");
|
||||
var walllist = new List<Wall>();
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
CreateOuterWallList(doc, loop, 200 / 304.8);
|
||||
});
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
CreatePWallList(doc, loop, 400 / 304.8, 0.0);
|
||||
walllist = CreateAluminumPlastic(doc, loop, 400 / 304.8, 0.0);
|
||||
}, "创建铝塑板");
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
var wallSweepType = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Reveals).WhereElementIsElementType().Where(w => w.Name.Contains("3mm")).FirstOrDefault();
|
||||
var wallsweepsId = new List<ElementId>();
|
||||
foreach (var wall in walllist)
|
||||
{
|
||||
if (wall != null)
|
||||
{
|
||||
var line = RsRevitUtils.GetLocationCurveByElement(wall);
|
||||
var n = (int)Math.Floor(line.Length / (2440 / 304.8));
|
||||
for (int i = 0; i < n; i++)
|
||||
{
|
||||
WallSweepInfo info = new WallSweepInfo(WallSweepType.Reveal, true)
|
||||
{
|
||||
Distance = i * 2440 / 304.8,
|
||||
WallSide = WallSide.Exterior,
|
||||
DistanceMeasuredFrom = DistanceMeasuredFrom.Base,
|
||||
};
|
||||
if (WallSweep.WallAllowsWallSweep(wall))
|
||||
{
|
||||
var wallsweep = WallSweep.Create(wall, wallSweepType.Id, info);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}, "创建分隔条");
|
||||
}, "自动创建模型");
|
||||
}
|
||||
catch (Autodesk.Revit.Exceptions.OperationCanceledException)
|
||||
{
|
||||
return Result.Cancelled;
|
||||
}
|
||||
catch (Exception e)
|
||||
catch (Exception)
|
||||
{
|
||||
throw;
|
||||
//System.Windows.Forms.MessageBox.Show(e.InnerException.ToString());
|
||||
}
|
||||
|
||||
return Result.Succeeded;
|
||||
}
|
||||
|
||||
public void CreateGrids(Document doc, IList<Curve> edges)
|
||||
{
|
||||
var horizontalLines = from l in edges
|
||||
where Math.Abs((l as Line).Direction.DotProduct(XYZ.BasisY)) < Math.Pow(10, -14)
|
||||
select l;
|
||||
var horizontalOrderedLines = horizontalLines.OrderBy(l => l.GetEndPoint(0).Y);
|
||||
|
||||
var verticalLines = from l in edges
|
||||
where Math.Abs((l as Line).Direction.DotProduct(XYZ.BasisX)) < Math.Pow(10, -14)
|
||||
select l;
|
||||
var verticalOrderedLines = verticalLines.OrderBy(l => l.GetEndPoint(0).X);
|
||||
for (int i = 0; i < horizontalOrderedLines.Count(); i++)//水平轴网
|
||||
{
|
||||
var horizontalLine = horizontalOrderedLines.ElementAt(i);
|
||||
XYZ sp = horizontalLine.GetEndPoint(0) - (horizontalLine as Line).Direction * 10;
|
||||
XYZ ep = horizontalLine.GetEndPoint(1) + (horizontalLine as Line).Direction * 10;
|
||||
Line line = Line.CreateBound(sp, ep);
|
||||
if (line.Direction.X < 0 || line.Direction.Y < 0)
|
||||
{
|
||||
line = line.CreateReversed() as Line;
|
||||
}
|
||||
var grid = Autodesk.Revit.DB.Grid.Create(doc, line);
|
||||
grid.Name = ((char)(i + 65)).ToString();
|
||||
}
|
||||
for (int i = 0; (i < verticalOrderedLines.Count()); i++) //垂直轴网
|
||||
{
|
||||
var verticalLine = verticalOrderedLines.ElementAt(i);
|
||||
XYZ sp = verticalLine.GetEndPoint(0) - (verticalLine as Line).Direction * 10;
|
||||
XYZ ep = verticalLine.GetEndPoint(1) + (verticalLine as Line).Direction * 10;
|
||||
Line line = Line.CreateBound(sp, ep);
|
||||
if (line.Direction.X < 0 || line.Direction.Y < 0)
|
||||
{
|
||||
line = line.CreateReversed() as Line;
|
||||
}
|
||||
var grid = Autodesk.Revit.DB.Grid.Create(doc, line);
|
||||
grid.Name = (i + 1).ToString();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 顶部工字钢
|
||||
/// </summary>
|
||||
/// <param name="doc"></param>
|
||||
/// <param name="edges"></param>
|
||||
/// <param name="slope">屋面坡度</param>
|
||||
/// <param name="wdithInterval"></param>
|
||||
/// <param name="wdithInterval"></param>
|
||||
/// <exception cref="NotImplementedException"></exception>
|
||||
private void CreateTopFramings(Document doc, IList<Curve> edges, double slope, double wdithInterval, double lengthInterval)
|
||||
{
|
||||
Level topLevel = new FilteredElementCollector(doc).OfClass(typeof(Level)).OfCategory(BuiltInCategory.OST_Levels).Cast<Level>().Where(l => l.Elevation > doc.ActiveView.GenLevel.Elevation).OrderBy(l => l.Elevation).FirstOrDefault();
|
||||
var frameSymbol = new FilteredElementCollector(doc).OfClass(typeof(FamilySymbol)).OfCategory(BuiltInCategory.OST_StructuralFraming).Cast<FamilySymbol>().Where(s => s.Name.Contains("C16a")).FirstOrDefault();
|
||||
var frameSymbol1 = new FilteredElementCollector(doc).OfClass(typeof(FamilySymbol)).OfCategory(BuiltInCategory.OST_StructuralFraming).Cast<FamilySymbol>().Where(s => s.Name.Contains("HN250x125x6x9")).FirstOrDefault();
|
||||
|
||||
Curve curve = edges.First();
|
||||
double width = edges.First().Length;
|
||||
double length = edges.Last().Length;
|
||||
var h = slope * width / 2;
|
||||
var startpoint = curve.GetEndPoint(0) + topLevel.Elevation * XYZ.BasisZ;
|
||||
var endpoint = curve.GetEndPoint(1) + topLevel.Elevation * XYZ.BasisZ;
|
||||
XYZ centerpoint = curve.Evaluate(0.5, true) + (h + topLevel.Elevation) * XYZ.BasisZ;
|
||||
Line l1 = Line.CreateBound(startpoint, centerpoint);
|
||||
Line l2 = Line.CreateBound(endpoint, centerpoint);
|
||||
|
||||
double n = 100;
|
||||
var lines = new List<Line>();
|
||||
lines.Add(Line.CreateBound(startpoint, startpoint + length * XYZ.BasisX));
|
||||
lines.Add(Line.CreateBound(endpoint, endpoint + length * XYZ.BasisX));
|
||||
//工字钢
|
||||
for (int i = 1; i < n; i++)
|
||||
{
|
||||
var parameter = i * wdithInterval;
|
||||
//if (parameter <= l1.Length)
|
||||
if (l1.IsInside(parameter))
|
||||
{
|
||||
var p1 = l1.Evaluate(parameter, false);
|
||||
Line l = Line.CreateBound(p1, p1 + XYZ.BasisX * length);
|
||||
var line = l.CreateTransformed(Transform.CreateTranslation(XYZ.BasisZ * 200 / 304.8));
|
||||
var beam = doc.Create.NewFamilyInstance(line, frameSymbol, topLevel, Autodesk.Revit.DB.Structure.StructuralType.Beam);
|
||||
beam.get_Parameter(BuiltInParameter.INSTANCE_REFERENCE_LEVEL_PARAM).Set(topLevel.Id);
|
||||
beam.get_Parameter(BuiltInParameter.STRUCTURAL_BEND_DIR_ANGLE).Set(-slope);
|
||||
}
|
||||
if (l2.IsInside(parameter))
|
||||
{
|
||||
var p1 = l2.Evaluate(parameter, false);
|
||||
Line l = Line.CreateBound(p1, p1 + XYZ.BasisX * length);
|
||||
var line = l.CreateTransformed(Transform.CreateTranslation(XYZ.BasisZ * 200 / 304.8));
|
||||
var beam = doc.Create.NewFamilyInstance(line, frameSymbol, topLevel, Autodesk.Revit.DB.Structure.StructuralType.Beam);
|
||||
beam.get_Parameter(BuiltInParameter.INSTANCE_REFERENCE_LEVEL_PARAM).Set(topLevel.Id);
|
||||
beam.get_Parameter(BuiltInParameter.STRUCTURAL_BEND_DIR_ANGLE).Set(slope);
|
||||
}
|
||||
}
|
||||
//长度方向C型钢
|
||||
int m = (int)Math.Floor(length / lengthInterval);
|
||||
for (int i = 0; i <= m; i++)
|
||||
{
|
||||
Line offestl1 = l1.CreateOffset(length / m * i, XYZ.BasisZ) as Line;
|
||||
Line offestl2 = l2.CreateOffset(length / m * i, -XYZ.BasisZ) as Line;
|
||||
lines.Add(offestl1);
|
||||
lines.Add(offestl2);
|
||||
}
|
||||
foreach (var l in lines)
|
||||
{
|
||||
var line = l.CreateTransformed(Transform.CreateTranslation(XYZ.BasisZ * 35 / 304.8));
|
||||
var beam = doc.Create.NewFamilyInstance(line, frameSymbol1, topLevel, Autodesk.Revit.DB.Structure.StructuralType.Beam);
|
||||
beam.get_Parameter(BuiltInParameter.INSTANCE_REFERENCE_LEVEL_PARAM).Set(topLevel.Id);
|
||||
}
|
||||
}
|
||||
|
||||
private static void CreateFloor(Document doc, IList<Curve> edges)
|
||||
{
|
||||
var floorCurveArray = new CurveArray();
|
||||
@@ -166,42 +308,29 @@ namespace RookieStation.Construction.ExecuteCmd
|
||||
/// <param name="curves"></param>
|
||||
/// <param name="horizontalOffest">水平向外偏移距离</param>
|
||||
/// <param name="verticalOffest"></param>
|
||||
private void CreatePWallList(Document doc, CurveLoop loop, double horizontalOffest, double verticalOffest)
|
||||
private List<Wall> CreateAluminumPlastic(Document doc, CurveLoop loop, double horizontalOffest, double verticalOffest)
|
||||
{
|
||||
var wallType = new FilteredElementCollector(doc).OfClass(typeof(WallType)).OfCategory(BuiltInCategory.OST_Walls).Cast<WallType>().Where(w => w.Name.Contains("外墙 - 灰色铝塑板")).FirstOrDefault();
|
||||
//var wallType = new FilteredElementCollector(doc).OfClass(typeof(WallType)).OfCategory(BuiltInCategory.OST_Walls).Cast<WallType>().Where(w => w.Name.Contains("铝合金玻璃幕墙")).FirstOrDefault();
|
||||
var wallSweepType = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Reveals).WhereElementIsElementType().Where(w => w.Name.Contains("3mm")).FirstOrDefault();
|
||||
var currentLevel = doc.ActiveView.GenLevel;
|
||||
var topLevel = new FilteredElementCollector(doc).OfClass(typeof(Level)).OfCategory(BuiltInCategory.OST_Levels).Cast<Level>().Where(l => l.Elevation > doc.ActiveView.GenLevel.Elevation).FirstOrDefault();
|
||||
var topLevel = new FilteredElementCollector(doc).OfClass(typeof(Level)).OfCategory(BuiltInCategory.OST_Levels).Cast<Level>().Where(l => l.Elevation > doc.ActiveView.GenLevel.Elevation).OrderBy(l => l.Elevation).FirstOrDefault();
|
||||
|
||||
double heightOffest = topLevel.Elevation + verticalOffest;
|
||||
var offestCurveLoop = CurveLoop.CreateViaOffset(loop, horizontalOffest, -XYZ.BasisZ);
|
||||
Transform transform = Transform.CreateTranslation(XYZ.BasisZ * heightOffest);
|
||||
var translateCurveLoop = CurveLoop.CreateViaTransform(offestCurveLoop, transform);
|
||||
|
||||
//Transform transform = Transform.CreateTranslation(XYZ.BasisZ * heightOffest);
|
||||
//var translateCurveLoop = CurveLoop.CreateViaTransform(offestCurveLoop, transform);
|
||||
var walllist = new List<Wall>();
|
||||
var pheight = 1220 / 304.8;
|
||||
foreach (var curve in translateCurveLoop)
|
||||
foreach (var curve in offestCurveLoop)
|
||||
{
|
||||
Wall wall = null;
|
||||
doc.InvokeSub(ts =>
|
||||
{
|
||||
wall = Wall.Create(doc, curve, wallType.Id, topLevel.Id, pheight, 0, false, false);
|
||||
walllist.Add(wall);
|
||||
});
|
||||
if (wall != null)
|
||||
{
|
||||
WallSweepInfo info = new WallSweepInfo(WallSweepType.Reveal, true)
|
||||
{
|
||||
WallOffset = 100 / 304.8,
|
||||
Distance = 100 / 304.8,
|
||||
WallSide = WallSide.Exterior,
|
||||
DistanceMeasuredFrom = DistanceMeasuredFrom.Base,
|
||||
};
|
||||
if (WallSweep.WallAllowsWallSweep(wall))
|
||||
{
|
||||
var wallsweep = WallSweep.Create(wall, wallSweepType.Id, info);
|
||||
}
|
||||
}
|
||||
}
|
||||
return walllist;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -220,6 +349,12 @@ namespace RookieStation.Construction.ExecuteCmd
|
||||
foreach (var curve in offestCurve)
|
||||
{
|
||||
var wall = Wall.Create(doc, curve, wallType.Id, currentLevel.Id, height, 0, false, false);
|
||||
var horizonGridNum = wall.get_Parameter(BuiltInParameter.SPACING_NUM_DIVISIONS_HORIZ);
|
||||
if (!horizonGridNum.IsReadOnly)
|
||||
{
|
||||
horizonGridNum.Set(1);
|
||||
}
|
||||
//var curtainGridLine = doc.GetElement(wall.CurtainGrid.GetUGridLineIds().FirstOrDefault()) as CurtainGridLine;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -233,7 +368,8 @@ namespace RookieStation.Construction.ExecuteCmd
|
||||
private void CreateGutter(Document doc, CurveLoop loop, double horizontalOffest, double verticalOffest)
|
||||
{
|
||||
ReferenceArray references = new ReferenceArray();
|
||||
var level = new FilteredElementCollector(doc).OfClass(typeof(Level)).OfCategory(BuiltInCategory.OST_Levels).Cast<Level>().Where(l => l.Elevation > doc.ActiveView.GenLevel.Elevation).FirstOrDefault();
|
||||
var level = new FilteredElementCollector(doc).OfClass(typeof(Level)).OfCategory(BuiltInCategory.OST_Levels).Cast<Level>().Where(l => l.Elevation > doc.ActiveView.GenLevel.Elevation).OrderBy(l => l.Elevation).FirstOrDefault();
|
||||
|
||||
double heightOffest = level.Elevation + verticalOffest;
|
||||
var offestCurveLoop = CurveLoop.CreateViaOffset(loop, horizontalOffest, -XYZ.BasisZ);
|
||||
Transform transform = Transform.CreateTranslation(XYZ.BasisZ * heightOffest);
|
||||
@@ -276,12 +412,12 @@ namespace RookieStation.Construction.ExecuteCmd
|
||||
/// <param name="doc"></param>
|
||||
/// <param name="loop"></param>
|
||||
/// <param name="horizontalOffest">屋顶相对于轮廓向外水平偏移</param>
|
||||
/// <param name="verticalOffest">相对当前标高以上默认标高的偏移</param>
|
||||
/// <param name="bottomOffest">相对当前标高以上默认标高的偏移</param>
|
||||
/// <returns></returns>
|
||||
public FootPrintRoof CreateRoof(Document doc, CurveLoop loop, double horizontalOffest, double verticalOffest)
|
||||
public FootPrintRoof CreateRoof(Document doc, CurveLoop loop, double horizontalOffest, double bottomOffest)
|
||||
{
|
||||
var roofType = new FilteredElementCollector(doc).OfClass(typeof(RoofType)).OfCategory(BuiltInCategory.OST_Roofs).Cast<RoofType>().Where(symbol => symbol.Name.Contains("彩钢板")).FirstOrDefault();
|
||||
var level = new FilteredElementCollector(doc).OfClass(typeof(Level)).OfCategory(BuiltInCategory.OST_Levels).Cast<Level>().Where(l => l.Elevation > doc.ActiveView.GenLevel.Elevation).FirstOrDefault();
|
||||
var level = new FilteredElementCollector(doc).OfClass(typeof(Level)).OfCategory(BuiltInCategory.OST_Levels).Cast<Level>().Where(l => l.Elevation > doc.ActiveView.GenLevel.Elevation).OrderBy(l => l.Elevation).FirstOrDefault();
|
||||
|
||||
var roofCurveArray = new CurveArray();
|
||||
var offestCurve = CurveLoop.CreateViaOffset(loop, horizontalOffest, -XYZ.BasisZ);
|
||||
@@ -298,20 +434,27 @@ namespace RookieStation.Construction.ExecuteCmd
|
||||
roof.set_SlopeAngle(line1, 0.2);
|
||||
roof.set_DefinesSlope(line2, true);
|
||||
roof.set_SlopeAngle(line2, 0.2);
|
||||
roof.get_Parameter(BuiltInParameter.ROOF_LEVEL_OFFSET_PARAM).Set(verticalOffest);
|
||||
roof.get_Parameter(BuiltInParameter.ROOF_LEVEL_OFFSET_PARAM).Set(bottomOffest);
|
||||
return roof;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///创建梁
|
||||
///创建地梁
|
||||
/// </summary>
|
||||
/// <param name="doc"></param>
|
||||
/// <param name="edges"></param>
|
||||
/// <param name="horizontalOffest">最外侧地梁水平向外偏移量</param>
|
||||
/// <param name="interval"></param>
|
||||
private void CreateFramings(Document doc, IList<Curve> edges, double interval)
|
||||
private void CreateFramings(Document doc, IList<Curve> edges, double horizontalOffest, double interval)
|
||||
{
|
||||
CurveLoop loop = CurveLoop.Create(edges);
|
||||
var offestCurve = CurveLoop.CreateViaOffset(loop, horizontalOffest, -XYZ.BasisZ);
|
||||
List<List<XYZ>> pointsOnLines = new List<List<XYZ>>();
|
||||
var lines = CreateGridLine(interval, edges);
|
||||
var lines = CreateGridLine(interval, edges, false);
|
||||
foreach (var item in offestCurve)
|
||||
{
|
||||
lines.Add(item);
|
||||
}
|
||||
foreach (Line c in lines)
|
||||
{
|
||||
List<XYZ> pointsOnLine = new List<XYZ>();
|
||||
@@ -326,6 +469,7 @@ namespace RookieStation.Construction.ExecuteCmd
|
||||
pointsOnLines.Add(pointsOnLine);
|
||||
}
|
||||
var frameSymbol = new FilteredElementCollector(doc).OfClass(typeof(FamilySymbol)).OfCategory(BuiltInCategory.OST_StructuralFraming).Cast<FamilySymbol>().Where(s => s.Name.Contains("250*500")).FirstOrDefault();
|
||||
|
||||
if (!frameSymbol.IsActive)
|
||||
{
|
||||
frameSymbol.Activate();
|
||||
@@ -360,7 +504,7 @@ namespace RookieStation.Construction.ExecuteCmd
|
||||
foundationSymbol.Activate();
|
||||
}
|
||||
|
||||
var lines = CreateGridLine(interval, edges).Cast<Line>().Where(l => l.Direction.Normalize().IsAlmostEqualTo(XYZ.BasisY) || l.Direction.Normalize().IsAlmostEqualTo(-XYZ.BasisY));
|
||||
var lines = CreateGridLine(interval, edges, true).Cast<Line>().Where(l => l.Direction.Normalize().IsAlmostEqualTo(XYZ.BasisY) || l.Direction.Normalize().IsAlmostEqualTo(-XYZ.BasisY));
|
||||
//var lines = CreateGridLine(intervalColumn, curves).Where(l => l.Direction.Normalize().IsAlmostEqualTo(XYZ.BasisX) || l.Direction.Normalize().IsAlmostEqualTo(-XYZ.BasisX));
|
||||
//var lines = CreateGridLine(intervalColumn, curves);
|
||||
//foreach (var l in lines)
|
||||
@@ -395,11 +539,14 @@ namespace RookieStation.Construction.ExecuteCmd
|
||||
/// <param name="maxCellSize"></param>
|
||||
/// <param name="edges"></param>
|
||||
/// <returns></returns>
|
||||
private List<Curve> CreateGridLine(double maxCellSize, IList<Curve> edges)
|
||||
private List<Curve> CreateGridLine(double maxCellSize, IList<Curve> edges, bool containEdges)
|
||||
{
|
||||
var pointsOnLines = new List<List<XYZ>>();
|
||||
var gridLines = new List<Curve>();
|
||||
gridLines.AddRange(edges);
|
||||
if (containEdges)
|
||||
{
|
||||
gridLines.AddRange(edges);
|
||||
}
|
||||
//将边界线按跨数分割,
|
||||
foreach (Curve c in edges)
|
||||
{
|
||||
@@ -407,7 +554,7 @@ namespace RookieStation.Construction.ExecuteCmd
|
||||
}
|
||||
if (pointsOnLines.Count == 2)
|
||||
{
|
||||
var li1 = pointsOnLines[0];//水平下
|
||||
var li1 = pointsOnLines[0];//竖直左
|
||||
var li2 = pointsOnLines[1];//水平上
|
||||
for (int i = 0; i < li1.Count; i++)
|
||||
{
|
||||
@@ -417,10 +564,10 @@ namespace RookieStation.Construction.ExecuteCmd
|
||||
}
|
||||
else if (pointsOnLines.Count == 4)
|
||||
{
|
||||
var li1 = pointsOnLines[0];//水平下
|
||||
var li1 = pointsOnLines[0];//竖直左
|
||||
var li3 = pointsOnLines[2];//水平上
|
||||
var li2 = pointsOnLines[1];//垂直右
|
||||
var li4 = pointsOnLines[3];//垂直左
|
||||
var li2 = pointsOnLines[1];//竖直右
|
||||
var li4 = pointsOnLines[3];//水平下
|
||||
for (int i = 0; i < li1.Count; i++)
|
||||
{
|
||||
var line = Line.CreateBound(li1[i], li3[i]);
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
x:Name="tbLength"
|
||||
InputMethod.IsInputMethodEnabled="False"
|
||||
PreviewTextInput="tb_PreviewTextInput"
|
||||
Text="15000"
|
||||
Text="25000"
|
||||
TextAlignment="Center" />
|
||||
</GroupBox>
|
||||
<GroupBox
|
||||
@@ -47,7 +47,7 @@
|
||||
x:Name="tbWidth"
|
||||
InputMethod.IsInputMethodEnabled="False"
|
||||
PreviewTextInput="tb_PreviewTextInput"
|
||||
Text="8000"
|
||||
Text="12000"
|
||||
TextAlignment="Center" />
|
||||
</GroupBox>
|
||||
<Button
|
||||
|
||||
@@ -20,8 +20,8 @@ namespace RookieStation.Construction.Views
|
||||
/// </summary>
|
||||
public partial class WpfAutoModeling
|
||||
{
|
||||
public double Length { get; set; }
|
||||
public double Width { get; set; }
|
||||
public double mLength { get; set; }
|
||||
public double mWidth { get; set; }
|
||||
|
||||
public WpfAutoModeling()
|
||||
{
|
||||
@@ -30,8 +30,8 @@ namespace RookieStation.Construction.Views
|
||||
|
||||
private void btnConfirm_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Length = Convert.ToDouble(tbLength.Text.Trim());
|
||||
Width = Convert.ToDouble(tbWidth.Text.Trim());
|
||||
mLength = Convert.ToDouble(tbLength.Text.Trim());
|
||||
mWidth = Convert.ToDouble(tbWidth.Text.Trim());
|
||||
DialogResult = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ using System.Threading.Tasks;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace RookieStation.Drawing.ExecuteCmds
|
||||
namespace RookieStation.Drawing.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
@@ -73,7 +73,7 @@ namespace RookieStation.Drawing.ExecuteCmds
|
||||
}
|
||||
}, "自动整理标记");
|
||||
}
|
||||
catch (Autodesk.Revit.Exceptions.OperationCanceledException ex)
|
||||
catch (Autodesk.Revit.Exceptions.OperationCanceledException)
|
||||
{
|
||||
return Result.Succeeded;
|
||||
}
|
||||
@@ -7,7 +7,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace RookieStation.Drawing.ExecuteCmds
|
||||
namespace RookieStation.Drawing.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
@@ -8,7 +8,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Windows.Controls;
|
||||
|
||||
namespace RookieStation.Drawing.ExecuteCmds
|
||||
namespace RookieStation.Drawing.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
@@ -9,7 +9,7 @@ using System.Threading.Tasks;
|
||||
using RookieStation.Utils;
|
||||
using RookieStation.ProjectConfig;
|
||||
|
||||
namespace RookieStation.Drawing.ExecuteCmds
|
||||
namespace RookieStation.Drawing.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
@@ -11,7 +11,7 @@ using System.Windows.Controls;
|
||||
using RookieStation.Drawing.Models;
|
||||
using RookieStation.ProjectConfig;
|
||||
|
||||
namespace RookieStation.Drawing.ExecuteCmds
|
||||
namespace RookieStation.Drawing.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
@@ -10,7 +10,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace RookieStation.Drawing.ExecuteCmds
|
||||
namespace RookieStation.Drawing.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
@@ -14,7 +14,7 @@ using System.Windows.Controls;
|
||||
using System.Data;
|
||||
using OfficeOpenXml.Style;
|
||||
|
||||
namespace RookieStation.Drawing.ExecuteCmds
|
||||
namespace RookieStation.Drawing.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
@@ -10,7 +10,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace RookieStation.Drawing.ExecuteCmds
|
||||
namespace RookieStation.Drawing.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
@@ -10,7 +10,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace RookieStation.Drawing.ExecuteCmds
|
||||
namespace RookieStation.Drawing.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
@@ -9,7 +9,7 @@ using System;
|
||||
using System.Text;
|
||||
using System.Windows.Media.Media3D;
|
||||
|
||||
namespace RookieStation.Drawing.ExecuteCmds
|
||||
namespace RookieStation.Drawing.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
@@ -10,7 +10,7 @@ using System.Threading.Tasks;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Media.Media3D;
|
||||
|
||||
namespace RookieStation.Drawing.ExecuteCmds
|
||||
namespace RookieStation.Drawing.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
@@ -9,7 +9,7 @@ using RookieStation.ProjectConfig;
|
||||
using RookieStation.Utils;
|
||||
using Autodesk.Revit.UI.Selection;
|
||||
|
||||
namespace RookieStation.Drawing.ExecuteCmds
|
||||
namespace RookieStation.Drawing.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
@@ -9,7 +9,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Windows.Controls;
|
||||
|
||||
namespace RookieStation.Drawing.ExecuteCmds
|
||||
namespace RookieStation.Drawing.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
@@ -29,7 +29,7 @@ namespace RookieStation.Drawing.ExecuteCmds
|
||||
{
|
||||
//var refers = uidoc.Selection.PickObjects(ObjectType.Element, new SelectFilter<FamilyInstance>(), "请选择灯具");
|
||||
//var instances = refers.Select(refer => doc.GetElement(refer) as FamilyInstance);
|
||||
var instances = uidoc.Selection.PickElementsByRectangle(new SelectFilter<FamilyInstance>(), "请选择灯具").Cast<FamilyInstance>();
|
||||
var instances = uidoc.Selection.PickElementsByRectangle(new LightSelectFilter<FamilyInstance>(), "请选择灯具").Cast<FamilyInstance>();
|
||||
//var instances = refers.Select(refer => doc.GetElement(refer) as FamilyInstance).OrderBy(fi => RsRevitUtils.GetLocationPointByElement(fi).X).ThenBy(fi => RsRevitUtils.GetLocationPointByElement(fi).Y);
|
||||
var instancesGroupByX = instances.GroupBy(fi => Math.Round(RsRevitUtils.GetLocationPointByElement(fi).X, 5));
|
||||
var instancesGroupByY = instances.GroupBy(fi => Math.Round(RsRevitUtils.GetLocationPointByElement(fi).Y, 5));
|
||||
@@ -155,7 +155,7 @@ namespace RookieStation.Drawing.ExecuteCmds
|
||||
}, "创建导线");
|
||||
}
|
||||
|
||||
internal class SelectFilter<T> : ISelectionFilter
|
||||
internal class LightSelectFilter<T> : ISelectionFilter
|
||||
{
|
||||
public bool AllowElement(Autodesk.Revit.DB.Element elem)
|
||||
{
|
||||
@@ -8,7 +8,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace RookieStation.Drawing.ExecuteCmds
|
||||
namespace RookieStation.Drawing.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
@@ -77,7 +77,7 @@ namespace RookieStation.Drawing.ExecuteCmds
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Autodesk.Revit.Exceptions.OperationCanceledException ex)
|
||||
catch (Autodesk.Revit.Exceptions.OperationCanceledException)
|
||||
{
|
||||
return Result.Succeeded;
|
||||
}
|
||||
@@ -9,7 +9,7 @@ using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace RookieStation.Drawing.ExecuteCmds
|
||||
namespace RookieStation.Drawing.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
@@ -11,7 +11,7 @@ using System.Windows;
|
||||
using RookieStation.Finishes.Views;
|
||||
using RookieStation.Properties;
|
||||
|
||||
namespace RookieStation.Finishes.ExecuteCmds
|
||||
namespace RookieStation.Finishes.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
@@ -8,11 +8,11 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace RookieStation.Finishes.ExecuteCmds
|
||||
namespace RookieStation.Finishes.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
internal class CmdPlaceFloorFinishes : IExternalCommand
|
||||
internal class PlaceFloorFinishes : IExternalCommand
|
||||
{
|
||||
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
|
||||
{
|
||||
@@ -9,11 +9,11 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace RookieStation.Finishes.ExecuteCmds
|
||||
namespace RookieStation.Finishes.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
internal class CmdPlaceWallFinishes : IExternalCommand
|
||||
internal class PlaceWallFinishes : IExternalCommand
|
||||
{
|
||||
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
|
||||
{
|
||||
@@ -7,11 +7,11 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace RookieStation.MailingAreaModule.ExecuteCmds
|
||||
namespace RookieStation.MailingAreaModule.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
internal class CmdLogoExtrusion : IExternalCommand
|
||||
internal class ExtrusionLogo : IExternalCommand
|
||||
{
|
||||
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
|
||||
{
|
||||
@@ -15,11 +15,11 @@ using System.Windows.Controls;
|
||||
using System.Windows.Forms;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace RookieStation.MailingAreaModule.ExecuteCmds
|
||||
namespace RookieStation.MailingAreaModule.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
internal class CmdPlaceReceptionArea : IExternalCommand
|
||||
internal class PlaceReceptionArea : IExternalCommand
|
||||
{
|
||||
/// <summary>
|
||||
/// 选择一次后停止
|
||||
61
RookieStation/MailingAreaModule/ExecuteCmd/WallDivide.cs
Normal file
61
RookieStation/MailingAreaModule/ExecuteCmd/WallDivide.cs
Normal file
@@ -0,0 +1,61 @@
|
||||
using Autodesk.Revit.DB;
|
||||
using Autodesk.Revit.UI;
|
||||
using Autodesk.Revit.UI.Selection;
|
||||
using RookieStation.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace RookieStation.MailingAreaModule.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
internal class WallDivide : IExternalCommand
|
||||
{
|
||||
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
|
||||
{
|
||||
UIApplication uiapp = commandData.Application;
|
||||
UIDocument uidoc = uiapp.ActiveUIDocument;
|
||||
Autodesk.Revit.ApplicationServices.Application app = uiapp.Application;
|
||||
Document doc = uidoc.Document;
|
||||
DocumentSet docset = uiapp.Application.Documents;
|
||||
|
||||
try
|
||||
{
|
||||
Reference refer = uidoc.Selection.PickObject(ObjectType.Element, new SelectFilter<Wall>(), "请选择分缝的墙体");
|
||||
var wall = uidoc.Document.GetElement(refer) as Wall;
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
var wallSweepType = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Reveals).WhereElementIsElementType().Where(w => w.Name.Contains("3mm")).FirstOrDefault();
|
||||
var wallsweepsId = new List<ElementId>();
|
||||
double interval = 1220 / 304.8;
|
||||
if (wall != null)
|
||||
{
|
||||
var line = RsRevitUtils.GetLocationCurveByElement(wall);
|
||||
var n = (int)Math.Floor(line.Length / interval);
|
||||
for (int i = 1; i < n; i++)
|
||||
{
|
||||
WallSweepInfo info = new WallSweepInfo(WallSweepType.Reveal, true)
|
||||
{
|
||||
Distance = i * interval,
|
||||
WallSide = WallSide.Exterior,
|
||||
DistanceMeasuredFrom = DistanceMeasuredFrom.Base,
|
||||
};
|
||||
if (WallSweep.WallAllowsWallSweep(wall))
|
||||
{
|
||||
var wallsweep = WallSweep.Create(wall, wallSweepType.Id, info);
|
||||
}
|
||||
}
|
||||
}
|
||||
}, "墙体分缝");
|
||||
}
|
||||
catch (Autodesk.Revit.Exceptions.OperationCanceledException)
|
||||
{
|
||||
return Result.Cancelled;
|
||||
}
|
||||
return Result.Succeeded;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11,11 +11,11 @@ using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
|
||||
namespace RookieStation.ParcelAreaModule.ExecuteCmds
|
||||
namespace RookieStation.ParcelAreaModule.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
internal class CmdArrangeShelfCards : IExternalCommand
|
||||
internal class ArrangeShelfCards : IExternalCommand
|
||||
{
|
||||
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
|
||||
{
|
||||
@@ -7,7 +7,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using RookieStation.ParcelAreaModule.Views;
|
||||
|
||||
namespace RookieStation.ParcelAreaModule.ExecuteCmds
|
||||
namespace RookieStation.ParcelAreaModule.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
@@ -8,7 +8,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using RookieStation.ParcelAreaModule.Views;
|
||||
|
||||
namespace RookieStation.ParcelAreaModule.ExecuteCmds
|
||||
namespace RookieStation.ParcelAreaModule.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
@@ -9,11 +9,11 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using RookieStation.ParcelAreaModule.Views;
|
||||
|
||||
namespace RookieStation.ParcelAreaModule.ExecuteCmds
|
||||
namespace RookieStation.ParcelAreaModule.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
internal class CmdPlaceLamps : IExternalCommand
|
||||
internal class PlaceLamps : IExternalCommand
|
||||
{
|
||||
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
|
||||
{
|
||||
@@ -13,11 +13,11 @@ using Autodesk.Revit.Creation;
|
||||
using System.IO;
|
||||
using RookieStation.ParcelAreaModule.ViewModels;
|
||||
|
||||
namespace RookieStation.ParcelAreaModule.ExecuteCmds
|
||||
namespace RookieStation.ParcelAreaModule.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
internal class CmdPlaceShelves : IExternalCommand
|
||||
internal class PlaceShelves : IExternalCommand
|
||||
{
|
||||
/// <summary>
|
||||
/// 编号
|
||||
@@ -7,11 +7,11 @@ using System.IO;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace RookieStation.ProjectConfig.ExecuteCmds
|
||||
namespace RookieStation.ProjectConfig.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
internal class CmdProjectSettings : IExternalCommand
|
||||
internal class ProjectSettings : IExternalCommand
|
||||
{
|
||||
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
|
||||
{
|
||||
20
RookieStation/Properties/Resources.Designer.cs
generated
20
RookieStation/Properties/Resources.Designer.cs
generated
@@ -330,6 +330,16 @@ namespace RookieStation.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap UpdateSheetTable {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("UpdateSheetTable", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
@@ -370,6 +380,16 @@ namespace RookieStation.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap WallSweep {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("WallSweep", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
|
||||
@@ -199,6 +199,9 @@
|
||||
<data name="UnifyViewport" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\视口.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="UpdateSheetTable" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\UpdateSheetTable.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ViewPlanDim" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ViewPlanDim.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
@@ -211,6 +214,9 @@
|
||||
<data name="WallLegend" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\WallLegend.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="WallSweep" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\WallSweep.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Wire" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Wire.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
||||
BIN
RookieStation/Resources/UpdateSheetTable.png
Normal file
BIN
RookieStation/Resources/UpdateSheetTable.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 545 B |
BIN
RookieStation/Resources/WallSweep.png
Normal file
BIN
RookieStation/Resources/WallSweep.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 163 B |
@@ -97,6 +97,7 @@
|
||||
<Compile Include="CommonTools\ExecuteCmd\ChangeBackgroundColor.cs" />
|
||||
<Compile Include="CommonTools\ExecuteCmd\DecryptFamily.cs" />
|
||||
<Compile Include="CommonTools\ExecuteCmd\EncryptFamily.cs" />
|
||||
<Compile Include="ScheduleTools\ExecuteCmd\UpdateSheetContents.cs" />
|
||||
<Compile Include="CommonTools\ViewModels\EncryptOrDecryptFamily.cs" />
|
||||
<Compile Include="CommonTools\ViewModels\ProgressMonitorControl.cs" />
|
||||
<Compile Include="CommonTools\Views\ProgressMonitorView.xaml.cs">
|
||||
@@ -106,32 +107,32 @@
|
||||
<Compile Include="Construction\Views\WpfAutoModeling.xaml.cs">
|
||||
<DependentUpon>WpfAutoModeling.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Drawing\ExecuteCmds\ManualAlignTags.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmds\CreateGroundPavingLegend.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmds\CreateLightLegend.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmds\CreateFurnitureLegend.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmds\BatchExportDwg.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmds\CreateMainMaterialsTable.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmds\CreatePlaneGraphLegend.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmds\CreateSocketLegend.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmds\CreateSwitchLegend.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmds\CreateViewSectionAnnotation.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmds\CreateWallLegend.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmds\CreateWires.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmds\AutoAlignTags.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmds\UnifyViewportOnViewSheet.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmd\ManualAlignTags.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmd\CreateGroundPavingLegend.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmd\CreateLightLegend.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmd\CreateFurnitureLegend.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmd\BatchExportDwg.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmd\CreateMainMaterialsTable.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmd\CreatePlaneGraphLegend.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmd\CreateSocketLegend.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmd\CreateSwitchLegend.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmd\CreateViewSectionAnnotation.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmd\CreateWallLegend.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmd\CreateWires.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmd\AutoAlignTags.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmd\UnifyViewportOnViewSheet.cs" />
|
||||
<Compile Include="Drawing\Models\LightingDevices.cs" />
|
||||
<Compile Include="Drawing\Models\MaterialItem.cs" />
|
||||
<Compile Include="Drawing\Models\ShelfStatistic.cs" />
|
||||
<Compile Include="Drawing\Views\WpfLegendCreator.xaml.cs">
|
||||
<DependentUpon>WpfLegendCreator.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ScheduleTools\ExecuteCmds\ReorderingNumber.cs" />
|
||||
<Compile Include="Statistics\ExecuteCmds\CmdExportOrderQuantity.cs" />
|
||||
<Compile Include="Statistics\ExecuteCmds\CmdExportWorkSchedule.cs" />
|
||||
<Compile Include="Finishes\ExecuteCmds\CmdPlaceFloorFinishes.cs" />
|
||||
<Compile Include="MailingAreaModule\ExecuteCmds\CmdLogoExtrusion.cs" />
|
||||
<Compile Include="Finishes\ExecuteCmds\CmdPlaceWallFinishes.cs" />
|
||||
<Compile Include="MailingAreaModule\ExecuteCmd\WallDivide.cs" />
|
||||
<Compile Include="Statistics\ExecuteCmd\CmdExportOrderQuantity.cs" />
|
||||
<Compile Include="Statistics\ExecuteCmd\ExportWorkSchedule.cs" />
|
||||
<Compile Include="Finishes\ExecuteCmd\PlaceFloorFinishes.cs" />
|
||||
<Compile Include="MailingAreaModule\ExecuteCmd\ExtrusionLogo.cs" />
|
||||
<Compile Include="Finishes\ExecuteCmd\PlaceWallFinishes.cs" />
|
||||
<Compile Include="CommonTools\ExtHandler\FamilyDockablePaneHandler.cs" />
|
||||
<Compile Include="CommonTools\Models\FamilyInfo.cs" />
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
@@ -139,39 +140,39 @@
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Statistics\ExecuteCmds\CmdExportBudgetInventory.cs" />
|
||||
<Compile Include="Statistics\ExecuteCmd\ExportBudgetInventory.cs" />
|
||||
<Compile Include="Statistics\Models\SubItem.cs" />
|
||||
<Compile Include="Utils\AssemblyLoader.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmds\CreateViewPlanAnnotation.cs" />
|
||||
<Compile Include="Drawing\ExecuteCmd\CreateViewPlanAnnotation.cs" />
|
||||
<Compile Include="Utils\DocumentExtension.cs" />
|
||||
<Compile Include="Utils\EnumItemsSource.cs" />
|
||||
<Compile Include="Utils\ExcelUtils.cs" />
|
||||
<Compile Include="Utils\KeyPress.cs" />
|
||||
<Compile Include="CommonTools\ExecuteCmd\UseFamilyPane.cs" />
|
||||
<Compile Include="ParcelAreaModule\ExecuteCmds\CmdPlaceShelves.cs" />
|
||||
<Compile Include="ParcelAreaModule\ExecuteCmd\PlaceShelves.cs" />
|
||||
<Compile Include="Utils\CommonUtils.cs" />
|
||||
<Compile Include="Utils\Log.cs" />
|
||||
<Compile Include="Utils\EnableCmdInViewPlan.cs" />
|
||||
<Compile Include="ParcelAreaModule\ExecuteCmds\CmdPlaceEntranceGate.cs" />
|
||||
<Compile Include="ParcelAreaModule\ExecuteCmds\CmdPlaceExitGate.cs" />
|
||||
<Compile Include="ParcelAreaModule\ExecuteCmd\CmdPlaceEntranceGate.cs" />
|
||||
<Compile Include="ParcelAreaModule\ExecuteCmd\CmdPlaceExitGate.cs" />
|
||||
<Compile Include="Utils\RsFamilyLoadOption.cs" />
|
||||
<Compile Include="Utils\RsRevitUtils.cs" />
|
||||
<Compile Include="Finishes\ExecuteCmds\FloorFinishes.cs" />
|
||||
<Compile Include="ParcelAreaModule\ExecuteCmds\CmdPlaceLamps.cs" />
|
||||
<Compile Include="Finishes\ExecuteCmd\FloorFinishes.cs" />
|
||||
<Compile Include="ParcelAreaModule\ExecuteCmd\PlaceLamps.cs" />
|
||||
<Compile Include="ParcelAreaModule\Models\Enum.cs" />
|
||||
<Compile Include="Utils\ProjectConfigUtil.cs" />
|
||||
<Compile Include="ProjectConfig\ExcuteCmd\CmdProjectSettings.cs" />
|
||||
<Compile Include="ProjectConfig\ExcuteCmd\ProjectSettings.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ParcelAreaModule\ExecuteCmds\CmdArrangeShelfCards.cs" />
|
||||
<Compile Include="ParcelAreaModule\ExecuteCmd\ArrangeShelfCards.cs" />
|
||||
<Compile Include="RsApp.cs" />
|
||||
<Compile Include="ParcelAreaModule\ViewModels\ShelvesPlacementViewModel.cs" />
|
||||
<Compile Include="Utils\SelectFilter.cs" />
|
||||
<Compile Include="MailingAreaModule\ExecuteCmds\CmdPlaceReceptionArea.cs" />
|
||||
<Compile Include="MailingAreaModule\ExecuteCmd\PlaceReceptionArea.cs" />
|
||||
<Compile Include="ParcelAreaModule\Models\Shelf.cs" />
|
||||
<Compile Include="UserConstant.cs" />
|
||||
<Compile Include="Utils\SQLiteUtil.cs" />
|
||||
@@ -315,9 +316,11 @@
|
||||
<None Include="Resources\SocketLegend.png" />
|
||||
<None Include="Resources\PlaneLegend.png" />
|
||||
<None Include="Resources\ManualArrangeTags.png" />
|
||||
<None Include="Resources\UpdateSheetTable.png" />
|
||||
<Content Include="Resources\WallFinishes.png" />
|
||||
<None Include="Resources\Wire.png" />
|
||||
<None Include="Resources\WallLegend.png" />
|
||||
<None Include="Resources\WallSweep.png" />
|
||||
<Content Include="Resources\YTX.ico" />
|
||||
<None Include="Resources\WorkSchedule.png" />
|
||||
<None Include="Resources\视口.png" />
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
using Autodesk.Revit.UI;
|
||||
using RookieStation.CommonTools.ExecuteCmd;
|
||||
using RookieStation.CommonTools.Views;
|
||||
using RookieStation.Finishes.ExecuteCmds;
|
||||
using RookieStation.ParcelAreaModule.ExecuteCmds;
|
||||
using RookieStation.ProjectConfig.ExecuteCmds;
|
||||
using RookieStation.MailingAreaModule.ExecuteCmds;
|
||||
using RookieStation.Statistics.ExecuteCmds;
|
||||
using RookieStation.Finishes.ExecuteCmd;
|
||||
using RookieStation.ParcelAreaModule.ExecuteCmd;
|
||||
using RookieStation.ProjectConfig.ExecuteCmd;
|
||||
using RookieStation.MailingAreaModule.ExecuteCmd;
|
||||
using RookieStation.Statistics.ExecuteCmd;
|
||||
using RookieStation.Utils;
|
||||
using System;
|
||||
using System.Drawing;
|
||||
@@ -13,16 +13,17 @@ using System.IO;
|
||||
using System.Windows;
|
||||
using System.Windows.Interop;
|
||||
using System.Windows.Media.Imaging;
|
||||
using RookieStation.Drawing.ExecuteCmds;
|
||||
using RookieStation.Drawing.ExecuteCmd;
|
||||
using System.Reflection;
|
||||
using RookieStation.Construction.ExecuteCmd;
|
||||
using RookieStation.ScheduleTools.ExecuteCmd;
|
||||
|
||||
namespace RookieStation.RibbonMenu
|
||||
{
|
||||
internal class RsApp : IExternalApplication
|
||||
{
|
||||
private const string TabName = "菜鸟驿站工具";
|
||||
private const string ProjectSettingsPanelName = "项目设置";
|
||||
private const string ProjectSettingsPanelName = "项目工具";
|
||||
private const string ReceptionPanelName = "前台布置";
|
||||
private const string EntranceAndExitGatePanelName = "取件区";
|
||||
private const string FinishesPanelName = "饰面";
|
||||
@@ -97,19 +98,20 @@ namespace RookieStation.RibbonMenu
|
||||
//项目设置
|
||||
RibbonPanel projectPanel = application.CreateRibbonPanel(TabName, ProjectSettingsPanelName);
|
||||
|
||||
NewPushButtonData<CmdProjectSettings>(projectPanel, "项目设置", Properties.Resources.cainiao, null);
|
||||
NewPushButtonData<ProjectSettings>(projectPanel, "项目设置", Properties.Resources.cainiao, null);
|
||||
NewPushButtonData<AutoGenerateModels>(projectPanel, "创建模型", Properties.Resources.Architect, null);
|
||||
//前台布置
|
||||
RibbonPanel receptionAreaPanel = application.CreateRibbonPanel(TabName, ReceptionPanelName);
|
||||
|
||||
NewPushButtonData<CmdPlaceReceptionArea>(receptionAreaPanel, "前台布置", Properties.Resources.Reception, ViewPlanCmdEnabled);
|
||||
NewPushButtonData<PlaceReceptionArea>(receptionAreaPanel, "前台布置", Properties.Resources.Reception, ViewPlanCmdEnabled);
|
||||
|
||||
NewPushButtonData<CmdLogoExtrusion>(receptionAreaPanel, "标识挤出", Properties.Resources.LogoExtrusion, ViewPlanCmdEnabled);
|
||||
NewPushButtonData<ExtrusionLogo>(receptionAreaPanel, "标识挤出", Properties.Resources.LogoExtrusion, ViewPlanCmdEnabled);
|
||||
NewPushButtonData<WallDivide>(receptionAreaPanel, "铝塑板分缝", Properties.Resources.WallSweep, null);
|
||||
|
||||
//出入口布置
|
||||
RibbonPanel packAreaPanel = application.CreateRibbonPanel(TabName, EntranceAndExitGatePanelName);
|
||||
NewPushButtonData<CmdPlaceEntranceGate>(packAreaPanel, "入口布置", Properties.Resources.EntranceGate, ViewPlanCmdEnabled);
|
||||
NewPushButtonData<CmdPlaceExitGate>(packAreaPanel, "出口布置", Properties.Resources.ExitGate, ViewPlanCmdEnabled);
|
||||
NewPushButtonData<CmdPlaceEntranceGate>(packAreaPanel, "入口布置", Properties.Resources.EntranceGate, ViewPlanCmdEnabled).ToolTip = "入口闸机布置";
|
||||
NewPushButtonData<CmdPlaceExitGate>(packAreaPanel, "出口布置", Properties.Resources.ExitGate, ViewPlanCmdEnabled).ToolTip = "出口收检台布置";
|
||||
|
||||
//PushButtonData exitGateLayoutPBD = new PushButtonData("出口布置", "出口收检台", AddInPath, typeof(CmdPlaceExitGate).FullName)
|
||||
//{
|
||||
@@ -122,22 +124,23 @@ namespace RookieStation.RibbonMenu
|
||||
////var entranceBtn = (PushButton)gateItemsStacked[0];
|
||||
////var exitBtn = (PushButton)gateItemsStacked[1];
|
||||
//寄件区布置
|
||||
NewPushButtonData<CmdPlaceShelves>(packAreaPanel, "货架布置", Properties.Resources.Shelf, ViewPlanCmdEnabled);
|
||||
NewPushButtonData<CmdArrangeShelfCards>(packAreaPanel, "货架端牌", Properties.Resources.ShelfCard, ViewPlanCmdEnabled);
|
||||
NewPushButtonData<CmdPlaceLamps>(packAreaPanel, "灯具布置", Properties.Resources.Lamp, ViewPlanCmdEnabled);
|
||||
NewPushButtonData<PlaceShelves>(packAreaPanel, "货架布置", Properties.Resources.Shelf, ViewPlanCmdEnabled);
|
||||
NewPushButtonData<ArrangeShelfCards>(packAreaPanel, "货架端牌", Properties.Resources.ShelfCard, ViewPlanCmdEnabled);
|
||||
NewPushButtonData<PlaceLamps>(packAreaPanel, "灯具布置", Properties.Resources.Lamp, ViewPlanCmdEnabled);
|
||||
|
||||
//饰面,完成面
|
||||
RibbonPanel finishesPanel = application.CreateRibbonPanel(TabName, FinishesPanelName);
|
||||
NewPushButtonData<CmdPlaceFloorFinishes>(finishesPanel, "板饰面", Properties.Resources.FloorFinishes, ViewPlanCmdEnabled);
|
||||
NewPushButtonData<CmdPlaceWallFinishes>(finishesPanel, "墙饰面", Properties.Resources.WallFinishes, ViewPlanCmdEnabled);
|
||||
NewPushButtonData<PlaceFloorFinishes>(finishesPanel, "板饰面", Properties.Resources.FloorFinishes, ViewPlanCmdEnabled);
|
||||
NewPushButtonData<PlaceWallFinishes>(finishesPanel, "墙饰面", Properties.Resources.WallFinishes, ViewPlanCmdEnabled);
|
||||
|
||||
//统计面板
|
||||
RibbonPanel statisticsPanel = application.CreateRibbonPanel(TabName, StatisticsPanelName);
|
||||
NewPushButtonData<CmdExportBudgetInventory>(statisticsPanel, "工程量导出", Properties.Resources.WorkSchedule, null);
|
||||
NewPushButtonData<ExportBudgetInventory>(statisticsPanel, "工程量导出", Properties.Resources.WorkSchedule, null);
|
||||
//出图面板
|
||||
RibbonPanel drawingPanel = application.CreateRibbonPanel(TabName, DrawingPanelName);
|
||||
|
||||
NewPushButtonData<CreateMainMaterialsTable>(drawingPanel, "主材表", Properties.Resources.MainMaterials, DrawingSheetCmdEnabled);
|
||||
NewPushButtonData<UpdateSheetContents>(drawingPanel, "更新图纸目录", Properties.Resources.UpdateSheetTable, null);
|
||||
|
||||
SplitButtonData legendSplitButtonData = new SplitButtonData("创建图例", "创建图例");
|
||||
var lspb = drawingPanel.AddItem(legendSplitButtonData) as SplitButton;
|
||||
|
||||
132
RookieStation/ScheduleTools/ExecuteCmd/UpdateSheetContents.cs
Normal file
132
RookieStation/ScheduleTools/ExecuteCmd/UpdateSheetContents.cs
Normal file
@@ -0,0 +1,132 @@
|
||||
using Autodesk.Revit.DB;
|
||||
using Autodesk.Revit.UI;
|
||||
using RookieStation.Utils;
|
||||
using System;
|
||||
using System.Linq;
|
||||
|
||||
namespace RookieStation.ScheduleTools.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
internal class UpdateSheetContents : IExternalCommand
|
||||
{
|
||||
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
|
||||
{
|
||||
UIApplication uiapp = commandData.Application;
|
||||
UIDocument uidoc = uiapp.ActiveUIDocument;
|
||||
Autodesk.Revit.ApplicationServices.Application app = uiapp.Application;
|
||||
Document doc = uidoc.Document;
|
||||
DocumentSet docset = uiapp.Application.Documents;
|
||||
//var viewname = ViewSchedule.GetDefaultNameForSheetList(doc);
|
||||
|
||||
//var eleids = ViewSchedule.GetValidFamiliesForNoteBlock(doc);
|
||||
//foreach (var id in eleids)
|
||||
//{
|
||||
// var ele = doc.GetElement(id);
|
||||
//}
|
||||
try
|
||||
{
|
||||
var viewname = "图纸目录";
|
||||
ViewSchedule viewSchedule = new FilteredElementCollector(doc).OfClass(typeof(ViewSchedule)).Cast<ViewSchedule>().Where(v => v.Name.Contains(viewname)).FirstOrDefault();
|
||||
if (viewSchedule == null && doc.ActiveView is ViewSchedule)
|
||||
{
|
||||
viewSchedule = doc.ActiveView as ViewSchedule;
|
||||
}
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
TableData tableData = viewSchedule.GetTableData();
|
||||
TableSectionData tableHeaderData = tableData.GetSectionData(SectionType.Header);
|
||||
TableSectionData tableBodyData = tableData.GetSectionData(SectionType.Body);
|
||||
int numberOfColumns = tableBodyData.NumberOfColumns;
|
||||
int numberOfRows = tableBodyData.NumberOfRows;
|
||||
for (int i = 1; i < numberOfRows; i++)
|
||||
{
|
||||
//var content = viewSchedule.GetCellText(SectionType.Body, i, 0);
|
||||
//var content = i + 1;
|
||||
//var celltype = tableSectionData.GetCellType(i);
|
||||
|
||||
var cateId = tableBodyData.GetCellCategoryId(i, 3).IntegerValue;
|
||||
var cate = (BuiltInCategory)cateId;
|
||||
var collector = new FilteredElementCollector(doc).OfCategory(cate).WhereElementIsNotElementType();
|
||||
var paramId = BuiltInParameter.INVALID;
|
||||
var sheetNumber = string.Empty;
|
||||
for (int j = 0; j < numberOfColumns; j++)
|
||||
{
|
||||
//var builtInParameter = (BuiltInParameter)(-1007401);//图纸编号内建参数ID
|
||||
var builtInParameter = (BuiltInParameter)tableBodyData.GetCellParamId(i, j).IntegerValue;
|
||||
if (BuiltInParameter.SHEET_NUMBER == builtInParameter)
|
||||
{
|
||||
//得到图纸编号的文字
|
||||
sheetNumber = viewSchedule.GetCellText(SectionType.Body, i, j);
|
||||
paramId = builtInParameter;//得到图纸编号的内建参数,用于读取
|
||||
}
|
||||
}
|
||||
foreach (ViewSheet sheet in collector)
|
||||
{
|
||||
var parameter = sheet.get_Parameter(paramId);
|
||||
//非内建参数
|
||||
//var y = doc.GetElement(paramId);
|
||||
//var paramEle = doc.GetElement(paramId) as ParameterElement;
|
||||
//var definit = paramEle.GetDefinition();
|
||||
//var parameter = sheet.get_Parameter(definit);
|
||||
if (parameter.AsString() == sheetNumber)
|
||||
{
|
||||
string number = i < 10 ? $"0{i}" : i.ToString();
|
||||
sheet.GetParameters("图纸序号").FirstOrDefault().Set(number);
|
||||
|
||||
string scale = sheet.get_Parameter(BuiltInParameter.SHEET_SCALE).AsString();
|
||||
|
||||
if (scale == "作为说明")
|
||||
{
|
||||
var viewIds = sheet.GetAllPlacedViews();
|
||||
var view = from id in viewIds
|
||||
where doc.GetElement(id) is ViewSection
|
||||
select doc.GetElement(id);
|
||||
var viewScale = view.FirstOrDefault().get_Parameter(BuiltInParameter.VIEW_SCALE).AsInteger();
|
||||
sheet.GetParameters("图纸比例").FirstOrDefault().Set($"1 : {viewScale}");
|
||||
}
|
||||
else if (scale == " ")
|
||||
{
|
||||
sheet.GetParameters("图纸比例").FirstOrDefault().Set("1 : 1");
|
||||
}
|
||||
else
|
||||
{
|
||||
sheet.GetParameters("图纸比例").FirstOrDefault().Set(scale);
|
||||
}
|
||||
|
||||
//var viewIds = sheet.GetAllPlacedViews();
|
||||
//int planeViewCount = 0;
|
||||
//int sectionViewCount = 0;
|
||||
//int DetailViewCount = 0;
|
||||
//int tempCount = 0;
|
||||
//foreach (var id in viewIds)
|
||||
//{
|
||||
// var view = doc.GetElement(id) as View;
|
||||
// if (view.ViewType == ViewType.CeilingPlan || view.ViewType == ViewType.FloorPlan)
|
||||
// {
|
||||
// planeViewCount += 1;
|
||||
// }
|
||||
// if (view.ViewType == ViewType.Elevation)
|
||||
// {
|
||||
// sectionViewCount += 1;
|
||||
// }
|
||||
// if (view.ViewType == ViewType.Detail)
|
||||
// {
|
||||
// planeViewCount += 1;
|
||||
// }
|
||||
//}
|
||||
|
||||
sheet.GetParameters("图纸尺寸").FirstOrDefault().Set("A3");
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
return Result.Cancelled;
|
||||
}
|
||||
return Result.Succeeded;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,63 +0,0 @@
|
||||
using Autodesk.Revit.DB;
|
||||
using Autodesk.Revit.UI;
|
||||
using RookieStation.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace RookieStation.ScheduleTools.ExecuteCmds
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
internal class ReorderingNumber : IExternalCommand
|
||||
{
|
||||
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
|
||||
{
|
||||
UIApplication uiapp = commandData.Application;
|
||||
UIDocument uidoc = uiapp.ActiveUIDocument;
|
||||
Autodesk.Revit.ApplicationServices.Application app = uiapp.Application;
|
||||
Document doc = uidoc.Document;
|
||||
var view = doc.ActiveView as ViewSchedule;
|
||||
if (view == null)
|
||||
{
|
||||
message = "请打开明细表视图";
|
||||
return Result.Failed;
|
||||
}
|
||||
try
|
||||
{
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
TableData tableData = view.GetTableData();
|
||||
TableSectionData tableSectionData = tableData.GetSectionData(SectionType.Body);
|
||||
int numberOfColumns = tableSectionData.NumberOfColumns;
|
||||
int numberOfRows = tableSectionData.NumberOfRows;
|
||||
for (int i = 1; i < numberOfRows; i++)
|
||||
{
|
||||
var content = view.GetCellText(SectionType.Body, i, 0);
|
||||
//var content = i + 1;
|
||||
//var celltype = tableSectionData.GetCellType(i);
|
||||
var paramId = tableSectionData.GetCellParamId(i, 0);
|
||||
var paramEle = doc.GetElement(paramId) as ParameterElement;
|
||||
var definit = paramEle.GetDefinition();
|
||||
|
||||
var cate = tableSectionData.GetCellCategoryId(i, 0).IntegerValue;
|
||||
var cateEle = (BuiltInCategory)cate;
|
||||
//if (param != null)
|
||||
//{
|
||||
// param.Set($"0{i}");
|
||||
//}
|
||||
//tableSectionData.SetCellText(i, 0, content.ToString());
|
||||
}
|
||||
}, "图纸排序");
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
|
||||
return Result.Succeeded;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -12,7 +12,7 @@ using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace RookieStation.Statistics.ExecuteCmds
|
||||
namespace RookieStation.Statistics.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
@@ -21,11 +21,11 @@ using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace RookieStation.Statistics.ExecuteCmds
|
||||
namespace RookieStation.Statistics.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
internal class CmdExportBudgetInventory : IExternalCommand
|
||||
internal class ExportBudgetInventory : IExternalCommand
|
||||
{
|
||||
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
|
||||
{
|
||||
@@ -16,11 +16,11 @@ using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using static OfficeOpenXml.ExcelErrorValue;
|
||||
|
||||
namespace RookieStation.Statistics.ExecuteCmds
|
||||
namespace RookieStation.Statistics.ExecuteCmd
|
||||
{
|
||||
[Transaction(TransactionMode.Manual)]
|
||||
[Regeneration(RegenerationOption.Manual)]
|
||||
internal class CmdExportWorkSchedule : IExternalCommand
|
||||
internal class ExportWorkSchedule : IExternalCommand
|
||||
{
|
||||
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
|
||||
{
|
||||
BIN
RookieStationSetup/1.0.12/RookieStationSetup.msi
Normal file
BIN
RookieStationSetup/1.0.12/RookieStationSetup.msi
Normal file
Binary file not shown.
BIN
RookieStationSetup/1.0.12/setup.exe
Normal file
BIN
RookieStationSetup/1.0.12/setup.exe
Normal file
Binary file not shown.
Reference in New Issue
Block a user