Using Blender's collection instances, as a way to manage 'linked aggregates'?

edited December 2024 in General

@bruno_perdigao do you think there's any merit to using Blender's collection instances, as a way to manage 'linked aggregates'?
Out of the gate, it would seem to improve the speed to 'refresh' the linked aggregates--as currently this is pretty painfully slow.

steverugi

Comments

  • edited December 2024

    I mean, how cool would mirroring be too? ;)

  • edited December 2024

    I know mirroring opens another can of worms.. so you can disregard that, in light of this proposal.
    ...
    It would seem like you'd only have to save the IfcProduct (ex: IfcWall) and its placement in the IFC file. All other stuff would be the same, it seems--that is, multiple IfcWalls, for example, could share the same representation, and psets, etc.

  • @theoryshaw It could be useful to use collection instances and delay the "refresh" to be used only when the file is saved. It would still be slow but it would be used only once. However, I have to decide if it's better to try to tackle this implementation already: https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcRelDefinesByObject.htm
    I can't estimate how hard it will be, but I'll try to create a better estimation of when I'll start.

    theoryshaw
  • 'IfcRelDefinesByObject' does look promising.
    BB would be the first, it seems, to implement it.
    ...

    It would still be slow but it would be used only once.

    If you reused shared representations and psets, I would think it would improve the save time a little, wouldn't you think?

  • I agree. I was just thinking if a simpler implementation would already be useful, specifically using collection instances just to visualize and edit linked aggregates, while keeping the current system of removing and copying new elements solely for saving the file. However, sharing representations and psets is definitely an option worth exploring.

    theoryshawsteverugiMassimo
  • @aothms what's your thoughts. Do you think IfcRelDefinesByObject needs to be implemented on the C++ side of things?

  • I don't think it would help. The fundamental issue is that the current express-based IFC has no kind of data-model level intelligence where data can be 'inherited' over instances. Everything needs to be either implemented in software (e.g property sets inheritance from type object to occurrence) or specifically instantiated and connected ad nauseam (IfcRelDefinesByObject). Doing that in C++ would only make things less flexible.

    The good news is that in IFC5 this is elegantly resolved by means of the ability to inherit structured objects. https://remedy-entertainment.github.io/USDBook/terminology/inherits.html

    theoryshawbruno_perdigaosteverugi
Sign In or Register to comment.