├── Bimangle.ForgeEngine.Dwg
├── Fonts
│ ├── Eref.shx
│ ├── HZTXT.SHX
│ ├── whgtxt.shx
│ ├── bigfont.shx
│ ├── tssdchn.shx
│ ├── tssdeng.shx
│ ├── acad.fmp
│ └── Readme.txt
├── Core
│ ├── ILog.cs
│ └── LogProgress.cs
├── NugetCommands.txt
├── UI
│ └── Controls
│ │ ├── IExportControl.cs
│ │ └── IExportForm.cs
├── packages.config
├── Utility
│ ├── AppHelper.cs
│ └── ProgressExHelper.cs
├── Program.cs
├── Toolset
│ ├── CommandToolsetQuickPreview.cs
│ ├── CommandToolsetCheckEngineLogs.cs
│ ├── CommandToolsetPickPositionFromMap.cs
│ └── CommandToolsetCreateProj.cs
├── Properties
│ ├── Settings.settings
│ └── AssemblyInfo.cs
├── Config
│ ├── AppConfig.cs
│ └── AppConfigSvf.cs
└── Helpers
│ └── ProgressHelper.cs
├── Bimangle.ForgeEngine.3DXML
├── Resources
│ └── app.ico
├── Core
│ ├── ILog.cs
│ ├── CustomTraceListener.cs
│ ├── LogProgress.cs
│ ├── CancellationTokenSourceProxy.cs
│ └── TranslateLog.cs
├── UI
│ └── Controls
│ │ ├── IExportControl.cs
│ │ └── IExportForm.cs
├── NugetCommands.txt
├── packages.config
├── Program.cs
├── Toolset
│ ├── CommandToolsetQuickPreview.cs
│ ├── CommandToolsetCheckEngineLogs.cs
│ ├── CommandToolsetPickPositionFromMap.cs
│ └── CommandToolsetCreateProj.cs
├── Properties
│ ├── Settings.settings
│ └── AssemblyInfo.cs
├── Config
│ ├── AppConfig.cs
│ ├── AppConfigSvf.cs
│ └── AppConfigGltf.cs
└── Utility
│ ├── AppHelper.cs
│ └── ProgressExHelper.cs
├── Bimangle.ForgeEngine.Revit
├── Resources
│ ├── app.ico
│ ├── gltf_16px.png
│ ├── gltf_32px.png
│ ├── Toolset_16px.png
│ ├── Toolset_32px.png
│ ├── Cesium3DTiles_16px.png
│ ├── Cesium3DTiles_32px.png
│ ├── Converter_16px_1061192.png
│ └── Converter_32px_1061192.png
├── obj-Bimangle.ForgeEngine.Revit_R2025
│ ├── Bimangle.ForgeEngine.Revit_R2025.csproj.nuget.g.targets
│ └── Bimangle.ForgeEngine.Revit_R2025.csproj.nuget.g.props
├── obj-Bimangle.ForgeEngine.Revit_R2026
│ ├── Bimangle.ForgeEngine.Revit_R2026.csproj.nuget.g.targets
│ └── Bimangle.ForgeEngine.Revit_R2026.csproj.nuget.g.props
├── Directory.Build.props
├── Bimangle.ForgeEngine.Revit_R2014.csproj.DotSettings
├── Bimangle.ForgeEngine.Revit_R2015.csproj.DotSettings
├── Bimangle.ForgeEngine.Revit_R2017.csproj.DotSettings
├── Bimangle.ForgeEngine.Revit_R2018.csproj.DotSettings
├── packages.Bimangle.ForgeEngine.Revit_R2014.config
├── packages.Bimangle.ForgeEngine.Revit_R2015.config
├── packages.Bimangle.ForgeEngine.Revit_R2016.config
├── packages.Bimangle.ForgeEngine.Revit_R2019.config
├── packages.Bimangle.ForgeEngine.Revit_R2020.config
├── packages.Bimangle.ForgeEngine.Revit_R2017.config
├── packages.Bimangle.ForgeEngine.Revit_R2018.config
├── packages.Bimangle.ForgeEngine.Revit_R2021.config
├── packages.Bimangle.ForgeEngine.Revit_R2022.config
├── packages.Bimangle.ForgeEngine.Revit_R2023.config
├── packages.Bimangle.ForgeEngine.Revit_R2024.config
├── Bimangle.ForgeEngine.Samples.addin
├── UI
│ └── Controls
│ │ └── IExportControl.cs
├── Properties
│ ├── Settings.settings
│ └── AssemblyInfo.cs
├── Custom
│ └── ExportHandler.cs
├── Config
│ ├── AppConfig.cs
│ ├── AppConfigGltf.cs
│ └── AppConfigSvf.cs
├── Toolset
│ ├── PickPosition
│ │ └── CommandToolsetPickPosition.cs
│ ├── QuickPreview
│ │ └── CommandToolsetQuickPreview.cs
│ ├── PickPositionFromMap
│ │ └── CommandToolsetPickPositionFromMap.cs
│ ├── CheckEngineLogs
│ │ └── CommandToolsetCheckEngineLogs.cs
│ ├── CheckRevitJournals
│ │ └── CommandToolsetCheckRevitJournals.cs
│ └── CreateProj
│ │ └── CommandToolsetCreateProj.cs
├── CommandExportGltf.cs
├── CommandExportSvfzip.cs
├── NugetCommands.txt
└── CommandExportCesium3DTiles.cs
├── Bimangle.ForgeEngine.Skp
├── Resources
│ └── app.ico
├── Core
│ ├── ILog.cs
│ └── LogProgress.cs
├── UI
│ └── Controls
│ │ ├── IExportControl.cs
│ │ └── IExportForm.cs
├── NugetCommands.txt
├── packages.config
├── Program.cs
├── Toolset
│ ├── CommandToolsetQuickPreview.cs
│ ├── CommandToolsetCheckEngineLogs.cs
│ ├── CommandToolsetPickPositionFromMap.cs
│ └── CommandToolsetCreateProj.cs
├── Properties
│ ├── Settings.settings
│ └── AssemblyInfo.cs
├── Config
│ ├── AppConfig.cs
│ ├── AppConfigSvf.cs
│ └── AppConfigGltf.cs
└── Utility
│ ├── AppHelper.cs
│ └── ProgressExHelper.cs
├── Bimangle.ForgeEngine.Navisworks
├── Resources
│ ├── app.ico
│ └── Converter_32px_1061192.png
├── Images
│ ├── Toolset_16px.ico
│ ├── Toolset_32px.ico
│ ├── ExportToGltf_16px.ico
│ ├── ExportToGltf_32px.ico
│ ├── ExportToSvfzip_16px.ico
│ ├── ExportToSvfzip_32px.ico
│ ├── ExportToCesium3DTiles_16px.ico
│ └── ExportToCesium3DTiles_32px.ico
├── packages.Bimangle.ForgeEngine.Nw_R2014.config
├── packages.Bimangle.ForgeEngine.Nw_R2015.config
├── packages.Bimangle.ForgeEngine.Nw_R2016.config
├── packages.Bimangle.ForgeEngine.Nw_R2019.config
├── packages.Bimangle.ForgeEngine.Nw_R2020.config
├── packages.Bimangle.ForgeEngine.Nw_R2021.config
├── packages.Bimangle.ForgeEngine.Nw_R2022.config
├── packages.Bimangle.ForgeEngine.Nw_R2023.config
├── packages.Bimangle.ForgeEngine.Nw_R2024.config
├── packages.Bimangle.ForgeEngine.Nw_R2025.config
├── packages.Bimangle.ForgeEngine.Nw_R2026.config
├── packages.Bimangle.ForgeEngine.Nw_R2017.config
├── packages.Bimangle.ForgeEngine.Nw_R2018.config
├── UI
│ └── Controls
│ │ └── IExportControl.cs
├── Properties
│ ├── Settings.settings
│ └── AssemblyInfo.cs
├── Core
│ ├── Batch
│ │ └── Router.cs
│ └── RuntimeLog.cs
├── Config
│ ├── AppConfig.cs
│ ├── AppConfigSvf.cs
│ └── AppConfigGltf.cs
├── Toolset
│ ├── CommandToolsetQuickPreview.cs
│ ├── CommandToolsetCheckEngineLogs.cs
│ ├── CommandToolsetPickPosition.cs
│ ├── CommandToolsetPickPositionFromMap.cs
│ └── CommandToolsetCreateProj.cs
├── NugetCommands.txt
└── Utility
│ └── AppHelper.cs
├── Bimangle.ForgeEngine.Dgn
├── Resources
│ ├── Converter_16px_1061192.png
│ └── Converter_32px_1061192.png
├── Core
│ ├── IExternalCommand.cs
│ └── Titles.cs
├── packages.config
├── Helpers
│ ├── Progress
│ │ └── FormProgress.cs
│ └── ProgressHelper.cs
├── NugetCommands.txt
├── Utility
│ ├── MsgDialog.cs
│ └── AssemblyResolver.cs
├── Properties
│ ├── Settings.settings
│ └── AssemblyInfo.cs
├── UI
│ └── Controls
│ │ └── IExportControl.cs
├── AddIn.cs
├── Toolset
│ ├── CommandToolsetQuickPreview.cs
│ ├── CommandToolsetPickPositionFromMap.cs
│ ├── CommandToolsetCheckEngineLogs.cs
│ ├── CommandToolsetPickPosition.cs
│ └── CommandToolsetCreateProj.cs
├── Config
│ ├── AppConfig.cs
│ ├── AppConfigGltf.cs
│ └── AppConfigSvf.cs
├── Readme.md
└── app.config
├── Bimangle.ForgeEngine.Navisworks.Automation
├── packages.config
├── App.config
├── Properties
│ ├── Settings.settings
│ ├── Settings.Designer.cs
│ └── AssemblyInfo.cs
└── Config
│ └── JobConfig.cs
├── Bimangle.ForgeEngine.Georeferncing
├── packages.config
├── TestRunState.cs
├── Interface
│ └── IAdapterHost.cs
├── Utility
│ └── ProjFile.cs
└── Properties
│ └── AssemblyInfo.cs
├── Bimangle.ForgeEngine.Navisworks.Automation.sln
├── ForgeEngine.Samples.Dgn.sln
├── ForgeEngine.Samples.Skp.sln
├── ForgeEngine.Samples.3DXML.sln
├── ForgeEngine.Samples.Dwg.sln
├── ForgeEngine.Samples.Revit2014.sln
├── ForgeEngine.Samples.Revit2015.sln
├── ForgeEngine.Samples.Revit2016.sln
├── ForgeEngine.Samples.Revit2017.sln
├── ForgeEngine.Samples.Revit2018.sln
├── ForgeEngine.Samples.Revit2019.sln
├── ForgeEngine.Samples.Revit2020.sln
├── ForgeEngine.Samples.Revit2021.sln
├── ForgeEngine.Samples.Revit2022.sln
├── ForgeEngine.Samples.Revit2023.sln
├── ForgeEngine.Samples.Revit2024.sln
├── ForgeEngine.Samples.Revit2025_VS2022.sln
├── README.md
├── Build
└── Build.csproj
├── ForgeEngine.Samples.Navisworks2026.sln
└── ForgeEngine.Samples.Revit2026_VS2022.sln
/Bimangle.ForgeEngine.Dwg/Fonts/Eref.shx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Dwg/Fonts/Eref.shx
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dwg/Fonts/HZTXT.SHX:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Dwg/Fonts/HZTXT.SHX
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dwg/Fonts/whgtxt.shx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Dwg/Fonts/whgtxt.shx
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.3DXML/Resources/app.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.3DXML/Resources/app.ico
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dwg/Fonts/bigfont.shx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Dwg/Fonts/bigfont.shx
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dwg/Fonts/tssdchn.shx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Dwg/Fonts/tssdchn.shx
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dwg/Fonts/tssdeng.shx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Dwg/Fonts/tssdeng.shx
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/Resources/app.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Revit/Resources/app.ico
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Skp/Resources/app.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Skp/Resources/app.ico
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/Resources/app.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Navisworks/Resources/app.ico
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/Resources/gltf_16px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Revit/Resources/gltf_16px.png
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/Resources/gltf_32px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Revit/Resources/gltf_32px.png
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/Resources/Toolset_16px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Revit/Resources/Toolset_16px.png
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/Resources/Toolset_32px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Revit/Resources/Toolset_32px.png
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/Images/Toolset_16px.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Navisworks/Images/Toolset_16px.ico
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/Images/Toolset_32px.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Navisworks/Images/Toolset_32px.ico
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/Resources/Cesium3DTiles_16px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Revit/Resources/Cesium3DTiles_16px.png
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/Resources/Cesium3DTiles_32px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Revit/Resources/Cesium3DTiles_32px.png
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dgn/Resources/Converter_16px_1061192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Dgn/Resources/Converter_16px_1061192.png
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dgn/Resources/Converter_32px_1061192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Dgn/Resources/Converter_32px_1061192.png
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/Images/ExportToGltf_16px.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Navisworks/Images/ExportToGltf_16px.ico
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/Images/ExportToGltf_32px.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Navisworks/Images/ExportToGltf_32px.ico
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/Images/ExportToSvfzip_16px.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Navisworks/Images/ExportToSvfzip_16px.ico
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/Images/ExportToSvfzip_32px.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Navisworks/Images/ExportToSvfzip_32px.ico
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/Resources/Converter_16px_1061192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Revit/Resources/Converter_16px_1061192.png
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/Resources/Converter_32px_1061192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Revit/Resources/Converter_32px_1061192.png
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/Images/ExportToCesium3DTiles_16px.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Navisworks/Images/ExportToCesium3DTiles_16px.ico
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/Images/ExportToCesium3DTiles_32px.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Navisworks/Images/ExportToCesium3DTiles_32px.ico
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/Resources/Converter_32px_1061192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bimangle/forge-engine-samples/HEAD/Bimangle.ForgeEngine.Navisworks/Resources/Converter_32px_1061192.png
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks.Automation/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks.Automation/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/obj-Bimangle.ForgeEngine.Revit_R2025/Bimangle.ForgeEngine.Revit_R2025.csproj.nuget.g.targets:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/obj-Bimangle.ForgeEngine.Revit_R2026/Bimangle.ForgeEngine.Revit_R2026.csproj.nuget.g.targets:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dwg/Core/ILog.cs:
--------------------------------------------------------------------------------
1 | namespace Bimangle.ForgeEngine.Dwg.Core
2 | {
3 | public interface ILog
4 | {
5 | void WriteLine(string s);
6 |
7 | void Write(string s);
8 | void WriteProgress(int progress);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Skp/Core/ILog.cs:
--------------------------------------------------------------------------------
1 | namespace Bimangle.ForgeEngine.Skp.Core
2 | {
3 | public interface ILog
4 | {
5 | void WriteLine(string s);
6 |
7 | void Write(string s);
8 | void WriteProgress(int progress);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.3DXML/Core/ILog.cs:
--------------------------------------------------------------------------------
1 | namespace Bimangle.ForgeEngine._3DXML.Core
2 | {
3 | public interface ILog
4 | {
5 | void WriteLine(string s);
6 |
7 | void Write(string s);
8 | void WriteProgress(int progress);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Georeferncing/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks.Automation/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dwg/NugetCommands.txt:
--------------------------------------------------------------------------------
1 |
2 | # Run follow scripts within Package Manager Console, to ensure the "BimAngle Engine SDK" available.
3 | # Please ignore error messages in the execution of the script, as it is designed to do
4 |
5 | Update-Package -Id Bimangle.ForgeEngine.Dwg
6 |
7 | Update-Package -reinstall
8 |
9 | # You can rebuild now!
10 |
11 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dgn/Core/IExternalCommand.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace Bimangle.ForgeEngine.Dgn.Core
8 | {
9 | public interface IExternalCommand
10 | {
11 | int Execute(string unparsed, ref string message);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/Directory.Build.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | obj-$(MSBuildProjectName)
5 | $(MSBuildProjectExtensionsPath)
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dwg/UI/Controls/IExportControl.cs:
--------------------------------------------------------------------------------
1 | using Bimangle.ForgeEngine.Dwg.Config;
2 |
3 | namespace Bimangle.ForgeEngine.Dwg.UI.Controls
4 | {
5 | interface IExportControl
6 | {
7 | string Icon { get; }
8 |
9 | string Title { get; }
10 |
11 | void Init(IExportForm form, AppConfig config);
12 |
13 | void Reset();
14 |
15 | void RefreshCommand();
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Skp/UI/Controls/IExportControl.cs:
--------------------------------------------------------------------------------
1 | using Bimangle.ForgeEngine.Skp.Config;
2 |
3 | namespace Bimangle.ForgeEngine.Skp.UI.Controls
4 | {
5 | interface IExportControl
6 | {
7 | string Icon { get; }
8 |
9 | string Title { get; }
10 |
11 | void Init(IExportForm form, AppConfig config);
12 |
13 | void Reset();
14 |
15 | void RefreshCommand();
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dgn/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.3DXML/UI/Controls/IExportControl.cs:
--------------------------------------------------------------------------------
1 | using Bimangle.ForgeEngine._3DXML.Config;
2 |
3 | namespace Bimangle.ForgeEngine._3DXML.UI.Controls
4 | {
5 | interface IExportControl
6 | {
7 | string Icon { get; }
8 |
9 | string Title { get; }
10 |
11 | void Init(IExportForm form, AppConfig config);
12 |
13 | void Reset();
14 |
15 | void RefreshCommand();
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/Bimangle.ForgeEngine.Revit_R2014.csproj.DotSettings:
--------------------------------------------------------------------------------
1 |
2 | Yes
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/Bimangle.ForgeEngine.Revit_R2015.csproj.DotSettings:
--------------------------------------------------------------------------------
1 |
2 | Yes
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/Bimangle.ForgeEngine.Revit_R2017.csproj.DotSettings:
--------------------------------------------------------------------------------
1 |
2 | Yes
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/Bimangle.ForgeEngine.Revit_R2018.csproj.DotSettings:
--------------------------------------------------------------------------------
1 |
2 | Yes
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dgn/Helpers/Progress/FormProgress.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Forms;
2 |
3 | namespace Bimangle.ForgeEngine.Dgn.Helpers.Progress
4 | {
5 | partial class FormProgress : Form
6 | {
7 | public FormProgress()
8 | {
9 | this.InitializeComponent();
10 | }
11 |
12 | public FormProgress(string title) : this()
13 | {
14 | if(title != null) label1.Text = title;
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dgn/Core/Titles.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace Bimangle.ForgeEngine.Dgn.Core
8 | {
9 | static class Titles
10 | {
11 | #if !EXPRESS
12 | public const string SVFZIP = @"Svfzip";
13 | #endif
14 | public const string GLTF = @"glTF/glb";
15 | public const string CESIUM_3D_TILES = @"3D Tiles";
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dgn/NugetCommands.txt:
--------------------------------------------------------------------------------
1 |
2 | # Run follow scripts within Package Manager Console, to ensure the "BimAngle Engine SDK" available.
3 | # Please ignore error messages in the execution of the script, as it is designed to do
4 |
5 | Update-Package -Id Bimangle.ForgeEngine.Common -Project Bimangle.ForgeEngine.Georeferncing
6 | Update-Package -Id Bimangle.ForgeEngine.Dgn -Project Bimangle.ForgeEngine.Dgn
7 |
8 | Update-Package -reinstall
9 |
10 | # You can rebuild now!
11 |
12 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Skp/NugetCommands.txt:
--------------------------------------------------------------------------------
1 |
2 | # Run follow scripts within Package Manager Console, to ensure the "BimAngle Engine SDK" available.
3 | # Please ignore error messages in the execution of the script, as it is designed to do
4 |
5 | Update-Package -Id Bimangle.ForgeEngine.Common -Project Bimangle.ForgeEngine.Georeferncing
6 | Update-Package -Id Bimangle.ForgeEngine.Skp -Project Bimangle.ForgeEngine.Skp
7 |
8 | Update-Package -reinstall
9 |
10 | # You can rebuild now!
11 |
12 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dwg/Fonts/acad.fmp:
--------------------------------------------------------------------------------
1 | visiojp;bigfont.shx
2 | visiohg;whgtxt.shx
3 | acaderef;eref.shx
4 | hztxtf;hztxt.shx
5 | hztch;hztxt.shx
6 | cibt;CITYB___.TTF
7 | cobt;COUNB___.TTF
8 | eur;EURR____.TTF
9 | euro;EURRO___.TTF
10 | par;PANROMAN.TTF
11 | rom;ROMANTIC.TTF
12 | romb;ROMAB___.TTF
13 | romi;ROMAI___.TTF
14 | sas;SANSS___.TTF
15 | sasb;SANSSB__.TTF
16 | sasbo;SANSSBO_.TTF
17 | saso;SANSSO__.TTF
18 | suf;SUPEF___.TTF
19 | te;TECHNIC_.TTF
20 | teb;TECHB___.TTF
21 | tel;TECHL___.TTF
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.3DXML/NugetCommands.txt:
--------------------------------------------------------------------------------
1 |
2 | # Run follow scripts within Package Manager Console, to ensure the "BimAngle Engine SDK" available.
3 | # Please ignore error messages in the execution of the script, as it is designed to do
4 |
5 | Update-Package -Id Bimangle.ForgeEngine.Common -Project Bimangle.ForgeEngine.Georeferncing
6 | Update-Package -Id Bimangle.ForgeEngine.3DXML -Project Bimangle.ForgeEngine.3DXML
7 |
8 | Update-Package -reinstall
9 |
10 | # You can rebuild now!
11 |
12 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dgn/Utility/MsgDialog.cs:
--------------------------------------------------------------------------------
1 | using System.Runtime.InteropServices;
2 | using System.Text;
3 |
4 | namespace Bimangle.ForgeEngine.Dgn.Utility
5 | {
6 | static class MsgDialog
7 | {
8 | [DllImport(@"ustation.dll")]
9 | public static extern void mdlDialog_dmsgsPrint(byte[] wMsg);
10 |
11 | public static void Log(string message)
12 | {
13 | mdlDialog_dmsgsPrint(Encoding.Unicode.GetBytes(message));
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dwg/UI/Controls/IExportForm.cs:
--------------------------------------------------------------------------------
1 | using Bimangle.ForgeEngine.Dwg.Core;
2 |
3 | namespace Bimangle.ForgeEngine.Dwg.UI.Controls
4 | {
5 | interface IExportForm
6 | {
7 | void RefreshCommand(Options options);
8 |
9 | string GetInputFilePath();
10 |
11 | ///
12 | /// 是否启用扩展特性
13 | ///
14 | ///
15 | ///
16 | bool UsedExtendFeature(string featureName);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Skp/UI/Controls/IExportForm.cs:
--------------------------------------------------------------------------------
1 | using Bimangle.ForgeEngine.Skp.Core;
2 |
3 | namespace Bimangle.ForgeEngine.Skp.UI.Controls
4 | {
5 | interface IExportForm
6 | {
7 | void RefreshCommand(Options options);
8 |
9 | string GetInputFilePath();
10 |
11 | ///
12 | /// 是否启用扩展特性
13 | ///
14 | ///
15 | ///
16 | bool UsedExtendFeature(string featureName);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.3DXML/UI/Controls/IExportForm.cs:
--------------------------------------------------------------------------------
1 | using Bimangle.ForgeEngine._3DXML.Core;
2 |
3 | namespace Bimangle.ForgeEngine._3DXML.UI.Controls
4 | {
5 | interface IExportForm
6 | {
7 | void RefreshCommand(Options options);
8 |
9 | string GetInputFilePath();
10 |
11 | ///
12 | /// 是否启用扩展特性
13 | ///
14 | ///
15 | ///
16 | bool UsedExtendFeature(string featureName);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/packages.Bimangle.ForgeEngine.Revit_R2014.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/packages.Bimangle.ForgeEngine.Revit_R2015.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/packages.Bimangle.ForgeEngine.Revit_R2016.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/packages.Bimangle.ForgeEngine.Revit_R2019.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/packages.Bimangle.ForgeEngine.Revit_R2020.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/packages.Bimangle.ForgeEngine.Revit_R2017.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/packages.Bimangle.ForgeEngine.Revit_R2018.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/packages.Bimangle.ForgeEngine.Revit_R2021.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/packages.Bimangle.ForgeEngine.Revit_R2022.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/packages.Bimangle.ForgeEngine.Revit_R2023.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/packages.Bimangle.ForgeEngine.Revit_R2024.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/packages.Bimangle.ForgeEngine.Nw_R2014.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/packages.Bimangle.ForgeEngine.Nw_R2015.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/packages.Bimangle.ForgeEngine.Nw_R2016.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/packages.Bimangle.ForgeEngine.Nw_R2019.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/packages.Bimangle.ForgeEngine.Nw_R2020.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/packages.Bimangle.ForgeEngine.Nw_R2021.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/packages.Bimangle.ForgeEngine.Nw_R2022.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/packages.Bimangle.ForgeEngine.Nw_R2023.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/packages.Bimangle.ForgeEngine.Nw_R2024.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/packages.Bimangle.ForgeEngine.Nw_R2025.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/packages.Bimangle.ForgeEngine.Nw_R2026.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/packages.Bimangle.ForgeEngine.Nw_R2017.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/packages.Bimangle.ForgeEngine.Nw_R2018.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/Bimangle.ForgeEngine.Samples.addin:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Bimangle.ForgeEngine.Samples
5 | Bimangle.ForgeEngine.Samples/Bimangle.ForgeEngine.Samples.dll
6 | Bimangle.ForgeEngine.Revit.App
7 | d9413999-d41d-4b4a-8edd-d6a19aabc456
8 | BimAngle
9 | BimAngle.com
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dwg/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Skp/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.3DXML/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dwg/Utility/AppHelper.cs:
--------------------------------------------------------------------------------
1 | using System.IO;
2 |
3 | namespace Bimangle.ForgeEngine.Dwg.Utility
4 | {
5 | static class AppHelper
6 | {
7 | ///
8 | /// 获得相对路径
9 | ///
10 | ///
11 | ///
12 | public static string GetPath(string relatePath)
13 | {
14 | var dllFolder = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
15 | return Path.Combine(dllFolder, relatePath);
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/UI/Controls/IExportControl.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.Drawing;
3 | using Bimangle.ForgeEngine.Navisworks.Config;
4 |
5 | namespace Bimangle.ForgeEngine.Navisworks.UI.Controls
6 | {
7 | interface IExportControl
8 | {
9 | string Icon { get; }
10 |
11 | string Title { get; }
12 |
13 | void Init(AppConfig config);
14 |
15 | bool Run(IExportForm form);
16 |
17 | void Reset();
18 | }
19 |
20 | interface IExportForm
21 | {
22 | bool UsedExtendFeature(string featureName);
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dwg/Fonts/Readme.txt:
--------------------------------------------------------------------------------
1 |
2 | 注意: 由于版权限制, 本软件不提供字体集,请自行将您用到的字体复制到本文件夹。
3 |
4 |
5 | Note: Due to copyright restrictions, this software does not provide font set, please copy the font you use to this folder.
6 |
7 |
8 | ==================================================
9 | acad.fmp
10 | -- Font Mapping File Format
11 |
12 | A font mapping file is a text file where each line specifies a font substitution. A font substitution is of the form:
13 | ;
14 | The original font can be either a typeface name or a file name. However, the substitute font should be a file name. For example:
15 |
16 | romb;ROMAB___.TTF
17 | romi;ROMAI___.TTF
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dgn/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | False
7 |
8 |
9 | False
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | False
7 |
8 |
9 | False
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Georeferncing/TestRunState.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace Bimangle.ForgeEngine.Georeferncing
8 | {
9 | class TestRunState
10 | {
11 | private static TestRunState _LastState;
12 |
13 | public static TestRunState LastState
14 | {
15 | get => _LastState ?? (_LastState = new TestRunState());
16 | set => _LastState = value;
17 | }
18 |
19 | public string Y { get; set; } = "0";
20 | public string X { get; set; } = "0";
21 | public string Z { get; set; } = "0";
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dgn/UI/Controls/IExportControl.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using Bentley.DgnPlatformNET;
7 | using Bimangle.ForgeEngine.Dgn.Config;
8 |
9 | namespace Bimangle.ForgeEngine.Dgn.UI.Controls
10 | {
11 | interface IExportControl
12 | {
13 | string Icon { get; }
14 |
15 | string Title { get; }
16 |
17 | void Init(Viewport view, AppConfig config, bool hasSelectElements);
18 |
19 | bool Run(IExportForm form);
20 |
21 | void Reset();
22 | }
23 |
24 | interface IExportForm
25 | {
26 | bool UsedExtendFeature(string featureName);
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/Core/Batch/Router.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace Bimangle.ForgeEngine.Navisworks.Core.Batch
8 | {
9 | ///
10 | /// 消息路由器
11 | ///
12 | ///
13 | /// 用于自动转换时,Navisworks 插件向外部控制程序报告转换进度
14 | /// 注: 这里删除了具体实现代码,如果有需要可以自行实现(基于 TCP/IP, 也可以基于内存映射等等)
15 | ///
16 | class Router
17 | {
18 | public static void SetProgressPhase(string name, double weightFactor)
19 | {
20 | }
21 |
22 | public static void SetProgressValue(string name, int progressValue)
23 | {
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/UI/Controls/IExportControl.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using Autodesk.Revit.DB;
7 | using Autodesk.Revit.UI;
8 | using Bimangle.ForgeEngine.Revit.Config;
9 |
10 | namespace Bimangle.ForgeEngine.Revit.UI.Controls
11 | {
12 | interface IExportControl
13 | {
14 | string Icon { get; }
15 |
16 | string Title { get; }
17 |
18 | void Init(UIDocument uidoc, View3D view, AppConfig config, Dictionary elementIds);
19 |
20 | bool Run(IExportForm form, bool enabledSampling);
21 |
22 | void Reset();
23 | }
24 |
25 | interface IExportForm
26 | {
27 | bool UsedExtendFeature(string featureName);
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dwg/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.CodeDom;
3 | using System.Collections.Generic;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Reflection;
7 | using System.Runtime.InteropServices;
8 | using System.Windows.Forms;
9 | using Bimangle.ForgeEngine.Dwg.Core;
10 | using Bimangle.ForgeEngine.Dwg.Config;
11 |
12 | namespace Bimangle.ForgeEngine.Dwg
13 | {
14 | static class Program
15 | {
16 | [STAThread]
17 | static void Main()
18 | {
19 | var appConfig = AppConfigManager.Load();
20 | var format = Options.DEFAULT_FORMAT;
21 |
22 | Application.EnableVisualStyles();
23 | Application.SetCompatibleTextRenderingDefault(false);
24 | Application.Run(new UI.FormExport(appConfig, format));
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | False
7 |
8 |
9 | False
10 |
11 |
12 | False
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Georeferncing/Interface/IAdapterHost.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace Bimangle.ForgeEngine.Georeferncing.Interface
8 | {
9 | public interface IAdapterHost
10 | {
11 | ///
12 | /// 从目标文件加载 proj 信息
13 | ///
14 | ///
15 | ///
16 | string GetProjDefinition(string projFilePath);
17 |
18 | ///
19 | /// 检查 proj 定义信息是否有效
20 | ///
21 | ///
22 | ///
23 | ///
24 | bool CheckProjDefinition(string projDefinition, out string projWkt);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Skp/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Reflection;
7 | using System.Runtime.InteropServices;
8 | using System.Threading;
9 | using System.Windows.Forms;
10 | using Bimangle.ForgeEngine.Skp.Config;
11 | using Bimangle.ForgeEngine.Skp.Core;
12 |
13 | namespace Bimangle.ForgeEngine.Skp
14 | {
15 | class Program
16 | {
17 | [STAThread]
18 | static void Main()
19 | {
20 | var appConfig = AppConfigManager.Load();
21 | var format = Options.DEFAULT_FORMAT;
22 |
23 | Application.EnableVisualStyles();
24 | Application.SetCompatibleTextRenderingDefault(false);
25 | Application.Run(new UI.FormExport(appConfig, format));
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.3DXML/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Reflection;
7 | using System.Runtime.InteropServices;
8 | using System.Threading;
9 | using System.Windows.Forms;
10 | using Bimangle.ForgeEngine._3DXML.Config;
11 | using Bimangle.ForgeEngine._3DXML.Core;
12 |
13 | namespace Bimangle.ForgeEngine._3DXML
14 | {
15 | class Program
16 | {
17 | [STAThread]
18 | static void Main()
19 | {
20 | var appConfig = AppConfigManager.Load();
21 | var format = Options.DEFAULT_FORMAT;
22 |
23 | Application.EnableVisualStyles();
24 | Application.SetCompatibleTextRenderingDefault(false);
25 | Application.Run(new UI.FormExport(appConfig, format));
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.3DXML/Core/CustomTraceListener.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace Bimangle.ForgeEngine._3DXML.Core
9 | {
10 | class CustomTraceListener : TraceListener
11 | {
12 | private Action _Callback;
13 |
14 | public CustomTraceListener(Action callback)
15 | {
16 | _Callback = callback;
17 | }
18 |
19 | #region Overrides of TraceListener
20 |
21 | public override void Write(string message)
22 | {
23 | _Callback?.Invoke(message);
24 | }
25 |
26 | public override void WriteLine(string message)
27 | {
28 | _Callback?.Invoke(message);
29 | }
30 |
31 | #endregion
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dwg/Toolset/CommandToolsetQuickPreview.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 | using System.Windows.Forms;
5 | using Bimangle.ForgeEngine.Dwg.Core;
6 | using Bimangle.ForgeEngine.Dwg.Utility;
7 |
8 | namespace Bimangle.ForgeEngine.Dwg.Toolset
9 | {
10 | class CommandToolsetQuickPreview
11 | {
12 | public void Execute(Form form)
13 | {
14 | var previewAppPath = Path.Combine(
15 | App.GetHomePath(),
16 | @"Tools",
17 | @"Browser",
18 | @"Bimangle.ForgeBrowser.exe"
19 | );
20 |
21 | try
22 | {
23 | Process.Start(previewAppPath);
24 | }
25 | catch (Exception ex)
26 | {
27 | form.ShowMessageBox(ex.ToString());
28 | Trace.WriteLine(ex.ToString());
29 | }
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Skp/Toolset/CommandToolsetQuickPreview.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 | using System.Windows.Forms;
5 | using Bimangle.ForgeEngine.Skp.Core;
6 | using Bimangle.ForgeEngine.Skp.Utility;
7 |
8 | namespace Bimangle.ForgeEngine.Skp.Toolset
9 | {
10 | class CommandToolsetQuickPreview
11 | {
12 | public void Execute(Form form)
13 | {
14 | var previewAppPath = Path.Combine(
15 | App.GetHomePath(),
16 | @"Tools",
17 | @"Browser",
18 | @"Bimangle.ForgeBrowser.exe"
19 | );
20 |
21 | try
22 | {
23 | Process.Start(previewAppPath);
24 | }
25 | catch (Exception ex)
26 | {
27 | form.ShowMessageBox(ex.ToString());
28 | Trace.WriteLine(ex.ToString());
29 | }
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dwg/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | False
13 |
14 |
15 | False
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.3DXML/Toolset/CommandToolsetQuickPreview.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 | using System.Windows.Forms;
5 | using Bimangle.ForgeEngine._3DXML.Core;
6 | using Bimangle.ForgeEngine._3DXML.Utility;
7 |
8 | namespace Bimangle.ForgeEngine._3DXML.Toolset
9 | {
10 | class CommandToolsetQuickPreview
11 | {
12 | public void Execute(Form form)
13 | {
14 | var previewAppPath = Path.Combine(
15 | App.GetHomePath(),
16 | @"Tools",
17 | @"Browser",
18 | @"Bimangle.ForgeBrowser.exe"
19 | );
20 |
21 | try
22 | {
23 | Process.Start(previewAppPath);
24 | }
25 | catch (Exception ex)
26 | {
27 | form.ShowMessageBox(ex.ToString());
28 | Trace.WriteLine(ex.ToString());
29 | }
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Skp/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | True
7 |
8 |
9 |
10 |
11 |
12 | False
13 |
14 |
15 | False
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.3DXML/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | True
7 |
8 |
9 |
10 |
11 |
12 | False
13 |
14 |
15 | False
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dwg/Config/AppConfig.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Bimangle.ForgeEngine.Dwg.Config
4 | {
5 | [Serializable]
6 | class AppConfig
7 | {
8 | public AppConfigSvf Svf { get; set; }
9 | public AppConfigGltf Gltf { get; set; }
10 | public AppConfigCesium3DTiles Cesium3DTiles { get; set; }
11 |
12 | public AppConfig()
13 | {
14 | Svf = new AppConfigSvf();
15 | Gltf = new AppConfigGltf();
16 | Cesium3DTiles = new AppConfigCesium3DTiles();
17 | }
18 |
19 | public AppConfig Clone()
20 | {
21 | return new AppConfig
22 | {
23 | Svf = Svf == null ? new AppConfigSvf() : Svf.Clone(),
24 | Gltf = Gltf == null ? new AppConfigGltf() : Gltf.Clone(),
25 | Cesium3DTiles = Cesium3DTiles == null ? new AppConfigCesium3DTiles() : Cesium3DTiles.Clone()
26 | };
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dgn/AddIn.cs:
--------------------------------------------------------------------------------
1 | //--------------------------------------------------------------------------------------+
2 | //
3 | // $Source: Bimangle.ForgeEngine.Dgn.Loader.cs $
4 | //
5 | // $Copyright: (c) 2019 Bentley Systems, Incorporated. All rights reserved. $
6 | //
7 | //---------------------------------------------------------------------------------------+
8 |
9 | using System.Diagnostics;
10 | using System.Text;
11 | using Bentley.DgnPlatform;
12 |
13 | namespace Bimangle.ForgeEngine.Dgn
14 | {
15 | [Bentley.MstnPlatformNET.AddIn(MdlTaskID = "BimangleEngineSamples")]
16 | internal sealed class AddIn : Bentley.MstnPlatformNET.AddIn
17 | {
18 | public static AddIn Instance = null;
19 |
20 | private AddIn(System.IntPtr mdlDesc) : base(mdlDesc)
21 | {
22 | Instance = this;
23 | }
24 |
25 | protected override int Run(string[] commandLine)
26 | {
27 | return 0;
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/Config/AppConfig.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Bimangle.ForgeEngine.Navisworks.Config
4 | {
5 | [Serializable]
6 | class AppConfig
7 | {
8 | public AppConfigSvf Svf { get; set; }
9 | public AppConfigGltf Gltf { get; set; }
10 | public AppConfigCesium3DTiles Cesium3DTiles { get; set; }
11 | public AppConfig()
12 | {
13 | Svf = new AppConfigSvf();
14 | Gltf = new AppConfigGltf();
15 | Cesium3DTiles = new AppConfigCesium3DTiles();
16 | }
17 |
18 | public AppConfig Clone()
19 | {
20 | return new AppConfig
21 | {
22 | Svf = Svf == null ? new AppConfigSvf() : Svf.Clone(),
23 | Gltf = Gltf == null ? new AppConfigGltf() : Gltf.Clone(),
24 | Cesium3DTiles = Cesium3DTiles == null ? new AppConfigCesium3DTiles() : Cesium3DTiles.Clone()
25 | };
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/Custom/ExportHandler.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using Bimangle.ForgeEngine.Revit.Api;
7 |
8 | namespace Bimangle.ForgeEngine.Revit.Custom
9 | {
10 | class ExportHandler : ExportHandlerBase
11 | {
12 | private readonly bool _EnableCustomLevelParser;
13 |
14 | public ExportHandler()
15 | {
16 | _EnableCustomLevelParser = Properties.Settings.Default.EnableCustomLevelParser;
17 | }
18 |
19 | public override ILevelParser OnCreateLevelParser()
20 | {
21 | return _EnableCustomLevelParser
22 | ? new LevelParser()
23 | : base.OnCreateLevelParser();
24 | }
25 |
26 | public override bool OnGetUseLevelCategory()
27 | {
28 | return _EnableCustomLevelParser || base.OnGetUseLevelCategory();
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/Toolset/CommandToolsetQuickPreview.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 | using System.Windows.Forms;
5 | using Bimangle.ForgeEngine.Navisworks.Core;
6 | using Bimangle.ForgeEngine.Navisworks.Utility;
7 |
8 | namespace Bimangle.ForgeEngine.Navisworks.Toolset
9 | {
10 | class CommandToolsetQuickPreview
11 | {
12 | public void Execute(IWin32Window form)
13 | {
14 | var previewAppPath = Path.Combine(
15 | VersionInfo.GetHomePath(),
16 | @"Tools",
17 | @"Browser",
18 | @"Bimangle.ForgeBrowser.exe"
19 | );
20 |
21 | try
22 | {
23 | Process.Start(previewAppPath);
24 | }
25 | catch (Exception ex)
26 | {
27 | form.ShowMessageBox(ex.ToString());
28 | Trace.WriteLine(ex.ToString());
29 | }
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dwg/Toolset/CommandToolsetCheckEngineLogs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 | using System.Windows.Forms;
5 | using Bimangle.ForgeEngine.Dwg.Core;
6 | using Bimangle.ForgeEngine.Dwg.Utility;
7 |
8 | namespace Bimangle.ForgeEngine.Dwg.Toolset
9 | {
10 | class CommandToolsetCheckEngineLogs
11 | {
12 | public void Execute(Form parentForm)
13 | {
14 | try
15 | {
16 | var logsPath = Path.Combine(
17 | App.GetHomePath(),
18 | @"Logs");
19 | if (Directory.Exists(logsPath) == false)
20 | {
21 | Directory.CreateDirectory(logsPath);
22 | }
23 | Process.Start(logsPath);
24 | }
25 | catch (Exception ex)
26 | {
27 | parentForm.ShowMessageBox(ex.ToString());
28 |
29 | Trace.WriteLine(ex.ToString());
30 | }
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Skp/Toolset/CommandToolsetCheckEngineLogs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 | using System.Windows.Forms;
5 | using Bimangle.ForgeEngine.Skp.Core;
6 | using Bimangle.ForgeEngine.Skp.Utility;
7 |
8 | namespace Bimangle.ForgeEngine.Skp.Toolset
9 | {
10 | class CommandToolsetCheckEngineLogs
11 | {
12 | public void Execute(Form parentForm)
13 | {
14 | try
15 | {
16 | var logsPath = Path.Combine(
17 | App.GetHomePath(),
18 | @"Logs");
19 | if (Directory.Exists(logsPath) == false)
20 | {
21 | Directory.CreateDirectory(logsPath);
22 | }
23 | Process.Start(logsPath);
24 | }
25 | catch (Exception ex)
26 | {
27 | parentForm.ShowMessageBox(ex.ToString());
28 |
29 | Trace.WriteLine(ex.ToString());
30 | }
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.3DXML/Toolset/CommandToolsetCheckEngineLogs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 | using System.Windows.Forms;
5 | using Bimangle.ForgeEngine._3DXML.Core;
6 | using Bimangle.ForgeEngine._3DXML.Utility;
7 |
8 | namespace Bimangle.ForgeEngine._3DXML.Toolset
9 | {
10 | class CommandToolsetCheckEngineLogs
11 | {
12 | public void Execute(Form parentForm)
13 | {
14 | try
15 | {
16 | var logsPath = Path.Combine(
17 | App.GetHomePath(),
18 | @"Logs");
19 | if (Directory.Exists(logsPath) == false)
20 | {
21 | Directory.CreateDirectory(logsPath);
22 | }
23 | Process.Start(logsPath);
24 | }
25 | catch (Exception ex)
26 | {
27 | parentForm.ShowMessageBox(ex.ToString());
28 |
29 | Trace.WriteLine(ex.ToString());
30 | }
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/Toolset/CommandToolsetCheckEngineLogs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 | using System.Windows.Forms;
5 | using Bimangle.ForgeEngine.Navisworks.Core;
6 | using Bimangle.ForgeEngine.Navisworks.Utility;
7 |
8 | namespace Bimangle.ForgeEngine.Navisworks.Toolset
9 | {
10 | class CommandToolsetCheckEngineLogs
11 | {
12 | public void Execute(IWin32Window parentForm)
13 | {
14 | try
15 | {
16 | var logsPath = Path.Combine(
17 | VersionInfo.GetHomePath(),
18 | @"Logs");
19 | if (Directory.Exists(logsPath) == false)
20 | {
21 | Directory.CreateDirectory(logsPath);
22 | }
23 | Process.Start(logsPath);
24 | }
25 | catch (Exception ex)
26 | {
27 | parentForm.ShowMessageBox(ex.ToString());
28 |
29 | Trace.WriteLine(ex.ToString());
30 | }
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dwg/Toolset/CommandToolsetPickPositionFromMap.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 | using System.Windows.Forms;
5 | using Bimangle.ForgeEngine.Dwg.Core;
6 | using Bimangle.ForgeEngine.Dwg.Utility;
7 |
8 | namespace Bimangle.ForgeEngine.Dwg.Toolset
9 | {
10 | class CommandToolsetPickPositionFromMap
11 | {
12 | #region Implementation of IExternalCommand
13 |
14 | public void Execute(Form form)
15 | {
16 | var previewAppPath = Path.Combine(
17 | App.GetHomePath(),
18 | @"Tools",
19 | @"Browser",
20 | @"Bimangle.ForgeBrowser.exe"
21 | );
22 |
23 | try
24 | {
25 | Process.Start(previewAppPath, @"--PickPosition");
26 | }
27 | catch (Exception ex)
28 | {
29 | form.ShowMessageBox(ex.ToString());
30 |
31 | Trace.WriteLine(ex.ToString());
32 | }
33 | }
34 |
35 | #endregion
36 |
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Skp/Toolset/CommandToolsetPickPositionFromMap.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 | using System.Windows.Forms;
5 | using Bimangle.ForgeEngine.Skp.Core;
6 | using Bimangle.ForgeEngine.Skp.Utility;
7 |
8 | namespace Bimangle.ForgeEngine.Skp.Toolset
9 | {
10 | class CommandToolsetPickPositionFromMap
11 | {
12 | #region Implementation of IExternalCommand
13 |
14 | public void Execute(Form form)
15 | {
16 | var previewAppPath = Path.Combine(
17 | App.GetHomePath(),
18 | @"Tools",
19 | @"Browser",
20 | @"Bimangle.ForgeBrowser.exe"
21 | );
22 |
23 | try
24 | {
25 | Process.Start(previewAppPath, @"--PickPosition");
26 | }
27 | catch (Exception ex)
28 | {
29 | form.ShowMessageBox(ex.ToString());
30 |
31 | Trace.WriteLine(ex.ToString());
32 | }
33 | }
34 |
35 | #endregion
36 |
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.3DXML/Toolset/CommandToolsetPickPositionFromMap.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 | using System.Windows.Forms;
5 | using Bimangle.ForgeEngine._3DXML.Core;
6 | using Bimangle.ForgeEngine._3DXML.Utility;
7 |
8 | namespace Bimangle.ForgeEngine._3DXML.Toolset
9 | {
10 | class CommandToolsetPickPositionFromMap
11 | {
12 | #region Implementation of IExternalCommand
13 |
14 | public void Execute(Form form)
15 | {
16 | var previewAppPath = Path.Combine(
17 | App.GetHomePath(),
18 | @"Tools",
19 | @"Browser",
20 | @"Bimangle.ForgeBrowser.exe"
21 | );
22 |
23 | try
24 | {
25 | Process.Start(previewAppPath, @"--PickPosition");
26 | }
27 | catch (Exception ex)
28 | {
29 | form.ShowMessageBox(ex.ToString());
30 |
31 | Trace.WriteLine(ex.ToString());
32 | }
33 | }
34 |
35 | #endregion
36 |
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/Toolset/CommandToolsetPickPosition.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 | using System.Windows.Forms;
5 | using Bimangle.ForgeEngine.Navisworks.Utility;
6 |
7 | namespace Bimangle.ForgeEngine.Navisworks.Toolset
8 | {
9 | class CommandToolsetPickPosition
10 | {
11 | #region Implementation of IExternalCommand
12 |
13 | public void Execute(IWin32Window form)
14 | {
15 | try
16 | {
17 | if (Autodesk.Navisworks.Api.Application.ActiveDocument.Models.Count == 0)
18 | {
19 | form.ShowMessageBox(Strings.SceneNoData);
20 | return;
21 | }
22 |
23 | var dialog = new PickPosition.FormPickPosition();
24 | dialog.Show(form);
25 | }
26 | catch (Exception ex)
27 | {
28 | form.ShowMessageBox(ex.ToString());
29 |
30 | Trace.WriteLine(ex.ToString());
31 | }
32 | }
33 |
34 | #endregion
35 |
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/Toolset/CommandToolsetPickPositionFromMap.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 | using System.Windows.Forms;
5 | using Bimangle.ForgeEngine.Navisworks.Core;
6 | using Bimangle.ForgeEngine.Navisworks.Utility;
7 |
8 | namespace Bimangle.ForgeEngine.Navisworks.Toolset
9 | {
10 | class CommandToolsetPickPositionFromMap
11 | {
12 | #region Implementation of IExternalCommand
13 |
14 | public void Execute(IWin32Window form)
15 | {
16 | var previewAppPath = Path.Combine(
17 | VersionInfo.GetHomePath(),
18 | @"Tools",
19 | @"Browser",
20 | @"Bimangle.ForgeBrowser.exe"
21 | );
22 |
23 | try
24 | {
25 | Process.Start(previewAppPath, @"--PickPosition");
26 | }
27 | catch (Exception ex)
28 | {
29 | form.ShowMessageBox(ex.ToString());
30 |
31 | Trace.WriteLine(ex.ToString());
32 | }
33 | }
34 |
35 | #endregion
36 |
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dgn/Toolset/CommandToolsetQuickPreview.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 | using System.Windows.Forms;
5 | using Bimangle.ForgeEngine.Dgn.Core;
6 | using Bimangle.ForgeEngine.Dgn.Utility;
7 |
8 | namespace Bimangle.ForgeEngine.Dgn.Toolset
9 | {
10 | public class CommandToolsetQuickPreview : IExternalCommand
11 | {
12 |
13 | #region Implementation of IExternalCommand
14 |
15 | public int Execute(string unparsed, ref string message)
16 | {
17 | var previewAppPath = Path.Combine(
18 | VersionInfo.GetHomePath(),
19 | @"Tools",
20 | @"Browser",
21 | @"Bimangle.ForgeBrowser.exe"
22 | );
23 |
24 | try
25 | {
26 | Process.Start(previewAppPath);
27 | }
28 | catch (Exception ex)
29 | {
30 | FormHelper.ShowMessageBox(ex.ToString());
31 | Trace.WriteLine(ex.ToString());
32 | }
33 |
34 | return 0;
35 | }
36 |
37 | #endregion
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dgn/Config/AppConfig.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.IO;
5 | using System.Security.Cryptography;
6 | using System.Text;
7 | using Newtonsoft.Json;
8 |
9 | namespace Bimangle.ForgeEngine.Dgn.Config
10 | {
11 | [Serializable]
12 | class AppConfig
13 | {
14 | public AppConfigSvf Svf { get; set; }
15 | public AppConfigGltf Gltf { get; set; }
16 | public AppConfigCesium3DTiles Cesium3DTiles { get; set; }
17 |
18 | public AppConfig()
19 | {
20 | Svf = new AppConfigSvf();
21 | Gltf = new AppConfigGltf();
22 | Cesium3DTiles = new AppConfigCesium3DTiles();
23 | }
24 |
25 | public AppConfig Clone()
26 | {
27 | return new AppConfig
28 | {
29 | Svf = Svf == null ? new AppConfigSvf() : Svf.Clone(),
30 | Gltf = Gltf == null ? new AppConfigGltf() : Gltf.Clone(),
31 | Cesium3DTiles = Cesium3DTiles == null ? new AppConfigCesium3DTiles() : Cesium3DTiles.Clone()
32 | };
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks.Automation/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // 此代码由工具生成。
4 | // 运行时版本:4.0.30319.42000
5 | //
6 | // 对此文件的更改可能会导致不正确的行为,并且如果
7 | // 重新生成代码,这些更改将会丢失。
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace Bimangle.ForgeEngine.Navisworks.Properties {
12 |
13 |
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")]
16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17 |
18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19 |
20 | public static Settings Default {
21 | get {
22 | return defaultInstance;
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Skp/Config/AppConfig.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.IO;
5 | using System.Security.Cryptography;
6 | using System.Text;
7 | using Newtonsoft.Json;
8 |
9 | namespace Bimangle.ForgeEngine.Skp.Config
10 | {
11 | [Serializable]
12 | class AppConfig
13 | {
14 | public AppConfigSvf Svf { get; set; }
15 | public AppConfigGltf Gltf { get; set; }
16 | public AppConfigCesium3DTiles Cesium3DTiles { get; set; }
17 |
18 | public AppConfig()
19 | {
20 | Svf = new AppConfigSvf();
21 | Gltf = new AppConfigGltf();
22 | Cesium3DTiles = new AppConfigCesium3DTiles();
23 | }
24 |
25 | public AppConfig Clone()
26 | {
27 | return new AppConfig
28 | {
29 | Svf = Svf == null ? new AppConfigSvf() : Svf.Clone(),
30 | Gltf = Gltf == null ? new AppConfigGltf() : Gltf.Clone(),
31 | Cesium3DTiles = Cesium3DTiles == null ? new AppConfigCesium3DTiles() : Cesium3DTiles.Clone()
32 | };
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.3DXML/Config/AppConfig.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.IO;
5 | using System.Security.Cryptography;
6 | using System.Text;
7 | using Newtonsoft.Json;
8 |
9 | namespace Bimangle.ForgeEngine._3DXML.Config
10 | {
11 | [Serializable]
12 | class AppConfig
13 | {
14 | public AppConfigSvf Svf { get; set; }
15 | public AppConfigGltf Gltf { get; set; }
16 | public AppConfigCesium3DTiles Cesium3DTiles { get; set; }
17 |
18 | public AppConfig()
19 | {
20 | Svf = new AppConfigSvf();
21 | Gltf = new AppConfigGltf();
22 | Cesium3DTiles = new AppConfigCesium3DTiles();
23 | }
24 |
25 | public AppConfig Clone()
26 | {
27 | return new AppConfig
28 | {
29 | Svf = Svf == null ? new AppConfigSvf() : Svf.Clone(),
30 | Gltf = Gltf == null ? new AppConfigGltf() : Gltf.Clone(),
31 | Cesium3DTiles = Cesium3DTiles == null ? new AppConfigCesium3DTiles() : Cesium3DTiles.Clone()
32 | };
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dwg/Core/LogProgress.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using Bimangle.ForgeEngine.Dwg.Utility;
8 |
9 | namespace Bimangle.ForgeEngine.Dwg.Core
10 | {
11 | class LogProgress : ILog
12 | {
13 | private readonly Action _ProgressCallback;
14 |
15 | public LogProgress(ProgressExHelper progress)
16 | {
17 | _ProgressCallback = progress?.GetProgressCallback() ?? throw new ArgumentNullException(nameof(progress));
18 | }
19 |
20 | #region Implementation of ILog
21 |
22 | public void WriteLine(string s)
23 | {
24 | Debug.WriteLine(s);
25 | }
26 |
27 | public void Write(string s)
28 | {
29 | Debug.Write(s);
30 | }
31 |
32 | public void WriteProgress(int progress)
33 | {
34 | if (progress > 100) progress = 100;
35 | if (progress < 0) progress = 0;
36 | _ProgressCallback(progress);
37 | }
38 |
39 | #endregion
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/Config/AppConfig.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.IO;
5 | using System.Security.Cryptography;
6 | using System.Text;
7 | using Newtonsoft.Json;
8 |
9 | namespace Bimangle.ForgeEngine.Revit.Config
10 | {
11 | [Serializable]
12 | class AppConfig
13 | {
14 | public AppConfigSvf Svf { get; set; }
15 | public AppConfigGltf Gltf { get; set; }
16 | public AppConfigCesium3DTiles Cesium3DTiles { get; set; }
17 |
18 | public AppConfig()
19 | {
20 | Svf = new AppConfigSvf();
21 | Gltf = new AppConfigGltf();
22 | Cesium3DTiles = new AppConfigCesium3DTiles();
23 | }
24 |
25 | public AppConfig Clone()
26 | {
27 | return new AppConfig
28 | {
29 | Svf = Svf == null ? new AppConfigSvf() : Svf.Clone(),
30 | Gltf = Gltf == null ? new AppConfigGltf() : Gltf.Clone(),
31 | Cesium3DTiles = Cesium3DTiles == null ? new AppConfigCesium3DTiles() : Cesium3DTiles.Clone()
32 | };
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Skp/Core/LogProgress.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using Bimangle.ForgeEngine.Skp.Utility;
8 |
9 | namespace Bimangle.ForgeEngine.Skp.Core
10 | {
11 | class LogProgress : ILog
12 | {
13 | private readonly Action _ProgressCallback;
14 |
15 | public LogProgress(ProgressExHelper progress)
16 | {
17 | _ProgressCallback = progress?.GetProgressCallback() ?? throw new ArgumentNullException(nameof(progress));
18 | }
19 |
20 | #region Implementation of ILog
21 |
22 | public void WriteLine(string s)
23 | {
24 | Debug.WriteLine(s);
25 | }
26 |
27 | public void Write(string s)
28 | {
29 | Debug.Write(s);
30 | }
31 |
32 | public void WriteProgress(int progress)
33 | {
34 | if (progress > 100) progress = 100;
35 | if (progress < 0) progress = 0;
36 | _ProgressCallback(progress);
37 | }
38 |
39 | #endregion
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dgn/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // 有关程序集的一般信息由以下
6 | // 控制。更改这些特性值可修改
7 | // 与程序集关联的信息。
8 | [assembly: AssemblyTitle("Bimangle.ForgeEngine.Dgn")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("Bimangle.ForgeEngine.Dgn")]
13 | [assembly: AssemblyCopyright("Copyright © BimAngle 2017-2025")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // 将 ComVisible 设置为 false 会使此程序集中的类型
18 | //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
19 | //请将此类型的 ComVisible 特性设置为 true。
20 | [assembly: ComVisible(false)]
21 |
22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
23 | [assembly: Guid("868c736f-038b-4514-a54b-407e84f20df7")]
24 |
25 | // 程序集的版本信息由下列四个值组成:
26 | //
27 | // 主版本
28 | // 次版本
29 | // 生成号
30 | // 修订号
31 | //
32 | // 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
33 | // 方法是按如下所示使用“*”: :
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.3DXML/Core/LogProgress.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using Bimangle.ForgeEngine._3DXML.Utility;
8 |
9 | namespace Bimangle.ForgeEngine._3DXML.Core
10 | {
11 | class LogProgress : ILog
12 | {
13 | private readonly Action _ProgressCallback;
14 |
15 | public LogProgress(ProgressExHelper progress)
16 | {
17 | _ProgressCallback = progress?.GetProgressCallback() ?? throw new ArgumentNullException(nameof(progress));
18 | }
19 |
20 | #region Implementation of ILog
21 |
22 | public void WriteLine(string s)
23 | {
24 | Debug.WriteLine(s);
25 | }
26 |
27 | public void Write(string s)
28 | {
29 | Debug.Write(s);
30 | }
31 |
32 | public void WriteProgress(int progress)
33 | {
34 | if (progress > 100) progress = 100;
35 | if (progress < 0) progress = 0;
36 | _ProgressCallback(progress);
37 | }
38 |
39 | #endregion
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dgn/Toolset/CommandToolsetPickPositionFromMap.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 | using System.Windows.Forms;
5 | using Bimangle.ForgeEngine.Dgn.Core;
6 | using Bimangle.ForgeEngine.Dgn.Utility;
7 |
8 | namespace Bimangle.ForgeEngine.Dgn.Toolset
9 | {
10 | class CommandToolsetPickPositionFromMap : IExternalCommand
11 | {
12 |
13 | #region Implementation of IExternalCommand
14 |
15 | public int Execute(string unparsed, ref string message)
16 | {
17 | var previewAppPath = Path.Combine(
18 | VersionInfo.GetHomePath(),
19 | @"Tools",
20 | @"Browser",
21 | @"Bimangle.ForgeBrowser.exe"
22 | );
23 |
24 | try
25 | {
26 | Process.Start(previewAppPath, @"--PickPosition");
27 | }
28 | catch (Exception ex)
29 | {
30 | FormHelper.ShowMessageBox(ex.ToString());
31 |
32 | Trace.WriteLine(ex.ToString());
33 | }
34 |
35 | return 0;
36 | }
37 |
38 | #endregion
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dgn/Readme.md:
--------------------------------------------------------------------------------
1 |
2 | # BimAngle Engine DGN 快速开始
3 |
4 | ## 一. 环境准备
5 | * 开发工具: Visual Studio 2017 (下文简称 VS2017)
6 | * 软件平台: Bentley MicroStation CE (下文简称为 MSCE)
7 |
8 |
9 | ## 二. 下载编译
10 |
11 | ### 1. 下载源码
12 | * 从 https://github.com/bimangle/forge-engine-samples 下载例子源码;
13 | * 用 VS2017 打开解决方案 **ForgeEngine.Samples.Dgn.sln**;
14 |
15 | ### 2. 更新组件
16 | * 打开“程序包管理器控制台”: 菜单->工具->NuGet 包管理器->程序包管理器控制台
17 | * 将文件 NugetCommands.txt 中的脚本全部拷贝粘贴到 “程序包管理器控制台” 执行;
18 |
19 | ### 3. 编译源码
20 | * 重新生成解决方案: 菜单->生成->重新生成解决方案;
21 | * 记录解决方案的输出文件夹路径,例如:“*D:\Test\Bimangle.ForgeEngine.Samples\Bimangle.ForgeEngine.Dgn\bin\Debug*”
22 | > 如果 MSCE 的安装文件夹不在 **C:\Program Files\Bentley\MicroStation CONNECT Edition\MicroStation** 下,则需要修改"引用"下的相关组件指向到正确路径,否则编译过程将会报错。
23 |
24 | ## 三. 部署运行
25 | * 启动 MSCE, 菜单->文件->设置->配置(列表项)->配置变量(按钮);
26 | * 在弹出的对话框“**配置变量:用户 [Personal]**”中,搜索变量: **MS_ADDINPATH**, 点“编辑”按钮;
27 | * 在弹出的对话框“**编辑环境变量**”的“新值”输入框中,追加之前记录的解决方案输出文件夹路径(分号分隔),点确定;
28 | * 按 F9 打开“键入命令”对话框,输入命令 “**mdl load BimAngleEngineSamples;BimAngleEngineSamples ExportGltf**” 即可弹出导出对话框;
29 |
30 | ## 四. 调试测试
31 | * 如果需要调试,可以设置断点后,在 VS2017 的菜单->附加到进程->选择附加到进程 microstation.exe;
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dwg/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // 有关程序集的一般信息由以下
6 | // 控制。更改这些特性值可修改
7 | // 与程序集关联的信息。
8 | [assembly: AssemblyTitle("Bimangle Engine (for Dwg) CLI")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("Bimangle Engine (for Dwg)")]
13 | [assembly: AssemblyCopyright("Copyright © BimAngle 2017-2025")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // 将 ComVisible 设置为 false 会使此程序集中的类型
18 | //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
19 | //请将此类型的 ComVisible 特性设置为 true。
20 | [assembly: ComVisible(false)]
21 |
22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
23 | [assembly: Guid("c67dc1d3-5dc1-4d42-9a44-26472d3d2272")]
24 |
25 | // 程序集的版本信息由下列四个值组成:
26 | //
27 | // 主版本
28 | // 次版本
29 | // 生成号
30 | // 修订号
31 | //
32 | // 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
33 | // 方法是按如下所示使用“*”: :
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dgn/Toolset/CommandToolsetCheckEngineLogs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 | using System.Windows.Forms;
5 | using Bimangle.ForgeEngine.Dgn.Core;
6 | using Bimangle.ForgeEngine.Dgn.Utility;
7 |
8 | namespace Bimangle.ForgeEngine.Dgn.Toolset
9 | {
10 | public class CommandToolsetCheckEngineLogs : IExternalCommand
11 | {
12 | #region Implementation of IExternalCommand
13 |
14 | public int Execute(string unparsed, ref string message)
15 | {
16 | try
17 | {
18 | var logsPath = Path.Combine(
19 | VersionInfo.GetHomePath(),
20 | @"Logs");
21 | if (Directory.Exists(logsPath) == false)
22 | {
23 | Directory.CreateDirectory(logsPath);
24 | }
25 | Process.Start(logsPath);
26 | }
27 | catch (Exception ex)
28 | {
29 | FormHelper.ShowMessageBox(ex.ToString());
30 |
31 | Trace.WriteLine(ex.ToString());
32 | }
33 | return 0;
34 | }
35 |
36 | #endregion
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 | using Bimangle.ForgeEngine.Navisworks;
5 |
6 | // 有关程序集的一般信息由以下
7 | // 控制。更改这些特性值可修改
8 | // 与程序集关联的信息。
9 | [assembly: AssemblyTitle(VersionInfo.PRODUCT_NAME)]
10 | [assembly: AssemblyDescription("")]
11 | [assembly: AssemblyConfiguration("")]
12 | [assembly: AssemblyCompany(VersionInfo.COMPANY_NAME)]
13 | [assembly: AssemblyProduct(VersionInfo.PRODUCT_NAME)]
14 | [assembly: AssemblyCopyright(VersionInfo.COPYRIGHT)]
15 | [assembly: AssemblyTrademark("")]
16 | [assembly: AssemblyCulture("")]
17 |
18 | // 将 ComVisible 设置为 false 会使此程序集中的类型
19 | //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
20 | //请将此类型的 ComVisible 特性设置为 true。
21 | [assembly: ComVisible(false)]
22 |
23 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
24 | [assembly: Guid("11e6eb25-8c8e-4409-97c2-cd21cc29f3e6")]
25 |
26 | // 程序集的版本信息由下列四个值组成:
27 | //
28 | // 主版本
29 | // 次版本
30 | // 生成号
31 | // 修订号
32 | //
33 | // 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
34 | //通过使用 "*",如下所示:
35 | // [assembly: AssemblyVersion("1.0.*")]
36 | [assembly: AssemblyVersion("1.0.0.*")]
37 | [assembly: AssemblyFileVersion("1.0.0.0")]
38 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Georeferncing/Utility/ProjFile.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace Bimangle.ForgeEngine.Georeferncing.Utility
8 | {
9 | class ProjFile
10 | {
11 | private const string PREFIX_PROJCS = @"PROJCS[";
12 | private const string PREFIX_PROJCRS = @"PROJCRS[";
13 | private const string PREFIX_COMPOUNDCRS = @"COMPOUNDCRS[";
14 |
15 | ///
16 | /// 检查是否为有效的 OGC WKT/WKT2 定义格式
17 | ///
18 | ///
19 | ///
20 | public static bool IsValidOgcWkt(string srs)
21 | {
22 | if (string.IsNullOrWhiteSpace(srs)) return false;
23 |
24 | var s = srs.Trim();
25 | if (s.StartsWith(PREFIX_PROJCS, StringComparison.OrdinalIgnoreCase) ||
26 | s.StartsWith(PREFIX_PROJCRS, StringComparison.OrdinalIgnoreCase) ||
27 | s.StartsWith(PREFIX_COMPOUNDCRS, StringComparison.OrdinalIgnoreCase))
28 | {
29 | return true;
30 | }
31 |
32 | return false;
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks.Automation/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 | using Bimangle.ForgeEngine.Navisworks;
5 |
6 | // 有关程序集的一般信息由以下
7 | // 控制。更改这些特性值可修改
8 | // 与程序集关联的信息。
9 | [assembly: AssemblyTitle(VersionInfo.PRODUCT_NAME)]
10 | [assembly: AssemblyDescription("")]
11 | [assembly: AssemblyConfiguration("")]
12 | [assembly: AssemblyCompany(VersionInfo.COMPANY_NAME)]
13 | [assembly: AssemblyProduct(VersionInfo.PRODUCT_NAME)]
14 | [assembly: AssemblyCopyright(VersionInfo.COPYRIGHT)]
15 | [assembly: AssemblyTrademark("")]
16 | [assembly: AssemblyCulture("")]
17 |
18 | // 将 ComVisible 设置为 false 会使此程序集中的类型
19 | //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
20 | //请将此类型的 ComVisible 特性设置为 true。
21 | [assembly: ComVisible(false)]
22 |
23 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
24 | [assembly: Guid("0906a065-74e3-482f-99b4-b6dadd947a4f")]
25 |
26 | // 程序集的版本信息由下列四个值组成:
27 | //
28 | // 主版本
29 | // 次版本
30 | // 生成号
31 | // 修订号
32 | //
33 | // 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
34 | // 方法是按如下所示使用“*”: :
35 | // [assembly: AssemblyVersion("1.0.*")]
36 | [assembly: AssemblyVersion("1.0.0.0")]
37 | [assembly: AssemblyFileVersion("1.0.0.0")]
38 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Georeferncing/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // 有关程序集的一般信息由以下
6 | // 控制。更改这些特性值可修改
7 | // 与程序集关联的信息。
8 | [assembly: AssemblyTitle("Bimangle.ForgeEngine.Georeferncing")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("Bimangle.ForgeEngine.Georeferncing")]
13 | [assembly: AssemblyCopyright("Copyright © BimAngle 2017-2025")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // 将 ComVisible 设置为 false 会使此程序集中的类型
18 | //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
19 | //请将此类型的 ComVisible 特性设置为 true。
20 | [assembly: ComVisible(false)]
21 |
22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
23 | [assembly: Guid("3c32b366-38a8-4943-95b2-09d6427a1e66")]
24 |
25 | // 程序集的版本信息由下列四个值组成:
26 | //
27 | // 主版本
28 | // 次版本
29 | // 生成号
30 | // 修订号
31 | //
32 | // 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
33 | //通过使用 "*",如下所示:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
38 | [assembly: InternalsVisibleTo("Bimangle.ForgeEngine.Skp.Test")]
39 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/Toolset/PickPosition/CommandToolsetPickPosition.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.Windows.Forms;
4 | using Autodesk.Revit.Attributes;
5 | using Autodesk.Revit.DB;
6 | using Autodesk.Revit.UI;
7 | using Bimangle.ForgeEngine.Revit.Utility;
8 |
9 | namespace Bimangle.ForgeEngine.Revit.Toolset.PickPosition
10 | {
11 | [Transaction(TransactionMode.Manual)]
12 | public class CommandToolsetPickPosition : IExternalCommand, IExternalCommandAvailability
13 | {
14 | #region Implementation of IExternalCommand
15 |
16 | Result IExternalCommand.Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
17 | {
18 | var form = new FormPickPosition(commandData);
19 | form.InitExternalEvent();
20 | form.Show(commandData.GetMainWindowHandle());
21 |
22 | return Result.Succeeded;
23 | }
24 |
25 | #endregion
26 |
27 | #region Implementation of IExternalCommandAvailability
28 |
29 | bool IExternalCommandAvailability.IsCommandAvailable(UIApplication applicationData, CategorySet selectedCategories)
30 | {
31 | return true;
32 | }
33 |
34 | #endregion
35 |
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dgn/Toolset/CommandToolsetPickPosition.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 | using System.Windows.Forms;
5 | using Bentley.MstnPlatformNET;
6 | using Bimangle.ForgeEngine.Dgn.Core;
7 | using Bimangle.ForgeEngine.Dgn.Utility;
8 |
9 | namespace Bimangle.ForgeEngine.Dgn.Toolset
10 | {
11 | public class CommandToolsetPickPosition : IExternalCommand
12 | {
13 | private readonly AddIn _Addin;
14 |
15 | internal CommandToolsetPickPosition(AddIn addin)
16 | {
17 | _Addin = addin ?? throw new ArgumentNullException(nameof(addin));
18 | }
19 |
20 | #region Implementation of IExternalCommand
21 |
22 | public int Execute(string unparsed, ref string message)
23 | {
24 | try
25 | {
26 | var dialog = new PickPosition.FormPickPosition();
27 | dialog.Show();
28 | dialog.AttachAsTopLevelForm(_Addin, true);
29 | }
30 | catch (Exception ex)
31 | {
32 | FormHelper.ShowMessageBox(ex.ToString());
33 |
34 | Trace.WriteLine(ex.ToString());
35 | }
36 |
37 | return 0;
38 | }
39 |
40 | #endregion
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.3DXML/Toolset/CommandToolsetCreateProj.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.Windows.Forms;
4 | using Bimangle.ForgeEngine.Georeferncing;
5 | using Bimangle.ForgeEngine._3DXML.Config;
6 | using Bimangle.ForgeEngine._3DXML.Core;
7 | using Bimangle.ForgeEngine._3DXML.Utility;
8 |
9 | namespace Bimangle.ForgeEngine._3DXML.Toolset
10 | {
11 | class CommandToolsetCreateProj
12 | {
13 | public void Execute(Form parentForm, string inputFilePath)
14 | {
15 | try
16 | {
17 | var homePath = App.GetHomePath();
18 |
19 | var appConfig = AppConfigManager.Load();
20 | var localConfig = appConfig.Cesium3DTiles;
21 |
22 | var adapter = new GeoreferncingAdapter(inputFilePath, localConfig);
23 | var owner = parentForm;
24 | using (var host = GeoreferncingHost.Create(adapter, homePath))
25 | {
26 | GeoreferncingHelper.ShowProjCreateUI(owner, host);
27 | }
28 | }
29 | catch (Exception ex)
30 | {
31 | parentForm.ShowMessageBox(ex.ToString());
32 |
33 | Trace.WriteLine(ex.ToString());
34 | }
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks.Automation.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.28307.572
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Navisworks.Automation", "Bimangle.ForgeEngine.Navisworks.Automation\Bimangle.ForgeEngine.Navisworks.Automation.csproj", "{0906A065-74E3-482F-99B4-B6DADD947A4F}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {0906A065-74E3-482F-99B4-B6DADD947A4F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {0906A065-74E3-482F-99B4-B6DADD947A4F}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {0906A065-74E3-482F-99B4-B6DADD947A4F}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {0906A065-74E3-482F-99B4-B6DADD947A4F}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | GlobalSection(ExtensibilityGlobals) = postSolution
23 | SolutionGuid = {220C2CE2-25B6-424F-9651-4F299A9063D2}
24 | EndGlobalSection
25 | EndGlobal
26 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 | using Bimangle.ForgeEngine.Revit;
5 |
6 | // 有关程序集的一般信息由以下
7 | // 控制。更改这些特性值可修改
8 | // 与程序集关联的信息。
9 | [assembly: AssemblyTitle(VersionInfo.PRODUCT_NAME)]
10 | [assembly: AssemblyDescription("")]
11 | [assembly: AssemblyConfiguration("")]
12 | [assembly: AssemblyCompany(VersionInfo.COMPANY_NAME)]
13 | [assembly: AssemblyProduct(VersionInfo.PRODUCT_NAME)]
14 | [assembly: AssemblyCopyright(VersionInfo.COPYRIGHT)]
15 | [assembly: AssemblyTrademark("")]
16 | [assembly: AssemblyCulture("")]
17 |
18 | // 将 ComVisible 设置为 false 会使此程序集中的类型
19 | //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
20 | //请将此类型的 ComVisible 特性设置为 true。
21 | [assembly: ComVisible(false)]
22 |
23 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
24 | [assembly: Guid("63a8f657-00d3-42b1-a5a9-ca1504945037")]
25 |
26 | // 程序集的版本信息由下列四个值组成:
27 | //
28 | // 主版本
29 | // 次版本
30 | // 生成号
31 | // 修订号
32 | //
33 | // 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
34 | //通过使用 "*",如下所示:
35 | // [assembly: AssemblyVersion("1.0.*")]
36 | [assembly: AssemblyVersion("1.0.0.0")]
37 | [assembly: AssemblyFileVersion("1.0.0.0")]
38 |
39 | #if NET8_0_OR_GREATER
40 | [assembly: System.Runtime.Versioning.SupportedOSPlatform("windows")]
41 | #endif
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/Toolset/CommandToolsetCreateProj.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.Windows.Forms;
4 | using Bimangle.ForgeEngine.Georeferncing;
5 | using Bimangle.ForgeEngine.Navisworks.Config;
6 | using Bimangle.ForgeEngine.Navisworks.Core;
7 | using Bimangle.ForgeEngine.Navisworks.Utility;
8 |
9 | namespace Bimangle.ForgeEngine.Navisworks.Toolset
10 | {
11 | class CommandToolsetCreateProj
12 | {
13 | public void Execute(IWin32Window parentForm, string inputFilePath)
14 | {
15 | try
16 | {
17 | var homePath = VersionInfo.GetHomePath();
18 |
19 | var appConfig = AppConfigManager.Load();
20 | var localConfig = appConfig.Cesium3DTiles;
21 |
22 | var adapter = new GeoreferncingAdapter(localConfig);
23 | var owner = parentForm;
24 | using (var host = GeoreferncingHost.Create(adapter, homePath))
25 | {
26 | GeoreferncingHelper.ShowProjCreateUI(owner, host);
27 | }
28 | }
29 | catch (Exception ex)
30 | {
31 | parentForm.ShowMessageBox(ex.ToString());
32 |
33 | Trace.WriteLine(ex.ToString());
34 | }
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dwg/Toolset/CommandToolsetCreateProj.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.Windows.Forms;
4 | using Bimangle.ForgeEngine.Common.Utils;
5 | using Bimangle.ForgeEngine.Georeferncing;
6 | using Bimangle.ForgeEngine.Dwg.Config;
7 | using Bimangle.ForgeEngine.Dwg.Core;
8 | using Bimangle.ForgeEngine.Dwg.Utility;
9 |
10 | namespace Bimangle.ForgeEngine.Dwg.Toolset
11 | {
12 | class CommandToolsetCreateProj
13 | {
14 | public void Execute(Form parentForm, string inputFilePath)
15 | {
16 | try
17 | {
18 | var homePath = App.GetHomePath();
19 |
20 | var appConfig = AppConfigManager.Load();
21 | var localConfig = appConfig.Cesium3DTiles;
22 |
23 | var adapter = new GeoreferncingAdapter(inputFilePath, localConfig);
24 | var owner = parentForm;
25 | using (var host = GeoreferncingHost.Create(adapter, homePath))
26 | {
27 | GeoreferncingHelper.ShowProjCreateUI(owner, host);
28 | }
29 | }
30 | catch (Exception ex)
31 | {
32 | parentForm.ShowMessageBox(ex.ToString());
33 |
34 | Trace.WriteLine(ex.ToString());
35 | }
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Skp/Toolset/CommandToolsetCreateProj.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.Windows.Forms;
4 | using Bimangle.ForgeEngine.Common.Utils;
5 | using Bimangle.ForgeEngine.Georeferncing;
6 | using Bimangle.ForgeEngine.Skp.Config;
7 | using Bimangle.ForgeEngine.Skp.Core;
8 | using Bimangle.ForgeEngine.Skp.Utility;
9 |
10 | namespace Bimangle.ForgeEngine.Skp.Toolset
11 | {
12 | class CommandToolsetCreateProj
13 | {
14 | public void Execute(Form parentForm, string inputFilePath)
15 | {
16 | try
17 | {
18 | var homePath = App.GetHomePath();
19 |
20 | var appConfig = AppConfigManager.Load();
21 | var localConfig = appConfig.Cesium3DTiles;
22 |
23 | var adapter = new GeoreferncingAdapter(inputFilePath, localConfig);
24 | var owner = parentForm;
25 | using (var host = GeoreferncingHost.Create(adapter, homePath))
26 | {
27 | GeoreferncingHelper.ShowProjCreateUI(owner, host);
28 | }
29 | }
30 | catch (Exception ex)
31 | {
32 | parentForm.ShowMessageBox(ex.ToString());
33 |
34 | Trace.WriteLine(ex.ToString());
35 | }
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Skp/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // 有关程序集的一般信息由以下
6 | // 控制。更改这些特性值可修改
7 | // 与程序集关联的信息。
8 | #if EXPRESS
9 | [assembly: AssemblyTitle("Bimangle Engine Express (for Skp) CLI")]
10 | [assembly: AssemblyProduct("Bimangle Engine Express (for Skp)")]
11 | #else
12 | [assembly: AssemblyTitle("Bimangle Engine (for Skp) CLI")]
13 | [assembly: AssemblyProduct("Bimangle Engine (for Skp)")]
14 | #endif
15 | [assembly: AssemblyDescription("")]
16 | [assembly: AssemblyConfiguration("")]
17 | [assembly: AssemblyCompany("BimAngle")]
18 | [assembly: AssemblyCopyright("Copyright © BimAngle 2017-2025")]
19 | [assembly: AssemblyTrademark("")]
20 | [assembly: AssemblyCulture("")]
21 |
22 | // 将 ComVisible 设置为 false 会使此程序集中的类型
23 | //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
24 | //请将此类型的 ComVisible 特性设置为 true。
25 | [assembly: ComVisible(false)]
26 |
27 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
28 | [assembly: Guid("66dcafc7-1f24-4fb5-8f25-310c1ecbff17")]
29 |
30 | // 程序集的版本信息由下列四个值组成:
31 | //
32 | // 主版本
33 | // 次版本
34 | // 生成号
35 | // 修订号
36 | //
37 | //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
38 | //通过使用 "*",如下所示:
39 | // [assembly: AssemblyVersion("2021.5.8.1736")]
40 | [assembly: AssemblyVersion("2021.5.8.1736")]
41 | [assembly: AssemblyFileVersion("2021.5.8.1736")]
42 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.3DXML/Core/CancellationTokenSourceProxy.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Threading;
3 |
4 | namespace Bimangle.ForgeEngine._3DXML.Core
5 | {
6 | [Serializable]
7 | class CancellationTokenSourceProxy : MarshalByRefObject
8 | {
9 | private CancellationTokenSource _Source;
10 |
11 | public CancellationTokenSourceProxy(CancellationTokenSource source)
12 | {
13 | _Source = source;
14 | }
15 |
16 | public void Cancel()
17 | {
18 | _Source?.Cancel();
19 | }
20 |
21 | #region Overrides of MarshalByRefObject
22 |
23 | public override object InitializeLifetimeService()
24 | {
25 | var lease = (System.Runtime.Remoting.Lifetime.ILease)base.InitializeLifetimeService();
26 | // Normally, the initial lease time would be much longer.
27 | // It is shortened here for demonstration purposes.
28 | if (lease?.CurrentState == System.Runtime.Remoting.Lifetime.LeaseState.Initial)
29 | {
30 | lease.InitialLeaseTime = TimeSpan.FromSeconds(0);//这里改成0,则是无限期
31 | //lease.SponsorshipTimeout = TimeSpan.FromSeconds(10);
32 | //lease.RenewOnCallTime = TimeSpan.FromSeconds(2);
33 | }
34 | return lease;
35 | }
36 |
37 | #endregion
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.3DXML/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // 有关程序集的一般信息由以下
6 | // 控制。更改这些特性值可修改
7 | // 与程序集关联的信息。
8 | #if EXPRESS
9 | [assembly: AssemblyTitle("Bimangle Engine Express (for 3DXML) CLI")]
10 | [assembly: AssemblyProduct("Bimangle Engine Express (for 3DXML)")]
11 | #else
12 | [assembly: AssemblyTitle("Bimangle Engine (for 3DXML) CLI")]
13 | [assembly: AssemblyProduct("Bimangle Engine (for 3DXML)")]
14 | #endif
15 | [assembly: AssemblyDescription("")]
16 | [assembly: AssemblyConfiguration("")]
17 | [assembly: AssemblyCompany("BimAngle")]
18 | [assembly: AssemblyCopyright("Copyright © BimAngle 2017-2025")]
19 | [assembly: AssemblyTrademark("")]
20 | [assembly: AssemblyCulture("")]
21 |
22 | // 将 ComVisible 设置为 false 会使此程序集中的类型
23 | //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
24 | //请将此类型的 ComVisible 特性设置为 true。
25 | [assembly: ComVisible(false)]
26 |
27 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
28 | [assembly: Guid("ebe269bd-2dc3-410e-a525-e7e7ad97807c")]
29 |
30 | // 程序集的版本信息由下列四个值组成:
31 | //
32 | // 主版本
33 | // 次版本
34 | // 生成号
35 | // 修订号
36 | //
37 | // 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
38 | // 方法是按如下所示使用“*”: :
39 | // [assembly: AssemblyVersion("2022.7.23.1137")]
40 | [assembly: AssemblyVersion("2022.7.23.1137")]
41 | [assembly: AssemblyFileVersion("2022.7.23.1137")]
42 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dgn/Toolset/CommandToolsetCreateProj.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.Windows.Forms;
4 | using Bentley.MstnPlatformNET;
5 | using Bimangle.ForgeEngine.Dgn.Config;
6 | using Bimangle.ForgeEngine.Dgn.Core;
7 | using Bimangle.ForgeEngine.Dgn.Utility;
8 | using Bimangle.ForgeEngine.Georeferncing;
9 |
10 | namespace Bimangle.ForgeEngine.Dgn.Toolset
11 | {
12 | public class CommandToolsetCreateProj : IExternalCommand
13 | {
14 |
15 | #region Implementation of IExternalCommand
16 |
17 | public int Execute(string unparsed, ref string message)
18 | {
19 | try
20 | {
21 | var homePath = VersionInfo.GetHomePath();
22 |
23 | var appConfig = AppConfigManager.Load();
24 | var localConfig = appConfig.Cesium3DTiles;
25 |
26 | var adapter = new GeoreferncingAdapter(localConfig);
27 | Form owner = null;
28 | using (var host = GeoreferncingHost.Create(adapter, homePath))
29 | {
30 | GeoreferncingHelper.ShowProjCreateUI(owner, host);
31 | }
32 | }
33 | catch (Exception ex)
34 | {
35 | FormHelper.ShowMessageBox(ex.ToString());
36 |
37 | Trace.WriteLine(ex.ToString());
38 | }
39 |
40 | return 0;
41 | }
42 |
43 | #endregion
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/obj-Bimangle.ForgeEngine.Revit_R2025/Bimangle.ForgeEngine.Revit_R2025.csproj.nuget.g.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | True
5 | NuGet
6 | $(MSBuildThisFileDirectory)project.assets.json
7 | $(UserProfile)\.nuget\packages\
8 | C:\Users\kent\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages;C:\Program Files\dotnet\sdk\NuGetFallbackFolder
9 | PackageReference
10 | 6.14.1
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/obj-Bimangle.ForgeEngine.Revit_R2026/Bimangle.ForgeEngine.Revit_R2026.csproj.nuget.g.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | True
5 | NuGet
6 | $(MSBuildThisFileDirectory)project.assets.json
7 | $(UserProfile)\.nuget\packages\
8 | C:\Users\kent\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages;C:\Program Files\dotnet\sdk\NuGetFallbackFolder
9 | PackageReference
10 | 6.14.1
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.3DXML/Config/AppConfigSvf.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using Bimangle.ForgeEngine.Common.Formats.Svf._3DXML;
5 |
6 | namespace Bimangle.ForgeEngine._3DXML.Config
7 | {
8 | [Serializable]
9 | class AppConfigSvf
10 | {
11 | public string LastTargetPath { get; set; }
12 | public bool AutoOpenAllow { get; set; }
13 | public string AutoOpenAppName { get; set; }
14 | public string VisualStyle { get; set; }
15 | public int LevelOfDetail { get; set; }
16 | public List Features { get; set; }
17 |
18 | public AppConfigSvf()
19 | {
20 | LastTargetPath = string.Empty;
21 | AutoOpenAllow = true;
22 | AutoOpenAppName = null;
23 | VisualStyle = null;
24 | LevelOfDetail = -1;
25 | Features = new List
26 | {
27 | FeatureType.GenerateThumbnail,
28 | FeatureType.GenerateModelsDb,
29 | };
30 | }
31 |
32 | public AppConfigSvf Clone()
33 | {
34 | return new AppConfigSvf
35 | {
36 | LastTargetPath = LastTargetPath,
37 | AutoOpenAllow = AutoOpenAllow,
38 | AutoOpenAppName = AutoOpenAppName,
39 | VisualStyle = VisualStyle,
40 | LevelOfDetail = LevelOfDetail,
41 | Features = Features?.ToList() ?? new List()
42 | };
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.3DXML/Config/AppConfigGltf.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using FeatureType = Bimangle.ForgeEngine.Common.Formats.Gltf.FeatureType;
5 |
6 | namespace Bimangle.ForgeEngine._3DXML.Config
7 | {
8 | [Serializable]
9 | class AppConfigGltf
10 | {
11 | public string LastTargetPath { get; set; }
12 | public bool AutoOpenAllow { get; set; }
13 | public string AutoOpenAppName { get; set; }
14 | public string VisualStyle { get; set; }
15 | public int LevelOfDetail { get; set; }
16 | public List Features { get; set; }
17 |
18 | public AppConfigGltf()
19 | {
20 | LastTargetPath = string.Empty;
21 | AutoOpenAllow = false;
22 | AutoOpenAppName = null;
23 | VisualStyle = null;
24 | LevelOfDetail = 6; //默认为 6
25 | Features = new List
26 | {
27 | FeatureType.GenerateModelsDb,
28 | FeatureType.AllowRegroupNodes
29 | };
30 | }
31 |
32 | public AppConfigGltf Clone()
33 | {
34 | return new AppConfigGltf
35 | {
36 | LastTargetPath = LastTargetPath,
37 | AutoOpenAllow = AutoOpenAllow,
38 | AutoOpenAppName = AutoOpenAppName,
39 | VisualStyle = VisualStyle,
40 | LevelOfDetail = LevelOfDetail,
41 | Features = Features?.ToList() ?? new List()
42 | };
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Skp/Config/AppConfigSvf.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using Bimangle.ForgeEngine.Common.Formats.Svf.Skp;
5 |
6 | namespace Bimangle.ForgeEngine.Skp.Config
7 | {
8 | [Serializable]
9 | class AppConfigSvf
10 | {
11 | public string LastTargetPath { get; set; }
12 | public bool AutoOpenAllow { get; set; }
13 | public string AutoOpenAppName { get; set; }
14 | public string VisualStyle { get; set; }
15 | public int LevelOfDetail { get; set; }
16 | public List Features { get; set; }
17 |
18 | public AppConfigSvf()
19 | {
20 | LastTargetPath = string.Empty;
21 | AutoOpenAllow = true;
22 | AutoOpenAppName = null;
23 | VisualStyle = @"Auto";
24 | LevelOfDetail = -1;
25 | Features = new List
26 | {
27 | FeatureType.VisualStyleAuto,
28 | FeatureType.GenerateThumbnail,
29 | FeatureType.GenerateModelsDb,
30 | };
31 | }
32 |
33 | public AppConfigSvf Clone()
34 | {
35 | return new AppConfigSvf
36 | {
37 | LastTargetPath = LastTargetPath,
38 | AutoOpenAllow = AutoOpenAllow,
39 | AutoOpenAppName = AutoOpenAppName,
40 | VisualStyle = VisualStyle,
41 | LevelOfDetail = LevelOfDetail,
42 | Features = Features?.ToList() ?? new List()
43 | };
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Skp/Utility/AppHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 |
4 | namespace Bimangle.ForgeEngine.Skp.Utility
5 | {
6 | static class AppHelper
7 | {
8 | ///
9 | /// 确保文件夹路径存在
10 | ///
11 | ///
12 | public static void MakeSureFolderPathExists(string folderPath)
13 | {
14 | var targetFolderPath = Path.GetPathRoot(folderPath); //获得文件夹的根路径
15 | if (string.IsNullOrEmpty(targetFolderPath) == false)
16 | {
17 | folderPath = folderPath.Substring(targetFolderPath.Length); //获得文件夹路径中除了根路径剩余的部分
18 | }
19 |
20 | var segs = folderPath.Split(new[] { @"\", @"/" }, StringSplitOptions.None);
21 | for (var i = 0; i < segs.Length; i++)
22 | {
23 | var seg = segs[i];
24 | targetFolderPath = Path.Combine(targetFolderPath, seg);
25 | if (Directory.Exists(targetFolderPath) == false)
26 | {
27 | Directory.CreateDirectory(targetFolderPath);
28 | }
29 | }
30 | }
31 |
32 | ///
33 | /// 获得相对路径
34 | ///
35 | ///
36 | ///
37 | public static string GetPath(string relatePath)
38 | {
39 | var dllFolder = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
40 | return Path.Combine(dllFolder, relatePath);
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.3DXML/Utility/AppHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 |
4 | namespace Bimangle.ForgeEngine._3DXML.Utility
5 | {
6 | static class AppHelper
7 | {
8 | ///
9 | /// 确保文件夹路径存在
10 | ///
11 | ///
12 | public static void MakeSureFolderPathExists(string folderPath)
13 | {
14 | var targetFolderPath = Path.GetPathRoot(folderPath); //获得文件夹的根路径
15 | if (string.IsNullOrEmpty(targetFolderPath) == false)
16 | {
17 | folderPath = folderPath.Substring(targetFolderPath.Length); //获得文件夹路径中除了根路径剩余的部分
18 | }
19 |
20 | var segs = folderPath.Split(new[] { @"\", @"/" }, StringSplitOptions.None);
21 | for (var i = 0; i < segs.Length; i++)
22 | {
23 | var seg = segs[i];
24 | targetFolderPath = Path.Combine(targetFolderPath, seg);
25 | if (Directory.Exists(targetFolderPath) == false)
26 | {
27 | Directory.CreateDirectory(targetFolderPath);
28 | }
29 | }
30 | }
31 |
32 | ///
33 | /// 获得相对路径
34 | ///
35 | ///
36 | ///
37 | public static string GetPath(string relatePath)
38 | {
39 | var dllFolder = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
40 | return Path.Combine(dllFolder, relatePath);
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dgn/Config/AppConfigGltf.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using FeatureType = Bimangle.ForgeEngine.Common.Formats.Gltf.FeatureType;
5 |
6 | namespace Bimangle.ForgeEngine.Dgn.Config
7 | {
8 | [Serializable]
9 | class AppConfigGltf
10 | {
11 | public string LastTargetPath { get; set; }
12 | public bool AutoOpenAllow { get; set; }
13 | public string AutoOpenAppName { get; set; }
14 | public string VisualStyle { get; set; }
15 | public int LevelOfDetail { get; set; }
16 | public List Features { get; set; }
17 |
18 | public AppConfigGltf()
19 | {
20 | LastTargetPath = string.Empty;
21 | AutoOpenAllow = true;
22 | AutoOpenAppName = null;
23 | VisualStyle = @"Auto";
24 | LevelOfDetail = 6; //默认为 6
25 | Features = new List
26 | {
27 | FeatureType.VisualStyleAuto,
28 | FeatureType.GenerateModelsDb,
29 | FeatureType.AllowRegroupNodes
30 | };
31 | }
32 |
33 | public AppConfigGltf Clone()
34 | {
35 | return new AppConfigGltf
36 | {
37 | LastTargetPath = LastTargetPath,
38 | AutoOpenAllow = AutoOpenAllow,
39 | AutoOpenAppName = AutoOpenAppName,
40 | VisualStyle = VisualStyle,
41 | LevelOfDetail = LevelOfDetail,
42 | Features = Features?.ToList() ?? new List()
43 | };
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/Config/AppConfigGltf.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using FeatureType = Bimangle.ForgeEngine.Common.Formats.Gltf.FeatureType;
5 |
6 | namespace Bimangle.ForgeEngine.Revit.Config
7 | {
8 | [Serializable]
9 | class AppConfigGltf
10 | {
11 | public string LastTargetPath { get; set; }
12 | public bool AutoOpenAllow { get; set; }
13 | public string AutoOpenAppName { get; set; }
14 | public string VisualStyle { get; set; }
15 | public int LevelOfDetail { get; set; }
16 | public List Features { get; set; }
17 |
18 | public AppConfigGltf()
19 | {
20 | LastTargetPath = string.Empty;
21 | AutoOpenAllow = true;
22 | AutoOpenAppName = null;
23 | VisualStyle = @"Auto";
24 | LevelOfDetail = 6; //默认为 6
25 | Features = new List
26 | {
27 | FeatureType.VisualStyleAuto,
28 | FeatureType.GenerateModelsDb,
29 | FeatureType.AllowRegroupNodes
30 | };
31 | }
32 |
33 | public AppConfigGltf Clone()
34 | {
35 | return new AppConfigGltf
36 | {
37 | LastTargetPath = LastTargetPath,
38 | AutoOpenAllow = AutoOpenAllow,
39 | AutoOpenAppName = AutoOpenAppName,
40 | VisualStyle = VisualStyle,
41 | LevelOfDetail = LevelOfDetail,
42 | Features = Features?.ToList() ?? new List()
43 | };
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Skp/Config/AppConfigGltf.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using FeatureType = Bimangle.ForgeEngine.Common.Formats.Gltf.FeatureType;
5 |
6 | namespace Bimangle.ForgeEngine.Skp.Config
7 | {
8 | [Serializable]
9 | class AppConfigGltf
10 | {
11 | public string LastTargetPath { get; set; }
12 | public bool AutoOpenAllow { get; set; }
13 | public string AutoOpenAppName { get; set; }
14 | public string VisualStyle { get; set; }
15 | public int LevelOfDetail { get; set; }
16 | public List Features { get; set; }
17 |
18 | public AppConfigGltf()
19 | {
20 | LastTargetPath = string.Empty;
21 | AutoOpenAllow = true;
22 | AutoOpenAppName = null;
23 | VisualStyle = @"Auto";
24 | LevelOfDetail = 6; //默认为 6
25 | Features = new List
26 | {
27 | FeatureType.VisualStyleAuto,
28 | FeatureType.GenerateModelsDb,
29 | FeatureType.AllowRegroupNodes
30 | };
31 | }
32 |
33 | public AppConfigGltf Clone()
34 | {
35 | return new AppConfigGltf
36 | {
37 | LastTargetPath = LastTargetPath,
38 | AutoOpenAllow = AutoOpenAllow,
39 | AutoOpenAppName = AutoOpenAppName,
40 | VisualStyle = VisualStyle,
41 | LevelOfDetail = LevelOfDetail,
42 | Features = Features?.ToList() ?? new List()
43 | };
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dgn/Helpers/ProgressHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Drawing;
3 | using System.Windows.Forms;
4 | using Bimangle.ForgeEngine.Dgn.Helpers.Progress;
5 |
6 | namespace Bimangle.ForgeEngine.Dgn.Helpers
7 | {
8 | class ProgressHelper : IDisposable
9 | {
10 | private static ProgressHelper _Instance;
11 |
12 | public static void Close()
13 | {
14 | var obj = _Instance;
15 | if (obj != null)
16 | {
17 | obj.Dispose();
18 | }
19 | }
20 |
21 | private FormProgress _Form;
22 |
23 | public ProgressHelper(string title = null)
24 | {
25 | _Form = new FormProgress(title);
26 | _Form.StartPosition = FormStartPosition.CenterScreen;
27 | _Form.Show();
28 | _Form.Refresh();
29 |
30 | _Instance = this;
31 | }
32 |
33 | public ProgressHelper(Form owner, string title = null)
34 | {
35 | _Form = new FormProgress(title);
36 | _Form.StartPosition = FormStartPosition.CenterParent;
37 | _Form.Show(owner);
38 | _Form.Location = new Point(
39 | (owner.Width - _Form.Width)/2 + owner.Left,
40 | (owner.Height - _Form.Height)/2 + owner.Top);
41 | _Form.Refresh();
42 |
43 | _Instance = this;
44 | }
45 |
46 | public void Dispose()
47 | {
48 | if (_Form != null)
49 | {
50 | _Form.Close();
51 | _Form = null;
52 |
53 | _Instance = null;
54 | }
55 | }
56 | }
57 | }
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dgn/Config/AppConfigSvf.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using Bimangle.ForgeEngine.Common.Formats.Svf.Dgn;
5 |
6 | namespace Bimangle.ForgeEngine.Dgn.Config
7 | {
8 | [Serializable]
9 | class AppConfigSvf
10 | {
11 | public string LastTargetPath { get; set; }
12 | public bool AutoOpenAllow { get; set; }
13 | public string AutoOpenAppName { get; set; }
14 | public string VisualStyle { get; set; }
15 | public int LevelOfDetail { get; set; }
16 | public List Features { get; set; }
17 |
18 | public AppConfigSvf()
19 | {
20 | LastTargetPath = string.Empty;
21 | AutoOpenAllow = true;
22 | AutoOpenAppName = null;
23 | VisualStyle = @"Auto";
24 | LevelOfDetail = -1;
25 | Features = new List
26 | {
27 | FeatureType.VisualStyleAuto,
28 | FeatureType.GenerateThumbnail,
29 | FeatureType.GenerateModelsDb,
30 | FeatureType.ExportElementClassConstruction
31 | };
32 | }
33 |
34 | public AppConfigSvf Clone()
35 | {
36 | return new AppConfigSvf
37 | {
38 | LastTargetPath = LastTargetPath,
39 | AutoOpenAllow = AutoOpenAllow,
40 | AutoOpenAppName = AutoOpenAppName,
41 | VisualStyle = VisualStyle,
42 | LevelOfDetail = LevelOfDetail,
43 | Features = Features?.ToList() ?? new List()
44 | };
45 | }
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/Config/AppConfigSvf.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using Bimangle.ForgeEngine.Common.Formats.Svf.Revit;
5 |
6 | namespace Bimangle.ForgeEngine.Revit.Config
7 | {
8 | [Serializable]
9 | class AppConfigSvf
10 | {
11 | public string LastTargetPath { get; set; }
12 | public bool AutoOpenAllow { get; set; }
13 | public string AutoOpenAppName { get; set; }
14 | public string VisualStyle { get; set; }
15 | public int LevelOfDetail { get; set; }
16 | public List Features { get; set; }
17 |
18 | public AppConfigSvf()
19 | {
20 | LastTargetPath = string.Empty;
21 | AutoOpenAllow = true;
22 | AutoOpenAppName = null;
23 | VisualStyle = @"Auto";
24 | LevelOfDetail = -1;
25 | Features = new List
26 | {
27 | FeatureType.VisualStyleAuto,
28 | FeatureType.GenerateThumbnail,
29 | FeatureType.GenerateModelsDb,
30 | FeatureType.Export2DViewOnlySheet,
31 | FeatureType.Force2DViewUseWireframe
32 | };
33 | }
34 |
35 | public AppConfigSvf Clone()
36 | {
37 | return new AppConfigSvf
38 | {
39 | LastTargetPath = LastTargetPath,
40 | AutoOpenAllow = AutoOpenAllow,
41 | AutoOpenAppName = AutoOpenAppName,
42 | VisualStyle = VisualStyle,
43 | LevelOfDetail = LevelOfDetail,
44 | Features = Features?.ToList() ?? new List()
45 | };
46 | }
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/CommandExportGltf.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 | using System.Windows.Forms;
9 | using Autodesk.Revit.Attributes;
10 | using Autodesk.Revit.DB;
11 | using Autodesk.Revit.UI;
12 | using Bimangle.ForgeEngine.Revit.Core;
13 | using Bimangle.ForgeEngine.Revit.UI;
14 | using Newtonsoft.Json.Linq;
15 |
16 | namespace Bimangle.ForgeEngine.Revit
17 | {
18 | [Transaction(TransactionMode.Manual)]
19 | public class CommandExportGltf : IExternalCommand, IExternalCommandAvailability
20 | {
21 | private readonly IExternalCommand _Command;
22 |
23 | public CommandExportGltf()
24 | {
25 | _Command = new InnerCommandExportGltf();
26 | }
27 |
28 | #region IExternalCommand 成员
29 |
30 | Result IExternalCommand.Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
31 | {
32 | try
33 | {
34 | AppDomain.CurrentDomain.AssemblyResolve += App.OnAssemblyResolve;
35 |
36 | return _Command.Execute(commandData, ref message, elements);
37 | }
38 | finally
39 | {
40 | AppDomain.CurrentDomain.AssemblyResolve -= App.OnAssemblyResolve;
41 | }
42 | }
43 |
44 | #endregion
45 |
46 | #region IExternalCommandAvailability 成员
47 |
48 | bool IExternalCommandAvailability.IsCommandAvailable(UIApplication applicationData, CategorySet selectedCategories)
49 | {
50 | return true;
51 | }
52 |
53 | #endregion
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/Toolset/QuickPreview/CommandToolsetQuickPreview.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 | using System.Windows.Forms;
5 | using Autodesk.Revit.Attributes;
6 | using Autodesk.Revit.DB;
7 | using Autodesk.Revit.UI;
8 | using Bimangle.ForgeEngine.Revit.Core;
9 | using Bimangle.ForgeEngine.Revit.Utility;
10 | using RevitUI = Autodesk.Revit.UI;
11 |
12 | namespace Bimangle.ForgeEngine.Revit.Toolset.QuickPreview
13 | {
14 | [Transaction(TransactionMode.Manual)]
15 | public class CommandToolsetQuickPreview : IExternalCommand, IExternalCommandAvailability
16 | {
17 | #region Implementation of IExternalCommand
18 |
19 | Result IExternalCommand.Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
20 | {
21 | var previewAppPath = Path.Combine(
22 | VersionInfo.GetHomePath(),
23 | @"Tools",
24 | @"Browser",
25 | @"Bimangle.ForgeBrowser.exe"
26 | );
27 |
28 | try
29 | {
30 | Process.Start(previewAppPath);
31 | }
32 | catch (Exception ex)
33 | {
34 | RevitUI.TaskDialog.Show(@"Error", ex.ToString());
35 |
36 | Trace.WriteLine(ex.ToString());
37 | }
38 |
39 | return Result.Succeeded;
40 | }
41 |
42 | #endregion
43 |
44 | #region Implementation of IExternalCommandAvailability
45 |
46 | bool IExternalCommandAvailability.IsCommandAvailable(UIApplication applicationData, CategorySet selectedCategories)
47 | {
48 | return true;
49 | }
50 |
51 | #endregion
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/CommandExportSvfzip.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 | using System.Windows.Forms;
9 | using Autodesk.Revit.Attributes;
10 | using Autodesk.Revit.DB;
11 | using Autodesk.Revit.UI;
12 | using Bimangle.ForgeEngine.Revit.Core;
13 | using Bimangle.ForgeEngine.Revit.UI;
14 | using Newtonsoft.Json.Linq;
15 |
16 | namespace Bimangle.ForgeEngine.Revit
17 | {
18 | [Transaction(TransactionMode.Manual)]
19 | public class CommandExportSvfzip : IExternalCommand, IExternalCommandAvailability
20 | {
21 | private readonly IExternalCommand _Command;
22 |
23 | public CommandExportSvfzip()
24 | {
25 | _Command = new InnerCommandExportSvfzip();
26 | }
27 |
28 | #region IExternalCommand 成员
29 |
30 | Result IExternalCommand.Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
31 | {
32 | try
33 | {
34 | AppDomain.CurrentDomain.AssemblyResolve += App.OnAssemblyResolve;
35 |
36 | return _Command.Execute(commandData, ref message, elements);
37 | }
38 | finally
39 | {
40 | AppDomain.CurrentDomain.AssemblyResolve -= App.OnAssemblyResolve;
41 | }
42 | }
43 |
44 | #endregion
45 |
46 | #region IExternalCommandAvailability 成员
47 |
48 | bool IExternalCommandAvailability.IsCommandAvailable(UIApplication applicationData, CategorySet selectedCategories)
49 | {
50 | return true;
51 | }
52 |
53 | #endregion
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dgn/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 | False
27 |
28 |
29 | False
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/NugetCommands.txt:
--------------------------------------------------------------------------------
1 |
2 | # Run follow scripts within Package Manager Console, to ensure the "BimAngle Engine SDK" available.
3 | # Please ignore error messages in the execution of the script, as it is designed to do
4 |
5 | Uninstall-Package -Id Bimangle.ForgeEngine.Extension.Cesium3DTiles
6 | Uninstall-Package -Id Bimangle.ForgeEngine.Extension.Gltf
7 |
8 | Update-Package -Id Bimangle.ForgeEngine.Common -Project Bimangle.ForgeEngine.Georeferncing
9 |
10 | Update-Package -Id Bimangle.ForgeEngine.Revit2014 -Project Bimangle.ForgeEngine.Revit_R2014
11 | Update-Package -Id Bimangle.ForgeEngine.Revit2015 -Project Bimangle.ForgeEngine.Revit_R2015
12 | Update-Package -Id Bimangle.ForgeEngine.Revit2016 -Project Bimangle.ForgeEngine.Revit_R2016
13 | Update-Package -Id Bimangle.ForgeEngine.Revit2017 -Project Bimangle.ForgeEngine.Revit_R2017
14 | Update-Package -Id Bimangle.ForgeEngine.Revit2018 -Project Bimangle.ForgeEngine.Revit_R2018
15 | Update-Package -Id Bimangle.ForgeEngine.Revit2019 -Project Bimangle.ForgeEngine.Revit_R2019
16 | Update-Package -Id Bimangle.ForgeEngine.Revit2020 -Project Bimangle.ForgeEngine.Revit_R2020
17 | Update-Package -Id Bimangle.ForgeEngine.Revit2021 -Project Bimangle.ForgeEngine.Revit_R2021
18 | Update-Package -Id Bimangle.ForgeEngine.Revit2022 -Project Bimangle.ForgeEngine.Revit_R2022
19 | Update-Package -Id Bimangle.ForgeEngine.Revit2023 -Project Bimangle.ForgeEngine.Revit_R2023
20 | Update-Package -Id Bimangle.ForgeEngine.Revit2024 -Project Bimangle.ForgeEngine.Revit_R2024
21 | Update-Package -Id Bimangle.ForgeEngine.Revit2025 -Project Bimangle.ForgeEngine.Revit_R2025
22 | Update-Package -Id Bimangle.ForgeEngine.Revit2026 -Project Bimangle.ForgeEngine.Revit_R2026
23 |
24 | Update-Package -reinstall
25 |
26 | # You can rebuild now!
27 |
28 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/CommandExportCesium3DTiles.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 | using System.Windows.Forms;
9 | using Autodesk.Revit.Attributes;
10 | using Autodesk.Revit.DB;
11 | using Autodesk.Revit.UI;
12 | using Bimangle.ForgeEngine.Revit.Core;
13 | using Bimangle.ForgeEngine.Revit.UI;
14 | using Newtonsoft.Json.Linq;
15 |
16 | namespace Bimangle.ForgeEngine.Revit
17 | {
18 | [Transaction(TransactionMode.Manual)]
19 | public class CommandExportCesium3DTiles : IExternalCommand, IExternalCommandAvailability
20 | {
21 | private readonly IExternalCommand _Command;
22 |
23 | public CommandExportCesium3DTiles()
24 | {
25 | _Command = new InnerCommandExportCesium3DTiles();
26 | }
27 |
28 | #region IExternalCommand 成员
29 |
30 | Result IExternalCommand.Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
31 | {
32 | try
33 | {
34 | AppDomain.CurrentDomain.AssemblyResolve += App.OnAssemblyResolve;
35 |
36 | return _Command.Execute(commandData, ref message, elements);
37 | }
38 | finally
39 | {
40 | AppDomain.CurrentDomain.AssemblyResolve -= App.OnAssemblyResolve;
41 | }
42 | }
43 |
44 | #endregion
45 |
46 | #region IExternalCommandAvailability 成员
47 |
48 | bool IExternalCommandAvailability.IsCommandAvailable(UIApplication applicationData, CategorySet selectedCategories)
49 | {
50 | return true;
51 | }
52 |
53 | #endregion
54 |
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/NugetCommands.txt:
--------------------------------------------------------------------------------
1 |
2 | # Run follow scripts within Package Manager Console, to ensure the "BimAngle Engine SDK" available.
3 | # Please ignore error messages in the execution of the script, as it is designed to do
4 |
5 | Uninstall-Package -Id Bimangle.ForgeEngine.Extension.Cesium3DTiles
6 | Uninstall-Package -Id Bimangle.ForgeEngine.Extension.Gltf
7 |
8 | Update-Package -Id Bimangle.ForgeEngine.Common -Project Bimangle.ForgeEngine.Georeferncing
9 |
10 | Update-Package -Id Bimangle.ForgeEngine.Navisworks2014 -Project Bimangle.ForgeEngine.Nw_R2014
11 | Update-Package -Id Bimangle.ForgeEngine.Navisworks2015 -Project Bimangle.ForgeEngine.Nw_R2015
12 | Update-Package -Id Bimangle.ForgeEngine.Navisworks2016 -Project Bimangle.ForgeEngine.Nw_R2016
13 | Update-Package -Id Bimangle.ForgeEngine.Navisworks2017 -Project Bimangle.ForgeEngine.Nw_R2017
14 | Update-Package -Id Bimangle.ForgeEngine.Navisworks2018 -Project Bimangle.ForgeEngine.Nw_R2018
15 | Update-Package -Id Bimangle.ForgeEngine.Navisworks2019 -Project Bimangle.ForgeEngine.Nw_R2019
16 | Update-Package -Id Bimangle.ForgeEngine.Navisworks2020 -Project Bimangle.ForgeEngine.Nw_R2020
17 | Update-Package -Id Bimangle.ForgeEngine.Navisworks2021 -Project Bimangle.ForgeEngine.Nw_R2021
18 | Update-Package -Id Bimangle.ForgeEngine.Navisworks2022 -Project Bimangle.ForgeEngine.Nw_R2022
19 | Update-Package -Id Bimangle.ForgeEngine.Navisworks2023 -Project Bimangle.ForgeEngine.Nw_R2023
20 | Update-Package -Id Bimangle.ForgeEngine.Navisworks2024 -Project Bimangle.ForgeEngine.Nw_R2024
21 | Update-Package -Id Bimangle.ForgeEngine.Navisworks2025 -Project Bimangle.ForgeEngine.Nw_R2025
22 | Update-Package -Id Bimangle.ForgeEngine.Navisworks2026 -Project Bimangle.ForgeEngine.Nw_R2026
23 |
24 | Update-Package -reinstall
25 |
26 | # You can rebuild now!
27 |
28 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/Toolset/PickPositionFromMap/CommandToolsetPickPositionFromMap.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 | using System.Windows.Forms;
5 | using Autodesk.Revit.Attributes;
6 | using Autodesk.Revit.DB;
7 | using Autodesk.Revit.UI;
8 | using Bimangle.ForgeEngine.Revit.Core;
9 | using Bimangle.ForgeEngine.Revit.Utility;
10 | using RevitUI = Autodesk.Revit.UI;
11 |
12 | namespace Bimangle.ForgeEngine.Revit.Toolset.PickPositionFromMap
13 | {
14 | [Transaction(TransactionMode.Manual)]
15 | public class CommandToolsetPickPositionFromMap : IExternalCommand, IExternalCommandAvailability
16 | {
17 | #region Implementation of IExternalCommand
18 |
19 | Result IExternalCommand.Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
20 | {
21 | var previewAppPath = Path.Combine(
22 | VersionInfo.GetHomePath(),
23 | @"Tools",
24 | @"Browser",
25 | @"Bimangle.ForgeBrowser.exe"
26 | );
27 |
28 | try
29 | {
30 |
31 | Process.Start(previewAppPath, @"--PickPosition");
32 | }
33 | catch (Exception ex)
34 | {
35 | RevitUI.TaskDialog.Show(@"Error", ex.ToString());
36 |
37 | Trace.WriteLine(ex.ToString());
38 | }
39 |
40 | return Result.Succeeded;
41 | }
42 |
43 | #endregion
44 |
45 | #region Implementation of IExternalCommandAvailability
46 |
47 | bool IExternalCommandAvailability.IsCommandAvailable(UIApplication applicationData, CategorySet selectedCategories)
48 | {
49 | return true;
50 | }
51 |
52 | #endregion
53 |
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/Config/AppConfigSvf.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using Bimangle.ForgeEngine.Common.Formats.Svf.Navisworks;
5 |
6 | namespace Bimangle.ForgeEngine.Navisworks.Config
7 | {
8 | [Serializable]
9 | class AppConfigSvf
10 | {
11 | public string LastTargetPath { get; set; }
12 | public bool AutoOpenAllow { get; set; }
13 | public string AutoOpenAppName { get; set; }
14 | public string VisualStyle { get; set; }
15 | public int LevelOfDetail { get; set; }
16 | public bool LevelOfDetailAssigned { get; set; }
17 | public List Features { get; set; }
18 |
19 | public AppConfigSvf()
20 | {
21 | LastTargetPath = string.Empty;
22 | AutoOpenAllow = true;
23 | AutoOpenAppName = null;
24 | VisualStyle = @"Auto";
25 | LevelOfDetail = -1;
26 | LevelOfDetailAssigned = true;
27 | Features = new List
28 | {
29 | FeatureType.VisualStyleAuto,
30 | FeatureType.GenerateThumbnail,
31 | FeatureType.GenerateModelsDb
32 | };
33 | }
34 |
35 | public AppConfigSvf Clone()
36 | {
37 | return new AppConfigSvf
38 | {
39 | LastTargetPath = LastTargetPath,
40 | AutoOpenAllow = AutoOpenAllow,
41 | AutoOpenAppName = AutoOpenAppName,
42 | VisualStyle = VisualStyle,
43 | LevelOfDetail = LevelOfDetail,
44 | LevelOfDetailAssigned = LevelOfDetailAssigned,
45 | Features = Features?.ToList() ?? new List()
46 | };
47 | }
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/ForgeEngine.Samples.Dgn.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.28307.902
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Dgn", "Bimangle.ForgeEngine.Dgn\Bimangle.ForgeEngine.Dgn.csproj", "{868C736F-038B-4514-A54B-407E84F20DF7}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Georeferncing", "Bimangle.ForgeEngine.Georeferncing\Bimangle.ForgeEngine.Georeferncing.csproj", "{3C32B366-38A8-4943-95B2-09D6427A1E66}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {868C736F-038B-4514-A54B-407E84F20DF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {868C736F-038B-4514-A54B-407E84F20DF7}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {868C736F-038B-4514-A54B-407E84F20DF7}.Release|Any CPU.ActiveCfg = Release|Any CPU
19 | {868C736F-038B-4514-A54B-407E84F20DF7}.Release|Any CPU.Build.0 = Release|Any CPU
20 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.ActiveCfg = Release|Any CPU
23 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.Build.0 = Release|Any CPU
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {28D8D20B-1110-43D3-9E0E-70238E8D1E73}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/ForgeEngine.Samples.Skp.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.28307.1169
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Skp", "Bimangle.ForgeEngine.Skp\Bimangle.ForgeEngine.Skp.csproj", "{66DCAFC7-1F24-4FB5-8F25-310C1ECBFF17}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Georeferncing", "Bimangle.ForgeEngine.Georeferncing\Bimangle.ForgeEngine.Georeferncing.csproj", "{3C32B366-38A8-4943-95B2-09D6427A1E66}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {66DCAFC7-1F24-4FB5-8F25-310C1ECBFF17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {66DCAFC7-1F24-4FB5-8F25-310C1ECBFF17}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {66DCAFC7-1F24-4FB5-8F25-310C1ECBFF17}.Release|Any CPU.ActiveCfg = Release|Any CPU
19 | {66DCAFC7-1F24-4FB5-8F25-310C1ECBFF17}.Release|Any CPU.Build.0 = Release|Any CPU
20 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.ActiveCfg = Release|Any CPU
23 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.Build.0 = Release|Any CPU
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {01E7B77F-68DB-4C72-A5BC-55D2BAE090D7}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/Toolset/CheckEngineLogs/CommandToolsetCheckEngineLogs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 | using System.Windows.Forms;
5 | using Autodesk.Revit.Attributes;
6 | using Autodesk.Revit.DB;
7 | using Autodesk.Revit.UI;
8 | using Bimangle.ForgeEngine.Revit.Core;
9 | using Bimangle.ForgeEngine.Revit.Utility;
10 | using RevitUI = Autodesk.Revit.UI;
11 |
12 | namespace Bimangle.ForgeEngine.Revit.Toolset.CheckEngineLogs
13 | {
14 | [Transaction(TransactionMode.Manual)]
15 | public class CommandToolsetCheckEngineLogs : IExternalCommand, IExternalCommandAvailability
16 | {
17 | #region Implementation of IExternalCommand
18 |
19 | Result IExternalCommand.Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
20 | {
21 | try
22 | {
23 | var logsPath = Path.Combine(
24 | VersionInfo.GetHomePath(),
25 | @"Logs");
26 | if (Directory.Exists(logsPath) == false)
27 | {
28 | Directory.CreateDirectory(logsPath);
29 | }
30 | Process.Start(logsPath);
31 | }
32 | catch (Exception ex)
33 | {
34 | RevitUI.TaskDialog.Show(@"Error", ex.ToString());
35 |
36 | Trace.WriteLine(ex.ToString());
37 | }
38 |
39 | return Result.Succeeded;
40 | }
41 |
42 | #endregion
43 |
44 | #region Implementation of IExternalCommandAvailability
45 |
46 | bool IExternalCommandAvailability.IsCommandAvailable(UIApplication applicationData, CategorySet selectedCategories)
47 | {
48 | return true;
49 | }
50 |
51 | #endregion
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/ForgeEngine.Samples.3DXML.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.28307.2017
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.3DXML", "Bimangle.ForgeEngine.3DXML\Bimangle.ForgeEngine.3DXML.csproj", "{EBE269BD-2DC3-410E-A525-E7E7AD97807C}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Georeferncing", "Bimangle.ForgeEngine.Georeferncing\Bimangle.ForgeEngine.Georeferncing.csproj", "{3C32B366-38A8-4943-95B2-09D6427A1E66}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {EBE269BD-2DC3-410E-A525-E7E7AD97807C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {EBE269BD-2DC3-410E-A525-E7E7AD97807C}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {EBE269BD-2DC3-410E-A525-E7E7AD97807C}.Release|Any CPU.ActiveCfg = Release|Any CPU
19 | {EBE269BD-2DC3-410E-A525-E7E7AD97807C}.Release|Any CPU.Build.0 = Release|Any CPU
20 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.ActiveCfg = Release|Any CPU
23 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.Build.0 = Release|Any CPU
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {F436E0F8-833A-49D8-BBCF-2015DA42DC68}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/Config/AppConfigGltf.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using FeatureType = Bimangle.ForgeEngine.Common.Formats.Gltf.FeatureType;
5 |
6 | namespace Bimangle.ForgeEngine.Navisworks.Config
7 | {
8 | [Serializable]
9 | class AppConfigGltf
10 | {
11 | public string LastTargetPath { get; set; }
12 | public bool AutoOpenAllow { get; set; }
13 | public string AutoOpenAppName { get; set; }
14 | public string VisualStyle { get; set; }
15 | public int LevelOfDetail { get; set; }
16 | public bool LevelOfDetailAssigned { get; set; }
17 | public List Features { get; set; }
18 |
19 | public AppConfigGltf()
20 | {
21 | LastTargetPath = string.Empty;
22 | AutoOpenAllow = true;
23 | AutoOpenAppName = null;
24 | VisualStyle = @"Auto";
25 | LevelOfDetail = -1;
26 | LevelOfDetailAssigned = true;
27 | Features = new List
28 | {
29 | FeatureType.VisualStyleAuto,
30 | FeatureType.GenerateModelsDb,
31 | FeatureType.AllowRegroupNodes
32 | };
33 | }
34 |
35 | public AppConfigGltf Clone()
36 | {
37 | return new AppConfigGltf
38 | {
39 | LastTargetPath = LastTargetPath,
40 | AutoOpenAllow = AutoOpenAllow,
41 | AutoOpenAppName = AutoOpenAppName,
42 | VisualStyle = VisualStyle,
43 | LevelOfDetail = LevelOfDetail,
44 | LevelOfDetailAssigned = LevelOfDetailAssigned,
45 | Features = Features?.ToList() ?? new List()
46 | };
47 | }
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/ForgeEngine.Samples.Dwg.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 17
4 | VisualStudioVersion = 17.14.36408.4 d17.14
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Dwg", "Bimangle.ForgeEngine.Dwg\Bimangle.ForgeEngine.Dwg.csproj", "{C67DC1D3-5DC1-4D42-9A44-26472D3D2272}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Georeferncing", "Bimangle.ForgeEngine.Georeferncing\Bimangle.ForgeEngine.Georeferncing.csproj", "{3C32B366-38A8-4943-95B2-09D6427A1E66}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {C67DC1D3-5DC1-4D42-9A44-26472D3D2272}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {C67DC1D3-5DC1-4D42-9A44-26472D3D2272}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {C67DC1D3-5DC1-4D42-9A44-26472D3D2272}.Release|Any CPU.ActiveCfg = Release|Any CPU
19 | {C67DC1D3-5DC1-4D42-9A44-26472D3D2272}.Release|Any CPU.Build.0 = Release|Any CPU
20 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.ActiveCfg = Release|Any CPU
23 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.Build.0 = Release|Any CPU
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {6BDEA4A9-E86A-4BD0-825A-66A045895445}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/ForgeEngine.Samples.Revit2014.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.26430.16
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Revit_R2014", "Bimangle.ForgeEngine.Revit\Bimangle.ForgeEngine.Revit_R2014.csproj", "{9525695A-6022-4F52-8F4A-A37F7F8C681A}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Georeferncing", "Bimangle.ForgeEngine.Georeferncing\Bimangle.ForgeEngine.Georeferncing.csproj", "{3C32B366-38A8-4943-95B2-09D6427A1E66}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {9525695A-6022-4F52-8F4A-A37F7F8C681A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {9525695A-6022-4F52-8F4A-A37F7F8C681A}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {9525695A-6022-4F52-8F4A-A37F7F8C681A}.Release|Any CPU.ActiveCfg = Release|Any CPU
19 | {9525695A-6022-4F52-8F4A-A37F7F8C681A}.Release|Any CPU.Build.0 = Release|Any CPU
20 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.ActiveCfg = Release|Any CPU
23 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.Build.0 = Release|Any CPU
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {33636576-BAA8-4AF0-B22C-A115932A1720}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/ForgeEngine.Samples.Revit2015.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.26430.16
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Revit_R2015", "Bimangle.ForgeEngine.Revit\Bimangle.ForgeEngine.Revit_R2015.csproj", "{F8D812C1-E3A3-4773-9DEA-BAB36FF9DABA}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Georeferncing", "Bimangle.ForgeEngine.Georeferncing\Bimangle.ForgeEngine.Georeferncing.csproj", "{3C32B366-38A8-4943-95B2-09D6427A1E66}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {F8D812C1-E3A3-4773-9DEA-BAB36FF9DABA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {F8D812C1-E3A3-4773-9DEA-BAB36FF9DABA}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {F8D812C1-E3A3-4773-9DEA-BAB36FF9DABA}.Release|Any CPU.ActiveCfg = Release|Any CPU
19 | {F8D812C1-E3A3-4773-9DEA-BAB36FF9DABA}.Release|Any CPU.Build.0 = Release|Any CPU
20 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.ActiveCfg = Release|Any CPU
23 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.Build.0 = Release|Any CPU
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {F60B7457-FCDA-48D2-8A31-213C4E07B2FD}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/ForgeEngine.Samples.Revit2016.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.26430.16
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Revit_R2016", "Bimangle.ForgeEngine.Revit\Bimangle.ForgeEngine.Revit_R2016.csproj", "{5EA93FEE-CFB8-4CDB-8456-6821CD874DA1}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Georeferncing", "Bimangle.ForgeEngine.Georeferncing\Bimangle.ForgeEngine.Georeferncing.csproj", "{3C32B366-38A8-4943-95B2-09D6427A1E66}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {5EA93FEE-CFB8-4CDB-8456-6821CD874DA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {5EA93FEE-CFB8-4CDB-8456-6821CD874DA1}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {5EA93FEE-CFB8-4CDB-8456-6821CD874DA1}.Release|Any CPU.ActiveCfg = Release|Any CPU
19 | {5EA93FEE-CFB8-4CDB-8456-6821CD874DA1}.Release|Any CPU.Build.0 = Release|Any CPU
20 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.ActiveCfg = Release|Any CPU
23 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.Build.0 = Release|Any CPU
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {961E9CE8-F31B-4760-9B12-E10D71A78F32}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/ForgeEngine.Samples.Revit2017.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.26430.16
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Revit_R2017", "Bimangle.ForgeEngine.Revit\Bimangle.ForgeEngine.Revit_R2017.csproj", "{020A9CC2-CA61-4637-93BF-2087A1A9C90A}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Georeferncing", "Bimangle.ForgeEngine.Georeferncing\Bimangle.ForgeEngine.Georeferncing.csproj", "{3C32B366-38A8-4943-95B2-09D6427A1E66}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {020A9CC2-CA61-4637-93BF-2087A1A9C90A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {020A9CC2-CA61-4637-93BF-2087A1A9C90A}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {020A9CC2-CA61-4637-93BF-2087A1A9C90A}.Release|Any CPU.ActiveCfg = Release|Any CPU
19 | {020A9CC2-CA61-4637-93BF-2087A1A9C90A}.Release|Any CPU.Build.0 = Release|Any CPU
20 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.ActiveCfg = Release|Any CPU
23 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.Build.0 = Release|Any CPU
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {9534CB74-9DAC-4079-AAD4-655476CD66AE}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/ForgeEngine.Samples.Revit2018.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.26430.16
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Revit_R2018", "Bimangle.ForgeEngine.Revit\Bimangle.ForgeEngine.Revit_R2018.csproj", "{63A8F657-00D3-42B1-A5A9-CA1504945037}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Georeferncing", "Bimangle.ForgeEngine.Georeferncing\Bimangle.ForgeEngine.Georeferncing.csproj", "{3C32B366-38A8-4943-95B2-09D6427A1E66}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {63A8F657-00D3-42B1-A5A9-CA1504945037}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {63A8F657-00D3-42B1-A5A9-CA1504945037}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {63A8F657-00D3-42B1-A5A9-CA1504945037}.Release|Any CPU.ActiveCfg = Release|Any CPU
19 | {63A8F657-00D3-42B1-A5A9-CA1504945037}.Release|Any CPU.Build.0 = Release|Any CPU
20 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.ActiveCfg = Release|Any CPU
23 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.Build.0 = Release|Any CPU
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {0E49FED7-8F21-4DC8-AC6C-F4DAA1E48B7D}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/ForgeEngine.Samples.Revit2019.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.26430.16
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Revit_R2019", "Bimangle.ForgeEngine.Revit\Bimangle.ForgeEngine.Revit_R2019.csproj", "{6D32E0A6-B2A2-4149-B54C-16A7047878B2}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Georeferncing", "Bimangle.ForgeEngine.Georeferncing\Bimangle.ForgeEngine.Georeferncing.csproj", "{3C32B366-38A8-4943-95B2-09D6427A1E66}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {6D32E0A6-B2A2-4149-B54C-16A7047878B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {6D32E0A6-B2A2-4149-B54C-16A7047878B2}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {6D32E0A6-B2A2-4149-B54C-16A7047878B2}.Release|Any CPU.ActiveCfg = Release|Any CPU
19 | {6D32E0A6-B2A2-4149-B54C-16A7047878B2}.Release|Any CPU.Build.0 = Release|Any CPU
20 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.ActiveCfg = Release|Any CPU
23 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.Build.0 = Release|Any CPU
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {8110364C-B857-4EF1-B5FD-90781E400467}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/ForgeEngine.Samples.Revit2020.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.26430.16
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Revit_R2020", "Bimangle.ForgeEngine.Revit\Bimangle.ForgeEngine.Revit_R2020.csproj", "{7EC57A2A-0BB4-4C25-99D2-8D7AB07BA0F7}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Georeferncing", "Bimangle.ForgeEngine.Georeferncing\Bimangle.ForgeEngine.Georeferncing.csproj", "{3C32B366-38A8-4943-95B2-09D6427A1E66}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {7EC57A2A-0BB4-4C25-99D2-8D7AB07BA0F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {7EC57A2A-0BB4-4C25-99D2-8D7AB07BA0F7}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {7EC57A2A-0BB4-4C25-99D2-8D7AB07BA0F7}.Release|Any CPU.ActiveCfg = Release|Any CPU
19 | {7EC57A2A-0BB4-4C25-99D2-8D7AB07BA0F7}.Release|Any CPU.Build.0 = Release|Any CPU
20 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.ActiveCfg = Release|Any CPU
23 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.Build.0 = Release|Any CPU
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {924E58CE-DE23-42C3-B915-E861A93D26A1}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/ForgeEngine.Samples.Revit2021.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.26430.16
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Revit_R2021", "Bimangle.ForgeEngine.Revit\Bimangle.ForgeEngine.Revit_R2021.csproj", "{1A5D5798-1052-493C-9C25-971F662611F7}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Georeferncing", "Bimangle.ForgeEngine.Georeferncing\Bimangle.ForgeEngine.Georeferncing.csproj", "{3C32B366-38A8-4943-95B2-09D6427A1E66}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {1A5D5798-1052-493C-9C25-971F662611F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {1A5D5798-1052-493C-9C25-971F662611F7}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {1A5D5798-1052-493C-9C25-971F662611F7}.Release|Any CPU.ActiveCfg = Release|Any CPU
19 | {1A5D5798-1052-493C-9C25-971F662611F7}.Release|Any CPU.Build.0 = Release|Any CPU
20 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.ActiveCfg = Release|Any CPU
23 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.Build.0 = Release|Any CPU
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {6DAFC3D7-6FFA-41D4-8D84-337890EF2150}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/ForgeEngine.Samples.Revit2022.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.26430.16
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Revit_R2022", "Bimangle.ForgeEngine.Revit\Bimangle.ForgeEngine.Revit_R2022.csproj", "{EE3FBFEF-A851-4AE3-86C7-4892EB3A5603}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Georeferncing", "Bimangle.ForgeEngine.Georeferncing\Bimangle.ForgeEngine.Georeferncing.csproj", "{3C32B366-38A8-4943-95B2-09D6427A1E66}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {EE3FBFEF-A851-4AE3-86C7-4892EB3A5603}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {EE3FBFEF-A851-4AE3-86C7-4892EB3A5603}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {EE3FBFEF-A851-4AE3-86C7-4892EB3A5603}.Release|Any CPU.ActiveCfg = Release|Any CPU
19 | {EE3FBFEF-A851-4AE3-86C7-4892EB3A5603}.Release|Any CPU.Build.0 = Release|Any CPU
20 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.ActiveCfg = Release|Any CPU
23 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.Build.0 = Release|Any CPU
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {78D4EB77-C24D-4170-A317-4355FC18B371}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/ForgeEngine.Samples.Revit2023.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.26430.16
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Revit_R2023", "Bimangle.ForgeEngine.Revit\Bimangle.ForgeEngine.Revit_R2023.csproj", "{EE3FBFEF-A851-4AE3-86C7-4892EB3A5603}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Georeferncing", "Bimangle.ForgeEngine.Georeferncing\Bimangle.ForgeEngine.Georeferncing.csproj", "{3C32B366-38A8-4943-95B2-09D6427A1E66}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {EE3FBFEF-A851-4AE3-86C7-4892EB3A5603}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {EE3FBFEF-A851-4AE3-86C7-4892EB3A5603}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {EE3FBFEF-A851-4AE3-86C7-4892EB3A5603}.Release|Any CPU.ActiveCfg = Release|Any CPU
19 | {EE3FBFEF-A851-4AE3-86C7-4892EB3A5603}.Release|Any CPU.Build.0 = Release|Any CPU
20 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.ActiveCfg = Release|Any CPU
23 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.Build.0 = Release|Any CPU
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {78D4EB77-C24D-4170-A317-4355FC18B371}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/ForgeEngine.Samples.Revit2024.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.26430.16
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Georeferncing", "Bimangle.ForgeEngine.Georeferncing\Bimangle.ForgeEngine.Georeferncing.csproj", "{3C32B366-38A8-4943-95B2-09D6427A1E66}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Revit_R2024", "Bimangle.ForgeEngine.Revit\Bimangle.ForgeEngine.Revit_R2024.csproj", "{B85710EA-CAC0-414C-8DE2-20EE44A738E0}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.ActiveCfg = Release|Any CPU
19 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.Build.0 = Release|Any CPU
20 | {B85710EA-CAC0-414C-8DE2-20EE44A738E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {B85710EA-CAC0-414C-8DE2-20EE44A738E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {B85710EA-CAC0-414C-8DE2-20EE44A738E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
23 | {B85710EA-CAC0-414C-8DE2-20EE44A738E0}.Release|Any CPU.Build.0 = Release|Any CPU
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {78D4EB77-C24D-4170-A317-4355FC18B371}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/ForgeEngine.Samples.Revit2025_VS2022.sln:
--------------------------------------------------------------------------------
1 | Microsoft Visual Studio Solution File, Format Version 12.00
2 | # Visual Studio Version 17
3 | VisualStudioVersion = 17.9.34728.123
4 | MinimumVisualStudioVersion = 10.0.40219.1
5 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Georeferncing", "Bimangle.ForgeEngine.Georeferncing\Bimangle.ForgeEngine.Georeferncing.csproj", "{3C32B366-38A8-4943-95B2-09D6427A1E66}"
6 | EndProject
7 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bimangle.ForgeEngine.Revit_R2025", "Bimangle.ForgeEngine.Revit\Bimangle.ForgeEngine.Revit_R2025.csproj", "{93A082E0-4366-4D03-8958-7C2709A50A64}"
8 | EndProject
9 | Global
10 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
11 | Debug|Any CPU = Debug|Any CPU
12 | Release|Any CPU = Release|Any CPU
13 | EndGlobalSection
14 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
15 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
16 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.Build.0 = Debug|Any CPU
17 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.ActiveCfg = Release|Any CPU
18 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.Build.0 = Release|Any CPU
19 | {93A082E0-4366-4D03-8958-7C2709A50A64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
20 | {93A082E0-4366-4D03-8958-7C2709A50A64}.Debug|Any CPU.Build.0 = Debug|Any CPU
21 | {93A082E0-4366-4D03-8958-7C2709A50A64}.Release|Any CPU.ActiveCfg = Release|Any CPU
22 | {93A082E0-4366-4D03-8958-7C2709A50A64}.Release|Any CPU.Build.0 = Release|Any CPU
23 | EndGlobalSection
24 | GlobalSection(SolutionProperties) = preSolution
25 | HideSolutionNode = FALSE
26 | EndGlobalSection
27 | GlobalSection(ExtensibilityGlobals) = postSolution
28 | SolutionGuid = {661FB9C3-F8C1-401F-8B2C-0789A9EC6570}
29 | EndGlobalSection
30 | EndGlobal
31 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/Toolset/CheckRevitJournals/CommandToolsetCheckRevitJournals.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 | using System.Windows.Forms;
5 | using Autodesk.Revit.Attributes;
6 | using Autodesk.Revit.DB;
7 | using Autodesk.Revit.UI;
8 | using Bimangle.ForgeEngine.Revit.Core;
9 | using Bimangle.ForgeEngine.Revit.Utility;
10 | using RevitUI = Autodesk.Revit.UI;
11 |
12 | namespace Bimangle.ForgeEngine.Revit.Toolset.CheckRevitJournals
13 | {
14 | [Transaction(TransactionMode.Manual)]
15 | public class CommandToolsetCheckRevitJournals : IExternalCommand, IExternalCommandAvailability
16 | {
17 | #region Implementation of IExternalCommand
18 |
19 | Result IExternalCommand.Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
20 | {
21 | try
22 | {
23 | var journalsPath = Path.Combine(
24 | Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
25 | @"Autodesk",
26 | @"Revit",
27 | $@"Autodesk Revit {PackageInfo.REVIT_VERSION}",
28 | @"Journals");
29 | Process.Start(journalsPath);
30 | }
31 | catch (Exception ex)
32 | {
33 | RevitUI.TaskDialog.Show(@"Error", ex.ToString());
34 |
35 | Trace.WriteLine(ex.ToString());
36 | }
37 |
38 | return Result.Succeeded;
39 | }
40 |
41 | #endregion
42 |
43 | #region Implementation of IExternalCommandAvailability
44 |
45 | bool IExternalCommandAvailability.IsCommandAvailable(UIApplication applicationData, CategorySet selectedCategories)
46 | {
47 | return true;
48 | }
49 |
50 | #endregion
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dwg/Config/AppConfigSvf.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using Bimangle.ForgeEngine.Common.Formats.Svf.Dwg;
5 |
6 |
7 | namespace Bimangle.ForgeEngine.Dwg.Config
8 | {
9 | [Serializable]
10 | class AppConfigSvf
11 | {
12 | public string InputFilePath { get; set; }
13 | public string LastTargetPath { get; set; }
14 | public List Features { get; set; }
15 |
16 | public AppConfigSvf()
17 | {
18 | InputFilePath = string.Empty;
19 | LastTargetPath = string.Empty;
20 | Features = new List
21 | {
22 | FeatureType.ExportMode2D,
23 | FeatureType.IncludeUnplottableLayers,
24 | FeatureType.IncludeLayouts,
25 | FeatureType.GenerateThumbnail,
26 | FeatureType.GenerateModelsDb,
27 | FeatureType.OptimizationLineStyle,
28 | FeatureType.ForceRenderModeUseWireframe
29 | };
30 | }
31 |
32 | public AppConfigSvf Clone()
33 | {
34 | return new AppConfigSvf
35 | {
36 | InputFilePath = InputFilePath,
37 | LastTargetPath = LastTargetPath,
38 | Features = Features?.ToList() ?? new List()
39 | };
40 | }
41 |
42 | public IList GetFeatureStrings()
43 | {
44 | var featureStrings = new HashSet();
45 |
46 | if (Features != null && Features.Any())
47 | {
48 | foreach (var feature in Features)
49 | {
50 | featureStrings.Add(feature.ToString());
51 | }
52 | }
53 |
54 | return featureStrings.ToList();
55 | }
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.3DXML/Core/TranslateLog.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace Bimangle.ForgeEngine._3DXML.Core
10 | {
11 | class TranslateLog : IDisposable
12 | {
13 | public static TranslateLog Init(string filePath)
14 | {
15 | var stream = File.OpenWrite(filePath);
16 | return new TranslateLog(stream);
17 | }
18 |
19 | private FileStream _Stream;
20 | private CustomTraceListener _TraceListener;
21 |
22 | private TranslateLog(FileStream stream)
23 | {
24 | _Stream = stream;
25 | _TraceListener = new CustomTraceListener(Log);
26 | }
27 |
28 | public void Debug(string s)
29 | {
30 | Log(s);
31 | }
32 |
33 | public void Log(string s)
34 | {
35 | var log = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + @" " + s + "\r\n";
36 |
37 | if (_Stream != null)
38 | {
39 | var buffer = Encoding.UTF8.GetBytes(log);
40 | _Stream.Write(buffer, 0, buffer.Length);
41 | _Stream.Flush(true);
42 | }
43 | }
44 |
45 | public TraceListener GetTraceListener()
46 | {
47 | return _TraceListener;
48 | }
49 |
50 | #region IDisposable
51 |
52 | public void Dispose()
53 | {
54 | if (_Stream != null)
55 | {
56 | _Stream.Dispose();
57 | _Stream = null;
58 | }
59 |
60 | if (_TraceListener != null)
61 | {
62 | _TraceListener.Dispose();
63 | _TraceListener = null;
64 | }
65 | }
66 |
67 | #endregion
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## What is BimAngle Engine SDK?
2 |
3 | BimAngle Engine can export your model to other formats, such as **Autodesk Forge Viewer SVF/F2D**, **glTF/glb**, **Cesium 3D Tiles**, etc. No need to rely on other online services, can be run offline.
4 |
5 | BimAngle Engine has six versions so far, namely **RVT**, **NW** ,**DWG**, **DGN**, **SKP** and **3DXML**.
6 |
7 | #### BimAngle Engine RVT
8 | The runtime environment is **Autodesk Revit** addin, support Autodesk Revit 2014-2025.
9 |
10 | #### BimAngle Engine NW
11 | The runtime environment is **Autodesk Navisworks** addin, support Autodesk Navisworks Manager 2014-2025.
12 |
13 | #### BimAngle Engine DWG
14 | For *.dwg(AutoCAD drawing), no other software dependencies are required.
15 |
16 | #### BimAngle Engine DGN
17 | The runtime environment is **Bentley MicroStation CE** addin.
18 |
19 | #### BimAngle Engine SKP
20 | For *.skp(SketchUp model), no other software dependencies are required.
21 |
22 | #### BimAngle Engine 3DXML
23 | For *.3dxml, no other software dependencies are required.
24 |
25 | ## Quick start
26 |
27 | * Clone or download this repository
28 | * Depending on the version you choose, use **Visual Studio 2022** to open the corresponding solution file(*.sln)
29 | * Copy all nuget scripts from **NugetCommands.txt**, paste to VS2022 **(Menu)Tools** -> **NuGet Package Manager** -> **Package Manager Console**, and run these nuget scripts, this step will ensure the "BimAngle Engine SDK" available
30 | * Rebuild the solution
31 | * for BimAngle Engine **RVT**, run Revit and load model, you can find export button in toolbar.
32 | * for BimAngle Engine **NW**, run Navisworks and load model, you can find export button in toolbar.
33 | * for BimAngle Engine **DWG**, just run it
34 | * for BimAngle Engine **DGN**, run MicroStation CE and load model, you can find export button in toolbar.
35 | * for BimAngle Engine **SKP**, just run it
36 | * for BimAngle Engine **3DXML**, just run it
37 |
38 | ## How to purchase licenses?
39 | Please contact liuyongsheng@msn.com
40 |
41 |
42 |
--------------------------------------------------------------------------------
/Build/Build.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {BE444FBE-FEB6-4B39-B4F8-3ED376280F69}
8 | Library
9 | Build
10 | Build
11 | v4.5.2
12 | 512
13 | true
14 | true
15 |
16 |
17 | AnyCPU
18 | true
19 | full
20 | false
21 | bin\Debug\
22 | DEBUG;TRACE
23 | prompt
24 | 4
25 |
26 |
27 | AnyCPU
28 | pdbonly
29 | true
30 | bin\Release\
31 | TRACE
32 | prompt
33 | 4
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/Core/RuntimeLog.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 | using System.Text;
5 | using Bimangle.ForgeEngine.Common.Formats;
6 |
7 | namespace Bimangle.ForgeEngine.Navisworks.Core
8 | {
9 | class RuntimeLog : IRuntimeLog, IDisposable
10 | {
11 | private Stream _Stream;
12 | private bool _IsInit;
13 |
14 | public RuntimeLog()
15 | {
16 | _IsInit = false;
17 | }
18 |
19 | private void Init()
20 | {
21 | if (_Stream == null && _IsInit == false)
22 | {
23 | _IsInit = true;
24 | _Stream = OpenLogStream();
25 | }
26 | }
27 |
28 | private Stream OpenLogStream()
29 | {
30 | try
31 | {
32 | var logFolder = Path.Combine(VersionInfo.GetHomePath(), @"Logs");
33 | Common.Utils.FileSystemUtility.CreateDirectory(logFolder);
34 |
35 | var logFilePath = Path.Combine(logFolder, $@"{DateTime.Now:yyyy-MM-dd_HHmmss_fff}.log");
36 |
37 | return File.Open(logFilePath, FileMode.Create);
38 | }
39 | catch (Exception)
40 | {
41 | return null;
42 | }
43 | }
44 |
45 | public void Log(string type, string function, string message)
46 | {
47 | Init();
48 |
49 | var s = $"[{DateTime.Now:yyyy-MM-dd HH:mm.ss.fff}] {type} {function}\r\n{message}\r\n\r\n";
50 | if (_Stream == null)
51 | {
52 | Trace.WriteLine(s);
53 | }
54 | else
55 | {
56 | var bytes = Encoding.UTF8.GetBytes(s);
57 | _Stream.Write(bytes, 0, bytes.Length);
58 | }
59 | }
60 |
61 | void IDisposable.Dispose()
62 | {
63 | //Log(@"Info", @"(Internal)", @"End!");
64 |
65 | _Stream?.Dispose();
66 | _Stream = null;
67 | }
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks/Utility/AppHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Windows.Forms;
5 | using NwVector3D = Autodesk.Navisworks.Api.Vector3D;
6 |
7 | namespace Bimangle.ForgeEngine.Navisworks.Utility
8 | {
9 | static class AppHelper
10 | {
11 | ///
12 | /// 获得相对路径
13 | ///
14 | ///
15 | ///
16 | public static string GetPath(string relatePath)
17 | {
18 | var dllFolder = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
19 | return Path.Combine(dllFolder, relatePath);
20 | }
21 |
22 | public static void SetDirectionLetter(this Label lbl, NwVector3D v, string placeHolder)
23 | {
24 | var letter = GetDirectionLetter(v);
25 | lbl.Text = lbl.Text.Replace(placeHolder, letter);
26 | }
27 |
28 | private static bool IsEqual(this double source, double target, double error = 0.000001)
29 | {
30 | return Math.Abs(source - target) < error;
31 | }
32 |
33 | private static bool IsZero(this double n, double error = 0.000001)
34 | {
35 | return IsEqual(n, 0.0, error);
36 | }
37 |
38 | private static string GetDirectionLetter(this NwVector3D v)
39 | {
40 | if (IsZero(v.X) == false &&
41 | IsZero(v.Y) &&
42 | IsZero(v.Z))
43 | {
44 | return v.X >= 0 ? @"X" : @"-X";
45 | }
46 |
47 | if (IsZero(v.X) &&
48 | IsZero(v.Y) == false &&
49 | IsZero(v.Z))
50 | {
51 | return v.Y >= 0 ? @"Y" : @"-Y";
52 | }
53 |
54 | if (IsZero(v.X) &&
55 | IsZero(v.Y) &&
56 | IsZero(v.Z) == false)
57 | {
58 | return v.Z >= 0 ? @"Z" : @"-Z";
59 | }
60 |
61 | return @"*";
62 | }
63 |
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/ForgeEngine.Samples.Navisworks2026.sln:
--------------------------------------------------------------------------------
1 | Microsoft Visual Studio Solution File, Format Version 12.00
2 | # Visual Studio Version 17
3 | VisualStudioVersion = 17.9.34728.123
4 | MinimumVisualStudioVersion = 10.0.40219.1
5 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NW", "NW", "{EA2A53D5-A9D6-424A-9A8C-DF1519DC31B9}"
6 | EndProject
7 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Georeferncing", "Bimangle.ForgeEngine.Georeferncing\Bimangle.ForgeEngine.Georeferncing.csproj", "{3C32B366-38A8-4943-95B2-09D6427A1E66}"
8 | EndProject
9 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Nw_R2026", "Bimangle.ForgeEngine.Navisworks\Bimangle.ForgeEngine.Nw_R2026.csproj", "{B1A1B2B0-7594-4C27-8115-C18E200EFAA1}"
10 | EndProject
11 | Global
12 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
13 | Debug|Any CPU = Debug|Any CPU
14 | Release|Any CPU = Release|Any CPU
15 | EndGlobalSection
16 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
17 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
18 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.Build.0 = Debug|Any CPU
19 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.ActiveCfg = Release|Any CPU
20 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.Build.0 = Release|Any CPU
21 | {B1A1B2B0-7594-4C27-8115-C18E200EFAA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
22 | {B1A1B2B0-7594-4C27-8115-C18E200EFAA1}.Debug|Any CPU.Build.0 = Debug|Any CPU
23 | {B1A1B2B0-7594-4C27-8115-C18E200EFAA1}.Release|Any CPU.ActiveCfg = Release|Any CPU
24 | {B1A1B2B0-7594-4C27-8115-C18E200EFAA1}.Release|Any CPU.Build.0 = Release|Any CPU
25 | EndGlobalSection
26 | GlobalSection(SolutionProperties) = preSolution
27 | HideSolutionNode = FALSE
28 | EndGlobalSection
29 | GlobalSection(NestedProjects) = preSolution
30 | {B1A1B2B0-7594-4C27-8115-C18E200EFAA1} = {EA2A53D5-A9D6-424A-9A8C-DF1519DC31B9}
31 | EndGlobalSection
32 | GlobalSection(ExtensibilityGlobals) = postSolution
33 | SolutionGuid = {661FB9C3-F8C1-401F-8B2C-0789A9EC6570}
34 | EndGlobalSection
35 | EndGlobal
36 |
--------------------------------------------------------------------------------
/ForgeEngine.Samples.Revit2026_VS2022.sln:
--------------------------------------------------------------------------------
1 | Microsoft Visual Studio Solution File, Format Version 12.00
2 | # Visual Studio Version 17
3 | VisualStudioVersion = 17.9.34728.123
4 | MinimumVisualStudioVersion = 10.0.40219.1
5 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "RVT", "RVT", "{B39EF3C3-77DA-4FEE-B880-4B84FA2173A0}"
6 | EndProject
7 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Georeferncing", "Bimangle.ForgeEngine.Georeferncing\Bimangle.ForgeEngine.Georeferncing.csproj", "{3C32B366-38A8-4943-95B2-09D6427A1E66}"
8 | EndProject
9 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bimangle.ForgeEngine.Revit_R2026", "Bimangle.ForgeEngine.Revit\Bimangle.ForgeEngine.Revit_R2026.csproj", "{4EFE0171-33A2-BB71-7C0B-8B99BFEB4A3B}"
10 | EndProject
11 | Global
12 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
13 | Debug|Any CPU = Debug|Any CPU
14 | Release|Any CPU = Release|Any CPU
15 | EndGlobalSection
16 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
17 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
18 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Debug|Any CPU.Build.0 = Debug|Any CPU
19 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.ActiveCfg = Release|Any CPU
20 | {3C32B366-38A8-4943-95B2-09D6427A1E66}.Release|Any CPU.Build.0 = Release|Any CPU
21 | {4EFE0171-33A2-BB71-7C0B-8B99BFEB4A3B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
22 | {4EFE0171-33A2-BB71-7C0B-8B99BFEB4A3B}.Debug|Any CPU.Build.0 = Debug|Any CPU
23 | {4EFE0171-33A2-BB71-7C0B-8B99BFEB4A3B}.Release|Any CPU.ActiveCfg = Release|Any CPU
24 | {4EFE0171-33A2-BB71-7C0B-8B99BFEB4A3B}.Release|Any CPU.Build.0 = Release|Any CPU
25 | EndGlobalSection
26 | GlobalSection(SolutionProperties) = preSolution
27 | HideSolutionNode = FALSE
28 | EndGlobalSection
29 | GlobalSection(NestedProjects) = preSolution
30 | {4EFE0171-33A2-BB71-7C0B-8B99BFEB4A3B} = {B39EF3C3-77DA-4FEE-B880-4B84FA2173A0}
31 | EndGlobalSection
32 | GlobalSection(ExtensibilityGlobals) = postSolution
33 | SolutionGuid = {661FB9C3-F8C1-401F-8B2C-0789A9EC6570}
34 | EndGlobalSection
35 | EndGlobal
36 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Navisworks.Automation/Config/JobConfig.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Runtime.Serialization;
5 | using System.Text;
6 | using Newtonsoft.Json;
7 |
8 | namespace Bimangle.ForgeEngine.Navisworks.Config
9 | {
10 | [Serializable]
11 | [DataContract]
12 | class JobConfig
13 | {
14 | ///
15 | /// 目标数据格式
16 | ///
17 | [DataMember(EmitDefaultValue = false, Name = "format")]
18 | public string Format { get; set; }
19 |
20 | ///
21 | /// 转化模式
22 | ///
23 | ///
24 | /// 目前只对 Cesium 3D Tiles 格式有效
25 | ///
26 | [DataMember(EmitDefaultValue = false, Name = "mode")]
27 | public int Mode { get; set; }
28 |
29 | ///
30 | /// 输出目标文件夹路径
31 | ///
32 | [DataMember(EmitDefaultValue = false, Name = "outputPath")]
33 | public string OutputPath { get; set; }
34 |
35 | ///
36 | /// 输出选项
37 | ///
38 | [DataMember(EmitDefaultValue = false, Name = "outputOptions")]
39 | public List OutputOptions { get; set; }
40 |
41 | ///
42 | /// 加载任务配置
43 | ///
44 | ///
45 | ///
46 | public static JobConfig Load(string jobFilePath)
47 | {
48 | if (File.Exists(jobFilePath) == false) return null;
49 |
50 | var json = File.ReadAllText(jobFilePath, Encoding.UTF8);
51 | var jobConfig = JsonConvert.DeserializeObject(json);
52 | return jobConfig;
53 | }
54 |
55 | ///
56 | /// 保存任务配置
57 | ///
58 | ///
59 | public void Save(string jobFilePath)
60 | {
61 | var json = JsonConvert.SerializeObject(this, Formatting.Indented);
62 | File.WriteAllText(jobFilePath, json, Encoding.UTF8);
63 | }
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dgn/Utility/AssemblyResolver.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Reflection;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 |
10 | namespace Bimangle.ForgeEngine.Dgn.Utility
11 | {
12 | class AssemblyResolver : IDisposable
13 | {
14 | public static AssemblyResolver Use()
15 | {
16 | return new AssemblyResolver();
17 | }
18 |
19 | private AssemblyResolver()
20 | {
21 | AppDomain.CurrentDomain.AssemblyResolve += OnCurrentDomainAssemblyResolve;
22 | }
23 |
24 | #region IDisposable
25 |
26 | void IDisposable.Dispose()
27 | {
28 | AppDomain.CurrentDomain.AssemblyResolve -= OnCurrentDomainAssemblyResolve;
29 | }
30 |
31 | #endregion
32 |
33 | private static Assembly OnCurrentDomainAssemblyResolve(object sender, ResolveEventArgs args)
34 | {
35 | var mapping = new Dictionary
36 | {
37 | {"Newtonsoft.Json", "Newtonsoft.Json.dll"},
38 | {"Ionic.Zip", "Ionic.Zip.dll"},
39 | {"DotNetZip", "DotNetZip.dll"}
40 | };
41 |
42 | try
43 | {
44 | var folderPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
45 | if (folderPath == null) return null;
46 |
47 | foreach (var key in mapping.Keys)
48 | {
49 | if (args.Name.Contains(key))
50 | {
51 | var filePath = Path.Combine(folderPath, mapping[key]);
52 | if (File.Exists(filePath) == false) continue;
53 |
54 | return System.Reflection.Assembly.LoadFrom(filePath);
55 | }
56 | }
57 | }
58 | catch (Exception ex)
59 | {
60 | Trace.WriteLine(ex.ToString());
61 | }
62 |
63 | return null;
64 | }
65 |
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dwg/Helpers/ProgressHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Drawing;
3 | using System.Threading;
4 | using System.Windows.Forms;
5 | using Bimangle.ForgeEngine.Dwg.Helpers.Progress;
6 |
7 | namespace Bimangle.ForgeEngine.Dwg.Helpers
8 | {
9 | class ProgressHelper : IDisposable
10 | {
11 | private static ProgressHelper _Instance;
12 |
13 | public static void Close()
14 | {
15 | var obj = _Instance;
16 | if (obj != null)
17 | {
18 | obj.Dispose();
19 | }
20 | }
21 |
22 | private FormProgress _Form;
23 |
24 | public ProgressHelper(string title = null, int progressLimit = 100)
25 | {
26 | _Form = new FormProgress(title, progressLimit);
27 | _Form.StartPosition = FormStartPosition.CenterScreen;
28 | _Form.Show();
29 | _Form.Refresh();
30 |
31 | _Instance = this;
32 | }
33 |
34 | public ProgressHelper(Form owner, string title = null, int progressLimit = 100)
35 | {
36 | _Form = new FormProgress(title, progressLimit);
37 | _Form.StartPosition = FormStartPosition.CenterParent;
38 | _Form.Show(owner);
39 | _Form.Location = new Point(
40 | (owner.Width - _Form.Width)/2 + owner.Left,
41 | (owner.Height - _Form.Height)/2 + owner.Top);
42 | _Form.Refresh();
43 |
44 | _Instance = this;
45 | }
46 |
47 | public CancellationToken GetCancellationToken()
48 | {
49 | return _Form?.GetCancellationToken() ?? CancellationToken.None;
50 | }
51 |
52 | public Action GetProgressCallback()
53 | {
54 | if (_Form == null) return null;
55 |
56 | Action m = _Form.SetProgressValue;
57 | return m;
58 | }
59 |
60 | public void Dispose()
61 | {
62 | if (_Form != null)
63 | {
64 | _Form.Close();
65 | _Form = null;
66 |
67 | _Instance = null;
68 | }
69 | }
70 | }
71 | }
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Dwg/Utility/ProgressExHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Drawing;
3 | using System.Threading;
4 | using System.Windows.Forms;
5 | using Bimangle.ForgeEngine.Dwg.UI;
6 |
7 | namespace Bimangle.ForgeEngine.Dwg.Utility
8 | {
9 | class ProgressExHelper : IDisposable
10 | {
11 | private static ProgressExHelper _Instance;
12 |
13 | public static void Close()
14 | {
15 | var obj = _Instance;
16 | if (obj != null)
17 | {
18 | obj.Dispose();
19 | }
20 | }
21 |
22 | private FormProgressEx _Form;
23 |
24 | public ProgressExHelper(string title = null, int progressLimit = 100)
25 | {
26 | _Form = new FormProgressEx(title, progressLimit);
27 | _Form.StartPosition = FormStartPosition.CenterScreen;
28 | _Form.Show();
29 | _Form.Refresh();
30 |
31 | _Instance = this;
32 | }
33 |
34 | public ProgressExHelper(Form owner, string title = null, int progressLimit = 100)
35 | {
36 | _Form = new FormProgressEx(title, progressLimit);
37 | _Form.StartPosition = FormStartPosition.CenterParent;
38 | _Form.Show(owner);
39 | _Form.Location = new Point(
40 | (owner.Width - _Form.Width)/2 + owner.Left,
41 | (owner.Height - _Form.Height)/2 + owner.Top);
42 | _Form.Refresh();
43 |
44 | _Instance = this;
45 | }
46 |
47 | public CancellationToken GetCancellationToken()
48 | {
49 | return _Form?.GetCancellationToken() ?? CancellationToken.None;
50 | }
51 |
52 | public Action GetProgressCallback()
53 | {
54 | if (_Form == null) return null;
55 |
56 | Action m = _Form.SetProgressValue;
57 | return m;
58 | }
59 |
60 | public void Dispose()
61 | {
62 | if (_Form != null)
63 | {
64 | _Form.Close();
65 | _Form = null;
66 |
67 | _Instance = null;
68 | }
69 | }
70 | }
71 | }
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Skp/Utility/ProgressExHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Drawing;
3 | using System.Threading;
4 | using System.Windows.Forms;
5 | using Bimangle.ForgeEngine.Skp.UI;
6 |
7 | namespace Bimangle.ForgeEngine.Skp.Utility
8 | {
9 | class ProgressExHelper : IDisposable
10 | {
11 | private static ProgressExHelper _Instance;
12 |
13 | public static void Close()
14 | {
15 | var obj = _Instance;
16 | if (obj != null)
17 | {
18 | obj.Dispose();
19 | }
20 | }
21 |
22 | private FormProgressEx _Form;
23 |
24 | public ProgressExHelper(string title = null, int progressLimit = 100)
25 | {
26 | _Form = new FormProgressEx(title, progressLimit);
27 | _Form.StartPosition = FormStartPosition.CenterScreen;
28 | _Form.Show();
29 | _Form.Refresh();
30 |
31 | _Instance = this;
32 | }
33 |
34 | public ProgressExHelper(Form owner, string title = null, int progressLimit = 100)
35 | {
36 | _Form = new FormProgressEx(title, progressLimit);
37 | _Form.StartPosition = FormStartPosition.CenterParent;
38 | _Form.Show(owner);
39 | _Form.Location = new Point(
40 | (owner.Width - _Form.Width)/2 + owner.Left,
41 | (owner.Height - _Form.Height)/2 + owner.Top);
42 | _Form.Refresh();
43 |
44 | _Instance = this;
45 | }
46 |
47 | public CancellationToken GetCancellationToken()
48 | {
49 | return _Form?.GetCancellationToken() ?? CancellationToken.None;
50 | }
51 |
52 | public Action GetProgressCallback()
53 | {
54 | if (_Form == null) return null;
55 |
56 | Action m = _Form.SetProgressValue;
57 | return m;
58 | }
59 |
60 | public void Dispose()
61 | {
62 | if (_Form != null)
63 | {
64 | _Form.Close();
65 | _Form = null;
66 |
67 | _Instance = null;
68 | }
69 | }
70 | }
71 | }
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.Revit/Toolset/CreateProj/CommandToolsetCreateProj.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 | using System.Text;
5 | using System.Windows.Forms;
6 | using Autodesk.Revit.Attributes;
7 | using Autodesk.Revit.DB;
8 | using Autodesk.Revit.UI;
9 | using Bimangle.ForgeEngine.Georeferncing;
10 | using Bimangle.ForgeEngine.Revit.Config;
11 | using Bimangle.ForgeEngine.Revit.Core;
12 | using Bimangle.ForgeEngine.Revit.Utility;
13 | using RevitUI = Autodesk.Revit.UI;
14 |
15 | namespace Bimangle.ForgeEngine.Revit.Toolset.CreateProj
16 | {
17 | [Transaction(TransactionMode.Manual)]
18 | public class CommandToolsetCreateProj : IExternalCommand, IExternalCommandAvailability
19 | {
20 | #region Implementation of IExternalCommand
21 |
22 | Result IExternalCommand.Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
23 | {
24 | try
25 | {
26 | var document = commandData.View.Document;
27 | var homePath = VersionInfo.GetHomePath();
28 |
29 | var appConfig = AppConfigManager.Load();
30 | var localConfig = appConfig.Cesium3DTiles;
31 |
32 | var adapter = new GeoreferncingAdapter(document, localConfig);
33 | var owner = commandData.GetMainWindowHandle();
34 | using (var host = GeoreferncingHost.Create(adapter, homePath))
35 | {
36 | GeoreferncingHelper.ShowProjCreateUI(owner, host);
37 | }
38 | }
39 | catch (Exception ex)
40 | {
41 | RevitUI.TaskDialog.Show(@"Error", ex.ToString());
42 |
43 | Trace.WriteLine(ex.ToString());
44 | }
45 |
46 | return Result.Succeeded;
47 | }
48 |
49 | #endregion
50 |
51 | #region Implementation of IExternalCommandAvailability
52 |
53 | bool IExternalCommandAvailability.IsCommandAvailable(UIApplication applicationData, CategorySet selectedCategories)
54 | {
55 | return true;
56 | }
57 |
58 | #endregion
59 |
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/Bimangle.ForgeEngine.3DXML/Utility/ProgressExHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Drawing;
3 | using System.Threading;
4 | using System.Windows.Forms;
5 | using Bimangle.ForgeEngine._3DXML.UI;
6 |
7 | namespace Bimangle.ForgeEngine._3DXML.Utility
8 | {
9 | class ProgressExHelper : IDisposable
10 | {
11 | private static ProgressExHelper _Instance;
12 |
13 | public static void Close()
14 | {
15 | var obj = _Instance;
16 | if (obj != null)
17 | {
18 | obj.Dispose();
19 | }
20 | }
21 |
22 | private FormProgressEx _Form;
23 |
24 | public ProgressExHelper(string title = null, int progressLimit = 100)
25 | {
26 | _Form = new FormProgressEx(title, progressLimit);
27 | _Form.StartPosition = FormStartPosition.CenterScreen;
28 | _Form.Show();
29 | _Form.Refresh();
30 |
31 | _Instance = this;
32 | }
33 |
34 | public ProgressExHelper(Form owner, string title = null, int progressLimit = 100)
35 | {
36 | _Form = new FormProgressEx(title, progressLimit);
37 | _Form.StartPosition = FormStartPosition.CenterParent;
38 | _Form.Show(owner);
39 | _Form.Location = new Point(
40 | (owner.Width - _Form.Width)/2 + owner.Left,
41 | (owner.Height - _Form.Height)/2 + owner.Top);
42 | _Form.Refresh();
43 |
44 | _Instance = this;
45 | }
46 |
47 | public CancellationToken GetCancellationToken()
48 | {
49 | return _Form?.GetCancellationToken() ?? CancellationToken.None;
50 | }
51 |
52 | public Action GetProgressCallback()
53 | {
54 | if (_Form == null) return null;
55 |
56 | Action m = _Form.SetProgressValue;
57 | return m;
58 | }
59 |
60 | public void Dispose()
61 | {
62 | if (_Form != null)
63 | {
64 | _Form.Close();
65 | _Form = null;
66 |
67 | _Instance = null;
68 | }
69 | }
70 | }
71 | }
--------------------------------------------------------------------------------