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

ParkingLot ER - FREE GDL parametric object

sinceV6
Participant
Hello.

This is a way of saying thanks to everyone in the forum that actively share information, knowledge and advice. I hope you find this contribution useful. My only request is that if you like it after testing, you can pm me for a symbolic donation if you wish, buy me a beer, send me a post card or at least come back and leave a comment here. Also don't be afraid to show some work if you use it.

It was done in the very scarce spare time I have to fulfill the need for a single ParkingLot object with features I constantly use. This was built on top of the "Dynamic Polyline ER" object, just an example of what can be done with it. It might not be the most efficient script -I'm no GDL expert-, but hey... it works for me.

"ParkingLot ER"

FREE GDL parametric object

FEATURES:
-Create and manage vast parking lot layouts with ease.
-No limit on segment numbers: careful though... it is quite complex and has a lot of features and parameters, and just like every complex GDL object, the more segments, the longer it will take to edit and regenerate. I have tested it with 1000 parking spots and it still manages (1000 cars in a single story is a lot of cars. Only in rare cases I go above 100 or 150 per story). Use the special option "Editing large layout" for faster editing, as it disables display of some elements while editing.
-Graphical editing of parking space groups, size, depth, etc.
-Global width and depth, or set it per segment
-Each segment (group of parking spaces) can:
--Have a different parking space size
--Have a different depth
--Turn ON/OFF each side stripe
--Have (or not) car tire bumper & offset
-Symbolic 2D representation options
-Random 2D cars with different seed and density settings
-Number each parking space and show subtotals per segment and grand total, this allows you to have only one object per story to manage all the parking layout.
-3D elevation and inclination per segment (length and depth): it can easily do parking spaces in ramps and platforms in different levels; work first in plan, then elevate in 3D.

-Over 100 parameters allow you to tweak the representation.


LIMITATIONS:
-No user interface script.
-No angled or radial parking. Sorry. I don't use these that much. If your angled layout doesn't have that many spaces, you can build it usign "ParkingLot ER" in a zig-zag manner, alternating ON/OFF segments.
-Not really a limitation, but doesn't have sub-groups (as in "a blank space every 3 cars"); but since it is very flexible, you can just create a segment for each group, and another one for each space (with segment set to OFF)
-Intersection of stripes of consecutive "ON" segments are not cleaned (when side stripes position is set to "Center"). Small quirk. Maybe I'll fix it someday. It doesn't bother me that much.
-Numbering is left->right per segment. You need to keep this in mind when placing/adding segments. TIP: if you need flexibility here, you can place two objects: one for the parking spaces, no numbers; and the other one hiding everything but the numbers and use this one for that purpose.
-Random cars only in 2D.
-Because of the way the script works, when adding a segment that lands in the very beginning (0,0) of the object, it might refuse to build that segment. Just create the last point elsewhere and then drag it to the desired position.

In the Depository->Sitework->Vehicles
http://archicad-talk.graphisoft.com/object_depository.php?

I've kind of tested it, and is working OK for me. If you find any bugs, let me know; I'll fix them if/when I have time.
Enjoy. (for AC15+)

PLER01.png
14 REPLIES 14

sinceV6
Participant
How to use
PLER02.png

sinceV6
Participant
in 3D
PLER04.png

sinceV6
Participant
I'm trying to upload an updated version to the depository but I'm only getting errors.

I added a bunch of options for overhead display.

Will let you know when is working.

sinceV6
Participant
Finally!

New version: 2013.09.23-20:30

- Added a lot of overhead display options
-- Overhead display is calculated for each group of vehicles.
- Modified options for count start/end marks
- Modified position and defaults of a few parameters.
- Fixed a few things.

Please, download again.

Hope you find it useful.
Best regards.

Laszlo Nagy
Community Admin
Community Admin
This looks like a very powerful and useful object.
Thanks for sharing it.
Would you mind also uploading it to bimcomponents.com?
....................................................................................................
Laszlo Nagy, Lead Moderator, Community Admin
Get Archicad Tips at https://twitter.com/laszlonagy
AMD Ryzen 1700X CPU, 48 GB RAM, NVidia GTX 1060 6GB, 500 GB NVMe SSD
2x28" (2560x1440), WIN10 PRO ENG, AC20-AC25
Loving Archicad since 1995

mariosmic
Participant
Great work!
Mac Pro 3 GHZ 16 GB - OS X 10.12 - Archicad 20
www.studioarcrea.com
www.facebook.com/3DMD.3DMediaDesign

Gops
Newcomer
Hi SinceV6

is it possible to add the attached example as an option to your object please?

Thanks.
AC 16-17, Win 7 4 Gig RAM

sinceV6
Participant
Hi!

Well... the answer is yes, it is possible (and quite time consuming to script it correctly); but are you talking about adding it as 3D geometry? It would create a lot (and I mean a lot) of polygons for AC to handle, and I think the option falls out of the BIM scope of things.

For 2D representation, you can create the fill of your pattern and use that in the object's options (parking space background fill). For 3D, it would be better to use a texture. If you are asking because you need it for rendering, a texture (with displacement) should work, and if you want a closeup, repeat the object you made in a small area close to the camera.

Best regards.

Gops
Newcomer
sinceV6 wrote:
Hi!

Well... the answer is yes, it is possible (and quite time consuming to script it correctly); but are you talking about adding it as 3D geometry? It would create a lot (and I mean a lot) of polygons for AC to handle, and I think the option falls out of the BIM scope of things.

For 2D representation, you can create the fill of your pattern and use that in the object's options (parking space background fill). For 3D, it would be better to use a texture. If you are asking because you need it for rendering, a texture (with displacement) should work, and if you want a closeup, repeat the object you made in a small area close to the camera.

Best regards.
Thanks for your reply.

If it can be done for 2D only it would be great for site plan and for the rendering I will do as you suggest.

Thanks again.
AC 16-17, Win 7 4 Gig RAM

Gops
Newcomer
sinceV6 wrote:
Hi!

For 2D representation, you can create the fill of your pattern and use that in the object's options (parking space background fill).

Best regards.
As you advice I finally manage to do it this way.
sinceV6 wrote:
Hi!

For 3D, it would be better to use a texture. If you are asking because you need it for rendering, a texture (with displacement) should work

Best regards.
This also was very helpful.

Thanks a lot and sorry that I did not figure out the parking background fill at first and thought that it should be added to your smart object.
AC 16-17, Win 7 4 Gig RAM

sinceV6
Participant
Glad I could help and you found the object useful. If you can, share how you used it! It would be great to actually see it used in a project.

I know that the interface script would help a lot to lay down and see all the options in a friendly way, but I've always thought it is just too much code for that. The parameter list works for me.

Best regards.

Hi Since V6

Great Job!
Thanks!

I found a small bug. when I choose fixed size the 3D model does´t show wright.

sinceV6
Participant
Well that's weird How come I didn't catch that one before? I usually test each feature thoroughly before moving on to the next one.

Anyway, great catch. Easy fix. Found a couple of variables that were wrong, and somehow the tests came clean.

segmentMiniumuSize

should be

segmentMinimumSize

in the part that checks the sizeMode variable in the masterScript.

You could just correct those or, the easy way: open the object, look for the "Calculate # of spaces per segment" part in the MasterScript and replace the whole chunk with:
 
!===CALCULATE # OF SPACES PER SEGMENT AND PARKING SPACE SIZE PER SEGMENT===== 
DIM spacesInSegment[], spaceSize[], spaceSize3D[] 
 
FOR i=1 TO segments+1 
	IF segmentMinimumSize < minSizes THEN segmentMinimumSize = minSizes 
NEXT i 
segmentMinimumSize[points+1]=spaceMinimumSize 
 
PARAMETERS segmentMinimumSize = segmentMinimumSize 
 
FOR i=1 TO segments 
	IF segmentControl<0 THEN 
		spacesInSegment=0 
		GOTO 'NEXT SEGMENT SPACES' 
	ENDIF 
	!========== 
	IF constantMinimumSize THEN 
		spacesInSegment = INT(hypotenuse2D/spaceMinimumSize) 
	ELSE 
		spacesInSegment = INT(hypotenuse2D/segmentMinimumSize) 
	ENDIF 
 
	spacesInSegment = spacesInSegment 
	!========== 
	IF spacesInSegment>0 THEN 
		IF sizeMode = 'Adjusted' THEN 
			spaceSize = hypotenuse2D/spacesInSegment 
			spaceSize3D = hypotenuse3D/spacesInSegment 
		ENDIF 
		!========== 
		IF sizeMode = 'Fixed' THEN 
			IF constantMinimumSize THEN 
				spaceSize = spaceMinimumSize 
				spaceSize3D = spaceMinimumSize * (hypotenuse3D/hypotenuse2D) 
			ELSE 
				spaceSize = segmentMinimumSize 
				spaceSize3D = segmentMinimumSize * (hypotenuse3D/hypotenuse2D) 
			ENDIF 
		ENDIF 
	ENDIF 
	!========== 
 
'NEXT SEGMENT SPACES': 
 
NEXT i 
 


Should work now, if not, let me know.

Sorry for the inconvenience.

Best regards.

Great! Now it´s working perfectly

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!