批量模型创建
This commit is contained in:
@@ -20,6 +20,7 @@ namespace AddinDeployer
|
||||
{
|
||||
//public static void Main(string[] args)
|
||||
//{
|
||||
// ProcessEvent();
|
||||
//}
|
||||
|
||||
private string path;
|
||||
@@ -32,7 +33,8 @@ namespace AddinDeployer
|
||||
{
|
||||
this.BeforeInstall += CustomActionClass_BeforeInstall;
|
||||
this.BeforeUninstall += CustomActionClass_BeforeUninstall;
|
||||
this.AfterInstall += CustomActionClass_AfterInstall;
|
||||
//this.AfterInstall += CustomActionClass_AfterInstall;
|
||||
//this.AfterUninstall += CustomActionClass_AfterUninstall;
|
||||
}
|
||||
|
||||
//private string revitvernum = "2020";
|
||||
@@ -50,17 +52,17 @@ namespace AddinDeployer
|
||||
}
|
||||
catch (Win32Exception e)
|
||||
{
|
||||
MessageBox.Show(e.Message.ToString()); // process was terminating or can't be terminated - deal with it
|
||||
MessageBox.Show(e.Message.ToString());
|
||||
}
|
||||
catch (InvalidOperationException e)
|
||||
{
|
||||
MessageBox.Show(e.Message.ToString()); // process has already exited - might be able to let this one go
|
||||
MessageBox.Show(e.Message.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void CustomActionClass_BeforeUninstall(object sender, InstallEventArgs e)
|
||||
private static void CustomActionClass_BeforeUninstall(object sender, InstallEventArgs e)
|
||||
{
|
||||
KillProcess("REVIT");
|
||||
|
||||
@@ -84,9 +86,18 @@ namespace AddinDeployer
|
||||
//}
|
||||
}
|
||||
|
||||
private void CustomActionClass_BeforeInstall(object sender, InstallEventArgs e)
|
||||
private static void CustomActionClass_BeforeInstall(object sender, InstallEventArgs e)
|
||||
{
|
||||
KillProcess("REVIT");
|
||||
try
|
||||
{
|
||||
var path = @"C:\ProgramData\Autodesk\Revit\Addins\2020";
|
||||
//DelAddinFromPath(path);
|
||||
DeleteFolder(path + "\\RsTools");
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
}
|
||||
|
||||
//var dialogResult = System.Windows.Forms.MessageBox.Show("是否关闭Revit以安装插件", "提示", System.Windows.Forms.MessageBoxButtons.YesNo);
|
||||
|
||||
|
||||
478
RookieStation/Construction/ExecuteCmd/AutoGenerateModels.cs
Normal file
478
RookieStation/Construction/ExecuteCmd/AutoGenerateModels.cs
Normal file
@@ -0,0 +1,478 @@
|
||||
using Autodesk.Revit.UI;
|
||||
using Autodesk.Revit.DB;
|
||||
using Autodesk.Revit.UI.Selection;
|
||||
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;
|
||||
|
||||
namespace RookieStation.Construction.ExecuteCmd
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
internal class AutoGenerateModels : IExternalCommand
|
||||
{
|
||||
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
|
||||
{
|
||||
UIApplication uiapp = commandData.Application;
|
||||
UIDocument uidoc = commandData.Application.ActiveUIDocument;
|
||||
Document doc = uidoc.Document;
|
||||
double length = 25000.0 / 304.8;
|
||||
double width = 15000.0 / 304.8;
|
||||
double interval = 10000 / 304.8;
|
||||
WpfAutoModeling settings = CommonUtils.ShowDialog<WpfAutoModeling>();
|
||||
if (settings.DialogResult == true)
|
||||
{
|
||||
length = settings.Length / 304.8;
|
||||
width = settings.Width / 304.8;
|
||||
}
|
||||
else
|
||||
{
|
||||
return Result.Cancelled;
|
||||
}
|
||||
|
||||
var pointsCorner = new List<XYZ>();
|
||||
//边界
|
||||
IList<Curve> edges = new List<Curve>();
|
||||
|
||||
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);
|
||||
|
||||
pointsCorner.Add(p1);
|
||||
pointsCorner.Add(p2);
|
||||
pointsCorner.Add(p3);
|
||||
pointsCorner.Add(p4);
|
||||
|
||||
for (int i = 0; i <= 3; i++)
|
||||
{
|
||||
Line line = null;
|
||||
if (i == 3)
|
||||
{
|
||||
line = Line.CreateBound(pointsCorner[i], pointsCorner[0]);
|
||||
}
|
||||
else
|
||||
{
|
||||
line = Line.CreateBound(pointsCorner[i], pointsCorner[i + 1]);
|
||||
}
|
||||
|
||||
edges.Add(line);
|
||||
}
|
||||
CurveLoop loop = CurveLoop.Create(edges);
|
||||
try
|
||||
{
|
||||
doc.InvokeGroup(tg =>
|
||||
{
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
//边界组
|
||||
CreateFloor(doc, edges);
|
||||
});
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
CreateColumnAndFoundation(doc, edges, interval);
|
||||
}, "创建基础和柱");
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
CreateFramings(doc, edges, interval);
|
||||
}, "创建地梁");
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
var roof = CreateRoof(doc, loop, 125 / 304.8, 160 / 304.8);
|
||||
|
||||
#region MyRegion
|
||||
|
||||
//Options options = new Options();
|
||||
//options.ComputeReferences = true;
|
||||
//var x = roof.get_Geometry(options);
|
||||
//var gutterType = new FilteredElementCollector(doc).OfClass(typeof(GutterType)).OfCategory(BuiltInCategory.OST_Gutter).Cast<GutterType>().FirstOrDefault();
|
||||
//foreach (var item in x)
|
||||
//{
|
||||
// if (item is Solid)
|
||||
// {
|
||||
// Solid solid = (Solid)item;
|
||||
// var es = solid.Edges;
|
||||
// var references = new ReferenceArray();
|
||||
|
||||
// foreach (Edge e in es)
|
||||
// {
|
||||
// var line = e.AsCurve() as Line;
|
||||
// if (line != null)
|
||||
|
||||
// //references.Append(e.Reference);
|
||||
// try
|
||||
// {
|
||||
// doc.Create.NewGutter(gutterType, e.Reference);
|
||||
// }
|
||||
// catch (Exception)
|
||||
// {
|
||||
// continue;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
#endregion MyRegion
|
||||
}, "创建屋面");
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
CreateGutter(doc, loop, 100.0 / 304.8, 180 / 304.8);
|
||||
}, "创建檐沟");
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
CreateOuterWallList(doc, loop, 200 / 304.8);
|
||||
});
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
CreatePWallList(doc, loop, 400 / 304.8, 0.0);
|
||||
}, "创建铝塑板");
|
||||
}, "自动创建模型");
|
||||
}
|
||||
catch (Autodesk.Revit.Exceptions.OperationCanceledException)
|
||||
{
|
||||
return Result.Cancelled;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw;
|
||||
//System.Windows.Forms.MessageBox.Show(e.InnerException.ToString());
|
||||
}
|
||||
return Result.Succeeded;
|
||||
}
|
||||
|
||||
private static void CreateFloor(Document doc, IList<Curve> edges)
|
||||
{
|
||||
var floorCurveArray = new CurveArray();
|
||||
for (int i = 0; i < edges.Count; i++)
|
||||
{
|
||||
floorCurveArray.Append(edges[i]);
|
||||
}
|
||||
doc.Create.NewFloor(floorCurveArray, true);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///创建门头铝塑板
|
||||
/// </summary>
|
||||
/// <param name="doc"></param>
|
||||
/// <param name="curves"></param>
|
||||
/// <param name="horizontalOffest">水平向外偏移距离</param>
|
||||
/// <param name="verticalOffest"></param>
|
||||
private void CreatePWallList(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();
|
||||
|
||||
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);
|
||||
|
||||
var pheight = 1220 / 304.8;
|
||||
foreach (var curve in translateCurveLoop)
|
||||
{
|
||||
Wall wall = null;
|
||||
doc.InvokeSub(ts =>
|
||||
{
|
||||
wall = Wall.Create(doc, curve, wallType.Id, topLevel.Id, pheight, 0, false, false);
|
||||
});
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建外墙
|
||||
/// </summary>
|
||||
/// <param name="doc"></param>
|
||||
/// <param name="curve"></param>
|
||||
private void CreateOuterWallList(Document doc, CurveLoop loop, double horizontalOffest)
|
||||
{
|
||||
var offestCurve = CurveLoop.CreateViaOffset(loop, horizontalOffest, -XYZ.BasisZ);
|
||||
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 topLevel = new FilteredElementCollector(doc).OfClass(typeof(Level)).OfCategory(BuiltInCategory.OST_Levels).Cast<Level>().Where(l => l.Elevation > doc.ActiveView.GenLevel.Elevation).FirstOrDefault();
|
||||
var currentLevel = doc.ActiveView.GenLevel;
|
||||
var height = topLevel.Elevation - currentLevel.Elevation;
|
||||
foreach (var curve in offestCurve)
|
||||
{
|
||||
var wall = Wall.Create(doc, curve, wallType.Id, currentLevel.Id, height, 0, false, false);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///创建檐沟
|
||||
/// </summary>
|
||||
/// <param name="doc"></param>
|
||||
/// <param name="curves">边界线</param>
|
||||
/// <param name="horizontalOffest">水平向外偏移距离</param>
|
||||
/// <param name="verticalOffest">相对于当前视图标高以上的默认标高的偏移</param>
|
||||
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();
|
||||
double heightOffest = level.Elevation + verticalOffest;
|
||||
var offestCurveLoop = CurveLoop.CreateViaOffset(loop, horizontalOffest, -XYZ.BasisZ);
|
||||
Transform transform = Transform.CreateTranslation(XYZ.BasisZ * heightOffest);
|
||||
var translateCurveLoop = CurveLoop.CreateViaTransform(offestCurveLoop, transform);
|
||||
for (int i = 0; i < translateCurveLoop.Count(); i++)
|
||||
{
|
||||
var curve = translateCurveLoop.ElementAt(i);
|
||||
var mc = doc.Create.NewModelCurve(curve, SketchPlane.Create(doc, Plane.CreateByNormalAndOrigin(XYZ.BasisZ, heightOffest * XYZ.BasisZ)));
|
||||
references.Append(mc.GeometryCurve.Reference);
|
||||
}
|
||||
var gutterType = new FilteredElementCollector(doc).OfClass(typeof(GutterType)).OfCategory(BuiltInCategory.OST_Gutter).Cast<GutterType>().FirstOrDefault();
|
||||
var gutters = doc.Create.NewGutter(gutterType, references);
|
||||
if (!gutters.HorizontalFlipped)
|
||||
{
|
||||
gutters.HorizontalFlip();
|
||||
}
|
||||
}
|
||||
|
||||
private static void NewMethod1(UIDocument uidoc)
|
||||
{
|
||||
double length = 50000.0 / 304.8;
|
||||
double width = 30000.0 / 304.8;
|
||||
double intervalColumn = 10000 / 304.8;
|
||||
var p1 = uidoc.Selection.PickPoint(ObjectSnapTypes.Endpoints, "请选择定位点");
|
||||
//NewMethod2(uidoc, length, width);
|
||||
var m = Math.Floor(length / intervalColumn) + 2;
|
||||
List<Line> ls = new List<Line>();
|
||||
for (int i = 0; i < m; i++)
|
||||
{
|
||||
var pl = i / (m - 1) * length * XYZ.BasisX + p1;
|
||||
var pw = i / (m - 1) * length * XYZ.BasisX + p1 + width * XYZ.BasisY;
|
||||
Line line = Line.CreateBound(pl, pw);
|
||||
ls.Add(line);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建屋顶
|
||||
/// </summary>
|
||||
/// <param name="doc"></param>
|
||||
/// <param name="loop"></param>
|
||||
/// <param name="horizontalOffest">屋顶相对于轮廓向外水平偏移</param>
|
||||
/// <param name="verticalOffest">相对当前标高以上默认标高的偏移</param>
|
||||
/// <returns></returns>
|
||||
public FootPrintRoof CreateRoof(Document doc, CurveLoop loop, double horizontalOffest, double verticalOffest)
|
||||
{
|
||||
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 roofCurveArray = new CurveArray();
|
||||
var offestCurve = CurveLoop.CreateViaOffset(loop, horizontalOffest, -XYZ.BasisZ);
|
||||
for (int i = 0; i < offestCurve.Count(); i++)
|
||||
{
|
||||
roofCurveArray.Append(offestCurve.ElementAt(i));
|
||||
}
|
||||
|
||||
ModelCurveArray modelCurveArray = new ModelCurveArray();
|
||||
FootPrintRoof roof = doc.Create.NewFootPrintRoof(roofCurveArray, level, roofType, out modelCurveArray);
|
||||
var line1 = modelCurveArray.get_Item(1);
|
||||
var line2 = modelCurveArray.get_Item(3);
|
||||
roof.set_DefinesSlope(line1, true);
|
||||
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);
|
||||
return roof;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///创建梁
|
||||
/// </summary>
|
||||
/// <param name="doc"></param>
|
||||
/// <param name="edges"></param>
|
||||
/// <param name="interval"></param>
|
||||
private void CreateFramings(Document doc, IList<Curve> edges, double interval)
|
||||
{
|
||||
List<List<XYZ>> pointsOnLines = new List<List<XYZ>>();
|
||||
var lines = CreateGridLine(interval, edges);
|
||||
foreach (Line c in lines)
|
||||
{
|
||||
List<XYZ> pointsOnLine = new List<XYZ>();
|
||||
var m = (int)Math.Floor(c.Length / interval);
|
||||
for (int i = 1; i <= m; i++)
|
||||
{
|
||||
var p = c.Evaluate(i / (m + 1.0), true);
|
||||
pointsOnLine.Add(p);
|
||||
}
|
||||
pointsOnLine.Add(c.GetEndPoint(0));
|
||||
pointsOnLine.Add(c.GetEndPoint(1));
|
||||
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();
|
||||
}
|
||||
foreach (var pointsOnLine in pointsOnLines)
|
||||
{
|
||||
for (int i = 0; i < pointsOnLine.Count - 1; i++)
|
||||
{
|
||||
Line line = Line.CreateBound(pointsOnLine[i], pointsOnLine[i + 1]);
|
||||
doc.Create.NewFamilyInstance(line, frameSymbol, doc.ActiveView.GenLevel, Autodesk.Revit.DB.Structure.StructuralType.Beam);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///创建柱和基础
|
||||
/// </summary>
|
||||
/// <param name="doc"></param>
|
||||
/// <param name="edges">边界</param>
|
||||
/// <param name="interval">间距</param>
|
||||
private void CreateColumnAndFoundation(Document doc, IList<Curve> edges, double interval)
|
||||
{
|
||||
List<XYZ> pointColumnFoundation = new List<XYZ>();
|
||||
var columnSymbol = new FilteredElementCollector(doc).OfClass(typeof(FamilySymbol)).OfCategory(BuiltInCategory.OST_StructuralColumns).Cast<FamilySymbol>().Where(cs => cs.FamilyName.Contains("方形")).FirstOrDefault();
|
||||
var foundationSymbol = new FilteredElementCollector(doc).OfClass(typeof(FamilySymbol)).OfCategory(BuiltInCategory.OST_StructuralFoundation).Cast<FamilySymbol>().FirstOrDefault();
|
||||
if (!columnSymbol.IsActive)
|
||||
{
|
||||
columnSymbol.Activate();
|
||||
}
|
||||
if (!foundationSymbol.IsActive)
|
||||
{
|
||||
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(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)
|
||||
//{
|
||||
// doc.Create.NewModelCurve(l, SketchPlane.Create(doc, Plane.CreateByNormalAndOrigin(XYZ.BasisZ, XYZ.Zero)));
|
||||
//}
|
||||
foreach (Line c in lines)
|
||||
{
|
||||
var m = (int)Math.Floor(c.Length / interval);
|
||||
for (int i = 1; i <= m; i++)
|
||||
{
|
||||
var p = c.Evaluate(i / (m + 1.0), true);
|
||||
pointColumnFoundation.Add(p);
|
||||
}
|
||||
pointColumnFoundation.Add(c.GetEndPoint(0));
|
||||
pointColumnFoundation.Add(c.GetEndPoint(1));
|
||||
}
|
||||
foreach (var p in pointColumnFoundation)
|
||||
{
|
||||
doc.Create.NewFamilyInstance(p, columnSymbol, doc.ActiveView.GenLevel, Autodesk.Revit.DB.Structure.StructuralType.Column);
|
||||
}
|
||||
foreach (var p in pointColumnFoundation)
|
||||
{
|
||||
var pt = p - XYZ.BasisZ * 450 / 304.8;
|
||||
doc.Create.NewFamilyInstance(pt, foundationSymbol, doc.ActiveView.GenLevel, Autodesk.Revit.DB.Structure.StructuralType.Footing);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建网格线
|
||||
/// </summary>
|
||||
/// <param name="maxCellSize"></param>
|
||||
/// <param name="edges"></param>
|
||||
/// <returns></returns>
|
||||
private List<Curve> CreateGridLine(double maxCellSize, IList<Curve> edges)
|
||||
{
|
||||
var pointsOnLines = new List<List<XYZ>>();
|
||||
var gridLines = new List<Curve>();
|
||||
gridLines.AddRange(edges);
|
||||
//将边界线按跨数分割,
|
||||
foreach (Curve c in edges)
|
||||
{
|
||||
pointsOnLines.Add(PointsOnCurve(c, maxCellSize));
|
||||
}
|
||||
if (pointsOnLines.Count == 2)
|
||||
{
|
||||
var li1 = pointsOnLines[0];//水平下
|
||||
var li2 = pointsOnLines[1];//水平上
|
||||
for (int i = 0; i < li1.Count; i++)
|
||||
{
|
||||
var line = Line.CreateBound(li1[i], li2[i]);
|
||||
gridLines.Add(line);
|
||||
}
|
||||
}
|
||||
else if (pointsOnLines.Count == 4)
|
||||
{
|
||||
var li1 = pointsOnLines[0];//水平下
|
||||
var li3 = pointsOnLines[2];//水平上
|
||||
var li2 = pointsOnLines[1];//垂直右
|
||||
var li4 = pointsOnLines[3];//垂直左
|
||||
for (int i = 0; i < li1.Count; i++)
|
||||
{
|
||||
var line = Line.CreateBound(li1[i], li3[i]);
|
||||
gridLines.Add(line);
|
||||
}
|
||||
for (int i = 0; i < li2.Count; i++)
|
||||
{
|
||||
var line = Line.CreateBound(li2[i], li4[i]);
|
||||
gridLines.Add(line);
|
||||
}
|
||||
}
|
||||
|
||||
return gridLines;
|
||||
}
|
||||
|
||||
private List<XYZ> PointsOnCurve(Curve c, double maxCellSize)
|
||||
{
|
||||
List<XYZ> ordered = new List<XYZ>();
|
||||
var m = (int)Math.Floor(c.Length / maxCellSize);
|
||||
if (m > 0)
|
||||
{
|
||||
List<XYZ> pts = new List<XYZ>();
|
||||
for (int i = 1; i <= m; i++)
|
||||
{
|
||||
var p = c.Evaluate(i / (m + 1.0), true);
|
||||
pts.Add(p);
|
||||
}
|
||||
ordered = pts.OrderBy(p => p.X).ThenBy(p => p.Y).ToList();
|
||||
}
|
||||
return ordered;
|
||||
}
|
||||
|
||||
private int GetSegmentCount(Curve curve)
|
||||
{
|
||||
double interval = 10000 / 304.8;
|
||||
double l = curve.Length;
|
||||
if (l < interval)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
else if (l >= interval && l < 2 * interval)
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
else if (l >= 2 * interval && l < 3 * interval)
|
||||
{
|
||||
return 3;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
63
RookieStation/Construction/Views/WpfAutoModeling.xaml
Normal file
63
RookieStation/Construction/Views/WpfAutoModeling.xaml
Normal file
@@ -0,0 +1,63 @@
|
||||
<Window
|
||||
x:Class="RookieStation.Construction.Views.WpfAutoModeling"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:hc="https://handyorg.github.io/handycontrol"
|
||||
xmlns:local="clr-namespace:RookieStation.Construction.Views"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
Width="161"
|
||||
Height="103"
|
||||
MinWidth="300"
|
||||
MinHeight="180">
|
||||
<Window.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/SkinDefault.xaml" />
|
||||
<ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Theme.xaml" />
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
</ResourceDictionary>
|
||||
</Window.Resources>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="1.5*" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<GroupBox
|
||||
Grid.Row="0"
|
||||
Grid.Column="0"
|
||||
Header="长度(mm)">
|
||||
<TextBox
|
||||
x:Name="tbLength"
|
||||
InputMethod.IsInputMethodEnabled="False"
|
||||
PreviewTextInput="tb_PreviewTextInput"
|
||||
Text="15000"
|
||||
TextAlignment="Center" />
|
||||
</GroupBox>
|
||||
<GroupBox
|
||||
Grid.Row="0"
|
||||
Grid.Column="1"
|
||||
VerticalContentAlignment="Center"
|
||||
Header="宽度(mm)">
|
||||
<TextBox
|
||||
x:Name="tbWidth"
|
||||
InputMethod.IsInputMethodEnabled="False"
|
||||
PreviewTextInput="tb_PreviewTextInput"
|
||||
Text="8000"
|
||||
TextAlignment="Center" />
|
||||
</GroupBox>
|
||||
<Button
|
||||
x:Name="btnConfirm"
|
||||
Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
Width="74"
|
||||
Height="30"
|
||||
HorizontalAlignment="Center"
|
||||
Click="btnConfirm_Click"
|
||||
Content="确定" />
|
||||
</Grid>
|
||||
</Window>
|
||||
44
RookieStation/Construction/Views/WpfAutoModeling.xaml.cs
Normal file
44
RookieStation/Construction/Views/WpfAutoModeling.xaml.cs
Normal file
@@ -0,0 +1,44 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace RookieStation.Construction.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// WpfAutoModeling.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class WpfAutoModeling
|
||||
{
|
||||
public double Length { get; set; }
|
||||
public double Width { get; set; }
|
||||
|
||||
public WpfAutoModeling()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void btnConfirm_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Length = Convert.ToDouble(tbLength.Text.Trim());
|
||||
Width = Convert.ToDouble(tbWidth.Text.Trim());
|
||||
DialogResult = true;
|
||||
}
|
||||
|
||||
private void tb_PreviewTextInput(object sender, TextCompositionEventArgs e)
|
||||
{
|
||||
System.Text.RegularExpressions.Regex re = new System.Text.RegularExpressions.Regex("[^0-9]+");
|
||||
e.Handled = re.IsMatch(e.Text);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -89,8 +89,21 @@ namespace RookieStation.Drawing.ExecuteCmds
|
||||
//遍历每个族类型
|
||||
foreach (var instancesBySymbol in symbolGroups)
|
||||
{
|
||||
//var instance = instancesBySymbol.ElementAt(0);
|
||||
dynamic datarow = new { FamilyName = instanceByFamily.Key, SymbolName = instancesBySymbol.Key, Count = instancesBySymbol.Count().ToString() };
|
||||
var instance = instancesBySymbol.ElementAt(0);
|
||||
var n = instancesBySymbol.Count();
|
||||
if (instance.Symbol.FamilyName.Contains("货架"))
|
||||
{
|
||||
foreach (var fi in instancesBySymbol)
|
||||
{
|
||||
var jdStr = fi.get_Parameter(BuiltInParameter.ALL_MODEL_INSTANCE_COMMENTS).AsString();
|
||||
if (jdStr != null)
|
||||
n -= 1;
|
||||
}
|
||||
}
|
||||
if (true)
|
||||
{
|
||||
}
|
||||
dynamic datarow = new { FamilyName = instanceByFamily.Key, SymbolName = instancesBySymbol.Key, Count = n.ToString() };
|
||||
|
||||
data.Add(datarow);
|
||||
}
|
||||
|
||||
@@ -79,12 +79,12 @@ namespace RookieStation.Drawing.ExecuteCmds
|
||||
private List<string> GetData(Document doc)
|
||||
{
|
||||
var shelves = new FilteredElementCollector(doc).OfClass(typeof(FamilyInstance)).OfCategory(BuiltInCategory.OST_Furniture).Cast<FamilyInstance>().Where(s => s.Symbol.FamilyName.Contains("货架"));
|
||||
var rooms = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Rooms).Cast<Room>();
|
||||
var rooms = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Rooms).Cast<Room>().Where(rm => rm.Area > 0);
|
||||
double area = 0.0;
|
||||
double orders = 0;
|
||||
if (rooms.Count() == 0)
|
||||
{
|
||||
TaskDialog.Show("温馨提示", "未发现房间");
|
||||
TaskDialog.Show("提醒", "未发现已布置的房间");
|
||||
}
|
||||
foreach (var room in rooms)
|
||||
{
|
||||
@@ -98,7 +98,16 @@ namespace RookieStation.Drawing.ExecuteCmds
|
||||
var instance = group.ElementAt(0);
|
||||
//当前分组货架的长度
|
||||
var l = instance.Symbol.GetParameters("长度").FirstOrDefault().AsValueString();
|
||||
orders += group.Count() * Convert.ToInt16(l) / 1000.0 * 80.0;
|
||||
foreach (var fi in group)
|
||||
{
|
||||
var jdStr = fi.get_Parameter(BuiltInParameter.ALL_MODEL_INSTANCE_COMMENTS).AsString();
|
||||
if (jdStr == null)
|
||||
orders += Convert.ToInt16(l) / 1000.0 * 80.0;
|
||||
//if (!jdStr.Contains("京东") && !jdStr.Contains("顺丰") && !jdStr.Contains("JD") && !jdStr.Contains("SF"))
|
||||
//{
|
||||
// continue;
|
||||
//}
|
||||
}
|
||||
}
|
||||
statistics.Add(orders.ToString());
|
||||
statistics.Add(UserConstant.Orders.ToString());
|
||||
|
||||
@@ -74,7 +74,7 @@ namespace RookieStation.Drawing.ExecuteCmds
|
||||
|
||||
private List<LightingDevices> GetData(Document doc, ElementId viewId)
|
||||
{
|
||||
ElementCategoryFilter filter1 = new ElementCategoryFilter(BuiltInCategory.OST_CommunicationDevices);
|
||||
ElementCategoryFilter filter1 = new ElementCategoryFilter(BuiltInCategory.OST_DataDevices);
|
||||
ElementCategoryFilter filter2 = new ElementCategoryFilter(BuiltInCategory.OST_ElectricalFixtures);
|
||||
LogicalOrFilter logicalOrFilter = new LogicalOrFilter(filter1, filter2);
|
||||
var sockets = new FilteredElementCollector(doc, viewId).OfClass(typeof(FamilyInstance)).WherePasses(logicalOrFilter).Cast<FamilyInstance>();
|
||||
|
||||
@@ -139,14 +139,14 @@ namespace RookieStation.MailingAreaModule.ExecuteCmds
|
||||
List<ElementId> wallIds = new List<ElementId>();
|
||||
WallType fireRetardantBoard = RsRevitUtils.GetWallTypeByName(doc, "阻燃板");
|
||||
WallType greyEmulsionPaint = RsRevitUtils.GetWallTypeByName(doc, "灰色乳胶漆");
|
||||
WallType aluminumPlasticPanel = RsRevitUtils.GetWallTypeByName(doc, "铝塑板");
|
||||
WallType skirtingLine = RsRevitUtils.GetWallTypeByName(doc, "踢脚线");
|
||||
WallType aluminumPlasticPanel = RsRevitUtils.GetWallTypeByName(doc, "白色铝单板");
|
||||
WallType skirtingLine = RsRevitUtils.GetWallTypeByName(doc, "黑钛不锈钢");
|
||||
//铝塑板块数
|
||||
int n = (int)Math.Floor(referline.Length / interval);
|
||||
double rem = referline.Length % (gap + aluminumPlasticPanelLength);
|
||||
if (fireRetardantBoard == null || aluminumPlasticPanel == null || skirtingLine == null || greyEmulsionPaint == null)
|
||||
{
|
||||
TaskDialog.Show("温馨提示", "需要新建装饰所需的墙类型,类型名称需分别包含阻燃板,灰色乳胶漆,铝塑板,踢脚线");
|
||||
TaskDialog.Show("温馨提示", "需要新建装饰所需的墙类型,类型名称需分别包含阻燃板,灰色乳胶漆,白色铝单板,黑钛不锈钢踢脚线");
|
||||
return Result.Failed;
|
||||
}
|
||||
fireRetardantBoardWidth = fireRetardantBoard.Width;
|
||||
@@ -206,7 +206,7 @@ namespace RookieStation.MailingAreaModule.ExecuteCmds
|
||||
}
|
||||
}, "背景墙创建");
|
||||
|
||||
CreateCaiNiaoDuty(doc, skirtingLineHeight + aluminumPlasticPanelHeight, greyEmulsionPaintWidth + fireRetardantBoardWidth, referline);
|
||||
CreateCaiNiaoDuty(doc, skirtingLineHeight + aluminumPlasticPanelHeight, greyEmulsionPaintWidth, referline);
|
||||
|
||||
double receptionLength = referline.Length / 3 * 2;
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ namespace RookieStation.ParcelAreaModule.ExecuteCmds
|
||||
}
|
||||
Line line = RsRevitUtils.GetGuideGeometryAndDeleteGuide(doc, eleIdsAdded);
|
||||
|
||||
double interval = (330 + entranceGateLayout.PassageWidth) / 304.8;
|
||||
double interval = (230 + entranceGateLayout.PassageWidth) / 304.8;
|
||||
double offest = 0.0;
|
||||
//布置闸机的数量
|
||||
List<XYZ> pts = GetInstancePointsByLine(line, interval);
|
||||
@@ -80,11 +80,16 @@ namespace RookieStation.ParcelAreaModule.ExecuteCmds
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
CreateGates(uidoc, pts, out instances, out offest);
|
||||
}, "创建闸机位置");
|
||||
}, "创建闸机");
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
RsRevitUtils.AdjustInstances(doc, instances, line, offest);
|
||||
}, "调整闸机位置");
|
||||
foreach (var instance in instances)
|
||||
{
|
||||
instance.GetParameters("前").FirstOrDefault().Set(1);
|
||||
instance.GetParameters("后").FirstOrDefault().Set(0);
|
||||
}
|
||||
}, "调整闸机");
|
||||
}
|
||||
return Result.Succeeded;
|
||||
}, "布置入口闸机");
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace RookieStation.ParcelAreaModule.ExecuteCmds
|
||||
/// <summary>
|
||||
/// 是否起始为通道
|
||||
/// </summary>
|
||||
internal bool isPassageStart;
|
||||
internal bool StartWithPassage;
|
||||
|
||||
internal double PassageWidth;
|
||||
|
||||
@@ -47,14 +47,14 @@ namespace RookieStation.ParcelAreaModule.ExecuteCmds
|
||||
|
||||
if (gateLayout.DialogResult == true)
|
||||
{
|
||||
isPassageStart = gateLayout.IsStartPassage;
|
||||
StartWithPassage = gateLayout.StartWithPassage;
|
||||
PassageWidth = gateLayout.PassageWidth;
|
||||
}
|
||||
else
|
||||
{
|
||||
return Result.Cancelled;
|
||||
}
|
||||
double interval = (1030 + PassageWidth + 50);
|
||||
double interval = 630 + PassageWidth;
|
||||
List<FamilyInstance> instances = new List<FamilyInstance>();
|
||||
FamilySymbol guideSymbol = RsRevitUtils.GetGuideSymbol(doc); ;
|
||||
if (guideSymbol == null)
|
||||
@@ -65,13 +65,12 @@ namespace RookieStation.ParcelAreaModule.ExecuteCmds
|
||||
}
|
||||
int orders = UserConstant.Orders;
|
||||
int n = GetGateCountByOrders(orders);//根据单量得到收检台数量
|
||||
if (orders.Equals(0) || n == 0)
|
||||
if (orders <= 0)
|
||||
{
|
||||
message = "单量有误";
|
||||
//TaskDialog.Show("温馨提示", "单量有误");
|
||||
return Result.Failed;
|
||||
}
|
||||
return doc.InvokeGroup<Result>(tg =>
|
||||
return doc.InvokeGroup(tg =>
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -85,12 +84,12 @@ namespace RookieStation.ParcelAreaModule.ExecuteCmds
|
||||
uiapp.Application.DocumentChanged -= Application_DocumentChanged;
|
||||
if (eleIdsAdded.Count == 0)
|
||||
{
|
||||
return Result.Cancelled;
|
||||
return Result.Failed;
|
||||
}
|
||||
//直线向量
|
||||
Line referline = RsRevitUtils.GetGuideGeometryAndDeleteGuide(doc, eleIdsAdded);
|
||||
|
||||
int m = (int)Math.Floor((referline.Length * 304.8 / (PassageWidth + 1030 + 50)) + 0.5);
|
||||
int m = (int)Math.Floor((referline.Length * 304.8 / interval) + 0.5);
|
||||
|
||||
if (m < n)//如果实际场地设置的数量无法满足单量要求,按实际场地设置
|
||||
{
|
||||
@@ -98,6 +97,108 @@ namespace RookieStation.ParcelAreaModule.ExecuteCmds
|
||||
}
|
||||
List<XYZ> locationPoint = new List<XYZ>();
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
Family checkDesk = RsRevitUtils.GetLoadedFamily(doc, "收检台-I型");
|
||||
var symbolId = checkDesk.GetFamilySymbolIds().FirstOrDefault();
|
||||
FamilySymbol symbol = doc.GetElement(symbolId) as FamilySymbol;
|
||||
if (symbol == null)
|
||||
symbol.Activate();
|
||||
|
||||
Level level = uidoc.ActiveView.GenLevel;
|
||||
if (level == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (StartWithPassage)//起始是通道
|
||||
{
|
||||
for (int i = 0; i < n; i++)
|
||||
{
|
||||
double parameter = (interval * (i + 0.5 * (1 + Math.Pow(-1, i)))) / 304.8;
|
||||
XYZ p = referline.Evaluate(parameter, false);
|
||||
locationPoint.Add(p);
|
||||
}
|
||||
for (int i = 0; i < locationPoint.Count; i++)
|
||||
{
|
||||
var point = locationPoint[i];
|
||||
if (i % 2 == 0)
|
||||
{
|
||||
FamilyInstance rightInstance = doc.Create.NewFamilyInstance(point, symbol, level, Autodesk.Revit.DB.Structure.StructuralType.NonStructural);
|
||||
if (rightInstance.CanFlipHand)
|
||||
{
|
||||
rightInstance.flipHand();
|
||||
var param = rightInstance.GetParameters("镜像字").FirstOrDefault();
|
||||
if (param.IsReadOnly)
|
||||
{
|
||||
rightInstance.GetParameters("正向字").FirstOrDefault().Set(0);
|
||||
}
|
||||
}
|
||||
instances.Add(rightInstance);
|
||||
}
|
||||
else
|
||||
{
|
||||
FamilyInstance leftInstance = doc.Create.NewFamilyInstance(point, symbol, level, Autodesk.Revit.DB.Structure.StructuralType.NonStructural);
|
||||
|
||||
instances.Add(leftInstance);
|
||||
}
|
||||
}
|
||||
|
||||
//doc.Delete(instances.First().Id);
|
||||
//instances.RemoveAt(0);
|
||||
}
|
||||
else//起始是收检台
|
||||
{
|
||||
for (int i = 0; i < n; i++)
|
||||
{
|
||||
double parameter = (interval * (i + 0.5 * Math.Pow(-1, i))) / 304.8;
|
||||
XYZ p = referline.Evaluate(parameter, false);
|
||||
locationPoint.Add(p);
|
||||
}
|
||||
for (int i = 0; i < locationPoint.Count; i++)
|
||||
{
|
||||
var point = locationPoint[i];
|
||||
if (i % 2 == 0)
|
||||
{
|
||||
FamilyInstance leftInstance = doc.Create.NewFamilyInstance(point, symbol, level, Autodesk.Revit.DB.Structure.StructuralType.NonStructural);
|
||||
if (leftInstance.CanFlipHand)
|
||||
{
|
||||
leftInstance.flipHand();
|
||||
var param = leftInstance.GetParameters("镜像字").FirstOrDefault();
|
||||
if (param.IsReadOnly)
|
||||
{
|
||||
leftInstance.GetParameters("正向字").FirstOrDefault().Set(0);
|
||||
}
|
||||
}
|
||||
instances.Add(leftInstance);
|
||||
}
|
||||
else
|
||||
{
|
||||
FamilyInstance rightInstance = doc.Create.NewFamilyInstance(point, symbol, level, Autodesk.Revit.DB.Structure.StructuralType.NonStructural);
|
||||
instances.Add(rightInstance);
|
||||
}
|
||||
}
|
||||
}
|
||||
//OldMethod(uidoc, interval, instances, n, referline, locationPoint);
|
||||
|
||||
//if (tg.GetStatus() == TransactionStatus.Started)
|
||||
//{
|
||||
// tg.RollBack();
|
||||
//}
|
||||
//return Result.Cancelled;
|
||||
}, "创建并布置收检台");
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
RsRevitUtils.AdjustInstances(doc, instances, referline, 1630 / 2 / 304.8);
|
||||
}, "调整收检台位置");
|
||||
}
|
||||
return Result.Succeeded;
|
||||
}, "布置收检台");
|
||||
}
|
||||
|
||||
[Obsolete]
|
||||
private void OldMethod(UIDocument uidoc, double interval, List<FamilyInstance> instances, int n, Line referline, List<XYZ> locationPoint)
|
||||
{
|
||||
Document doc = uidoc.Document;
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
Family gateFamily = RsRevitUtils.GetLoadedFamily(doc, UserConstant.FamilyLibraryDirectory + "出入口\\收检台-左.rfa");
|
||||
IEnumerable<ElementId> leftSymbolId = from id in gateFamily.GetFamilySymbolIds()
|
||||
@@ -114,7 +215,7 @@ namespace RookieStation.ParcelAreaModule.ExecuteCmds
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (isPassageStart)//起始是通道
|
||||
if (StartWithPassage)//起始是通道
|
||||
{
|
||||
for (int i = 0; i < n; i++)
|
||||
{
|
||||
@@ -173,16 +274,6 @@ namespace RookieStation.ParcelAreaModule.ExecuteCmds
|
||||
{
|
||||
RsRevitUtils.AdjustInstances(doc, instances, referline, 0);
|
||||
}, "调整收检台位置");
|
||||
|
||||
//if (tg.GetStatus() == TransactionStatus.Started)
|
||||
//{
|
||||
// tg.RollBack();
|
||||
//}
|
||||
//return Result.Cancelled;
|
||||
}
|
||||
|
||||
return Result.Succeeded;
|
||||
}, "布置收检台");
|
||||
}
|
||||
|
||||
private int GetGateCountByOrders(int orders)
|
||||
|
||||
@@ -35,6 +35,6 @@ namespace RookieStation.ParcelAreaModule.Models
|
||||
}
|
||||
}
|
||||
|
||||
public string SymbolName => $"{CommonUtils.GetEnumDescription(ShelfLength)}mmx{CommonUtils.GetEnumDescription(ShelfWidth)}mm";
|
||||
public string SymbolName => $"{CommonUtils.GetEnumDescription(ShelfLength)}*{CommonUtils.GetEnumDescription(ShelfWidth)}mm";
|
||||
}
|
||||
}
|
||||
@@ -21,7 +21,7 @@ namespace RookieStation.ParcelAreaModule.Views
|
||||
/// </summary>
|
||||
public partial class WpfExitGate
|
||||
{
|
||||
public bool IsStartPassage { get; set; }
|
||||
public bool StartWithPassage { get; set; }
|
||||
|
||||
public double PassageWidth { get; set; }
|
||||
|
||||
@@ -37,11 +37,11 @@ namespace RookieStation.ParcelAreaModule.Views
|
||||
PassageWidth = passageWidth;
|
||||
if (rbStartPassage.IsChecked == true)
|
||||
{
|
||||
IsStartPassage = true;
|
||||
StartWithPassage = true;
|
||||
}
|
||||
else if (rbStartInspection.IsChecked == true)
|
||||
{
|
||||
IsStartPassage = false;
|
||||
StartWithPassage = false;
|
||||
}
|
||||
if (a)
|
||||
{
|
||||
|
||||
10
RookieStation/Properties/Resources.Designer.cs
generated
10
RookieStation/Properties/Resources.Designer.cs
generated
@@ -60,6 +60,16 @@ namespace RookieStation.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap Architect {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("Architect", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
|
||||
@@ -118,6 +118,9 @@
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="Architect" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Architect.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="AutoArrangeTags" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ArrangeTags.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
||||
BIN
RookieStation/Resources/Architect.png
Normal file
BIN
RookieStation/Resources/Architect.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 904 B |
@@ -102,6 +102,10 @@
|
||||
<Compile Include="CommonTools\Views\ProgressMonitorView.xaml.cs">
|
||||
<DependentUpon>ProgressMonitorView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Construction\ExecuteCmd\AutoGenerateModels.cs" />
|
||||
<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" />
|
||||
@@ -122,6 +126,7 @@
|
||||
<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" />
|
||||
@@ -238,6 +243,10 @@
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="Construction\Views\WpfAutoModeling.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Drawing\Views\WpfLegendCreator.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
@@ -296,6 +305,7 @@
|
||||
<None Include="Resources\GroundLegend.png" />
|
||||
<None Include="Resources\FurnitureLegend.png" />
|
||||
<None Include="Resources\ArrangeTags.png" />
|
||||
<None Include="Resources\Architect.png" />
|
||||
<Content Include="Resources\LogoExtrusion.png" />
|
||||
<None Include="Resources\ViewPlanDim.png" />
|
||||
<None Include="Resources\ViewSectionDim.png" />
|
||||
@@ -480,6 +490,7 @@
|
||||
<Content Include="Resources\Shelf.png" />
|
||||
<Content Include="Resources\ShelfCard.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.114.0\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets" Condition="Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.114.0\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets')" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
|
||||
@@ -15,6 +15,7 @@ using System.Windows.Interop;
|
||||
using System.Windows.Media.Imaging;
|
||||
using RookieStation.Drawing.ExecuteCmds;
|
||||
using System.Reflection;
|
||||
using RookieStation.Construction.ExecuteCmd;
|
||||
|
||||
namespace RookieStation.RibbonMenu
|
||||
{
|
||||
@@ -97,6 +98,7 @@ namespace RookieStation.RibbonMenu
|
||||
RibbonPanel projectPanel = application.CreateRibbonPanel(TabName, ProjectSettingsPanelName);
|
||||
|
||||
NewPushButtonData<CmdProjectSettings>(projectPanel, "项目设置", Properties.Resources.cainiao, null);
|
||||
NewPushButtonData<AutoGenerateModels>(projectPanel, "创建模型", Properties.Resources.Architect, null);
|
||||
//前台布置
|
||||
RibbonPanel receptionAreaPanel = application.CreateRibbonPanel(TabName, ReceptionPanelName);
|
||||
|
||||
|
||||
63
RookieStation/ScheduleTools/ExecuteCmds/ReorderingNumber.cs
Normal file
63
RookieStation/ScheduleTools/ExecuteCmds/ReorderingNumber.cs
Normal file
@@ -0,0 +1,63 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
RookieStationSetup/10.0.12/RookieStationSetup.msi
Normal file
BIN
RookieStationSetup/10.0.12/RookieStationSetup.msi
Normal file
Binary file not shown.
BIN
RookieStationSetup/10.0.12/setup.exe
Normal file
BIN
RookieStationSetup/10.0.12/setup.exe
Normal file
Binary file not shown.
@@ -28,13 +28,13 @@
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_0B9FEB12CF079BDF1FD36BC23BAD2B36"
|
||||
"OwnerKey" = "8:_FBE461B9D4BD4603919E2821D88FB7CB"
|
||||
"OwnerKey" = "8:_106061D90DD7421EAB1EE10373608018"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_0B9FEB12CF079BDF1FD36BC23BAD2B36"
|
||||
"OwnerKey" = "8:_106061D90DD7421EAB1EE10373608018"
|
||||
"OwnerKey" = "8:_FBE461B9D4BD4603919E2821D88FB7CB"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
@@ -76,13 +76,13 @@
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_24527FE9429AA075502970126305C23D"
|
||||
"OwnerKey" = "8:_FBE461B9D4BD4603919E2821D88FB7CB"
|
||||
"OwnerKey" = "8:_106061D90DD7421EAB1EE10373608018"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_24527FE9429AA075502970126305C23D"
|
||||
"OwnerKey" = "8:_106061D90DD7421EAB1EE10373608018"
|
||||
"OwnerKey" = "8:_FBE461B9D4BD4603919E2821D88FB7CB"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
@@ -184,13 +184,13 @@
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_5B037BA4394F5E865D151F734EC85F4D"
|
||||
"OwnerKey" = "8:_106061D90DD7421EAB1EE10373608018"
|
||||
"OwnerKey" = "8:_FBE461B9D4BD4603919E2821D88FB7CB"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_5B037BA4394F5E865D151F734EC85F4D"
|
||||
"OwnerKey" = "8:_FBE461B9D4BD4603919E2821D88FB7CB"
|
||||
"OwnerKey" = "8:_106061D90DD7421EAB1EE10373608018"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
@@ -231,6 +231,12 @@
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_6C88567189D9433AAE8A4A6CCB8722D3"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_6EC43FCDF6B045CFBC5FA294D862A2BF"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
@@ -280,13 +286,13 @@
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_87B3C6ABBC8FF8A77BFE903B40AF6691"
|
||||
"OwnerKey" = "8:_FBE461B9D4BD4603919E2821D88FB7CB"
|
||||
"OwnerKey" = "8:_106061D90DD7421EAB1EE10373608018"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_87B3C6ABBC8FF8A77BFE903B40AF6691"
|
||||
"OwnerKey" = "8:_106061D90DD7421EAB1EE10373608018"
|
||||
"OwnerKey" = "8:_FBE461B9D4BD4603919E2821D88FB7CB"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
@@ -358,13 +364,13 @@
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_B460A3FDDC6885A3B443341CFA25EEA2"
|
||||
"OwnerKey" = "8:_106061D90DD7421EAB1EE10373608018"
|
||||
"OwnerKey" = "8:_FBE461B9D4BD4603919E2821D88FB7CB"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_B460A3FDDC6885A3B443341CFA25EEA2"
|
||||
"OwnerKey" = "8:_FBE461B9D4BD4603919E2821D88FB7CB"
|
||||
"OwnerKey" = "8:_106061D90DD7421EAB1EE10373608018"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
@@ -376,13 +382,13 @@
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_B65AD99782EE5D59821FCD856470C306"
|
||||
"OwnerKey" = "8:_FBE461B9D4BD4603919E2821D88FB7CB"
|
||||
"OwnerKey" = "8:_106061D90DD7421EAB1EE10373608018"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_B65AD99782EE5D59821FCD856470C306"
|
||||
"OwnerKey" = "8:_106061D90DD7421EAB1EE10373608018"
|
||||
"OwnerKey" = "8:_FBE461B9D4BD4603919E2821D88FB7CB"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
@@ -519,13 +525,7 @@
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_E599F8C758BA4251BBEE7ED354B5902B"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_F3DBE5F365DC458EBC7E4BD1CFCF285D"
|
||||
"MsmKey" = "8:_E5F481EEE0324F3CBEAB806F62C939E4"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
@@ -544,18 +544,6 @@
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_UNDEFINED"
|
||||
"OwnerKey" = "8:_F3DBE5F365DC458EBC7E4BD1CFCF285D"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_UNDEFINED"
|
||||
"OwnerKey" = "8:_106061D90DD7421EAB1EE10373608018"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_UNDEFINED"
|
||||
"OwnerKey" = "8:_FBE461B9D4BD4603919E2821D88FB7CB"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
@@ -568,6 +556,36 @@
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_UNDEFINED"
|
||||
"OwnerKey" = "8:_E26E0990C8FE2CD4B9BDF57F61611379"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_UNDEFINED"
|
||||
"OwnerKey" = "8:_7CA1C332699FD9CD43194849BF997D08"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_UNDEFINED"
|
||||
"OwnerKey" = "8:_94D83AC6917400F3B63679A37661FBFB"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_UNDEFINED"
|
||||
"OwnerKey" = "8:_CECC41044D30CA62AB3DE090794D73D6"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_UNDEFINED"
|
||||
"OwnerKey" = "8:_106061D90DD7421EAB1EE10373608018"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_UNDEFINED"
|
||||
"OwnerKey" = "8:_24527FE9429AA075502970126305C23D"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
@@ -601,30 +619,6 @@
|
||||
"OwnerKey" = "8:_B65AD99782EE5D59821FCD856470C306"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_UNDEFINED"
|
||||
"OwnerKey" = "8:_E26E0990C8FE2CD4B9BDF57F61611379"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_UNDEFINED"
|
||||
"OwnerKey" = "8:_7CA1C332699FD9CD43194849BF997D08"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_UNDEFINED"
|
||||
"OwnerKey" = "8:_94D83AC6917400F3B63679A37661FBFB"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_UNDEFINED"
|
||||
"OwnerKey" = "8:_CECC41044D30CA62AB3DE090794D73D6"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
}
|
||||
"Configurations"
|
||||
{
|
||||
@@ -1358,6 +1352,26 @@
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_6C88567189D9433AAE8A4A6CCB8722D3"
|
||||
{
|
||||
"SourcePath" = "8:C:\\Windows\\System32\\msiexec.exe"
|
||||
"TargetName" = "8:msiexec.exe"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_7C1EF99E309C4A3FB02B902F06BE7F60"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Vital" = "11:TRUE"
|
||||
"ReadOnly" = "11:FALSE"
|
||||
"Hidden" = "11:FALSE"
|
||||
"System" = "11:FALSE"
|
||||
"Permanent" = "11:FALSE"
|
||||
"SharedLegacy" = "11:FALSE"
|
||||
"PackageAs" = "3:1"
|
||||
"Register" = "3:1"
|
||||
"Exclude" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_6EC43FCDF6B045CFBC5FA294D862A2BF"
|
||||
{
|
||||
"SourcePath" = "8:..\\RookieStation\\bin\\Release\\RsLibrary\\MainMaterials\\深灰色铝塑板.jpg"
|
||||
@@ -2215,7 +2229,7 @@
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_E599F8C758BA4251BBEE7ED354B5902B"
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_E5F481EEE0324F3CBEAB806F62C939E4"
|
||||
{
|
||||
"SourcePath" = "8:..\\RookieStation\\bin\\Release\\RookieStation.addin"
|
||||
"TargetName" = "8:RookieStation.addin"
|
||||
@@ -2235,37 +2249,6 @@
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_F3DBE5F365DC458EBC7E4BD1CFCF285D"
|
||||
{
|
||||
"AssemblyRegister" = "3:1"
|
||||
"AssemblyIsInGAC" = "11:FALSE"
|
||||
"AssemblyAsmDisplayName" = "8:System.Data.SQLite, Version=1.0.114.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL"
|
||||
"ScatterAssemblies"
|
||||
{
|
||||
"_F3DBE5F365DC458EBC7E4BD1CFCF285D"
|
||||
{
|
||||
"Name" = "8:System.Data.SQLite.dll"
|
||||
"Attributes" = "3:512"
|
||||
}
|
||||
}
|
||||
"SourcePath" = "8:..\\RookieStation\\bin\\Release\\System.Data.SQLite.dll"
|
||||
"TargetName" = "8:"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_7C1EF99E309C4A3FB02B902F06BE7F60"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Vital" = "11:TRUE"
|
||||
"ReadOnly" = "11:FALSE"
|
||||
"Hidden" = "11:FALSE"
|
||||
"System" = "11:FALSE"
|
||||
"Permanent" = "11:FALSE"
|
||||
"SharedLegacy" = "11:FALSE"
|
||||
"PackageAs" = "3:1"
|
||||
"Register" = "3:1"
|
||||
"Exclude" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_FD27823B3253486DB7BBB13FEC35052D"
|
||||
{
|
||||
"SourcePath" = "8:..\\RookieStation\\bin\\Release\\x64\\SQLite.Interop.dll"
|
||||
@@ -2419,15 +2402,15 @@
|
||||
{
|
||||
"Name" = "8:Microsoft Visual Studio"
|
||||
"ProductName" = "8:菜鸟驿站工具集"
|
||||
"ProductCode" = "8:{789EEB9E-5B29-48C2-AED4-DC3316DCB077}"
|
||||
"PackageCode" = "8:{F03E1AC5-0240-40FA-AE63-1C30A5CD109C}"
|
||||
"ProductCode" = "8:{A89A1A7A-C158-48AC-B2F8-9E58AB3803EF}"
|
||||
"PackageCode" = "8:{5A91900E-60D4-4058-8F1E-381AE6BA4ED0}"
|
||||
"UpgradeCode" = "8:{127EC3EC-7539-468B-84EA-E1ECDD6204E6}"
|
||||
"AspNetVersion" = "8:2.0.50727.0"
|
||||
"RestartWWWService" = "11:FALSE"
|
||||
"RemovePreviousVersions" = "11:TRUE"
|
||||
"DetectNewerInstalledVersion" = "11:TRUE"
|
||||
"InstallAllUsers" = "11:TRUE"
|
||||
"ProductVersion" = "8:1.0.10"
|
||||
"ProductVersion" = "8:1.0.12"
|
||||
"Manufacturer" = "8:YTX Engineering"
|
||||
"ARPHELPTELEPHONE" = "8:"
|
||||
"ARPHELPLINK" = "8:"
|
||||
@@ -2540,6 +2523,20 @@
|
||||
}
|
||||
"Shortcut"
|
||||
{
|
||||
"{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_0F6F0CD8E9534897961D2D2EC23FE4DC"
|
||||
{
|
||||
"Name" = "8:卸载.exe"
|
||||
"Arguments" = "8:/x [ProductCode]"
|
||||
"Description" = "8:"
|
||||
"ShowCmd" = "3:1"
|
||||
"IconIndex" = "3:0"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Target" = "8:_6C88567189D9433AAE8A4A6CCB8722D3"
|
||||
"Folder" = "8:_7C1EF99E309C4A3FB02B902F06BE7F60"
|
||||
"WorkingFolder" = "8:_7C1EF99E309C4A3FB02B902F06BE7F60"
|
||||
"Icon" = "8:"
|
||||
"Feature" = "8:"
|
||||
}
|
||||
}
|
||||
"UserInterface"
|
||||
{
|
||||
@@ -2884,10 +2881,10 @@
|
||||
{
|
||||
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_106061D90DD7421EAB1EE10373608018"
|
||||
{
|
||||
"SourcePath" = "8:..\\AddinDeployer\\obj\\Debug\\AddinDeployer.dll"
|
||||
"SourcePath" = "8:..\\AddinDeployer\\obj\\Release\\AddinDeployer.dll"
|
||||
"TargetName" = "8:"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_555D26C37F1F4B01A2364FA002C8BF5A"
|
||||
"Folder" = "8:_7C1EF99E309C4A3FB02B902F06BE7F60"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Vital" = "11:TRUE"
|
||||
@@ -2912,7 +2909,7 @@
|
||||
}
|
||||
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_FBE461B9D4BD4603919E2821D88FB7CB"
|
||||
{
|
||||
"SourcePath" = "8:..\\RookieStation\\obj\\Debug\\RookieStation.dll"
|
||||
"SourcePath" = "8:..\\RookieStation\\obj\\Release\\RookieStation.dll"
|
||||
"TargetName" = "8:"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_7C1EF99E309C4A3FB02B902F06BE7F60"
|
||||
|
||||
Reference in New Issue
Block a user