Just as a side note, maybe you already know this, in the meantime I use Numpad .
in the outliner to find aggregates.
Just as a side note, maybe you already know this, in the meantime I use Numpad .
in the outliner to find aggregates.
@bruno_perdigao said:
Just as a side note, maybe you already know this, in the meantime I use
Numpad .
in the outliner to find aggregates.
Could you elaborate please. I tried pressinng Numpad .
In the outliner. but nothing happens. I might be doing something wrong.
It is just a way to show in the outliner the object that you selected in the viewport:
I see, I think in general a more context friendly menu would benefit the BlenderBIM add-on UI a lot and make it way more user friendly.
For example, when you click this wall:
This wall contains the following
IfcElementAssembly
IfcOpening
IfcCovering
IFC Array Modifier
Different IFC profiles/materials.
Would be nice if would be possible, to click a certain shortkey to give all quick acces to the desired menus.
Similar when you click .
in Blender, this shows up:
I think some kind of BlenderBIM add-on shortcut menu would be cool:
Or is there maybe already work being done on this which I'm not aware off?
Just found this way of selecting the entire blender collection via one selected object. 80 seconds in...
Awsome work on Arrays, thanks!
Could we imagine that array an IfcWindow also arrays the IfcOpeningElement? :)
related: https://github.com/IfcOpenShell/IfcOpenShell/issues/3101#issuecomment-1558264231
a little error on duplicate.
Scratch that... i can't seem to replicate this again. hmm.
Thanks for testing. I haven't been able to develop this for a while, but I think I'll get back to it next week.
@theoryshaw Is this related? https://github.com/IfcOpenShell/IfcOpenShell/issues/3186
It is. Troubleshooting that too, currently.
Here i was able to consistently replicate an error.
@bruno_perdigao Possible to push your work on aggregates? It's base functionality works nicely, in my view.
@theoryshaw There is a small refactor to be done, I think I'll finally have the time this weekend. Then I'll try to work on improvements
@theoryshaw Good news and bad news.
The good one is that now It works with sub-aggregates. The bad one is that I was working in a branch that was outdated related to BB main development, and I got this error when I tried to work on a more up-to-date branch. Also, I haven't fully yet managed to get openings working.
@bruno_perdigao
Really cool work! Do you think it would be possible to make this work with an IFC array too? Use case would be a truss made out of an IfcElementAssembly/IfcBeam. Because at the moment it is not possible to IFC Array an empty, the modifier menu won't show op in the Blender UI. Or is there a hacky way around it? Maybe @theoryshaw knows?
It's not possible at the moment. There's still some work to be done, I'm going to try to improve the refresh so that it only updates objects that were changed, as discussed here: https://github.com/IfcOpenShell/IfcOpenShell/pull/3328
However, to make it work with IfcArray would require a lot of changes in how arrays work right now. Maybe it will be better to create an equivalent that works only with aggregates. In the long run, I think there should be a set of operations just to deal with this, like an Aggregates Manager or something, where you could create duplicates, arrays, see how many instances an aggregate have, etc.
@bruno_perdigao
like an Aggregates Manager or something, where you could create duplicates, arrays, see how many instances an aggregate have, etc.
I like this idea a lot for many reasons...
I am clueless how the IFC array currenlty works, but I am making the assumption it stores the transformation information in a propertyset of one the elements and somehow memorises the relations with the other ifc elements in the same array? through overlapping guids? Could you try to explain it to me please in a simple way? :-)
If I read this correctly, I can see an IfcElementAssembly can also have an IfcPropertySet.
If this all could work, this would be a huge time saver and would definitely a way better solution than all proprietary software solutions I know about.
I'll explain my understanding of it, but I might miss some details. It creates a Pset that stores the info that you put in the IfcArray UI. Then it duplicates the original objects as many times as the "count" property and the position is calculated based on the "x", "y" and "z". All the copies have the "Parent" guid stored. If you have "Sync Children" selected, it will delete all children e recreate them, every time you edit the array. This is not the best solution, because it will do this even if the original object hasn't changed.
If I read this correctly, I can see an IfcElementAssembly can also have an IfcPropertySet.
Yes. The duplicate aggregate feature also uses a Pset similar to IfcArray. I had some success building this, but there are still a lot of things about IFC that I don't fully understand. Any help and suggestion are welcome!
https://blenderartists.org/t/how-to-apply-array-on-collection/1216565/8
It seems Blender also has no support for using a modifier array on a collection. :-(
I wish someone could prove me wrong.
I wish someone could prove me wrong.
I just watched this clip above, there is a really weird workflow with parenting a plane and arraying a collection which doens't include an array at all but vertices instancing. I managed to make a basic working example with a Blender collection. Clueless on how to store all of this in IFC.
Found another way of collection instancing,
Just was playing around with object instancing in Blender, somehow if this could translate to an IfcElement Assembly and IFC array modfier that would be so great.
But I don't know how. I feel it should be doable.
Just thinking out loud here.
How to do this in native IFC?
You could store XYZ points in native IFC to work as a reference for an IFC element assembly array? That way you can store the transformation information of the assembly array in a propertyset of that point? instead of having to choose one element of the assembly?
Is it even possible to store a propertyset on a ifcpoint? if you make it an ifcbuildingelementproxy?
I would advise you not to spend too much time with the vertex instancing workflow, this feature will be removed in 4.0 which will come in a few months.
The preferred workflow will be to use a Geometry Nodes setup, I guess old setups will be automatically converted. Although I doubt we'll have something as straightforward as it is now...
https://devtalk.blender.org/t/remove-legacy-instancing/28028
Login or Register to reply.