update file
This commit is contained in:
@@ -37,6 +37,7 @@ namespace RookieStation.PackAreaModule
|
||||
catch (Exception ex)
|
||||
{
|
||||
TaskDialog.Show("错误", ex.Message);
|
||||
Log.WriteLog(ex.Message);
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace RookieStation.CommonTools
|
||||
UIApplication uiapp = commandData.Application;
|
||||
UIDocument uidoc = uiapp.ActiveUIDocument;
|
||||
//var dpid = new DockablePaneId(PaneIdentifiers.GetManagerPaneIdentifier());
|
||||
var library_directory = UserConstant.LibraryPreDirectory;
|
||||
var library_directory = UserConstant.FamilyLibraryDirectory;
|
||||
System.Diagnostics.Process.Start(library_directory);
|
||||
return Result.Succeeded;
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace RookieStation
|
||||
UIDocument uidoc = uiapp.ActiveUIDocument;
|
||||
Autodesk.Revit.ApplicationServices.Application app = uiapp.Application;
|
||||
Document doc = uidoc.Document;
|
||||
ICollection<ImportInstance> instances = new FilteredElementCollector(doc).OfClass(typeof(ImportInstance)).Cast<ImportInstance>().ToList();
|
||||
var instances = new FilteredElementCollector(doc).OfClass(typeof(ImportInstance)).Cast<ImportInstance>();
|
||||
List<Curve> curves = new List<Curve>();
|
||||
|
||||
var geometryElement = instances.First().get_Geometry(new Options());
|
||||
|
||||
@@ -20,10 +20,9 @@ namespace RookieStation
|
||||
Document doc = uidoc.Document;
|
||||
|
||||
//var instance = doc.GetElement(uidoc.Selection.PickObject(ObjectType.Element, new ShelvesFilter(), "请选择货架")) as FamilyInstance;
|
||||
List<FamilyInstance> instances = uidoc.Selection.PickObjects(ObjectType.Element, "请选择货架")
|
||||
var instances = uidoc.Selection.PickObjects(ObjectType.Element, "请选择货架")
|
||||
.Select(x => doc.GetElement(x))
|
||||
.Cast<FamilyInstance>()
|
||||
.ToList();
|
||||
.Cast<FamilyInstance>();
|
||||
|
||||
ReferenceArray refArry = new ReferenceArray();
|
||||
List<Face> reffaces = new List<Face>();
|
||||
@@ -34,7 +33,7 @@ namespace RookieStation
|
||||
Line line = Line.CreateUnbound(p, v);
|
||||
//createoffest需要根据线的方向和参考方向进行叉乘
|
||||
var line1 = line.CreateOffset(1000 / 304.8, XYZ.BasisZ) as Line;
|
||||
if (instances.Count < 1)
|
||||
if (instances.Count() < 1)
|
||||
{
|
||||
return Result.Cancelled;
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ namespace RookieStation.PackAreaModule
|
||||
fis = new List<FamilyInstance>();
|
||||
|
||||
Level level = uidoc.ActiveView.GenLevel;
|
||||
Family gate_family = RsRevitUtils.GetLoadedFamily(doc, UserConstant.LibraryPreDirectory + "Gate\\闸机.rfa");
|
||||
Family gate_family = RsRevitUtils.GetLoadedFamily(doc, UserConstant.FamilyLibraryDirectory + "Gate\\闸机.rfa");
|
||||
ElementId symbol_id = gate_family.GetFamilySymbolIds().FirstOrDefault();
|
||||
FamilySymbol gate_symbol = doc.GetElement(symbol_id) as FamilySymbol;
|
||||
offest = gate_symbol.GetParameters("深度").FirstOrDefault().AsDouble() / 2;
|
||||
|
||||
@@ -98,7 +98,7 @@ namespace RookieStation.PackAreaModule
|
||||
List<XYZ> pts = new List<XYZ>();
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
Family gate_family = RsRevitUtils.GetLoadedFamily(doc, UserConstant.LibraryPreDirectory + "Gate\\L型收检台.rfa");
|
||||
Family gate_family = RsRevitUtils.GetLoadedFamily(doc, UserConstant.FamilyLibraryDirectory + "Gate\\L型收检台.rfa");
|
||||
IEnumerable<ElementId> left_symbolId = from id in gate_family.GetFamilySymbolIds()
|
||||
where doc.GetElement(id).Name == "左"
|
||||
select id;
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.IO;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
|
||||
namespace RookieStation.CommonTools
|
||||
namespace RookieStation.Finishes
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
@@ -26,8 +26,8 @@ namespace RookieStation.CommonTools
|
||||
FamilySymbol symbol;
|
||||
|
||||
WpfFloorFinishes floorCovering = CommonUtils.GenerateWindow<WpfFloorFinishes>();
|
||||
var rooms = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Rooms).ToList();
|
||||
if (rooms.Count == 0)
|
||||
var roomcounts = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Rooms).OfClass(typeof(Room)).GetElementCount();
|
||||
if (roomcounts == 0)
|
||||
{
|
||||
TaskDialog.Show("温馨提示", "项目中当前没有房间");
|
||||
return Result.Cancelled;
|
||||
@@ -208,7 +208,7 @@ namespace RookieStation.CommonTools
|
||||
trans.Start();
|
||||
//删除模型线
|
||||
doc.Delete(modelCurveIds);
|
||||
family = RsRevitUtils.GetLoadedFamily(doc, UserConstant.LibraryPreDirectory + "FloorFinish\\地砖.rfa");
|
||||
family = RsRevitUtils.GetLoadedFamily(doc, UserConstant.FamilyLibraryDirectory + "FloorFinish\\地砖.rfa");
|
||||
ElementId symbolId = family.GetFamilySymbolIds().FirstOrDefault();
|
||||
symbol = doc.GetElement(symbolId) as FamilySymbol;
|
||||
symbol.Activate();
|
||||
|
||||
@@ -30,8 +30,8 @@ namespace RookieStation.PackAreaModule
|
||||
double lrdistance = 0.0;
|
||||
double fbdistance = 0.0;
|
||||
|
||||
var rooms = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Rooms).ToList();
|
||||
if (rooms.Count == 0)
|
||||
var roomcounts = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Rooms).GetElementCount();
|
||||
if (roomcounts == 0)
|
||||
{
|
||||
TaskDialog.Show("温馨提示", "项目中当前没有房间");
|
||||
return Result.Cancelled;
|
||||
@@ -192,7 +192,7 @@ namespace RookieStation.PackAreaModule
|
||||
trans.Start();
|
||||
//删除模型线
|
||||
doc.Delete(modelCurveIds);
|
||||
family = RsRevitUtils.GetLoadedFamily(doc, UserConstant.LibraryPreDirectory + "Lamp\\成品吊灯.rfa");
|
||||
family = RsRevitUtils.GetLoadedFamily(doc, UserConstant.FamilyLibraryDirectory + "Lamp\\成品吊灯.rfa");
|
||||
ElementId symbolId = family.GetFamilySymbolIds().FirstOrDefault();
|
||||
symbol = doc.GetElement(symbolId) as FamilySymbol;
|
||||
symbol.Activate();
|
||||
|
||||
@@ -220,7 +220,7 @@ namespace RookieStation.ShippingAreaModule
|
||||
FamilyInstance signage = null;
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
family = RsRevitUtils.GetLoadedFamily(doc, UserConstant.LibraryPreDirectory + "Sign\\菜鸟使命.rfa");
|
||||
family = RsRevitUtils.GetLoadedFamily(doc, UserConstant.FamilyLibraryDirectory + "Sign\\菜鸟使命.rfa");
|
||||
ElementId symbolId = family.GetFamilySymbolIds().FirstOrDefault();
|
||||
symbol = doc.GetElement(symbolId) as FamilySymbol;
|
||||
symbol.Activate();
|
||||
@@ -249,7 +249,7 @@ namespace RookieStation.ShippingAreaModule
|
||||
FamilyInstance reception = null;
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
family = RsRevitUtils.GetLoadedFamily(doc, UserConstant.LibraryPreDirectory + "Furniture\\寄件接待台.rfa");
|
||||
family = RsRevitUtils.GetLoadedFamily(doc, UserConstant.FamilyLibraryDirectory + "Furniture\\寄件接待台.rfa");
|
||||
ElementId symbolId = family.GetFamilySymbolIds().FirstOrDefault();
|
||||
symbol = doc.GetElement(symbolId) as FamilySymbol;
|
||||
symbol.Activate();
|
||||
@@ -268,7 +268,7 @@ namespace RookieStation.ShippingAreaModule
|
||||
FamilyInstance logo = null;
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
family = RsRevitUtils.GetLoadedFamily(doc, UserConstant.LibraryPreDirectory + "Sign\\菜鸟LOGO.rfa");
|
||||
family = RsRevitUtils.GetLoadedFamily(doc, UserConstant.FamilyLibraryDirectory + "Sign\\菜鸟LOGO.rfa");
|
||||
ElementId symbolId = family.GetFamilySymbolIds().FirstOrDefault(id => doc.GetElement(id).Name == glow_text_symbol);
|
||||
symbol = doc.GetElement(symbolId) as FamilySymbol;
|
||||
symbol.Activate();
|
||||
@@ -286,7 +286,7 @@ namespace RookieStation.ShippingAreaModule
|
||||
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
family = RsRevitUtils.GetLoadedFamily(doc, UserConstant.LibraryPreDirectory + "Lamp\\圆形吊灯.rfa");
|
||||
family = RsRevitUtils.GetLoadedFamily(doc, UserConstant.FamilyLibraryDirectory + "Lamp\\圆形吊灯.rfa");
|
||||
ElementId symbolId = family.GetFamilySymbolIds().FirstOrDefault();
|
||||
symbol = doc.GetElement(symbolId) as FamilySymbol;
|
||||
symbol.Activate();
|
||||
|
||||
@@ -149,7 +149,7 @@ namespace RookieStation.PackAreaModule
|
||||
XYZ final_point = XYZ.Zero;
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
shelf_family = RsRevitUtils.GetLoadedFamily(doc, UserConstant.LibraryPreDirectory + "Shelf\\单联货架.rfa");
|
||||
shelf_family = RsRevitUtils.GetLoadedFamily(doc, UserConstant.FamilyLibraryDirectory + "Shelf\\单联货架.rfa");
|
||||
var shelf_symbol_ids = shelf_family.GetFamilySymbolIds();
|
||||
foreach (var id in shelf_symbol_ids)
|
||||
{
|
||||
@@ -504,7 +504,7 @@ namespace RookieStation.PackAreaModule
|
||||
{
|
||||
var shelfwidth = fi.Symbol.GetParameters("宽度").FirstOrDefault().AsDouble();
|
||||
|
||||
Family card = RsRevitUtils.GetLoadedFamily(doc, UserConstant.LibraryPreDirectory + "Shelf\\货架端牌.rfa");
|
||||
Family card = RsRevitUtils.GetLoadedFamily(doc, UserConstant.FamilyLibraryDirectory + "Shelf\\货架端牌.rfa");
|
||||
var cardsymbolIds = card.GetFamilySymbolIds();
|
||||
|
||||
FamilySymbol cardsymbol = null;
|
||||
|
||||
@@ -11,7 +11,7 @@ using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Media.Effects;
|
||||
|
||||
namespace RookieStation.CommonTools
|
||||
namespace RookieStation.Finishes
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
@@ -24,8 +24,8 @@ namespace RookieStation.CommonTools
|
||||
Autodesk.Revit.ApplicationServices.Application app = uiapp.Application;
|
||||
Document doc = uidoc.Document;
|
||||
|
||||
List<Room> rooms = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Rooms).Cast<Room>().ToList();
|
||||
if (rooms.Count == 0)
|
||||
var roomcounts = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Rooms).GetElementCount();
|
||||
if (roomcounts == 0)
|
||||
{
|
||||
TaskDialog.Show("温馨提示", "项目中当前没有房间");
|
||||
return Result.Cancelled;
|
||||
@@ -53,6 +53,7 @@ namespace RookieStation.CommonTools
|
||||
catch (Exception ex)
|
||||
{
|
||||
TaskDialog.Show("错误", ex.Message);
|
||||
Log.WriteLog(ex.Message);
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
||||
@@ -14,7 +14,7 @@ namespace RookieStation
|
||||
|
||||
public static string AddinDirectory => System.IO.Path.GetDirectoryName(AddinPath);
|
||||
|
||||
internal static string LibraryPreDirectory => AddinDirectory + "\\RsLibrary\\";
|
||||
internal static string FamilyLibraryDirectory => AddinDirectory + "RsLibrary\\FamilyLibrary\\";
|
||||
|
||||
internal static ObjectSnapTypes SnapAll =>
|
||||
ObjectSnapTypes.Intersections
|
||||
@@ -28,29 +28,8 @@ namespace RookieStation
|
||||
| ObjectSnapTypes.Quadrants
|
||||
| ObjectSnapTypes.Tangents;
|
||||
|
||||
private static double height;
|
||||
private static int orders;
|
||||
internal static double Height => Properties.Settings.Default.Height;
|
||||
|
||||
internal static double Height
|
||||
{
|
||||
get
|
||||
{
|
||||
//var b = double.TryParse(ProjectConfigUtil.GetCfgValue("Height"), out height);
|
||||
height = Properties.Settings.Default.Height;
|
||||
return height;
|
||||
}
|
||||
set => height = value;
|
||||
}
|
||||
|
||||
internal static int Orders
|
||||
{
|
||||
get
|
||||
{
|
||||
//bool b = int.TryParse(ProjectConfigUtil.GetCfgValue("Orders"), out orders);
|
||||
orders = Properties.Settings.Default.Orders;
|
||||
return orders;
|
||||
}
|
||||
set => orders = value;
|
||||
}
|
||||
internal static int Orders => Properties.Settings.Default.Orders;
|
||||
}
|
||||
}
|
||||
10
RookieStation/Properties/Resources.Designer.cs
generated
10
RookieStation/Properties/Resources.Designer.cs
generated
@@ -169,5 +169,15 @@ namespace RookieStation.Properties {
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap WorkSchedule {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("WorkSchedule", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -151,4 +151,7 @@
|
||||
<data name="WallFinishes" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\resources\wallfinishes.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="WorkSchedule" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\WorkSchedule.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
||||
BIN
RookieStation/Resources/WorkSchedule.png
Normal file
BIN
RookieStation/Resources/WorkSchedule.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 357 B |
@@ -2,7 +2,7 @@
|
||||
<RevitAddIns>
|
||||
<AddIn Type="Application">
|
||||
<Name>菜鸟驿站插件</Name>
|
||||
<Assembly>RookieStation.dll</Assembly>
|
||||
<Assembly>\RsLibrary\RookieStation.dll</Assembly>
|
||||
<ClientId>1aac8233-690c-4dd6-89c0-78221dd65497</ClientId>
|
||||
<FullClassName>RookieStation.RsApp</FullClassName>
|
||||
<VendorId>ADSK</VendorId>
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
<TargetFrameworkVersion>v4.7</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -88,9 +89,10 @@
|
||||
<Reference Include="WindowsBase" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="cmdExportWorkSchedule.cs" />
|
||||
<Compile Include="CmdExportWorkSchedule.cs" />
|
||||
<Compile Include="CmdLogoExtrusion.cs" />
|
||||
<Compile Include="CmdPlaceWallFinishes.cs" />
|
||||
<Compile Include="TestCmd.cs" />
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
@@ -105,6 +107,7 @@
|
||||
<Compile Include="CmdBrowserFamily.cs" />
|
||||
<Compile Include="CmdPlaceShelves.cs" />
|
||||
<Compile Include="Utils\CommonUtils.cs" />
|
||||
<Compile Include="Utils\Log.cs" />
|
||||
<Compile Include="Utils\ViewPlanCmdEnabled.cs" />
|
||||
<Compile Include="CmdPlaceEntranceGate.cs" />
|
||||
<Compile Include="CmdPlaceExitGate.cs" />
|
||||
@@ -162,95 +165,98 @@
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<None Include="RsLibrary\Door\幕墙门-双扇无边框.rfa">
|
||||
<None Include="RsLibrary\Document\样板工程量清单.xlsx">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\Door\幕墙门-玻璃门.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\Door\幕墙门-双扇无边框.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\FloorFinish\地砖.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\Door\幕墙门-玻璃门.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\Furniture\寄件接待台.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\FloorFinish\地砖.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\Furniture\拆包桌.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\Furniture\寄件接待台.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\Gate\L型收检台.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\Furniture\拆包桌.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\Gate\简易收检台.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\Gate\L型收检台.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\Gate\闸机.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\Gate\简易收检台.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\Lamp\吊灯.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\Gate\闸机.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\Lamp\筒灯.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\Lamp\吊灯.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\Shelf\三联货架.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\Lamp\筒灯.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\Shelf\单联货架.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\Shelf\三联货架.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\Shelf\双联货架.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\Shelf\单联货架.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\Shelf\货架端牌.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\Shelf\双联货架.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\Sign\侧招灯箱.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\Shelf\货架端牌.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\Sign\四牌.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\Sign\侧招灯箱.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\Sign\地贴.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\Sign\四牌.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\Sign\墙贴.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\Sign\地贴.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\Sign\常规门头.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\Sign\墙贴.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\Sign\玻璃贴.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\Sign\常规门头.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\Sign\菜鸟LOGO.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\Sign\玻璃贴.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\Sign\菜鸟使命.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\Sign\菜鸟LOGO.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\Sign\防撞条.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\Sign\菜鸟使命.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\WallFinish\校园文化墙.rfa" />
|
||||
<None Include="RsLibrary\台卡.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\Sign\防撞条.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\定位线.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\WallFinish\校园文化墙.rfa" />
|
||||
<None Include="RsLibrary\FamilyLibrary\台卡.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\寄件收费标准.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\定位线.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\快递指导规范.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\寄件收费标准.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\绿动箱.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\快递指导规范.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\背景墙.rfa">
|
||||
<None Include="RsLibrary\FamilyLibrary\绿动箱.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\菜鸟驿站.rte" />
|
||||
<None Include="RsLibrary\FamilyLibrary\背景墙.rfa">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="RsLibrary\FamilyLibrary\菜鸟驿站.rte" />
|
||||
<None Include="packages.config" />
|
||||
<None Include="RookieStation.addin">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
@@ -307,6 +313,7 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Resources\WallFinishes.png" />
|
||||
<None Include="Resources\WorkSchedule.png" />
|
||||
<Content Include="RsLibrary\Texture\免费WiFi.png">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
|
||||
@@ -18,6 +18,7 @@ namespace RookieStation
|
||||
private const string ReceptionPanelName = "前台布置";
|
||||
private const string EntranceAndExitGatePanelName = "取件区";
|
||||
private const string FinishesPanelName = "饰面,完成面";
|
||||
private const string StatisticsPanelName = "统计";
|
||||
private const string CommonTools = "通用工具";
|
||||
|
||||
//获取Ribbon类所在的通用类库目录
|
||||
@@ -111,7 +112,7 @@ namespace RookieStation
|
||||
//饰面,完成面
|
||||
RibbonPanel finishesPanel = application.CreateRibbonPanel(TabName, FinishesPanelName);
|
||||
|
||||
PushButtonData floorfinishesPBD = new PushButtonData("地面铺装", "地面铺装", AddInPath, "RookieStation.CommonTools.CmdPlaceFloorFinishes")
|
||||
PushButtonData floorfinishesPBD = new PushButtonData("地面铺装", "地面铺装", AddInPath, "RookieStation.Finishes.CmdPlaceFloorFinishes")
|
||||
{
|
||||
LargeImage = ConvertFromBitmap(Properties.Resources.FloorFinishes),
|
||||
Image = ConvertFromBitmap(Properties.Resources.FloorFinishes)
|
||||
@@ -119,13 +120,22 @@ namespace RookieStation
|
||||
var floorcoveringbtn = (PushButton)finishesPanel.AddItem(floorfinishesPBD);
|
||||
floorcoveringbtn.AvailabilityClassName = "RookieStation.ViewPlanCmdEnabled";
|
||||
|
||||
PushButtonData wallcoveringPBD = new PushButtonData("墙饰面", "墙饰面", AddInPath, "RookieStation.CommonTools.CmdPlaceWallFinishes")
|
||||
PushButtonData wallcoveringPBD = new PushButtonData("墙饰面", "墙饰面", AddInPath, "RookieStation.Finishes.CmdPlaceWallFinishes")
|
||||
{
|
||||
LargeImage = ConvertFromBitmap(Properties.Resources.WallFinishes),
|
||||
Image = ConvertFromBitmap(Properties.Resources.WallFinishes)
|
||||
};
|
||||
var wallcoveringbtn = (PushButton)finishesPanel.AddItem(wallcoveringPBD);
|
||||
wallcoveringbtn.AvailabilityClassName = "RookieStation.ViewPlanCmdEnabled";
|
||||
//统计面板
|
||||
RibbonPanel statisticsPanel = application.CreateRibbonPanel(TabName, StatisticsPanelName);
|
||||
|
||||
PushButtonData statisticsfamilyPBD = new PushButtonData("输出统计表", "工程量统计", AddInPath, "RookieStation.Statistics.CmdExportWorkSchedule")
|
||||
{
|
||||
LargeImage = ConvertFromBitmap(Properties.Resources.WorkSchedule),
|
||||
Image = ConvertFromBitmap(Properties.Resources.WorkSchedule)
|
||||
};
|
||||
statisticsPanel.AddItem(statisticsfamilyPBD);
|
||||
//通用面板
|
||||
RibbonPanel commonToolsPanel = application.CreateRibbonPanel(TabName, CommonTools);
|
||||
|
||||
@@ -134,7 +144,7 @@ namespace RookieStation
|
||||
LargeImage = ConvertFromBitmap(Properties.Resources.FamilyLib),
|
||||
Image = ConvertFromBitmap(Properties.Resources.FamilyLib)
|
||||
};
|
||||
var browserfamilybtn = (PushButton)commonToolsPanel.AddItem(browserfamilyPBD);
|
||||
commonToolsPanel.AddItem(browserfamilyPBD);
|
||||
|
||||
return Result.Succeeded;
|
||||
|
||||
|
||||
BIN
RookieStation/RsLibrary/Document/样板工程量清单.xlsx
Normal file
BIN
RookieStation/RsLibrary/Document/样板工程量清单.xlsx
Normal file
Binary file not shown.
52
RookieStation/TestCmd.cs
Normal file
52
RookieStation/TestCmd.cs
Normal file
@@ -0,0 +1,52 @@
|
||||
using Autodesk.Revit.DB;
|
||||
using Autodesk.Revit.UI;
|
||||
using Autodesk.Revit.UI.Selection;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace RookieStation
|
||||
{
|
||||
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
|
||||
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
|
||||
internal class TestCmd : 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;
|
||||
ICollection<Element> sys = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_FurnitureSystems).OfClass(typeof(FamilyInstance)).ToElements();
|
||||
foreach (FamilyInstance sy in sys)
|
||||
{
|
||||
if (sy.Symbol.FamilyName.Contains("亚克力"))
|
||||
{
|
||||
TaskDialog.Show("提示", "存在");
|
||||
}
|
||||
}
|
||||
using (Transaction trans = new Transaction(doc, "cmd"))
|
||||
{
|
||||
try
|
||||
{
|
||||
trans.Start();
|
||||
//Do Something.
|
||||
trans.Commit();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
message = ex.Message;
|
||||
if (trans.GetStatus() == TransactionStatus.Started)
|
||||
{
|
||||
trans.RollBack();
|
||||
}
|
||||
return Result.Cancelled;
|
||||
}
|
||||
}
|
||||
return Result.Succeeded;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -73,6 +73,7 @@ namespace RookieStation.Utils
|
||||
catch (Exception ex)
|
||||
{
|
||||
TaskDialog.Show("错误", ex.Message);
|
||||
Log.WriteLog(ex.Message);
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
||||
@@ -154,8 +154,8 @@ namespace RookieStation.Utils
|
||||
///给第一个表中的单元格赋值
|
||||
/// </summary>
|
||||
/// <param name="fileName"></param>
|
||||
/// <param name="rowNum"></param>
|
||||
/// <param name="ColumnNum"></param>
|
||||
/// <param name="rowNum">从1开始</param>
|
||||
/// <param name="ColumnNum">从1开始</param>
|
||||
/// <param name="value"></param>
|
||||
public static void EditCellValue(string fileName, int rowNum, int ColumnNum, string value)
|
||||
{
|
||||
@@ -164,7 +164,7 @@ namespace RookieStation.Utils
|
||||
{
|
||||
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
|
||||
ExcelWorksheet sheet = package.Workbook.Worksheets[0];
|
||||
string filename = System.IO.Path.GetFileNameWithoutExtension(fileName);
|
||||
//string filename = System.IO.Path.GetFileNameWithoutExtension(fileName);
|
||||
sheet.Cells[rowNum, ColumnNum].Value = value;
|
||||
package.Save();
|
||||
}
|
||||
@@ -185,7 +185,7 @@ namespace RookieStation.Utils
|
||||
{
|
||||
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
|
||||
ExcelWorksheet sheet = package.Workbook.Worksheets[sheetname];
|
||||
string filename = System.IO.Path.GetFileNameWithoutExtension(fileName);
|
||||
//string filename = System.IO.Path.GetFileNameWithoutExtension(fileName);
|
||||
sheet.Cells[rowNum, ColumnNum].Value = value;
|
||||
package.Save();
|
||||
}
|
||||
@@ -206,7 +206,7 @@ namespace RookieStation.Utils
|
||||
{
|
||||
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
|
||||
ExcelWorksheet sheet = package.Workbook.Worksheets[0];
|
||||
string filename = System.IO.Path.GetFileNameWithoutExtension(fileName);
|
||||
//string filename = System.IO.Path.GetFileNameWithoutExtension(fileName);
|
||||
sheet.Cells[cellName].Value = value;
|
||||
package.Save();
|
||||
}
|
||||
|
||||
37
RookieStation/Utils/Log.cs
Normal file
37
RookieStation/Utils/Log.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace RookieStation.Utils
|
||||
{
|
||||
internal class Log
|
||||
{
|
||||
public static void WriteLog(string strLog)
|
||||
{
|
||||
try
|
||||
{
|
||||
string logFolder = UserConstant.FamilyLibraryDirectory + "\\Log";
|
||||
string logFile = Path.Combine(logFolder, DateTime.Now.ToString("yyyyMMdd") + ".log");
|
||||
if (!Directory.Exists(logFolder))
|
||||
Directory.CreateDirectory(logFolder);
|
||||
|
||||
FileStream fs;
|
||||
StreamWriter sw;
|
||||
if (File.Exists(logFile))
|
||||
fs = new FileStream(logFile, FileMode.Append, FileAccess.Write);
|
||||
else
|
||||
fs = new FileStream(logFile, FileMode.Create, FileAccess.Write);
|
||||
|
||||
sw = new StreamWriter(fs);
|
||||
sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss-ffff : ") + strLog);
|
||||
sw.Close();
|
||||
fs.Close();
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11,6 +11,36 @@ namespace RookieStation.Utils
|
||||
{
|
||||
internal static class RsRevitUtils
|
||||
{
|
||||
/// <summary>
|
||||
/// 英尺转米
|
||||
/// </summary>
|
||||
/// <param name="valuetoconvert"></param>
|
||||
/// <returns></returns>
|
||||
public static double FtConvertToM(double valuetoconvert)
|
||||
{
|
||||
return UnitUtils.ConvertFromInternalUnits(valuetoconvert, DisplayUnitType.DUT_METERS);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 平方英尺转平方米
|
||||
/// </summary>
|
||||
/// <param name="valuetoconvert"></param>
|
||||
/// <returns></returns>
|
||||
public static double SFConvertToSM(double valuetoconvert)
|
||||
{
|
||||
return UnitUtils.ConvertFromInternalUnits(valuetoconvert, DisplayUnitType.DUT_SQUARE_METERS);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 英尺转换成毫米单位
|
||||
/// </summary>
|
||||
/// <param name="valuetoconvert"></param>
|
||||
/// <returns></returns>
|
||||
public static double FtConvertToMM(double valuetoconvert)
|
||||
{
|
||||
return UnitUtils.ConvertFromInternalUnits(valuetoconvert, DisplayUnitType.DUT_MILLIMETERS);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 通过名称获取默认的墙类型完整厚度
|
||||
/// </summary>
|
||||
@@ -115,7 +145,7 @@ namespace RookieStation.Utils
|
||||
{
|
||||
//Autodesk.Revit.ApplicationServices.Application.CurrentUsersDataFolderPath
|
||||
string oriDatei = @"" + Environment.GetEnvironmentVariable("appdata") + @"\Autodesk\Revit\Autodesk Revit 2020\Revit.ini";
|
||||
string tmpDatei = UserConstant.LibraryPreDirectory + "\\Rs.ini";
|
||||
string tmpDatei = UserConstant.FamilyLibraryDirectory + "\\Rs.ini";
|
||||
|
||||
if (System.IO.File.Exists(oriDatei))
|
||||
{
|
||||
@@ -128,7 +158,7 @@ namespace RookieStation.Utils
|
||||
{
|
||||
if (inputLine.StartsWith("DefaultTemplate="))
|
||||
{
|
||||
inputLine.Insert(16, UserConstant.LibraryPreDirectory + "\\菜鸟驿站.rte,");
|
||||
inputLine.Insert(16, UserConstant.FamilyLibraryDirectory + "\\菜鸟驿站.rte,");
|
||||
//if (inputLine.Contains("Example_SCHEMA.rte"))
|
||||
//{
|
||||
//}
|
||||
@@ -151,7 +181,7 @@ namespace RookieStation.Utils
|
||||
FamilySymbol linesymbol = null;
|
||||
doc.Invoke(ts =>
|
||||
{
|
||||
Family linefamily = GetLoadedFamily(doc, UserConstant.LibraryPreDirectory + "定位线.rfa");
|
||||
Family linefamily = GetLoadedFamily(doc, UserConstant.FamilyLibraryDirectory + "定位线.rfa");
|
||||
linesymbol = doc.GetElement(linefamily.GetFamilySymbolIds().FirstOrDefault()) as FamilySymbol;
|
||||
}, "载入定位线并布置");
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace RookieStation
|
||||
}
|
||||
else
|
||||
{
|
||||
TaskDialog.Show("错误消息", "参数有误");
|
||||
TaskDialog.Show("温馨提示", "参数有误");
|
||||
}
|
||||
bool isCoutine = true;
|
||||
|
||||
@@ -58,7 +58,7 @@ namespace RookieStation
|
||||
var hand = shelf.HandOrientation;
|
||||
|
||||
var width = shelf.Symbol.GetParameters("宽度").FirstOrDefault().AsDouble();
|
||||
Family family = RsRevitUtils.GetLoadedFamily(doc, UserConstant.LibraryPreDirectory + "Shelf\\货架端牌.rfa");
|
||||
Family family = RsRevitUtils.GetLoadedFamily(doc, UserConstant.FamilyLibraryDirectory + "Shelf\\货架端牌.rfa");
|
||||
|
||||
var symbolIds = family.GetFamilySymbolIds();
|
||||
|
||||
@@ -158,7 +158,7 @@ namespace RookieStation
|
||||
}
|
||||
else
|
||||
{
|
||||
TaskDialog.Show("错误消息", "参数有误");
|
||||
TaskDialog.Show("温馨提示", "参数有误");
|
||||
}
|
||||
bool isContinue = true;
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ namespace RookieStation
|
||||
}
|
||||
else
|
||||
{
|
||||
TaskDialog.Show("错误消息", "请输入所需参数");
|
||||
TaskDialog.Show("温馨提示", "请输入所需参数");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<configSections>
|
||||
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
@@ -18,12 +18,11 @@
|
||||
</setting>
|
||||
<setting name="Shelves" serializeAs="Xml">
|
||||
<value>
|
||||
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
<string>单个,1500,400</string>
|
||||
</ArrayOfString>
|
||||
</value>
|
||||
</setting>
|
||||
</RookieStation.Properties.Settings>
|
||||
</userSettings>
|
||||
</configuration>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7"/></startup></configuration>
|
||||
|
||||
@@ -3,31 +3,103 @@ using Autodesk.Revit.DB;
|
||||
using Autodesk.Revit.DB.Electrical;
|
||||
using Autodesk.Revit.DB.Plumbing;
|
||||
using Autodesk.Revit.UI;
|
||||
using OfficeOpenXml;
|
||||
using RookieStation.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using static OfficeOpenXml.ExcelErrorValue;
|
||||
|
||||
namespace RookieStation.CommonTools
|
||||
namespace RookieStation.Statistics
|
||||
{
|
||||
[Transaction(TransactionMode.Manual)]
|
||||
[Regeneration(RegenerationOption.Manual)]
|
||||
internal class cmdExportWorkSchedule : IExternalCommand
|
||||
internal class CmdExportWorkSchedule : IExternalCommand
|
||||
{
|
||||
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
|
||||
{
|
||||
UIApplication uiapp = commandData.Application;
|
||||
UIDocument uidoc = uiapp.ActiveUIDocument;
|
||||
Document doc = uidoc.Document;
|
||||
|
||||
string filename = UserConstant.AddinDirectory + "\\RsLibrary\\Document\\样板工程量清单.xlsx";
|
||||
SaveFileDialog sfd = new SaveFileDialog()
|
||||
{
|
||||
Filter = "Excel文件|*.xlsx"
|
||||
};
|
||||
//VistaFolderBrowserDialog dialog = new VistaFolderBrowserDialog()
|
||||
//{
|
||||
// Multiselect = false,
|
||||
//};
|
||||
string destinationfilename = string.Empty;
|
||||
if (sfd.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
destinationfilename = sfd.FileName;
|
||||
|
||||
File.Copy(filename, destinationfilename, true);
|
||||
}
|
||||
if (destinationfilename == string.Empty)
|
||||
{
|
||||
return Result.Cancelled;
|
||||
}
|
||||
//白色乳胶漆
|
||||
double wall_blankemulsionpaint_area = 0.0;
|
||||
//灰色乳胶漆
|
||||
double wall_greyemulsionpaint_area = 0.0;
|
||||
double wall_Skirting_area = 0.0;
|
||||
//踢脚线
|
||||
double wall_Skirting_length = 0.0;
|
||||
//铝塑板
|
||||
double wall_aluminum_plastic_panel_area = 0.0;
|
||||
//轻钢龙骨
|
||||
double wall_steel_panel_area = 0.0;
|
||||
//桥架
|
||||
double cabletray_length = 0.0;
|
||||
//消防管
|
||||
double pipe_length = 0.0;
|
||||
var walls = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Walls).OfClass(typeof(Wall)).ToList();
|
||||
//寄件台
|
||||
double reception_desk_length = 0;
|
||||
//绿动箱
|
||||
int green_recycling_box_num = 0;
|
||||
int Trash_can_num = 0;
|
||||
int shelf_num = 0;
|
||||
string shelf_size = string.Empty;
|
||||
int shelf_card_num = 0;
|
||||
int high_cam = 0;
|
||||
int cainiao_duty_num = 0;
|
||||
//防撞条长度
|
||||
double containment_length = 0.0;
|
||||
//标识牌
|
||||
int signage_num = 0;
|
||||
//地贴
|
||||
int ground_signage_num = 0;
|
||||
//侧招灯箱
|
||||
int light_box_num = 0;
|
||||
//海报
|
||||
int poster_num = 0;
|
||||
//亚克力不发光字
|
||||
int text_num = 0;
|
||||
//闸机
|
||||
int extrance_gate_num = 0;
|
||||
//收检台
|
||||
int exit_gate_desk_num = 0;
|
||||
//配电箱
|
||||
int switching_cabinet_num = 0;
|
||||
//从开关
|
||||
int switch_num = 0;
|
||||
//插座
|
||||
int socket_num = 0;
|
||||
//射灯
|
||||
int spotlight_num = 0;
|
||||
//筒灯
|
||||
int downlight_num = 0;
|
||||
//吊灯
|
||||
int chandelier_num = 0;
|
||||
int bracket_light_num = 0;
|
||||
var walls = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Walls).OfClass(typeof(Wall));
|
||||
foreach (Wall wall in walls)
|
||||
{
|
||||
if (wall.Name.Contains("灰色乳胶漆"))
|
||||
@@ -40,101 +112,211 @@ namespace RookieStation.CommonTools
|
||||
}
|
||||
else if (wall.Name.Contains("黑钛不锈钢"))
|
||||
{
|
||||
wall_Skirting_area += wall.get_Parameter(BuiltInParameter.HOST_AREA_COMPUTED).AsDouble();
|
||||
wall_Skirting_length += wall.get_Parameter(BuiltInParameter.CURVE_ELEM_LENGTH).AsDouble();
|
||||
}
|
||||
else if (wall.Name.Contains("铝塑板"))
|
||||
{
|
||||
wall_aluminum_plastic_panel_area += wall.get_Parameter(BuiltInParameter.HOST_AREA_COMPUTED).AsDouble();
|
||||
}
|
||||
else if (wall.Name.Contains("轻钢龙骨"))
|
||||
{
|
||||
wall_steel_panel_area += wall.get_Parameter(BuiltInParameter.HOST_AREA_COMPUTED).AsDouble();
|
||||
}
|
||||
var pipes = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_PipeCurves).OfClass(typeof(Pipe)).ToList();
|
||||
}
|
||||
var pipes = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_PipeCurves).OfClass(typeof(Pipe));
|
||||
foreach (Pipe p in pipes)
|
||||
{
|
||||
pipe_length += p.get_Parameter(BuiltInParameter.CURVE_ELEM_LENGTH).AsDouble();
|
||||
}
|
||||
var cts = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_CableTray).OfClass(typeof(CableTray)).ToList();
|
||||
var cts = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_CableTray).OfClass(typeof(CableTray));
|
||||
foreach (CableTray ct in cts)
|
||||
{
|
||||
cabletray_length += ct.get_Parameter(BuiltInParameter.CURVE_ELEM_LENGTH).AsDouble();
|
||||
}
|
||||
var lights = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_LightingFixtures).OfClass(typeof(FamilyInstance)).ToList();
|
||||
foreach (var light in lights)
|
||||
var lights = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_LightingFixtures).OfClass(typeof(FamilyInstance));
|
||||
foreach (FamilyInstance light in lights)
|
||||
{
|
||||
if (light.Name.Contains("荧光灯"))
|
||||
if (light.Symbol.FamilyName.Contains("支架灯"))
|
||||
{
|
||||
bracket_light_num += 1;
|
||||
}
|
||||
else if (light.Name.Contains("筒灯"))
|
||||
else if (light.Symbol.FamilyName.Contains("筒灯"))
|
||||
{
|
||||
downlight_num += 1;
|
||||
}
|
||||
else if (light.Name.Contains("吊灯"))
|
||||
else if (light.Symbol.FamilyName.Contains("吊灯"))
|
||||
{
|
||||
chandelier_num += 1;
|
||||
}
|
||||
else if (light.Name.Contains("射灯"))
|
||||
else if (light.Symbol.FamilyName.Contains("射灯"))
|
||||
{
|
||||
spotlight_num += 1;
|
||||
}
|
||||
}
|
||||
var sockets = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_ElectricalFixtures).OfClass(typeof(FamilyInstance)).ToList();
|
||||
var sockets = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_ElectricalFixtures).OfClass(typeof(FamilyInstance));
|
||||
|
||||
foreach (var socket in sockets)
|
||||
foreach (FamilyInstance socket in sockets)
|
||||
{
|
||||
if (socket.Name.Contains("二三孔"))
|
||||
if (socket.Symbol.FamilyName.Contains("二三孔"))
|
||||
{
|
||||
socket_num += 1;
|
||||
}
|
||||
else if (socket.Symbol.FamilyName.Contains("数据信息"))
|
||||
{
|
||||
socket_num += 1;
|
||||
}
|
||||
}
|
||||
var switchs = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_LightingDevices).OfClass(typeof(FamilyInstance));
|
||||
foreach (FamilyInstance swit in switchs)
|
||||
{
|
||||
if (swit.Symbol.FamilyName.Contains("单联") && swit.Name.Contains("单控"))
|
||||
{
|
||||
switch_num += 1;
|
||||
}
|
||||
}
|
||||
var furnitures = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Furniture).OfClass(typeof(FamilyInstance));
|
||||
foreach (FamilyInstance furn in furnitures)
|
||||
{
|
||||
if (furn.Symbol.FamilyName.Contains("收检台"))
|
||||
{
|
||||
if (!furn.Symbol.FamilyName.Contains("大样"))
|
||||
{
|
||||
exit_gate_desk_num += 1;
|
||||
}
|
||||
}
|
||||
else if (furn.Symbol.FamilyName.Contains("接待台"))
|
||||
{
|
||||
reception_desk_length = furn.Symbol.GetParameters("台面长度").FirstOrDefault().AsDouble();
|
||||
}
|
||||
else if (furn.Symbol.FamilyName.Contains("绿动箱"))
|
||||
{
|
||||
if (!furn.Symbol.FamilyName.Contains("大样"))
|
||||
{
|
||||
green_recycling_box_num += 1;
|
||||
if (furn.Symbol.Name.Contains("1500"))
|
||||
{
|
||||
Trash_can_num += 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
Trash_can_num += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (furn.Symbol.FamilyName.Contains("货架"))
|
||||
{
|
||||
shelf_num += 1;
|
||||
}
|
||||
}
|
||||
var furnituressystem = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_FurnitureSystems).OfClass(typeof(FamilyInstance));
|
||||
foreach (FamilyInstance furnsys in furnituressystem)
|
||||
{
|
||||
if (furnsys.Symbol.FamilyName.Contains("端牌"))
|
||||
{
|
||||
shelf_card_num += 1;
|
||||
}
|
||||
else if (furnsys.Symbol.FamilyName.Contains("使命"))
|
||||
{
|
||||
cainiao_duty_num += 1;
|
||||
}
|
||||
else if (furnsys.Symbol.FamilyName.Contains("防撞条"))
|
||||
{
|
||||
containment_length += furnsys.get_Parameter(BuiltInParameter.FAMILY_LINE_LENGTH_PARAM).AsDouble();
|
||||
}
|
||||
else if (furnsys.Symbol.FamilyName.Contains("标识"))
|
||||
{
|
||||
signage_num += 1;
|
||||
}
|
||||
else if (furnsys.Symbol.FamilyName.Contains("亚克力"))
|
||||
{
|
||||
text_num += furnsys.GetParameters("文字").FirstOrDefault().AsString().Length;
|
||||
}
|
||||
else if (furnsys.Symbol.FamilyName.Contains("地贴"))
|
||||
{
|
||||
ground_signage_num += 1;
|
||||
}
|
||||
else if (furnsys.Symbol.FamilyName.Contains("灯箱"))
|
||||
{
|
||||
light_box_num += 1;
|
||||
}
|
||||
else if (furnsys.Symbol.FamilyName.Contains("海报"))
|
||||
{
|
||||
poster_num += 1;
|
||||
}
|
||||
}
|
||||
var equipments = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_SpecialityEquipment).OfClass(typeof(FamilyInstance));
|
||||
foreach (FamilyInstance equip in equipments)
|
||||
{
|
||||
if (equip.Symbol.FamilyName.Contains("闸机"))
|
||||
{
|
||||
extrance_gate_num += 1;
|
||||
}
|
||||
else if (equip.Symbol.FamilyName.Contains("高拍仪"))
|
||||
{
|
||||
high_cam += 1;
|
||||
}
|
||||
}
|
||||
var doors = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Doors).OfClass(typeof(FamilyInstance));
|
||||
foreach (FamilyInstance door in doors)
|
||||
{
|
||||
if (door.Symbol.FamilyName.Contains("卷帘"))
|
||||
{
|
||||
}
|
||||
else if (socket.Name.Contains("数据信息"))
|
||||
else if (door.Symbol.FamilyName.Contains("卷帘"))
|
||||
{
|
||||
}
|
||||
}
|
||||
var switchs = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_LightingDevices).OfClass(typeof(FamilyInstance)).ToList();
|
||||
foreach (var swit in switchs)
|
||||
{
|
||||
if (swit.Name.Contains("单联") && swit.Name.Contains("单控"))
|
||||
FileInfo fi = new FileInfo(destinationfilename);
|
||||
using (ExcelPackage package = new ExcelPackage(fi))
|
||||
{
|
||||
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
|
||||
ExcelWorksheet sheet0 = package.Workbook.Worksheets["汇总表"];
|
||||
ExcelWorksheet sheet1 = package.Workbook.Worksheets["基装"];
|
||||
//消防管
|
||||
sheet1.Cells[8, 7].Value = RsRevitUtils.FtConvertToM(pipe_length);
|
||||
//桥架
|
||||
sheet1.Cells[9, 7].Value = RsRevitUtils.FtConvertToM(cabletray_length);
|
||||
//乳胶漆
|
||||
sheet1.Cells[10, 7].Value = RsRevitUtils.SFConvertToSM(wall_blankemulsionpaint_area + wall_greyemulsionpaint_area);
|
||||
//铝塑板
|
||||
sheet1.Cells[11, 7].Value = RsRevitUtils.SFConvertToSM(wall_aluminum_plastic_panel_area);
|
||||
sheet1.Cells[14, 7].Value = RsRevitUtils.SFConvertToSM(wall_steel_panel_area);
|
||||
//踢脚线
|
||||
sheet1.Cells[19, 7].Value = RsRevitUtils.FtConvertToM(wall_Skirting_length);
|
||||
sheet1.Cells[24, 7].Value = RsRevitUtils.FtConvertToM(reception_desk_length);
|
||||
sheet1.Cells[25, 7].Value = green_recycling_box_num;
|
||||
sheet1.Cells[26, 7].Value = exit_gate_desk_num;
|
||||
sheet1.Cells[32, 7].Value = switching_cabinet_num;
|
||||
//为什么和桥架乳胶漆长度不一样
|
||||
sheet1.Cells[33, 7].Value = RsRevitUtils.FtConvertToM(cabletray_length);
|
||||
sheet1.Cells[39, 7].Value = socket_num;
|
||||
sheet1.Cells[40, 7].Value = switch_num;
|
||||
sheet1.Cells[41, 7].Value = chandelier_num;
|
||||
sheet1.Cells[42, 7].Value = spotlight_num;
|
||||
sheet1.Cells[46, 7].Value = downlight_num;
|
||||
sheet1.Cells[47, 7].Value = bracket_light_num;
|
||||
|
||||
ExcelWorksheet sheet2 = package.Workbook.Worksheets["道具"];
|
||||
//sheet2.Cells[8, 6].Value = UnitUtils.ConvertFromInternalUnits(pipe_length, DisplayUnitType.DUT_METERS);
|
||||
sheet2.Cells[4, 7].Value = Trash_can_num;
|
||||
sheet2.Cells[5, 7].Value = extrance_gate_num;
|
||||
|
||||
ExcelWorksheet sheet3 = package.Workbook.Worksheets["品牌模块"];
|
||||
//sheet3.Cells[8, 6].Value = UnitUtils.ConvertFromInternalUnits(pipe_length, DisplayUnitType.DUT_METERS);
|
||||
|
||||
sheet3.Cells[7, 6].Value = light_box_num;
|
||||
sheet3.Cells[9, 6].Value = text_num;
|
||||
sheet3.Cells[10, 6].Value = text_num;
|
||||
sheet3.Cells[11, 6].Value = signage_num;
|
||||
sheet3.Cells[14, 6].Value = cainiao_duty_num;
|
||||
sheet3.Cells[16, 6].Value = RsRevitUtils.FtConvertToM(containment_length);
|
||||
sheet3.Cells[17, 6].Value = ground_signage_num;
|
||||
sheet3.Cells[18, 6].Value = shelf_card_num;
|
||||
sheet3.Cells[19, 6].Value = shelf_num;
|
||||
|
||||
package.Save();
|
||||
}
|
||||
}
|
||||
var furnitures = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Furniture).OfClass(typeof(FamilyInstance)).ToList();
|
||||
foreach (var furn in furnitures)
|
||||
{
|
||||
if (furn.Name.Contains("收检台"))
|
||||
{
|
||||
}
|
||||
else if (furn.Name.Contains("接待台"))
|
||||
{
|
||||
}
|
||||
else if (furn.Name.Contains("绿动箱"))
|
||||
{
|
||||
}
|
||||
else if (furn.Name.Contains("货架"))
|
||||
{
|
||||
}
|
||||
}
|
||||
var furnituressystem = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_FurnitureSystems).OfClass(typeof(FamilyInstance)).ToList();
|
||||
foreach (var furn in furnitures)
|
||||
{
|
||||
if (furn.Name.Contains("端牌"))
|
||||
{
|
||||
}
|
||||
}
|
||||
var equipments = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_SpecialityEquipment).OfClass(typeof(FamilyInstance)).ToList();
|
||||
foreach (var equip in equipments)
|
||||
{
|
||||
if (equip.Name.Contains("闸机"))
|
||||
{
|
||||
}
|
||||
else if (equip.Name.Contains("高拍仪"))
|
||||
{
|
||||
//ExcelUtils.EditCellValue();
|
||||
}
|
||||
}
|
||||
var doors = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Doors).OfClass(typeof(FamilyInstance)).ToList();
|
||||
foreach (var door in doors)
|
||||
{
|
||||
if (door.Name.Contains("卷帘"))
|
||||
{
|
||||
}
|
||||
else if (door.Name.Contains("卷帘"))
|
||||
{
|
||||
}
|
||||
}
|
||||
System.Diagnostics.Process.Start(destinationfilename);
|
||||
return Result.Succeeded;
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user