If you're reading this, we've just migrated servers! If anything looks broken please email dion@thinkmoult.com :)

Change depth of ifcwall

Hello there:-)
Is there an easy way to change to depth or the lenght of a specific wall within an ifcfile with ifcopenshell ?

Comments

  • It really depends on your wall geometry definition. With pure ifcopenshell (I.e. no blender interface) currently you need to do the math yourself.

    In general, the vast majority of walls are parametrically layered prisms which use an extruded profile. So changing the length or thickness of the wall is a relatively simple task of modifying the profile.

  • Could you get me a hint how to Start?

  • @herzdame2608 yes, it sounds like you need to get a more solid understanding of how geometry is represented in IFC. Try loading your IFC file in the BlenderBIM Add-on first, and look at the IFC Representations panel in the object properties tab. It'll show you how many, and what types the representations are. Then use the IFC Debug panel and click "Inspect from object" to see the IFC data related to the selected object. Browse through the Representation parameter to get an idea of what geometry data is in there.

  • OK thank you.
    So I did what you said
    An example:
    My wall has two representations, a Curve2D representation and a SweptSolid representation. In the hierarchy I do the following:
    IfcWall -> Representation -> (IfcProductDefinitionShape) Representation [1] -> (IfcExtrudedAreaSolid) Items [0] -> SweptArea -> YDim = 0.2. So I know that my wall is 0.2 m thick. But I can also find out the thickness of the wall using the IfcMaterialLayer. I just have no idea how to write code that changes the value.

  • edited July 2021

    @herzdame2608
    Here's a video to demonstrate how to create a wall type, and then change its thickness. All though there's an error when changing the thickness.
    blender28-bim-210705-py39-win

  • edited July 2021

    @theoryshaw
    Thank you very much. I knew that there would be an error, when changing the thickness, but It will be ok if there is a single Wall, that is not L-shaped. Thats why I need the code to change the thickness

  • @theoryshaw love your videos - fixed everything wrong I spotted in the video :)

    @herzdame2608 your analysis of the two representations and YDim is sound. In this case, if you want to change the thickness, you need to change it both in the material layer, as well as in the YDim. Be sure to change it everywhere that you see this material layer being used. You can use this as a guide to see how to start writing the code to do this: https://wiki.osarch.org/index.php?title=IfcOpenShell_code_examples .

    Given this is a parametric change, this should be something added into the API. I have already written code that does parametric updating of profiles, but not layers. You can see the profile code here: https://github.com/IfcOpenShell/IfcOpenShell/blob/0f39b0939628660c5705f7b7b4917c16bb9e4fa0/src/ifcopenshell-python/ifcopenshell/api/material/assign_material.py#L60

Sign In or Register to comment.