Menu

IFC4RV PredefinedType

2018-06-10
2018-07-31
  • Dirk Van Rillaer

    Hi Angel,

    R2018.3 18.4.0
    It's going pretty well with the PredefinedTypes in IFC4RV,
    only a few entityclasses seem to have an issue:

    I only tested the EntityClasses, not the TypeClasses.
    I used Notepad++ to check if the PredefinedType are correctly translated to the location in the Definition of an entity.

    issues:

    • IfcDoor (PredefinedType on 11th position): all PredefinedTypes are translated to DOOR
    • IfcWindow (on 11th position): all PredefinedTypes are translated to WINDOW
    • IfcBuildingElementProxy: all PredefinedTypes are missing (and it would be nice if PROVISIONFORVOID and PROVISIONFORSPACE would be available)
    • IfcRoof (as container): GAMBREL_ROOF | RAINBOW_ROOF are translated to NOTDEFINED
    • IfcSensor: COSENSOR | CO2SENSOR | FROSTSENSOR | IDENTIFIERSENSOR are translated to NOTDEFINED

    Attached: the test IFC, and an issue-txt-file with only the lines of the above mentioned entities.

    Regards,
    Dirk

    (PS: due to the other issue with IfcBeam, it's left out of the test)

     

    Last edit: Dirk Van Rillaer 2018-06-10
  • Angel Velez

    Angel Velez - 2018-06-11

    Excellent! I passed this on to my team so that they can make these corrections.

    ps I didn't even know there were such things as rainbow roofs :)

     
  • Dirk Van Rillaer

    Concerning PredefinedTypes now exported as NOTDEFINED:
    just one more of IfcRoof: HIPPED_GABLE_ROOF

    since in the current exporter a lot more EntityClasses are supported and exported, I had to redo the test, resulting in a few more cases with the NOTDEFINED-issue:
    IfcCurtainWall
    IfcOpeningElement
    IfcProjectionElement
    IfcSurfaceFeature
    IfcVoidingFeature
    IfcExternalSpatialElement

    In the attached XLS, they are marked in the first column with 'x'.

    Concerning IfcDoor:
    on the 12th position in the definition is the OperationType: currently the default is now "REVOLVING" (I think it is the default since I didn't add a parameter to the generic model). Probably would be better to be set on NOTDEFINED, just like it is with IfcWindow.

     
  • Dirk Van Rillaer

    Ahum, actually the above tested results were only based on the use of IfcExportAs on a Generic Model.

    It seems that the use of the PredefinedTypes in the mapping table (Export Options) is broken. They seem to result in "NOTDEFINED".
    See attached image.

     
  • Dirk Van Rillaer

    Intermediate test:

    based on:
    https://github.com/Autodesk/revit-ifc/commit/1e10b35ee00c994336b311fff3bc48a41aeaf271 : Various fixes for PreDefinedTypes

    tested with R19.1.current-IFC4RV-branche-version

    issue: https://sourceforge.net/p/ifcexporter/discussion/general/thread/b6a9156b/#cc0a
    - IfcDoor (PredefinedType on 11th position): all PredefinedTypes are translated to DOOR
    not yet fixed
    - IfcWindow (on 11th position): all PredefinedTypes are translated to WINDOW
    not yet fixed
    - IfcBuildingElementProxy: all PredefinedTypes are missing (and it would be nice if PROVISIONFORVOID and PROVISIONFORSPACE would be available)
    not yet fixed
    - IfcRoof (as container): GAMBREL_ROOF | RAINBOW_ROOF are translated to NOTDEFINED
    fixed: enum is added and is exporting OK
    - IfcSensor: COSENSOR | CO2SENSOR | FROSTSENSOR | IDENTIFIERSENSOR are translated to NOTDEFINED
    fixed: enum is added and is exporting OK

    issue: https://sourceforge.net/p/ifcexporter/discussion/general/thread/b6a9156b/#5793
    a few more cases with the NOTDEFINED-issue:
    - IfcCurtainWall: fixed: enum is added and is exporting OK
    - IfcOpeningElement: not yet fixed
    - IfcProjectionElement: not yet fixed
    - IfcSurfaceFeature: not yet fixed
    - IfcVoidingFeature: not yet fixed
    - IfcExternalSpatialElement: not yet fixed


    Notepad-check:

    * #162=IFCDOOR('2T4cu7s1X9ZxKjUTCy7FcC',#1,'IfcDoor.DOOR',$,'IfcObjectType (Instance)',#14443,$,'669483',0.0,0.0,.DOOR.,.NOTDEFINED.,$);
    * #163=IFCDOOR('2T4cu7s1X9ZxKjUTCy7FcJ',#1,'IfcDoor.GATE',$,'IfcObjectType (Instance)',#14444,$,'669492',0.0,0.0,.**DOOR**.,.NOTDEFINED.,$);
    * #164=IFCDOOR('2T4cu7s1X9ZxKjUTCy7FcQ',#1,'IfcDoor.TRAPDOOR',$,'IfcObjectType (Instance)',#14445,$,'669501',0.0,0.0,.**DOOR**.,.NOTDEFINED.,$);
    * #165=IFCDOOR('2T4cu7s1X9ZxKjUTCy7FdX',#1,'IfcDoor.USERDEFINED',$,'IfcObjectType (Instance)',#14446,$,'669510',0.0,0.0,.**DOOR**.,.NOTDEFINED.,$);
    
    * #183=IFCWINDOW('2T4cu7s1X9ZxKjUTCy7FMH',#1,'IfcWindow.WINDOW',$,'IfcObjectType (Instance)',#14448,$,'670518',0.0,0.0,.WINDOW.,.NOTDEFINED.,$);
    * #184=IFCWINDOW('2T4cu7s1X9ZxKjUTCy7FMO',#1,'IfcWindow.SKYLIGHT',$,'IfcObjectType (Instance)',#14449,$,'670527',0.0,0.0,.**WINDOW**.,.NOTDEFINED.,$);
    * #185=IFCWINDOW('2T4cu7s1X9ZxKjUTCy7FNl',#1,'IfcWindow.LIGHTDOME',$,'IfcObjectType (Instance)',#14450,$,'670536',0.0,0.0,.**WINDOW**.,.NOTDEFINED.,$);
    * #186=IFCWINDOW('2T4cu7s1X9ZxKjUTCy7FNs',#1,'IfcWindow.USERDEFINED',$,'IfcObjectType (Instance)',#14451,$,'670545',0.0,0.0,.**WINDOW**.,.NOTDEFINED.,$);
    * #187=IFCWINDOW('2T4cu7s1X9ZxKjUTCy7FNz',#1,'IfcWindow.NOTDEFINED',$,'IfcObjectType (Instance)',#14452,$,'670554',0.0,0.0,.**WINDOW**.,.NOTDEFINED.,$);
    * 
    * #215=IFCBUILDINGELEMENTPROXY('3qGyPnAhv6MeGo8KiYHjht',#1,'IfcBuildingElementProxy',$,'IfcObjectType (Instance)',#13456,#12296,'416717'**,$**);
    * #219=IFCBUILDINGELEMENTPROXY('3qGyPnAhv6MeGo8KiYHkHr',#1,'IfcBuildingElementProxy.PROVISIONFORVOID',$,'IfcObjectType (Instance)',#13460,#12300,'419151'**,$**);
    * #220=IFCBUILDINGELEMENTPROXY('3qGyPnAhv6MeGo8KiYHkHk',#1,'IfcBuildingElementProxy.PROVISIONFORSPACE',$,'IfcObjectType (Instance)',#13461,#12301,'419156',**$**);
    * #221=IFCBUILDINGELEMENTPROXY('3qGyPnAhv6MeGo8KiYHkHZ',#1,'IfcBuildingElementProxy.USERDEFINED',$,'IfcObjectType (Instance)',#13462,#12302,'419161',**$**);
    * #222=IFCBUILDINGELEMENTPROXY('3qGyPnAhv6MeGo8KiYHkHa',#1,'IfcBuildingElementProxy.NOTDEFINED',$,'IfcObjectType (Instance)',#13463,#12303,'419166',**$**);
    * 
    * #1002=IFCSTAIR('39VzaUEH56bumbb1nnAY$9',#1,'IfcStair',$,'IfcObjectType (Instance)',#13485,#12323,'424520',.NOTDEFINED.);
    * #1003=IFCSTAIR('39VzaUEH56bumbb1nnAYXv',#1,'IfcStair.STRAIGHT_RUN_STAIR',$,'IfcObjectType (Instance)',#13603,#12422,'425464',.**NOTDEFINED**.);
    * #1004=IFCSTAIR('39VzaUEH56bumbb1nnAYk6',#1,'IfcStair.TWO_STRAIGHT_RUN_STAIR',$,'IfcObjectType (Instance)',#13604,#12423,'425479',.**NOTDEFINED**.);
    * #1005=IFCSTAIR('39VzaUEH56bumbb1nnAYkD',#1,'IfcStair.QUARTER_WINDING_STAIR',$,'IfcObjectType (Instance)',#13605,#12424,'425484',.**NOTDEFINED**.);
    * #1006=IFCSTAIR('39VzaUEH56bumbb1nnAYkG',#1,'IfcStair.QUARTER_TURN_STAIR',$,'IfcObjectType (Instance)',#13606,#12425,'425489',.**NOTDEFINED**.);
    * #1007=IFCSTAIR('39VzaUEH56bumbb1nnAYkN',#1,'IfcStair.HALF_WINDING_STAIR',$,'IfcObjectType (Instance)',#13607,#12426,'425494',.**NOTDEFINED**.);
    * #1008=IFCSTAIR('39VzaUEH56bumbb1nnAYkQ',#1,'IfcStair.HALF_TURN_STAIR',$,'IfcObjectType (Instance)',#13608,#12427,'425499',.**NOTDEFINED**.);
    * #1009=IFCSTAIR('39VzaUEH56bumbb1nnAYkX',#1,'IfcStair.TWO_QUARTER_WINDING_STAIR',$,'IfcObjectType (Instance)',#13609,#12428,'425504',.**NOTDEFINED**.);
    * #1010=IFCSTAIR('39VzaUEH56bumbb1nnAYka',#1,'IfcStair.TWO_QUARTER_TURN_STAIR',$,'IfcObjectType (Instance)',#13610,#12429,'425509',.**NOTDEFINED**.);
    * #1011=IFCSTAIR('39VzaUEH56bumbb1nnAYkh',#1,'IfcStair.THREE_QUARTER_WINDING_STAIR',$,'IfcObjectType (Instance)',#13611,#12430,'425514',.**NOTDEFINED**.);
    * #1012=IFCSTAIR('39VzaUEH56bumbb1nnAYkk',#1,'IfcStair.THREE_QUARTER_TURN_STAIR',$,'IfcObjectType (Instance)',#13612,#12431,'425519',.**NOTDEFINED**.);
    * #1013=IFCSTAIR('39VzaUEH56bumbb1nnAYkr',#1,'IfcStair.SPIRAL_STAIR',$,'IfcObjectType (Instance)',#13613,#12432,'425524',.**NOTDEFINED**.);
    * #1014=IFCSTAIR('39VzaUEH56bumbb1nnAYku',#1,'IfcStair.DOUBLE_RETURN_STAIR',$,'IfcObjectType (Instance)',#13614,#12433,'425529',.**NOTDEFINED**.);
    * #1015=IFCSTAIR('39VzaUEH56bumbb1nnAYk$',#1,'IfcStair.CURVED_RUN_STAIR',$,'IfcObjectType (Instance)',#13615,#12434,'425534',.**NOTDEFINED**.);
    * #1016=IFCSTAIR('39VzaUEH56bumbb1nnAYl2',#1,'IfcStair.TWO_CURVED_RUN_STAIR',$,'IfcObjectType (Instance)',#13616,#12435,'425539',.**NOTDEFINED**.);
    * #1017=IFCSTAIR('39VzaUEH56bumbb1nnAYl9',#1,'IfcStair.USERDEFINED',$,'IfcObjectType (Instance)',#13617,#12436,'425544',.**NOTDEFINED**.);
    * #1018=IFCSTAIR('39VzaUEH56bumbb1nnAYlC',#1,'IfcStair.NOTDEFINED',$,'IfcObjectType (Instance)',#13618,#12437,'425549',.NOTDEFINED.);
    
    * #1184=IFCOPENINGELEMENT('3QIBoWGxHBvQPKPxE8mFIC',#1,'IfcOpeningElement',$,'IfcObjectType (Instance)',#14294,#13113,'436187',.NOTDEFINED.);
    * #1185=IFCOPENINGELEMENT('2uqbdDwGXCD8sJK882K49h',#1,'IfcOpeningElement.OPENING',$,'IfcObjectType (Instance)',#14376,#13194,'437187',.**NOTDEFINED**.);
    * #1186=IFCOPENINGELEMENT('2uqbdDwGXCD8sJK882K49w',#1,'IfcOpeningElement.RECESS',$,'IfcObjectType (Instance)',#14377,#13195,'437202',.**NOTDEFINED**.);
    * #1187=IFCOPENINGELEMENT('2uqbdDwGXCD8sJK882K49$',#1,'IfcOpeningElement.USERDEFINED',$,'IfcObjectType (Instance)',#14378,#13196,'437207',.**NOTDEFINED**.);
    * #1188=IFCOPENINGELEMENT('2uqbdDwGXCD8sJK882K49q',#1,'IfcOpeningElement.NOTDEFINED',$,'IfcObjectType (Instance)',#14380,#13197,'437212',.NOTDEFINED.);
    * 
    * #1192=IFCPROJECTIONELEMENT('3QIBoWGxHBvQPKPxE8mFIV',#1,'IfcProjectionElement',$,'IfcObjectType (Instance)',#14292,#13110,'436168',.NOTDEFINED.);
    * #1193=IFCPROJECTIONELEMENT('2uqbdDwGXCD8sJK882K481',#1,'IfcProjectionElement.USERDEFINED',$,'IfcObjectType (Instance)',#14374,#13192,'437161',.**NOTDEFINED**.);
    * #1194=IFCPROJECTIONELEMENT('2uqbdDwGXCD8sJK882K48G',#1,'IfcProjectionElement.NOTDEFINED',$,'IfcObjectType (Instance)',#14375,#13193,'437176',.NOTDEFINED.);
    
    * #1196=IFCSURFACEFEATURE('3QIBoWGxHBvQPKPxE8mFj6',#1,'IfcSurfaceFeature',$,'IfcObjectType (Instance)',#14297,#13116,'436241',.NOTDEFINED.);
    * #1197=IFCSURFACEFEATURE('2uqbdDwGXCD8sJK882K4Mt',#1,'IfcSurfaceFeature.MARK',$,'IfcObjectType (Instance)',#14389,#13207,'437279',.**NOTDEFINED**.);
    * #1198=IFCSURFACEFEATURE('2uqbdDwGXCD8sJK882K4M6',#1,'IfcSurfaceFeature.TAG',$,'IfcObjectType (Instance)',#14390,#13208,'437294',.**NOTDEFINED**.);
    * #1199=IFCSURFACEFEATURE('2uqbdDwGXCD8sJK882K4MR',#1,'IfcSurfaceFeature.TREATMENT',$,'IfcObjectType (Instance)',#14391,#13209,'437299',.**NOTDEFINED**.);
    * #1200=IFCSURFACEFEATURE('2uqbdDwGXCD8sJK882K4MG',#1,'IfcSurfaceFeature.USERDEFINED',$,'IfcObjectType (Instance)',#14392,#13210,'437304',.**NOTDEFINED**.);
    * #1201=IFCSURFACEFEATURE('2uqbdDwGXCD8sJK882K4ML',#1,'IfcSurfaceFeature.NOTDEFINED',$,'IfcObjectType (Instance)',#14393,#13211,'437309',.NOTDEFINED.);
    * 
    * 
    * #1215=IFCVOIDINGFEATURE('3QIBoWGxHBvQPKPxE8mFjG',#1,'IfcVoidingFeature',$,'IfcObjectType (Instance)',#14296,#13115,'436231',.NOTDEFINED.);
    * #1216=IFCVOIDINGFEATURE('2uqbdDwGXCD8sJK882K49F',#1,'IfcVoidingFeature.CUTOUT',$,'IfcObjectType (Instance)',#14381,#13199,'437223',.**NOTDEFINED**.);
    * #1217=IFCVOIDINGFEATURE('2uqbdDwGXCD8sJK882K49U',#1,'IfcVoidingFeature.NOTCH',$,'IfcObjectType (Instance)',#14382,#13200,'437238',.**NOTDEFINED**.);
    * #1218=IFCVOIDINGFEATURE('2uqbdDwGXCD8sJK882K49J',#1,'IfcVoidingFeature.HOLE',$,'IfcObjectType (Instance)',#14383,#13201,'437243',.**NOTDEFINED**.);
    * #1219=IFCVOIDINGFEATURE('2uqbdDwGXCD8sJK882K4Me',#1,'IfcVoidingFeature.MITER',$,'IfcObjectType (Instance)',#14384,#13202,'437248',.**NOTDEFINED**.);
    * #1220=IFCVOIDINGFEATURE('2uqbdDwGXCD8sJK882K4Mj',#1,'IfcVoidingFeature.CHAMFER',$,'IfcObjectType (Instance)',#14385,#13203,'437253',.**NOTDEFINED**.);
    * #1221=IFCVOIDINGFEATURE('2uqbdDwGXCD8sJK882K4MY',#1,'IfcVoidingFeature.EDGE',$,'IfcObjectType (Instance)',#14386,#13204,'437258',.**NOTDEFINED**.);
    * #1222=IFCVOIDINGFEATURE('2uqbdDwGXCD8sJK882K4Md',#1,'IfcVoidingFeature.USERDEFINED',$,'IfcObjectType (Instance)',#14387,#13205,'437263',.**NOTDEFINED**.);
    * #1223=IFCVOIDINGFEATURE('2uqbdDwGXCD8sJK882K4My',#1,'IfcVoidingFeature.NOTDEFINED',$,'IfcObjectType (Instance)',#14388,#13206,'437268',.NOTDEFINED.);
    * 
    * #1225=IFCEXTERNALSPATIALELEMENT($,$,'IfcExternalSpatialElement.EXTERNAL',$,$,$,$,$,.**NOTDEFINED**.);
    * #1226=IFCEXTERNALSPATIALELEMENT($,$,'IfcExternalSpatialElement.EXTERNAL_EARTH',$,$,$,$,$,.**NOTDEFINED**.);
    * #1227=IFCEXTERNALSPATIALELEMENT($,$,'IfcExternalSpatialElement.EXTERNAL_WATER',$,$,$,$,$,.**NOTDEFINED**.);
    * #1228=IFCEXTERNALSPATIALELEMENT($,$,'IfcExternalSpatialElement.EXTERNAL_FIRE',$,$,$,$,$,.**NOTDEFINED**.);
    * #1229=IFCEXTERNALSPATIALELEMENT($,$,'IfcExternalSpatialElement.USERDEFINED',$,$,$,$,$,.**NOTDEFINED**.);
    * #1230=IFCEXTERNALSPATIALELEMENT($,$,'IfcExternalSpatialElement.NOTDEFINED',$,$,$,$,$,.NOTDEFINED.);
    
     

    Last edit: Dirk Van Rillaer 2018-07-31

Log in to post a comment.