You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Xbim生成的IFC文件在Navisworks中导入报错求助

问题:Xbim生成的IFC文件无法在Autodesk Navisworks中打开

错误信息

通用错误:文件中未找到IfcProjects,终止导入。
通用错误:读取IFC文件出错:处理引用时出错,终止导入。
通用错误:处理引用时出错

生成项目的代码

var model = IfcStore.Create(editor, XbimSchemaVersion.Ifc4, XbimStoreType.InMemoryModel);

using (var txn = model.BeginTransaction("project"))
{
    //create a project
    var project = model.Instances.New<IfcProject>();
    //set the units to SI (mm and metres)
    project.Initialize(ProjectUnits.SIUnitsUK);
    project.Name = "ICF Model.nwc";
    
    txn.Commit();
}

生成的IFC文件内容

ISO-10303-21;
HEADER;
FILE_DESCRIPTION ((''), '2;1');
FILE_NAME ('', '2022-08-12T13:45:00', (''), (''), 'Processor version 5.1.0.0', 'Xbim.IO.MemoryModel', '');
FILE_SCHEMA (('IFC4'));
ENDSEC;
DATA;
#1=IFCPROJECT('0t5Z7nthP2Pv$ovjzne6D$',#2,'ICF Model.nwc',$,$,$,$,(#19,#22),#7);
#2=IFCOWNERHISTORY(#5,#6,$,.ADDED.,1660311931,$,$,0);
#3=IFCPERSON($,'Sush','Sush',$,$,$,$,$);
#4=IFCORGANIZATION($,'xyz Pvt Ltd',$,$,$);
#5=IFCPERSONANDORGANIZATION(#3,#4,$);
#6=IFCAPPLICATION(#4,'1.0','IFC creator','B14F5359 - B769 - 4B8C - A0E0 - FDBD68D1FA9D');
#7=IFCUNITASSIGNMENT((#8,#9,#10,#11,#12,#13,#14,#15,#16));
#8=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
#9=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.);
#10=IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.);
#11=IFCSIUNIT(*,.SOLIDANGLEUNIT.,$,.STERADIAN.);
#12=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.);
#13=IFCSIUNIT(*,.MASSUNIT.,$,.GRAM.);
#14=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
#15=IFCSIUNIT(*,.THERMODYNAMICTEMPERATUREUNIT.,$,.DEGREE_CELSIUS.);
#16=IFCSIUNIT(*,.LUMINOUSINTENSITYUNIT.,$,.LUMEN.);
#17=IFCCARTESIANPOINT((0.,0.,0.));
#18=IFCAXIS2PLACEMENT3D(#17,$,$);
#19=IFCGEOMETRICREPRESENTATIONCONTEXT('Building Model','Model',3,1.E-05,#18,$);
#20=IFCCARTESIANPOINT((0.,0.));
#21=IFCAXIS2PLACEMENT2D(#20,$);
#22=IFCGEOMETRICREPRESENTATIONCONTEXT('Building Plan View','Plan',2,1.E-05,#21,$);
#23=IFCBUILDING('3tmrRpSyvE4v1N9Jg$bYtw',#2,'New Building',$,$,#24,$,$,.ELEMENT.,$,$,$);
#24=IFCLOCALPLACEMENT($,#25);
#25=IFCAXIS2PLACEMENT3D(#26,$,$);
#26=IFCCARTESIANPOINT((0.,0.,0.));
#27=IFCRELAGGREGATES('1PmWqkE2D7P8wxZFkDc3Ic',#2,$,$,#1,(#23));
#28=IFCBUILDINGSTOREY('0dqsvK_2z8w90C6SoJ5S1Q',#2,'Default storey',$,$,$,$,$,$,0.);
#29=IFCWALLSTANDARDCASE('0aBuqP2rr8$896T$XLKaKb',#2,'A Standard rectangular wall',$,$,#43,#42,$,$);
#30=IFCRECTANGLEPROFILEDEF(.AREA.,$,#32,100.,400.);
#31=IFCCARTESIANPOINT((0.,100.));
#32=IFCAXIS2PLACEMENT2D(#31,$);
#33=IFCEXTRUDEDAREASOLID(#30,#36,#34,1000.);
#34=IFCDIRECTION((0.,0.,1.));
#35=IFCCARTESIANPOINT((0.,0.,0.));
#36=IFCAXIS2PLACEMENT3D(#35,$,$);
#37=IFCSHAPEREPRESENTATION(#19,'Body','SweptSolid',(#33));
#38=IFCSTYLEDITEM(#33,(#39),$);
#39=IFCSURFACESTYLE($,.BOTH.,(#40));
#40=IFCSURFACESTYLERENDERING(#41,$,$,$,$,$,$,$,.BLINN.);
#41=IFCCOLOURRGB('red',1.,0.,0.);
#42=IFCPRODUCTDEFINITIONSHAPE($,$,(#37,#56));
#43=IFCLOCALPLACEMENT($,#44);
#44=IFCAXIS2PLACEMENT3D(#35,#46,#45);
#45=IFCDIRECTION((0.,1.,0.));
#46=IFCDIRECTION((0.,0.,1.));
#47=IFCMATERIAL('Clay',$,$);
#48=IFCMATERIALLAYERSETUSAGE(#49,.AXIS2.,.NEGATIVE.,150.,$);
#49=IFCMATERIALLAYERSET((#50),$,$);
#50=IFCMATERIALLAYER(#47,10.,$,$,$,$,$);
#51=IFCRELASSOCIATESMATERIAL('2VALhDZtj41QxuMJosbmLu',#2,$,$,(#29),#48);
#52=IFCPRESENTATIONLAYERASSIGNMENT('some ifcPresentationLayerAssignment',$,(#37),$);
#53=IFCPOLYLINE((#54,#55));
#54=IFCCARTESIANPOINT((0.,0.));
#55=IFCCARTESIANPOINT((4000.,0.));
#56=IFCSHAPEREPRESENTATION(#19,'Axis','Curve2D',(#53));
#57=IFCQUANTITYLENGTH('IfcQuantityArea:Area','',#58,100.,$);
#58=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
#59=IFCCONTEXTDEPENDENTUNIT(#60,.LENGTHUNIT.,'Elephants');
#60=IFCDIMENSIONALEXPONENTS(1,0,0,0,0,0,0);
#61=IFCQUANTITYCOUNT('IfcQuantityCount:Elephant',$,#59,12.,$);
#62=IFCCONVERSIONBASEDUNIT(#65,.LENGTHUNIT.,'Inch',#63);
#63=IFCMEASUREWITHUNIT(IFCRATIOMEASURE(25.4),#64);
#64=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
#65=IFCDIMENSIONALEXPONENTS(1,0,0,0,0,0,0);
#66=IFCQUANTITYLENGTH('IfcQuantityLength:Length','',#62,24.,$);
#67=IFCELEMENTQUANTITY('1nvxj0Nnj5n8qfhyzrJY9J',#2,'Test:IfcElementQuantity','Measurement quantity',$,(#57,#61,#66));
#68=IFCRELDEFINESBYPROPERTIES('1DB4sZX0z05QH_e2Xcn6hS',#2,'Area Association','IfcElementQuantity associated to wall',(#29),#67);
#69=IFCPROPERTYSINGLEVALUE('IfcPropertySingleValue:Time','',IFCTIMEMEASURE(150.),#70);
#70=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
#71=IFCPROPERTYENUMERATEDVALUE('IfcPropertyEnumeratedValue:Music',$,(IFCLABEL('Do'),IFCLABEL('Re'),IFCLABEL('Mi')),#72);
#72=IFCPROPERTYENUMERATION('Notes',(IFCLABEL('Do'),IFCLABEL('Re'),IFCLABEL('Mi'),IFCLABEL('Fa'),IFCLABEL('So'),IFCLABEL('La'),IFCLABEL('Ti')),$);
#73=IFCPROPERTYBOUNDEDVALUE('IfcPropertyBoundedValue:Mass','',IFCMASSMEASURE(5000.),IFCMASSMEASURE(1000.),#74,$);
#74=IFCSIUNIT(*,.MASSUNIT.,.KILO.,.GRAM.);
#75=IFCPROPERTYTABLEVALUE('IfcPropertyTableValue:Sound',$,(IFCREAL(100.),IFCREAL(200.),IFCREAL(400.),IFCREAL(800.),IFCREAL(1600.),IFCREAL(3200.)),(IFCREAL(20.),IFCREAL(42.),IFCREAL(46.),IFCREAL(56.),IFCREAL(60.),IFCREAL(65.)),$,$,#76,$);
#76=IFCCONTEXTDEPENDENTUNIT(#77,.FREQUENCYUNIT.,'dB');
#77=IFCDIMENSIONALEXPONENTS(0,0,0,0,0,0,0);
#78=IFCPROPERTYLISTVALUE('IfcPropertyListValue:Colours',$,(IFCLABEL('Red'),IFCLABEL('Green'),IFCLABEL('Blue'),IFCLABEL('Pink'),IFCLABEL('White'),IFCLABEL('Black')),$);
#79=IFCMATERIAL('Brick',$,$);
#80=IFCPROPERTYREFERENCEVALUE('IfcPropertyReferenceValue:Material',$,$,#79);
#81=IFCMATERIALLIST((#79,#82,#83));
#82=IFCMATERIAL('Cavity',$,$);
#83=IFCMATERIAL('Block',$,$);
#84=IFCMATERIALLAYER(#79,100.,$,$,$,$,$);
#85=IFCPROPERTYREFERENCEVALUE('IfcPropertyReferenceValue:MaterialLayer',$,$,#84);
#86=IFCDOCUMENTREFERENCE('c://Documents//TheDoc.Txt',$,'Document',$,$);
#87=IFCPROPERTYREFERENCEVALUE('IfcPropertyReferenceValue:Document',$,$,#86);
#88=IFCREGULARTIMESERIES('Regular Time Series','Time series of events','2015-02-14T12:01:01','2015-05-15T12:01:01',.CONTINUOUS.,.MEASURED.,$,$,604800.,());
#89=IFCPROPERTYREFERENCEVALUE('IfcPropertyReferenceValue:TimeSeries',$,$,#88);
#90=IFCPOSTALADDRESS($,$,$,'Room 101',('12 New road','DoxField'),$,'Sunderland',$,'DL01 6SX',$);
#91=IFCPROPERTYREFERENCEVALUE('IfcPropertyReferenceValue:Address',$,$,#90);
#92=IFCTELECOMADDRESS($,$,$,('01325 6589965'),$,$,('bob@bobsworks.com'),$,$);
#93=IFCPROPERTYREFERENCEVALUE('IfcPropertyReferenceValue:Telecom',$,$,#92);
#94=IFCPROPERTYSET('2b3Fwudw51yBaOjJU5HBNI',#2,'Test:IfcPropertySet','Property Set',(#69,#71,#73,#75,#78,#80,#85,#87,#89,#91,#93));
#95=IFCRELDEFINESBYPROPERTIES('0EFQgSLfb5oRgtvm3FuM8n',#2,'Property Association','IfcPropertySet associated to wall',(#29),#94);
#96=IFCRELAGGREGATES('2h1VSG8M96JviAUFYcsscp',#2,$,$,#23,(#28));
#97=IFCRELCONTAINEDINSPATIALSTRUCTURE('0SSu2IeKzE3OgwuORLeUji',#2,$,$,(#29),#28);
ENDSEC;
END-ISO-10303-21;

解决方案

1. 修正代码基础问题

  • 移除project.Name中的.nwc后缀,该后缀属于Navisworks自有格式,IFC文件命名应使用.ifc,避免解析混淆。
  • 确保模型完成序列化保存,添加SaveAs方法输出文件:
var model = IfcStore.Create(XbimSchemaVersion.Ifc4, XbimStoreType.InMemoryModel);
using (var txn = model.BeginTransaction("Create project"))
{
    var project = model.Instances.New<IfcProject>();
    project.Initialize(ProjectUnits.SIUnitsUK);
    project.Name = "ICF Model"; // 修正名称后缀
    
    txn.Commit();
}
// 显式保存为IFC文件
model.SaveAs("ICF Model.ifc");

2. 修复IFC文件结构问题

Navisworks对IFC文件规范性要求严格:

  • 确认IfcProject为文件根实例,且IfcRelAggregates关联正确(当前文件中#27已关联Project到Building,无需修改)。
  • 删除文件中非标准自定义单位(如#59的"Elephants"单位),这类单位会触发解析错误。

3. 兼容性调整

  • 若上述修改无效,尝试生成IFC2x3格式文件,部分旧版Navisworks对IFC4支持有限:
var model = IfcStore.Create(XbimSchemaVersion.Ifc2X3, XbimStoreType.InMemoryModel);
  • 更新Navisworks至最新版本,获取更完善的IFC4兼容支持。

内容的提问来源于stack exchange,提问作者Sush

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 06:06:19