-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Suggested IFC Entity to save a Profile Type #3
Comments
Hi Ryan, Your question isn't quite clear to me, perhaps you can clarify? I opened your Revit family. To me the Ifc Class most appropriate for an extruded profile with multiple elements is and IfcCompositeProfileDef. This would be comprised of multiple IfcArbitraryClosedProfileDef http://www.buildingsmart-tech.org/ifc/IFC4/Add1/html/link/ifccompositeprofiledef.htm Cheers, Jon |
Sorry... Let's say you have this test file with 3 sweeps composed from this Profile Family (Illustrated below) How would you structure the exported IFC file in such a way where you could import this IFC file back into Revit and recreate the same Profile Family? (or generically speaking, how would you structure the exported IFC file in such a way where other BIM platforms (including yours) could read this newly structured IFC file, and recreate their equivalent of a Profile Family) As a hypothetical, let's say after import back into Revit, you changed the Profile Family definition, and the following 3 sweeps updated. As a side question, since you are familiar with the IFC for Revit component. How involved do you think it would be to tweak the code to allow this import/export functionality? @yorikvanhavre might be interested in this, as well, to potentially recreate FreeCad's equivalent of the Profile Family. |
If I understand well you want to share the same profile definition between the different extruded objects, in other words, it is the profile that is shared, not the final product. By looking at the IfcProfileDef which is the parent class of all profiles, it seems it cannot share a representation like IfcProducts... Maybe there is a way to use the new library stuff in IFC4? Not sure it is designed for that purpose... Another way could be to add a custom property (something like: "This object is sharing profile of object XXX"), but it's pretty unorthodox :) In any case sharing a profile in freecad is possible already. We must just find an IFC way to convey that... |
Exactly! Taking your example, I'd like to, via an IFC file exported out of FreeCad, be able to recreate, upon import into Revit, your DWire Clone as a Revit Profile Family. And vise versa, be able to export out an IFC file from Revit whereby you could reconstitute, upon import, your Clone Profiles in FreeCad (or GeometryGym/Rhino) Yes, the question is what's the best way to tweak the schema to accommodate this, you think? |
Ah but I think it works like this: There is only one profile definition. All 3 elements constructed on it reference the same profile. Now the matter is if the revit profile family is translated as an IfcProfileDef. In freecad it is not, but I will change that http://freecadweb.org/tracker/view.php?id=2448 |
Clarifying a bit the above comment, the ifc file must contain:
|
Exactly. Something like IfcProfileDefType, if it existed? |
Ifc has types in a manner similar to revit. I've attached how I would define this using IfcMember classification. ISO-10303-21; FILE_SCHEMA (('IFC4')); DATA; END-ISO-10303-21; |
Very cool! Seems promising. < Studying > |
@yorikvanhavre what's your thoughts? |
Yes, that's exactly what I thought as well, thanks @jmirtsch! That's a perfect file for testing... |
Just an FYI. Using the open source Revit IFC exporter (v.15.6.0) and IFC4 Design Transfer MVD setting resulted in this file. Unfortunately, as you see under IFCRELDECLARES, (3) separate profiles are created... |
Yes, well there is lots of improvements that can be made to the revit exporter. You can see it generates three mapped items that each refer to an equivalent Representation Map (like a block). To me this makes the mapped item redundant and a higher quaility Ifc file would have a swept solid representation. It also generates 3 building element proxy types (that differ only because a common representation map isn't used) and as you observe, it redefines the same profile for the extrusion multiple times. This redundancy soon adds up on a project model, and means ifc files are larger than they need to be and inefficient. I'm not sure if you used a line based generic model whether any of these aspects are improved. You can see by the ifc line count (acknowledging my file doesn't have property sets included). My file is 200 lines, the revit one is over 1000. This ratio only gets more and more exaggerated as you add more elements. I am working on my own enhancer that adjusts the revit generated file with these issues and more, but I'm not sure the time frame that this will be available. |
Thanks @jmirtsch for the ping, here's a further breakdown to clarify...
Basically asking if you can recreate the GG file you started by importing that IFC file? Just curious to understand how much intelligence you would loose upon a roundtrip, if any. Thanks Much, Ryan |
In FreeCAD this is now implemented the way @jmirtsch showed above. When exporting extruded objects (Walls, structures or basic Part extrusions) that share a same profile object, that is saved that way in IFC:
Both columns have their own extrusion object (so they can have different lengths) but use the same IFCARBITRARYCLOSEDPROFILEDEF (or any other *ProfileDef as needed). On import, FreeCAD also recreates the columns using the same profile object. |
|
This is fun one--exploring mirroring and rotating of the profile... |
Any traction on this ? |
I think its clear how this is handled in IFC (I.e. shared profile def). I'd also say from experience in a native IFC environment that shared / managed profiles must be named to differentiate them from random bespoke profiles (e.g.slabs, wall footprints, etc). Otherwise in a "profile manager" you end up with hundreds of profiles. The only remaining issue is that naturally revit isn't really playing by these rules. |
Could anyone suggest an IFC Entity (or Schema approach) that could save 'Profile Types'?
For example, I would like to export this Profile Family, which is used in a sweep within this Revit File, to a particular IFC Entity by which I could later use to reconstitute the same Profile Family upon import to Revit. (at this point, please disregard that this is currently not possible in Revit)
Something like a typed IFCARBITRARYPROFILEDEFWITHVOIDS Entity?
If one doesn't exist, could anyone suggest a tweak to the current schema that could accommodate it?
The text was updated successfully, but these errors were encountered: