Introduction to Object Making with ArchiCAD

GDL for Beginners Written by David Nicholson-Cole

Graphisoft
Visit the Graphisoft website at http://www.graphisoft.com for local distributor and product availability information.

Introduction to Object Making with ArchiCAD: GDL for Beginners
© 2004. Originally written 2000, rewritten 2004 by David Nicholson-Cole. All rights reserved. Reproduction, paraphrasing or translation without express prior written permission of Graphisoft is strictly prohibited. Cover credits: Marks Barfield Architects, creators of the British Airways London Eye, http://www.marksbarfield.com. GDL model by David Nicholson-Cole. Published by GRAPHISOFT R&D Rt. 2004 edition. The version of GDL described in this manual is compatible with ArchiCAD 8.1, ArchiCAD 9 and ArchiFM 2000.

Trademarks
ArchiCAD and ArchiFM are registered trademarks and PlotMaker, Virtual Building, StairMaker and GDL are trademarks of Graphisoft. IFC and IAI are trademarks of the International Alliance for Interoperability. Artlantis and PhotoCAD are trademarks of Abvent. Piranesi is a trademark of Informatix. ArchiFacade is a trademark of Cigraph. Lara Croft is a trademark of Core Design. Lightworks is the trademark of Lightwork Design. All other trademarks are the property of their respective holders.

About this Book
Introduction to Object Making is designed to help you get more enjoyment and productivity from ArchiCAD: it takes you beyond the confines of the standard ArchiCAD Tool palette into the realm of object making. We hope that this little primer will open up new worlds for each user. Part I, Object Making Without GDL, shows you how to make objects using existing tools, without having to touch any GDL script. Part II, Beginners’ Guide to GDL Scripting, eases you into the possibilities of GDL scripting. We hope you will find the transition enjoyable, but please note that you don’t have to read the whole book to get useful information: even if you never get to the GDL script, the initial object-making tips will greatly enhance your confidence and productivity with ArchiCAD. Some of the examples used in the book will be available from the support website or from the installer CD.

about object making from other sources, including the reference manuals, for which all the authoring team should be thanked. It takes object making a lot further than the original volume. The author would like to thank his editing team at Graphisoft - Anett Csaki, Tibor Szolnaki and Akos Pfemeter - for their regular emails of advice and support. He would also like to thank Karl Ottenstein of Sandpoint, Idaho for his critiques and technical proofreading during the writing.

Printing Note
We have provided this as a .PDF file, but we have designed it with chapters starting on odd numbered pages. This is to enable you to print out your own copy and run it off on a double sided photocopier if you wish to save paper.

About the Author
David Nicholson-Cole is an architect and teaches at Nottingham University in the UK. He has been an enthusiastic evangelist for GDL and a prodigious producer of GDL objects since discovering the power (and the pleasure) of GDL. He made his mark in the GDL world as the author of the series of GDL training books, the GDL Cookbook. David founded the ‘ArchiCAD University’ series of user conferences, and is a founder member of the GDL Alliance. The GDL Cookbook 4 logically follows after the book you are now reading. It is an A-Z of GDL technique, and is usable in its own right as a GDL manual. David has also travelled around the Globe at the invitation of ArchiCAD dealers and their customers, teaching GDL.

Acknowledgements
Introduction to Object Making with ArchiCAD: GDL for Beginners was developed in concept by Graphisoft as a means of filling the gap between the GDL Cookbook and the existing reference manuals. The first edition was in 2000 for ArchiCAD 6.5 and 7.0. This edition has been completely rewritten during 2004 to include ArchiCAD 8 and ArchiCAD 9 thinking and techniques. It contains easy to follow exercises in object making, and pulls together wisdom

3

Introduction to Object Making with ArchiCAD

4 Introduction to Object Making with ArchiCAD .

.35 3. . . . . . . . . . . . . . . . . . . . .3 Bring a file in from DXF/DWG. . . . . . . . . . . . . . .4 Making Objects with Add-ons and Solid Geometry . . . . . . . . .69 The table can be tuned up – to be parametric . . . . . . . . . . . . . . .CONTENTS PART ONE: OBJECT MAKING WITHOUT GDL______________ 7 Chapter 1: Introduction to Object Making . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45 4. . . . . .30 Urban modelling – entire sites can be objects . . . . . . . . . . . . . . . . . . . . . . .39 Introduction to Object Making with ArchiCAD PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING _____ 40 Chapter 4: Starting with GDL. . . . . . . . . . . . .36 Solid Element Operations (SEO) to the rescue! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Popdown Menus: allow many choices. . . . . .50 Subtypes – you can put this into a category. . . . . . .77 Try instant GDL with a REVOLVE . . . . . . . . . .. . . . . . . . . . . . . . . . . .6 Convert Mesh to Roof . . . . . . . . . . . .37 Notes on the naming of parts .1 Starting with GDL .61 Writing Prisms from new. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68 Chapter 7: Looking into Autoscripted GDL . . . . . . . . . . . . . . . . . . . . . . . . . . .26 3. . . . . . . . . . . . . . . . . . . . . . . .77 7. . . . . . . . . .17 Getting started with Object Making . . . . . . .7 1. . . . . .40 The Scripts and Buttons in the Parameter Table. . . . . . . . . . . . . . . . . .8 Sources of Library Parts. . . . . . . .2 Boolean parameters – easy options . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Making your own Library Parts . . . . . .44 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43 3D Space and the 3D Cursor . . . . .20 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52 5. . . . . . . . . . . . . . . . . . . . . . . . .14 Can you learn GDL?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40 3D Entities . . . . . . . . . .1 Looking into Autoscripted GDL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16 Chapter 2: Object Making without GDL 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27 3. . . . . . . . . . . . . . . .1 Making Objects without GDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69 Examine the 3D script of the autoscripted table . . . . . . . . . . . . . . . . . .3 Urban Modelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 2. . . . . . . . . .43 Do not forget the 2D script . . . . . . . . . .81 Golden Rules for Subroutines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 How do you make an Object? . . . . . . . . . . . . .44 Summary of GDL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54 5. . . . .25 Chapter 3: Object Making without GDL 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66 Summary of GDL in this section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Make a Flywheel with Profiler! . . . . . . . . . . . . . . . . . . . . . . .42 3D View. . . . . . . . . . . . . . . . . . . . .5 Let’s Make a 3D Window with slabs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 About Object Making . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 2. .1 Using Basic Shapes from the Library . . . . . . . 52 5. . . . . . . . . . . . . . . . . . . . . . .12 Without GDL – using ArchiCAD’s Tools .62 6. . . . . . . . . . . . .14 Does it need to LOOK right. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12 Making Objects with GDL Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Let’s make this chair parametric. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39 Summary of Object Making in this chapter . . . . . . 69 7. . . . . . . . . . .11 Add-ons that make Objects . .4 The MultiObject concept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Let’s make an Object by Cutting . . . . . . . . . . . . . . . . . . . . . . . .72 Cautionary note for modifying objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 Let’s make a Chair using Wall tool. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42 Check Script . . . . . . . . . . . . . . . .15 The ArchiCAD experience . . . . . . 17 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31 Profiler – for extrusions and lathing . . . . . . . . . . . . . . . . . . . . . . . .19 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . .32 3. . . . . . . . . . . . . . . . . . . . . . . . . . 40 4. . . . . . . . . . . . . . . . . . . . . . . . . .1 The Power of PRISM. . to this point. . . . . . . . . . . .46 4. . . . . . . . .52 5. . . . . . . . . . . . . . . . . .2 Apply Prisms to the chair seatframe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56 Summary of GDL in this chapter . . . . . . . . .30 Urban modelling – entire buildings as objects . . . . . . . . . . . . . . . . . . . . . . . . . . 81 8. . . . . . . . . . . . . . . . . . . . . . .31 Urban modelling – the Camera is the mightiest weapon! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 Read about Object Making . . . . . . .80 Summary of GDL in this section . . . . . . . . .4 First steps in 2D scripting . . . . . . . . . . .26 Make a ‘Banana’ Truss or Mullion object. . . . . . . . . . .7 Let’s make a Roof Truss with Fills . .2 Come back to ‘Instant GDL’ . . . . . . . . . . . . . . . . . . . . . . .82 5 . . . . . . . . . . . . . . . . . .7 Carving Walls with the Roof tool . . . . . . .50 Summary of GDL. . . . . . . . . . .59 Chapter 6: The Power of PRISM . . . . . . . . . . . . . . . . . . . .22 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . or BE right? . . . . . .12 1. . . . . . . . . . . . .23 Summary of Object Making in this chapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . in this chapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80 Chapter 8: Build on the power of GDL . . . . . . . .2 Let’s make something in 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42 First steps in 3D GDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 Library Parts in ArchiCAD . . . . .33 3. . . . . . . . . .. . . . . . . . . . .60 PRISM is the most versatile element in 3D GDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Let’s build a 3D Object – a Chair . . . . . . . . . . . . . . . . . . . . . . . .38 Why bother to make objects? . . . . . . .78 Modifying objects made with Add-ons . . . . . . .1 Providing Options in GDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48 Selecting Objects . . . . . .64 6. . . . . .50 Chapter 5: Providing Options in GDL . . . . .35 Other free Add-ons within ArchiCAD .38 Are you using the Student version? . . . . . . . . . . . . . . . . . . . . . . . . . . .14 The idea of an ‘Investment Object’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 Subroutines . . . . . . .4 Let’s make a 3D Object – a Table . . . . . . . . . . . .62 About Prism syntax.3 Learn about Circle Geometry and make the chair more comfortable. . . .26 3. . . . . . 60 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60 ‘Instant GDL’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . 95 9. . . . 100 10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 The FOR. . . . . . . . . 90 9. . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . 96 9. . . . . . . . . . . . . . 89 9. . . . . . . . . . . . . . . . . . . 117 11. . . . . . . . . . . . . . . . . . . . . . . . . . . 89 9.4 Rectangular ‘cutout’ – the combination object . . . . . . . . . . . .3 Make your own Billboards using the Alpha Channel with PICTURE . . . . . . . . . . . . . . . . . . . . . . . .2 Macros . . . . . . . . 116 11. . . . . . . . . . . 115 Let’s write some Graphical Hotspots . . 119 11. . .4 Try a very complex window! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Subroutines versus Macros . . . . . . . . . . . . . . 108 Summary of GDL covered in this chapter . . . . . . . . . . 83 Complex example of Macros . . . . . . . . . . . . . . . . . . .1 GDL Roundup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 11. . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Other ways of Looping . . . . . . . . . . . .7 Advice for Newcomers to GDL . . . . . . . . . . . . . . . . 97 Summary of Billboarding in this section . . . 108 Objects can be better than Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 GDL Windows and Doors . . . . . . . . . . . . . . . . . . . . . 119 11. . . . . . . . . . 105 Note for future versions of ArchiCAD. . 88 Chapter 9: Billboard Objects . . . . . 112 Loop by Angle. . . . . . . . . . . . . . . . . . 118 11. . . . . . . . . . . . . . . . . . . . . . . . .6 Billboard creation – the photograph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 108 Chapter 11: GDL Roundup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Solid Geometry Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NEXT Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Defining Text in 2D. . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . 99 The Rules of Windows and Doors . . . . . . . . . . . . . . . . . . . . . . . . .3 Graphical Hotspots . . . . . 110 11. . . . . . . . . . . . . . . . . . . . . . . . .3 Textures – the big secret revealed . 120 Index ___________________________________________________ 121 6 Introduction to Object Making with ArchiCAD . .2 Loops – FOR. . . . . . . . . . . . . . . . . 111 Loop by Distance – and optimise it! . . . 85 You could do Texture mapping with a Macro . . . . . . . . . . . . . . . . .8 Summary of ArchiCAD 9 changes . .1 Billboard Objects – use picturereality! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 The Billboard idea in 2D? . . . . . . . . . . . . . . . . . . . . . . . . .Contents 8. . . . . . . . . . 87 Summary of GDL in this section. . . . . . . . . . . . . . . . . 110 The programming language of GDL. . . . . . . . . . . . . . . 84 8. . . . . .3 You can make Skylights too . . . . . . . . . . . .2 Revisit the Window . . . . . . . . . . . 98 Chapter 10: GDL Windows and Doors . . . . . . . . 99 10. . . . . . . . . . . . . . . . . . .2 Make your own Billboards as accurate Cutouts . . . .. . . . . . . . 114 11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 Other possibilities . . . . 116 Solid Geometry on the chair. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Smart way to recalculate spacing . 87 More things to note on textures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NEXT . . . . 99 10. . . . . . . 111 Loop by counting numbers . . .

.. trees. these are also referred to extensively as Library Parts. why should we bother to make objects? Well. open or swivel. 7 . you can use special objects such as furniture. lamps and components. Whenever you need to go beyond walls and floors. • Details of building construction that look authentic. correct. offer a choice of styles for frames. and magnificent interplay of volumes assembled under light”. • Components that conform to catalog numbers and manufacturers’ specifications. If you wish to take object making further. • Label tools or blocks of custom text. slabs. it needs to be read with the GDL Reference Manual. meshes. and then – let the play begin! Most of the objects in the ArchiCAD assembly area are building elements – walls. your next stages after this primer are to take a more informed look at the manual and GDL Help menu. illuminate them. • Skylights and Dormers that cut holes in roofs like windows cut holes in walls. In ArchiCAD manuals.1 About Object Making The real 3D world can be thought of as a vast assembly of objects made visible in light. • Furniture that is smart. functional and elegant. It is not entirely self contained. These elements are easily made with the tools given to you in ArchiCAD. In short. ArchiCAD’s 3D environment can be thought of as a large theatrical stage where you assemble the cast (the elements and objects). etc. the set (the plan) and the screenplay (the design idea). Dip into these frequently. These can be found in your library or made specially. • Lamps that can transform the environment of a model. and to work with the GDL Cookbook.Le Corbusier 1. with or without GDL. So. we can make: • Structural elements that are right for their purpose. ironwork and leaves or sashes. You bring the objects together. or even whole buildings. Architecture is. • Stairs in which you can vary landings. windows and doors. risers and handrails. This book is intended to ease the ArchiCAD user safely into making objects. • Windows. • 2D drawing objects and tools that can enhance your productivity and drawing accuracy.PART ONE: OBJECT MAKING WITHOUT GDL CHAPTER 1: INTRODUCTION TO OBJECT MAKING An introduction to the possibilities of object making in ArchiCAD. – brought together to form buildings. columns. the pleasure and productivity of the ArchiCAD user can be greatly enhanced with objects. -. all of which take you progressively into more advanced GDL. Doors that cut holes in walls. the Help Menu and the main ArchiCAD Reference Guide. “the conscious. Introduction to Object Making with ArchiCAD • Picture objects that can be placed in a model to look like people. roofs.

you have to get these right before saving the object. This introduction to object making will encourage you to build objects yourself. such as click and stretch. or experimenting with GDL. The existing ArchiCAD Library is a folder in your installed ArchiCAD directory. ArchiCAD must be able to find the object. you may also find add-ons such as ArchiTerra. skylights etc. however you make it. The Eureka Tower in Melbourne. it reads through the library directories (folders) and makes an index of what it finds. Australia. roofs. windows. but more significantly it will encourage you to try to make them capable of offering variations – thus they could be partially parametric. ArchiCAD’s own library will be loaded (by default) but when you are running a project. StairMaker. Every time you open ArchiCAD. Profiler or RoofMaker. In the Tools palette or the Tools menu or Extras menu. you are used to getting an object whose only possibility for variation is stretchiness. Libraries must be loaded Whatever you make. you will have noticed that most library parts offer many chances for variation (called parameters) such as the number of mullions in a window or glazing styles in a door. columns. lamps. When you are working with ArchiCAD. Make sure you do not make objects or folders with the same names as ones that already exist in the libraries. slabs. The ArchiCAD Tools palette also offers access to library parts: furniture objects. etc. you can use the primary modelling tools – walls. Library Parts in ArchiCAD When you build an ArchiCAD project. you should make additional folders of your objects. click and click again to indicate direction. pens and fills) of representing themselves in the 3D view and in 2D. by Fender Katsilides: Object Technology is not just for pretty renderings – it is central to the task of construction documentation. They may also offer different ways (in materials. make sure that the folder you are saving your objects to is one of your loaded libraries. 8 Introduction to Object Making with ArchiCAD . or you may encounter an entire dialog box containing instructions and many data fields In your use of ArchiCAD. To place an object in the project you can use different actions. You are not offered a choice of materials. doors.PART ONE: OBJECT MAKING WITHOUT GDL If you have tried making objects in ArchiCAD without GDL (we will call these ‘Autoscripted’ objects).

design. The GUID is very powerful – more so than the object’s name. Graphisoft play a leading part in this movement. If your ArchiCAD model uses internationally sourced GDL components. Objects in the environment can be classified by Subtype – for example they will be Seating. but let’s look at the four most notable changes that affect the object maker. ‘tepe_penceresi’. Storage or other similar categories. The object was still in the 9 .GSM. I changed the name of an object in a library. ‘fenster’. textures etc. Roof structure. and the design process is just one stage in the life of the building.. reloaded libraries and checked the plan. and ensure that you have loaded them. Subtypes: All object names now end with a . ‘iskemle’. ‘janela’. should be logically named and organized. lamps etc. ‘parathiro’? Is a ‘lanterna’ a lamp or a skylight? ArchiCAD knows! You can either make a new library folder that relates to current projects. and they carry a unique internal ID number which enables ArchiCAD to know if they are windows. The IFC concept considers the lifecycle stages of conception. doors. As a risky experiment. What’s new since the last object making book? There are many small changes in the GDL since the year 2000. window objects. how does it know the difference between objects called ‘sedia’. Documentation is vital at every stage and buildings have to be managed by teams of people who require access to shared information databases. building components. and enables the APIs inside ArchiCAD to perform correctly whatever the object’s name – so a skylight will cut a hole in a roof but not a wall. International conferences have agreed on a way of classifying objects in the virtual world called Industry Foundation Classes (IFCs). ‘Tür’. Windows. A 3D model is in reality a vast database. or your objects can be stored in a personal library in the ArchiCAD folder. Subfolders to keep furniture objects. of which the 3D form is a visible manifestation. The main point is that you should know where they are.PART ONE: OBJECT MAKING WITHOUT GDL demolition of the built environment. a lamp will have brightness and colour controls but cannot cut holes in a roof. management and even Introduction to Object Making with ArchiCAD All objects now have an internal identity code GUID (Globally Unique IDentifier) which includes the subtype classification.

texture mapping. This affects you because previously. Future developments with ArchiCAD Whichever version you are using by the time you read this.lightworks. textures were relatively unconsidered. This carved wood arch is now easy with SGC. using accelerated routines on dedicated hardware – the graphics card of your computer. you can pull or push the drawers. soft shadow and reflection features and complex shader editing capabilities. so that users have been able to adapt Introduction to Object Making with ArchiCAD 10 . Open GL drawings can be preferred to renderings as they include pen lines. we can now add them and get cleancut junctions. shading. Every new release has been safely incremental. Previous versions of GDL only permitted stretching of an imaginary cuboid around the object. and looked the same in 3D view – because the GUID was unchanged (don’t do this at home!). Find more details in the ArchiCAD 9 documentation.PART ONE: OBJECT MAKING WITHOUT GDL correct place. Now it looks blatantly horrid if you are lazy with textures and all your woodgrain goes the wrong way. lighting. You can see a quick sample of the IFC categories in GDL by going to File>GDL Objects>Open Object by Subtype – click open the cascading groups and you will get a comprehensive listing of the possibilities – even animals. as in most of the illustrations in this book. The Lightworks rendering engine is now built into the ArchiCAD rendering interface. Where intersecting tubes would look acceptable in 3D render but wrong in wireframe. GHs are very rewarding to write and get working.com/. swing open or shut the doors. with its new name. and works with ArchiCAD’s own elements. Rendering: ArchiCAD 9 introduces the major advance in rendering technology. It is one of the most popular rendering engines available on the market. This structural steel tube can be stretched and twisted and rotated – in 3D space and in 2D using graphical hotspots. For the GDL writer. etc. It is much faster than ArchiCAD’s 3D engine. and see the website: http://www. Currently more then 80 applications are licensing this technology and a total of 1 million end users are using it. geometry transformations. Open GL: This is a new engine for fast 3D visualisation. Mac or PC. cars and railings are included. Open GL includes routines for hidden line. Lightworks. Lightworks gives you the ability to create high quality photorealistic images within ArchiCAD. These are similar to the Solid Element Operations in ArchiCAD. Graphical Hotspots (GHs): GDL objects can now have custom hotspots in any part of the model for editing its configuration. It can also cope with models of more polygons allowing a higher level of detail. anti-aliasing. more curviness. change the spacing of shelves or dividers – it is easy to do using hotspots in the 3D or the 2D or both. originally devised by Silicon Graphics. you can be sure that it will be easy to find your way around. Now an object of some complexity can be manipulated by the user – in a piece of storage furniture. texture filtering. Lightworks offers ray-tracing. and the hotspot coding is not difficult. Solid Geometry Commands (SGC): We can achieve a far more authentic 3D appearance and improved line drawing of objects by adding or subtracting solids. We can now subtract 3D outlines out of a 3D solid surface (for example spherical indents into a slab) to create shapes that could not be built with ‘positive’ construction commands.

as DXF/DWG files can be used in ArchiCAD.3dcafe. Sites like 3D Cafe (www. the internal code of ArchiCAD. Beam and Mesh. For 3D. DXF and DWG Libraries Most building component manufacturers offer disks of DXF/DWG files. You will be able to see how parameters change and this will make you think about what qualities you might like to include in objects that you make – such as useful 3D options. such as People and More. Roofs) have changed for the better. but never so differently that an experienced user couldn’t immediately make use of it. 3DS – save them as a DXF/DWG. but are still familar with each new release. and rendered. Slabs. Rhino. They will be much slower to load. Theometrics.A. 2D DXF and DWG files can be brought straight into the Project plan.com) and Objects On Line (www. they will not be parametric. Complementary Libraries Several specialist libraries are available on the web or on CD from companies specialising in object making and add-ons. downloaded to the user. Investigate what already exists. If you explore the Introduction to Object Making with ArchiCAD Using old libraries – update library parts You can use library parts from older ArchiCADs providing they have 3-letter suffices. GDL is very widely supported – the web is full of sites with object making advice and downloads. com) are full of third party objects – although these will be mostly DXF/DWG models requiring import into ArchiCAD via GDL. Cigraph. you can discover the addresses of manufacturers using GDL for products. Internet. gdlcentral. and may work 11 . pop down menus and even a user interface. you can also make objects with other applications from 3rd parties – Zoom. then bring them into ArchiCAD as a library part. the continuous Line tool – and in recent times. Where you see the opportunity to make library parts out of DWG or DXF originals. and you can save the resulting varied forms as separate DXF/DWGs. you will find an increasing number of websites devoted to ArchiCAD objects and add-ons such as GDL Central (www. you may be able to take advantage of the parametric power available to you in GDL.objectsonline. You can also work in the other direction. although most of these are 2D only. Design Workshop. etc. with the free GDL object web browser plug-in. changed parametrically. GDL objects can be viewed in a browser. ArchiRadar.PART ONE: OBJECT MAKING WITHOUT GDL readily to new capabilities. AutoCAD. 3D authenticity and intelligible 2D symbols. stretchiness with hotspots. Try some of these in Google: Studio Arkada.. It is always worth getting these. Arkiklub. The Graphisoft website gives you an up-to-date list of addresses of such sites. and later adapt to the new features as they became evident. We have an extra armoury of tools like the Column. has also changed over the versions. From GDL Central. M. we have the technology of ‘Add-ons’ – custom tools which make modelling even easier. and you will be able to make use of them in GDL. You will find that. nice textures. Sketchup. If you take the time to learn GDL. GDL Alliance. almost as if you were examining them from within ArchiCAD – and then perhaps. The DXF/DWG Conversion Guide included in your ArchiCAD package explains this procedure in more detail. GDL itself. Sources of Library Parts The ArchiCAD Library It is worth going through the ArchiCAD Library included with your package before you start creating library parts on your own. Parts you create in GDL will wholly or partially work in AutoCAD or ADT using the GDL Adaptor.D. clear organization and description of parameters. you have the advantage over other CAD users in that you can make a 2D or 3D library part in GDL that is parametrically variable. Hoshino. This will give you an idea of what you can use and do not need to make. The fundamental modelling tools (Walls. com). However good they may look. and the examples in there will give you ideas of what is possible.

or short thin walls. Be warned. Roof. saved as little chunks of GDL. 1. It is bringing them all up to date with GUIDs and other AC8/9 characteristics. for example. cones and domes in the ArchiCAD Library that you might also use as part of your object. Library parts originating from the floor plan can be saved either as ‘Editable’ scripts or in ‘Binary’ format. Sometimes the objects you make with ArchiCAD tools are more easily built on their side. A lipped edge to the top could be made with a very thin low wall. though. Boot up ArchiCAD holding down the Opt-Cmd keys (Mac) or Alt-Ctrl (PC) – you will see the Special Menu appear. Shapes can be drawn out in the floor plan with the wall. but are easier to build in the first place. Zoom GDL. Sometimes you will not be able to make an object all at once. Later in this book there is an exercise to demonstrate this procedure.PART ONE: OBJECT MAKING WITHOUT GDL incorrectly. application-dependent data. you must return to the original floor plan document. Add-ons that make Objects There are a number of third party programs that can create or edit ArchiCAD library parts. you will quickly see the benefit of learning even a small amount of GDL. You may have to make the legs first and save those. Now select ‘Update Library parts’ from the Special Menu. For the more experienced object maker. Profiler. model a dining table easily by using walls and slabs. ArchiForma. This bentwood chair is entirely made from small walls. but do not allow editing. Some of the most interesting possibilities are with the Mesh tool. If you save floor plan elements as a GDL script. modify the model. Editable scripts give you some GDL so you can enhance the library part’s 3D appearance by modifying its script. that this final object will only work if all the subsidiary objects can be found in the loaded libraries. Roofs and other ArchiCAD 3D tools are available in the Tools palette as custom tools for object making. for example. You could. then make the superstructure. Trussmaker. and have no parameters other than ones enabling stretchiness – width. depth and height. in which you can rotate shapes however you want. If you want to perform other modifications. You can do useful work on a script. There are primitives such as cylinders. GDL Toolbox. The resulting structure can be viewed in the 3D window and saved as a library part. Because you cannot rotate objects in the ArchiCAD floor plan (other than around the Z axis). The Wall tool creates bits of script which are harder but not impossible to modify. Floor and Wall Accessories. The tabletop could be a slab. which makes surfaces that can be converted to roofs and saved as objects. and save the whole result as your final library part. The legs could be tall. 3NF. and save it again as the same or as another binary library part. Objects created by these Add-ons contain GDL scripts as well as other. rather than upright. mainly in editing materials and pen values.2 Making your own Library Parts Without GDL – using ArchiCAD’s Tools Walls. You can then bring all those subsidiary parts together in the floor plan. the complexity of the resulting script will depend on the element types you have used. brought back into the plan and Introduction to Object Making with ArchiCAD 12 . then make additional parts. regardless of their originally intended purpose. You will also find a growing number of object-making Add-ons working in ArchiCAD such as RoofMaker. save that. Windows and doors should be built flat on the floor and ArchiCAD will convert them to be upright. Load the library you want to update. it is possible to combine the use of ArchiCAD tools with a knowledge of GDL. Binary library parts offer lightning fast imaging speeds. You can speed this up by opening ArchiCAD with the Special Menu visible. The Slab tool and Roof tool will produce GDL script that is relatively easy to modify. It may take 10-20 mins. Slabs. small slabs. and save them. roof or slab tool.

dragging the fill shapes into GDL. your objects can allow variations –. matte. That’s why it’s called Geometric Description Language. All library parts are objects. your objects can change their shape – you can make Mechanisms. You also have the ability to decide which parts of a GDL model can cast shadows.PART ONE: OBJECT MAKING WITHOUT GDL then added into a larger GDL project that the writer is working on – moved and rotated into position. text and fills to draw standard symbols. you can build rules of behavior into your objects. and can be put in a folder near your Library with a filename that helps you remember its relation to the library object that it helped you create. a Window. slide and resize components in the model. such as manufacturers’ requirements. self-sizing components etc. • Because you can rotate. amended or simplified... spacing. you may wonder. place the object in the plan.they can be Parametric. why bother to save as objects? The answer is. they must be saved as library parts. GDL objects are independent of dimensional settings because they are parametric. • Because you can write routines that loop around and repeat actions many times.. checks on incorrect parameters. Introduction to Object Making with ArchiCAD 13 . Assemblies built with the Tools palette do not have to be lost. open it and select a new Subtype for it. if you wish them to behave as objects (stretchy) and allow further editing (improved materials etc. and save the resulting lines as a new 2D library part. Select your assembly and save as a Module. Making Objects with GDL Scripts Even a small knowledge of GDL allows you to go far beyond the possibilities offered by the simpler methods above.) and appear correctly in schedules. you can make interesting objects that cannot be made with the Tools palette – they can be Complex and Curvy. how many polygons there should be in curvy bits. thickness. • Because you can define diameters. you can select it. If you can describe what you want in words and numbers. and tidying up into 3D subroutines. ‘explode’ it. You may want to edit or elaborate and resave. It is possible to use the 2D tools of lines. Not all objects need to be 3D. This will take a fraction of the disk space. you can economically build large or repetitive structures that would be futile to build with the Tools palette – your objects can be Tools.they can be Accurate. • Because you specify elements in a GDL model by precise dimensions. angles or parameters. and ‘File>GDL Object>Save selection as. You can generate your own materials – shiny. or contain dozens of varied configurations selectable from a popdown menu. This does not change the original 3D part. the objects will be exactly what you want them to be –. which pen colors the object should be drawn with. – they can be Smart. GDL is an ideal tool for the Internet. you can make objects with GDL.’ a library part. or a Door. transparent or glowing – so that they will work even with an ArchiCAD in a different language from yours. With modules. If it’s to be a Lamp or a special furniture object. • Because GDL has many 2D and 3D commands. If you already have a 3D object that you wish to use purely as 2D. but when you save them you can decide if they are to be an Object (a piece of furniture or a building component). GDL models can animate. • Because you can write IF statements. GDL Objects are cross platform and This accurate ship model for the US Coastguard was built entirely by tracing over the DWG construction drawings in ArchiCAD with 2D fills. select them. materials and pens. for marketing products such as office furniture or kitchens.

it might take you longer to make an object that could more quickly be made with the Tools palette. The GDL object took the author less than an hour to write and is stretchily configurable in every conceivable direction and provides 2D and 3D data for materials ordering and welding. It only needs to LOOK right. slab and roof. 14 Introduction to Object Making with ArchiCAD . tubes or surfaces. The idea of an ‘Investment Object’ Ask yourself if the object you want to make is to be used more than once. cones. It may need to be precise enough to fit a confined space. As your GDL skills grow. So you must be satisfied that it IS right. But if the object has versatility and can be used in many more projects. CADCAM system (cutting tool) or a rapid prototyping machine. Most objects can be seen as composed of blocks. you use the grid as a guide and get the size as accurate as your eye tells you it needs to be. Your mouse is an elongated egg shape with a flattened bottom surface. if you can. Your laptop is two flattish brick shapes hinging. with a closed bottom. Your coffee mug is a hollowed out cylinder. view the object in terms of the familiar tools of wall. sweeps. discard detail that is not essential to the 3D render you want to get from it – think about the viewing distance that the object will be seen from. This could be built with ArchiCAD’s own tools or with GDL. examine the 3D objects that surround you as you read this book. At the top end. spheres. you can add prisms. the essential primitive forms that compose each object. and include in your vision the primitive shapes from the shapes library or bits you can make with Profiler or Trussmaker. They can be viewed with a browser. Ask yourself what detail needs to be included. and therefore you need to make the object usable by others. cylinders. Another object may be required to be totally accurate. If you make it parametric and smart. your objects will still have a ‘blocky’ look to them. cylinders and cones. look at it in terms of blocks. and downloaded. If using GDL. configured in their parameters. Observe. like a kitchen or bathroom part. the time taken to make the object well is an investment and your users will be grateful for the effort. Does it need to LOOK right. an authentic ‘lived in’ look. plane and meshed surfaces and tubes. For this. and the dimensions could be ‘eyeballed’ – that is. prisms.PART ONE: OBJECT MAKING WITHOUT GDL economical in size. so that you can derive accurately dimensioned sections and plans from it. But using the Tools palette. You might be the one person in the office making objects for other people. Difficult 3D tasks such as surface rippling or perforation might more easily be solved by using textures instead of struggling to find a physical 3D modelling solution. if it could be useful in other projects. If you are using the ArchiCAD tools (not GDL). it may be required to drive a Investment Objects: This parapet ladder is required un-countable times on the buildings of Orcutt Winslow (Arizona) and each one is painfully slow to draw in 2D sections with different heights for each ladder. How do you make an Object? Look around you. you are better off working in GDL from the beginning. or BE right? An object that is used to furnish the interior of a house may only be required to give a luxurious impression of the interior. Use a level of detail that is within your abilities to model either from the Tools palette or with GDL script.

the Wall tool. mirroring.PART ONE: OBJECT MAKING WITHOUT GDL Furthermore. But they will never have the pleasure of making their objects parametric. and perhaps pay you for it? Graphisoft’s next edition of ArchiCAD provides new areas of exploration and power. but it really pays to have a good knowledge of ArchiCAD as a working tool – the use of the 3D and 2D elements. For the countries which use commas as a decimal point. Well you can. resizing and multiplication. do they look clumsy in 2D. and genuinely improve the quality of their work. and GDL remains the most useful and practical descendant from BASIC. we have used English rather than American spelling in the English language edition. Experts who used to say that BASIC was not powerful enough for commercial applications can be confounded by a well written piece of GDL. Can you learn GDL? Many objects do not need to be built with GDL – the ArchiCAD tools may be enough. colour. are they difficult to pick up or snap to. Total beginners can please themselves with rapid progress up the learning curve. period (stop) symbols are decimal points. the easiest of the programming languages. With energy and programming experience they can extend the possibilities. the use of techniques such as the Magic wand and the Marquee. They can make objects that impress their friends and colleagues. Largely. commas are separators. Introduction to Object Making with ArchiCAD 15 . can you understand the parameter descriptions? A critical appreciation of the experience of the user will help you make better objects. slab and roof and some add-ons into most complex objects. GDL is based on BASIC. Millions of people learned BASIC during the pioneer years of microcomputing. Experienced ArchiCAD users who are scared of GDL get very skillful in transforming the simple 3D tools of wall. In other cases you may find spellings that you do not agree with e. Users can suddenly find a practical use for all the mathematics they learned at school. are they transparent when they should be opaque.g. years after you have left. As soon as they begin to feel they have reached the limit. Here’s another investment idea – objects you make can be used in AutoCAD and ADT using the free GDL Adaptor – how many people may now be able to enjoy a good parametric object. ArchiCAD users who make the bold step of tackling GDL are frequently surprised at how easy it is compared with what they expected. Experts in GDL continue to find additional depths and techniques in GDL. please note: in GDL. Spelling and grammar A note for pedants: in the text. The ArchiCAD experience You may wonder if you can learn to make good objects without knowing too much about ArchiCAD. You learn by looking at the objects Try to get the objects that are illustrated in this book from a CD or Website. and improved to take advantage of greater knowledge or of new features like graphical hotspots or better texture and detail. splitting. and work through them as you read the book. objects made with the Tools palette are no longer editable if the original floor plan file that made them has been lost (and you also forgot to save them as a module!) A piece of GDL that is well written can be extended and made more powerful when your own knowledge of GDL improves or when a new edition of ArchiCAD offers more features. some words are capitalised or italicised for emphasis or because they are titles e. A well written object could be taken on by someone else in the office. If you are a regular user of ArchiCAD you will also develop a feel for what you like or hate about objects – do they stretch mindlessly. GDL is an easy scripting language compared with those available in the other CAD packages. If you are prepared to go beyond the Tools palette.g. metre.

Not included with ArchiCAD. more frequently updated (when versions change) than the Manual. In particular. you can build up a personal fund of expertise. this book or the Cookbook. 16 Introduction to Object Making with ArchiCAD . with good explanations of organization of your libraries. It is an important complement to this book and it would be repetitive for me to reprint it all here – but it contains very valuable information on object making. Project Framework: Discussion of how to get the most out of ArchiCAD in the professional office. peruse the section on “Parametric Objects” (Tools chapter). Help Menu in ArchiCAD: Syntax of GDL commands. GDL Reference Manual: Syntax of GDL commands. ArchiCAD Training Guide: Making library parts (see table of contents of that volume). you can read about object making in other manuals and guides: ArchiCAD Reference Guide – see table of contents and index of that volume. DXF/DWG Conversion Guide: Bringing in objects from other CAD environments. in depth information on every aspect of GDL except programming. You could also consider keeping a personal notebook of your progress with object making. By noting your successes. but obtainable: The GDL Cookbook: Project-based approach to learning GDL that teaches both GDL and the technique of programming with GDL from beginner to expert level.PART ONE: OBJECT MAKING WITHOUT GDL Read about Object Making Besides this book.

to save it as a . and select it in the floor plan window with the cursor. Save it into one of your loaded libraries. Set the A and B dimensions to the size of the object in your drawing.) • Setting Grids. Getting started with Object Making Before making your first object with the Tools palette (without GDL). window or door.1 Making Objects without GDL Most ArchiCAD users become skilled at making objects using the normal building elements in the Tools palette before they tackle GDL. Save the resulting view as a library part – use File>GDL Objects>Save 3D Model as. and when the GDL dialog appears. • Using the Coordinates palette to make things accurate. click the 2D Symbol button and draw it into the 2D symbol window – or paste in something you drew earlier in the floor plan. • Making curved edges in slabs and fills with the Pet Palette. • Using the Marquee tool and 3D Cutaway to cut objects. 3 If the object is 2D. let’s make sure you are fully conversant with object making before moving on to discover the power of GDL. Set the large grid to 12” or to 300 17 . Processes 1 and 2 are called ‘Autoscripting’. 2D or 3D. to save it into one of your loaded libraries. • Using the Settings dialogs for the various tools in the Tools palette to get their materials and heights correct. Rotate and Mirror. Then use one of these three methods: 1 If the object has been made the right way up. Every object. • Setting up 3D Projection Settings to arrange camera and viewing angles correctly. • Using Add-ons like Profiler and Trussmaker. ArchiCAD creates a GDL library part. highly educational process! The format of GDL script it generates could be called ‘industrial’ – quite off-putting in appearance and a lot more complicated than the ‘Creative GDL’ that you can attempt with the help of this book. • Solid Element Operations (new in ArchiCAD 8). ‘B’ for depth and ‘zzyzx’ for height.... with 3D form (if any) and either 2D scripts or symbol..PART ONE: OBJECT MAKING WITHOUT GDL CHAPTER 2: OBJECT MAKING WITHOUT GDL 1 Before learning GDL it is wise to become fully conversant with object making using ArchiCAD’s own tools. • Discovering the useful ready-made bits of GDL in the ‘Special constructions>Basic shapes’ library.... 2 If the object has been made the right way up in 3D or if it is 2D. has an imaginary size-defining cuboid around it of ‘A’ for width. and setting dimensional preferences to work with Metres or Decimal Inches. for 3 you have to set the size. • Making Section/Elevation windows and copying and pasting between those and the floor plan.GSM object. • Multiply. Wall and Roof tool. ensure that you are or you will become conversant with some of these basic ArchiCAD using skills: • The use of the Magic Wand (for transforming a Fill to a Slab. and routines to provide stretchiness.. For ArchiCAD newcomers. Three methods of saving an object from ArchiCAD Make the object using the Slab. Method 1 and 2 will set this size automatically. use File> GDL Objects> Save Selection as. When you have made such objects. open them using File>GDL Objects>Open Object. large and small. use File>GDL Objects>New Object. or a Slab to a Roof. view in the 3D window in plan or elevation respectively. and load a new folder to use as your working library and save the new file to that folder or to somewhere convenient. or on its side. 2. – you will be able to view the scripts – a Introduction to Object Making with ArchiCAD Setting up Open a new ArchiCAD file. • Align texture – set origin and set direction. Line to a Wall etc. load your standard library.

as ‘bthrm_wc. Click on the file you want. This object may be saved as ‘bthrm_whb. One benefit of method 3 is that you can return to add more detail to the drawing in the 2D symbol window and you can decorate it with the hotspots of your choice on key parts of the object. Select and File>GDL Objects>Save Selection as. Look for ‘Files of Type. bring it in as a GDL library part.’ and select either the DXF or the DWG. like the corners and the plugholes. 2.2 Let’s make something in 2D Let’s try making some 2D bathroom fittings. Zoom in to somewhere near the Origin of the Floor Plan.3 Bring a file in from DXF/DWG If you want to bring in some 2D from DXF/DWG.g. 2. from the original drawing.gsm’. you will get 5 ‘bounding box’ hotspots – so add those hotspots. You are advised to use mainly the Fill tool with opaque fill. Set the A and B to the correct dimensions You will not have to do this too often because the ArchiCAD library is well equipped with 2D objects. including all the hotspots 18 .2”. Try to work at or near the real origin. then place it in the floor plan and open the object: look at the Introduction to Object Making with ArchiCAD If you now Open the Object (from the File>GDL Objects menu) you will find that the 2D view is scripted. so that the object is solid against a coloured background and not transparent. Hairlines help with 3D building. The Default Translator brings a 3D DWG in as GDL Script... get the scale right and make it into a 2D Library part as in the earlier section. and many of the 3D objects from the ArchiCAD Library have a ‘2D only’ mode in which the 3D can be omitted. Normally. Fills. an object into a loaded library (method 2). Then you have the option to clean it up. You could use this procedure for electrical symbols. kitchen or bathroom furniture. so text and line widths and vectorial fills may appear differently according to the scale of the final drawing. it can be drawn with 2D tools. Hotspots and Text. When you want to bring the 3D DXF/DWG into ArchiCAD. You can opt for Default Translator. hit the 2D Symbol button to get a 2D symbol window and draw the symbol directly into that window (or paste it from the floor plan drawing). the most recent library part saved is the first object that appears when you place an object in the plan. Bring it straight back by selecting a library part from the Toolbox and placing it in the Floor plan next to the original drawing. and set the A (width) and B (depth) values in the parameter table correctly. If you do not add any special hotspots. Check the size of the sanitary fitting.. or your drawing will be distorted when it is an object. There is no scripting to do. or as a personalised symbol for trees and plants. so that you are viewing an area of the grid that is a little larger than the furniture you wish to build. Save the object. There are two ways to do this: draw the object in the floor plan using Lines. Be warned that the object is not scale sensitive.gsm’ and ‘bthrm_bidet.gsm’ and the other two objects may be saved with names to match. True line weight helps with making 2D objects. Arcs. The other method (3) is to create a New Object (from File>GDL Objects>New Object) and from the GDL dialog. bring it in to the floor plan first.PART ONE: OBJECT MAKING WITHOUT GDL mm and the small grid to 5mm or 0. e.. The procedure is File>GDL Objects>Open Object. not a temporary one.

some IF statements added by you to hide or show portions. and in the 3D. feet or metres. but you may be faced with colossal quantities of script. inches. 3D objects may come in on their side. If you build from walls. This model of the Eiffel Tower comes in perfectly from DXF directly from the Eiffel Tower’s own website. and the height of the wall is above the base. the Slab tool is the most useful tool.4 Let’s make a 3D Object – a Table The next object. Remember also that you need to set the materials of the tabletop and legs using the Slab settings dialog box. It helps you later (if you want to tweak some of the GDL) to build over the main origin. We can use the curving function in the Pet palette to soften the edges of the object. You have to be prepared to do some fixing. you may have to ‘duplicate’ the Default Translator and amend the scale conversion of the import. Always take the opportunity (exert your ‘consumer power’) to ask manufacturers of components to provide objects in GDL. The most you can be sure of editing successfully is the 2D symbol. making a new 2D symbol and resizing it correctly in height and plan area. Perhaps the best way is to use the Column tool. If the object is the size of a pinhead or larger than your town. All the 2D and 3D data was imported. use the settings dialog box to get the height of the slab correct. Check the file format before downloading. it seems to be a vast mass of polygons and lines. the altitude of a wall is its base. Solids may be inside-out hollow things. Build up the table. A cylindrical element like the chair leg could be made by magic wanding a slab to a circular arc. Unfortunately. For each part. and in no particular order. You may find that the lack of control over the number of polygons leaves you with a model that has so many polygons that your rendering times become unacceptable. If you have made a temporary origin somewhere else and the main origin is greyed out. or by bringing in a cylinder from the ArchiCAD Library. Choose the DXF/DWG if you have a choice. 2. and insert some material and pen numbers. rotating it upright. starting with the table top. set to the right dimension and materials. You may be disappointed with the result. just select the Origin tool and click on the grey main origin. side. Remember that the height (altitude) of the slab is the top and the thickness is the amount of slab below the top.PART ONE: OBJECT MAKING WITHOUT GDL scripts.g. or the wrong size due to your not knowing if they are created in millimetres. e. and add the legs and frame. If you attempt to edit these you will need a lot of luck and guesswork. it’s lying on its Introduction to Object Making with ArchiCAD 19 . Nothing brought in from DXF/DWG is solid. is to be made ‘the right way up’ and for this. a Table. It may also be many kilometres from the Origin. and only 150m high. Many objects can be found by some smart searching with Google.

use Options> Preferences>Miscellaneous to activate the ‘Show Element copy. When you have built the chair. but if you stretch it.’ button. Keep an eye on the Coordinates palette as you type in your X and Y locations and you can make the table totally accurate. view it in 3D hidden line. and use a small grid of say 10mm or 3/8”.. This table will be stretchy. but the GDL object can be placed as often as you need. Now click on the object icon in the Tools palette and place it in the floor plan. it will appear in listings and can be used in other building models. This is easier if you set Grid Snap to ON. and are best made with the Slab tool. and the origin 20 Introduction to Object Making with ArchiCAD . it will never permit you to make parametric alterations to height. select it and using 3D Projection Settings. We will cover the editing of ‘industrial GDL’ in a later chapter. the section sizes will deform – so build it the size you want from the start if you want to avoid distortion. it is best to build it over the origin. Make the table about 750mm (30”) high. No matter how well you make it this way. leg spacing or timber sizes unless you are prepared to dive in and do some editing in GDL. The result is indistinguishable from the original.5 Let’s Make a 3D Window with slabs Windows have to be made flat on the floor. If you use the grid. Next. If this option isn’t available. in Plan with the camera at 270°. Edit>Drag a Copy to the other end of the table..PART ONE: OBJECT MAKING WITHOUT GDL To make sure that each leg is consistent. Save it using File>GDL Objects>Save 3D model as. Again. make just one leg correctly at first. you can make the table reasonably accurate in dimensions. 2....

PART ONE: OBJECT MAKING WITHOUT GDL

should be symmetrically at the centre of the lower sill of the window. The external face of the frame must lie at a height of project zero on the ground plane. Normally, slabs have their tops on the ground plane, so be careful to set your window frame at the right height and altitude. Draw out a rectangular slab first which defines the overall opening size. Then select this slab, and with the Slab tool selected draw another rectangle within the first slab. This draws a hole in the slab and effectively makes the frame hollow. A better way to do it is to make the frame from four separate pieces. In this era of Open GL you want to try to get better texture rendering – look at the woodgrain – GDL organises the grain separately for each piece. Set the material of this slab to frame material. You can now draw another slab into the window, set this to 20mm (3/4”) thick and set it to ‘Glass’ for top bottom and sides. Make sure the height of the glass is well positioned in height, within the frame. For added realism, you can add a smaller group of frame sections to play the part of a casement, and a small slab below the project zero to be a sill.

adjustments when it saves the window so that the origin finishes up in the right place. But it is tidy and more disciplined to get it right at the start. When you are done laying slabs, select all the slab elements of the window, and view them in Plan (270°) just like you did for the table. Use a wireframe view to show the frame. Although you are viewing it in plan, ArchiCAD will turn it the right way round for it to work as a window in a wall. Save that 3D view as an Object and when asked, click on the ‘Window’ icon. Check the box that hides redundant lines. Make sure you save it into a loaded library. If you have not already done so, make a folder in your personal library for windows and doors as you save. If you clicked the window or door icon, ArchiCAD will recognise that it has to cut a hole in any wall. The hole size will be the width and depth of the window you made.

The illustration above shows how the window should sit on the project zero ground plane. Check that the frame/casement/glass relationships are working correctly. Use a Section/Elevation view to get it perfect, including the glass position. In this case, the project origin is neatly positioned at the centre of the sill. This is not absolutely necessary because ArchiCAD will make
Introduction to Object Making with ArchiCAD

Back in the floor plan, build a wall, and then select a window to put into it. Select the window you have just saved. Place it into the wall, making sure that the Eyeball cursor is clicked to the outside face of the wall (the face with more hotspots). You can now view the result and change its parameters – of size only. One unfortunate finding is that the textures can be perfectly aligned in the object itself, but in the wider ArchiCAD environment, the wood textures behave differently. The way to guarantee perfect textures is to use Edit>Align 3D texture on each part of the frame before you save the window object.

21

PART ONE: OBJECT MAKING WITHOUT GDL

outline of the window, and give it an ID of ‘wallhole’. We will explain that more fully in chapter 10 on windows.

2.6 Let’s make a Chair using Wall tool
Many objects are easier to make lying on their side, because of their complexity or shape. They may be far easier to build in profile than to build as a stack of slabs or walls assembled vertically. You can make skillful use of the Wall tool. Walls are most useful as they can be set to a thickness and height and can be snapped to follow lines with the Magic Wand. They are more controllable at following curves than the Slab tool. Their only trouble is their annoying tendency to join together and form strange spiky mitring effects when you least want it. In the Display Options you could turn off Clean Wall Intersections for straight lined objects. To get these curvy walls working, we should retain Clean Wall Intersections.

The technique of making windows is similar to door construction. But you would need GDL to change the window or door styles, to make it open and shut, add grilles, or offer a choice of glazing or ironwork styles.

Before you move on, you would find that the 2D symbol (see figure at right, in illustration above) is too horrid to use in a plan. The curve in the window head produces a lot of spurious lines. You should open the Window as a GDL object, click on the 2D Symbol button and it will open up a drawing window, enabling you to delete the bad lines and clean up the pen thicknesses (left side, in illustration above).

This Bentwood chair illustrates the use of the Wall tool perfectly – it could be made with the Slab tool but only with more difficulty.

Making the Frame and Seat
First, using the 2D line tools, draw the outline of the chair frame, including the curve of the arms using 2D lines. Then set the Wall tool to be your choice of Wood material, 30mm (1.25”) thick and 150mm (6”) high. Magic Wand the Wall tool to the lines (click with space bar down); this causes the little walls to follow the lines. Ensure that the walls are grouped; drag a copy of the wall group to one side. Now use the Elevate command to raise that wall group by 600 mm (24”). Move that wall group back until it is exactly over the first. You now have the bentwood frame of the chair. Using the same wall setting, put in the
Introduction to Object Making with ArchiCAD

Unusually shaped windows – ‘wallhole’ idea
Actually, this example is so simple that you find adequate windows like this in the ArchiCAD library already. Windows like this only cut rectangular holes in the wall. What you may need is a window of a more unusual shape. The trick is to lay a roof or a slab over the

22

PART ONE: OBJECT MAKING WITHOUT GDL

straight sections for the seat and back. Change their heights to start from 150mm (6”) above the deck and finish 600mm (24”) high – as in the illustration. Duplicate the seat and back walls, and make them about 90mm (3.5”) thick and change material to fabric. You can use the wall-end feature of ArchiCAD 8.1 to get rounded ends, or get the same outline with the Slab tool. To finish, the chair has some little black hinge bolts for the connecting rods, which can be a small but very high slab. Try using the Log setting in the wall, set to 30mm (1.25”) log heights to simulate bamboo for the arms. It works on the straight bits, but not on the curves. For this effect, you will need real GDL.

Give the object a Preview Picture
If you are pleased with your object, capture a small rendered view of it with the image size set to 128x128 pixels. Select it and copy. Open the object’s GDL dialog, click the Preview Picture button and paste the image into the Preview Picture of the object. It will look better in Windows/Finder and will be much easier to pick from the Object browser. You can paste any image that is near-enough square into the Preview Picture, but it will be rescaled by GDL. Pasting in a 128x128 ensures a distortion free image. You do not need to use ArchiCAD for the image. It could come from a photo, or a company logo.

Stand it upright in 3D
When you have something like the Bentwood chair in the diagram, lying fully on its side, it’s time to rotate it upright. Set the 3D projection setting in the parallel views to 90° position for camera with elevational view selected. Save the 3D view as a library part into your loaded library; this time, click the object icon (not the window or door) and tick the ‘Editable’ radio button, and tick the redundant lines checkbox.

2.7 Let’s make a Roof Truss with Fills
Try this exercise, which provides a link between the section/elevation and the floor plan windows. Construct a small one-room building, and place a pitched roof over it. Make the walls higher than the roof and then use the Trim to Roof command to make the walls and roof fit each other. Insert a window and door if you like. Now using the Section/Elevation tool from your Tools palette, draw a section through the building, and view the section.

Place the chair into your project and enjoy! In this view, the finished chair object admires its creator with satisfaction. To improve it, you might edit the 2D Symbol (as you did for the window) to erase extraneous lines.

Introduction to Object Making with ArchiCAD

23

Now select the fills. Move them to a clear space. When you have the section in the foreground. If you need any holes. Make yours more complicated if you want to.PART ONE: OBJECT MAKING WITHOUT GDL whole truss. Use the Fill tool to outline a small truss. use a separate Fill for the Steel wires. In this case. The hotspots will help you. Thus the truss is nicely centered above and below ground zero. Draw Fills into the Section View the section. move to the floor plan and paste them. and to cut any holes you might have (there are none in this truss). This ensures that your future truss will fit the roof perfectly. If there are holes in the truss. Thus you form the outline of the Keep the two sides of the truss separate by splitting the slab at the apex. You will make similar settings for the Steel wires and the circle bolt. This will look good in the finished object. copy them. Snap-click to the outline of the fill first to get the outline of the truss. the Timber and the Circlebolt. You should finish with a small truss like the one illustrated. and it would help if one end corner of the truss is over the Origin – perhaps one of the truss bearings. Select the fill and continue to draw into it. delete the waste slabs and try again with the sequence above. or more varied width of members. Making the 3D with Magic Wand and Slabs Make sure before you use the Slab tool so that it is centered on the ground plane – in this case. You may have a bit of trouble with the Magic Wand. for the timber set the thickness to 100 mm. If you make a mistake. Now select and view the truss from Introduction to Object Making with ArchiCAD 24 . do an ‘Align Texture’ for each side for the wood grain. you can cut holes in the fill. select the slab tool again (making sure it is the slab and not the fill by looking at the Info palette) and then snap-click any of the holes in the fill. the top of the slab to 50 mm and the material to timber. select the new slab. You can make use of the Line tool to set up guidelines to make sure that your timbers line at the right angles and have the right depths. This homely interior (rendered in ArchiCAD) needs some timber trusses. you can only draw with the 2D tools. and add extra metal plates for extra realism. with more members. Now you can magic-wand the Slab tool to follow the outline of the Fill. This will drill holes in the slab.

and they will all be rectilinear in section. and not parametric in anything except stretchiness. Tidy up the 2D Symbol – add hotspots Now bring this truss into the floor plan. • The Wall tool is powerful for object making without GDL. Place 2D hotspots at the apex and at the bearing points where the truss meets the wall. Open it as a GDL object and edit the 2D Symbol. with texture alignment. This makes it easier to place in the model. Use Edit>Drag a Copy or Edit> Multiply> Distribute to move and duplicate them. Summary of Object Making in this chapter • You can make complex objects without GDL using the 3D tools or using library objects that already exist. • Windows and Doors can be made without scripting GDL. click the object icon and you have your truss. and use the Coordinates palette if you want exact spacing. Use the view to get the first one the right height and position relative to the wall – make sure your truss aligns perfectly with the original fill pattern. or from the 3D view. you can ‘steal’ shapes from 2D ArchiCAD and turn them into Objects. Now the inhabitants have a nice steel tied timber roof! Introduction to Object Making with ArchiCAD 25 . • Using the Magic Wand. Place one truss into the building and look at the original Section view. This same method can be used to make complex structures – the limitation being that they will not be parametric. Remember that single slab objects made this way will have the texture all one direction and will not look authentic unless you do it in separate pieces as we did for this truss.PART ONE: OBJECT MAKING WITHOUT GDL the 90° camera position in parallel elevation view. Save the 3D view as a library part. Autoscripted objects are automatically stretchy so be careful when handling them – you do not want to stretch them accidentally. • These can be 2D or 3D and can be saved from the floor plan. This method is good for composite wood-steel trusses. Trussmaker is good for most trusses if made from a single material. They will be stretchy but not smart.

Now save this with the camera at 90° in elevational view. you are making parts of the truss. then resaving – ‘nesting’. and thinking out which way to organise the camera direction. This object starts with the ‘Elbow’. In this process. Here the elbow has been placed and stretchy cylinders laid. so we can save it as an upright truss. 26 Introduction to Object Making with ArchiCAD . The standard ArchiCAD library contains a directory of special structures such as cones. Lay it down flat on the ground (centre of the tube at ground zero) and configure it to the length you want. Place some single cylinders of a smaller diameter (see below) to form the bracing tubes. The key is placing and configuring them. load the ArchiCAD Library. as in the next illustration. 3. If you have an object-making add-on like Trussmaker. Use 2D lines as guidelines. For the next step. bringing them back in. twice. and it should be upright. and then reviewed and resaved.1 Using Basic Shapes from the Library You can make more complex or curvy objects using library parts that are in one of your loaded libraries. Add in a column to form the long straight tube.PART ONE: OBJECT MAKING WITHOUT GDL CHAPTER 3: OBJECT MAKING WITHOUT GDL 2 Even without GDL there are techniques of object making that go beyond the simple use of the standard ArchiCAD tools. as the objects which follow are the ones you saved. you lose control over parametric changes. Before you try to do this. Some of these components are somewhat confusing to manipulate. Once you have done the first save. ArchiForma or GDL Toolbox. The upright truss halves can be splayed at the angle you wish to achieve. curved tubes and vaults. Make a ‘Banana’ Truss or Mullion object This banana truss has been built entirely from the ‘elbow’ and ‘cylinder’ objects in the existing ArchiCAD Library. So place them correctly at each stage. just check which libraries are loaded (File menu>Load Libraries) and if it’s not already in. grouping. or ‘encapsulating’. saving them. Bring it back in to the plan. consider whether you can make your object with one of these more easily. it’s easier to rotate it 90°.

with the camera at the same viewpoint. This ensures that all the subsidiary objects are included and wrapped up into a new bundle of polygons and and you do not need to worry about missing the earlier components. this time laid flat on the ground. As another example of nested objects. We have become used to seeing the ‘Missing objects’ dialog box coming up at some time or other. it may result in an error when the final object is viewed. 3. It’s time to add in linking cross tubes. if you read it. you will always have to be able to find the constituent parts in a loaded library. You will need the sectional view to get the precise position and height of each cross tube. If you alter one of the components. This is useful.PART ONE: OBJECT MAKING WITHOUT GDL Save again. 90°. the warnings of duplicate library objects and of missing ones require action. Remember that if you ever wish to view the final object. You need great precision in placing them in relation to each other. 270° and you can save it as a horizontal 3D Truss.2 Let’s make an Object by Cutting The banana truss/mullion is an example of nested objects (objects within the larger object). upright. In the plan make sure that the cylinder ends are ‘lost’ inside each main curving tube. If the composite object never needs to be edited again. A final finish would be to open it as a GDL object and plant some hotspots into the 2D Symbol to remove the bounding box and make the truss easier to pickup and snap to wall surfaces. You could view it one more time in 3D Elevation. for use as vertical wind resisting mullions – which is what I intended to make originally. Bring it back in. we Introduction to Object Making with ArchiCAD 27 . and save a version of it. View it in 3D Plan. then you could view it once more in 3D plan view from an angle of your choice and then save as a Binary. in elevation.

This is something we cannot do easily with the Slab tool. So it may have been round when you first built it. By the way. Cutting with the Marquee tool Now you may have noticed that one function of the Marquee tool is to act as a cutter when you view in 3D. The plan shows the basic wall curved to form a flattened circular vault.GSM’ if you like. Now. We are going to cut (or mitre) the vault at 45° angles to make it usable as a groin vault for the crossing. then save as a vault object. If you are more ambitious. And the ‘Elements to Show in 3D’ allows you to select the way that the Marquee operates. like a fill. the resulting library part – stretchy in three dimensions The marquee is mostly used as a rectangle but it can be very powerful when used as a polygonal shape. you should get a little ‘tick’ mark to indicate the half width of the vault. follow this example making it as a Gothic vault (instead of Arched) by having two sections of curved wall meeting each other. and further refine it with the ability to form a crossing – a groin vault. with ‘Image>Elements to show in 3D’ you can reverse that. Everything within the marquee is displayed. but it could now be elliptical if you wish. Drag a copy of your vault object. You can change its length. When you hover the cursor over the end of the vault. First draw one 2D line down the centreline of the vault. and everything outside is ignored. width and height. nor even with the Roof tool. Now draw two 2D lines from this half point at 45° angles to indicate the line you wish to cut along. and view only things outside the marquee. We will draw a length of vault on its end. using the half point tickmarks.PART ONE: OBJECT MAKING WITHOUT GDL could make a rounded vault. viewed in 3D elevation. using the Marquee tool in polygonal mode. Try using the more powerful Wall tool because it is smoother and more easily manipulated. Call it ‘vault_part1. It’s a great way to do instant 3D sections. and be careful not to change its width – change only the length. By using the Shift key. 28 Introduction to Object Making with ArchiCAD . Set the camera at 90°. you can ensure that these lines are at exactly 45°. above it. Magic wand the Marquee tool to the 2D lines so that it encircles most of the vault that you intend to retain. using the circular wall variant of the Wall tool. Bring it into the floor plan and you now have a stretchy vault. Toolbox icon of the Marquee tool with the polygon and rectangle variants.

stretch to appropriate lengths and before you know it. Personalised hotspots will remove the bounding box. Save this as a library part and you can call it ‘vault_part2. Place your own 2D hotspots at the corners. and then try 3D again. All this can be done without GDL. and place your new vault piece. The thin 2D lines ensure that your cutter is at exactly the right angle. The hotspot at the pointy corner can now be used as a hinge around which to Edit>Multiply>Rotate. including one in the middle. you have your church roof. Introduction to Object Making with ArchiCAD 29 . If the cutting effect does not occur. use the 3D projection settings to set the camera position to 270° and the view type to Parallel>Plan. You can use the same technique with the polygonal marquee to take a sideways ‘bite’ out of a large vault and have a pair of smaller vaults intersecting. add a square base top and bottom. Now you see the groin vault part in 3D. use the Display> Rebuild command. Try making a Doric column with Profiler. If it is cutting correctly. Place the result next to a piece of straight vaulting and you can now group these two. View this in 3D axonometric and you will find that you have a groin vault mitred at 45°. and yet. close the 3D window. Bring it all together. Now use Edit>Multiply to Rotate yourself another three and you have the complete groin vault! Picture of the four vaults in 3D axo You can now add in more uncut vault objects alongside these. Use the Coordinate Box if you like to type the angle in.GSM’. Now this object has default ‘Bounding Box’ hotspots.PART ONE: OBJECT MAKING WITHOUT GDL Plan of the shimmering marquee over the vault object. Return to the floor plan. your friends and colleagues will be convinced you have become a GDL expert. You can make your life easier – open the 2D Symbol in the GDL dialog and customize your hotspots. Zoom in real close and place one at the pointy apex of the groin-vault. when they see it.

you are in danger in the long term of losing the subsidiary library parts (such as windows) that it was built from. In a city. That will turn off the bounding box hotspots. open the 2D symbol window of the GDL object.PART ONE: OBJECT MAKING WITHOUT GDL Picture of the final structure. marquee. the entire central area of London is a low polygon count object. Then select the entire building using the fat (thick lines) Proposal for a 43 storey tower for Central London by Robert Luck. ridges. Save as an object. try to make the windows of ‘Ice’ or of a less transparent material. entrance canopy. etc. If you had a basement that you wished to omit.. and then save again. hide all layers to do with internal furnishing and small details (unless they need to be seen through windows) and hide the site on which it sits. and some columns made with Profiler. Introduction to Object Making with ArchiCAD 30 . and view it in 3D in plan view. You would need a copy of the original if you wish to go back and modify any part of it. If you do not want the binary building object to be stretchy (to help with selection).. Either way. then use Image>Elements to Show in 3D. If you are doing urban modelling. street furniture and landscape. If you save it as ‘Editable’. ArchiCAD is a powerful tool for building modelling. stories. but the special buildings with a higher level of detail are best built in another plan and brought in as individual library parts. and buildings are just a small part of this. place it anywhere and at any height and it will work. open the file of the building. It may also fail to render due to spurious errors such as missing parts or bad polygons. An urban model is going to be concerned with city blocks. 3. dialog and you can decide which stories to omit. and place 2D hotspots wherever you think would be most appropriate – corners. and a window made with little walls. You can just see Tower Bridge in the far distance. A finished building is an elaborate combination of layers. as the only editing you can do to a binary is to make it stretchy – so store the layer combination. Save as ‘Binary’. many buildings will be single forms. library parts and building elements – it is not easy to transport to another model. turrets.3 Urban Modelling Urban modelling – entire buildings as objects Entire buildings can be library parts. you will get all stories showing. with the groin vault. If you wish to include buildings from another project. and you can safely export it to your urban model. every building has different story heights and different layer titles.

Convert Introduction to Object Making with ArchiCAD 31 . This technique is so important. and to reduce the risk of rendering errors. The textured facades are so much more realistic than trying to use 3D modelling tools (as in the foreground. While not wishing to suggest that Lara Croft’s environments are modelled with ArchiCAD. Open GL has changed the situation remarkably – it is far quicker to model urban environments with the greatest simplicity in 3D and then apply textures.PART ONE: OBJECT MAKING WITHOUT GDL If you only need facades. If the object is binary. and copy and paste together the whole facade. Your building may have a lot of detail. If you cannot photograph an entire building. save it as an object. This way. Make the site separately. we can make use of some of the object making Add-ons or functions. 3. we advise that these are binary. the site model of its surroundings may be larger in area but it may have fewer polygons than the building. For this to work best you must not alter the width and depth. You can update the site by going back to the original site model and reviewing in 3D and resaving. you can reconstruct its elevation from photos of the entrance. or change its materials from realistic to ‘Ice’ or ‘Whitewash’ ‘Pine. and main fenestration and roof features. in a lower storey.4 Making Objects with Add-ons and Solid Geometry Progressing from the standard ArchiCAD Tools. and bring it into the building model. you can change its materials at a stroke to a single one in the object settings box – untick the ‘Use objects own materials’ option. above). If you alter these. to avoid any lost subsidiary components. you can hide or show the site at a single moment using layers. Try changing it all to ‘Ice’ for the ‘Sketchup’ effect! Urban modelling – the Camera is the mightiest weapon! Urban modelling – entire sites can be objects The converse of this idea is probably more commonly used. the autoscripting routine will reposition the bottom left corner and thus the object’s position in your other model. Then save it using the 3D view with the camera at 90° in the Parallel>Elevation view. Profiler. Wall and Roof tools. Again. using the Slab. Placing an oversize 2D rectangle around the large model and magic wanding the marquee to the rectangle will maintain a consistent boundary size. Bring it back into your floor plan and assemble the building from facade library parts. we have the whole of chapter 9 dedicated to it – ‘Billboard Objects’. shiny’ in a moment. the point here is that you can use textures more vigorously. you can build an entire facade on the ground. A disadvantage of this method is that you cannot use normal Window and Door objects in the library – but it’s great for areas of curtain walling.

PART ONE: OBJECT MAKING WITHOUT GDL

Mesh to Roof, Solid Element Operations and Trussmaker are major assistants to object makers. There are some non-Graphisoft third party Add-ons, notably ArchiForma, GDL Toolbox and Zoom, but this book would never end if we covered all those – in brief, those are so good they exceed all conventional non-GDL methods of object making. However, true native coded GDL is more powerful than any of these because it is parametric and almost infinitely customisable in the way of user interface and 3D options once you have learnt it. It’s fair to say that some of the curvy shapes you can make with ArchiForma or Zoom would take years of GDL knowledge to equal with native GDL.

Profiler – for extrusions and lathing
Profiler is a popular and essential tool, although it is not an official part of ArchiCAD – it’s in the ‘Goodies’ folder. If you do not see it in your Tools menu, put the Goodies folder into the Add-ons folder, and re-start ArchiCAD. In one form, Profiler is able to make Extrusions on the ground plane. Click out an outline with the Fill tool, select the fill, invoke Profiler from the Tools menu, click a starting point on the profile, and finally click out a pathway – and you will have an object. If you made a mistake, you can just make the extrusion again, and save over the name of the first effort. The API inside Profiler gets a template of a GDL object, writes the XYs of the profile and path into the Master, 2D and 3D scripts and saves a new unique object in your library – not dependent on macros or ‘super-objects’. The new object can be emailed or moved to another disk and will still work. Profiler offers either Extrusion or Lathing.

Profiler used for Extrusion.

32

Introduction to Object Making with ArchiCAD

PART ONE: OBJECT MAKING WITHOUT GDL

Profiler used for Lathing. In its other form, Profiler is able to make Lathed Objects. The interface (sequence of actions) is more tricky than when making an extrusion, but after 2 or 3 tries, you might get something that looks right. We will make an object based on Lathing, as it is an important technique, and we can include Solid Element Operations (SEO) in the same task.

3.5 Make a Flywheel with Profiler!
The horizontal flywheel is an object familar to winter sports enthusiasts – it rotates at the ends of a cable car or draglift, drives the lift cable and can be 2 metres or more in diameter. We need Profiler first to make the general flywheel shape, and we can use SEO to cut out the weight reducing holes. This is done by dropping in some cylinders, subtracting them, and saving the result. Profiler is able to make a full 360° sweep, or you can make two 180° ones and group them together. The profile is clicked out horizontally (it will be lathed round the Y-Axis). Summon Profiler from Tools menu. Click on the anchor point checkbox to tell it that you will decide where the axis will be. As you progress, read the instructions that appear at the bottom left of the ArchiCAD window as you click. Use a horizontal 2D line to give you a line to snap to with all these clicks. Click again at the same point to start the hole, and the third click tells it how large to make the hole in the middle. It cannot tolerate a zero hole in the middle. Your next clicks are to click out the sweep angle. As you near 360°, it bounces back to nothing. You will either get a slice of 5 degrees or you may get the full 360° sweep. Save it in the library and it will be placed in your plan by Profiler. Mirror a copy, position it to form a full wheel and then group, and you have a wheel.

Introduction to Object Making with ArchiCAD

33

PART ONE: OBJECT MAKING WITHOUT GDL

Dare you tweak the profiler object yourself ?
It takes about 30 seconds for an experienced GDL writer to modify the code in the profiler object to force it to sweep through 360° or any other angle. If you are daring, open the GDL profiler object, click open the 3D Script, replace the parameter ‘angle’ in the REVOLVE command with ‘360’, and save. You can find out more about Profiler in the instructional html files in the Goodies folder.

Now select the wheel on its own, 3D view in Plan at 270° and save the 3D view as Object, Editable. Place the resulting object in the floor plan. You will get the wheel with the cutting operating in the GDL, but by calling cylinders from the ArchiCAD library in the GDL. If you save it as Object, Binary, the object is completely independent of the library.

Now try Solid Element Operations!
When you get to know how to use SEO you will be grateful that you were introduced to the technique – it is incredibly liberating for the object maker. Now bring in the same Cylinder from the Basic Shapes library that you used to make the banana truss. Place one upright into and through the wheel, then multiply that one to make few more, by rotation. Here we have 6 cylinders at 60° angular separation. Now group the 6 cylinders – to each other, NOT to the wheel. Make sure that groups are not ‘suspended’. Select Edit>Solid Element Operations (recap with the “Solid Element Operations” section (Techniques chapter) of the ArchiCAD Reference Guide if you are not confident with this). Select the wheel as the target and the group of cylinders as the operator. Click ‘Execute’. Nothing will appear to happen, as the cylinders are still there.

If you take a quick view of the editable script of an object made with Solid Element Operations, you will gain a quick tutorial in the syntax for Solid Geometry Commands in GDL! They are basically the same thing.

34

Introduction to Object Making with ArchiCAD

You can cut holes. One trick is to make it flat at first and apply a curve to the edges before you set the altitude of the corners. There is an answer – you can give it thickness. Better still. as you please. or change the materials – as you wish. Trussmaker will make circular or rectangular tubing. Introduction to Object Making with ArchiCAD 35 . Putting in the simple inner ridge is easy and you find that the heights of the new points are interpolated too. edge points or internal points. The example here can be made without Trussmaker. When you are ready to. Try this hyperbolic saddle shape. use Tools>Convert Mesh to Roof. With this. add or subtract chunks. eyeballing or entering heights as you go.PART ONE: OBJECT MAKING WITHOUT GDL 3. and it has useful parametric features such as a ‘leaning over’ angle and 2D capabilities. This will have the effect of interpolating the points of the triangles that will be formed at a later stage along the edges. convert to roof and your structure is tidily jointed and made parametric – and you could save the roof as a module or as an object. It can be edited in 2D or in 3D. punch holes. Trussmaker is a great benefit. The Battered and Canted walls and Roofmaker and the Roof accessories give opportunities for object making. you could construct complex roof shapes. and there are settings you can apply to make it look smooth or ridgy. you could use the Magic Wand and get a small Wall tool to run along the line building rectangular tubing. Select the Mesh. it allows curved edges. You can create small structures using different pen lines in 2D – for this the continuous line tool is very helpful. you can suspend groups and then edit the collection of joined roofs – select them individually to delete. Other free Add-ons within ArchiCAD You can profit by having a play with some of the other tools. and the mesh will be converted to a surface with thickness and with different materials on top and bottom. providing incredible versatility. With the 2D lines drawn. Save this from the 3D view in Elevation. 90° and it’s pretty good. Users are often frustrated that if a mesh is used as a membrane (no earth sides or fill) it is only one surface of zero thickness and only one material.6 Convert Mesh to Roof You will find the Mesh tool very powerful in making shapes. it interpolates if you add extra ridges.

then nudge up to them with smaller pieces of roof and make shapes by carving out chunks. If they cross the wall at any angle. placing. join them again. bring them back. This model of the Lovell Radio Telescope at Jodrell Bank by Chris Jones was done entirely with Profiler and Trussmaker. The theory is that you can make fat pieces of wall. if you try this. there are sideways cutting effects that reduce accurate ‘carving’. Introduction to Object Making with ArchiCAD 36 . and saving the swivelling telescope reflector and its framework as a separate object. the cutting effect remains – and it can be undone with a simple ‘Undo rooftrim’ command. grouping. and some of the cutting planes seem to continue on into space. by progressive viewing.PART ONE: OBJECT MAKING WITHOUT GDL Seriously. this was done by someone who knew no GDL! 3. then the cutting line is extended a random amount beyond the edge of the wall. The wall under the hyperbolic saddle shape (even if only the edge roof elements are selected) gets cut in a wrong way because pitch lines are in many directions. the whole reflector assembly can be swivelled by providing a simple GDL command ROTx angleparameter. join with others.7 Carving Walls with the Roof tool You can run Trussmaker to create tubular frameworks. The benefit of this idea is that even if you throw the roof bits away. review in 3D. However. Roofs have been able to cut Walls – ‘Trim to Roof ’. rotate slightly. and so on until you have built up complex 3D tubular structures. Roof bits only cut reliably if their pitch is along the line of the wall’s reference line. Even if the pitch line is along the wall line. This ought to be an important part of Object Making. saving. bring them back. By saving the tower as a fixed object. re-saving etc. For a long time. resave as binary. it is too unpredictable.

If you keep the wall line and pitch lines. Here is the same block. and save it as a GDL Object. You do not need to worry about putting the roof elements into a hidden layer. you could make a temporary dedicated single roof piece to do the cutting because the edge is almost straight. The illustration above shows the use of a curvy roof used to cut a wall. If you wished to form a wall up to the edgebeam.5m) the cutting is all over the place. simply select the wall element that is being cut (but not the roofs). Solid Element Operations (SEO) to the rescue! Do not be worried by the erratic roof problem – your complete answer is in SEO. If you rotate the wall and thicken it (as in the foreground wall. The nice thing about this is that cutting is dynamic – you can adjust the position of the roof or walls and see the difference immediately. so it resulted in some research into roof cutting and carving! This stone is a piece of ArchiCAD Wall carved in different directions. Position the roof elements as accurately as you need (using Section/elevation window).PART ONE: OBJECT MAKING WITHOUT GDL this chapter. with all the cutting and carving working perfectly. Something like this was required by a client of the author during the writing of Introduction to Object Making with ArchiCAD 37 . Invoke the SEO palette (from the Edit menu) and use the ‘Subtraction with upward extrusion’ option. The roofs at angles to the wall line extend their cutting planes beyond the ridge although their side cutting is correct. The next example is an attempt to carve a piece of stone. view in 3D Plan view. The roof that is axial to the wall line cuts the ridge perfectly. you get a perfect result (rear wall). If you are making an object. but the sideways cutting plane extends too far. thickened to 7.

to bring back later. ‘Table_japonica.g. Even Mac users must work with this convention. ‘Smith_*. The best method is to think of a good name at the time of saving.gsm. But it lessens the investment value of your work – so my advice is to make objects. • Schedules get very confused without objects. and duplicate when I need more?’ Let’s highlight two key reasons for object making: • Unless you have a systematic way of saving.GSM’ is more likely to be unique – it will not match anything already in the ArchiCAD Library. Avoid using generic names for library parts – ‘Table. you may find a quite different table appearing because one of that name already exists in a different folder. Do not alter these suffixes when saving or at any later time. You can now delete the original wall and roof elements. lamp.gsm’. Do not alter the names of objects in the libraries or your project file will not be able to find them next time it loads. merrygoround. If you wish to modify the stone carving later.gsm etc. door. ArchiCAD 9’s object browser permits you to find objects by name – e. ‘Can’t I just group the walls and slabs and roof bits together into objects. Saving a bunch of slabs as a Module with a clear naming system is your only chance of retaining your sanity with a ‘no-object’ approach.g.PART ONE: OBJECT MAKING WITHOUT GDL Notes on the naming of parts All saved objects end with the suffix . A room full of furniture all made of grouped slabs and walls makes the scheduling function of ArchiCAD report that there are a whole lot of slabs Introduction to Object Making with ArchiCAD SEO gives you perfect cutting of the wall under the saddle. Why bother to make objects? Your confidence with the standard Tools palette may now be greater and you may ask. The subtype selection is what decides if the object is a window. round_canopy. e. table or other object type – so make sure you select that correctly. and your Library Manager will be able to find it. The stone block here is shown in Glass so that you can see the accurate cutting on the far side of the block. Use something like that. you will lose the objects you make – they will not be stored and indexed systematically as are the objects in your library. you could select the little bundle of wall and rooves and save the selection as a module.GSM. You can also search on wild cards (*).GSM’ sounds like a good name for a table – but the next time you open your project file. you can search on a word like ‘round’ and all objects with ‘round’ in the name will appear: round_table.gsm. 38 .

Trussmaker. My experience is that students are more willing to dive in and try GDL than architects because they have a more research oriented approach.PAE Archive file to send objects to others outside the education world. • Textures mapped to facades of extremely simple building shapes produce better results than over elaborate 3D modelling. Solid Operations do it better. • Using the Marquee tool. • There is a chance that the Preview Picture may be overwritten with an ‘Education’ logo. • Roofs cut walls. But GDL development is cross platform and cross version. only 2D data is copied. The PNE. you can cut library objects into smaller shapes. Solid Operations and Mesh to Roof.ZIP archive and email or transfer that archive. • If you wish to place your building in a larger site model for visualisation. It has all the power to develop objects and to test them in an ArchiCAD environment. The only drawbacks may be: • You cannot use the . but do not try to use them to carve walls. You cannot send a Module either. but make sure you hide the layers containing complex interiors. or cut bites out of them. and don’t cost their time by the hour. BPN and PLA files. • You can take object making to the other extreme – of having entire surrounding buildings or landscapes as objects and bring them into your main building model. • Take a close look at the Add-ons and special modelling functions available to ArchiCAD users. It’s also more recently that they were at school and learning a bit of trigonometry and algebra – so they aren’t scared by elementary mathematics. BPE and PAE file types are analogous but different to the PLN. • Take care with the naming of library parts – avoid using generic names for objects – but make sure the name is descriptive. you may be wondering about the differences between the professional and the student version. It is not even possible to copy and paste from one to the other – if you try. Summary of Object Making in this chapter • Take a look through the existing library and see what use you can make of the ‘Basic Shapes’. Before we embark on GDL scripting.PART ONE: OBJECT MAKING WITHOUT GDL and walls in the room – wouldn’t you would prefer the scheduler to report a clean list of 4 ‘chairs’ and 2 ‘tables’ and a 3 sets of ‘shelves’? Are you using the Student version? Many people reading this book may be students of architecture and design. in which case it would need to be re-pasted in the professional version. you could save it as an object. although the student version can open the professional files. • Save your assemblies of slabs and walls etc. The student version is an ideal GDL development environment. You just have to put the objects into a . don’t mind working in the evenings. particularly Profiler. eager to go beyond object making and try the real thing – GDL. The files from the student version are closed to the professional. Introduction to Object Making with ArchiCAD 39 . as modules in case you need to remake an autoscripted object.

In the side bar. The GDL Dialog: the list of parameters and their descriptions. Now it is time to decide – read on? Do not be nervous. Melbourne 2004 4.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING CHAPTER 4: STARTING WITH GDL Now it’s time to gather your courage and make a start with GDL. the wide buttons allow scripts to be displayed in the large white window. It’s not as difficult as you expect! “GDL Authoring is an intellectual act of creativity and discipline. The Scripts and Buttons in the Parameter Table Before starting with an easy exercise.1 Starting with GDL Chapter 1 discussed reasons why you might want to build with GDL. select a typical object. Chapter 2 may have lulled you into thinking you needn’t bother with GDL. You will get a GDL editing dialog box like this. The small white buttons allow the scripts to be displayed in floating text palettes. let’s look at the function of the scripts and windows available to you. Open the Object Making window: the GDL Dialog From ArchiCAD. You will find it easy if you take it in stages.” -. Architects of Eureka Tower. with a bar of buttons across the top and down the left-hand side. types and values are the ‘Parameter Table’. Fender Katsilides. Not all of these will be of use to the beginner. 40 Introduction to Object Making with ArchiCAD . select from the File menu>GDL Objects> Open Object.David Sutherland.

By designating Hotspots. Don’t do this until you have more experience. you only need the 2D and 3D scripts at first. 3D Script is the primary means of building parametric 3D objects. so the user will see a clickable web-access icon. • It can tell GDL to draw in 2D whatever it finds in the 3D script (PROJECT2). but it is also the way you can construct the settings dialog that the user will see. the 2D script can make the object stretchy and easy to pick up. almost all the work can be done in the 3D Script. you are better off trying to write a 2D script. zero for radius. polygons and text. the object will not show in the project. Relax! When you start GDL.g. • It can be used to force the 2D Symbol window to be the 2D symbol (FRAGMENT2). or draw using 2D tools. 2D shapes. This becomes the icon of the object in the settings dialog box. and then the Master Script. you can create parameters. ‘B’ and ‘zzyzx’ are moved into white boxes alongside the parameters. This is the power center of most library parts. Comment is a small text field in which you can write a set of instructions to your user on how to use the object. By selecting a ‘Subtype’ you can say if the object is in a special classification. It supports multiple pages.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING Parameters button shows you the list of parameters and parameter titles that the user will see and use when they use your object. The purpose of the Parameter Table is to set up the parameters types. This is read by the other scripts. If the 2D script is left blank. 3D View is generated by the 3D Script – not to be confused with the 3D window of the main project. Introduction to Object Making with ArchiCAD 41 . If you leave both blank. it becomes available to all the other scripts – saving you from repeatedly typing the same information into each script. names and default values you are going to use. If you enter a value like the radius of a tube or the width of a chair seat. It tells the user what the object will look like in its setting. It is great for complex objects where the user might need more explanation of the purpose of parameters. by using 1. 2 or all three of these options. Its most creative use is for you to write a parametrically organized script to draw what the object will look like in 2D. 2D Full View shows what is generated by the 2D Script. Preview Picture is a window containing a small bitmap image of a view of the object. This will not normally show what is in the 2D Symbol window. It will only be displayed if there is no 2D script. With GDL knowledge. By hitting the ‘New’ button and filling in the small details. 2D Script can make a 2D symbol in several ways. It also contains routines to correct errors in the user’s parameters. the object will display whatever is drawn into the 2D Symbol window. Master Script can be used for housekeeping tasks such as checking user errors and defining materials. The most important parameters of ‘A’. You can put the URL of your website in there with a hash# symbol. and send updated values of parameters back to the Parameters Table. Parameter Script is the place where you can build pop-down menus. Property Script enables you to write Components and Descriptor commands if the object is to be in a schedule. 2D Symbol is a drawing window into which you can paste a 2D image. User Interface Script enables you to build a custom settings dialog box with your own text fields and images. If the object is simple. with buttons and input fields for the user to enter parameters. • It can be used to draw lines. e. and could come from Artlantis Render or an ArchiCAD photorendering.

Finally.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING 3D Entities This book cannot contain comprehensive syntax of all GDL coding. r1 the Radius at the base and r2 the Radius at the top. Now try writing SPHERE 1: – a large ball appears at the same corner. Now try writing.90. 0.25” is 4’-6 1/4”. not the project) and you will see this.3.z x being the Width. 0.3’-0”.r1. you will get a GDL dialog. The native dimensioning system of GDL is always metres. 3 CYLIND 1. You can vary these numbers to get interesting effects.y.1: a short but very fat cylinder appears at the near left corner of the cuboid. Their syntax is very simple. 90 are the angles relative to the cone’s axis at which you cut off the top and bottom.r h being the Height. 90. Even at this stage you will be eager to improve the appearance of the object.2”.g.5. First steps in 3D GDL From File>GDL Objects>New Object. It reduces a risk of confusion (for humans) if you write dimensions with a decimal form. or write MATERIAL 18. so we need to find a way to separate them. 90 3D View Click the ‘3D View’ button (of the library part. try the CONE: play with the cutting angles. Try writing BLOCK 1. and you can open the 3D Script window. 0.r2. Whitewash' BLOCK 1. PEN 1 MATERIAL 'Surface. So above the Block command. millimetres. centimetres.55. Please have a GDL manual handy for cross checking. If you wish to script with feet and/or inches. e. The easiest 3D elements to build with are Block. and write MATERIAL 'Surface. called the Global Origin. y the Depth and z the Height.0. 2. • BLOCK x. But GDL is ‘hard coded’ so you need to work to one dimensional system. Look at the result in the 3D window – a tall cuboid. ArchiCAD’s default index for white).90 h being the Height. depending on the default PEN. and r the Radius. In your project.g. not as 2. If you must work in non metric. If a dimension is smaller than a single metre. write it with a leading zero e. These objects all exist in the same space and overlap each other. Whitewash' (or use the name of a material that is known to you in your materials library. The 90. When you get further you will write in parameters. Sphere and Cone. write PEN 1. foot or inch. All these objects have been built at the same location. The wireframe view shows each of the objects and the shaded view shows you how well GDL permits objects to ‘collide’ like this in the shaded view without harm. • CONE h. Cylinder.1. It is all the same color. and dimensions may not matter. BLOCK 1”.2. 1 SPHERE 1 CONE 4. partially submerged in the fat cylinder. CYLIND 1. you can. you could be working in feet and fractional inches. but you must write them with punctuation. write mostly in Decimal Inches – we all know that 54. • CYLIND h. as 2. Dimensions – use the decimal system The dimensions you are writing here are in metres. 42 Introduction to Object Making with ArchiCAD . and it’s so much easier to write. no matter what you set your main project to be using. • SPHERE r r being the Radius.

3. In GDL.1. you can move the 3D cursor about in 3D space in a single XYZ move.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING Check Script If.1. command will happen. Y. The DEL command undoes or ‘deletes’ these movements. referred to here as ‘3D cursor’. Shrink and Stretch In reality. You do not have to worry about height. we use X and Y. you can begin typing. In GDL. you have a similar concept of X and Y based 2D space. you do not have a visible cursor.5 ROTy 90 CYLIND 1. or a tabletop. 3D Space and the 3D Cursor You need to move about in 3D space to be able to place elements such as the legs of a chair. or Z. These work on the logical idea that the 3D world can be thought of in three cardinal rectilinear directions called X. When you word process. leaving the 3D elements behind.0. You are also able to shrink or expand the cursor (using the MUL command which multiplies) so you can easily deform or mirror elements of your model. Wherever this is. GDL remembers every cursor move you have made. for short. This will point to the line where the error occurred. 2. ADDY. the 3D world is too complex to be defined ONLY in absolute terms of X. The one labelled ‘L’ is the Local Origin. return to your script and click the ‘Check Script’ button. !Cursor Movement PEN 1 MATERIAL 'Surface. usually because of a wrongly placed comma. allowing the cursor to retreat back to the origin.0 ADD 1. Y and Z. The one labelled ‘G’ is the Global Origin of the GDL model. or a spelling error.0. your next 3D Introduction to Object Making with ArchiCAD 43 . So you will be glad to know that you are also able to Rotate the 3D cursor (using the ROT command) and move radially. and whatever you type appears. Movement around the model is done with ADD commands. and work at different angles from the pure horizontal and vertical. it refuses to draw because of an error. Do this often when writing GDL. ROT2 and DEL commands. You can Rotate. ADDX. Whitewash' BLOCK 1. Take the previous script and have fun with it. You should be familiar with the idea of X. Using the ADD command. This is like a 3D Cursor. A few simple examples will illustrate how all of these work.5 SPHERE 1. 2D Cursor movement When you are writing GDL in 2D.0 The three-pointed object that you can see in a GDL 3D view reminds you which ways are X.0 MULz 0. you are used to the idea of a cursor – wherever you place the cursor. there are two of these. The importance of DEL It is a good discipline to return the cursor back to the origin as often as possible.1. when you click the 3D window.0. Z is used to provide vertical movement. Expand the dimensions to give them at least one decimal.0 ADDz -2. Y and Z. one at the origin. Y and Z from the normal ArchiCAD environment – the Coordinates palette allows you to enter a dimension in X or Y (and you can also enter radial dimensions and angles). Unfortunately.0. and one where you have moved to. Using the ADD2. or ADDZ move the 3D cursor in those axial directions. in one direction only.0 !Expand dimensions ADDz 2. you can move about in 2D space providing you specify both the X and Y distances.0.

DEL 5. you will be dismayed to find that it does not display – it has no symbol. After each set of moves. you navigate around the 3D model making Relative jumps. using the ROTY command. you can type anything you like after the mark and the machine will ignore it. but as a bit of fun. • Set a Material and Pen color. For example. Using the exclamation mark. 0. 44 Introduction to Object Making with ArchiCAD . using the ADDX command. • Be careful with commas and spelling. Finally. we have started by adding a Comment. It is always good to comment your scripts with a name and a date. open the 2D script window and write a single line: PROJECT2 3. We want to draw the Sphere. to this point • Start with the easy 3D commands.1. • Use Check Script to see if errors occur. the PROJECT2 command can be explained in more detail. • Write (!)Comments to define a piece of work. in a chair model. but you can also DEL TOP – this extends the DEL command so that it deletes everything back to the origin. • Write GDL commands in UPPER case. 0. you could build the legs. Avoid DEL TOP. Later. Now the Cylinder gets drawn – although cylinders always grow vertically. So for now. use a MUL command to halve its height and make it elliptical. In GDL. the vertical axis is now laying on its side.2 This is a ‘killer’ command that in one line. so the cylinder grows sideways. Now you can ADDZ which raises the cursor vertically in its new orientation. The cursor moves in the X direction.5. when you save the GDL model. • Click in the 3D window to see the object build. return the cursor to the origin using DEL and then do the next bit.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING CONE 5. e. You usually specify a number to delete cursor movements. 90. and bring it into the project floor plan. Then. Summary of GDL. and everything else (parameters. Write this as one word ADDX followed by the distance. open the object again.g.270. • Do not forget to make a short 2D script: PROJECT2. which means that you are in full control of the process. along with other 2D GDL commands. Do not forget the 2D script The Block is built as in the previous example. regardless of its complexity. projects a view of the 3D object in 2D. you are in danger of getting lost – after a few lines you could be ‘deep in spaghetti’. you should return to the origin using DEL before doing the next job. It is also a good typographical discipline to write GDL commands in upper case and to write comments and parameter names in lower case. then return to the origin before starting work on the seat. Because you can also Rotate and Multiply.90 DEL 5 Avoiding spaghetti – use DEL frequently You may be familiar with the difference between Absolute distance (distance from the Origin) and Relative distance (distance from where you are now to the next position). MULZ 0. But it is most useful to the human eye and brain. comments) in lower case. when we get onto 2D scripting.5 makes it half as high. Use Comments frequently In this example. but leaves width and depth unchanged. the cursor can be rotated around the Y axis. and so on. and at best you will have nothing more than a hotspot. • Do one bit at a time. Write DEL 5 it is better because it requires you to count the cursor movements.

Notice that the textures are horizontal. !---Seat & upholstery--ADDz 0. 3D script PEN 1 RESOL 12 !---All the legs----------MATERIAL "Wood-Pine. Then rest. 90.0.03. you will expand the range Introduction to Object Making with ArchiCAD 45 .4” to 1. Let’s assume the seat height is 500mm (20”).03.0.90 DEL 3 Click in the 3D view frequently as you develop the script. planting legs as you go. and to state the material and pen color. It needs to be. the ‘Resolution of Curvature’.015. 90.45.90 ADDx -0. Starting from the left-hand front corner.015. it does not matter if they are double or single quotes as long as you are consistent. so please do not be concerned that it is a simple chair. 0.0.03.045 MATERIAL "Surface-Fabric" ADD 0.45 CONE 0. We are going to build a simple chair. When you use quote marks.0. so put in the names of materials that you know to be loaded. on each leg to 12.40. even for such a simple object. Now for the Back. Lift the cursor and draw the block. Later we can introduce more subtleties of form and size. Note that the seat block goes from centre to centre of the legs – not good joinery. Note that we are working with CONE and BLOCK on this chair.5. 90.045 BLOCK 0. 0. choose File> GDL Objects> New Object.0. not chair design. but easy GDL! The upholstery is really a small shallow block set above the larger seat block.90 ADDx 0. so that the legs appear to taper from 60mm to 30mm (2.015.025. The Seat and Back The seat should be of a different material so start with the comment and for the upholstery.0. to write a comment.50.025. shiny" CONE 0. !Simple Chair Example. 0.55. so we can use DEL 3 to bring the cursor back to the Origin.015. Remember that this tutorial is about GDL.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING 4.5.0. As your experience increases. use the ADD commands and work your way around the chair.03. The Legs Start in the 3D Script with a CONE command for one leg of the chair. You may not have the Material name used here.90 ADDy 0.0.0. The operation to make the legs required three ADD commands.5. write a new material statement.5. 90. At this stage you may have to make a vertical version of Pine to make it look right on the legs. We used a RESOL statement to set the number of polygons.005 DEL 2 Notice that it is wise.55 CONE 0.45 CONE 0.45 BLOCK 0.0.2”).2 Let’s build a 3D Object – a Chair From ArchiCAD. 0.

write in 60mm. you will want to see it in your floor plan. click the ‘New’ button 8 or 9 times to make new parameters. Open the 2D script window and write the single line PROJECT2 3.0. cylindrical legs become elliptical.30 DEL 2 First add some parameters Click on the chair object and open it again for editing. This is what the users will read when they open your object – so make your description a model of clarity. Add in more parameter names. but it is your first GDL object – so reward yourself and then move on with GDL.55. The chair may not win a design award.270. In the Parameter Table. Click the Object tool in ArchiCAD Toolbox. it retains important properties such as diameters and thicknesses – stretches intelligently.90 DEL 2 ADD 0.06m.0.0. or 2.35 MATERIAL "Surface-Fabric" ADD 0. Make sure you set the parameter types correctly – it’s a common source of GDL errors. such as 0. a 4-letter shorthand for ‘leg section’. as we did for the seat. click in the plan.25” or whatever suits you. and they always start with a value of zero. 2D Script To complete this. shiny" ADD 0.0. You must write a short 2D Script.0.02. 46 Introduction to Object Making with ArchiCAD . Click in the parameter name box (‘Variable’) of the first one and rewrite a name for the leg thickness parameter. Call it ‘lsec’.0. Try ‘sthit’ for Seat height.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING of GDL commands you use to achieve form.0. with its own hotspots provided by ArchiCAD. 4.0.70 BLOCK 0. !---Back Legs. If your system settings are in another unit system.0. Save and close the object. Square table legs become rectangular. Write in the larger field something like ‘Leg sectional diameter’ or equivalent.05. 90.0.0. They are given default names.01. it deforms proportionally. See the example below. Do likewise for the other parameters your user will be allowed to change.0.6. So this simple chair needs to be upgraded. 90.02. Then enter a starting value. Pen etc.03.02 BLOCK 0.3 Let’s make this chair parametric If you stretch an autoscripted object.90 ADDx 0.45 CONE 0. ‘framat’ for Frame material and so on.54.01. and your chair will appear. There is usually more than one way to make any shape.025. but unrealistically.03.35.45.5 CONE 0. The primary reason for using GDL has to be to enable objects to be parametric. return to the floor plan.0. We can use a thin block of upholstery. You will find a ‘Type’ button in the Parameter Table that you can pop-up to reveal an iconic palette to tell GDL whether the parameter is a Dimension.6. If you stretch a correctly written parametric object.2.-0. It will not be stretchy – we did not write in this capability. panel and upholstery--MATERIAL "Wood-Pine. a Material.

90. Let’s use A and B and ‘zzyzx’ here because they will enable the object to be stretchy.lsec/2.lsec/2. It’s easy to make typing errors with long parameter names.frsec BLOCK A-lsec. lsec/3. line by line.005 DEL 2 !--Back Legs. See the list in the manual.lsec/2.90 DEL 3 !--The Seat and upholstery----ADDz sthit-frsec BLOCK A. stick exclusively to lowercase for parameters. then gradually change all the others.90 ADDx A CONE sthit. Select the appropriate type. Change them to valid dimensions for a chair. The rules for names of parameters are simple.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING The popup parameter type palette permits 12 types of parameter. Start by changing all the leg section widths to ‘lsec’.90 ADDx -A CONE sthit.frsec-0.B-lsec. You could use ‘wid’ and ‘dep’ along with the other parameters. but that is a small worry compared with the importance of understanding. It’s important to be able to read your script weeks later and still understand what you meant.g. Parameters are not case sensitive.lsec/2. You can also click on the parameter type icon. It takes more typing. ‘diam’. Then by hitting the little Indent button you can link a parameter such as ‘framat’ to the Pens and Materials group. it becomes second nature to think out the structure of an object in terms of parameters and write directly into the script using parameters. ‘tetra’ or ‘nod’ cannot be used. ‘open’ ‘tri’. lsec/3. Parametric 3D PEN cont_pen RESOL 12 !--All the legs----------MATERIAL framat CONE sthit. Everything in the chair can be replaced by parameters – even the Pen. The letters must be sequential (no spaces) but you can join words with an underscore e. Use more than one or two letters so that you can remember what the parameter means. you can organise the parameters into groups. So names like ‘block’. panel and upholstery Tidy up the Parameter Table You can move parameters up and down using the little arrows at the left. You must not use words that are already GDL commands (or archaic GDL commands). ‘leg_mat’. so avoid over-long names like ‘leg_cross_section’. and set some of them to be a Title or Separator. 90.B. as above. With the Title parameter type. lsec/3. and ‘matl’ that you can use in all objects. You develop a personal lingo of words like ‘rad’. uppercase for GDL commands. Compare this with the previous dimensional script and convert it. !Simple Chair. lsec/3. 90. It is more expressive to write ‘framat’ than ‘fm’. Now convert the 3D script The next task is to convert the script from dimensions to parameters. You do not have to use them. Rules for parameter naming A and B and ‘zzyzx’ at the top of the Parameter Table are ‘Magic parameters’ that govern the width and depth and height of objects. 90.002 MATERIAL seatmat ADD lsec/2.90 ADDy B CONE sthit.0. Short named parameters are used as ‘counters’ or ‘flags’ when you get further with GDL. but as a discipline. Once you have written a few GDL scripts. Introduction to Object Making with ArchiCAD 47 . Try it for yourself.lsec/2. ‘strlen’.

3 BLOCK A. note that Star (*) means multiply.B-0. You could trouble the user for parameter values for every part of the chair – or you could have some easy system rules that define the design. 90.g. it should behave parametrically.y. view its settings window. The RECT2 command is a 2D command that is equivalent to BLOCK. Error checking As you work your way through the script.sthit+bhit*0. you used the command of PROJECT2 3.lsec/2. it has to generate a 3D solid of the object as seen in plan view and work out what hidden line drawing will be seen from above – meanwhile the clock is ticking. If you have done everything correctly. the solid 3D hid the seat corners. This is the key to making objects smart and powerful.lsec/3.x2. and CIRCLE2 x. your floor plan can take too long to load or regenerate. a RECT2 imposed over 4 leg circles would look wrong. keep clicking in the 3D view window of the GDL object to see if the logic of your arithmetical expressions are making sense. Change the materials. The panel is 0. Make sure that dimensions are dimensions and not angles or something else.4 First steps in 2D scripting Use a script for a more effective 2D symbol In the first version of the simple chair. Introduction to Object Making with ArchiCAD The idea of ‘Manufacturers Rules’ – a systems approach The back is a little more complicated than the seat. In the 2D.1 of the total height. it may be a bad spelling. This is what we could call a ‘manufacturer’s rule’.bhit*0. and the final space above is 0.lsec/2. Let’s try a small script for this chair. Later with GDL. Once ArchiCAD users have grasped this they realize that there was something useful in all that algebra they learned so painfully at school. you may find that your school trigonometry comes in handy too! Save the chair object.3 of the back height.bhit*0.sthit CONE bhit.lsec/3. There are two ways of doing this chair. Alternatively.-0. 4.01. We have to apply a systems approach to all 3D objects if parametric scripting is to work at all. RECT2 x1.270. In this case.y2.6 !Back panel MATERIAL seatmat ADD lsec/2. When you multiply or divide.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING MATERIAL framat ADD 0. e.6-lsec DEL 2 3D is more powerful if it is parametric You can see that it is possible to write 3D scripts that are 100% based on parameters and not on real dimensions. We could follow the same sequence as the 3D script. height and leg thickness.01. All 2D commands end in the letter ‘2’.lsec/2 BLOCK A-lsec.y1. 90. To achieve this. So we will make a smart use of LINE2 to simulate the rectangle.01.rad. and play with it. because the circles are transparent. Now we have to do a little systematic thinking on the chair and apply some design rules. or could produce an error message.90 ADDx A CONE bhit. When we placed a corner of the seat block into the curved legs. Click on the ‘Check Script’ button and read the error message – if you get one. using the ADD2 command to move around and plant each circle or rectangle.B. Slash (/) means divide. we could stay at the origin and just issue all the LINE2 and CIRCLE2 commands without having to move anywhere. With too many of these in the project. 48 .lsec/2. the gap under the back panel is 0.90 DEL 2 ADD 0. and CIRCLE2 is equivalent to CYLIND and CONE. or a misplaced comma. So we advise that you always use a 2D script unless the object is too changeable or complex to script. 2D commands are more flexible as you can specify the X and Y of their location. If they are not.6. We also have to consider how the symbol will look.0. look at it in the floor plan.2 – that does it all. A wrongly spelled parameter will result in a value of zero.

etc. The scripted 2D parametric chair is better to look at in 2D. 2D Hotspots only need the X and Y location.B-s4 !back LINE2 s2.B-s4.s2 LINE2 s2. Much better! If you wish to guarantee that hotspots are where you want them and that the object will be stretchy.s2 CIRCLE2 0. Save the object and place it on the floor plan.B/2 !pickup spot !PROJECT2 3.0 A. A. it is essential you see how your work appears with True Line Weight.B HOTSPOT2 0. You will find that it generates the symbol instantly. Write your own hotspots The scripted hotspots now permit stretching because they are on the leg centres and not on the bounding box. The first hotspot you write will become the placement hotspot of the object when placed in the plan.0 !4 Corner stretch spots A.B A/2.B.0. 0. making them stretchy. s2. intersections.B-s2 !side LINE2 s2. A-s2.0 HOTSPOT2 A. Decide where you will need them most – corners. Note that the ‘s2’ and ‘s4’ are temporary variables to avoid typing errors and save time. Do not ‘comment it out’ until you are sure that your CIRCLE2 and LINE2 statements sit comfortably over the correct locations. this is a typical small script you can use frequently! Put the HOTSPOT2 statements before the ones that contain the 2D drawing commands. A-s2. and giving them ‘gravity’ (helping them to snap against wall surfaces or each other). you will know that hotspots have three main purposes: allowing objects to be picked up.B/2 !Pick up Centre spot If you have used ArchiCAD.270.B 0.0 !corner spots HOTSPOT2 A.B-s2 !side LINE2 A. centre.s2 CIRCLE2 A. A-s2.B+s4 !back LINE2 0. Although you may prefer to work in Hairline much of the time.0.0 !front We can keep the PROJECT2 command in the script. Parametric 2D Script HOTSPOT2 0. Introduction to Object Making with ArchiCAD 49 . The earlier non-parametric chair with a PROJECT2 is untidily full of lines.2 !now disabled s4=lsec/4 !Quarter of diameter s2=lsec/2 !Half of diameter PEN cont_pen CIRCLE2 0.B.B+s4. but make it inactive by turning it into a comment line – in case we make some changes and want it back.0. s2.B HOTSPOT2 A/2. HOTSPOT2 HOTSPOT2 HOTSPOT2 HOTSPOT2 HOTSPOT2 0.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING !Simple Chair.s2 CIRCLE2 A.

Seating’. you may have to drag the mouse in a small marquee in your attempts to find those elusive hotspots.-B/2 HOTSPOT2 A/2. • Organise the Parameter Table into tidy groups with indent buttons to link parameters to titles. Even in an object with PROJECT2 as the main way of drawing the symbol. and look further at Subtypes when you have got some more GDL experience. • Describe the purpose of the parameters clearly. Subtypes – you can put this into a category You could classify this object as ‘Seating’. The more curvy commands. you can duplicate instances of LINE2 and ARC2 with HOTLINE2 and HOTARC2 (using the same syntax) and the mouse will detect the object anywhere along the line. but you could try clicking onto the ‘Select Subtype’ button and choose ‘Model element. Furniture. In ArchiCAD 9 you can make the job easier for users of your object. B/2 HOTSPOT2 -A/2. You can do a lot more with PRISM and POLY2. many of them are to do with ArchiFM (Facilities Management). you can build GDL objects like complex articulated mechanisms. you will want to break out of the rectilinear tyranny of BLOCK and RECT2. not the near left corner. For now. Now that you have got this far. use decimal inches. but try not to. If you must write in non-metric. which enable complex shapes in 3D and 2D. select Model Element. you can only select objects by clicking on the hotspots of the 2D symbol in the plan. pull drawers in and out. your user can click anywhere in the fill and they can select the object easily. or 50 . you may find it an easy challenge to explore further – peek into the GDL manual. adjust the spacing of shelves and partitions. • It is better to write GDL in parameters. You would need this. making it easier to pick up and stretch or move. in this chapter • You can write GDL entirely in dimensions. It’s early to do this. If you do this. or move on to the next chapter. Another AC9 idea is that of making specific lines sensitive to your mouse. It is possible to write Graphical Editing Hotspots! What are these? Well imagine a furniture cabinet which you can fully manipulate in 3D and 2D – open and shut the doors. you should provide a filled POLY2. such as the frames of steel furniture or lattice grids. 3D can be more curvy Before long. pull down a hinged work top. material or pen color or one of the other types.-B/2 HOTSPOT2 0. In a 2D Script.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING The distance between the hotspots must be A and B for stretchiness. Try to make the entire script parametric. This will give you many more parameters than you first expected. • Remember to click the pop-up parameter selector palette to tell GDL if a parameter is length. In a 2D Script. • Click in the 3D view window frequently. And we would really like to know how to write these magic hotspots! We will explore all of these in a later chapter. or ‘Check Script’. CONE and ELBOW are easy to use. you should provide a fill over the area of your object. CYLIND. you can inject a few HOTLINE2 commands to make it easier to pick up. you can build interesting tubular structures. like ‘seatmat’. using half values of A and B: HOTSPOT2 A/2. • Use parameter names that look logical. Summary of GDL. We would like to make objects with more user options and one of the best ways to provide this capability is with Popdown menus. If your hotspots are in an illogical place. they may get in the way of your learning GDL. With those three. B/2!4 Corner stretch spots HOTSPOT2 -A/2. and permit curved edges.0 !Pick up Centre spot More about Hotspots It is possible to write 3D Hotspots too – these help when viewing the object in the 3D window. With Graphical Editing Hotspots. This is fun! are on the bounding box. In the 2D drawn symbol. Just suppose your Origin was in the centre of the chair. Introduction to Object Making with ArchiCAD Selecting Objects Normally.

and you can play with the code. with RESOL or TOLER. so you go through the process of composition. Do some GDL – do it yourself There is an old educational proverb (it’s bound to be Chinese... • Try cylinders. all the best ones are): ‘If you Hear.. Check the original version out on the Website or the CD. sit down with someone else and work through it together. I have found this technique to work very well with GDL teaching. but not copying entirely.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING • After each 3D task is achieved.. • 2D Hotspots are vital for making objects stretchy. DEL back to the origin before starting the next task. Check the object As this object progresses. etc. you forget. cones and elbows for extra quality and authenticity. If you See. you remember.. If you find GDL a bit daunting. It’s a great idea to build a similar object but to use different parameter names. If you Do. • You could consider trying to apply the correct ‘Subtype’ even for simple objects. I am a great believer in ‘pair programing’. or copy parts of it to an object of your own. • Control curvature of cylinders. you have a useful application for that algebra you learned at school.. • Writing a 2D script is easy and saves time in the long term. with support from the script in the book. it gets more complex and you may be unwilling to type it in yourself. you understand’. Introduction to Object Making with ArchiCAD 51 . at last. • Now.

1 Providing Options in GDL thinking and decision making. such as the regulation Introducing the IF-Statement of digestion. to our little objects. complexity. and report back the it’s part of the new group.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING CHAPTER 5: PROVIDING OPTIONS IN GDL Perhaps you are looking at GDL because you like the idea of objects being intelligent – let’s look at practical examples of this power. and rules • ValueLists (Popdown menus) allow the user to make choices. the Object ‘ON’ or ‘OFF’ to something – it’s a binary choice. documenting. Pasadena. they can adapt themselves appropriately. We could add two variations of leg braces to the chair and try two environmentally and socially. it is the other scripts in the object.Kimon Onuma. • IF Statements enable easy decision making by the object. either paletter to make it Boolean. 52 Introduction to Object Making with ArchiCAD . or a change Show or hide the back of the chair in the drawing scale. nature and The Object Genome Project takes a methodical approach • The PARAMETERS command sends information back to the of analysing. Objects can contain data – depending on certain conditions such as user defined width and height changes. temperature. parametric. Buildings are complex by ‘No’. Non 5. A sign of higher intelligence is the ability to communicate and respond. and creating tools to master this Parameter Table. Objects can be self fixing Options’ and position the new parameter under it. We could also extend this to making the chair into a multi object – one that offers a number In our own very humble way. they can delight the user by being friendly to use and robust enough to survive rough treatment.2 Boolean parameters – easy options intelligent organisms still have smart features. GDL authors can apply these concepts of preset variations. indented so that if the user enters negative or bad values. Make a new one called ‘bakon’ and use the popup other levels of detail. Our can regulate the variations in the object. like ‘Yes’ or Genome describes our built environment. buildings and sections of buildings. resizing We could use a Boolean parameter to allow the user to turn the back the spacing of shelves. bolts or panel ON or OFF. The intelligent objects evolve over time. environment and buildings are not static. ways of allowing the user to choose the braces. "The Object Genome Project is a project to categorize and create Intelligence – provide it in the Master Script intelligent building blocks of objects that are used in design projects. CA and Tokyo. In a sense. We have a principle that we want to keep the 3D Script for 3D and the 2D Script for 2D. Objects can offer the user easy options. The first sign of intelligence in any organism is the ability to make decisions. Make a new Title parameter called ‘3D with checkboxes or with popdown menus. • The Boolean parameter is a checkbox method for the user to say Just like the Human Genome can describe mankind. but it doesn’t have any sense of intelligence. corrected shelf spacing or drawer height. growth – autonomic functions. So we can use the Master Script for a lot of the 5. and are added as new and adjusted requirements come up. We can add some intelligence and options to an object in various Object Genomes are used to describe architectural environments as ways: large as entire city blocks." -. Webscape. and this will send parameter values to The simple chair was useful for breaking the ice with GDL. deciding whether to omit handles. new characteristics.

ENDIF. can be written in the form shown here.90.90 53 .. The first line ends with the word THEN.lsec/4. 90.90 ADDz B/2 CONE B/2. but as ‘bakon’ can only be 1 or 0. !Braces IF brace THEN MATERIAL framat ADDz sthit/3 ROTx -90 CONE B/2.lsec/2 BLOCK A-lsec. 90. and you see it’s simply a matter of moving and rotating the 3D cursor to the right place.sthit CONE bhit.6-lsec DEL 2 ENDIF Introduction to Object Making with ArchiCAD S Show or hide the braces In the same way we could add a new routine for the leg braces and could provide an additional boolean parameter to the 3D options group to control the braces. so the cursor has to point horizontally.lsec/2. IF statements can be written on a single line or. The value of ‘bakon’ is sent to the 3D Script as a 1 or a zero. You round off the IF statement with the ENDIF statement to end it.sthit+bhit*0.6 !Back MATERIAL seatmat ADD lsec/2.lsec/3.lsec/3. and pushing out those cones.bhit*0.sthit/3 ROTx -90 CONE B/2. !--Back Legs.90 ADDz B/2 CONE B/2. with a DEL command. as in this script.01.lsec/3. If the condition is not true (‘bakon’ is zero) the interpreter moves to the ENDIF command and continues with the rest of the script.90.lsec/4. Follow the logic of the script below. We could write IF bakon=1 THEN.lsec/4.90 DEL 3 ADD A.-0. CONE can only go vertically. GDL accepts the parameter name alone as enough to judge its value to be ‘True’ or ‘False’.0.lsec/2.01. The braces will be double cones.lsec/4.lsec/3.0.B. mortice and tenon style. panel and upholstery IF bakon THEN MATERIAL framat ADD 0. Single line IF statements are of the sort: IF bakon=0 THEN arms=0 But here we need to write more than a single statement as a result of the IF condition.90 ADDx A CONE bhit. followed on the next few lines with the things to be done as a result of the IF question.90 DEL 2 ADD 0.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING We can use an IF statement to decide whether to show or hide the back.90. We could have used cylinders but they would not look authentic – the ends have to be smaller so that they fit to the legs.bhit*0.B-0.90.01.3 BLOCK A. We return the cursor to the origin as each brace is installed. So we use an IF.lsec/3..lsec/2.lsec/3.

This makes the user’s decision more informed. providing a form of collision control e. This then forms the popdown menu.lsec/4. making each choice equal to a simple variable like ‘bv0’. and it also permits ‘joined-up thinking’ on your part. Users have all used popdown menus in ArchiCAD Library parts. One popdown menu can offer the user a host of configurations or choices. A typical ValueList for a text parameter called ‘font’ would be: VALUES ‘font’ ‘Times New Western’.3 Popdown Menus: allow many choices Popdown Menus are a great benefit to GDL users and authors. bv1. we can make popdown menus in English and Norwegian 54 Introduction to Object Making with ArchiCAD . the user cannot mistakenly enter a wrong choice. Making a ValueList is easy. Pens. but the list of menu choices are in quotes with commas. or ‘O’. Simple ValueLists are best built in the Parameters Script. First make a new parameter – either text or a number – and then type in a list of values for the ValueList menu in the Parameter Script or the Master Script.sthit/3 ROTz -90 ROTx -90 CONE A/2.90 ADDz A/2 CONE A/2. or ValueList as we call it when writing the code. The single line starting with VALUES builds the popdown menu. ‘Arial’.g. By this method.90. The VALUES command is the way to store the values. This will pop out and What we do is to build a list of the words that will appear in the ValueList. etc. so we need to consider the use of a Popdown menu.90.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING DEL 3 ADD 0. bv2 IF bracetyp=bv0 THEN brace=0 ELSE brace=1 ENDIF Scripting a Popdown menu : make a ValueList Technically. A ValueList of this form is best put in the Parameters Script. With numerical values. so it’s the most helpful way for your object to be told how to perform by the user. Lines. 5. This way of writing ValueLists is an author’s special and is called the ‘Variables Method’.specific with proper names or model numbers. You build the menu and you write the IF statements that follow as a result. and for the developer. ‘Verdana’. but ones involving a lot of decision making are best built in the Master Script – GDL prefers it.lsec/3. If your popdown menu offers three distinct choices for the shape of an object. we call a popdown menu a ‘ValueList’. ‘Courier’ This arrangement of braces is an H-configuration and we would be in trouble if we introduced another – like an O-configuration – because we would now have three choices. The benefit of this way of doing it is that the decision-making that follows is easily done on the basis of simple variables like ‘bv0’. GDL objects can now be much friendlier to the user.lsec/3. !Add to the Master Script !-------Pop down Menu----------bv0="No leg braces" bv1="O brace" bv2="H brace" VALUES "bracetyp" bv0. We have to set up the list of values in the script and offer them to the user. ‘H’. there is less need to write error catching routines.B/2.90 DEL 4 ENDIF down in a setting dialog the same way that we get Materials.lsec/4. Boolean cannot handle more than two alternatives. ‘None’. preventing an anglepoise lamp head turning through the arm. and guarantees that the user cannot make a spelling mistake. Note that there is no comma after the parameter name (in quotes). It works far better than the standard syntax. the ValueList can control lower / upper limits. The choices can be maker.

sthit !Right CONE 0.0.90.90.sthit/3 ROTz -90 ROTx -90 CONE A/2. Because the ValueList is the primary decision making point.lsec/4.90. and there can be no risk of spelling mistakes or upper/lower case confusion.90 DEL 4 ADD 0.lsec/2.90 ADDz B/2 CONE B/2.sthit/3 Introduction to Object Making with ArchiCAD ROTz -90 ROTx -90 CONE A/2. lsec*0.lsec/3.lsec/2.lsec/4.0.90 ADDz A/2 CONE A/2.lsec/3. lsec*0.lsec*0.B. Add an ‘arms’ parameter to the Parameter Table.90.90.sthit/3 ROTx -90 CONE B/2.7.B/2.90 DEL 4 ADD A.-lsec. 90.7.90 ADDz A/2 CONE A/2.90 55 . 0. 0.2 ROTx -90 MULy 0.90 ADDz B/2 CONE B/2.lsec/3.lsec/3. and make it Boolean.lsec/3.5 !Squash the arm cone to an ellipse CONE B+lsec.lsec/4. we can click the ‘Hide’ button in the parameter table for the ‘bakon’ parameter.90 ADD 0.lsec/4.90.0. This ‘variables method’ of building Valuelists only works if it is done in the Master Script.90.0.90 DEL 3 ADD A.lsec/4. Here is a rerun of the original brace routine in the 3D Script. !Add this to the end of the 3D Script !Arms IF arms THEN MATERIAL framat ADD 0.lsec/3.lsec/4.lsec/3.2 ROTx -90 MULy 0.5 CONE B+lsec.90 DEL 3 IF bracetyp=bv1 THEN !---H Brace-----ADD 0.lsec/4. with the IF statements working. lsec*0.-lsec.lsec/3.lsec/4.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING and French if we so choose.90. not by the user. Its value is now governed by the Master Script. 90.lsec/3.lsec/3. We can add some arms.2 .90 DEL 4 ENDIF !brace=bv2 ENDIF !If brace Add Arms – it’s easy! This far into the book.lsec/3.45.lsec/4. we can leap forward in faster moves.45.90.90 ADDz A/2 CONE A/2.lsec/3. and then the chair is able to adopt a surprisingly large variety of configurations.lsec/4. as you will have developed some confidence with GDL coding if you have tried out the easy stages of this little chair.90. !--------Braces front to rear---------IF brace THEN MATERIAL framat ADDz sthit/3 ROTx -90 CONE B/2.90 ADD 0.sthit !Left CONE 0.90.2 .sthit/3 ROTz -90 ROTx -90 CONE A/2.90.90 DEL 4 ENDIF !brace=bv1 IF bracetyp=bv2 THEN !---O Brace-----ADD 0.

the parameter for diameter could be hidden and the one for square section should be revealed.4 The MultiObject concept We can make one GSM library part contain the code for many objects. if the chair has a choice of square or round legs. and this customisation is a useful visualiser of the end result. Build a Popdown menu definition in the Master Script. If the chair is to be one of the standard items.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING DEL 4 ENDIF This routine demonstrates the use of MUL to reshape the basic shapes. but one facility that makes it appear smartest by comparison is its ability to operate as a ‘Configurer’. they are happy to use one of the standard products. president of the GDLA. 5. The conical arm now becomes pleasingly elliptical. We are all indebted to Kimon Onuma. GDL is smarter than a dumb DXF object. it’s important to write a small error-avoiding line in the Master Script. We need to learn how to write Subroutines – soon. it would confuse the user – but its good because it can display the new value to the user. If they were not locked. it might be that they intend to commission the furniture-maker to make a special. that can be selected by the user. it seems a pity to keep writing them so often. LOCK and HIDEPARAMETER These are three commands which allow you to modify the Parameters Table as the use will see it. Make the Chair a MultiObject – Master Script magic! If the user chooses to keep this chair as a custom chair. even with small production runs. we should Lock all the user-customizable parameters like seat and back height. indicating the current value but discouraging the user from trying to edit it. As these arms and braces are similar CONE routines. LOCK can grey out a parameter and its description. and have a choice of fabrics and woods. Because we do not want Arms flapping about in the air if the Back is omitted. The number of variations is growing. over and over again. let's call it 'chairtyp'. in effect for it to become a super object. One good kitchen cabinet GDL object 56 . These commands should only be used in the Parameters Script or the Master Script. Make a new parameter [text]. PARAMETERS can pump a new value into the infield. This is more economical than having a library of many different objects. Otherwise. HIDEPARAMETER can hide the parameter altogether e. It is amazingly simple – you do not have to change the 3D Script at all – the work is done in the Master Script. perhaps. all similar – because improvements and maintenance are easier to provide to a few well written objects. and which when selected will follow the correct rules – a kind of DNA for furniture making. CNC machines now make custom manufacturing possible. for bringing to our minds the expression ‘Object Genome’. !Add to the Master Script IF bakon=0 THEN arms=0 can have over a million variations – an ‘object genome’. PARAMETERS. This chair can be adapted to be a MultiObject. The GDL object can contain many configurations of a designed object. It’s like the difference between a Introduction to Object Making with ArchiCAD GDL for Manufacturing The MultiObject is a very important concept in ‘GDL for Manufacturing’.g.

05: frsec=0.05: arms=0 bakon=0: bracetyp=bv2 ENDIF IF chairtyp =cv7 THEN !Bar stool A=0.05: frsec=0.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING throttle and a speedometer in your car.05: arms=0 bakon=1: bracetyp=bv2: bhit=0.45: sthit=0. cv2. etc. arms=arms.cv5.cv3.55 ENDIF IF chairtyp =cv5 THEN !Dining armchair A=0. !Cookbook Chair: Master Script !------Menu for Chair------cv0='Customised chair' cv1='Foot stool' cv2='Nursery chair' cv3='Piano stool' cv4='Dining chair' cv5='Dining armchair' cv6='Kitchen stool' cv7='Bar stool' VALUES 'chairtyp' cv0.30: sthit=0.5 ENDIF IF chairtyp =cv3 THEN !Piano stool A=0. we can simply use the Master Script to define a new value for the parameters for each of the standard versions of the chair: for seat height.35: lsec=0. lsec=lsec.3 ENDIF !More parameter checking IF bracetyp=bv0 THEN brace=0 ELSE brace=1 IF bakon=0 THEN arms=0 !Feedback to the user PARAMETERS A=A.'arms' ENDIF IF chairtyp A=0.05: arms=0 bakon=1: bracetyp=bv1: bhit=0. It’s a help for compacting code.40: sthit=0. Introduction to Object Making with ArchiCAD 57 .35: B=0.65 ENDIF IF chairtyp =cv6 THEN !Kitchen stool A=0. cv4. You cannot make the car go faster by swivelling the speedometer needle! We want to transform this object to a MultiObject.65: lsec=0. B=B.05: arms=1 bakon=1: bracetyp=bv1: bhit=0.04: frsec=0.'bracetyp'.35: B=0.60: lsec=0.30: =cv1 THEN !Footstool B=0.04: bakon=0: ENDIF IF chairtyp A=0.04: arms=0 bracetyp=bv0 =cv2 THEN !Nursery chair B=0.28: frsec=0.cv7 IF chairtyp<>cv0 THEN !Grey out custom parameters LOCK 'A'. You can use the colon to include more than one short GDL statement on the same line of text.cv1. cv6. cpn=cpn The variations are now easily selected with preset choices. but can sometimes lead to your overlooking ‘bugs’.35: sthit=0. overriding the choice in the parameter table.45: B=0. This example shows abundantly how good and how easy the method is.05: frsec=0.32: lsec=0.40: sthit=0.'sthit' LOCK 'lsec'.50: B=0.45: lsec=0.04: arms=0 bakon=1: bracetyp=bv0: bhit=0.45: B=0. sthit=sthit.45: lsec=0.'B'.'frsec' LOCK 'bakon'. leg section.1: arms=0 bakon=0: bracetyp=bv0 ENDIF IF chairtyp =cv4 THEN !Dining chair A=0.05: frsec=0.40: sthit=0.40: sthit=0.45: lsec=0. 'bhit'. To do this. Use the ‘Variables method’ to build the menu.05: frsec=0.

PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING At the end we choose to use the PARAMETERS command to show all or some of the values in the parameter table. Precede the internet address on the first line with a hash symbol. The rest of the Comment could be instructions or a copyright notice. Make a nice looking interior view with the chair. You can also put a small note into the Comment window. Your chair will now look nice in the object browser. Another idea is to use Popdown menus as a form of instructions or information. Copy and paste the square image into the Preview Picture of the GDL Dialog. including your internet address. indented and titled in the Parameter Table. Cleaning up the object – the professional touch To clean it up. check that you have all your parameters tidily sorted. 58 Introduction to Object Making with ArchiCAD . Render it at a size of 128x128 pixels.

With more work.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING Picture tiles in the User Interface. LOCK and HIDEPARAMETER commands. Summary of GDL in this chapter • We can try to make objects smarter and more user friendly by offering options. Wonderful! Unfortunately. • If the object is complex. • Boolean parameters offer ON/OFF options. we can build a graphical User Interface that presents ValueLists as a series of picture tiles. Introduction to Object Making with ArchiCAD 59 . • IF statements can be long or short. and make decisions. • The Master Script is remarkably powerful. but it’s fully covered in the GDL Cookbook. it’s beyond the scope of the book. • ValueLists offer unlimited variations. • ValueLists built with the ‘variables method’ are easier to make and it’s easier to process the result. • Keep the user informed with PARAMETERS. provide instructions and a graphical user interface. • Give your object a Preview Picture and a URL.

PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING CHAPTER 6: THE POWER OF PRISM Prism is a 3D command that adds real 3D power to GDL. 60 Introduction to Object Making with ArchiCAD . HPRISM_ and SPRISM_. BPRISM_. PRISM is the answer. you will find the numbers for the XY locations to be quite high. rounded. Prisms can be multi-colored. All autoscripted objects made this way have a mass of ‘housekeeping script’ at the start. If you made this in a random location. but at the heart of it is a CPRISM_ statement which contains the outline of the shape you just clicked. and there are several useful variants to play with. You can define the outline of a prism by listing the XY locations of its nodepoints. and the block always grows from the near left corner. Apart from its rigid shape. even having the same pen colour. We will explore a number of these commands. PRISM_. use File>GDL Objects>Save Selection As. chamfered and hollowed out – very versatile. Your cursor can remain at the origin and your script can calmly draw prisms that are hundreds of metres away because it is entering the precise XY locations of each node. and it should look like the original slab. cut. we can have a whole family of PRISM with related syntax: PRISM. It all depends where you clicked. 6. Open it in GDL and look at the 3D Script. You have no control over pen lines or surfaces. we will look at the ‘housekeeping’. FPRISM_. By adding underscores or preceding letters to the primary word ‘PRISM’. drilled. or perhaps negative. you have to move the cursor to the location of the block. and store it as an object. bent.. but you rapidly discover that BLOCK is too primitive for serious work. Many objects have specific shapes or curves in them that require you to draw their outline shape correctly. but for now try another idea. Now place the new object in the plan. Select it. CPRISM_..1 The Power of PRISM PRISM is the most versatile element in 3D GDL We have found that BLOCK is adequate for making elementary furniture and frames. Make a Prism – use Slab! Draw out a shape in the floor plan using the Slab tool – anywhere. In a future chapter.

0. bottom and side surfaces are specified by name or number.949196. and drag it smartly across into the 3D Script – as fast as you can. -1 BODY -1 DEL 1 Now open a File>GDL Objects>New Object.0.1. 0. try to draw slabs in the counterclockwise direction. Do it slowly and nothing happens. overlapping.067704. 0. 3.279549.949196. -0. 0. You may get a 3D code looking like this: BODY -1 MODEL SOLID RESOL 36 !!Slab-018 PEN 1 ADDZ 4.155116. Each one ends in the number 15. 0.444858.155116.. 2.405484. 4. Note that the slab in the illustration was started 24 metres from the from the main origin of the project – your numbers will be wrong. "Whitewash".444858. so leave these as they are unless you want to omit nodepoints. -0. Position the floor plan and the 3D Script as shown above. 0. and 2D into 2D. 15. This is the default. As a regular discipline. 5.0.28548. -2. Grasp an edge of the slab. Mathematically. so try it a few times. The next line contains the number of nodes and the thickness. 15. 0. and the final node ends in a -1.949196. 0.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING ‘Instant GDL’ The code for many prisms can also be ‘stolen’ from ArchiCAD. 4. "Whitewash". The -1 tells GDL that the slab is finished (and also that the end point is the same as the start point).1 BODY -1 cPRISM_ "Whitewash". This is a trick that takes some learning. 3. Do the drag-trick again and you will see that the first node listed is 0. You can click on anything in an ArchiCAD floor plan – wall. 15. 3D objects should be dragged into a 3D script window.949196.28548.000425.0. 0. Usually. Introduction to Object Making with ArchiCAD 61 . 15. -2. Now draw out a slab yourself of roughly the same shape. 3. even and object – and you will find out what its GDL code is by All Slab tool objects are converted into CPRISM_ – this is a prism in which the top.279549. roof. 0. 15.0. 15. 2. because GDL is happier working that way. 15. 15.0.067704. Draw it so that one of the points coincides with zero – the global origin. 15. So do it fast! Everything in ArchiCAD is in fact GDL (under the surface).. 2. 13. counterclockwise is a ‘positive’ direction if you start trying to curve edges later.0. 5.000425. 15. The 15 is a ‘masking code’ and simply tells the slab to be drawn as a Solid and tells all the edge lines to be drawn.405484. 3. mesh.00845.00845. 2. 0. and bring up a floating palette of the 3D Script (click on the little white button to get it). Move the object so that one node is on the Main Origin. 15.0 like it appears in the sample script. dragging and dropping it into a GDL script window. and then follows the list of XY locations. GDL seems to remember the order in which you clicked the points. 15. floor. above.

and you do not even need to close the prism. but if you precede it with a mirroring routine (MULZ -1). X1... we write prisms in creative GDL with parameters.Y1. X1. and if you write creative GDL. X1. In creative GDL you are more likely to be defining prism outlines using parameters. dragging from ArchiCAD in to GDL will do. The power of masking in the underscore version of PRISM is that you can omit faces and lines of the prism and you can curve corners and edges and drill holes through the prism.. It bends downwards. but you need to know that they are available.. CPRISM_ topmat.Y1. the prism by returning to the start. X1.Yn.. number of nodes. Fills provides the XY syntax for outlines for EXTRUDE. Prisms come in several forms of which these are the three main ones. The only way you can do this without losing your way is to sketch it out on paper. By adding an underscore and 15 at the end of each line.Yn Writing Prisms from new More frequently... the origin is at the near left. Xn.. thickness. Xn. the nodes have been numbered in the order in which they were clicked. In creative GDL you make use of 2D dragging more often than 3D dragging. You also have the following types of prism which are suitable for later study – check the syntax in the ArchiCAD Help menu: • BPRISM_ is an extension of CPRISM_ but allows you to bend the prism by adding a radius of curvature. this becomes million millonths – no kidding! This is a lot of reading for the GDL parser.. About Prism syntax.. In this example. TUBE and other more exotic 3D GDL commands..Y1. Introduction to Object Making with ArchiCAD 62 . MATERIAL slabmat PRISM number of nodes... The curved corners are made using the technique of the ‘Polyline’. but with added potential.. the value of the masking code is always 15. These material parameters are included in the statement. you do not include materials or the underscore (state the material before the statement).sidemat.mask..Y1. MATERIAL slabmat PRISM_ number of nodes. This has all the powers of PRISM_ but it also allows you to change the colours of the top.mask. If you set the small snap grid. Right. thickness. You can also do ‘Instant GDL’ in 2D Try drawing a polygon with the Fill tool.. Xn.1” and trace out another slab and drag it into the 3D Script.-1 Simple A-B based rectangular prism. SWEEP.. bottom and side faces. Left.mask. it will bend upwards. If you are working in real dimensions.. and number the nodes. X1.Y1.Yn. thickness. It is too early to lead you through all these possibilities now.mask. you get much the same thing.-1 Normally. the origin is at the centre... REVOLVE. perhaps to 1 mm or 0. you can write in much cleaner numbers. the numbers get shortened. To illustrate how prisms work. The default is for it to be a closed solid. you will see extra codes which define the curves – ‘polylines’.botmat. Drag and Drop the result into a 2D Script window – another example of instant GDL! If you include curves in the edges of the fill. there are 5 points if you include the first point twice – the idea being that you fully close CPRISM_ is what you get when you make ‘instant GDL’ with the Slab tool. Let’s look at the basic syntax. For a simple prism.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING Note also that the XY locations are accurate to a millionth of a metre in ArchiCAD 8 onwards. not by dragging from ArchiCAD’s floor plan.

15.155116. this version of the Prism is almost never required. along with DEL. You can use the GDL text editor’s Find and Replace function to remove some of the surplus spaces to make the code look more compact. One single material definition is enough for the whole prism. X1. 0..Y1. 4.mask.Y1.155116.hillmat.00845. so you can delete that. So you are left with simpler PRISM_ : MATERIAL slabmat Introduction to Object Making with ArchiCAD 63 .botmat. You are left with a simple CPRISM_ command.0. 15. X1. you can remove the ‘c’ and the material definitions to make it simpler. Xn.949196. 2. 3. 0. -0.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING BPRISM_ topmat.0. 2.. X1. e. 0. PRISM_ (Prism underscore) and CPRISM_ Clean up the Prism Return to the CPRISM_ we dragged and dropped earlier. 15. Hill material and height have to be included. slabmat.hillheight. -0. 3. 2. 15.000425..405484.. 3.949196. 0. hillangle.279549. HPRISM_ topmat. 5.Yn. As it is possible and easier to use an actual command CUTPLANE..0. 15.. thickness.botmat. 0..Y1. 3. 0.-1 The Hill is visible in the illustration – if the hill angle is 0.0.sidemat.405484.mask.Y1. 2.949196.. 15. upholsery in furniture. it is a leftover from a previous Slab tool setting. 15. Xn. they create a lot of polygons and lines in 3D view.hillstatus. 0. 13. If you find an ADDZ command like the one in this example.28548.. This is useful for suggesting softness.067704. clean away the statements before and after the prism. radius. number of nodes.00845. 0.mask. FPRISM_ is almost obsolete because HPRISM_ does the same but better. 5.067704. 0.000425. 15. -2. 15.0. 4.1. height and material of the hill. If you just want a pure prism.279549. Hill status is 0 or 1 (invisible or visible edges).Yn.. Make the material parametric : CPRISM_ slabmat. -1 BPRISM_ and FPRISM_/HPRISM_ • SPRISM_ is an extension of CPRISM_ but allows you to have a cutting plane taken through the prism.-1 • FPRISM_ and HPRISM_ are extensions of CPRISM_ but allows you to have curved or chamfered top edges (hills) by specifying the angle. slabmat. 15. If you are doing a very simple solid one-color prism. 0. X1. However. the hill will be rounded.28548. 15.949196.g.444858. number of nodes. thickness. -2.444858.0.sidemat. 15.. 0..mask.

But in GDL. and commas are used to separate numbers. 15. !BLOCK A. using A and B as parameters for width and depth with the origin at the near left corner. Keep them all as 15 for the moment.B.0. then you should always do a sketch on paper of the prism.. • If the shape is parametric. or significant dimensions where appropriate.0. it is common to write decimal points as commas.. 4. 4.949196. 0.000. 0.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING PRISM_ 13.B. with the masking codes. Then start writing the prism methodically using parameters. 0. 0. The first requirement is that you have the underscore type. 0. You will usually have to ADDZ before you make a prism. frsec-0. 15. Pay strict attention to them. the scripts are hard coded so only one convention can be followed.0.0.B.frsec-0. We are Drilling the hole Introduction to Object Making with ArchiCAD 64 . Let’s make the seat frame more realistic.002. 0. The frames can be centred to the legs.000. a million is 1.. 15.0. -1 6.. A. 0. so that you can get all the commas and dots to line up vertically. A. but must rise vertically from a local zero plane.25. Progress from the simple block to a frame that looks more authentic. 15. you have to decide how your model is to be written.0.0.g.002. e. We shall drill a hole in the prism. 15. such as a window or door frame. 0. 0.B.0 etc.2 Apply Prisms to the chair seatframe We looked at prisms because we need to reach beyond the limitations of blocks and cylinders.0. Dots are used to form the decimal point. A. In other countries it is common to write thousands with commas for example. this is how numbers may appear in the parameters box. !Same prism with drawing codes PRISM_ 5. !Alternative Codes for the Seat frame.B.15. Have a look in the GDL Reference Manual (by now you should find it a lot easier to browse) and read the section on PRISMs in the chapter dealing with 3D – to make sure you know the syntax. etc.1. 0. If you have a localized ArchiCAD. number each node in an anti clockwise direction. A. We can make the seat using one prism and drill a hole through it. etc In creative GDL.frsec-0. Use a monospaced font in scripting. 0. use the dragging method. • Do you have a single prism shape that is not parametric? If so. 1. Comma confusion? In some countries.28548.002 !Simple Prism PRISM 5. Many of the errors in your early efforts in creative prism writing with GDL will be with misplaced dots and commas. 15. but try always to work from the main origin of the project to ensure that at least one node of the prism is zero.28548. • Remember that Prisms can be anywhere in the XY plane.

using 15s for masking. We make the outline of the cushion the same as the inline for the hole in the frame. B-ft. 15.seatmat. Make the angle at 30° and make the hill height 10mm or 3/8”. 15. !Hole inline 15. 15. -1 With this code. A. A-f2. 15. let this be a manufacturer’s parameter.0. B-f2. f2. !Prism with hole. Again. f2. !end of outline ft.frsec+0. using 15s again for the masking.03 f2=ft/2 PRISM_ 5+5. you get the chair as in the illustration (centre). the prism needs to be told that it’s the last point by using a masking code of -1. perhaps of the same material as the frame. build the cushion. We will do this later in the book. -f2. one for each side of the frame. 15. ! Chamfered with HPRISM_ HPRISM_ seatmat. -1. Centring it makes more realistic mortice and tenon joints. When you repeat the first point as the last point.e. f2.25”. and make it of upholstery on top.B-f2. -f2. f2.002. f2. 15. 15. !Outline A-f2. 0. i. f2. f2. ft. Let’s make a temporary parameter of ‘ft’ for frame thickness. 15.ft. frsec-0. So. A-f2. ft. -f2. 5. A+f2. and give it a value of 30mm or 1. As in the illustration we have a chair with a frame and nothing in the frame – very uncomfortable! We can now make a prism to fill the empty space. -1 See the right hand illustration on the previous page. with an undersurface. 15.B-ft. before you DEL back to the origin.002. 1. It’s a small change.0. -1. Make sure that that the number of points is written correctly – with the hole. but build 4 prisms.framat. ft. B rectangle.03 !Frame thickness PRISM_ 5+5. 15. Continue on with the XY points for the inline of the hole . following on immediately from the frame command. 0. -f2. !Outline Introduction to Object Making with ArchiCAD 65 . -f2. 15. ft. 15. 15. frsec-0. f2. A-f2. 0. -1 !end of inline A+f2. 15.010. with an undersurface. 0. f2.B-f2. Another way to do this would be to keeping the theme of a frame. The benefit of this would be to be able to control the woodgrain in each piece. A-ft. !Prism with frame effect by drilling hole !Improved statement with f2 ft=0. f2. Centre the frame members for more realism! As we have a mission to improve the look of the chair. for frame effect ft=0. So using a half-frame width of ‘f2’ we can alternate the outside and inside lines of the prism by ‘f2’ either side of the 0. B-f2. Build in the Cushion We can now make a prism to fill the empty space. 15. -f2. f2. so do not put it in the Parameter Table. !start of outline A.0.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING The way to cut the hole is to write the Prism statement for the outline of the solid. 10. A. seatmat.B. B+f2. but worth doing for authenticity. B+f2. !start of inline A-ft. to keep things simple. We can add a cushion later. 30. you use a -1 to indicate that you have completed the inline. 15. we have gone from 5 points to 5+5. 0. 15.B. 15. 15. perhaps of the same material as the frame.01. and make it of upholstery on top. f2. we need to centre the frame elements to the legs – we didn’t do this before.

If we can work out from the bulge what the sweep angle is. As the width of the chair is ‘A’. we can profit by looking at the bendy BPRISM_ and applying it to the back of the chair. We would like to curve the back panel to make it more comfortable and authentic. The formulae are printed below. Make a new parameter ‘bbulg’ (dimension). we need to make a parameter for the bulge of the chairback ‘bbulg’ and work out a formula based on A to calculate how much curvature to apply to the chairback.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING You can see how the seat upholstery is chamfered to give a soft look.3 Learn about Circle Geometry and make the chair more comfortable While this chapter is about Prisms. This is all that you need. The chairback is a chord. From this you can work out the circumferential distance travelled by the back. Let’s try to curve the back now! 6. a slice off the edge of a theoretical circle. we can work out the radius. 66 Introduction to Object Making with ArchiCAD . Here it is. First the Master Script is required to do the calculations.

6 !original Back panel ENDIF !if bakon !Modify 3D Script !Back Legs.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING !--------Add to Master Script--------!Back bulge Circle calculation formula IF bbulg<=0.lsec/2. -bcirc +ft. 90.15.6-ft.-1 DEL 3 !BLOCK A. Comment out the two LINE2 commands and try an ARC2 for the back and a single line for the frame.0.lsec/2. panel and upholstery IF bakon THEN MATERIAL framat ADD 0.brad. and it’s easiest to calculate the half angle ‘bangl’ between the edge and the centre. bcirc.ft.15. as BPRISM_ is like a flat surface bent into a curve.lsec/3.15.lsec/6.01 THEN bbulg=0. -bcirc.15.15.framat. y.bhit*0.bhit*0.08 THEN bbulg=0.15. Final touch of quality – Update the 2D Script From the previous illustration you can see that the 2D Script has been updated.ft. we can shift a small distance and issue another BPRISM_ for the upholstery. we built the back legs. Finally.lsec/3. r.sthit CONE bhit. starting with angle alpha and ending at angle beta – moving in an counterclockwise direction.0. To remind you: ARC2 x.08 bangl=(90-ATN((A/2)/bbulg))*2 !Half angle brad=(A/2)/SIN(bangl) !Radius of curve bcirc=2*PI*rad*bangl*360 !Half chord length PARAMETERS bbulg=bbulg Here we have two idiotproofing lines to protect against extreme values being entered by the user. Since we took the trouble to calculate the circle geometry of the chairback.sthit+bhit*0. using soft fabric.lsec/2. we need only the half length of the chord.ft. we need to find out the length of the chord. and make the modification. From that we can work out ‘brad’ the radius. as before.bhit*0. You may wonder why we cannot chamfer the edges of the upholstery on the back as we did for the seat. For me. alpha. 5.lsec/3.6.y.6-ft.0.B-lsec/3+bbulg. bcirc -ft. let’s put that to use. So look at the 3D script as it was before.9’.15. You have the choice of BPRISM_ or HPRISM_ so you choose. beta: draws part of a circle on centrepoint x. -bcirc.bhit*0. !Cushion.15. DEL 3 takes us right back to the origin. we have to do some 3D manoevres.6. so that whatever the bulge value. We could ‘cave in’ to the easy option and return to a PROJECT2.-1 Introduction to Object Making with ArchiCAD In the 3D Script.seatmat. of radius r. Because BPRISM_ curves downwards. bcirc. The height of the prism will be from the topmost part – ‘sthit+bhit*0. Play with the script of the chair changing the ROTx from -90 to 90. bcirc -ft. We use ADD to get to the centre of the chair. We made the half-width of the prism the half-circumference. 67 . 90.brad. We must calculate the sweep angle. As BPRISM_ has to be organised around the centre of the chair for it to bend symmetrically. -bcirc. 5.framat. The back cushion – by adjusting the Z height.framat.90 DEL 2 !Back panel ADD A/2. -bcirc +ft. but for the back panel.90 ADDx A CONE bhit.01 IF bbulg>=0. we have to get behind the chair and use ROTx so that the Z axis is facing backwards (away from the chair). the curved back takes priority. not chamfered ADDz -lsec/6 BPRISM_ seatmat.9 ROTx -90 BPRISM_ framat. it will always fit perfectly.bhit*0. We cannot have both a curve. Try changing the values to see where the back moves to. -bcirc +ft.B. Let’s do this. PARAMETERS reports the corrected dimensions back to the user in case of an error.

B-s4. If you can still manage the code. Summary of GDL in this section • Prisms are the most useful command in creative GDL – they can be bent. By gradual improvement in the GDL. • Drilling holes – write the XYs of the hole immediately after the outline XYs. Otherwise. A-s2.brad. but it is a new ArchiCAD 9 command that makes it easier to pick the object up in the floor plan.B+s4. • A common cause of errors when writing prisms is confusion with commas. A-s2. because the XY of each of their nodepoints can be defined. drilled. beta: the same as ARC2 above. Now make the modification to the 2D Script. rounded. use a PROJECT2.B-brad+bbulg. y. • Curved solids can be made with BPRISM. • You do not need to move the cursor to build prisms. • ‘Instant GDL’ is best built from slabs placed on the main origin. By deducting 2° either way. as with the prism.brad. cut. 68 Introduction to Object Making with ArchiCAD . ! 90-bangl+2.B.90-bangl+2.90+bangl-2 LINE2 s2. alpha. and the position is at the centre of the back.B+s4 !back ARC2A/2.B !back for AC7.B-s4 !back !LINE2 s2. it looks better in relation to the legs. You may only have to lift them into position. • If the object gets too complex. write the 2D with a proper script.B-brad+bbulg. !Put these lines in for the curved back !LINE2 s2. • You can shorten the time of building prisms with ‘Instant GDL’ using Drag and Drop.90+bangl-2 !for AC9 addthe lines below !HOTARC2 A/2.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING HOTARC2 x. A-s2. We position the arc with an XY coordinate. It is best used if prism shape is not going to change much. This may require some calculation to get it the correct size and position. define the prism with parameters. chamfered and hollowed out. A-s2. The sweep angle of the arc can be ‘bangl’ either way. • Soft edge effects can be achieved with HPRISM.B !add for AC9 We do not have to use ADD2 commands here. r.B.8 !HOTLINE2 s2. we have a much more refined product.

Lamps. It is good enough for the GDL interpreter – but it is not for humans to fully understand. By contrast. This is not so! You can make excellent objects without GDL. We have now tried making objects with GDL. When you look at a script of an autoscripted object.1 Looking into Autoscripted GDL There is a middle road in Object Making Earlier. there is a middle road that you can follow. 69 . Examine the 3D script of the autoscripted table Open the table that was used as an example in Chapter 2. We will run through explaining what is contained in the script. 7. You can suffer from exhaustion putting in the hours. you will feel virtuous – but you may become so enthusiastic about GDL that you try to do all the work yourself. Stairs etc are brought in as Macros and appear in the form of a CALL statement. and you can compare that with the IDs in the model. However. Profiler objects. In the script. If you can become familiar with the look and organization of autoscripted code and make use of it in easy steps. it is capable of extension into something more powerful from just a humble beginning. First. then move them into the GDL script. and use ADD and ROT to position the component. The auto-scripted object contains a mass of complex ‘industrial’ code that is off putting to look at. You can get ArchiCAD to do much of the work for you and then come in at the half way point and add some of the qualities that make the object parametric. Remind yourself again how to make objects using ArchiCAD’s own tools by looking at the start of chapter 2.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING CHAPTER 7: LOOKING INTO AUTOSCRIPTED GDL It is valuable to look into the scripts of objects generated without GDL and know how to modify them – to make them slightly parametric. It may seem to you that the message of this book is that making objects without GDL should make you feel guilty. You can find out which by laying out elements in the ArchiCAD Floor Plan and dragging them to a GDL Script window. and frustration if the results are not as good as hoped for. every part will have the original ID. it is not as scary as Introduction to Object Making with ArchiCAD it first seemed. By comparison. if you make objects with GDL. and then look at ways of shortening and modifying it. we practised making objects without GDL. Every element in ArchiCAD’s toolbox has its 2D or 3D equivalent in GDL. but you know that you are rejecting the chances of them being parametric. • Walls become XWALL_{2} • Roofs become CSLAB_ • Floors become CPRISM_ • Beams become BEAM • Columns become CPRISM_ • Mesh becomes MASS • Fills and Polylines become POLY2_B{2} • Line becomes LINE2 • Spline lines become SPLINE2A • Texts become TEXT2 • Circles become CIRCLE2 • Hotspots become HOTSPOT2 • Objects. left hand leg. and unstructured. Resave using method 1 (from 3D view). or make yourself another quick table. Making objects in the ArchiCAD environment Anybody who uses ArchiCAD eventually has the curiosity to open the 3D script of an object made in the ArchiCAD environment – and has been thoroughly scared. You can also make individual components using the ‘Instant GDL’ method. you need to recognise what the bits are. ‘creative’ GDL that has been composed by a human looks clean and uncluttered – if it is written with parameters. A primary rule of tinkering with autoscripted objects is to move the module of ArchiCAD bits to the Main Origin – perhaps centred over the main. let’s look at an object completely made with ArchiCAD’s own tools and saved as an object.

not a temporary one) then this offset will be very small.gsm ! Date : April 2004 ! Version : 8. the MULX command will ‘multiply everything in the X direction by A/2. The three MUL commands enable the object to be stretchy. The GDL development team chose ‘zzyzx’ after a small town overlooking a dried salt lake in California near Las Vegas.25 metres by 1.270. ZZYZX is what GDL denotes for the height. and replace the 2D Symbol with a PROJECT2 3. As we built this on the origin. This will make it slightly shorter. But it could not be called Z as many older The most easily changed parameters are Material and Pen The ADD command is an offset – this is in case you built the object a long distance from the origin of the main floor plan.8/2.10 ! Written by ArchiCAD ! MULXA/2. 1. Now you can see how stretchiness works in autoscripted objects. you get a vast number of trailing decimals.001325786114 MULZZZYZX/ 0. and the height was 0. You’ll get ‘bounding box’ hotspots.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING making sure that you tick the ‘Editable’ button. If you stretch the height to be 1. Because the autoscripted units are accurate to a million millionth of a metre. It’s good to have date and object’s name and author at the start of the script. the last town in the US directory of placenames.8 metres. Retain (if you want it to be stretchy).2/0. delete the 3 MUL commands. If you build very close to the project’s Origin (it must be the main project origin. When it was first made. The 3D script starts out with some titling. If you shrink the table to a A value of 1.75. now open the GDL and view the scripts.2 metres.4849148094654 ADDY 0. you can see that this 70 Introduction to Object Making with ArchiCAD .0 came out.5064862370491 BODY -1 MODEL SOLID RESOL 36 objects from ArchiCAD 5. Do likewise when you write creative scripts. Place the object again.75 metres.25753262639 (i. If you want the table NOT to be stretchy. so it was approximately 2.0 metres.25753262639 MULYB/1. The MULY command works in the same way. You will wish you had built them with a small snap grid working.25753262639). the table was drawn by eye in the floor plan. the vertical components will all be multiplied using MULZ by 1. ! Document name: ! ! Name : table_2_iomwac.2 in the 2D Script.e. Some people build their objects hundreds.75 ADDX 0. sometimes thousands of metres from the project origin. First thing you can do it to view the table in 3D and paste a nice small square image into the Preview Window.0 (and earlier) already used Z for other purposes and might no longer work. This rather curious name arises from the need to call it something related to Z when ArchiCAD 6.

7 cPRISM_ "Surface-Whitewash". etc.4778922240699. 36 is the default value for this. 49. The prism is lifted by 0. -0. 1. 15..004326136003042. -0. "Surface-Whitewash". so you do not really need this either. 79. 0. etc . -1 DEL 1 BODY -1 This is the first real 3D element in the script.01376101330492. There are a few more BODYs here. -0. 79. Meanwhile.05. -0. RESOL 36 tells it that all rounded surfaces are to have 36 polygons to make up a full circle.030201323002 GLOB_TARGPOS_Z = 1. there was no animation taking place (Frame number is set to -1). "Surface-Whitewash". 0. 0.730174812729 GLOB_EYEPOS_Z = 1. It is obviously the beam under the tabletop as it is only 100 mm deep and is 0.85101578994 GLOB_EYEPOS_Y = -7..847 GLOB_SUN_ALTITUDE = 11. 0.1100340105909.02340206237996.02340206237996. Retain. 0. 0. "Surface-Whitewash". 0.2981 BODY -1 BODY -1 GLOB_HSTORY_HEIGHT = 0.04300407447266.3339323311641. 79. These are a command to the GDL interpreter to ‘ensure the 3D integrity of each object’. 0. Delete MODEL SOLID.6 and drawn.259910825444. !!Slab-062 PEN 7 There is too much to list after this..4232945689723.2412796563933. the drawing scale was 1:50.4552868334455.04300407447266. These are not commands. 79.01376101330492. !!Slab-059 GLOB_ID = "Slab-059" GLOB_INTID = 651 BODY -1 ADDZ 0. GLOB_SCRIPT_TYPE = 3 GLOB_CONTEXT = 3 GLOB_SCALE = 50 GLOB_NORTH_DIR = 90 GLOB_DRAWING_BGD_PEN = 91 GLOB_FRAME_NR = -1 GLOB_EYEPOS_X = -35.01376101330492. 5.04300407447266. Delete BODY. The syntax for CPRISM_ was explained in chapter 5. They are not necessary in creative GDL until you get into more complex tasks such as the TUBE command. The BODY -1 command is one that autoscripts always carry. 79.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING offset is trying to place the object’s own origin at the bottom left-hand corner. 79. they are a historical record. 0. 0. -0. This and the tabletop were made with a Slab tool.44915475591 GLOB_TARGPOS_Y = -5. MODEL SOLID just tells the object to be solid.throughout the script.65 GLOB_LAYER = "Floors" GLOB_ID = "Slab-062" GLOB_INTID = 667 BODY -1 ADDZ 0. 79. These GLOB items are called Global Variables. -0.2170451076949. 0.. and these always translate into a CPRISM_.490650560281. "Surface-Whitewash".2783815152915. Introduction to Object Making with ArchiCAD 71 . -0. You can find out more about Global Variables in Appendix A of the GDL Reference Manual. 1. your model would still be solid even without the command. so if you did not write it. They are not doing anything here except recording the conditions that prevailed when the object was made. -0. 15. 15.557576862359 GLOB_TARGPOS_X = -30. -0. 0.4919763397133. 15. At the time the table was made the North point was at 90°. 15.382566700897.1. 0.35182699439.4327201367068.5 GLOB_SUN_AZIMUTH = 239. -0. 0.3964535351562.6 cPRISM_ "Surface-Whitewash". etc.1776092841723.03992947334826. -0. then the DEL command returns the cursor to the origin. 0. you can Delete ALL the GLOB s! . 0.259910825444. This is the default condition. 0. 79.2997489820857.57 metres off the floor. the camera eye and target positions were noted.

79.4128433470601.154755338342. If we are not sure it’s the tabletop.02400049266183. 0. 79. What about the 2D Script? Look at the 2D script – if you used Save Selection As. It is obviously the tabletop because the height of the prism is 0. -0.. "Surface-Whitewash". the GLOB_ID is matched by the ID of the slab it was made from in the settings dialog.05 metres and there are a lot of points (49) because of the curved ends. 72 Introduction to Object Making with ArchiCAD . 0. 0. try hitting “Select Subtype” and tell GDL it’s a Table.7 metres.. judging by their height and depth.007197412027317. -0.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING This is the tabletop itself. -0. etc. The table can be tuned up – to be parametric If you have the object open. As this is a Table.. -0.05. -0. -0.31606425849. 79. 0. 15. -0. "Surface-Whitewash". 0. -0. 79. etc. The same applies if you saved the 3D View (method 1). The masking values shows you the 15s but they are modified by having 64 added to each of them – 79 (15+64) means that the point is part of a curve and should be treated as smooth by Open GL and the ArchiCAD Rendering engine.GSM’ perhaps. mostly made of LINE2 and POLY2 commands. If you modify the shape or size of the 3D object significantly.3304777709065.036711189204. etc. -0. !!Slab-061 GLOB_ID = "Slab-061" GLOB_INTID = 655 BODY -1 ADDZ 0.05 cPRISM_ "Surface-Whitewash".05203414774601. -0. -0. -0.. you may have to delete the whole 2D script and replace it with a PROJECT2 command and some Hotspots at the corners. the thickness of the prism is 0.4128433470601. save a copy of it under a new name – ‘Table_02.04732645894257.1691548391012.05218296290095. 15.3960784971471. 15.02400049266183.03700823220845. These are obviously table feet. 15.05719819902872. (method 2) it may well look very complicated. 79.

The common parameters are the key to group editing and group reporting. not spend time adapting a lot of ‘industrial’ code. Parameters and Subtypes GDL will load standard parameters from a template called table. It will also give you ones you do not intend to use. but note in so doing that GDL has now given you a load of ready made parameter names for some of these – which you can use. New parameters you make will be put at the bottom. the main advantage is that they will show up correctly in Interactive Schedules. the dimensions we wanted in the first place when building the eyeballed table. so click the ‘Hide’ button next to the ‘ArchiFM’ title and all the other parameters will be hidden from the user’s view. Now make new parameters for Introduction to Object Making with ArchiCAD 73 . Simplify A and B to exactly 2. including Polylines. you could select a whole host of different tables (of subtype ‘table’) and update materials in all tables simultaneously. Retain the first two MUL commands so that the table will remain stretchy. perhaps. Looking at the curved top.gsm. it’s beyond the scope of this chapter to extend the length or width of the table except by stretching.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING Materials and Pen. but clean them up with the exact values of A and B. but the experienced GDL author would embark on this table in creative GDL from the start. The object will conform with some of the internal routines of ArchiCAD (for example the wall cutting of window or the roof cutting of the skylight). Here. Do not forget to keep strictly to metres when writing anything into the actual script. For most objects. annoyingly. For example if you use ‘gs_top_mat’ and ‘gs_leg_mat’ for the top and leg materials. A little more knowledge of GDL. Make a new parameter ‘tthik’ for tabletop thickness. Move them up. would make this easy.0 m. Selecting the right subtype is more than a way to save you typing. Delete the MULZ command – height can be controlled parametrically. Rebuilding the 3D Script Modify the labelling at the top to remind yourself when you altered the object. and this will save you a lot of typing. the parameter box is in millimetres.25 m and 1.

-0. ! Name : table_2_iomwac.1-tthik cPRISM_ botmat. 5.4598885156183. 79.gsm ! Date : April 2004 ! Version : 8.3964535351562. and remove all the redundant GLOBs and BODYs and all later PENs.01124315667042. 0.1. 79. -0. 0. botmat. 0. 79. provide a new title for the tabletop. change the ADDZ command to be the total table height minus the tabletop thickness.02340206237996. For the beam. -0.2783815152915.25753262639 MULY B/1. 0. 79. -0.4232945689723. 0. 15.21. 79.1776092841723. 79. 15.4778922240699.4552868334455.4919763397133. -0. 0. etc. 74 Introduction to Object Making with ArchiCAD .04. -0. 79.4849147986173.02340206237996. 0. Now label each part in the 3D script with the part of the etc. -0. 0. Change the materials at the start of each CPRISM to the parameters you made. 0.001325786114 !!Centre Beam PEN gs_cont_pen ADDZ zzyzx-0.1511717407535.2997489820857. 79. 15. 0. 0.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING table that you believe it to be. 0. etc. Change the tabletop thickness to the new parameter of ‘tthik’.490650560281.10 ! Written by ArchiCAD modified for iOMWAC MULX A/2. edgmat. 0. 0. 15.04.04. 0. -0. Put in a parametric PEN command. 0. 79. -0. botmat.004326136003042. -0. botmat. -0.2412796563933.3339323311641. -0. Delete the ADD offsets.382566700897.. change the ADDZ command to be the total table height minus the tabletop thickness minus foot height.35182699439.4327201367068.03992947334826.2170451076949. -1 DEL 1 !!Tabletop ADDZ zzyzx-tthik cPRISM_ gs_top_mat. but remember to delete the equivalent offset command in the 2D script – or the symbol and the actual table will not coincide in location.08210240625503. 0. 49. 79. 1.4774056020433.. 0.1100340105909. 79. 0.01376101330492.01376101330492.01376101330492. For the tabletop. -0. 1. tthik. -0.21. 15.

0. -0. footmat. we could put in a Master Script routine like the one below to control the ‘zzyzx’ height of the table – and you could do this for the ‘tthik’ too.03580210654081. 0. 0. like 100: and a RETURN statement at the end. Introduction to Object Making with ArchiCAD 75 . Because we selected the ‘table’ Subtype definition we have ‘gs_top_mat’.31606425849. 0. Provide a label for each part. 79.3606665766344. 79. 79. and the same for the smaller than (<). 79. Now try something like this. -0.2 IF zzyzx<=0. -0. !Modified Table !Master Script IF zzyzx>=1.002408716924311.5m (20”) to the overall length of the table. -0. -0. As the CPRISM allows you to specify top material.0410091477233.4 PARAMETERS zzyzx=zzyzx 0.03700823220845. 0. 79. 0.3960784971471.4128433470601. 0.3960784971471. -0. 0. Comments on ‘structure’ in the script – try a Subroutine Notice that in autoscripted work. 15.1690569439548.1642796538628.05. 0. Delete all the code for the second right-hand leg (see the object on the CD/web).330388076719. This is ‘structured scripting’ by the brute force method of returning to the origin with every small 3D statement. and ‘gs_leg_mat’ given to us. 15. Read ahead then come back.1691548391012. 0.02400049266183. -0. 0 coordinates.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING Ever mindful of quality.05719819902872. and you could do something smart with the other leg. 0. The monopod legs are located at the 0. etc. after each of the 3D commands are done one at a time. Note that in the script they must NOT appear with quote marks – they are material indices. If you can identify all the 3D statements which make up the left hand leg. 79.04011890314868. 0. Repeat the whole of the first leg 1. 15.0729319557382. 79. etc.07424769749459. replace all that ‘Whitewash’ with your new material parameters. DEL 1 !!Little circular pad under foot cPRISM_ footmat2. -1 If you wish. 0. 15. footmat2. etc. 79. 0. 79. 79.05 cPRISM_ footmat.05203414774601.02400049266183. you can also clean up some of the million millionth of a metre decimals to clean rounded dimensions. Do it all the way to the end of the 3D Script. -0.3350450848787.07867493665818.25m to the right of the first leg as a Subroutine. 0.4128433470601.02400049266183. 0. -0. 79. -0.4 THEN zzyzx=0.04732645894257.05704011900087. The idea behind the table is that is is mainly a rectangle of 1.0410091477233. 0. 0. -0. It makes this kind of tinkering vastly easier. Whatever you do to one part will not damage the rest. footmat.25. footmat2.007197412027317. 79.3463603485633. One whole leg element is over the origin. -0.3437969914738. 0. The greater than or equals sign (>=) always works better than simple greater than (>).04732645894257. -0.25m (50”) length and 1m (40”) width.3562267119174. you should do the same thing to all the leg parts under the table top. We explain more about Subroutines in the next chapter.05218296290095.3514091764344.03836546363036. 15. GOSUB 100:!Single leg 15. 0. 79. 79. !!Foot element under leg ADDZ 0.036711189204. but with rounded corners adding 0. but here it is only worth doing it in the case of the beam under the tabletop – we can ensure that it centres nicely on the cylindrical legs.3304777709065. you could put a number label to them. 0. 0. you have to finish. Although it takes a bit more thinking about. Think it out and work it through. not names. the GDL returns the cursor to the origin. 39. We can also put in the other parameter values like ‘botmat’ and ‘edgmat’ etc. 0.154755338342. guessing which parts they all are and how the heights need to be adjusted.3960784971471. 0 and 1. 0. 0. 0.2 THEN zzyzx=1. Some element of grouping or ordering is more logical though.05966670786791. -0.05. Once you have embarked on this. -0. bottom material and side material within the command.

You cannot get them accurately on the right hand leg without a lot of coding of the sort that has been written for the second leg centre spot. but there is an extra level of quality we can give it. The hotspot routines are not completely satisfactory if the table is stretched greatly – they will distort. Hide the parameters for Pen and Fills in the Parameter Table since you won’t be using them (hit the little X icons). -B*0. The way to get them working parametrically is to write the table parametrically with creative GDL! The first hotspot you write is important.05. 0. B*0.5 HOTSPOT2 0.007197412027317.05 cPRISM_ footmat.5. If you are in a hurry. Once should be enough. etc. 0. the object will be stretchy. 0.79.036711189204.5 !End spots HOTSPOT2 -0. we could do something like this: write a PROJECT2 and type in some hotspots – these should be located at cardinal points at the table. 0 HOTSPOT2 A-0. Add the final touches of quality – the 2D Script This Table could now be used. etc.154755338342. etc.0 !first leg centre spot HOTSPOT2 1. etc.31606425849. Your text will be cleaned up nicely. footmat. -0. you could use the Find and Replace command to weed many of those spaces in the original script.2575 !second leg centre spot !Stretch Edge Spots HOTSPOT2 0.05719819902872. 0. !Modified Table . -0. -0. (see a few pages back). etc. When you place the object. 79.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING ADDx 1. -0. to clean up the script Finally. Place your text cursor at the top of the script.05203414774601.3960784971471. 79. not at the bounding box points.1 !Draw 3D table in 2D Introduction to Object Making with ArchiCAD 76 . so let’s sort that out. The object and the symbol may no longer line up. 15. Type 3 spaces in the Find field and one space in the Replace field. it decides the location of the first click of the object’s placement in the floor plan. -0.25*A/2. footmat. the extreme edges. and hit the ‘Replace All’ button. 0 PROJECT2 3. If you maintain the distances apart of the hotspots at A and B in the 2 cardinal directions. 15.02400049266183.2D Script !Centre spot HOTSPOT2 0.25 GOSUB 100:!Single leg DEL 1 END:!======================================= DEL 1 RETURN Find and Replace. etc. 100:!Entire Leg and Foot element !!Foot element under leg ADDZ 0.270.5.

Make an IF-statement that makes the option active. curving the ends. the best advice is to use the Slab and Roof tools as much as possible. the greatest assistance to creative 3D GDL is the 2D Fill tool. -1 Introduction to Object Making with ArchiCAD This is the method whereby you make a component in the ArchiCAD plan. This will give you an opaque symbol instead of a transparent one.005967130246955.4919763397133. 171. and these are more resistant to human intervention. These can be stitched into the structure of your creatively scripted object. 0.004326136003042.308235298525. Keep the PROJECT2 as an option for the user.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING Make the 2D Symbol opaque or transparent If you wish to improve the quality further. 0. 0. The Wall tool generates XWALL commands in the autoscript. As the Wall tool is frequently used for objects that are captured in side view from 90°. The CPRISM is really a very friendly command when you get used to it – so it is easy to modify objects made with the Slab tool. gs_fill_pen.01437138894525. 175. outlines for furniture legs and a hundred other uses. B/1. For the Fill option. For the moment.004326136003042. But it is the ideal way to make single components such as fretwork. 1. 0.272110669571. 4001. 4001. 1. gs_back_pen. Make a new Boolean parameter called ‘vutype’. Then copy and paste the 2D fill (which by this time is a POLY2_B{2} command) into the 3D window and convert it to a 3D command. you could put in a proper symbol. as offered by the Subtype template. the projected view will be changed so you only need to put the MUL command with the Polygon fill. -0. 0. put in a MUL2 command which reflects the one in the 3D Script.270.25753262639. Use 2D to help your 3D model Surprisingly.5039106002072. -0. such as fills and lines. DEL 1 ENDIF There are lines containing 900 and 4001 status codes which are beyond the scope of this chapter. 1. When the user changes the size of the table. 0. Drag it into the 2D Script.5039106002072. Drag and drop a 2D fill into the 2D Script window. 1. Trace over the table in ArchiCAD with a Fill tool. curvy shapes. For this sort of GDL-tweaking work with existing objects.004326136003042.308235298525.1 ELSE MUL2 A/2. 77 . or just follow the example given here. -0. and try this method of modification. 900.2 Come back to ‘Instant GDL’ IF vutype=1 THEN PROJECT2 3. -0.4919763397133. 3.001325786114 PEN gs_cont_pen FILL gs_fill_type POLY2_B{2} 9. -0. Put into the POLY2_B{2} statement the standard parameters for the Background and Fill Pens and Fill type. 0. 1. 900. 0.005967130246955. and change only the Pen parameters. 7. It is possible to do the same for 2D objects.7011905436. 1.4919763397133. Dragging is not advisable for entire objects for which saving objects using methods 1 and 2 are perfectly suited. then drag and drop it into a script window. there are some additional ROT commands at the start of the 3D script which are best left untouched. just use the POLY2 as it comes. 0. Cautionary note for modifying objects If you make objects using the Wall tool. -0. 1.6991656132. Check with the Help menu. The Roof tool generates statements with the CSLAB_ command which are also comparatively easy to edit because they contain the outline of the shape with XY locations. you need to be more experienced. and add a third value for the Z height of each point. and you will get a POLY2_B{2}. -0.

06592689450963.1838745118913. 0.592356841974. 1. Note that if you have tried to use Profiler for lathing. 1. 0. you will find many lines with 900 and 4001 in them. 0. 0. 0.02393520066069.6645848017343.305337005102. 0. twisting or rescaling the section as it goes. 0. 0. and then copy them to GDL. SWEEP pulls a profile through 3D space.380200507736.142621891345. you only have to draw a 2D profile in the Positive-Y zone – that means all points above the X axis – and you can revolve it. 1.9665730337. 1.2282009802147.038393080352.3760557831815 HOTSPOT2 0. 0. You should get something like this: PEN 1 SET FILL "25 %" POLY2_B{2} 13. you don’t entirely have to know how they work.2464046900357.1013692707986. 0. 0.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING A lot of 3D commands involve drawing out a 2D profile and then doing something with it: EXTRUDE extrudes. 0. 4001.6870353976553. 900.59681179421. All of these profiles support the use of Polylines. 4001. 1. you do it with the continuous Line tool. 0. 1. These are outside the scope of this book. so that it is next to the project floor plan. 1. 0.3760557831815 HOTSPOT2 0. 1. 900. 0.06592689450963. Look up REVOLVE in the GDL Reference Manual. 0.68649776848. Create a New Library Part from the File menu. 1. 4001. -1 HOTSPOT2 0. it works around a vertical axis.556751901622. but let’s try one – REVOLVE. 0. 1. allowing it to be twisted and mitred as it goes. -107. 900. Try instant GDL with a REVOLVE There is not time to go into all of these.258191153049 Introduction to Object Making with ArchiCAD 78 .3760557831815.1838745118913. For a lathing operation.3760557831815. -0. 0.1013692707986. 0. 0. 0. 0. TUBE also draws a 2D profile through 3D space. These define centres and radii of curvature. RULED takes the points on a 2D profile and allows you to form a 3D solid by repeating the same number of nodes at different heights. and position the 2D window to the right of the screen. This method makes it easy beyond your expectations to make a lathed object. -47.163899448943. REVOLVE lathes the section around an axis. 0. When you draw the profile.258191153049. They just do. Drag and drop the 2D fill into the 2D Script window – do the drag over very fast. Here we have to use a horizontal axis. 0. 0.258191153049. If you use the 2D Fill tool and force lines to be curves.258191153049 HOTSPOT2 0. 0. This liberates you from the ‘polecat’ of Profiler. If you copy and paste these 2D profiles and use them in this way. 0. These all use the same syntax for XY points as POLY2_B{2}. 1. PYRAMID pulls the nodes on a 2D profile to one point. -60.

9665730337. with pen lines.163899448943. with pen lines top and bottom.258191153049. 0. When the list is in the 3D Script. 0.06592689450963. -60.258191153049. 1. This should be 1. 900.038393080352. copy only the list of XY points and paste it into the 3D Script. 4001. 0.6870353976553. You need to precede the REVOLVE command with a ROTy –90 because the lathed object is turned around the X-axis. Delete the hotspots and all from the 2D Script and replace with a standard PROJECT2 statement. 1.3760557831815. which you can assume to be 61.02393520066069. PEN 1 MATERIAL 18 !Temporary values for pen & material RESOL 16 ROTy -90 REVOLVE 13. not -1. noting that there were 13 lines in the POLY2. 1. 1.556751901622.360. – 61 will give you an open object with pen lines and a flat bottom.592356841974. 0. 0. 1.1838745118913. 0. 900.380200507736.2464046900357. 0. 1.038393080352. 0. 0. Introduction to Object Making with ArchiCAD 79 . 0. 1. 0. -47. the angle through which the profile should be revolved (360°) and finally a masking value. 4001. +1 DEL 1 Here is the finished pot.163899448943 HOTSPOT2 1. 0. 0. 0. and is therefore horizontal. Now add the REVOLVE command above the list of points.592356841974.305337005102 HOTSPOT2 1. Things which need to stand upright should be rotated minus 90° around Y. 1. -107. 900. -0.2464046900357 Now. 1.2282009802147. – 63 will give you a solid closed object. The word REVOLVE is followed by the number of points (was 13). 0. 0.3760557831815.59681179421.61.68649776848. 1.6645848017343.142621891345. 4001.305337005102. 0. 0.1013692707986.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING HOTSPOT2 1. leave all the status codes as they are except the last one which is an ArchiCAD error. 0. Masking codes and Curvature control The key to knowing the masking code here is thus: – 60 will give you a lathed object open at both ends. 0. The Chesspieces are made entirely using this Drag and Revolve technique.380200507736. 0.

The benefit of being a GDL user is that you can control the number of polygons with a simple RESOL (or TOLER) command. You can ruin your model with too many polygons. It is important to control the number of polygons in the model – if you are building any objects that are repeated in great numbers you must use GDL to define the number of polygons in each solid. With ArchiCAD’s 3D engine. by now. REVOLVE is a good use of this technique. the vase will look smooth because we are using Open GL rendering.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING Whatever value you give RESOL here. Trussmaker is very powerful. The RESOL command tells GDL that you only want 16 polygonal faces to the shape. The easiest things to change into parameters are the names of materials – they can be replaced with variable names. try ‘Instant GDL’ – drag and drop. Summary of GDL in this section • The table example is so simple that you may feel that. but the GDL is ‘industrial’ and provides no easy way to modify. with a variety of sections. Profiler objects are built with a TUBE command which makes them very easy to edit. See the GDL Cookbook for a thorough explanation. Both are capable of making objects with linear elements. you will see the polygons. Many 3D objects use the same syntax as the 2D Fill tool. and you may have an unrealistic number of polygons if you wish to export to DXF/DWG or an external renderer. • • • • Modifying objects made with Add-ons Objects made by certain add-ons can be opened and edited. Let’s consider only those made with Trussmaker and with Profiler. These curved 3D lattices can be made with Profiler and require only the smallest amount of GDL tweaking to make them 3D. so you can make interesting 3D objects easily. Multiply these vases by a few hundred and your computer may not have enough memory to render. You may have to learn about object masking. But it has been a good means of demonstrating the contents of an autoscript. the autoscript. you are quite capable of scripting this in native GDL without needing 80 Introduction to Object Making with ArchiCAD . But if you are working at creative GDL and simply want a quick solution. The methods used in this chapter are fine for complete objects.

the entire object would obey!) Subroutines are used to avoid repetitive typing You can take a piece of text that will have to be repeated frequently. Subroutines can be used in all the scripts except the Master Script (in which case if you used the END statement. and can be moved or rotated like objects (see the ROTx command for the window below). This is moving towards what we mean when we talk about ‘object oriented’ programming.1 Subroutines Subroutines are pieces of GDL code that we want to repeat. Subroutines can be hierarchical. You could write a routine for all the legs thus: 100:!All the legs GOSUB 110:!One leg ADDX A GOSUB 110:!One leg ADDY B GOSUB 110:!One leg ADDX -A GOSUB 110:!One leg DEL 3 !Chair GOSUB 100:!All the Legs GOSUB 200:!Draw the Seat GOSUB 300:!Build the Back END !----------------------------100:!All the legs GOSUB 110:!One single leg ADDx A GOSUB 110:!One single leg ADDy B GOSUB 110:!One single leg ADDx -A GOSUB 110:!One single leg DEL 3 RETURN 110:!One single leg CONE sthit. As the Fingernails are largely the same (with minor variations on size). and that could GOSUB the Hand (hinging at the wrist). 90. nor even copy and paste the leg four times. and give them a label number – just like a piece of luggage. after the END statement. give it a number. we can package the code into a discrete bundle. Open GL forces us to improve the appearance of objects – textures must be handled better. 8. Subroutines and Macros are the answer. you could refer to the first part of the script as the ‘executive script’. you would not want to type that all out again.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING CHAPTER 8: BUILD ON THE POWER OF GDL As a GDL script gets more complex. We store subroutines at the end of the script. and the hand could GOSUB each of the Fingers (each of which is correctly sized and hinging according to the rules). In the case of our basic GDL chair earlier on. Subroutines are at the heart of complex GDL scripting.lsec/2. if your chair has an elaborate leg that takes a many lines to describe and you have four legs to do. and then perform the subroutine with a GOSUB command. each finger would 81 . Introduction to Object Making with ArchiCAD In this case.” William Morris.90 RETURN Subroutines are used to give structure to a long script The main script can consist of a number of GOSUB commands to a series of subroutines that build elements of the model. you have to find ways to store frequently used routines. We make every part of the model a discrete package that can be identified and made to perform or locate itself according to rules. Even if we only want to use them once. the entire Arm object (which hinged at the shoulder) could GOSUB a subroutine for the Forearm (hinging at the elbow). We must never allow the script to run accidentally into the subroutines – they must only happen when required. “If you want a golden rule that will fit everything. lsec/3. These are logically based on your 3D analysis. this is it: Have nothing in your houses that you do not know to be useful or believe to be beautiful. with most of the actual work being done by the subroutines that follow the END command. In a human figure.

PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING

call the same fingernail subroutine, passing it a different value for length and width. Look at your object for every opportunity to make use of repetition – and if they do not repeat exactly, they may be close enough to repeat with minor variations, using this concept of hierarchy. Subroutines must have number labels and this helps with organisation. For example, in a cabinet design, everything to do with the cabinet itself can be numbered 100, 110, 120 etc. The drawer parts can all be numbered in the 200 family, e.g. 200, 210, 220 etc. Graphical hotspots can all start from 1000, and be numbered 1000, 1010, 1020 etc. Thus you can find everything easily. You do not have to write colons after the label number except when they are actually a label. However, it’s a good discipline to provide a comment with every subroutine, so I usually write the subroutine first line (as in the example above) then copy and paste the line to the place where it will be used with the GOSUB command – so the comment is the same as the subroutine title.

you can issue a GOSUB command that includes the flag in the line number. For example:
!Window object ROTx -90 GOSUB 100+ws !Window DEL 1 END:!----------------------------------100:!Rectangular window ........... RETURN 101:!Round topped window ........... RETURN 102:!Gothic window ........... RETURN

Subroutines help with error checking and maintenance
When an object’s script gets extremely complex, it could resemble spaghetti. Quite simply, it can get to the point where you can no longer understand what you wrote only a short while ago. If you are a member of a team, or writing objects that will be maintained by others at a later date, the numbering of logical blocks of the script into subroutines is essential. When an error is occuring you can see where the error is, and go directly to the subroutine that covers that particular part of the object. As a project grows, subroutines can become standardised and can be copied and pasted into several objects. A range of furniture might share a common set of leg or door designs. A limitation is that only one person can edit a GDL object at a time, and when GDL gets to the level of commercial manufacturing – kitchens or doors – something even more powerful is required : macros.

In this case the drawers can be in subroutines which get told their width, depth and height. Graphical hotspots which open and shut the drawers can also be put into subroutines.

Golden Rules for Subroutines
Let’s summarize some easy-to-remember ‘must-do’ rules. The subroutines must all be written after the END command. Subroutines must start with a number label (followed by a colon and a comment), and must be closed with the command RETURN. Subroutines may call other subroutines (but not themself).
Introduction to Object Making with ArchiCAD

Subroutines work well with flow control
Subroutines have numbers that can be dynamically addressed. For example, you may have defined a flag, like ‘ws’ for window shape, to be valued 0, 1 or 2, as a result of a ValueList. Now, in the 3D Script,

82

PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING

In cursor movement, subroutines must be self contained; the number of DELs must exactly equal the number of cursor movements. Execution of the any script must never run accidentally into a subroutine – GOSUB must be the only entry ticket. You must avoid the risk of running from one subroutine to another by forgetting to close it with the RETURN.

Macros can be placed in the plan like any other object – or if the author wishes, they can be made ‘unplaceable’ using the little checkbox in the GDL dialog.

Subroutines versus Macros
Ordinary GDL writers do not like macros because the main object is no longer self contained – especially if they are solo authors. If the macros get mislaid (not in loaded libraries) the object has chunks missing, or there is an outbreak of annoying error messages. If you propose to create objects for sale, you are advised to store all your subsidiary pieces of code in subroutines so that the object is singular and portable. Conversely, manufacturers love macros. Macros work better for teamwork where people can contribute parts to the overall project. Components like doors, handles, taps can be maintained independently. The manufacturer can build up a portfolio of parts. As long as naming conventions, and other rules (such as the naming of parameters, location of origins) are followed rigorously, the quality of the objects can be upgraded over time without requiring a major rewrite of the whole object. Objects can be specified from databases. If unauthorised use is made of the main object, they will not work because the macros will be missing.

8.2 Macros
Macros are separate small GDL files which can be somewhere in your library and can be called in, like a subroutine, but exist outside the object you are currently writing. These are essential in manufacturing, for example kitchen and door design – they are much more powerful than subroutines. If you look at the kitchens or doors in the ArchiCAD library you will realise that if every kitchen unit had to carry identical subroutines for taps and inserted sinks, there would be an impossible maintenance problem. Everytime you updated the range of taps, you would have to open every kitchen cabinet and update the tap subroutine. Think about doors. There are a huge variety of doors and a huge variety of door ironmongery items, and the permutations of both become uncountable – all of which can fit into a door frame 900x2100mm. What happens when the range of doors needs to be updated? The mind boggles at the workload. The solution is to be found by making the primary GDL object a user interface with the main parameters offered to the user, much of it in the form of popdown or pictorial menus. A door object will do nothing much more in real GDL terms than cut the hole in the wall – the WALLHOLE command. It will then use the CALL command to call in a suitable door frame, call in architraves if they are required, call in a door (from a library of door types), call in the handle. Macros can be hierarchical – so the frame can call the architrave, the door can call the handle, the door can call the glazed panel. In each case information is passed down the chain to the macros, for example how big to be, and which material to use. If you do not pass information to the macro, it comes in using the parameters with which it was saved.
Introduction to Object Making with ArchiCAD

Simple example of Macros
As a simple example, let’s join together the sanitary fittings we made back in chapter 3. This could be another ‘MultiObject’. The Macros must have names without spaces (use ‘underscore’ if you like), and be in the loaded library.

!Bathroom fitting !Parameter Script

83

PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING

VALUES 'bthrm_part' 'Bidet','WC','WHB', 'Bath' !Bathroom fitting !2D Script !Macro Call using default values IF bthrm_part='Bidet' THEN CALL ‘bthrm_bidet’ IF bthrm_part='WC' THEN CALL ‘bthrm_WC’ IF bthrm_part='WHB' THEN CALL ‘bthrm_bath’ !Macro Call sending information IF bthrm_part='WHB' THEN CALL bthrm_WHB PARAMETERS A=0.45,B=0.35 ENDIF

The Chessboard has comparatively simple GDL (a FOR NEXT Loop) to form the squares. The board can be used on its own. A more interesting possibility is that the board might contain the starting layout, and a number of famous endgame positions and lay the pieces out itself. It could contain the pattern for these patterns in a dataset and summon up each chesspiece as a Macro, repeatedly placing it in the appropriate location, and specifying with the PARAMETERS command which rank and which colour it is to be. Theoretically, you could extend this to include higher levels of intelligence, e.g. getting it to play during animations.

If you set the Subtype to ‘drawing symbol’, you will not be asked for a ‘zzyzx’ value. If the objects have been saved with the correct A and B values, there is no need to specify further information – they will come in the correct size. In the case of the WHB, we can send it the correct sizes. In this case, it would be difficult to make the final object stretchy as they all have different A and B. Also, in listings, you would get 4 of the same object in one room whereas you might be better to keep them separate – but it is a fast drawing aid. Your choice.

Complex example of Macros
This Norwegian window looks domestic – but don’t be fooled into thinking it’s easy to write. Windows (and doors) are surprisingly difficult to write – perhaps the most difficult of all GDL objects. This window has a complex hierarchy, whereby the primary window object has most of its code devoted to the user interface – to finding out what the user wants. The window cuts the hole in the wall. It then calls the frame. The frame calls the sill, head and jambs. The window works out whether it needs transoms or posts, and calls them. From the user dialog, the window has to call the right number of casement or beading assemblies, and then position and size them correctly. It has to know everything about the wall – the thickness, how deep the window is set in the opening, the materials either side. There are so many permutations of casements and opening styles that the script for the User Interface script is more complex than for the Window itself. It is fully in Norwegian and in English. The ‘variables
Introduction to Object Making with ArchiCAD

Another simple example would be this chess set. The chesspiece is a single GDL object that contains Subroutines, one for each ranked piece in the set – the user chooses from a popdown menu.

84

Even in the 2D.3 Textures – the big secret revealed It is not clear why directional texture mapping has been ArchiCAD’s best kept secret for so long. squirting the texture like toothpaste along the X-axis. Let’s write it as a subroutine.-1. the window uses macros. The secret partially revealed The following routine is an complicated little piece of code that harks back to the early days of GDL.-2. casement.0. What it does is to ensure that a texture will go sideways. Let’s provide you with an easy technique for getting them right here. But it is not secret now – let’s open the box! Open GL has changed everything – you must get textures right – your mistakes with wood textures will glare at you from every 3D view. Keep your texture-making horizontal It’s important when making your own textures in ArchiCAD’s Options menu that you make them horizontal.1 !Z COOR 258. The window is scale sensitive – if the drawing is 1/50 this is how it will draw. relocate it. the same section outlines that are used to draw the 3D timbers. copy and paste it to everything you do that uses textures and you will be a happy GDL writer! 999:!Texture Horizontal along X BASE VERT 0. it was said that you could use a subroutine like an object – swivel it.-4 BODY -1 RETURN You can see all the macros sitting in a tidy little heap in the distance.0. There’s no space to explain it here in depth. The VERT commands define where the texture starts from and its direction.1. Just use it in your work and you will get textures right. the COOR decides how the textures are to be coordinated (in this case it is ‘cubic’) and the BODY -1 actually wraps up the object with the texture included. 8.-3. It has to be just right. every mitred joint has to look authentic. you can consult the GDL Cookbook for that. Every small piece of wood has to have the correct texture direction. even the glass. Earlier in this chapter. the architraves.0 !Y VERT 0. It has other 2D outlines for when the drawing is 1/100. or 1/20. Wood is to Norwegians what leather is to Argentinians or wine to the French. Anything that is new should be written with correct textures.0. This is essential in good GDL or the object will just be a dense mass of ink if the 2D symbol has too much detail at 1/100. Any new ones that you make should respect this rule. timber. grilles.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING method’ for making ValueLists ensures that the language can easily be changed.0 !X VERT 0.0 !origin VERT 1. Well this ‘toothpaste tube’ can be Introduction to Object Making with ArchiCAD 85 . The texture direction is calculated by every piece of timber – every macro containing a tiny piece of beading knows which way to push the woodgrain. Almost all bitmaps of textures already in ArchiCAD are horizontal in orientation – brickwork.

86 Introduction to Object Making with ArchiCAD . -f2. -f2. f2. 15. -f2.010. frsec-0. 15. 15. Use the 999 subroutine that was printed earlier. but the texture would be the same on the side seat frames and on the front and back seat frames. After you have written an object. f2.B. A-f2.03 f2=ft/2 PRISM_ 5+5.seatmat. 15. 30. B+f2. A-f2. f2. the chair without texture control in the woodgrain.B-f2.1.seatmat. f2. f2. f2. A-f2. 200:!The Seat and upholstery ADDz sthit-frsec !Improved Mortice and tenon ft=0. -f2. 15.frsec+0. f2. Let’s look at the chair Let’s suppose that the whole of the seat frame that we did earlier was now in subroutine 200. f2. and it will be done. Revisit the chair if you need to. 5.0. Right. issue the texture GOSUB command.002. you rotate as required. and do 4 separate frames – these always come after the 3D statement. 15. A-f2. with textures working correctly. Left. f2. B-f2. -1 DEL 1 RETURN This worked in 3D form. 15. -1 !Seatcushion !Chamfered with HPRISM_ HPRISM_ seatmat. -f2. BLOCK A.zzyzx ROTy -90:GOSUB 999:DEL 1 !Texture vertical Above you can see an example of combining several statements on one line – separated only by a humble colon. -1. 15. f2. 15. 15.framat.B-f2. B-f2. A+f2. -f2. B+f2. 15. f2.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING pointed and squirted.01. A+f2. 15. f2.

01. In fact. We cannot change pen lines at joints between cones. -f2. f2.1. Simply. you can just write Paint_it on its own.1 !Z COOR 2+256.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING Everything here is getting the texture right – leg braces. f2. If you are modifying existing library objects.framat.-4 BODY -1 More things to note on textures If you wish for spherical or cylindrical. or do both.0 !origin VERT 1. -f2. or you have to change the texture wrapping mode.-1. -f2. 15. Introduction to Object Making with ArchiCAD A-f2. f2.0. f2.seatmat.seatmat. -f2.-3.-f2. especially autoscripted objects.B-f2. 87 .B-f2. as there are no parameters. legs. These are now issued by the texture subroutine and if you have a BODY -1 coming before the subroutine. its effect will be cancelled.frsec-0. -f2. f2. f2. or skewed texture effects.0 ROTz 90 GOSUB 999:!Paint Texture DEL 1 RETURN 220:!Left to Right frame PRISM 5.frsec-0.0.-f2 GOSUB 999:!Paint Texture RETURN Look at the rest of the script in the object Space does not permit us to print the whole of the chair 3D script converted to subroutines with texture mapping.002. 15. A-f2.-f2. f2.GDL BASE VERT 0. f2. A-f2. you are welcome to copy and use the subroutine 999 in this chapter. Type this into Notepad or SimpleText and save it into your library. f2. -f2.B.03 f2=ft/2 GOSUB 210:!Front to Back frame ADDx A GOSUB 210:!Front to Back frame DEL 1 GOSUB 220:!Left to Right frame ADDy B GOSUB 220:!Left to Right frame DEL 1 !Seatcushion HPRISM_ seatmat. You could do Texture mapping with a Macro As this subroutine does not require parameters.0. f2.GDL’ a simple file written in NotePad or SimpleText. these are all possible.0. a tiny 7 line text file that can be called. and it works. the command CALL ‘Paint_it’ is enough. 15. arms. seat frames.-2. and stored in the Library. !Paint_it. but you will need more study of GDL – you either modify the VERT statement. but you can look at the object off the CD or website and it will become quite clear to you. In my library.0. -1 GOSUB 999:!Paint Texture DEL 1 RETURN 210:!Front to Back frame PRISM 5. You need REVOLVE to control pen lines. !Chair with frame and textures 200:!The Seat and upholstery ADDz sthit-frsec !Do four prisms for seatframe ft=0. I call it ‘Paint_it. 5.0 !X VERT 0. 15.002. Be sure to remove all the BODY -1 commands in the main script.010. A-f2. 30.0.B.1.frsec+0. the texture routine can also be a Macro.0 !Y VERT 0.

Textures: it is essential to get them right now that Open GL shows texture so clearly in 3D. 11). if you use Binary objects or Solid Geometry Commands (SGC) in GDL (see ch. you may not be able to use this method of texture control. Subroutines: Observe the Golden Rules! Macros: small files in a loaded library. 88 Introduction to Object Making with ArchiCAD . not good for singular objects... Macros: good for manufacturers. Subroutines give structure to a long script. • Textures: it is easy to get them right with a simple subroutine.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING Sadly. Subroutines work well with flow control. Summary of GDL in this section • • • • • • • • Subroutines avoid repetitive typing. Subroutines help with error checking and maintenance.

there is a good case to use Billboard objects. Billboard objects are a way of using digital photography to give the appearance of solid form – as long as the objects face the camera! “While we all would prefer detailed and attractive 3D objects. they look good most of the time! It is possible with advanced GDL to animate the cutouts and the phototexture on them to simulate motion. We can write an adapted version of the Picture later in the chapter which enables you to have your own people and trees in a model. the Carpet and the Picture. an efficient visualization model uses photographic ‘billboards’ depicting foliage and figures to improve realism and reduce polygon count. and for timesaving on static views. The Carpet is a horizontal stretchy rectangle. and options for a picture frame. Introduction to Object Making with ArchiCAD Piranesi and Artlantis (third party renderers for ArchiCAD) work well with cutouts. The new Lightworks renderer will encourage people to use ArchiCAD for renderings and save you the worry about the wrinkles of exporting to third party renderers. There are several ways to do these. But they are not your people and your signs. Picturereality is the answer. or you can use their own library of billboard objects for people and trees. People and trees are prime examples of this problem. and the trees in ArchiTerra are also prime demonstrations of the art – the tree objects are accurate standup cutouts of the tree with a texture map matching precisely to the cutout shape.1 Billboard Objects – use picturereality! There are times when you recognise that an object may be too complex to do. and Cutouts just looked like. RPC style. 9. author of Illustration in ArchiCAD 2002. It’s easier to attach a good photograph to a surface to simulate 3D reality than to build the entire object. grey cutouts – so people didn’t like using them. You’ll be astonished at how well picture objects work in all conditions. Existing Billboard objects There are two objects in the existing ArchiCAD Library. It remains impractical and time-consuming to sculpt the nuances of organic matter such as clothing and leaves. or too wooden in appearance. and the Picture is a vertical stretchy rectangle with a fixed back panel. Vancouver. it is better not to model objects at all – they will either be too complex. surfaces with phototextures in 3D views. but for flythroughs. 89 . Some artists advocate adding the people and trees and backgrounds with Photoshop later.” Dwight Atkinson. or will just look too ‘wooden’ for the purpose. Carefully selected photos applied to upright invisible panels serve to add dynamic action that existing 3D objects cannot provide. fitting the cutout accurately. and several pitfalls to get over.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING CHAPTER 9: BILLBOARD OBJECTS Sometimes.. This argument may apply for static photoreal images.. Open GL has made a big difference to the status of billboard objects – previously Picture based ones spent most of their life looking like large grey rectangles until photorendered. and you may want to do your renderings in ArchiCAD. There are two types of object in this category: Picture based billboards which use the Alpha channel in the colour image on a rectangular shape. and Cutout based billboards which have a texture applied to them. Third party Add-ons like ArchiPaint and ArchiFacade will make billboard objects for you. even in GDL – either it will take too long. Now.

Use the Texture button to bring in the Figure. Save this cropped image into a loaded library and reload libraries. You do NOT need to remove the background (when you make the cutout. leaving only one pixel at most around the person. Let’s look at three techniques for making our own objects. Now you can place it as a ‘Figure’ into the ground plan. and no back panel.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING oblivion). 90 Introduction to Object Making with ArchiCAD . and combination of the two. Here you see the ArchiCAD Carpet and Picture objects. If you haven’t got a ‘straight-on’ view of your subject. you can make the two fit each other. You can also see two ‘Icepeople’. To the left we see the Picture object adapted to allow a silhouette effect with alpha channels. it’s 590mm x 1800mm (2 ft x 6 ft). hit the Duplicate button.2 Make your own Billboards as accurate Cutouts You can make your own cutout shapes easily with the Slab tool. 9. Take a material like “Whitewash”. a prime contributor to ArchiCAD-Talk and to ArchiCAD University events. and if you also make a new Material with a Texture which is the correct size. From the Options > Attribute Settings >Materials in ArchiCAD make a new material. Using Photoshop or a similar editor. resize it till it’s the correct size. tree or car. This chapter includes instructions on making the Alpha channel. We will do this as an exercise. the Picture Billboard. the Cutout Billboard. you will first have to use Photoshop’s Edit>Free Transform>Perspective and Distort to adjust and straighten the image. rename the duplicate – in this case I called it “matthew_cutout”. Without losing the proportions. In this case. another good way of populating scenes. Set the size of the Figure used for the texture to the same as the one in the plan – 590mm x 1800mm. any texture that does not rest on the cutout just disappears into We use an image of Matthew Lohden. Anybody who has played computer games knows that the urban environments are mostly very simple in 3D but are made complex by having photographs mapped onto simple block shapes – and trees are usually planar cutout objects. crop carefully around the image.

-35. so use Edit>Align Texture>Set Direction to go from a point on the cutout slab in a horizontal direction (use shift key for constraint to go rightwards) – if it offers you a choice of graphical or numerical. Now. 12.88720216694. Select your cutout. Use Edit>Align Texture>Set Origin and place the Origin at the bottom left corner of the rectangular slab.. -1.35731157426. a long way away.009096622359181 COOR 8468. 12.45259415915. 12. 12.30677655926.88720216694.53348955012. 12. Editable. -2.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING Now.. 12.8”) high and trace closely around the image – as in the illustration. just save the object. you will get a perfect alignment.90504515807.45259415915.90504515807. 15. 12.30677655926. Open the 3D Script and have a look. back in the plan.. set the angle numerically.94639198852.. to 0°.. Trace another rectangular slab over the cropped image. ! The CPRISM will end.88720216694. -35.0004516888204097 VERT -33.45259415915. try to set the direction. -0. view it in 3D Elevation view from 90° and save as an Object. Open GL is a great help here because you get instant display to changes of the texture alignment in the 3D View. -35. -0.36420271267.35731157426. Place it in the floor plan.. select the Slab tool.94639198852. If the Align Texture routine worked. 15. -0. 12. Initially. -35. If your cutout fitted the Figure closely (to within one pixel) the 3D Script will have been written so that the bottom left corner is the origin of the new object. So if you set the texture to the bottom left.36420271267. 15. -3.0004516888204097 VERT -35.64050165154. 15. 12. -35. -4 DEL 1 BODY -1 Select both your slabs and view in 3D Axonometric.. you will find the texture will be starting from a random position. 0. set it to 10mm (3. 3D Script will end with: ! The CPRISM will end.. something like this.0004516888204097 VERT -35.. We need to use Align Texture to get this starting from the bottom left corner.88720216694. If you have a problem with Align Texture.88720216694. but at least you have the comfort of knowing it’s the right size – in fact it’s coming from the main origin of the project.. Set the material of both slabs to be “matthew_cutout”. -1 Introduction to Object Making with ArchiCAD 91 .. -35. something like this. -1 BASE VERT -35. 13.

!Texture and Material routine !Write in the name of the Texture file and !its dimensions in metres DEFINE TEXTURE ‘biltexture’ ‘mathew_cutout.1. left. an Open GL 3D View. Starting from the left. this will still be a rectangle.. This illustration shows the comparison. 15.0 VERT 1. then in a Picture object (casting a rectangular shadow). but use it on a rectangle instead of laboriously cutting out the shape with a slab. and below. In 3D view.36420271267. 0.0 VERT 0. People often look better in renderings as cutouts using ‘Ice’ or ‘Water’ than using realistic textures.88720216694. 15.30677655926..35731157426. require less effort to make and do not distract from the architecture.80. It means that you can use the technology of a texture-based material mapped on to a surface. It’s beyond the scope of the book to fully explain it. but if it uses an alpha channelled texture. then two versions of the Cutout object both casting shadows.1 COOR 258. and does not use transparency. If you start with accurate textures you have to continue. -35.0 Introduction to Object Making with ArchiCAD You can use a Rectangular Cutout This sounds like a contradiction in terms. 12.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING DEL 1 BODY -1 Just change this ending with a texture routine as follows: ! The CPRISM will end.94639198852. you have the author in a Cutout. the shadows work.. the Open GL view works with the Cutout perfectly – with the Picture based billboard it betrays a telltale rectangle.0. -1 DEL top ROTz 180 ROTx 90 BASE VERT 0. 92 . -35. Now you can use this easy script – copy and paste it into the Master Script of the object each time with minor modifications.-4 BODY -1 Now. Make the object with the material set to something unimportant like ‘Whitewash’.-1.-3. it will cast shadows when photorendered. the Plan. 12.0 VERT 0. 12.0.0.590. You can use Ice figures Cutouts can be used without any texture. with the original slab and the billboards.90504515807. 1. Matthew in a rectangular cutout (casting shadows). -35.1. In the Photorender. and right. Ice Cutout figures work in ArchiCAD and external renderers. but you are welcome to use it. but not in the same way. Build in the Texture and Material It is possible to build in the texture and material so that you do not need to make the material in ArchiCAD each time. We will do this later in this chapter.jpg’.. something like this. a Photorender with shadows.-2.

The PICTURE command in GDL allows you to use the Alpha channel for transparency.TIF format without compression. and delete (the backgound will be erased). The picture you wish to use must be saved in a loaded library (and then reload). The object will now be completely portable. 0.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING DEFINE MATERIAL ‘bilmat’ 24. Introduction to Object Making with ArchiCAD Let’s make the Alpha channel. Bitmap files with an Alpha channel must be rich in data. In Photoshop. The remaining 8 bits are available for ‘interesting things’ like transparency. which means saving them as a . Green and Blue (8 bits each). 1. You must also insert a PROJECT2 3.JPG. Now use the Magic wand to pick up the white background. The whole white area should be shimmering. They only become ‘outlined’ objects by virtue of the alpha channels in the bitmap file and only show correctly in photorenderings. and you will not need to make a new material in ArchiCAD. and cast rectangular shadows.270. see if the other bitmap editing software you have can support channels. In 3D views they remain as rectangles.2 into the 2D Script. and we call this the Alpha Channel. You do not need to make a Material and Texture definition – but you require a quick tutorial in Adobe Photoshop. If you try to save one of these as a .3 Make your own Billboards using the Alpha Channel with PICTURE Billboard objects using the PICTURE command are actually GDL rectangles with a picture mapped on to them – for example the ‘carpet’ and the ‘picture’ in the ArchiCAD Library. bump mapping etc. This tutorial works for Photoshop 3. Inverse. but do this: leave at least ONE white pixel all around the edges. 9. 6 or 7. the first thing that is omitted to achieve compression is the alpha channel. From the Select menu. 61. 1. Re-Crop the picture closely to the edges of the image.’biltexture’) Now go to the 3D Script and change the three materials of the CPRISM to ‘biltexture’. 4. IND(TEXTURE. and if you do not have it. 1. special reflection effects. A quick run around Photoshop Adobe Photoshop is an incredibly valuable ‘companion’ to ArchiCAD users. 5. The Alpha channel is a part of 32 bit colour – whereby 24 bits are taken up with three visible channels of Red. surround Matthew carefully with the polygon-lasso. Material definitions in ArchiCAD allows you to use all of these special effects. in quote marks. 93 .

0 HOTSPOT2 A/2. Better still.A. 3D view and 2D symbol.3D Script PEN cont_pen Introduction to Object Making with ArchiCAD 94 . into a loaded library and reload. Now Save that selection from the Select menu – the job is done.0. you have a splendid upright billboard object. Save the bitmap file as a .gsm’ and replace the 2D with LINE2 0.0 CIRCLE2 0.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING It’s time to make the Picture billboard object If you simply apply a ROTx 90 in the 3D script of a copy of the ‘Carpet.0.0.0.0 Now hit the Select menu>Inverse.0. !!Billboard. you can use this nice clean script.0.0 !AC8 and earlier !AC9 .gsm !!2D Script PEN cont_pen HOTSPOT2 0.A. Billboard parameters.0 HOTSPOT2 A. under the Red.A/100 CIRCLE2 A/2.0.gsm . and the lasso will now be surrounding the image.use HOTLINE2 0. You can see it in the illustration.A/100 CIRCLE2 A.TIF. the Alpha channel is now created. !!Billboard. added to the list of channels.A/100 LINE2 0. Green and Blue.A.

See the GDL Cookbook for a more extensive discussion of Billboard objects.0.2 HOTSPOT A.3 HOTSPOT 0. ‘use transparency in shadow calculation’. go to Image>Photorendering Effects> Options.0. make a Boolean parameter ‘shad’ and start the 3D Script with the line: IF shad THEN SHADOW ON ELSE SHADOW OFF A compromise of the two types is that you can save yourself all that tracing around objects in ArchiCAD and use a rectangular cutout (ie a thin upstanding wall) and apply a texture to it which uses alpha channels.0.zzyzx/2.zzyzx.0.4 Rectangular ‘cutout’ – the combination object This is not really cutting out. !Billboard Object rectangular Master Script DEFINE TEXTURE 'biltexture' picture_file. and using a routine to lock the texture to the bottom left corner. the Cutout billboard is the way to get the best result in both renders and 3D views – if you are prepared to make a material for each one.4 HOTSPOT A/2.0. and it’s possible to build in smarter features – for example the ability to turn to face the cameras. In its use (parameters and stretchiness) this is indistinguishable from the Picture object – but it’s better. A note on Shadows Alpha channel based material textures.0.mask DEL 1 HOTSPOT 0.zzyzx. We need to adapt the Master Script from the Cutout object. This is the principle of mapping a texture to a surface with a texture definition. if applied to ArchiCAD elements or objects will cast shadows correctly cut around the outline of the alpha channel.A. and will cast shadows correctly. Open GL and the 3D view do not use transparency in the Picture object. To be sure of the best results.5 9.1 HOTSPOT A. Picture based objects will cast only rectangular shadows in the ArchiCAD rendering engine. but cast shadows correctly in the Lightworks rebndering engine.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING IF gs_shadow THEN SHADOW ON MATERIAL matl ROTx 90 PICTURE picture_file.0. f you want to cast perfect shadows.zzyzx. It can have an interface like the Picture object – where the user is asked for the name of the picture file – but it produces a stretchy rectangle that will cast shadows correctly. it’s a rectangle that uses the technology of the Cutout object. Introduction to Object Making with ArchiCAD 95 . This is an ultra simple version of a Picture billboard object. This will look like a rectangle in 3D but look OK in Photorender. If you want to control shadow casting.

0.1. A POLY_ is one simple surface that will not reveal tell-tale edges showing in a render.-2.0.-3. We are using the texture mapping routine that was used in the previous chapter.0.-4 BODY -1 DEL 1 We are not using a PRISM here.1.1. cars and trees into sections and elevations. 9. Introduction to Object Making with ArchiCAD 96 .1 COOR 258.IND(TEXTURE. 0.-1 BASE VERT 0.0.5 The Billboard idea in 2D? If you place a bitmap Figure into the floor plan and look at its Settings dialog.1.zzyzx. Any completely white parts of the image (which have an RGB value of 255:255:255 or FFFFFF) will show as transparent.1.61.0. 0.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING A. 0.0 DEFINE MATERIAL 'bilmat' 24.0. 1.0. A.1. Copy and paste! For the 2D Script copy the script from the Picture object in the previous section of this chapter. !Billboard Rectangular.1.0. A. You can also place elevations of people.gsm !3D Script PEN cont_pen IF shad THEN SHADOW ON ELSE SHADOW OFF MATERIAL bilmat ROTx 90 POLY_ 5.0 VERT 0. you may notice that there is a transparency button.zzyzx. giving the impression of upright billboard objects – all you need to do is whiten the background.0. -1. You can now use the ‘Display Order’ menu option to organise how the figures will overlap. That’s all! This is useful mostly for placing trees and plants into ArchiCAD in the floor plan.1.0 VERT 0.'biltexture') The small difference here is that the name of the picture file is now a parameter and the dimensions of the picture are dynamically resized by the ‘A’ and ‘zzyzx’ dimensions.0 VERT 0.1.zzyzx.

or simply. But it is hard work and the proportions and the upper level windows may still be wrong. straightening and regularising the bitmap image. you might be able to reconstruct a facade by copying and pasting the bits that you managed to capture – even if the rest was obscured with trees! But this is going to be hard labour! 97 .PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING 9. you will see it perform the Perspective and Distort action quickly and accurately. The serious billboarder will always carry either Cigraph’s ArchiFacade in their kitbag. Its Introduction to Object Making with ArchiCAD By giving ArchiFacade the required height and width of the facade. You can also look at the facade. saving you much time. and if you can get clean images of the entrance and some typical windows and cornice details. It is good at both the requirements. If you manage to get the photo in perspective. the building is too tall for a front-on photo. You may have to make do with a perspective looking upwards. or Abvent’s PhotoCAD. talents extend to making the billboard object for you including the GDL texture routines! Find out more at http://www. trees or a tourist bus parked in front.6 Billboard creation – the photograph If you apply this technique to building facades. or from the side. the sun is facing you.com ArchiFacade is an API (Add-on) which uses the cutout method and generates a GDL object for each cutout. you can use Photoshop’s Edit>Free Transform>Perspective and Distort capability to straighten out a facade. There is either a policeman telling you to move on.cigraph-store. one problem is that you can so rarely get squarely in front of a building.

• Ice figures can populate a scene without distracting from the architectural qualities. you can use Figures. It uses billboard surfaces for the building elevations. • 2D Objects for Plans or Sections can be done without objects. although Cutouts are likely to work. your own cutouts should work splendidly. with transparency activated. • Cutout billboards are better than Picture billboards. 3D street furniture and a few billboard trees to fill in the spaces. and they can carry their own texture and material. • Straightening a building photo is more than de-skewing. ArchiCAD Picture objects may not work in 3rd party renderers. and can give greater realism than fully crafted 3D objects. and you can add people and trees in Photoshop later. • Remember. You decide. 98 Introduction to Object Making with ArchiCAD . The proportions need to be accurate. Summary of Billboarding in this section • Billboard Objects are an important skill in object making. you already have billboard objects in Artlantis and Piranesi. But with Lightworks.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING This view of West Bridgford Central Avenue near the author’s home was done by Bite Design in Nottingham.

W&Ds need to know the materials and thicknesses of the walls. if your script permits. you found it magically made into a window by clicking an icon. Since then Windows and Doors have got much more complicated for several reasons. Hit the ‘Select Subtypes’ button and select ‘Wall Opening’. with the Origin at the centre of the width of the sill and the zero ground plane being analogous to the external face of the wall. The ones we already have in our standard library are all in need of a major overhaul. the way to define an object as a window is to select the ‘Wall Opening’ subtype. You can also try building a Skylight. Open a New Object. Look at the list of parameters suddenly offered to you – formidable! This is only the beginning. beading. The second rule is to select the correct Subtype – when you saved from ArchiCAD. their position in the reveal. Introduction to Object Making with ArchiCAD 99 . Doors in their initial state open outwards (downwards) and hinge on the right hand side. shutters. In creative GDL. The Rules of Windows and Doors Take a look at the GDL dialog of one of the existing standard ArchiCAD doors. handles. This mode can be modified by flipping and mirroring by the user. opening oversizing. Windows need to have different materials inside and out. the inside face looking upwards.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING CHAPTER 10: GDL WINDOWS AND DOORS This chapter will discourage you from hoping that you can write Windows or Doors from new due to their complexity. handles and so much more. grilles. and need to have authentic looking textures on every part. but it will encourage you to tinker with ones you make without GDL. Users expect far more from Windows and Doors (W&Ds) than ever before. 10. W&Ds need an excellent user interface dialog so that the user can cope with all the choices of door. A GDL Window or Door written as a new GDL product is so fiendishly complex that it has disappeared out of sight in the terms of reference of this humble book. W&Ds depend on a host of macros to provide the right level of detail. This shows how complex the parameters have become. When it is brought back into ArchiCAD and placed in a wall. casements. such as handles and shutters. The first rule of making a window/door is that it is made flat on the XY ground plane. realistic scale sensitive 2D symbols. Industry Foundation Classes (IFC) standards have set standards that have made W&Ds vastly more complex than they used to be. and the chapter will concentrate on helping you ‘tweak’ ones you make by autoscripting..1 GDL Windows and Doors The first edition of this book on 2000 had two Windows and one Door in it. the window will be able to stand upright and cut a hole in the wall. there are more required. and look at the GDL dialog. Apart from cutting the hole in the wall (the easiest bit!) there are a host of complex variables such as linings. If you set the Subtype correctly. it will be the right way up and will be able to cut a wallhole. architraves. shutter. but it also shows the basic orientation of the door relative to the origin.

Open the object in GDL and view the autoscripted 3D code. It would be good if there were just three rules.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING The third rule is that ‘A’ governs the width and ‘B’ governs the height. We cut the prism originally so that the jambs and the head and sill are different sections – so that texture can be directed separately for each one. With the subtype parameters. Door and Windows can present such a variety of choices that they need a multipage visual User Interface. but start this way. remove all the BODY -1 commands. you will get a default hole A wide and B high. Remove all GLOB statements. you could go through replacing the PEN parameter and all the references to materials in the cPRISM_ statements (as above). and if textures are to work.2 Revisit the Window Let’s revisit the window we created in chapter 2. If you author a Window/Door from new. 100 Introduction to Object Making with ArchiCAD . It is capable of improvement with a bit of tweaking. We can now fix this using the texture orienting subroutine 999 in the previous chapter. Look at the parameters and try to imagine how many more rules there must be! 10. It is possible to override this later. If you fail to write a WALLHOLE command. Paste in an END statement and the subroutine for textures. you write a WALLHOLE command which determines the wall cutting.

-35. -35. WALLHOLE 5.4397-ac_left_oversize. AC_HoleSideMaterial.gsm ! 3D Script PEN gs_frame_pen Introduction to Object Making with ArchiCAD !!Glass ADDZ 0.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING MULXA/0.8775315255826 MULYB/1.78220315544.38268901762. 79.177069256472.0026-ac_lower_oversize. 8.04 cPRISM_ gs_glass_mat.15. 79. 8.8. -34. 8. ! Name : windo_2_omwac. 79.5261+ac_right_oversize.14463324159. right upper and lower dimensions of head and sill pieces.213932152599. -35.4397-ac_left_oversize. -35.0026-ac_lower_oversi ze.2645803879.200514272335. 79.5261+ac_right_oversize. you can still tweak the script. If you do not want to do this. -34. Leave the MUL and ADD commands at the start – otherwise the window will not position or stretch correctly.193436940666. or it can be complex in its own outline.2524+ac_upper_oversize.0026-ac_lower_oversize. 12. The WALLHOLE is similar to a PRISM statement except that instead of thickness. 7. 8. 8.160415405712. It can also be give the ROTx or ROTy treatment to make interesting chamfering effects to the wall. 79. gs_glass_thk.002659943499 Construct the Wallhole by combining extreme left. It only causes problems if you want to write a script to drive a hole through the wall. -34. 101 . -34. We want to write in a WALLHOLE command as this will allow us to conform to one quality requirement. -34.249817627345 MULZZZYZX/ 0.210381032486. we past in the parameter for the side material.0009371729 ADDY -7.60512108129. -35. -35. 79.160415405712. We could have remade this window over the main origin.39981876463.15. It would have been so-o-o much easier to do this if the window is built symmetrically over the main Origin. -35.15. gs_glass_mat.15. WALLHOLE is very powerful – it can be repeated many times to make complex shapes.7. 8.2524+ac_upper_oversi ze. 7. 8.02368892174. we had to add in the parameters for the oversizes from the Parameter Table. -34. but here we have accepted the window as it comes. 15.4397-ac_left_oversize.217228780474. -35.90259576587. 8. 79.66335555813. that of allowing oversize dimensions around the hole.-1 At this point. don’t bother with the WALLHOLE and hit the ‘Hide’ button to the title of the group in the Table.166515355645. 8. gs_glass_mat. 15. to show that even if you lost the original slab parts. 8.16 ADDX 35.

193436940666. -35.60512108129. 79. 7.160415405712. 15. but you would need to script the 2D and it would get so complicated you might wonder why you didn’t make it parametric in the first place. -34. 5.56217141011.200514272335. 8. -34. 7. Note that we just have to hide the parameters we cannot make use of.56217141011. 15.43970293569. 7.39981876463. gs_frame_mat. 7. -35. 5. -35. 79.002659943499. If we leave them showing but inoperable. -35. 7. -34. your poor user will be confused.160415405712. You could try to insert ‘gs_frame_thk’ for the frame thickness.43970293569. -35.160415405712.02368892174.177069256472. 15.43970293569. 0. 8. 8. 7.252477570844. -1 Sorry about all this script – it’s the usual autoscripted stuff. -35.60512108129. 8.06. 15. 15. gs_frame_mat. -34. 8.39981876463.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING DEL -34. 8.78220315544.217228780474.075050087223. 79.56217141011.39981876463.252477570844. 15. 15. -35. 8.66335555813. 0.38268901762.43970293569. 15.43970293569. -1 -34. 15. !!Horizontal Sill cPRISM_ gs_frame_mat. 0.60512108129. 79. 15. 8.43970293569. 15. 7. !!Overhanging Sill ADDZ -0. 7. 79. and with sash details and make full use of all the parameters.002659943499. gs_frame_mat. 79. -34. But it’s useful to see how the parameters can be inserted and the texture managed. If we script parametrically.075050087223.56217141011.075050087223. 15.43970293569.002659943499. -34. 8. we could design a window with frame thickness and width.56217141011. -35. -35. -35. 0. 79. 102 Introduction to Object Making with ArchiCAD . -34.002659943499.160415405712.047220207262. 7. 8.1. 8. 7.1.002659943499. 15. -34. 8.075050087223. 15. -1 GOSUB 999:!Texture !!Vertical Jambs cPRISM_ gs_frame_mat. 7.210381032486. 15.14463324159.56217141011.160415405712.2645803879.213932152599. -34. gs_frame_mat. -35.56217141011. 1 15. 14. gs_frame_mat. 8.160415405712.047220207262. 8.43970293569. 15.075050087223.1. 8. gs_frame_mat. -35.047220207262. 15.90259576587. -35.075050087223.166515355645. 7. -35. gs_frame_mat. -35. 7. -35.06 cPRISM_ gs_frame_mat. gs_frame_mat.39981876463. -1 DEL 1 !!Horizontal Window head cPRISM_ gs_frame_mat. 7. -34. 7. -34.

15. window-style. 15. so you have to accept rectangular holes and the chamfering style.1.075050087223.-3.0.60413858807. -35.-1.160415405712.43970293569. 15. 15. 10.160415405712. Introduction to Object Making with ArchiCAD 103 .PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING -35. 7. 8.075050087223.160415405712. gs_frame_mat.56217141011.1 COOR 258. and rotate it upwards by the roof angle.075050087223. gs_frame_mat.0. 15.0 VERT 0.56217141011. accepting that there is a lot more work to make it fully swivelling and having parametric flashings – but it’s a lot easier to make than a Window or Door. -1 cPRISM_ gs_frame_mat.1 makes the glass disappear or look totally solid. -34.0 VERT 1. 0.39981876463.3 You can make Skylights too You can also make Skylights by selecting the correct Subtype. -34.-4 BODY -1 RETURN Left. 7. 7.075050087223.56217141011.39981876463. You build the frame flat on the ground.160415405712. -35. It is a pity that the Open GL implementation in ArchiCAD 8. -1 ROTz 90 GOSUB 999:!Texture DEL 1 DEL TOP END:!======================== 999:!Texture BASE VERT 0. 8.075050087223. with texture control. 5.1. 15. 15. 7.075050087223. They will cut a hole in roofs chamfering the roof opening correctly. 8. There is no equivalent of the WALLHOLE command. 7. -34. right without control. -34.39981876463. 7. 8.0 VERT 0. -35. -35. Let’s do a very simple one.60512108129.-2. 15. -34.0.43970293569.

using the correct materials and thicknesses.B-fwid*2. -A/2+fwid. We cannot do this with a CPRISM_ or any other GDL statement directly. We are going to use a smart little trick here. CUTPOLY will cut. So by laying the window flat on the ground but applying a ROTx ac_roofang. -A/2 . -A/2+fwid.fwid.15.fwid.fdep. We have another smart little trick. CUTPOLY is a wonderfully useful command similar to a PRISM (if you wish for holes with curved edges. leaving behind the material you specify – so we can state the frame material and get the authentic look! !Skylight simple.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING You can see how the Skylight API cuts the roof (left). build back parts of the roof.gs_upper_mat.0.B-fwid*2. you need CUTPOLYA). A/2 . If you want to modify the holeshape.15.-1 CUTEND DEL 1 After a CUTPOLY or other cutting command.0.15. -A/2 . The data about the roof is conveniently displayed to us in the subtype parameters – greyed out in the illustration. We can see the roof angle. we have to terminate the cutting with a CUTEND – even if it is at the end of the 3D Script. -A/2+fwid. 5. -A/2 . A/2 . So we make the frame flat and solid on the floor.B.fwid.fwid !Actual frame cPRISM_ gs_upper_mat. A/2-fwid. -A/2+fwid. -A/2+fwid. 104 Introduction to Object Making with ArchiCAD .15.fwid. Skylights are usually wood framed with a metal top and outer surface. thickness.15.gthk. A/2-fwid. Work out the size of the glass.B-fwid*2.-1 DEL 1 !Frame MATERIAL gs_frame_mat CUTPOLY 5. materials. A/2-fwid.B-fwid*2. and drive a hole through the frame the same size as the glass.15.gs_frame_mat. and the timber should be visible on the underside and inside edge.fwid. it stands up at the correct angle! Knowing the materials of the roof enables us to build back little bits of roof or flashing detail if we have to modify the opening shape.0. better than 'vertical' hole cutting (right).15. 3D Script PEN gs_cont_pen ROTx ac_roofang !Glass MATERIAL gs_glass_mat ADDz fdep-gthk PRISM_ 5. A/2-fwid. -A/2+fwid.B.15.

PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING The 2D script can be done with a PROJECT2.B*COS(ac_roofang) HOTSPOT2 A/2.'ac_type'. They are telling us and the Skylight what is going on in the model. Introduction to Object Making with ArchiCAD 105 . We can also set up a dimension for the glass thickness here. But you can go some way to tune up the window with a bit of GDL knowledge. Let’s built a window that could go up alongside a staircase.0 HOTSPOT2 A/2. It would be unlikely that you would need it to be parametric in dimensions – unless you had many similar but slightly different. So as seen vertically in plan. This might be drawn out in a section view through the stair. Move it to the origin.2 10. B*COS(ac_roofang)/2 PROJECT2 3.0 HOTSPOT2 -A/2. 'ac_upper_mat'.0 HOTSPOT2 -A/2. Tidy up the Skylight We need some work in the Master Script and 2D Script. but we cannot avoid some thinking if we want the Hotspots to work.'ac_lower_mat'. copied. These parameters are not editable – they are the equivalent of Global Variables. !Skylight very simple !Master Script gthk=0.'ac_side_mat' The purpose of this LOCK command is that we do not confuse our user. the dimensions will require some simple trigonometry using the roof angle parameter. as with the table in the previous chapter. Lay it out as carefully as you can using small walls for the window sections and slabs for the glass.B*COS(ac_roofang) HOTSPOT2 0.02 !Glass Thickness LOCK 'ac_roofang'. !Skylight very simple !2DScript HOTSPOT2 0.270. We need to lock them so that they change colour to grey and the user isn’t confused into thinking that they can edit the roof pitch or materials.'ac_roofthk'.4 Try a very complex window! One reason you may make a window is because it’s too unusual to be likely to be found in any of the existing libraries. Build it over the main origin – bottom right in this example. The easiest method is to use the Fill tool to draw out the outline first. then pasted into the ground floor plan. The dimensions of the hole at the slope of the roof are ‘A’ wide and ‘B’ high.

625”). You make a judgement now as to whether the internal mullions and transoms are centred or referenced to the edges.5 MULYB/4. Unmodifed. your textures will line up nicely along the frames. If you have to be pedantic and make each piece of glass separately. then magic wand a dumb piece of Floorslab over the fill. The task is to shape the wall around the window frame. When you are in the script later. This finished window is 6500x 4271mm and would be used in a 2 storey height wall. Using the Wall tool. make sure the walls follow the Fill perfectly. You can ‘flip’ the wall reference line if you need to. make it Concrete and 300mm thick.10 ! Written by ArchiCAD. ! Name : window_complex2.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING For the window sections. We can tidy it up somewhat as we did for the table – it’s easier to identify the parts if all the frames are walls and the glass is a slab. you will know it’s not the glass and you can change it to a Hole cutting outline for the wall. Now place into the plan a new wall about 6m (20’) high. For the outer window sections. and in some way relate to actual window sections if you are computing the lengths.gsm ! Date : May 2004 ! Version : 8. from 270°. the window will create a rectangle of A x B. When it comes in. It also pays to set a small grid – in this example. editable.271227780756 MULZZZYZX/0. I set it to 10mm (0. it will cut a rectangle of A and B of that size. and place the window.25 BODY -1 MODEL SOLID RESOL 36 Introduction to Object Making with ArchiCAD 106 . in Plan. walls have the benefit of having a constant width and height. To make the window.08 ADDX 3. modified by DNC MULXA/ 6. Save as a Window. Do the glass for the window by applying the Magic wand to the whole fill – there is no harm in taking the glass right to the edge. you view it in 3D. Either the glass or that extra slab will act as your cutting outline. Give it an object ID of ‘Wallhole’ in the settings dialog. touching the edges of the opening.

955258428817.938152120077.08. Introduction to Object Making with ArchiCAD -1. 0. gs_frame_mat. Lets pick up the 3D script near the end.5. 15. 79. -5.04342585459107. 3. -1. -5. 4. -4. 15. 4. 15.820255333372.340318456382. 4. 0. 4. -4. 0 ROTZ 270 xWALL_{2} gs_frame_mat. -6. 4. 79. 79. 15. 79. 4. 79. 4. 15. 15. gs_frame_mat.232890164181. 79. 0. 2. 15. 4. 79. 4. 15. 0..248722609987.222405729853. -6. 4. 4. 4. 79.03792787368157.955258428817. 2. 4. 2. 79.02.020417956049. 15. -5. -1 79.79870391776.5. 107 . 4.151467757689. 4.61659632663E-016.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING !!First Window Frame PEN gs_frame_pen ADD -6. 15. 4. 0.098215535982.04 cPRISM_ gs_glass_mat. 79. 0.075367599624.098215535982.093037402443.657733588747.05.515959485522. 0. 4. -5. 4. -5.686666666667. 0. 15. -4. and to cut the wallhole.084955916211. !!Typical Window frame section up the side elevation ADD -4. gs_frame_mat. 4. 79. gs_frame_mat. 0.820255333372. 2. 7. -2.688716060937.271227780756.265024316876. 15.5. 0. 2. 2.145122554509E-016. -5. you are better advised to get it right in the original plan and only make the materials parametric. 79.229190595175. 24.5. -5. 4.. 15. 79. 0. 4.271227780756.5.195200394584. Have the two commands immediately next to each other. gs_glass_mat. -4. 79.035715090578.267301390198. 4. 15. 4.093037402443. 0 ROTZ 284. gs_frame_mat. The trick here is that you have a prism for the glass that exactly fits the desired window opening – point by point.035715090578. -5.5. 0. 79. 0 DEL 2 Many sections of window frames appear after this….055.374104056416.05. 0. 3. 0. So Copy and Paste a duplicate of it.515959485522. WALLHOLE 24. -4. 79. -6. but in this situation.374104056416. -5.186207781261. 2. -4. 4.688716060937. 15. 0. -5.267301390198.5. exactly as done here. 4. 4.08.022513992489. 0. 0. 0. 79. -4.195200394584. 15.0362434679 xWALL_{2} gs_frame_mat. You could change the thickness of the frame and the depth if you wish to.0767591879244. -6.061552812809. 79.232890164181.209651137769. 79. 0. -5. 0 DEL 2 BODY -1 !!Window and hole PEN gs_glass_pen ADDZ 0.46670370476.561310905493. 8.05. 0. 0. 15.657733588747.289907478742. 4. 0.330669073875E-016. 79.05. 2.. 0. You only need to change the materials.05. -4. 0. 2.253265153189. 0. -2. 0.253265153189. -4. 2. AC_Holesidematerial. 79.256574145409. 79. -5. 4. -0. -6. gs_glass_mat. 79. but all have been omitted for clarity. 0. -4.976936617858E-018.265024316876. -6.229190595175.154149081658E-016. -5.14031322066. Use the ‘AC_Holesidematerial’ parameter instead of the prism thickness. 4.151467757689.561310905493. gs_frame_mat. 79. 79. -0.05. 15.5. and retitle the start of the pasted prism statement with a WALLHOLE statement.

340318456382.186207781261. If you are scripting this fully in GDL.084955916211. They are freestanding. you build it upright. • WALLHOLE now supports very complex outlines.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING -5. The method is to trace a Roof of 0° pitch or a Slab over the outline of the proposed window (magic wand to a fill. You could still lay them down in the plan view using small walls for the framing sections. You would then autoscript these in 3D Elevation parallel view with the camera at 90°. 15. 15. in fact you can use the same ones that work for ‘windows’. using mullions and transoms and frames. Editable. and slabs for the glass. This prototype window system for Velfac uses objects. and save as Object. Open the roof settings and write ‘Wallhole’ into the ID field (or ‘Wallniche’ if its a niche). Use this neat trick with the slab to cut the complex outline. -6. -1 79. Summary of GDL covered in this chapter • Windows and Doors are very very complex for full creative scripting – beware. 4. -6. 0. -6. 4. 0. You might still make use of macros for the frames and casements.79870391776. Introduction to Object Making with ArchiCAD 108 . but could not be complex in shape. 79. or against but not in a wall.020417956049. -5. but can only cut rectangular holes. Complex shapes could only be built up using several wallholes.222405729853.938152120077. 79.46670370476. This glass walling solutions is based on the Velfac 200 system. For this. DEL DEL TOP 1 4. 4. set on a slab. you make them as ‘objects’. 4. The same code. with a ROTx -90. Objects can be better than Windows Don’t forget that ‘windows’ are things that you want to use to cut holes in walls. -6. Another idea is that you can oversize the wallhole to leave enough space to insert a lintel. -5. 4. • Skylights are easy to make. 15. 15. perhaps) trying to keep the baseline of the roof on the baseline of the window. sill or sidelight. -2.5. a change of subtype and a few small modifications can also make a conventional wall-cutting Window subtype.14031322066. This technique does not work on versions of ArchiCAD prior to version 8 – wallholes existed. 2. 4.248722609987. You could then add in some parameters for materials. -6. • You can do a good job with a 50/50 approach: building the window without GDL then using some tricks to make the wallhole and the material parameters. -6. 79.209651137769. 79. Note for future versions of ArchiCAD This ‘wallhole trick’ is a built-in procedure in ArchiCAD 9. 0. and set the pitch to zero. 79. 2. a WALLHOLE. There are occasions when you are using technical solutions that are closer in idea to curtain walling than to windows – so these are ‘objects’ not ‘windows’.075367599624. It is an interesting command – you can rotate wallholes to create chamfered reveals.

• Windows are sometimes ‘objects’ if they are freestanding and not to be placed in a wall. Introduction to Object Making with ArchiCAD 109 .PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING • Use a new trick with a roof outline to do the same cutting in future versions.

This section runs through some of the further possibilities in a brief form – of which LOOPS are the most important.1 GDL Roundup This book is an introductory tutorial for GDL. how to define text style and materials – and much more. it lives on! GDL can read and write data/text files. It also implies many repetitive actions – in real life. which command to use under the circumstances. which will be both useful to you in your work and will teach you additional techniques in GDL. REVOLVE and TUBE. Objects can know the current drawing scale. there is further reading for you and more experience to be gained. and in which direction. But Graphical Hotspots and Solid Geometry Commands extend the power of GDL into new territory! 11. or a complex 3D object can simplify itself if it is too far away to require drawing in detail. Enough has been written to show you that it is possible to write long complex scripts in GDL using Loops and Subroutines. If your interest has been aroused. move the cursor around. a programming language that was devised in the 70s. and then how much of it will require more complex commands such as PRISM. See how much of it can be done with simple blocks or cylinders. To get further with GDL you will need to learn about Loops. The programming language of GDL You have discovered that you can write GDL without being a programmer. programming is an activity all of us do – ants do it when looking after their eggs. In GDL. lions do it when hunting zebra. If you can issue a few GDL commands. This is done when GDL objects read the values of Global Variables. the object knows how far away the camera is. write some IF statements that make the object smarter and safer. You saw all the GLOB statements in the autoscript in chapter 2. a billboard object can turn to face the camera. Adults do it whenever they get in their car and drive to work. see it as a chance to advance further into a new area of GDL. children do it when playing with their toys and developing social relationships. Programming simply means the organization of a sequence of actions conditioned by a number of IF statements that decide which actions shall be taken. and now it has been rather forgotten. how to control polygons. do not give up. and provides practical working examples to help you learn. GDL is based on BASIC. • The GDL itself. GLOB_NORTH the angle of the current north point. default drawing pen numbers and background pens. The best way to learn GDL is to attempt some practical tasks. • GDL can react according to conditions in the main ArchiCAD model. which exist in ArchiCAD. then you have been programming. include complex calculation routines with a GDL script. The multiple script mode of GDL means that it is capable of being really complex. Commodore Pet and Tandy TRS-80 machines of the early eighties. This has not been covered in full detail in this tutorial. you could stack hundreds of books on a shelf and make decisions for each one as you proceeded to sort them by ISBN or size or by title or by author. Doors and Windows can know the thickness and materials of the current Wall. You will become conversant with 3D and 2D syntax as your experience grows. The syntax of each command. Thus. a tour through the easy foothills. With knowledge of the object’s position in 3D space and the location of the current camera. squirrels do it when hoarding their winter food. became universally known to users of the AppleþII. there are four main areas of knowledge • We have to analyze the 3D nature of the object we wish to build. such as structural calculations or predicting the outline points of a surface in 3D space. Graphical hotspots extend the power of GDL enormously. In GDL. or use their cellphone. Introduction to Object Making with ArchiCAD 110 . The GDL Cookbook covers all of these topics in greater detail.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING CHAPTER 11: GDL ROUNDUP There is a lot more to GDL than we have been able to cover in this slim volume. When you hit one of these commands (through necessity). In fact. • The programming language of GDL. GLOB_SCALE is the current drawing scale.

0. We can improve the way the loop is coded in two small ways. NEXT Machines never tire of doing repetitive work. Loop by counting numbers We want to plant a handrail at the racecourse and want to plant 6 x 1 metre high poles at 0. and we increment it by 1 each time the program goes around the loop. you may have many spokes in a wheel. many balusters in a handrail. we can get the work done for us...1. 0. and waits. and what spacing we want it at. but the most common is to do it by counting numbers.0. it completes the task.05 DEL 2 !Mid rail Introduction to Object Making with ArchiCAD Top. it returns to the FOR line.. We assume an imaginary counter called ‘k’. So it starts with a value of 1. increments ‘k’ again.03 DEL 2 The FOR. no matter what you set for RESOL. Note that a trick is used to improve the look of the capping rail. then cap it with a long rod.6 ROTy 90 CYLIND 5*(pspac). This method includes the DEL inside the loop. advances to the position of the next pole. Eventually.2 Loops – FOR. The Cylinders are actually colliding with the handrail although Open GL and the ArchiCAD 3D drawing engine makes them look as if they are joining smoothly. so that the loop is cleanly self-contained. ADD 0. The first one worked fine.. many shelves in a furniture system. We take advantage of ‘Z-buffering’ here. and NEXT k recognizes that it has finished and allows the program to continue..PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING 11. By making it slightly longer (by one diameter) than the sum of the distances of the poles. many rungs on a ladder. If we have a means of telling GDL how many we want. does one pole. Open GL makes it look smooth.0. Let’s show three simple examples.05 ADDx pspac NEXT k DEL 6 !Top rail ADD -0. FOR k=1 TO 6 ADDX pspac*(k-1) CYLIND 1. !Long fence using numbers RESOL 10 MATERIAL 18: PEN 1 pspac=0. With a GDL object.0. We can use FOR. As the job is not finished.0.0 ROTy 90 CYLIND 5*(pspac) +0.. NEXT Loop We can make loops with FOR. NEXT in several ways. We use DEL 6 to get back to the origin.. it looks more authentic in the welded joint. by distance or by angle. and plants another pole.1. Then it meets the NEXT k command.0. but we had to DEL all the cursor moves after the loop was complete.05 DEL 1 NEXT k 111 .0..05.0. We also specified the stepping value.6 metre intervals. NEXT.6 !Pole Spacing !Uprights FOR k=1 TO 6 STEP 1 CYLIND 1.

Do this until you have covered the total distance required. but you know their spacing.3m.A=3.6m. the value of (k-1) is zero. So it plants the first pole. We could make GDL calculate the spacing of the uprights automatically. so if you multiply ‘pspac’ by zero.1.0. “starting from point zero. plant another pole. Let’s make the length of the rail 3.6m does not divide cleanly into 3.1. This says.0.3m (11’-0”). the distance added is zero. Then increment the value of ‘dist’ by ‘pspac’. or 1.6 !Pole spacing !Uprights FOR dist=0 TO A STEP pspac ADDx dist CYLIND 1.0 ROTy 90 CYLIND A+0.0.6 !Pole spacing optimum numbay=INT(0. but if it is anything else at all.05. It’s clear that 0.05 DEL 2 !Mid rail ADD 0. we specified the stepping rate to be ‘1’. the distance moved is ‘pspac*1’ so it draws the next pole.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING Now we place the ADDX command before the cylinder. you must specify the STEP.0.5+ A/pspac) !Number of Bays numpol=numbay+1 !Actual number of poles pspac =A/numbay !Corrected value ‘pspac’ !Uprights Introduction to Object Making with ArchiCAD 112 . The first time.6 ROTy 90 CYLIND A. the stepping value must be clearly specified. or you must get GDL to recalculate the spacing of the uprights as closely as possible to the optimum spacing of 0. you can omit that STEP value. then returns to the origin.3 metres RESOL 12 pspac=0.05 DEL 1 NEXT dist !Top rail ADD -0.03 DEL 2 The upper version has an overhang. or GDL will assume a value of 1 – which could be misinterpreted as 1. and there will usually be an overhang unless the length is perfectly subdivisible by 0. You must either limit the length to a number divisible by ‘pspac’. If it is ‘1’.0. advance a distance of ‘dist’ (which starts as zero) and plant a pole.0 metres. Then return to zero. Smart way to recalculate spacing This is where GDL can become really smart.0. then return to zero. When ‘k’ is equal to 2.0 degrees! Loop by Distance – and optimise it! The next method is when you do not know how many will be needed. Then it DELs back to the origin.6m. then advance ‘dist’ (which by now has been incremented). !Loop by distance . !Loop by Distance with Calculation pspac=0.0.” For this method. the lower is corrected. Notice that in the first case. We need a routine to get this right.

the main curve and the tubing curve. This brings the opportunity to introduce you to two more GDL commands: ELBOW and TOLER. we have two curves. you will get a polygonal not curved rail. a fraction of an inch.5 makes it round up or down. 1. No matter how you stretch it. or the renderer will be too slow if there are too many of these rails. We use the FOR. The INT(þ) function rounds this down to an integer number.0 !Curve Radius angl=120 !Sweep angle ovra=360*0.0. As the curve is traced. and on the large curve it will follow the curve smoothly. RESOL 10 gives 10 polygons to all the cylinders. curvature is controlled in both small and large 3D shapes. TOLER stands for ‘tolerable error’ so you need to provide a dimension.0. Open GL and Photorendering can smooth curved surfaces so it is not necessary to have a lot of polygons to get smooth effects. you can calculate the number of Uprights and the true Bay Spacing ‘pspac’. like a few millimetres.0. Now you know the number of bays. Here is a similar handrail. So small tubing will have only 6 or 8 faces (which is smoothed by Open GL). the uprights will always fit the handrail nicely.05 DEL 1 NEXT dist !Do the rails the same as before We have here a calculation of the number of bays you would get by dividing ‘pspac’ into ‘A’. alpha angle. ELBOW curve radius. Loop by Angle There are many occasions when your object has interesting circle geometry.0 ROTx -90 ROTz 180 ELBOW crad. RESOL is code for ‘Resolution of Curvature’ and allows you to define how many polygons you want on a typical curve. angl+ovra*2. The insertion of 0. If we have a large resolution (we need at least RESOL 36) so that the rail looks Introduction to Object Making with ArchiCAD !Circular racecourse rail !Loop by angle TOLER 0. the tubing will have too many polygons. to a defined sweep angle. 0 . TOLER 0. so you need something more sophisticated – TOLER. 0..PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING FOR dist=0 TO A STEP pspac ADDx dist CYLIND 1. whatever you think is right.05/(2*PI*crad) !Overhang angle !Uprights FOR ang=0 TO angl STEP 15 ROTz ang ADDx crad CYLIND 1. Poor old RESOL is too simple for complex objects. but now it’s enclosing a curved running track. This handrail could now be custom manufactured to fit any length. right. Curvature control We want to control the number of polygons in the model. NEXT loop to distribute the posts at an angular spacing of 15°. This command sets the error to 5mm (3/16”) If you issue a TOLER dimension command.005. In any elbow..0. It is a very useful command. you have to precede the command with a ROTX -90 and lift it to the height of the top of the posts. ELBOW is like a cylinder but it is a cylinder which curves at a defined radius. and the computer could be crippled trying to shade all those surfaces.05 DEL 4 113 . and if we have a lot of rails in the project. tube radius Because elbows always grow upwards.05 DEL 2 NEXT ang !Handrail ROTz -ovra ADD crad. GDL measures the difference between the curve and a tangent to the curve.005 crad=3. If you use this for something like the curved handrail.

That becomes an internal parameter ‘ovra’ (overhanging angle) and it’s easy to get a good weld detail by rotating and extending the rail slightly... All the tubing and spokes and cabins are recalculated using Angle based FOR. WHILE: do an action while a condition applies.. UNTIL: go on doing something until a condition is met – for example. then work out the best stepping angle. we had do use a trick to make sure the weld detail would look good at the end posts. London 2000) allows you to model the wheel as built or in any other configuration you could wish for. NEXT loop meets almost all your requirements. you can run a FOR NEXT loop in which for each iteration you move out the the edge of the circle and draw an upright. we start from the centre of the circle and move out to build the uprights and handrail. for example a dimension or an angle will eventually be equal to less than zero. lay the ELBOW over on its side (with a sweep slightly longer than the required sweep angle) and draw the rail.. move to the first upright with the ADD command. If you want to make the circular rail self managing like the second version of the straight rail or the Millennium Wheel. You will know when a situation suitable for REPEAT or DO is the best way for you to loop.. The FOR. We calculate what fraction a single radius of the post would be of the total circumference. until then. • REPEAT. In this case. when a dimension or angle is equal to or less than zero. we would have to divide the circumference by the optimum spacing. Most loops are based on counters. or incrementing until a distance or angle are achieved. and rotate slightly each time before the next upright. • DO. keep doing it... ENDWHILE: does the same as above. 114 Introduction to Object Making with ArchiCAD .. or the numbers in a memory buffer have been used up.. Rotate the rail slightly using the ROTZ command. This parametric model of the London Millennium Wheel (Marks Barfield. Other ways of Looping You have other methods of looping. NEXT loops.. For the rail.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING From the centre. you have a nice tidy loop. • WHILE condition DO. By using DEL within the loop.

This steel tube can be stretched and twisted and rotated in 3D You get the changes display visually as you work. This is so that the parameters resulting from the hotspot manipulation are swiftly passed on to the rest of the script. including the recalculation of tubing if it’s required – and you see a readout of the changing value of the parameter. When you stretch an object with the cuboid. In fact once you grasp the power of graphical hotspots you should no longer use the ‘ABzzyzx’ cuboid. When you stretch an object using graphical hotspots. You can use GHs in 2D or 3D. both in the object and in a small dialog box above. Another rule is that you should write all the hotspot routines before the bulk of either 2D Script or the 3D Script.3 Graphical Hotspots Graphical Hotspots allow you to click on and manipulate objects in 2D and 3D with amazing facility – objects can become like mechanisms. If you can think of another mode of action. Furniture can be explored by opening doors and pulling out drawers. You will Introduction to Object Making with ArchiCAD 115 . It seems that most objects can be manipulated successfully with these two. put it on the Graphisoft wishlist. You are no longer confined to the limits of the ‘stretchy cuboid’ defined by A. but let’s alert you to the possibilities of GHs here and try a simple exercise. Graphical hotspots (GHs) can control distance and angle. The general rule is to use GHs that control X and Y dimensions in the 2D and use the 3D for heights or twisting motions. B and zzyzx. There is not space to cover the topic of GHs fully here. you see nothing while it stretched except the cuboid. as it stretches.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING 11. you see the object changing as it goes.

A. This can be anywhere behind the Base spot (in a negative direction).05 ADDx pspac NEXT k DEL 6 ENDGROUP GROUP 'rails' !Top rail ADD -0. uniqueID. you could use Solid Geometry Commands (SGC) to make it look right.y.y. but let’s just improve the wireline view of the straight handrail.1 Using the hotspots above.270.2D Script HOTSPOT2 0.0 !Move PROJECT2 3.05.0 !Base HOTSPOT2 A. Let’s write some Graphical Hotspots Length based GHs are easy to do.6 !Pole Spacing GROUP 'uprights' !Uprights FOR k=1 TO 6 STEP 1 CYLIND 1. but angled ones are more difficult – beyond the scope of this book.270.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING find GHs very thoroughly covered in the ArchiCAD Help menu and the GDL Cookbook – there’s a lot more to them than this brief mention permits.2 !Move HOTSPOT2 -1. subtraction or intersection. We did this simple stretchy straight handrail earlier. uniqueID. code !2D With GHs in length calculation you nominate the position of the starting Base spot (code=1). 1001.3 !Vector PROJECT2 3.4 Solid Geometry Commands In the straight handrail. whereby 3D objects that intersect are cleanly drawn in hidden line and shaded views. If you wanted a good wireline view. 11.0. 1002. 1003.0. SGC makes it possible to improve the 3D quality of solids by addition. you can safely use the ‘ABzzyzx’ cuboid. the Moving spot (code=2) and a third position.0 Introduction to Object Making with ArchiCAD 116 .z.1. !Straight Handrail . parameter.1 !Base HOTSPOT2 A.1 We will have a brief excursion into this very important technology. A.0. !Straight handrail with improved wireline view RESOL 12 MATERIAL 18: PEN 1 pspac=0. one that defines a Vector of movement (code=3).0. Graphical hotspots also require a unique ID number (to support associative dimensioning) and they need to know which parameter you are trying to change.0. If you need good line drawings. you need to find a way to improve the appearance – you would like good pen lines at intersections. Let’s try a Length based one. A.2D Script HOTSPOT2 0. The syntax for a graphical hotspot is: HOTSPOT x. You will have to read more advanced books on GDL to cover this further. This would cut the uprights and rails to fit the each other nicely. and you would like ‘waste material’ in the intersection to be removed in a wireline view. code !3D HOTSPOT2 x. we looked at the idea of Z-buffering. parameter. 0. So replace the hotspot routine above with: !Straight Handrail . Let’s try the GHs method instead.

and we then place it with a PLACEGROUP statement. for example when you want to subtract a curved 3D shape from a another solid – something that you cannot do at all without SGC. The most important use of SGC is in subtraction. as intersecting circular forms can have clean ink lines at the joints. such as the junction of the braces relative to each other. we can improve the appearance in wireframe using the ADDGROUP function.03 DEL 2 ENDGROUP handrail=ADDGROUP('uprights'. !Chair 3D Script .0. Behind you see the spheres which have been subtracted from the cylinder.1. SGC cleans it all up! Even subcomponents are tidied up. Even in Hidden line.6 ROTy 90 CYLIND 5*(pspac).05 DEL 2 !Mid rail ADD 0.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING ROTy 90 CYLIND 5*(pspac) +0.With Solid Geometry !to improve the look of the joints PEN cont_pen TOLER 0. We cannot get rid of the pen lines on the cone-ends except by using a REVOLVE instead of a CONE. Introduction to Object Making with ArchiCAD 117 . the appearance will be better.0.'rails') PLACEGROUP handrail Solid Geometry on the chair Looking at the chair we did earlier.0.001 GROUP 'legs' GOSUB 100:!All the legs ENDGROUP GROUP 'seat' GOSUB 200:!Seat and upholstery ENDGROUP GROUP 'back' GOSUB 300:!Back ENDGROUP GROUP 'braces' GOSUB 400:!Braces ENDGROUP Here you can see the finished object near to. !Clear out the memory KILLGROUP handrail KILLGROUP 'uprights' KILLGROUP 'rails' In this procedure we define two groups.0. we create a new group with the ADDGROUP statement. KILLGROUP clears out the memory and allows us to use those group names again – it’s only really needed if this is part of a much longer script. The earlier chair on the right looks messy at the joints.

‘Fsiz’ must be a real number type of parameter because font size is measured in actual millimetres in plotting size. you will have to grapple with STYLE{2}. If you want to write rich text in GDL. When you ADDGROUP. If you have any text labels in a 2D object. you can have a popdown menu allowing the user to choose. although to achieve equivalent variations in GDL requires some care with coding – TEXT2 has been too easy for too long. and ‘fsiz’ for font size.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING GROUP 'arms' GOSUB 500:!Arms ENDGROUP chair=ADDGROUP('legs'. 11.'arms') PLACEGROUP chair KILLGROUP chair END:!____________________________ In the earlier chair script we had a number of IF statements in the executive script. You first have to tell GDL the attributes of the text.5 Defining Text in 2D Let’s finish the book with one more technique that will help you with 2D. Notice how the ‘chair’ value can be successively added to. Rich Text is available in ArchiCAD 9 Text entry is greatly improved in ArchiCAD 9 in the plan. If it really matters. etc. You must also SET STYLE before the text will recognise it. not bold or italic).'back') chair=ADDGROUP( chair. Imagine that you wish to letter the chair. the style. the font. the size.'seat') chair=ADDGROUP( chair. Italic etc. TEXTBLOCK. It is now possible to have Bold. A normal string is in quotes.e. with variable colours.0 mean that it is to be left-justified and normal (i. line by line. RICHTEXT2. Minor disadvantage of SGC My caveat on SGC here is that you can lose the special texture mapping. Move all these statements to the subroutines. You could use large IF statements to run one or the other version of the executive 3D Script. it appears to try to apply the texture all as one. to keep the executive script clean. These are beyond the scope of this humble edition. We can use the string of characters from the ValueList describing the type of chair. 118 Introduction to Object Making with ArchiCAD . It is also greatly extended in the GDL. Defining style is done in the form of the script here. so you have to choose in the battle between best 3D appearance in Open GL and Photorendering against the best appearance in terms of pen lines and wireframe. The 1. PARAGRAPH. The TEXT2 statement includes the XY position of the text (just below the left chair leg) and the string. or in this case is a parameter from the ValueList.'braces') chair=ADDGROUP( chair. Make a few parameters: ‘font’ for font name. like ‘IF bakon THEN’ and ‘IF arms THEN’. you cannot just use the TEXT2 command. See the Help Menu or GDL Cookbook for a more extended discussion of defining style. detail and section views. These are summed up as the STYLE. RICHTEXT and REQUEST ('TEXTBLOCK_INFO'). the pen..

• Knowing where the camera is. parabolic. for better 2D. in Wood models. 11.6 Other possibilities Look at the GDL Reference Manual and the Help Menu This primer has been written in the hope that as your approach to GDL becomes more confident. • Making curvy skin-based surfaces using COONS or MASS. line types and fill patterns. • Graphical hotspots allowing full manipulation of objects. you will be more willing to dip into the actual manual. If you made it this far the hard way – by reading and doing some of the exercises – you may be prepared to try some of these yourself. • Defining your own textures. • Reading and displaying the system date. revolve and other objects. Introduction to Object Making with ArchiCAD • Using trigonometry to calculate the pathway of tubes and edges through curved and parabolic pathways. catenary. using the REQUEST command. which combine drawn symbols with 2D scripting. • Smart 2D symbols using FRAGMENT2. • Defining your own Line and Fill types. and changing accordingly. extrude. sinwave curve maths. • Defining your own Text styles. but you can read up more on GDL – the GDL Cookbook takes you all the way with GDL. • Building a Graphical User Interface that replaces the normal parameter box and makes the GDL object look more professional. • Storing numbers in memory and bringing them out later (Arrays and PUT & GET). • Knowing which storey the object is on. • Using ‘masking’ to control the way objects and surfaces look in 3D drawings and in photorendering. project name. Windows. • Defining your own materials.PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING 11. poly. We have given you an insight into some of these already. elliptical. • Planar 3D GDL objects when they do not need to be solid. • Macros – Calling other library objects (such as taps or door handles). • Solid Geometry Commands. There are just too many to cover in one tutorial. • Reading and writing text based datafiles. • Parameter arrays and dynamic arrays. Corner. There’s plenty in this book to keep you busy if you are a GDL newcomer. There are many more capabilities in GDL than we have had space for in this primer. e. Skylights and Dormers – these are all subtypes which need a lot more explanation. and more complex windows. CUTFORM and CUTPOLY to carve and drill solid shapes. • Applying ‘Polyline’ curves to the outlines of prism. • Rich Text in 2D and 3D. including pulling/pushing.g. including autosizing. Capabilities of GDL that this tutorial leaves for future investigation: • More powerful pop-up menus – with numbers and pictures. • Circle. and twisting/rotation. and much more. • Setting up animation possibilities by changing the object’s shape or position according to the frame number in the animation. But you can find out more by reading further or taking a course in GDL. and orienting them for greater authenticity. • Curved. • Complex tubular lattice structures. • Making use of the Special menu. time. • Billboard Objects – there is more to do with them yet! • Making Lamp objects with controllable light sources. • Using a CUTPLANE. setting styles and text positions for self labelling objects. in which parts of the model combine or cut each other.7 Advice for Newcomers to GDL Graphisoft asks: (Graphisoft Newsletter Sept 2000) What are the most important things you tell the people who attend your GDL classes about object making? DNC replies: 119 . The explanations may not be as dry or technical as you first thought. • Doors. to make them more complex.

120 Introduction to Object Making with ArchiCAD . Scripted objects can have sensitive lines in the symbol. Think in parameters Always try to work (and think) in parameters not in numbers – it’s easy to develop your own lingo of 'wid'. Structured GDL is best The moment it gets more complicated than one page full of script.5 onwards. Second thing is. for beginner level GDL there are none to speak of.. You may have to settle for making them parametric only by stretching and mirroring. For many commands such as prisms and revolves. Fifth thing is. • Rich Text : You can now greatly improve the appearance of your text labels. make sure that the objects have sensible names. and easier to write in these terms knowing that a simple change in the parameter value will modify your object easily. but as the IFCs standards are more widely adopted and you make more use of the interactive scheduler you will be wise to select subtypes correctly. • Graphical Hotspots : These will now have controllable pen colour (globally. • Selection : Objects are easier to select if you have a FILL in the 2D Symbol.. preferably marking the origin and numbering each point along the profile.. so it’s a relief to know that the error will be found through hard logical thinking. but these go beyond the scope of the book. 'len'. This also saves on repetitive typing. Steal from ArchiCAD Some objects are so complex that the parametric method above is harder than beating your head against the wall. Third thing is. and makes it easy to isolate errors. 'hit' and 'thik'. Don’t Panic!! It’s not as difficult as you expect once you are into it..8 Summary of ArchiCAD 9 changes Most of the GDL covered in this book is generic – it is good for GDL from ArchiCAD 6.. You may be better sketching them out in the ArchiCAD floorplan and then dragging them and dropping into the script... read the message.. not individually).. you can’t write it in GDL. However. 11. 'dep'. Drawing it out on paper will put your mind at ease to concentrate on the logical process of actually building it. and when you get an error message.. you are advised to include POLY2 commands and follow LINE2 and ARC2 with HOTLINE2 and HOTARC2 statements wherever possible. GDL has few bugs. have you spelt the parameters right? Are your commas in the right place? Try excluding part of the script to see if other parts work.. There are many more small changes.. Fourth thing is.. look at the script. • Subtypes : These have been important in AC8. Always have pen and paper handy If you can’t draw it on paper. it would help to summarise the ArchiCAD 9 changes that have been referred to at points in this book. If you are scripting. • Naming : Now that you can search for objects by name. half the job is done if you have drawn it out..PART TWO: BEGINNERS' GUIDE TO GDL SCRIPTING First thing is. convert the script to subroutines. so that each part of the model is a tiny object in its own right.

91 121 . 16 ArchiCAD University 90 ArchiCAD-Talk 90 ArchiFacade 89. 12. 67. 45. 50 B A Abvent 97 AC_Holesidematerial 107 ADD 43 ADD2 43 ADDGROUP 117. 50. 83 ArchiCAD Reference Guide 7. 38 ArchiCAD library 26. 90. 23. 69 Clean Wall Intersections 22 CNC 56 Column tool 19 E Editable 12. 83 Carpet 89. 25. 70. 48 3D 110 ~ View 43 3D Cafe 11 3D Cursor 43 3D Cutaway 17 3D projection setting 23 3D Projection Settings 17. 34. 45. 55. 31 door 22 Doors 99 DXF/DWG 11. 17. 25 Autoscripted GDL 69 Autoscripting 17 autoscripting 99 Comma 64 Comment 41. 85. 77 2D symbol 22. 120 ArchiCAD Library 11. 12. 118. 89 Adobe Photoshop 93 ADT 15 Align Texture 24. 62. 66 D David Sutherland 40 Default Translator 18 DEFINE MATERIAL 96 DEFINE TEXTURE 95 Defining Text 118 DEL 43 DEL TOP 44 Design Workshop 11 Dimensions 42 Display Options 22 Display Order 96 DNA 56 DO. 20. 43 counterclockwise 61 CPRISM_ 60. 27. 80. 16. 44. 19. 98 AutoCAD 11. 73 ArchiForma 26. 70 BPRISM_ 60.INDEX 2D Full View 41 2D Hotspots 49 2D Script 41 2D Symbol 23. 50 BODY -1 71. 97 ArchiFM 50. 34. 118 Add-on 97 Add-ons 11. 30. 71 cPRISM_ 100 CSLAB_ 69. 32 Archiforma 12 Introduction to Object Making with ArchiCAD banana truss 26. 20 3D projection settings 29 3D Script 41 3D script 70 3D View 41 3DS 11 3NF 12 ArchiPaint 89 ArchiRadar 11 ArchiTerra 8 Architerra 89 Arkiklub 11 Artlantis 89. 27. 34 BASIC 15. 45 Check Script 43 Chesspieces 79 Chris Jones 36 Cigraph 11. 119 CUTPOLYA 104 CYLIND 42. 97 CIRCLE2 48. 108. 15 Autoscripted 8. 100 Boolean 52. 39. 95 Bounding Box 29 bounding box 30. 94 Chair 22. 30. 18. 41. 29. 95 animation 119 ARC2 50.. 62. 88 binary 31 Bite Design 98 BLOCK 42. 110 Basic Shapes 39 Basic Shapes library 34 bathroom fittings 18 BEAM 69 Billboard Objects 31. 77 curtain walling 108 Curvature 113 curvature control 79 CUTFORM 119 Cutout 89. 77. 18. 119 CUTPOLY 104. 91 Align texture 17 Alpha channel 89. 69. 50 Convert Mesh to Roof 31 Convert Roof to Mesh 35 COONS 119 COOR 85 Coordinates palette 17. 25. 120 ArchiCAD 9 10. 80 C CADCAM 14 CALL 69. 35. 31.. WHILE 114 Door 13. 95 CUTPLANE 63. 89 Binary 12. 58 CONE 42.

115. 120 loaded library 27 LOCK 59 Log setting 23 London 30. 72. 15 Ice figures 92. 71. 56 kitchens 83 L label 82 Lamp 13 Lara Croft 31 Las Vegas 70 Le Corbusier 7 Libraries 8 Library Manager 38 Lightworks 10. 76 flow control 82 Flywheel 33 FOR. 77 Find and Replace 63.. 36 Line tool 24 line weight 18 LINE2 48. 40 explode 13 EXTRUDE 62. 63 hyperbolic saddle 35. 94. 32 Geometric Description Language 13 GLOB 100 GLOB_ID 72 GLOB_NORTH 110 GLOB_SCALE 110 Global Variables 71. 77 Internet 11.D. 24. 99 Instant GDL 61. 17. 69. 85. 62. 75. 119 HIDEPARAMETER 59 Hoshino 11 HOTARC2 50. 119 GDL Dialog 40. 35 Missing objects 27 MODEL SOLID 71 Module 13. 105. 106 magic wand 19 Manufacturers Rules 48 Marks Barfield 114 Marquee 15. 120 HOTLINE2 50. 81 MATERIAL 42 Material 44. 110. 98 IF. 120 HOTSPOT2 69 Hotspots 49. 118 Kimon Onuma 52. 35 Magic wand 15. 119 GDL Toolbox 12. 54. 120 Graphical hotspots 119 Graphisoft 9. 38..Index Eiffel Tower 19 ELBOW 50. 113 Elbow 26 END 81. 39 MUL 43 MultiObject 56. 64.. 39 masking code 61 Masking codes 79 MASS 69. 59. 11 Macro 87 Macros 83 Magic Wand 17. 90 Materials 73 materials 13 Matthew Lohden 90 Melbourne 40 Mesh tool 12. 16. 62.A. 66. 100 ENDGROUP 117 Eureka Tower 8. 25. 82. 96 FILL 120 Fill tool 24. 16. 34 Google 11. ENDIF 53 IFC 9. 83 MULX 70 MULY 70 MULZ 70 I G GDL Adaptor 11 GDL adaptor 15 GDL Alliance 11 GDL Central 11 GDL Cookbook 7. 13 internet 58 Investment Object 14 16 J Jodrell Bank 36 K KILLGROUP 117. 110 Golden Rules 82 Goodies 32. 58 GDL dialog 99 GDL Reference Manual 7. 78 grid 106 Grid Snap 20 Grids 17 groin vault 28 GROUP 116 GUID 9 H F Fender Katsilides 40 Figure 90.. 11. 52. 110. 26. 95. 50. 22. 119 8 Help Menu 7. 99 IF-Statement 52 Industry Foundation Classes 9. 28. NEXT Loop 111 FPRISM_ 60. 19 GOSUB 81 Graphical Editing Hotspots 50 Graphical Hotspots 10. 63 FRAGMENT2 41. 114 London Millennium Wheel 114 Loops 110 Lovell Radio Telescope 36 M M. 56. 93. 119 Master Script 41. 72 HPRISM_ 60. 28. 89 N Naming 120 naming 38 Norwegian window 84 Nottingham 98 Introduction to Object Making with ArchiCAD 122 .

89. 12. 47. 99 SWEEP 62. 12. 95. 37 SET STYLE 118 Settings dialog 17. 75. 76 PARAMETERS 52. 120 RICHTEXT 118 RICHTEXT2 118 Robert Luck 30 Roof tool 12. 98 PLACEGROUP 117. 21 Theometrics 11 TOLER 51. 31. 78 Polylines 78 Popdown Menus 54 Popdown menus 50. 13. 78. 85. 36. 14. 58 primitive forms 14 PRISM 50 Prism syntax 62 Profiler 8. 15. 31 Skylights 103 Slab tool 12. 43. 113 Resolution of Curvature 45 RETURN 75. 32. 111 Options menu 85. 48. 75. 32. 63 StairMaker 8 status codes 77 STEP 112 Stretchiness 17. 58 popdown menus 52 Preview Picture 23. 77. 12 Roofmaker 35 ROT2 43 RPC 89 RULED 78 P PARAGRAPH 118 Parameter arrays 119 parameter naming 47 Parameter Script 41. 39. 101 80 Programming 110 Project Framework 16 PROJECT2 41. 70 students 39 Studio Arkada 11 STYLE 118 STYLE{2} 118 Subroutine 75 subroutine 100 Subroutines 56.. 78. 116 Shadows 95 Silicon Graphics 10 Sketchup 11. 25. 19. 70. 41. 88. 34. 79. 90. 79. 99. 50. 65. 116. UNTIL 114 REQUEST 118. 80. 59. 39. 24. 19. 69. 24. 80 TUBE 62. 73. 100. 92. 72. 42. 37 U Urban modelling 30 User Interface 59. 119 RESOL 45. 71. 31. 91. 33. 90 Orcutt Winslow 14 Origin 18. 34. 83 Subtype 10. 17. 36 Roof Truss 23 RoofMaker 8. 46. 119 R racecourse rail 113 rapid prototyping 14 ray-tracing 10 RECT2 48 reflection 10 Rendering 10. 72 REPEAT. 84 Parameters button 41 Parametric 72 parametric 8.Index O Object Genome 56 Object Genome Project 52 Object Making 7 Objects On Line 11 Open GL 10. 33. 80. 71. 38 transparency 96 trees 89. 17. 78 T Table 19 template 73 TEXT2 69. 29. 82 REVOLVE 62. 96 trigonometry 119 Trim to Roof 36 True Line Weight 49 Trussmaker 12. 45. 118 TEXTBLOCK 118 Textures 39. 119 User Interface Script 41 User Interface script 84 123 . 73 Section/Elevation 21. 118 POLY_ 96 POLY2 50. 111. 117 Rhino 11 Rich Text 118. 98 PICTURE 93 Picture 89 picturereality 89 Piranesi 89. 13. 32. Introduction to Object Making with ArchiCAD Solid Operations 39 spaghetti 44. 64 PEN 42. 120 POLY2_B{2} 69. 47. 110. 110 typographical discipline 44 S Schedules 38. 14. 17. 116 Property Script 41 PUT & GET 119 PYRAMID 78 Solid Geometry Commands 10. 39. 88. 32. 14. 54 Parameter Table 40. 82 SPHERE 42 SPLINE2A 69 SPRISM_ 60. 26. 58. 51. 17. 67. 110. 35. 21. 60. 99. 44. 80. 52. 41. 93. 34. 103 Subtypes 9. 67. 113 Tools menu 33 Tools palette 8.. 91. 96 SGC 10. 72. 76. 20. 23 SEO 33. 22. 100 Pen 73 People 89 people 96 People and More 11 Pet Palette 17 Pet palette 19 PhotoCAD 97 Photorender 95 Photoshop 89. 46. 17. 58. 15. 90 Solid Element Operations 10. 36. 85 textures 14. 81.

84 124 Introduction to Object Making with ArchiCAD . 101. 75. 32 ZZYZX 70 zzyzx 47. 22. 35. 82. 99 X XWALL 77 XWALL_{2} 69 Z Z-buffering 111.Index V ValueList 54. 31 window 84 Windows 12. 20. 107 Wallhole 106 wallhole 22. 106 WALLHOLE 83. 28. 116 Zoom 11. 99 Webscape 52 West Bridgford 98 WHILE condition DO 114 Window 13. 118 ValueLists 52. 59 VALUES 54 Velfac 108 VERT 85 W Wall tool 12.