OSArch Community

[FreeCAD BIM] development news by Yorik

  1. B

    Linux itself is GPLv2 only, Linus removed the 'any later version' text when he started the project

  2. C

    @duncan

    IMHO

    Might it be an idea to split this thread. Licensing is amongst other threads, covered in "FOSS licenses"

    Also we have a wiki article, FLOSS

    :confused:

  3. M

    For awesome news like this, if anybody wants to contribute 300 words to an OSArch news article, please do - we can publish it and help share successes in the community!

  4. Y

    Yeah I should have done that. Doing it right now!

  5. D
  6. B
  7. P
  8. Y

    thanks for helping me here guys ? always forget this thread...

    i'll try to post weekly updates from now on, hopefully that helps me to remember

  9. B
  10. Y
  11. Y
  12. T

    NativeIFC!

  13. P

    Cross-posting test results of latest (No Representation) NativeIFC import mode :D

    https://forum.freecad.org/viewtopic.php?p=666531#p666531

    It is really fast ! On my 10 years old i3, it loads IFC Schependomlaan.ifc in 5 s :lol:

    0:05 - No Representation (a cube appear :roll: )

    0:27 - Coin Representation

    1:09 - Full Shape

  14. Y

    the cube is a temporary workaround for the group extension bug. it should vanish in the future

  15. B
  16. B
  17. Y

    thanks @bitacovir ?

  18. Y
  19. Y

    FreeCAD BIM weekly update 14.04.2023

    https://yorik.uncreated.net/blog/2023-014-freecad-weekly7

    • NativeIFC: Edit placements: This has been a bit of a headache, because of several aspects: 1) Placements in IFC are notoriously a complex affair, 2) Placement matrixes are different in FreeCAD and IfcOpenShell, and 3) Placement properties are triggered pretty often in FreeCAD, and there was a whole question of sorting out when the IFC placement of the object needed to be updated. This is now all (hopefully) sorted out, and you can now edit placements of IFC objects in FreeCAD, which will correctly reflect on the stored IFC placement. This means changing the placement of an object manually works, but also all other commands that work on placements, such as the Move command. As this is using the IfcOpenShell API, all needed internal complexity of dealing with local and relative placements is taken care of magically! commit

    • FreeCAD: Draft memory leak: The Draft workbench has had a nasty memory leak for a very long time, which means the memory usage is increasing during use. Usually this is normal when running a program, as structures (data, variables, etc...) are created during the execution, that take space in memory. However, there are usually destruction mechanisms in place, for example all variables or objects created inside a function are automatically destroyed when the function ends, or there are garbage collection systems that automatically clean up unused variables and data structures. A memory leak occurs when something escapes these mechanisms and is not automatically destroyed, and is recursively being created, which makes the memory consumption raise over time. The Draft workbench has had one of these for a long time. To see the effect by yourself, you just need to start a Draft command such as Line, click a point and simply hover your mouse around instead of clicking the second point. If you watch the memory consumption (for example running top -p $(pidof freecad) in a terminal), you will see a small memory increase. This used to be huge, and is now mostly solved, as the garbage collection manages to keep it under control and in the long run, memory usage does not increase anymore. There is however still some minor leak happening, that I couldn't pinpoint yet. There are so many things happening in Draft, with so many different parts of FreeCAD involved (Qt interface, widgets on the Coin3D view,...) that it turns debugging very difficult. issue - PR

    • NativeIFC: Allow to delete objects: Deleting an object in FreeCAD now correctly deletes the corresponding object in the IFC file. As usual when using the IfcOpenShell API, everything is taken care of automatically, and all needed subobjects and dependencies are deleted automatically too. As always, when you perform an operation that affects internal IFC objects, the project object is marked as modified, and by right-clicking it in the tree view you can select "Show Diff..." to see the modifications that have been made to the IFC file. This is a great way to make sure the right operation was done. commit

    • NativeIFC: Allow to collpse children: You can now perform the reverse operation to "Expand children": When an object has its children expanded, you can now reverse the operation by right-clicking the object and choosing "Collapse children". The child objects (and all their descendents too) will be removed from the FreeCAD document, causing the base object to gather and show the shapes of them all. This allows you to keep your FreeCAD document fast and light, even when working on large IFC files, by shrinking the structures you don't need to edit. commit

  20. Y
  21. C

    @yorik said:

    FreeCAD BIM weeky dev news 8: https://yorik.uncreated.net/blog/2023-015-freecad-weekly8

    From the blog:

    This took quite some time to thoroughly test and fine-tune, but it is now working satisfyingly. It is basically the GUI counterpart of the aggregate() function I added last time. It allows to take any FreeCAD object, BIM or non-BIM, and add it to a NativeIFC document just by dropping it onto any NativeIFC spatial structure (site, building, storey or space) or object (in which case the new object becomes aggregated to the host object). This basically allows to create just any kind of NativeIFC object.

    Where can I find this code snippet? :-)

  22. Y
  23. C
  24. Y

    i must admit it's a bit buried :)

  25. C

    @yorik

    Sorry to be slightly off topic, but how did you manage to aggregate multiple IFC elements to one IFC element assembly with ifcopenshell?

    I see this snippet:

    
     uprel = ifcopenshell.api.run(
    
            "aggregate.assign_object",
    
            ifcfile,
    
            product=element,
    
            relating_object=parent_element,
    
        )
    

    But I would to like to assign multipe elements at once like this pseudocode:

    
    assembly_element = 'ifc_assembly_element'
    
    element_list = ['ifc_element_1', 'ifc_element_2', 'ifc_element3', ...]
    
    for element in element_list:
    
        ifcopenshell.api.run( "aggregate.assign_object",ifcfile,product=element, relating_object=assembly_element)
    

    I have not been succesful with this method

  1. Page 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6

Login or Register to reply.