Menu

Changing IfcBuildingElementProxy to IfcSlab for later import to Revit

2020-07-30
2020-08-18
  • Sharon Berezalsky

    Hey,

    I have an IFC file in which all the elements are classified as IfcBuildingElementProxy and related to the type IfcBuildingElementProxyType.
    However, the elements have some metadata that will allow us to determine if the elements are floors or not.

    My end goal is to be able to import this IFC into revit and made it classify the floors as floors, walls as walls, columns as column etc.
    My idea of to achieve that is to create a script that will re-create the IFC file with the proper modifications and import the new file into Revit.

    I isolated one of these elements to a different IFC file(only_floor_clean.ifc).
    I then run that said script that will change the element to IfcSlab with the PredefinedType "FLOOR" and same for the type(only_floor_script.ifc)
    When opening the later file in Revit, is it imported as a FamilyInstace from a family with the category of Floors.

    I tried to also open that file in ArchiCAD and re-export that element again and then open it in Revit - this time it was imported as a real floor.

    I isolated the changes that affected that to only_floor_script_fixed.ifc and it is also being imported as a floor in Revit.
    The changes I could isolate don't make sense to me and I can't understand why only_floor_script.ifc is being imported as family instance and not a floor.
    Just to clarify, the relevant changes are the IFCMATERIALLAYER, IFCMATERIALLAYERSET, IFCMATERIALLAYERSETUSAGE records.

    Revit classifying the elements as FamilyInstaces and not as a real types is problematic for me since I later have a process that searches for these walls, floors, etc. which I can't really change.

    Would love to hear if you have any insights on that matter.

     

    Last edit: Sharon Berezalsky 2020-08-06
  • jeremy tammik

    jeremy tammik - 2020-08-10

    You say that you have a process that searches for walls, floors, etc. which I can't really change.

    However, it is probably ewasier for you to change your process to classify tthese elements by their metadata than to convince the entire Revit IFC team to redesign their entire workflow to fit your needs.

    What makes it so difficult for you to update and enhance your process to classify the elements by the available metadata?

     
  • Sharon Berezalsky

    Thanks for the replay Jeremy.

    I do not try to convience the Revit IFC for any redesign - I'm just trying to under why my changes causes elements to be imported at familly instances and not Autodesk.Revit.DB.Floor for example.

     
  • jeremy tammik

    jeremy tammik - 2020-08-18

    Many developers ask 'why is it like this?'

    I do not see the point of that question.

    'Ours is not to wonder why / ours is but to do or die.'

    Since I do not see the point of the question, it becomes very hard for me to answer.

    Much more interesting is: what do you wish to achieve, and why?

    What problems are you encountering?

    How can your overall goal be achieved most efficiently?

     
  • jeremy tammik

    jeremy tammik - 2020-08-18

    Anyway, I asked Angel Velez whether he would like to advise here... let's see what he says...

     
  • Angel Velez

    Angel Velez - 2020-08-18

    The code that decides how to create what from an IFC file on Open is quite complicated and somewhat picky. In the floor case, I believe it expects an IFCMATERIALLAYERSETUSAGE - that is, it expects to find a (perhaps compound) structure that it then converts into a Revit compound structure. Does it need that to create a floor? Strictly speaking, no - we could just guess at one by looking at the extrusion, determining that its width (assuming it is extruded in the Z direction) and creating a fake layer. But the code as is doesn't do that.

     

Log in to post a comment.