Я использую следующий код C# для доступа к данным геометрии из файла ifc4. Файл содержит только стену, созданную с использованием Revit 2016. Я использую библиотеку Xbim. Это мой код:Ошибка Xbim Geometry
class Program
{
private static readonly ILog logger =
LogManager.GetLogger(typeof(Program));
static string _ifcFile = @"C:\Examples\OneWall.ifc";
static void Main(string[] args)
{
BasicConfigurator.Configure();
IfcStore model = IfcStore.Open(_ifcFile);
Xbim3DModelContext context = new Xbim3DModelContext(model);
context.CreateContext();
XbimMeshGeometry3D mesh = mesh = (XbimMeshGeometry3D)context.ShapeGeometryMeshOf(context.ShapeInstances().FirstOrDefault());
//The rest of my code
}
}
Я получаю следующее сообщение об ошибке. Я использую Visual Studio 2015.
1226 [1] DEBUG Xbim.Geometry.Engine.Interop.XbimCustomAssemblyResolver (нуль) - Загрузка сборки из C: \ Примеры \ ifcWall \ ifcWall \ Bin \ Debug \ x86 \ Xbim. Geometry.Engine32.dll 1404 [1] DEBUG Xbim.Geometry.Engine.Interop.XbimCustomAssemblyResolver (null) - Загрузка сборки из: C: \ Examples \ ifcWall \ ifcWall \ bin \ Debug \ x86 \ Xbim.Geometry.Engine32.dll
Необработанное исключение: System.Exception: Invalid Geometry Команда на Xbim.ModelGeometry.Scene.XbimMeshGeometry3D.Read (строковые данные, Nullable 1 trans) in c:\BuildAgent\work\860c3b913b6c647f\Xbim.ModelGeometry.Scene\XbimMeshGeometry3D.cs:line 219 at Xbim.ModelGeometry.Scene.XbimMeshGeometry3D.Add(String mesh, Int16 productTypeId, Int32 productLabel, Int32 geometryLabel, Nullable
1 преобразования, Int16 ModelID) в C: \ BuildAgent \ работа \ 860c3b913b6c647f \ Xbim.ModelGeometry .Scene \ XbimMeshGeometry3D.cs: строка 669 в Xbim.ModelGeometry.Scene.Xbim3DModelContext.ShapeGeometryMeshOf (XbimShapeInstance shapeInstance) в C: \ BuildAgent \ работы \ 860c3b913b6c647f \ Xbim.ModelGeometry.Scene \ Xbim3DModelContext.cs: линия 1525 на ifcWall.Program.Main (String [] арг) в C: \ Users \ karshenas \ Documents \ Courses \ CEEN6840 \ VS_Projects \ ifcWall \ ifcWall \ Program.cs: строка 26
Любая помощь в устранении ошибки приветствуется.
Пожалуйста, используйте кнопку * Post answer * только для получения фактических ответов. Когда у вас будет [достаточно репутации] (https://stackoverflow.com/help/privileges/comment), вы сможете добавлять комментарии к вопросу. –
Отредактирован ответ, чтобы предоставить актуальное решение. –