Skip to main content

Using BBEdit or Textwrangler? Here are some BIM goodies

I have been using TextWrangler as my OSX power text editor for quite some time. It is free, runs fast and efficient and is quite versatile.

For many code formats, there are adequate syntax highlighter settings available: C++, php, html, xml and many more. However, for domain-specific languages, you are often on your own.

I’ve created and improved some highlighters which you can freely download.

You have to install them in the correct folder, for TextWrangler to recognise them.

/Users/<user name>/Library/Application Support/TextWrangler/Language Modules

I assume (have not tested), that they also work for BBEdit, the big brother of TextWrangler, which will have a very similar path upon install.

IFC - Industry Foundation Classes

I do hope that you know what this is…

This is the beginning of the IFC definition file. It is an XML file, with a series of recognised words underneath <dict> in the <array> tag. I’ve copied them from a long listing of IFC classnames. They are derived from IFC2x3, so the IFC4 classes are not (yet) available. But it’ll take some time before applications start supporting them.

PastedGraphic1-2014-12-4-08-53.png

You can download it from my Dropbox here: https://dl.dropboxusercontent.com/u/2536675/BIM/ifc.plist

And that is how an IFC file will look in TextWrangler:

PastedGraphic-2014-12-4-08-53.png

Not perfect, but already very usable. In particular, most DATATYPES are still missing (IFCBOOLEAN) and the enumerations, like “.T.” or “.ATEND.”. Listing them all should be possible, but that requires either stupid manual work or applying an Express parser. I’m partially there already, but it’s not complete. But it is usable and the IFC files look much more readable already. They are still frightening for most architects, though.

PastedGraphic5-2014-12-4-08-53.png

EXP = the Express language

Actually, the whole IFC data structure, defining datatypes, entities and rules is described in an Express file. I have been looking at the official IFC 2x3 EXP TC1 (technical corrigendum 1) where IFC 2x3 is described. This is used in numerous IFC developer toolkits, where it is often the source for the automatic generation of the hundreds of classes for IFC.

The TextWrangler express definition file (again, an XML file) is shown here:

PastedGraphic3-2014-12-4-08-53.png

Download the file from here: https://dl.dropboxusercontent.com/u/2536675/BIM/express.plist

If you load an EXP file, it will look like this:

PastedGraphic4-2014-12-4-08-53.png

 

ArchiCAD Geometric Description Language

And Finally, as I was studying some GDL files, I’ve added a definition for GDL too. This is the basic language for parametric ArchiCAD objects and is a variant from Basic.

This is the definition file:

PastedGraphic6-2014-12-4-08-53.png

You can download it from https://dl.dropboxusercontent.com/u/2536675/BIM/ArchiCAD-GDL.plist

And when you load a GDL file (with extension GSM), it’ll look already much better than it does in ArchiCAD’s internal GDL editor, which is still a relic from the 90ies, without syntax colouring, code folding nor code completion. Alas… Most Open Source software that supports scripting has a decent code editor with these features and more built in. Don’t ask me why Graphisoft chose not to integrate this. But it scares the GDL developer away even more. I’m wondering if they are using it themselves…

PastedGraphic7-2014-12-4-08-53.png

However, as a GDL file is not a pure text file, this is mostly for studying. If you start messing around in this file, you’ll ruin the object. In ArchiCAD, it looks cleanly divided into 2D, 3D, Parameter and other scripts, but it also contains other sections and even a basic 2D drawing, which can be seen by large sections of gibberish:

PastedGraphic8-2014-12-4-08-53.png

So avoid the urge to edit the GDL file and especially do NOT save it. My advice? Copy paste sections of the scripts from the arcane GDL Editor in here, correct or study and copy them back.

Comments

Popular posts from this blog

Improve usage of BIM during early design phases

When I was collecting ideas for a book chapter on BIM (that seemed to never have emerged after that), I collected 10 ideas, which I believe still reflect good recommendations to improve the usage of BIM during the early design phases. These ideas are related to BIM software, but you can apply them in any flavor, as long as you can model with Building Elements, Spaces and have control over representation. Introduction This article gives an overview of several recommendations and tips, to better apply BIM applications and BIM methodologies, in the context of the early design phases. Many of these tips are applicable in any BIM application and they are based on experience gathered from teaching, researching and using BIM software. Sometimes they could help software developers to improve the workflow of their particular BIM implementation. Tip 1 : Gradually increase the amount of information In the early design phases, the architect makes assumptions and lays out the main design in...

Getting BIM data into Unity (Part 9 - using IfcConvert)

This is part 9 of a series of posts about getting BIM data into Unity. In this post, we’ll discuss the IfcConvert utility from the IfcOpenShell Open Source IFC Library to preprocess an IFC model for integration with Unity. This is (finally?) again a coding post, with some scripts which are shared to build upon. Conversion of IFC into Unity-friendly formats The strategy with this approach is that you preprocess the IFC-file into more manageable formats for Unity integration. Most Web-platforms do some sort of pre-processing anyway, so what you see in your browsers is almost never an IFC-file, but an optimised Mesh-based geometric representation. However, it wouldn’t be BIM-related if we’d limit ourselves to the geometry, so we will parse the model information as well, albeit using another, pre-processed file. IFC to Wavefront OBJ I used a test IFC-model and used the IfcConvert-utility converted it into OBJ en XML formats. The default way to use it is very simple: ...

PythonOCC : Open Source interactive CAD shell (and how to run it on OSX)

What is PythonOCC? PythonOCC is an Open Source (LGPL) Python-wrapper for OpenCASCADE. So what is OpenCASCADE (OCC)? This is an advanced Open Source (custom license) modeling kernel, comparable to commercial engines, such as ACIS or Parasolid, which are used in quite some commercial CAD programs. When you want to develop CAD software, you could use OCC and write programs in C++. And why using Python? With this wrapper, you can create CAD and geometry scripts in Python, which is an interpreted Object-oriented scripting language. You can write almost "on-the-fly" and seriously reduce the implementation effort, by skipping the compiling-phase. You can even interact with a running program in the Python interpreter. Want to read more about this? The OpenCASCADE official website  (currently Linux and Windows are officially supported) The PythonOCC website/blog  (beware that the core of the actions happen in the development repositories). So far so good. Now the nasty, techn...