Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IFC 4x3 integration (including .NET6 port) #196

Open
wants to merge 24 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 7 commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
5a5cbed
First pass ifc4x3 implementation.
andyward Jan 2, 2023
857eb50
WIP upgrade to .net6.0 and latest netcore geometry
andyward Jan 2, 2023
8e1e8d9
Integrated Essentials fix to allow 4x3 geometry to be created
andyward Jan 2, 2023
b72b46f
Fixed up Tests, Winforms and Plugin projects
andyward Jan 2, 2023
024213f
Added x86 as a target to support use on ARM64 until we get native sup…
andyward Jan 3, 2023
13fa45c
Updated latest netcore GE-6.1.552
andyward Jan 4, 2023
6937bbd
Show affected entity ID in logs
andyward Jan 5, 2023
da0c573
Plugins system ported to net standard approach
andyward Jan 15, 2023
49c6013
Build on PRs
andyward Jan 16, 2023
7ba1d84
Updated to latest DI / XbimServices & Logging
andyward Feb 21, 2023
884bb17
Updated latest GE from feature/netcore
andyward Mar 3, 2023
bd20d11
Updated geometry engine
SteveLockley Mar 27, 2023
88cc8be
Updated latest GE
andyward Apr 12, 2023
37b7951
Updated 3rd party dependencies
andyward Apr 12, 2023
9385bbe
Updated latest Geometry
andyward Sep 1, 2023
60967e2
Update to latest v6 GE
andyward Dec 5, 2023
d5bbf2f
Updated latest dependencies (net6)
andyward Dec 5, 2023
6a2ee1c
Updated main app to .NET 8
andyward Dec 5, 2023
157a684
Removed dependency on deprecated DotNetZip - use .net built in Compre…
andyward Dec 9, 2024
36f70bc
Updated latest netcore GE
andyward Dec 9, 2024
20ca8b2
Updated BCF addin to .net8
andyward Dec 9, 2024
3147bcc
Updated dependencies
andyward Dec 9, 2024
a5bf0cc
Fix Typo in Measures
andyward Dec 11, 2024
7dbe13f
Updated to latest GE with IFC4x3 linear placement, geometries etc.
andyward Dec 16, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
</PropertyGroup>

<PropertyGroup>
<Version>5.1.0.0</Version>
<Version>6.0.0.0</Version>
<Copyright>Copyright © XBIM Ltd</Copyright>
<Company>Xbim Ltd.</Company>
<Authors>Steve Lockley, Martin Cerny and XBIMTeam Contributors</Authors>
Expand All @@ -17,14 +17,14 @@
<PackageProjectUrl>https://github.com/xBimTeam/XbimWindowsUI</PackageProjectUrl>
<PackageIconUrl>https://avatars1.githubusercontent.com/u/2284875?v=3&amp;amp;s=240</PackageIconUrl>
<PackageReleaseNotes>
Now built on XBIM v5. Migrated from log4net to Microsoft.Extensions.Logging.
Now built on XBIM v6 to support netCore and IFC4x3
</PackageReleaseNotes>
<PackageTags>BIM, IFC, IfcXml, IfcZip, Ifc4, COBie, BuildingSmart</PackageTags>
<RepositoryUrl>https://github.com/xBimTeam/XbimWindowsUI/tree/master</RepositoryUrl>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<SuppressNETCoreSdkPreviewMessage>true</SuppressNETCoreSdkPreviewMessage>
<SignAssembly>true</SignAssembly>
<SignAssembly>false</SignAssembly>
<AssemblyOriginatorKeyFile>..\XbimOpenSourceKeyFile.snk</AssemblyOriginatorKeyFile>
<DelaySign>false</DelaySign>
</PropertyGroup>
Expand Down
16 changes: 5 additions & 11 deletions Tests/Tests.csproj
Original file line number Diff line number Diff line change
@@ -1,21 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net472</TargetFrameworks>
<TargetFrameworks>net6.0-windows</TargetFrameworks>
<Title>Xbim Presentation Tests</Title>
<Description>Unit Tests for Xbim.Presentation</Description>
<Platforms>AnyCPU;x86</Platforms>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.1.1" />
<PackageReference Include="MSTest.TestAdapter" Version="1.4.0" />
<PackageReference Include="MSTest.TestFramework" Version="1.4.0" />
</ItemGroup>
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xaml" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
<PackageReference Include="MSTest.TestAdapter" Version="3.0.2" />
<PackageReference Include="MSTest.TestFramework" Version="3.0.2" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Xbim.Presentation\Xbim.Presentation.csproj" />
Expand Down
19 changes: 13 additions & 6 deletions Xbim.Presentation/DrawingControl3D.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -231,9 +231,12 @@ protected void ClipPlaneHandlesHide()
{
typeof(Ifc2x3.ProductExtension.IfcSpace),
typeof(Ifc4.ProductExtension.IfcSpace),
typeof(Ifc2x3.ProductExtension.IfcFeatureElement),
typeof(Ifc4.ProductExtension.IfcFeatureElement)
};
typeof(Ifc4x3.ProductExtension.IfcSpace),

typeof(Ifc2x3.ProductExtension.IfcFeatureElement),
typeof(Ifc4.ProductExtension.IfcFeatureElement),
typeof(Ifc4x3.ProductExtension.IfcFeatureElement)
};

/// <summary>
/// The list of types that the engine will not consider in the generation of the scene, the exclusion code needs to be correctly implemented in the
Expand Down Expand Up @@ -1360,10 +1363,14 @@ private void ClearGraphics(ModelRefreshOptions options = ModelRefreshOptions.Non
Materials.Clear();
OriginalOpacities.Clear();

Opaques.Children.Clear();
Transparents.Children.Clear();
if(Opaques != null)
Opaques.Children.Clear();
if(Transparents != null)
Transparents.Children.Clear();
if(Extras != null)
Extras.Children.Clear();
Overlays.Children.Clear();
if(Overlays != null)
Overlays.Children.Clear();

if (!options.HasFlag(ModelRefreshOptions.ViewPreserveSelection))
{
Expand Down
2 changes: 1 addition & 1 deletion Xbim.Presentation/DynamicProductSelectionControl.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ private void btnPerform_Click(object sender, RoutedEventArgs e)
compilerParams.ReferencedAssemblies.Add("System.Xml.dll");
compilerParams.ReferencedAssemblies.Add("System.Xml.Linq.dll");
compilerParams.ReferencedAssemblies.Add("Xbim.Common.dll");
compilerParams.ReferencedAssemblies.Add("Xbim.Ifc2x3.dll");
compilerParams.ReferencedAssemblies.Add("Xbim.Ifc2x3.dll"); // TODO: handle newer schemas
compilerParams.ReferencedAssemblies.Add("Xbim.IO.dll");
compilerParams.ReferencedAssemblies.Add("Xbim.Ifc.Extensions.dll");

Expand Down
4 changes: 2 additions & 2 deletions Xbim.Presentation/Extensions/ObservableMeshVisual3D.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using System.ComponentModel;
using HelixToolkit.Wpf;
using System.ComponentModel;
using System.Windows.Media.Media3D;
using HelixToolkit.Wpf;
using Xbim.Presentation.Extensions.Utility;

namespace Xbim.Presentation.Extensions
Expand Down
7 changes: 6 additions & 1 deletion Xbim.Presentation/FederatedModel/FederatedModelViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,12 @@ public string Project
var x4 = project as Ifc4.Kernel.IfcProject;
x4.Name = value;
}

else if (project is Ifc4x3.Kernel.IfcProject)
{
var x4 = project as Ifc4.Kernel.IfcProject;
x4.Name = value;
}

txn.Commit();
}
OnPropertyChanged("Project");
Expand Down
2 changes: 1 addition & 1 deletion Xbim.Presentation/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
[assembly: Guid("603a1283-949b-4733-bb77-0c622e46346d")]

[assembly: XmlnsDefinition("http://schemas.Xbim.com/Presentation", "Xbim.Presentation")]
[assembly: InternalsVisibleTo("Tests, PublicKey=002400000480000094000000060200000024000052534131000400000100010029a3c6da60efcb3ebe48c3ce14a169b5fa08ffbf5f276392ffb2006a9a2d596f5929cf0e68568d14ac7cbe334440ca0b182be7fa6896d2a73036f24bca081b2427a8dec5689a97f3d62547acd5d471ee9f379540f338bbb0ae6a165b44b1ae34405624baa4388404bce6d3e30de128cec379147af363ce9c5845f4f92d405ed0")]
[assembly: InternalsVisibleTo("Tests")]

[assembly: ThemeInfo(
ResourceDictionaryLocation.None,
Expand Down
38 changes: 19 additions & 19 deletions Xbim.Presentation/Properties/Resources.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion Xbim.Presentation/Properties/Resources.de.Designer.cs

This file was deleted.

2 changes: 1 addition & 1 deletion Xbim.Presentation/Themes/Generic.xaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Xbim.Presentation"
xmlns:helixToolkit="clr-namespace:HelixToolkit.Wpf;assembly=HelixToolkit.Wpf"
xmlns:helixToolkit="clr-namespace:HelixToolkit.Wpf;assembly=HelixToolkit.Core.Wpf"
xmlns:extensions="clr-namespace:Xbim.Presentation.Extensions">
<Style x:Key="{x:Type local:DrawingControl3D}" TargetType="{x:Type local:DrawingControl3D}">
<Setter Property="Template">
Expand Down
51 changes: 15 additions & 36 deletions Xbim.Presentation/Xbim.Presentation.csproj
Original file line number Diff line number Diff line change
@@ -1,67 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<LanguageTargets>$(MSBuildToolsPath)\Microsoft.CSharp.targets</LanguageTargets>
<TargetFrameworks>net472</TargetFrameworks>
<TargetFrameworks>net6.0-windows</TargetFrameworks>
<Title>Xbim.Presentation</Title>
<Description>Xbim.WindowsUI is a library containing a set of Windows Forms and WPF controls that can be used to build Windows Xaml
or forms-based applications, which can display the 3D geometry and semantic data in IFC building models.</Description>
<PackageId>Xbim.WindowsUI</PackageId>
<PackageReleaseNotes>Now built on XBIM v5. Migrated from log4net to Microsoft.Extensions.Logging.</PackageReleaseNotes>
<PackageReleaseNotes>Now built on XBIM v6.</PackageReleaseNotes>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
<Version>5.1.0.0</Version>
<Version>6.0.0.0-develop</Version>
<PackageIcon>XbimIcon.png</PackageIcon>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net472|AnyCPU'">
<OutputPath>..\Output\Debug\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net472|AnyCPU'">
<OutputPath>..\Output\Release</OutputPath>
<UseWPF>true</UseWPF>
<Platforms>AnyCPU;x86</Platforms>
</PropertyGroup>
<ItemGroup>
<Compile Update="Properties\Resources.de.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>Resources.de.resx</DependentUpon>
</Compile>
<Compile Update="Properties\Resources.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Update="Settings.Designer.cs" AutoGen="True" DependentUpon="Settings.settings" />
<None Update="Settings.settings" LastGenOutput="Settings.Designer.cs" Generator="SettingsSingleFileGenerator" />
<None Include="..\XbimIcon.png">
<Pack>True</Pack>
<PackagePath></PackagePath>
</None>
<Page Include="**\*.xaml" SubType="Designer" Generator="MSBuild:Compile" Exclude="App.xaml" />
<Compile Update="**\*.xaml.cs" SubType="Designer" DependentUpon="%(Filename)" />
<Resource Include="assets\*.*" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="HelixToolkit.Wpf" Version="2.14.0" />
<PackageReference Include="HelixToolkit.Core.Wpf" Version="2.23.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="6.0.3" />
<PackageReference Include="PropertyTools.Wpf.DeploymentClone" Version="0.0.1" />
<PackageReference Include="Xbim.Geometry" Version="5.1.443-develop" />
</ItemGroup>
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xaml" />
<Reference Include="WindowsBase" />
<PackageReference Include="Xbim.Essentials" Version="5.9.376-develop" />
<PackageReference Include="Xbim.Geometry" Version="6.1.558-netcore" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Properties\Resources.de.resx">
<Generator>ResXFileCodeGenerator</Generator>
<Generator>PublicResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.de.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Update="Properties\Resources.resx">
<Generator>PublicResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<Compile Update="Properties\Resources.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
</ItemGroup>
</Project>
Loading