Design forum
cancel
Showing results for 
Search instead for 
Did you mean: 

EXTRACT GDL CUSTOM PARAMETERS' VALUES

Nader Belal
Advisor
Hi there,

How can I extract library object custom parameters' values in Grasshopper to be able to inject them in Object's Properties Settings component ?

If not possible, what C# / VBA / Python Script should I use in Grasshopper script component to have the ability to access their values ?

The same question have been posted on McNeel's Rhinoceros Forum, since I think that the answer will benefit the programs users, here is the link
https://discourse.mcneel.com/t/extract-archicads-gdl-custom-parameters-values/77706?u=nader_belal
A good friend of mine have once told me that I´m so brute that I´m capable of creating a GDL script capable of creating GDLs.
16 REPLIES 16

leceta
Enthusiast
i have miserably failed in the past trying to digg inside connection plugins GHA library throw ghpythonlib module, almost everything were private classes. This should be taken into account, Archicad components are one of the scarse components that doesn’t work (well, i dont know how to work with) with ghpythonlib module. This module gives programatical access to grasshopper components, wich make them work as method calls. https://stevebaer.wordpress.com/2013/12/11/ghpython-node-in-code/

Sorry Moonlight, can help you on this. Just trying to keep the conversation alive.

P.S: well, you always can write txt files from GDL to be read from GH if you are in a hurry...

Nader Belal
Advisor
@leceta

I´m grateful for your help, and for sure I will check that link.

Look, my line of thought is quiet simple, just follow my line of thinking ....
You have a GH component capable of opening your loaded ArchiCAD Library, can see each object, and if permitted it can manipulate the object's custom GDL Parameters, and implement the desired change per object & instance.

So if you're able to that from Grasshopper, why can I export those values to a panel in Grasshopper ???

Cause if you were able to do all the above, and the object GUI is able to read the the object's parameters and values, that means their is a connection that already have been done, but it doesn't include this aspect.

Sorry for the long reply, and thank you again
A good friend of mine have once told me that I´m so brute that I´m capable of creating a GDL script capable of creating GDLs.

Joe Putnam
Newcomer
Maybe I am not understanding what you are attempting to do but why cant you expose them as described in the manual? I have used this for setting object values from GH.

I am also messing around with creating custom Property Groups and Classifications as a similar option but utilizing a custom XML file generator within Grasshopper to create both the Property Groups/Properties & the Custom Classifications so that it is a little more fluid and I dont have touch the property manager other than to re-import my XML file.

Then expose with the default method

Joe Putnam
Newcomer
Joe wrote:
expose them as described in the manual

Nader Belal
Advisor
@Joe Putnam

You didn't get my idea.

Your way is dependent on the ArchiCAD user to fill Object's properties by the property manager.

But what if I have generated this property in GDL as a parameter, then how can I get the value of this parameter to the property manager ...

Real case scenario, imagine having a parametric door, with different models, but only some of these models are complaint, would you like to fill all those properties again and again, or wouldn't you like to automate the process.

Another application for such idea, would be beneficial for Classification Manager, wouldn't you think ?
A good friend of mine have once told me that I´m so brute that I´m capable of creating a GDL script capable of creating GDLs.

Joe Putnam
Newcomer
yes I am totally confused because this works perfectly for me as designed by Graphisoft. I can get default parameters and write my own that I can access in GH or even in Archicad.

Joe Putnam
Newcomer
additional showing result

Joe Putnam
Newcomer
and because this site will not let me link the files I am pasting this here. really is there no way to share the objects and grasshopper definitions on this site?

https://we.tl/t-rLVUOzemTb

Nader Belal
Advisor
@Joe

you're going in the wrong direction from what I have in mind.

I want to extract the values from GDL (values of Pt1X, Pt1Y, Pt1Z from ArchiCAD) that were already used in a model, and inject them to the desired property settings.
A good friend of mine have once told me that I´m so brute that I´m capable of creating a GDL script capable of creating GDLs.

Joe Putnam
Newcomer
As far as the classification manager and property groups go as I said those can be read in by importing an xml so its really simple to create those if you know how to write out XML.

It would be kinda nice to have access to the classification manager but really I dont see myself doing it all that much. I would rather be able to generate profiles from grasshopper before controlling the classification manager, again not all profiles are standard in my world and being able to send that though and not having to draw if first in Archicad would save time especially because this entire workflow is iterative....

Joe Putnam
Newcomer
Moonlight wrote:
@Joe

you're going in the wrong direction from what I have in mind.

I want to extract the values from GDL (values of Pt1X, Pt1Y, Pt1Z from ArchiCAD) that were already used in a model, and inject them to the desired property settings.
ah yeah got it. I have had no need for that sorry

Joe Putnam
Newcomer
Moonlight wrote:
Real case scenario, imagine having a parametric door, with different models, but only some of these models are complaint, would you like to fill all those properties again and again, or wouldn't you like to automate the process.
Well with what they have given us you can simply overwrite all values with the correct ones including the existing door.

Now I suppose what you are going to say to that is you dont want to manually do it so if that where the case personally i would export out a an excel file from an interactive schedule that you setup grabbing only the information you want and read that into grasshopper.

Nader Belal
Advisor
ah yeah got it. I have had no need for that sorry
You don't have say that you're sorry, you're being helpful.
As far as the classification manager and property groups go as I said those can be read in by importing an xml so its really simple to create those if you know how to write out XML.
Look, that would be practical if we are talking about few instances of an object, a mechanical copy & paste operation, but if you have huge bunch of them it becomes totally impractical & prone to error, just as you said
this entire workflow is iterative
A good friend of mine have once told me that I´m so brute that I´m capable of creating a GDL script capable of creating GDLs.

Nader Belal
Advisor
Now I suppose what you are going to say to that is you dont want to manually do it so if that where the case personally i would export out a an excel file from an interactive schedule that you setup grabbing only the information you want and read that into grasshopper.
Still, this can be practical in cases were we are dealing with few objects, too little or too unique to make an error.

I have even imagined doing your idea, but with GDL exporting values in an XML file, then use excel to map them accordingly but still, there is something there that doesn't convince me ... may be I will give it a try with your way
A good friend of mine have once told me that I´m so brute that I´m capable of creating a GDL script capable of creating GDLs.

Joe Putnam
Newcomer
Moonlight wrote:

Still, this can be practical in cases were we are dealing with few objects, too little or too unique to make an error.

this is the current major issue I have with the way the Grasshopper plugin is designed. They need to hire someone that knows grasshopper not just Archicad. The fact that you have to right click to select the library part you want is totally against the design of grasshopper. If that where a string input say with the library part name then there would be no issue with dealing with different library parts.
The same argument goes for everything even layers. Just give me a component that provides a standard grasshopper list of all the layers and let me operate on it with grasshopper components to decide what goes where and why.

Nader Belal
Advisor
Update,

it appears that @leceta have pinpointed the right direction as seen in the snip
A good friend of mine have once told me that I´m so brute that I´m capable of creating a GDL script capable of creating GDLs.

Didn't find the answer? Start a new discussion

Labels

Still looking?

Browse more topics

Back to forum

See latest solutions

Accepted solutions

Start a new discussion!