Skip to main content
Question

IFC to CityGML filtering IFMEMultiCurve

  • May 30, 2018
  • 2 replies
  • 30 views

Forum|alt.badge.img

I am am trying to convert a IFC-file into a CityGML-file. For inspiration I am relying heavily on the intermediate guide for BIM to gis. Now when I am trying to convert the IFCDoors entities into CityGML doors i get the following error:

CityGML Writer: The 'IFMEMultiCurve' geometry is invalid for the 'lod4MultiSurface' citygml_lod_name, valid geometries for 'lod4MultiSurface' are: {IFMEMultiSurface}, convertible geometries are {IFMETriangleFan, IFMEAggregate, IFMECompositeSurface, IFMEFace, IFMEMesh, IFMEDonut, IFMETriangleStrip, IFMERectangleFace, IFMEBox, IFMEBRepSolid, IFMEExtrusion, IFMEMultiSolid, IFMEMultiArea, IFMEEllipse, IFMEPolygon}.
Storing feature(s) to FME feature store file `U:\Exjobb\FME BIMtoGIS my own\NyvångToCityGMLintermediat_log.ffs'
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Feature Type: `Door'
Attribute(encoded: utf-8)         : `GlobalId' has value `02R5wDVnfBGx4r_HlUhMUt'
Attribute(encoded: utf-8)         : `Name' has value `Door Opening SE:1010x2100:3673635'
Attribute(encoded: utf-8)         : `ObjectType' has value `1010x2100'
Attribute(64 bit real)            : `OverallHeight' has value `2100'
Attribute(64 bit real)            : `OverallWidth' has value `1010'
Attribute(encoded: utf-8)         : `Tag' has value `3673635'
Attribute(encoded: fme-system)    : `_gparent_id' has value `30517139736937767A334D505536556438464C3174305F323730333930'
Attribute(string)                 : `_parent_id' has value `303252357744566E6642477834725F475A55684D55745F373430303236'
Attribute(encoded: fme-system)    : `_parent_type' has value `IfcOpeningElement'
Attribute(encoded: utf-8)         : `areaunit' has value `square_metre'
Attribute(encoded: utf-8)         : `citygml_feature_role' has value `opening'
Attribute(encoded: utf-8)         : `citygml_lod_name' has value `lod4MultiSurface'
Attribute(encoded: utf-8)         : `electriccurrentunit' has value `ampere'
Attribute(encoded: utf-8)         : `electricvoltageunit' has value `volt'
Attribute(string)                 : `fme_feature_type' has value `IfcDoor'
Attribute(string)                 : `fme_geometry' has value `fme_aggregate'
Attribute(entangled: string)      : `fme_type' has value `fme_line'
          entangled to [ifc_type]
Attribute(encoded: utf-8)         : `forceunit' has value `newton'
Attribute(encoded: utf-8)         : `frequencyunit' has value `hertz'
Attribute(encoded: utf-8)         : `gml_id' has value `02R5wDVnfBGx4r_HlUhMUt_460895'
Attribute(encoded: utf-8)         : `gml_parent_id' has value `0Qq9si7vz3MPU6Ud8FL1t0_270390'
Attribute(64 bit unsigned integer): `ifc_instance_name' has value `460895'
Attribute(encoded: utf-8)         : `ifc_parent_id' has value `02R5wDVnfBGx4r_GZUhMUt'
Attribute(encoded: utf-8)         : `illuminanceunit' has value `lux'
Attribute(encoded: utf-8)         : `lengthunit' has value `metre'
Attribute(encoded: utf-8)         : `luminousfluxunit' has value `lumen'
Attribute(encoded: utf-8)         : `luminousintensityunit' has value `candela'
Attribute(encoded: utf-8)         : `massunit' has value `gram'
Attribute(32 bit integer)         : `multi_reader_full_id' has value `1'
Atribute(32 bit integer)         : `multi_reader_id' has value `1'
Attribute(string)                 : `multi_reader_keyword' has value `IFC_2'
Attribute(string)                 : `multi_reader_type' has value `IFC'
Attribute(string)                 : `multi_writer_id' has value `0'
Attribute(encoded: utf-8)         : `planeangleunit' has value `degree'
Attribute(encoded: utf-8)         : `powerunit' has value `watt'
Attribute(encoded: utf-8)         : `pressureunit' has value `pascal'
Attribute(encoded: utf-8)         : `thermodynamictemperatureunit' has value `degree_celsius'
Attribute(encoded: utf-8)         : `timeunit' has value `second'
Attribute(encoded: utf-8)         : `volumeunit' has value `cubic_metre'
Attribute(string)                 : `xml_type' has value `xml_line'
Coordinate System: `SWEREF-99-13-30'
Geometry Type: IFMEMultiCurve
Number of Geometry Traits: 1
GeometryTrait(encoded: utf-8): `citygml_lod_name' has value `lod4MultiSurface'
Number of Curves: 2
--------------------------------------
Curve Number: 0
   Geometry Type: IFMELine
   Number of Geometry Traits: 1
   GeometryTrait(encoded: utf-8): `citygml_lod_name' has value `lod4MultiSurface'
   Number of Coordinates: 2 -- Coordinate Dimension: 2
   (20540.1097660952,41061.103468597925)(20540.1097660952,40051.103468597925)
--------------------------------------
Curve Number: 1
   Geometry Type: IFMELine
   Number of Geometry Traits: 1
   GeometryTrait(encoded: utf-8): `citygml_lod_name' has value `lod4MultiSurface'
   Number of Coordinates: 2 -- Coordinate Dimension: 2
   (20440.1097660952,41061.103468597925)(20440.1097660952,40051.103468597925)
===========================================================================
A fatal error has occurred. Check the logfile above for details
... Last line repeated 2 times ...
A fatal error has occurred. Check the logfile above for details
A fatal error has occurred. Check the logfile above for details
A fatal error has occurred. Check the logfile above for details

As far as I can tell the error has to do with the fact that some of my IFCDoor objects uses the a MultiCurve for their geometries.

 

 

Now for the questions:

Is there any filter that can be used to remove the IFCDoor objects with the IFMEMultiCurve geometry?

Is there any way to transform IFMEMultiCurve geometry to one of the specified valid (or convertible) geometries?

Thanks in advance :D

This post is closed to further activity.
It may be an old question, an answered question, an implemented idea, or a notification-only post.
Please check post dates before relying on any information in a question or answer.
For follow-up or related questions, please post a new question or idea.
If there is a genuine update to be made, please contact us and request that the post is reopened.

2 replies

daveatsafe
Safer
Forum|alt.badge.img+20
  • Safer
  • May 31, 2018

Hi @hadhafang,

The GeometryFilter can be used to extract only the Solid geometries from your Door features. If you set Homogenize Collections and Instantiate Geometry Instances to 'Yes', and set the desired type to 'Solid', the output will be MultiSolids.


Forum|alt.badge.img
  • Author
  • May 31, 2018

Hi @hadhafang,

The GeometryFilter can be used to extract only the Solid geometries from your Door features. If you set Homogenize Collections and Instantiate Geometry Instances to 'Yes', and set the desired type to 'Solid', the output will be MultiSolids.

 

It worked like a spell :D