Libraries & objects
About Archicad and BIMcloud libraries, their management and migration, objects and other library parts, etc.

How do I keep size and proportion correct for 2D symbol of object I create?

Bill
Contributor
I am creating some 'dummy' light fixtures (dummy in that they don't cast light... they look correct as 3D objects so that they can be used in my elevations, but I want to represent them in plan with generic 2D RCP symbols).

If the 2D symbol is deeper than the actual depth of the object, the symbol keeps getting shrunken to the depth of the object when it's shown after the object is placed. For example, the object is 4" deep and the lines/fills I place in the object's 2D symbol total to 8" deep, but when I save the object and place it the symbol is distorted down to only 4" deep.

I had the opposite happen when the symbol I wanted to use was shallower than the actual object. I placed hotspots in the 2D symbol at the actual depth corners and that kept the size/proportion correct... but I can't get it to work if the symbol is deeper.

What do I need to do to get the symbol to show correctly?

Thanks!
Bill Szustak RA

Principal, Springboard Design

ArchiCAD 25, macOS Ventura 13.4.1
10 REPLIES 10
Lingwisyer
Guru
So you want the size of your 2D symbol to be independent of your 3D representation?

Not sure why you would, but if you go into your 2D Script you could replace all of the A / B parameter references with static numbers, or your own custom parameter.

If this object was automatically generated, then just comment out the MULx A/x and MULy B/y near the start of the 2D Script.



Ling.



*This post should also probably be in the Library / GDL sub-forum.

AC22-23 AUS 7000Help Those Help You - Add a Signature
Self-taught, bend it till it breaksCreating a Thread
Win10 | R5 2600 | 16GB | GTX1660 
Bill
Contributor
Ling,

Thanks for the reply! When i click on the 2D script it's blank, so what do i do then?

The reason that I want them independent can be seen if I am trying to use two different wall sconces in a project... for RCP purposes I just want to use the same generic matching 'wall sconce' symbol for both, even though I want them so show as their accurate representations in the 3D model.
Bill Szustak RA

Principal, Springboard Design

ArchiCAD 25, macOS Ventura 13.4.1
Barry Kelly
Moderator
Topic has been moved.

If there is no 2D script then it will use a projection of the 3D view.

You will either need to script the 2D view (with no references to A or B values so it will not stretch).
Or you can use '2D Symbol' window to draw the 2D image (you can copy and paste it in if you already have it drawn somewhere).
You then need to use FRAGMENT2 command to use this in the 2D script.
i.e. FRAGMENT2 1,0 - if you placed the drawing in fragment layer 1.


Barry.
One of the forum moderators.
Versions 6.5 to 27
Dell XPS- i7-6700 @ 3.4Ghz, 16GB ram, GeForce GTX 960 (2GB), Windows 10
Lenovo Thinkpad - i7-1270P 2.20 GHz, 32GB RAM, Nvidia T550, Windows 11
David Maudlin
Virtuoso
Bill:

I think it will be easier for forum members to understand your issue if you post the Object you are trying to fix. You should be able to zip it then attach it to your post.

David
David Maudlin / Architect
www.davidmaudlin.com
Digital Architecture
AC27 USA • iMac 27" 4.0GHz Quad-core i7 OSX11 | 24 gb ram • MacBook Pro M3 Pro | 36 gb ram OSX14
Bill
Contributor
David,

That's a good idea.

Attached is a zip file showing the light fixture in it's true representation, and then how it gets distorted in 2D when I try to get it to use ArchiCad's typical wall sconce symbol... as you can see, the symbol's width is OK but the depth gets shortened to the depth of the modeled element.
Bill Szustak RA

Principal, Springboard Design

ArchiCAD 25, macOS Ventura 13.4.1
Barry Kelly
Moderator
Bill wrote:
Attached is a zip file …..
What you have done can be fixed, but it is probably easier to create a new object.
Simply adding FRAGMENT2 1,0 to the 2D script will stop the scaling of the 2D symbol.
However another problem will arise.
The 2D symbol will not be at the center of the object when you do stretch it.
The 3D will stretch and the 2D will stay where it is - I assume you don't really want this.

The object was created by saving a 3D model as an object.
When it was saved the 3D model was not centered about the project origin - so transformations are automatically added to compensate for this.

So if you want to re-create it, move the model to the project origin in plan and place it centrally on that origin.
Because it is a light that fixes to the wall, move it so the back plate is level with the origin.


Also adjust the height of the model so the point you want to reference the height above floor to is set at the 3D project origin.


Basically, you want your model to be positioned at the project origin so the point you want to position it by when placing the object is at the origin.

Now save the object and open the scripts.
Place the 2D symbol that you want in the 2D symbol window.
Make sure you place it at the origin in the same position that you placed the 3D model.


Now a little clean up.
Because this is generated from automatic scripts, you will need to delete or comment out the ADD command at the beginning of the 3D script - so the model is at the origin as you originally positioned it when saving.


Delete the script in the 2D script window (it is not needed) and add .... FRAGMENT2 1, 0

Save the object.
Now when you place it you have a hotspot at the base point at the back of the wall plate (fixing position).
The 2D symbol will not stretch if you need to make the 3D bigger or smaller.


Barry.
One of the forum moderators.
Versions 6.5 to 27
Dell XPS- i7-6700 @ 3.4Ghz, 16GB ram, GeForce GTX 960 (2GB), Windows 10
Lenovo Thinkpad - i7-1270P 2.20 GHz, 32GB RAM, Nvidia T550, Windows 11
Bill
Contributor
Barry, thanks for the detailed response!

I was able to follow all the way until the last step... when I open the 2D Script window it's empty. So I paste in FRAGMENT2, 1, 0 and go to save it but I get a warning message

Empty expression , value is zero (not recommended)
at line 1 in the 2d script of file lamp2.gsm

If I save anyway I get no symbol whatsover in the model... what am I doing wrong?
Bill Szustak RA

Principal, Springboard Design

ArchiCAD 25, macOS Ventura 13.4.1
Lingwisyer
Guru
Remove that first coma.

FRAGMENT2 1, 0

AC22-23 AUS 7000Help Those Help You - Add a Signature
Self-taught, bend it till it breaksCreating a Thread
Win10 | R5 2600 | 16GB | GTX1660 
Bill
Contributor
That did it!

Both of you, many thanks!
Bill Szustak RA

Principal, Springboard Design

ArchiCAD 25, macOS Ventura 13.4.1