Modeling
About Archicad's design tools, element connections, modeling concepts, etc.

Graphisofts default pen numbers in library objects

Anonymous
Not applicable
I posed this in a different thread yesterday, but it might as well stand on its own:

With respect to setting up pen weights and colors:

When placing Graphisoft's library objects in my drawings, I frequently find myself resetting several pen weights, often requiring a trip deep to the bottom of some heavily-parametered objects. Too often, I do this over and over, say, when placing a variety of different cabinetry objects.

Is there a logic to Graphisoft's choice of pens in the default settings of library objects?

After...I don't know 8 years of using this program, I would think I would have caught on to such a thing, but you never know. It would be a lovely thing to have most (all!!!) library parts look great "out-of-the-box," assuming this didn't mean trying to adapt to an incoherent pen weight system (or non-system.
17 REPLIES 17
Karl Ottenstein
Moderator
Hi Robert,

In the "old" days, the pens used in the lib parts worked with the default pens of the new/reset template. I've been using my own template pens for so long that I don't know if that's the case still.

I agree that it is a pain to change the pens ...for everything basically. Setting up Favorites works when there are only a few parts involved. The other extremely tedious option is to open each object, change things to your defaults, and save into a new folder as your own customized library. This huge amount of work unfortunately would have to be repeated with each new release of the library!

A better solution, that GS could provide us with, is an automated "library generator" script. They now have a new XML based editor available on the developer download site, but which is geared towards developers. If they could provide a tool with a decent user interface that basically let you choose your pens for common functions, then automatically invoked the new XML tool to rebuild the entire library with your pens, then we'd have a good solution I think. A 3rd party could provide such a tool, I suppose...

A middle-of-the-road solution with AC 9 is the new parameter transfer method of the object settings dialog. You could have a template (module) or favorite or an instance in your project of just one cabinet set the way you like in terms of pens and meterials, etc. Alt-click that object and then open the object settings dialog to select the other cabinet that you want and ctrl-click the thumbnail of that other cabinet: this transfers all matching parameters to the other library part. Then, customize it the rest of the way before placing.

Karl
One of the forum moderators
AC 28 USA and earlier   •   macOS Sequoia 15.2, MacBook Pro M2 Max 12CPU/30GPU cores, 32GB
__archiben
Booster
karl / all

the ability to build in the ability to modify an entire library's attribute parameters is something that i've been pondering for some time.

when i start to seriously get down to making the 'benfrost archiLibrary' i was thinking that maybe i would define my pen parameters by function/size in all of the object scripts and have one master GDL script/macro/whatever where i define those values to the true pen table. the objects get their pen values from the parameters read from the master script at the beginning of each object's script.

distributing the library to somebody with a different pen set would involve them editing the one master file and hey-presto! all of the objects (or maybe at least 90% of them) would work from 'default'. . .

being still wet behind the ears with GDL, i have no idea whether i'm barking up the wrong tree entirely. knowing a lot more about GDL as you do, could you comment on the feasability of this?

thanks in advance
~/archiben
b e n f r o s t
b f [a t ] p l a n b a r c h i t e c t u r e [d o t] n z
archicad | sketchup! | coffeecup
Anonymous
Not applicable
~/archiben wrote:
being still wet behind the ears with GDL, i have no idea whether i'm barking up the wrong tree entirely. knowing a lot more about GDL as you do, could you comment on the feasability of this?

thanks in advance
~/archiben
While this is certainly doable it may be a bit kludgy, and risky, in operation. (I am talking about doing this strictly in GDL. Karl or someone more familiar with the API would have to address that angle.)

The process is to set up a MASTER_GDL.gsm which will set global variables to the desired pens. The various library parts can then be scripted to use these settings.

The kludginess may be minimal in this case since the idea is to set it and forget it.

The riskiness may be quite high though since some GDL programmers use the available user globals to pass values between macros, etc. This could result in resetting some of your pen variables. I use a placeholder variable when I use the GLOB_USER variables this way, so I can reset the value at the end of the script, but you can't count on everyone being so considerate.

I think what you have here may be a wish list item. At a very minimal level GS could just add some new dedicated globals for this purpose.

As you know I believe strongly in the value of assigning pens by function and will do what I can to convince GS to provide this function in a more manageable form in the future.
Aaron Bourgoin
Virtuoso
Here here, Matthew. Well said.
Think Like a Spec Writer
AC4.55 through 27 / USA AC27-6000 USA
Rhino 8 Mac
MacOS 14.6.1
Karl Ottenstein
Moderator
Yes: what Matthew said.

The method I listed was to deal with today's reality. Ben's wish is what it should be. Unfortunately, GDL is a very primitive language and the globals and master script at present do not offer a protected way of parameterizing an entire library.

GS might respond that there is no need to parameterize a library if there is the XML editing tool. I would counter that Ben's suggests why this is not so: a user should be able to construct parts that refer to the 'master parametric pens' so that those objects can be given to another user and behave consistently.

I feel that dedicated pen globals could be yet another kludge, but could be made a little more secure if the GDL checker and interpretter made these new globals such that they could only be set in a single special master script and could be only referenced everywhere else.

Meta-parametric libraries: a definite wish! 😉

Karl
One of the forum moderators
AC 28 USA and earlier   •   macOS Sequoia 15.2, MacBook Pro M2 Max 12CPU/30GPU cores, 32GB
__archiben
Booster
the other aspect of this is restriction. when i went back to my hammock to think over this some more, i realised that in order for it to work all control over pens are taken away from the user: you wouldn't be able to choose a pen in the parameters list because it wouldn't actually be mapped to anything. long, drop-down lists of pen functions/sizes would be needed to give the user any form of flexibility. and this is basically duplicating the pen table anyway . . .

in some situations, and with certain types of object, it may well be desirable to lock-down the pens: a large firm that wants a completely standard drafting style could well place this type of restriction over their library.

i'm still a little unsure about how this would actually work to everybody's benefit . . . perhaps the pen attributes should be given further tags? for example:

pen #1 = <RGB value> = <x>mm thick = "<function name>"

where all of the attributes assigned to pen <n> would be customisable and available in any pen table selection. i still don't kow how the transfer of pen functions throughout an entire library could work easily. everybody would have different pen functions . . . there's no true global variable there to be had is there?

hmm . . .

i'd like to know a little more about the LibDevTool though . . . i was playing around with it last night . . . or at least looking through the documentation. i managed to build the library of examples with the perl script, but have no real idea about what i was doing! one for later i think . . .

~/archiben
b e n f r o s t
b f [a t ] p l a n b a r c h i t e c t u r e [d o t] n z
archicad | sketchup! | coffeecup
__archiben
Booster
when i re-read through my posts like the one i've just made above, my mind just screams at me:

i want to be an architect again!

somewhere, somehow, somebody has got to start making GUIs for people who don't want (or need) to delve into realms they don't belong or don't want to belong, but know that somewhere there is an "easier" way.

yesterday morning a pearl was something out of a shellfish (or synthetically farmed somewhere in america). what have i gotten myself into now . . .

b e n f r o s t
b f [a t ] p l a n b a r c h i t e c t u r e [d o t] n z
archicad | sketchup! | coffeecup
Karl Ottenstein
Moderator
~/archiben wrote:
i realised that in order for it to work all control over pens are taken away from the user..
What we were talking about was only default values as far as I recall (don't have the energy to re-read the thread!) ... nothing more. It would only be the initial value of pens that would be defined in some global way, so that the default pens would be useful for each user's pen set. All library parts would perform just as now in all other respects.

Karl
One of the forum moderators
AC 28 USA and earlier   •   macOS Sequoia 15.2, MacBook Pro M2 Max 12CPU/30GPU cores, 32GB
__archiben
Booster
Karl wrote:
What we were talking about was only default values as far as I recall (don't have the energy to re-read the thread!) ... nothing more. It would only be the initial value of pens that would be defined in some global way, so that the default pens would be useful for each user's pen set. All library parts would perform just as now in all other respects.
yes - i was still thinking about the reality of making it work the way i want to in today's current situation with the master gdl file. and then i when off on strange tangents and probably completely muddled myself up in the process. too much sun!

~/archiben
b e n f r o s t
b f [a t ] p l a n b a r c h i t e c t u r e [d o t] n z
archicad | sketchup! | coffeecup