Files
speckle-server/scratch/inspect_ifc.csx
T
huanld 6cd126af41
Release pipeline / Get version (push) Has been cancelled
Release pipeline / Get Chart Name (push) Has been cancelled
Release pipeline / tests (push) Has been cancelled
Release pipeline / builds (push) Has been cancelled
Release pipeline / builds-ghcr (push) Has been cancelled
Release pipeline / test-deployments (push) Has been cancelled
Release pipeline / deploy (push) Has been cancelled
Release pipeline / Helm chart oci (push) Has been cancelled
Release pipeline / npm (push) Has been cancelled
Release pipeline / snyk (push) Has been cancelled
feat: custom IFC converter with C++ geometry injection
- Add custom IFC converter using web-ifc C++ DLL for geometry extraction
- Add GeometryInjector.cs: patches Speckle objects with mesh geometry
- Add NativeIfcGeometry.cs: P/Invoke bindings to WebIfcDll
- Add CustomMeshConverterFactory.cs: custom Xbim mesh converter
- Configure fileimport-service dotnet IFC pipeline
- Add VPS deployment config (docker-compose-vps.yml)
- Add dev scripts: run_backend.bat, run_frontend.bat, start_dev.bat
- Update .gitignore: exclude scratch/IFC-toolkit, engine_web-ifc
- Memory optimization for Xbim (MemoryModel mode)
2026-04-16 06:46:41 +07:00

29 lines
1.5 KiB
C#

// Use .NET reflection to inspect the Speckle.Importers.Ifc.dll
// Run with: dotnet script inspect_ifc.csx
using System;
using System.Reflection;
using System.Linq;
var asm = Assembly.LoadFrom(@"D:\speckle-server\packages\fileimport-service\src\ifc-dotnet\bin\Release\net8.0\Speckle.Importers.Ifc.dll");
foreach (var type in asm.GetTypes().OrderBy(t => t.FullName))
{
if (type.FullName.Contains("IfcFactory") || type.FullName.Contains("Importer") || type.FullName.Contains("Geometry") || type.FullName.Contains("Mesh"))
{
Console.WriteLine($"\n=== {type.FullName} ===");
foreach (var method in type.GetMethods(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static | BindingFlags.DeclaredOnly))
{
var parms = string.Join(", ", method.GetParameters().Select(p => $"{p.ParameterType.Name} {p.Name}"));
Console.WriteLine($" {method.ReturnType.Name} {method.Name}({parms})");
}
foreach (var field in type.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static | BindingFlags.DeclaredOnly))
{
Console.WriteLine($" [field] {field.FieldType.Name} {field.Name}");
}
foreach (var prop in type.GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static | BindingFlags.DeclaredOnly))
{
Console.WriteLine($" [prop] {prop.PropertyType.Name} {prop.Name}");
}
}
}