diff --git a/RookieStation/CommonTools/ViewModels/EncryptOrDecryptFamily.cs b/RookieStation/CommonTools/ViewModels/EncryptOrDecryptFamily.cs index e250027..89bd475 100644 --- a/RookieStation/CommonTools/ViewModels/EncryptOrDecryptFamily.cs +++ b/RookieStation/CommonTools/ViewModels/EncryptOrDecryptFamily.cs @@ -85,6 +85,10 @@ namespace RookieStation.CommonTools.ViewModels var vcol = new FilteredElementCollector(famdoc).OfClass(typeof(Autodesk.Revit.DB.View)).Cast(); var dimcol = new FilteredElementCollector(famdoc).OfClass(typeof(Autodesk.Revit.DB.Dimension)).Cast(); var curvecol = new FilteredElementCollector(famdoc).OfClass(typeof(Autodesk.Revit.DB.CurveElement)).Cast(); + var referplanes = new FilteredElementCollector(famdoc).OfClass(typeof(Autodesk.Revit.DB.ReferencePlane)).Cast(); + var modellines = new FilteredElementCollector(famdoc).OfClass(typeof(Autodesk.Revit.DB.ModelCurve)).Cast(); + + var combinations = new FilteredElementCollector(famdoc).OfClass(typeof(GeomCombination)).Cast(); famdoc.Invoke(ts => { @@ -112,7 +116,20 @@ namespace RookieStation.CommonTools.ViewModels elemidtohide.Add(curve.Id); } } - + foreach (var combination in combinations) + { + if (combination.CanBeHidden(view)) + { + elemidtohide.Add(combination.Id); + } + } + foreach (var plane in referplanes) + { + if (plane.CanBeHidden(view)) + { + elemidtohide.Add(plane.Id); + } + } if (elemidtohide.Count > 0) { view.HideElements(elemidtohide); @@ -136,6 +153,8 @@ namespace RookieStation.CommonTools.ViewModels var vcol = new FilteredElementCollector(famdoc).OfClass(typeof(Autodesk.Revit.DB.View)).Cast(); var dimcol = new FilteredElementCollector(famdoc).OfClass(typeof(Autodesk.Revit.DB.Dimension)).Cast(); var curvecol = new FilteredElementCollector(famdoc).OfClass(typeof(Autodesk.Revit.DB.CurveElement)).Cast(); + var referplanes = new FilteredElementCollector(famdoc).OfClass(typeof(Autodesk.Revit.DB.ReferencePlane)).Cast(); + var combinations = new FilteredElementCollector(famdoc).OfClass(typeof(GeomCombination)).Cast(); famdoc.Invoke(ts => { @@ -164,6 +183,20 @@ namespace RookieStation.CommonTools.ViewModels } } + foreach (var combination in combinations) + { + if (combination.IsHidden(view)) + { + elemidtounHide.Add(combination.Id); + } + } + foreach (var plane in referplanes) + { + if (plane.IsHidden(view)) + { + elemidtounHide.Add(plane.Id); + } + } if (elemidtounHide.Count > 0) { view.UnhideElements(elemidtounHide); diff --git a/RookieStation/Construction/ExecuteCmd/AutoGenerateModels.cs b/RookieStation/Construction/ExecuteCmd/AutoGenerateModels.cs index 40e3656..8eb6955 100644 --- a/RookieStation/Construction/ExecuteCmd/AutoGenerateModels.cs +++ b/RookieStation/Construction/ExecuteCmd/AutoGenerateModels.cs @@ -76,7 +76,6 @@ namespace RookieStation.Construction.ExecuteCmd { //边界组 CreateFloor(doc, edges); - CreateFloor(doc, edges); }, "创建楼板"); doc.Invoke(ts => { diff --git a/RookieStation/Drawing/ExecuteCmd/CreatePalanarViewAnnotation.cs b/RookieStation/Drawing/ExecuteCmd/CreatePalanarViewAnnotation.cs new file mode 100644 index 0000000..2c5d395 --- /dev/null +++ b/RookieStation/Drawing/ExecuteCmd/CreatePalanarViewAnnotation.cs @@ -0,0 +1,356 @@ +using Autodesk.Revit.DB; +using Autodesk.Revit.DB.Architecture; +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; +using System.Windows.Controls; + +namespace RookieStation.Drawing.ExecuteCmd +{ + [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)] + [Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)] + public class CreatePalanarViewAnnotation : Autodesk.Revit.UI.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; + string failedMessage = string.Empty; + ModelCurveArray modelCurveArray = null; + doc.InvokeGroup(tg => + { + Room room = default; + var wallsToDim = new List(); + doc.Invoke(ts => + { + room = CreateOuterRoom(doc.ActiveView, out modelCurveArray); + }); + if (room != null) + { + //外侧边界逆时针,内侧边界顺时针 + SpatialElementBoundaryOptions options = new SpatialElementBoundaryOptions() + { + StoreFreeBoundaryFaces = true, + SpatialElementBoundaryLocation = SpatialElementBoundaryLocation.CoreBoundary + }; + IList edges = new List(); + + var boundingseg = room.GetBoundarySegments(options); + edges = boundingseg.LastOrDefault();//需要去重 + foreach (BoundarySegment segment in edges) + { + var curve = segment.GetCurve() as Line; + if (curve != null) + { + var wall = doc.GetElement(segment.ElementId) as Wall; + if (wall != null) + { + wallsToDim.Add(wall); + } + } + } + } + doc.Invoke(ts => + { + JoinWallsAndColumns(doc); + JointStructureCom(doc, BuiltInCategory.OST_Walls, BuiltInCategory.OST_StructuralFraming); + JointStructureCom(doc, BuiltInCategory.OST_StructuralFraming, BuiltInCategory.OST_StructuralColumns); + failedMessage = ""; + }, "连接几何体"); + + doc.Invoke(ts => + { + CreateWallDimension(doc, wallsToDim); + }); + //doc.Invoke(ts => + //{ + // doc.Delete(room.Id); + // foreach (ModelCurve curve in modelCurveArray) + // { + // doc.Delete(curve.Id); + // } + //}); + }); + + return Result.Succeeded; + } + + /// + /// 墙柱连接 + /// + /// + private void JoinWallsAndColumns(Document doc) + { + var wallcol = doc.QueryByView(doc.ActiveView); + StringBuilder sb = new StringBuilder(); + foreach (var wall in wallcol) + { + var columncol = doc.QueryByView(doc.ActiveView, BuiltInCategory.OST_StructuralColumns); + BoundingBoxXYZ boundingBox = wall.get_BoundingBox(doc.ActiveView); + Outline outline = new Outline(boundingBox.Min, boundingBox.Max); + BoundingBoxIntersectsFilter intersectsFilter = new BoundingBoxIntersectsFilter(outline); + BoundingBoxIsInsideFilter isInsideFilter = new BoundingBoxIsInsideFilter(outline); + LogicalOrFilter orFilter = new LogicalOrFilter(isInsideFilter, intersectsFilter); + + columncol.WherePasses(orFilter); + foreach (FamilyInstance column in columncol) + { + if (!JoinGeometryUtils.AreElementsJoined(doc, wall, column)) + { + try + { + JoinGeometryUtils.JoinGeometry(doc, wall, column); + } + catch (Exception) + { + sb.Append($"{column.Name}:{column.Id.IntegerValue}/{wall.Name}:{wall.Id.IntegerValue}" + "\n\r"); + } + } + } + } + if (sb.Length > 0) + { + TaskDialog.Show("连接墙柱存在错误", sb.ToString()); + } + } + + /// + /// 创建外围房间 + /// + /// + /// + /// + private Room CreateOuterRoom(View view, out ModelCurveArray modelCurveArray) + { + Document doc = view.Document; + List wallList = doc.QueryByView(view).Cast().ToList(); + Level level = view.GenLevel; + ElementId levelId = view.GenLevel.Id; + modelCurveArray = null; + wallList = wallList.FindAll(p => p.LevelId == levelId); + if (wallList.Count > 0) + { + List tempWallList = new List(); + double distance = 5; + List curveList = wallList.Select(p => RsRevitUtils.GetLocationCurveByElement(p)).ToList(); + List xyzList = curveList.Select(p => p.GetEndPoint(0)).ToList(); + double xMax = xyzList.Max(p => p.X) + distance; + double xMin = xyzList.Min(p => p.X) - distance; + + double yMax = xyzList.Max(p => p.Y) + distance; + double yMin = xyzList.Min(p => p.Y) - distance; + + try + { + tempWallList.ForEach(p => p.get_Parameter(BuiltInParameter.WALL_ATTR_ROOM_BOUNDING).Set(0)); + XYZ point1 = new XYZ(xMin, yMin, level.Elevation); + XYZ point2 = new XYZ(xMin, yMax, level.Elevation); + XYZ point3 = new XYZ(xMax, yMax, level.Elevation); + XYZ point4 = new XYZ(xMax, yMin, level.Elevation); + Line Line1 = Line.CreateBound(point1, point2); + Line line2 = Line.CreateBound(point2, point3); + Line line3 = Line.CreateBound(point3, point4); + Line line4 = Line.CreateBound(point4, point1); + CurveArray array = new CurveArray(); + array.Append(Line1); + array.Append(line2); + array.Append(line3); + array.Append(line4); + //Plane plane = new Plane(XYZ.BasisZ, XYZ.Zero); + Plane plane = Plane.CreateByNormalAndOrigin(XYZ.BasisZ, XYZ.Zero); + SketchPlane sketchPlane = SketchPlane.Create(doc, plane); + modelCurveArray = doc.Create.NewRoomBoundaryLines(sketchPlane, array, view); + Level baseLevel = doc.GetElement(wallList[0].LevelId) as Level; + UV uv = new UV(xMin + 1, yMin + 1); + Room room = doc.Create.NewRoom(baseLevel, uv); + return room; + } + catch (Exception) + { + } + } + return null; + } + + /// + /// 连接两个族类别的几何体 + /// + /// + /// + /// + private void JointStructureCom(Document doc, BuiltInCategory builtInCategory1, BuiltInCategory builtInCategory2) + { + var collector1 = doc.QueryByBuiltInCategory(builtInCategory1).WhereElementIsNotElementType(); + var collector2 = doc.QueryByBuiltInCategory(builtInCategory2).WhereElementIsNotElementType(); + foreach (var fi1 in collector1) + { + ElementIntersectsElementFilter intersectsElementFilter = new ElementIntersectsElementFilter(fi1, false); + collector2.WherePasses(intersectsElementFilter); + foreach (var fi2 in collector2) + { + try + { + JoinGeometryUtils.JoinGeometry(doc, fi2, fi1); + } + catch (Exception) + { + continue; + } + } + } + } + + public List GetWallListToDim(Document doc) + { + var wallList = doc.QueryByView(doc.ActiveView).Where(w => + { + if (w.Name.Contains("墙饰面") || w.Name.Contains("踢脚线")) + { + return false; + } + return true; + }); + return wallList.ToList(); + } + + private static void CreateWallDimension(Document doc, List wallList) + { + foreach (Wall wall in wallList) + { + ReferenceArray wallLengthRefernceArray = new ReferenceArray(); + List faces = new List(); + //List faces = RsRevitUtils.GetSideFacesByElement(wall); + List ids = FindWallIdsConnected(doc, wall); + //var edgearrarray = RsRevitUtils.GetBottomEdgeArrayArray(wall); + + foreach (var id in ids) + { + Element ele = doc.GetElement(id); + faces.AddRange(RsRevitUtils.GetSideFacesByElement(ele)); + } + + foreach (Face face in faces) + { + PlanarFace pf = face as PlanarFace; + if (pf == null || face.Reference == null || pf.OrientationMatchesSurfaceOrientation == false) + { + continue; + } + + if (pf.FaceNormal.CrossProduct(wall.Orientation).IsAlmostEqualTo(XYZ.Zero)) + { + } + else if (pf.FaceNormal.DotProduct(wall.Orientation) < 0.001) + { + wallLengthRefernceArray.Append(face.Reference); + } + else + { + } + } + try + { + var scale = doc.ActiveView.Scale; + var tranform = Transform.CreateTranslation(wall.Orientation * scale * 15 / 304.8); + var wallcurve = RsRevitUtils.GetLocationCurveByElement(wall) as Line; + Line lengthDimLine = wallcurve.CreateTransformed(tranform) as Line; + //Dimension lengthdim = null; + Dimension lengthdim = doc.Create.NewDimension(doc.ActiveView, lengthDimLine, wallLengthRefernceArray); + doc.Regenerate(); + + ReferenceArray finallengthreferenceArray = RemoveZeroReferences(wall, wallLengthRefernceArray, lengthdim); + doc.Delete(lengthdim.Id); + lengthdim = doc.Create.NewDimension(doc.ActiveView, lengthDimLine, finallengthreferenceArray); + + if (lengthdim.Segments.Size > 2) + { + ReferenceArray referenceArray = new ReferenceArray(); + var refer1 = lengthdim.References.get_Item(0); + var refer2 = lengthdim.References.get_Item(lengthdim.References.Size - 1); + referenceArray.Append(refer1); + referenceArray.Append(refer2); + var tranform1 = Transform.CreateTranslation(wall.Orientation * scale * 25 / 304.8); + Line lengthTotalDimLine = wallcurve.CreateTransformed(tranform1) as Line; + + doc.Create.NewDimension(doc.ActiveView, lengthTotalDimLine, referenceArray); + } + } + catch (Exception) + { + continue; + } + } + } + + private static ReferenceArray RemoveZeroReferences(Wall wall, ReferenceArray wallLengthRefernceArray, Dimension lengthdim) + { + List referencesdelete = new List(); + var finallengthreferenceArray = new ReferenceArray(); + for (int i = 0; i < lengthdim.NumberOfSegments; i++) + { + if (lengthdim.Segments.get_Item(i).ValueString == "0") + { + if (lengthdim.References.get_Item(i).ElementId == wall.Id) + { + referencesdelete.Add(lengthdim.References.get_Item(i)); + } + if (lengthdim.References.get_Item(i + 1).ElementId == wall.Id) + { + referencesdelete.Add(lengthdim.References.get_Item(i + 1)); + } + } + } + for (int i = 0; i < wallLengthRefernceArray.Size; i++) + { + bool isContain = false; + var reference = wallLengthRefernceArray.get_Item(i); + foreach (var referdelete in referencesdelete) + { + if (reference.EqualTo(referdelete)) + { + isContain = true; + } + } + if (!isContain) + { + finallengthreferenceArray.Append(reference); + } + } + + return finallengthreferenceArray; + } + + private static List FindWallIdsConnected(Document doc, Wall w) + { + List joinedElements = new List(); + var loc = w.Location as LocationCurve; + Curve curve = loc.Curve; + FilteredElementCollector eles = doc.QueryByView(doc.ActiveView).WhereElementIsNotElementType(); + StringBuilder sb = new StringBuilder(); + foreach (Wall wall in eles) + { + if (wall != null) + { + var lc = wall.Location as LocationCurve; + var c = lc.Curve; + var result = curve.Intersect(c, out var intersection); + if (result == SetComparisonResult.Overlap && !wall.Name.Contains("踢脚线") && !wall.Name.Contains("墙饰面")) + { + joinedElements.Add(wall.Id); + sb.Append($"{w.Name} {wall.Name} {result}\r\n"); + } + } + } + //TaskDialog.Show("数据", sb.ToString()); + return joinedElements; + } + } +} \ No newline at end of file diff --git a/RookieStation/Drawing/ExecuteCmd/CreateViewPlanAnnotation.cs b/RookieStation/Drawing/ExecuteCmd/CreateViewPlanAnnotation.cs index 39ad2a9..a5ea594 100644 --- a/RookieStation/Drawing/ExecuteCmd/CreateViewPlanAnnotation.cs +++ b/RookieStation/Drawing/ExecuteCmd/CreateViewPlanAnnotation.cs @@ -8,6 +8,7 @@ using System.Windows.Controls; using System; using System.Text; using System.Windows.Media.Media3D; +using Autodesk.Revit.DB.Architecture; namespace RookieStation.Drawing.ExecuteCmd { @@ -27,7 +28,6 @@ namespace RookieStation.Drawing.ExecuteCmd //var wall = doc.GetElement(wallrefer) as Wall; //var joinids = JoinGeometryUtils.GetJoinedElements(doc, wall);//接触关系过滤不出来,连接命令连接的才能过滤 //uidoc.Selection.SetElementIds(joinids); - doc.InvokeGroup(tg => { doc.Invoke(ts => @@ -48,7 +48,6 @@ namespace RookieStation.Drawing.ExecuteCmd CreateShelvesAnnotations(doc, visableCol); }, "创建标注"); }); - //var cutids = SolidSolidCutUtils.GetCuttingSolids(wall); //uidoc.Selection.SetElementIds(insertids); //uidoc.Selection.SetElementIds(cutids); @@ -552,24 +551,6 @@ namespace RookieStation.Drawing.ExecuteCmd } } - private static void CreateTag(Document doc, List references, TagMode tagMode, bool addleader) - { - doc.Invoke(ts => - { - foreach (var refer in references) - { - try - { - IndependentTag independentTag = IndependentTag.Create(doc, doc.ActiveView.Id, refer, addleader, tagMode, TagOrientation.Horizontal, new XYZ(0, 0, 0)); - } - catch (Exception) - { - continue; - } - } - }); - } - private static List GetWallConnectEles(Document doc, Wall wall) { GeometryElement geometryElement = wall.get_Geometry(new Options()); @@ -626,7 +607,7 @@ namespace RookieStation.Drawing.ExecuteCmd } /// - /// 获取与当前墙体连接和相交的墙体 + /// 获取当前视图中与当前墙体连接和相交的墙体 /// /// /// @@ -636,7 +617,7 @@ namespace RookieStation.Drawing.ExecuteCmd List joinedElements = new List(); var loc = w.Location as LocationCurve; Curve curve = loc.Curve; - FilteredElementCollector eles = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Walls).WhereElementIsNotElementType(); + FilteredElementCollector eles = doc.QueryByView(doc.ActiveView).WhereElementIsNotElementType(); IntersectionResultArray intersection; StringBuilder sb = new StringBuilder(); foreach (Element e in eles) @@ -647,7 +628,7 @@ namespace RookieStation.Drawing.ExecuteCmd var lc = wall.Location as LocationCurve; var c = lc.Curve; var result = curve.Intersect(c, out intersection); - if (result == SetComparisonResult.Overlap) + if (result == SetComparisonResult.Overlap && !e.Name.Contains("踢脚线") && !e.Name.Contains("墙饰面")) { joinedElements.Add(wall.Id); } @@ -659,19 +640,24 @@ namespace RookieStation.Drawing.ExecuteCmd private static void CreateWallDimension(Document doc) { - FilteredElementCollector wallCol = doc.QueryByView(doc.ActiveView as ViewPlan); - var visableIdCol = doc.QueryByView(doc.ActiveView).ToElementIds(); + var wallList = doc.QueryByView(doc.ActiveView).Where(w => + { + if (w.Name.Contains("墙饰面") || w.Name.Contains("踢脚线")) + { + return false; + } + return true; + }); doc.Invoke(ts => { - foreach (Wall wall in wallCol) + foreach (Wall wall in wallList) { - if (wall.WallType.Kind != WallKind.Basic) - { - continue; - } - var loc = wall.Location as LocationCurve; - ReferenceArray wallThickReferenceArray = new ReferenceArray(); + //if (wall.WallType.Kind != WallKind.Basic) + //{ + // continue; + //} + //ReferenceArray wallThickReferenceArray = new ReferenceArray(); ReferenceArray wallLengthRefernceArray = new ReferenceArray(); ReferenceArray ColumnLengthRefernceArray = new ReferenceArray(); List faces = RsRevitUtils.GetSideFacesByElement(wall); @@ -693,10 +679,10 @@ namespace RookieStation.Drawing.ExecuteCmd if (pf.FaceNormal.CrossProduct(wall.Orientation).IsAlmostEqualTo(XYZ.Zero)) { - if (doc.GetElement(face.Reference).Id == wall.Id) - { - wallThickReferenceArray.Append(face.Reference); - } + //if (doc.GetElement(face.Reference).Id == wall.Id) + //{ + // wallThickReferenceArray.Append(face.Reference);//墙厚标注 + //} } else if (pf.FaceNormal.DotProduct(wall.Orientation) < 0.001) { @@ -720,7 +706,7 @@ namespace RookieStation.Drawing.ExecuteCmd doc.Create.NewDimension(doc.ActiveView, lengthLine, finallengthreferenceArray); Line thickLine = Line.CreateUnbound(wallcurve.Evaluate(0.2, true), wall.Orientation); - var thickdim = doc.Create.NewDimension(doc.ActiveView, thickLine, wallThickReferenceArray); + //var thickdim = doc.Create.NewDimension(doc.ActiveView, thickLine, wallThickReferenceArray); if (lengthdim.Segments.Size > 2) { diff --git a/RookieStation/RookieStation.csproj b/RookieStation/RookieStation.csproj index 4570fcf..1fb0835 100644 --- a/RookieStation/RookieStation.csproj +++ b/RookieStation/RookieStation.csproj @@ -97,6 +97,7 @@ + diff --git a/RookieStation/RsApp.cs b/RookieStation/RsApp.cs index 5839fb2..4bc81cd 100644 --- a/RookieStation/RsApp.cs +++ b/RookieStation/RsApp.cs @@ -99,14 +99,14 @@ namespace RookieStation.RibbonMenu RibbonPanel projectPanel = application.CreateRibbonPanel(TabName, ProjectSettingsPanelName); NewPushButtonData(projectPanel, "项目设置", Properties.Resources.cainiao, null); - NewPushButtonData(projectPanel, "创建模型", Properties.Resources.Architect, ViewPlanCmdEnabled); + NewPushButtonData(projectPanel, "新建模型", Properties.Resources.Architect, ViewPlanCmdEnabled); //前台布置 RibbonPanel receptionAreaPanel = application.CreateRibbonPanel(TabName, ReceptionPanelName); NewPushButtonData(receptionAreaPanel, "前台布置", Properties.Resources.Reception, ViewPlanCmdEnabled); NewPushButtonData(receptionAreaPanel, "标识挤出", Properties.Resources.LogoExtrusion, ViewPlanCmdEnabled); - NewPushButtonData(receptionAreaPanel, "铝塑板分缝", Properties.Resources.WallSweep, null); + NewPushButtonData(receptionAreaPanel, "墙面分缝", Properties.Resources.WallSweep, null); //出入口布置 RibbonPanel packAreaPanel = application.CreateRibbonPanel(TabName, EntranceAndExitGatePanelName); diff --git a/RookieStation/Utils/EnableCmdInViewPlan.cs b/RookieStation/Utils/EnableCmdInViewPlan.cs index fefe3c3..19150fd 100644 --- a/RookieStation/Utils/EnableCmdInViewPlan.cs +++ b/RookieStation/Utils/EnableCmdInViewPlan.cs @@ -9,7 +9,7 @@ using System.Threading.Tasks; namespace RookieStation.Utils { /// - /// 命令在平面视图可用 + /// 命令在楼层平面视图可用 /// internal class EnableCmdInViewPlan : IExternalCommandAvailability { diff --git a/RookieStation/Utils/RsRevitUtils.cs b/RookieStation/Utils/RsRevitUtils.cs index a487c02..27a94da 100644 --- a/RookieStation/Utils/RsRevitUtils.cs +++ b/RookieStation/Utils/RsRevitUtils.cs @@ -446,6 +446,13 @@ namespace RookieStation.Utils return faces; } + public static EdgeArrayArray GetBottomEdgeArrayArray(Element element) + { + List edges = new List(); + var face = GetBottomFaceByElement(element); + return face.EdgeLoops; + } + /// /// 获取族实例所有面(实际为族类型的所有面) /// diff --git a/RookieStationSetup/1.0.0/RookieStationSetup.msi b/RookieStationSetup/1.0.0/RookieStationSetup.msi deleted file mode 100644 index f7cdcdd..0000000 Binary files a/RookieStationSetup/1.0.0/RookieStationSetup.msi and /dev/null differ diff --git a/RookieStationSetup/1.0.0/setup.exe b/RookieStationSetup/1.0.0/setup.exe deleted file mode 100644 index 3a58339..0000000 Binary files a/RookieStationSetup/1.0.0/setup.exe and /dev/null differ