[IfcOpenShell] IfcSweptDiskSolidPolygonal's "FilletRadius" not working?

edited July 2022 in General

Hi,
I am currently trying to learn ifcopenshell, and want to create an .ifc with reinforcement. See the attached Python script for the generation of the .ifc file (attached as "createIfcRebars.txt", I am not sure why I wasn't allowed to upload the file with a .py extension. The file content is nonetheless a Python script..).
My question is: I am not able to get the "FilletRadius" attribute for IfcSweptDiskSolidPolygonal to work? I get "straight" corners along the IfcPolyline, but I want a curved fillet.
Any help is appreciated:)
BR Sondre
(PS: I asked the same question in the SourceForge forums as well, I will update either one based on help received from the other..)

Tagged:

Comments

  • edited July 2022

    That's a really nice script!
    I added some lines else it didn't work for me:

    Pnt_O = ifc_file.createIfcCartesianPoint( O )
    axis_X = ifc_file.createIfcDirection( X )
    axis_Y = ifc_file.createIfcDirection( Y )
    axis_Z = ifc_file.createIfcDirection( Z )
    

    Then loaded the IFC in BIMVision:

    but I want a curved fillet.

    Is it an option to use BlenderBIM? You could maybe use the bevel modifier?

    EDIT:
    A curved fillet is obviously something different than beveled edges...
    Also, what's the pratical purpose/application of creating such detailed geometry? ?

  • Thank you for trying to help me:)
    I should have made sure the .py script was able to run before uploading it, attached are the updated .py script and the resulting .ifc file. I run the .py script in Blender 3.0, and import the .ifc file using BlenderBim. The result I am getting is what you provided a screenshot of:)

    My purpose/application is to create .ifc files with reinforcement directly from Grasshopper (Rhinoceros 3D). I want to use logic in Grasshopper to determine the polylines the rebars should be placed along, then export an .ifc file. Currently the workflow at my company revolves around exporting geometry once from Grasshopper to Tekla and then a lot of manual labor follows in Tekla. I want to add logic in Grasshopper to get the rebar positions, and limit the .ifc export to reinforcement only (at least as a first step, the company I work at usually export "shape.ifc" and "rebars.ifc" as separate files due to the size of "rebars.ifc" anyways). By taking control of the .ifc export, I can make sure the rebars are reused and represented "correctly" right away, instead of bloated .ifc files with mesh coordinates and duplicate rebars. At least this is what I am aiming for:)

    I wanted to use "FilletRadius" since it allows cleaner/less input and I thought it is thus easier to use/maintain, but I guess a solution would be to use IfcCompositeCurve (or something similar, consisting of both straight lines and arcs explicitly). I need the rebar corners to follow an arc with radius at least 2.5x the rebar diameter, so using "FilletRadius" would have allowed for the same polyline even though the rebar diameter changed (I would need to adjust for concrete cover, but doesn't need to recalculate the lines and arcs at least).

    I asked about "FilletRadius" since I am not sure if I am doing something wrong, or maybe the "FilletRadius" has yet to be supported by eg. the BlenderBIM .ifc import? Also, if you think anything about the workflow I am describing could have been solved differently, I am very interested in any feedback:)
    BR Sondre

    Coen
  • I checked at SourceForge, and Thomas Krijnen gave me the answer: "IfcSweptDiskSolidPolygonal is simply not implemented and handled as the parent type IfcSweptDiskSolid which doesn't have this attribute" :)
    The problem around "FilletRadius" is thus solved, but I am still interested in any thoughts about the workflow I want to implement, if something similar already exists, potential problems I havent thought about (yet) etc.

    Coen
  • Just curious if the script createIfcRebars.txt could have entirely been re-written using the ifcopenshell.api ?

Sign In or Register to comment.