IFC setting Units and Coordinate System

Related products: FME Form

Set units and Coordinate System into the IFC settings. Even selecting a coordinate system in the IFC writer, the location is lost as you open it into another 3D tool/viewer

Safe PR#53546

 

 


It seems there are 9 rows related to units - or IFCSIUNIT.

FME only writes one of these: #24=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.);

Any hope for a fix? The issue is that some software (for instance Solibri) assumes mm, while other software (FME, DDS-CAD Viewer, BIM Vision, ARCHICAD) seems to be able to "guess" the correct unit.

#33= IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
#34= IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.);
#35= IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.);
#36= IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.);
#37= IFCMEASUREWITHUNIT(IFCPLANEANGLEMEASURE(0.0174532925199),#36);
#38= IFCDIMENSIONALEXPONENTS(0,0,0,0,0,0,0);
#39= IFCCONVERSIONBASEDUNIT(#38,.PLANEANGLEUNIT.,'DEGREE',#37);
#40= IFCSIUNIT(*,.SOLIDANGLEUNIT.,$,.STERADIAN.);
#41= IFCMONETARYUNIT(.NOK.);
#42= IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
#43= IFCMEASUREWITHUNIT(IFCTIMEMEASURE(31556926.),#42);
#44= IFCDIMENSIONALEXPONENTS(0,0,0,0,0,0,0);
#45= IFCCONVERSIONBASEDUNIT(#44,.TIMEUNIT.,'Year',#43);
#46= IFCSIUNIT(*,.MASSUNIT.,$,.GRAM.);
#47= IFCSIUNIT(*,.THERMODYNAMICTEMPERATUREUNIT.,$,.DEGREE_CELSIUS.);
#48= IFCSIUNIT(*,.LUMINOUSINTENSITYUNIT.,$,.LUMEN.);

Any update on this PR?


Any progress here? I have the same issue, Solibri will not recognize that my IFC-file is in metre, it assumes millimetre...


You can manually "hack" the IFC-file after writing from FME. I had the same issue with Solibri reading an IFC-file as millimeter when it in fact was metre.

 

Replace the content in row#24 with this:

 

#24=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.);

 

Then, change the content of row#28 to this:

 

IFCUNITASSIGNMENT((#24));

 

When opening in Solibri and other software the IFC-file will be read with units=metre.
Yup, that was our solution also 🙂

 

 


Strongly hope this idea would be realized.


The new reference number for this is FMEENGINE-30170


No update at this time I'm afraid. There is still no target date or suggestion that this might be resolved soon. I've made a note mentioning how many upvotes the idea has, and that several users are asking for an update - so we will see if that helps get this a higher priority.

fyi the reference number now is FMEENGINE-30170


Hi @takashi, @atle_hoidalen, @sigtill, @geolassi, @mark2atsafe

I am happy to announce that we have added the ability to set the units for the IFC writer in the latest FME 2019.2 release. You can control the unit types by setting the following attributes on the IfcProject feature:

 

 

lengthunit

 

areaunit

 

volumeunit

 

 

Setting these to values other than metre, square_metre and cubic_metre will add conversion lines within the IFC to set the desired units as the designated measurement units.

 

 


Great!

IFC: Write length unit from attribute values [FMEENGINE-30331] C136885 C144927

ifc_lengthunit = METRE seems to work but not:

ifc_lengthunit = MILLI or MILLI METRE or MILLI.METRE ?

 

#33= IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);

 


Looks like you can have "unreferenced" units. And it seems FME cant handle 2 lenght units (#20 and #24) - according to #10 then #24 should be used and not the #20:

Have checked several different IFC files on different projects.

FME 2020.0.0.0 Beta (20200212 - Build 20182 - WIN64)

 

#10=IFCUNITASSIGNMENT((#11,#12,#13,#14,#15,#16,#17,#21,#24,#25,#26,#27));
#11=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.);
#12=IFCSIUNIT(*,.VOLUMEUNIT.,.DECI.,.CUBIC_METRE.);
#13=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.);
#14=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
#15=IFCSIUNIT(*,.THERMODYNAMICTEMPERATUREUNIT.,$,.DEGREE_CELSIUS.);
#16=IFCSIUNIT(*,.PRESSUREUNIT.,$,.PASCAL.);
#17=IFCDERIVEDUNIT((#18,#19),.VOLUMETRICFLOWRATEUNIT.,$);
#18=IFCDERIVEDUNITELEMENT(#12,1);
#19=IFCDERIVEDUNITELEMENT(#14,-1);
#20=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.);
#21=IFCDERIVEDUNIT((#22,#23),.LINEARVELOCITYUNIT.,$);
#22=IFCDERIVEDUNITELEMENT(#20,1);
#23=IFCDERIVEDUNITELEMENT(#14,-1);
#24=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
#25=IFCSIUNIT(*,.POWERUNIT.,$,.WATT.);
#26=IFCSIUNIT(*,.ELECTRICCURRENTUNIT.,$,.AMPERE.);
#27=IFCSIUNIT(*,.ELECTRICVOLTAGEUNIT.,$,.VOLT.);

I have the same problem. FME IfcProject wont accept millimetres. Has there been any progress here?


Hi @sigtill, @calleuhlenius,

Please set the attribute 'lengthunit' on the Project feature to 'millimetre' or 'millimeter', which will result in the IFC file setting:

#29=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);

 


Any updates in FME 2020 wrt to this without "hacking" the IFC file after writing from FME? I still have some issues with IFC, both wrt units and surfaces that "disappear" when opening them in other types of software?


I wonder if any updates for IFC Reader, it's an issue when using the same workbench for IFC conversion, while the input IFC files are in different units (some are meters, some are millimeters)......


Any update on this? What is currently a correct way to set units to millimeters?