David Nicholson Cole had an example floor joist object, for example, that was stretchy and would repeat according to parameters within rectangular bounds - in the GDL Cookbook.
Thanks for the input! Sadly it doesn't seem like I have missed any satisfying way to handle systems of elements that are arranged in arrays.
The GDL approach fails as I hold it to be a requisite that it is a system om native elements.
The multiply approach fails as I hold it to be requisite that the system is defined as such and that its parameters can be dynamically changed.
The module approach fails due to it not being able to edit in-model and thus is slow and looses in-model references.
The grasshopper approach is feels cumbersome as it is external, prone to crash and that one can't just do operations on existing Archicad elements so one instead has to create the elements using curves.
Not being able to define and dynamically change spatial configurations of elements must be seen as a real deficit in BIM CAD software. The multiply tool is good as such but it could be great!
That pretty well sums up all my frustrations and most of it could all be solved with in-place module editing. Adding intelligence to scaling a module may be a bit trickier, but just the simplified process of creating an array and knowing the contents are securely tied together would bring so many workflow benefits. Still it's only about twenty years* since it went on the Wishlist, so early days yet... 🙄
With some knowledge of GDL you could create an Accessories tool using the built in Accessories API. This places individual objects mapped to a roof/wall/slab/zone. So you get the best of all worlds; the logic of an associated group mapped to a model element, as well as individual components which can be scheduled. Oh, and the logic of the mapping can be parametric... variable based on the situations needs.
I am actually building another Accessories tool over the next few days, so if your rafters and joist are GDL objects I could provide a method to call them in. If they are standard model elements such as the Beam tool then it wont work.
Thanks for the input! Yes, the Accessories tool really has a lot of potential (seen some nice and in the best of worlds I would be proficient in GDL and able to come up with good generic solution - sadly I'm not. So for now I seem to be stuck with hoping that GS amend the multiply tool with a dynamic array group functionality. I also think that there are some merit to a native tool for native elements.
I agree that there should be a native array tool for native elements. It would be great to have Beams and Columns applicable through Accessories. Perhaps we should add this to the wish list.
In fact I have avoided creating an accessories tool for the precise reason that it relies on GDL objects for elements that should be handled with native tools. However, I can deny its potential no longer, but still doubt I will use it to create structural components as I don't think that is how Archicad should be used. It would be interesting to hear from some of the engineering firms that use Archicad.
The two examples you gave (rafters and joists) may not be the best example of what you are talking about since "path, distance, number of copies is" is not typically how you would want to place them in the model is it?
The two examples given were just that - examples. They were chosen because the situation that was at hand but the question is clearly stated in general terms for systems of elements spatially configured as arrays.
But even in the specific case with rafters and joists - how do you view them if not as a system of elements spatially configured as arrays and as such defined by paths distance, number of copies etc? And how would you typically place them in the model?
And how would you typically place them in the model?
When placing I would use the multiply tool to get the number and spacing as required.
Once placed and they need further editing, then I would use the distribute tool to adjust the spacings - add or delete extra rafters, select all and then distribute to spread them evenly.
Also, don't forget there is the 'Roof Wizard' for roof timber.
It is not perfect but does an OK job at setting basic roof timber out if you get the settings right.
something went wrong with my post or it was deleted ? As Barry has said rafters are can be placed individually or as an array using the Roof Maker Tools. Same for Joists. But the functionality I think you are talking about is more like the Roof Accessory Tool where you can put the roof-ing on a roof ( metal roof for example) and stretch the roof around and the roofing will automatically adjust with it. Also, keep in mind that elements don't always have to be used for what they have been named for the sake of organization. Many things in Archicad are better modeled with elements that are chosen for the sake of what you need them to do, or what you need to do with them. For example concrete flat work is never really flat, so it is quite often modeled using roofs. That sort of thing. Or you may model something because you need to use the gravity tool which only works on certain elements. I model the soffits as roof for the sake of the Ctrl-Click function. Lots of different ways to model an array of elements that is dependent on what you need to do with it. Personally, I use pre-modeled assemblies of easily editable elements which are specially arrayed for just about everything.
As said - I'm talking generally about arrays of elements. As soon as you talk about accessories, roofmaker or GDL objects you loose out on generality.
The functionality I'm after is being able to create a dynamic array regardless of element. A native tool for native elements - it's as easy as that or at least it should be.
Your concept - a native array for native elements - is easy to understand yes. However, it is not possible ATM, and I don't think it is easy to achieve. In fact I think it is quite difficult as it requires an intelligent matrix to control the elements while also making them independent.
The Accessory tool is a native tool. Sure its an API but so is the Wall tool, one is simply embedded in the mother API (Archicad) while the other is optional. Both are created by Graphisoft and have been around for as long as I can remember (I have 21 years on Archicad).
The Accessory tool is an intelligent matrix to control the elements while also making them independent. It uses Walls, Slabs, Roofs and Zones as the matrix control so that your intelligent array is parametrically connected to your design, making it more powerful than just an intelligent matrix.
So you have in the native Accessory tool everything you are asking for except access to other native elements as the components. Hence the contributors to this discussion have attempted to alter your perspective by highlighting the fact that any element in Archicad can be applied as another type simply by changing its classification in the settings dialogue. A GDL Object can be a Beam if you change its classification.
It is completely understandable that you don't perceive the Accessory tool as native because it is an optional "Add-On", I am sure most have this perspective. It is also completely understandable that you simply want the native tool functions in the dynamic and intelligent array, however GDL objects can also achieve this as GDL is the basis of most of these elements; Archicad began as just a GDL interface... generally (users used to love the fact they could code their own window, though we were less demanding 30 years ago).
So although I stated at the beginning it is not possible, it actually is possible in Archicad today to do what you want; it just requires a slightly different perspective.
When I build my Accessory component (starting next week and should only take 2 weeks (doing a project at the same time), that's how clever Archicad is) I will post a demonstration of what I have described above.
If you are still not content with this approach then your only option is to add your request to the wish list and wait (another year at least), or change to another software that does not have the infinite possibilities and intricate intelligence of Archicad (none of them do).
I hope this helps give you the confidence that you can get want you want out of Archicad very soon, or even today if you the current Accessory components have the geometry you need.
What I mean't when saying "as easy as that" was precisely what to seem to be your initial read - conceptually/functionally easy. The technical actualities might make it anything but easy to realize and I claim no authority on that. I'm sure that it should be made into a wish but not sure if it should be done now or wait until the dust from the community launch settles and perhaps even the promised new wish function arises.
The OP was made to ensure that I haven't just missed a good method to create dynamic arrays. From the response it seems that I haven't. This doesn't mean that I'm unappreciative, unconvinced nor uninterested of the actual capabilities of AC but I don't think one can say that dynamic arrays is a functionality in AC as of now.
I would say that the GH connection is as close as it gets. Would it handle all settings of the AC elements or allow for GH operations on the AC elements it would be really close.
I don't agree with that it is due to a limited perspective on my part. Its precisely because I (as you) see the elements as nothing more than geometrical representations of our choosing that I think that independency and generality is a requisite for the dynamic array functionality. It is true that a GDL object can represent a beam but it's still a GDL object as far as AC is concerned which means that complications arise if we for example want to model a slab using a roof.
It shall also be noted that although accessories are developed by GS users are (at least as I understand it) advised that they are based on unsupported legacy code, might not properly function and not updated.
I do however see the potential in the accessory approach and look forward to see a demonstration of your work. As you say, the functionality potential of the accessory is of a higher order as it not only allow for the dynamic array but also referencing geometry in model space.
It depends some on what you mean by Dynamic Array. Rhino comes to mind first. You might want to checkout the Archicad PARAM-O tool which is being developed for something I think could be called a Dynamic Array. PARAM-O – Graphisoft
I put together some notes on a concept for a tool with this functionality in the wish forum:
After playing around a bit more its obvious that there is some really powerful dynamic functionality lying around in the Curtain Wall and Railing tools which I think should be turned into a new more general tool.
And if we then could constrain/snap the reference geometries of the array to that of walls/roofs/slabs - then that would replace some of the functionality from accessories and system-like GDL objects.