GDL
About building parametric objects with GDL.
SOLVED!

POINTCLOUD E57 GDL

Hello,

I' have created my first GDL tool. It is a empty object which use CALL command to import my pointcloud to be able in the second time to turn, scale, cut the pointcloud which is already inside my library.

I've found POINTCLOUD command into the GDL guide without understanding the difference between POINTCLOUD and CALL command. Should I use POINTCLOUD command instead of the CALL command ?
Christophe - FRANCE
Archicad Designer and Teacher
Archicad 15 to 27 FRA FULL

OS 11.6 Big Sur - MacBook Pro 2017 - 16Go RAM
"Quality is never an accident ; it's always the result of an intelligent effort" John Ruskin
1 ACCEPTED SOLUTION

Accepted Solutions
Solution
This is clearer ...

When you import an e57, archicad generates an LCF and links this resource from the location of type: Documents / Graphisoft / Point cloud / file.lcf

When we open this LCF we find the famous GSPC (GraphiSoftPointCloud I imagine) which corresponds to 99.99% of the weight of the LCF and a small mobile phone of a few KB. This LCF contains this :


We find in the 3D script of the GSM command GDL POINTCLOUD which is used by Archicad to insert the GSPC (translation of the e57 I imagine). The POINTCLOUD command is therefore inherent in the import of an E57 because the GSM includes the following 3D script :

unID = 3000

hotspot 0,		0,		0,		unID	: unID = unID + 1
hotspot A,		0,		0,		unID	: unID = unID + 1
hotspot A,		B,		0,		unID	: unID = unID + 1
hotspot 0,		B,		0,		unID	: unID = unID + 1

hotspot A/2,	B/2,	0,		unID	: unID = unID + 1

hotspot 0,		0,		ZZYZX,	unID	: unID = unID + 1
hotspot A,		0,		ZZYZX,	unID	: unID = unID + 1
hotspot A,		B,		ZZYZX,	unID	: unID = unID + 1
hotspot 0,		B,		ZZYZX,	unID	: unID = unID + 1

hotspot A/2,	B/2,	ZZYZX,	unID	: unID = unID + 1


if bProject2D then
	addz _upperCutPlaneHeight
	cutplane{2} 0, 1
	del 1

	addz _lowerCutPlaneHeight
	rotx 180
	cutplane{2} 0, 1
	del 2
endif

_scale3DModelX = scaleX * _scaleOriginalSize
_scale3DModelY = scaleY * _scaleOriginalSize
_scale3DModelZ = scaleZ * _scaleOriginalSize

mul _scale3DModelX, _scale3DModelY, _scale3DModelZ

POINTCLOUD "Maison-Nuage_data.gspc"


del 1		! Delete Scaling

if bProject2D then
	cutend
	cutend
endif
We do not directly use the POINTCLOUD command but it is in fact requested when working with a point cloud.
When I call via the CALL command an LCF send from an E57 in reality the POINTCLOUD command is also requested because it is in the GSM.

So my question was wrong.
Christophe - FRANCE
Archicad Designer and Teacher
Archicad 15 to 27 FRA FULL

OS 11.6 Big Sur - MacBook Pro 2017 - 16Go RAM
"Quality is never an accident ; it's always the result of an intelligent effort" John Ruskin

View solution in original post

7 REPLIES 7
Nader Belal
Mentor
Ok, I haven't touched PointCloud but as a rule of a thumb:

1. Use PointCloud for point clouds
2. Calls to use macros

Differences:
1. Point cloud will render your point cloud in the 3D model

2. Call, is to call a macro (a gsm file) that will execute a predefined procedure that is common in +1 files, that can be static or parametric, hence is the options for sending predefined values for macro's parameters and the possibility of receiving results from the macro using returned_parameters
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.
Hello Moonlight,

I've tried to use POINTCLOUD command without success after 5 tries (by caling gsm, lcf and e57 files) 😕
I'm able to call lcf/gsm about pointcloud with CALL command
I'm able to see it in 2D views and 3D model

I do not understand the aim of POINTCLOUD command.
Christophe - FRANCE
Archicad Designer and Teacher
Archicad 15 to 27 FRA FULL

OS 11.6 Big Sur - MacBook Pro 2017 - 16Go RAM
"Quality is never an accident ; it's always the result of an intelligent effort" John Ruskin
Laszlo Nagy
Community Admin
Community Admin
Christophe,

Try to place a Point Cloud in ARCHICAD. The Point Cloud data will be converted to a GDL Object. Then you will be able to open that object and hopefully see how the POINTCLOUD command is used there.
Loving Archicad since 1995 - Find Archicad Tips at x.com/laszlonagy
AMD Ryzen9 5900X CPU, 64 GB RAM 3600 MHz, Nvidia GTX 1060 6GB, 500 GB NVMe SSD
2x28" (2560x1440), Windows 10 PRO ENG, Ac20-Ac27
I have found the solution from a little french forum.
So I had to write :
POINTCLOUD "Scan_data.gspc"
But I do not understand the aim of POINTCLOUD command.
Christophe - FRANCE
Archicad Designer and Teacher
Archicad 15 to 27 FRA FULL

OS 11.6 Big Sur - MacBook Pro 2017 - 16Go RAM
"Quality is never an accident ; it's always the result of an intelligent effort" John Ruskin
Nader Belal
Mentor
The .gspc is the point cloud in bit representation

Pointcloud is to load the loaded pointcloud to the model
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.
We are already able to CALL pointclouds and modify it by rotation, scale or cut them without POINTCLOUD command so what about the POINTCLOUD command aim ?
We should import pointcloud before using POINTCLOUD command (like CALL command) so it have to be a special aim but which ?
Christophe - FRANCE
Archicad Designer and Teacher
Archicad 15 to 27 FRA FULL

OS 11.6 Big Sur - MacBook Pro 2017 - 16Go RAM
"Quality is never an accident ; it's always the result of an intelligent effort" John Ruskin
Solution
This is clearer ...

When you import an e57, archicad generates an LCF and links this resource from the location of type: Documents / Graphisoft / Point cloud / file.lcf

When we open this LCF we find the famous GSPC (GraphiSoftPointCloud I imagine) which corresponds to 99.99% of the weight of the LCF and a small mobile phone of a few KB. This LCF contains this :


We find in the 3D script of the GSM command GDL POINTCLOUD which is used by Archicad to insert the GSPC (translation of the e57 I imagine). The POINTCLOUD command is therefore inherent in the import of an E57 because the GSM includes the following 3D script :

unID = 3000

hotspot 0,		0,		0,		unID	: unID = unID + 1
hotspot A,		0,		0,		unID	: unID = unID + 1
hotspot A,		B,		0,		unID	: unID = unID + 1
hotspot 0,		B,		0,		unID	: unID = unID + 1

hotspot A/2,	B/2,	0,		unID	: unID = unID + 1

hotspot 0,		0,		ZZYZX,	unID	: unID = unID + 1
hotspot A,		0,		ZZYZX,	unID	: unID = unID + 1
hotspot A,		B,		ZZYZX,	unID	: unID = unID + 1
hotspot 0,		B,		ZZYZX,	unID	: unID = unID + 1

hotspot A/2,	B/2,	ZZYZX,	unID	: unID = unID + 1


if bProject2D then
	addz _upperCutPlaneHeight
	cutplane{2} 0, 1
	del 1

	addz _lowerCutPlaneHeight
	rotx 180
	cutplane{2} 0, 1
	del 2
endif

_scale3DModelX = scaleX * _scaleOriginalSize
_scale3DModelY = scaleY * _scaleOriginalSize
_scale3DModelZ = scaleZ * _scaleOriginalSize

mul _scale3DModelX, _scale3DModelY, _scale3DModelZ

POINTCLOUD "Maison-Nuage_data.gspc"


del 1		! Delete Scaling

if bProject2D then
	cutend
	cutend
endif
We do not directly use the POINTCLOUD command but it is in fact requested when working with a point cloud.
When I call via the CALL command an LCF send from an E57 in reality the POINTCLOUD command is also requested because it is in the GSM.

So my question was wrong.
Christophe - FRANCE
Archicad Designer and Teacher
Archicad 15 to 27 FRA FULL

OS 11.6 Big Sur - MacBook Pro 2017 - 16Go RAM
"Quality is never an accident ; it's always the result of an intelligent effort" John Ruskin

Didn't find the answer?

Check other topics in this Forum

Back to Forum

Read the latest accepted solutions!

Accepted Solutions

Start a new conversation!