Adding intelligent pipework and ductwork connections



We have a Ruby plugin to draw 3D building MEP equipment in SketchUp (boilers, chillers,
pumps, ahus etc). We would like to be able to add intelligence to the connections
so that users can then connect to the equipment using PipeDesigner and
DuctDesigner. Does anybody know if it possible to automate this in a Ruby plugin?




Yes, I guess … not sure exactly what you are thinking of in terms of the automation nature of this, but yea…

If you are looking for some ideas on how it can be done, could you perhaps explain a bit more what you had in mind? Maybe some screenshots? Models? Concept drawings?


Thanks for your reply. Have done some more rooting and found video on Creating Custom Parts in Trimble MEP Designer ( We would like to be able to automate this process using Ruby.
We can automate the creation of the geometry. We would like to be able to autmoate the bit where they add information to connections such as size, flow rate etc.


Information is added to model objects in 2 ways.

Attributes. Attribute dictionaries can be attached to any SketchUp object that is a subclass of Sketchup::Entity. (Dictionaries are themselves an entity subclass so can have nested dictionaries.) These can be attached then to primitives, and also non-drawing objects like the Layers collection, etc.

Classifications Classifications can be attached to Component Definitions. You can use standard IFC classes, or create your own custom classes by writing a XML schema. (There is a current limitation where choice classifications cannot be set via Ruby. These are fields that have a set of choices the user must choose from.)


OK thanks Dan - so I guess it may be feasible if we can get hold of what information to add.


Hi Nick,

I think what you want to do is possible with the Ruby API, but I’m not familiar with PipeDesigner and DuctDesigner. By “connect to the equipment”, are you wanting to add pipe and duct components in SketchUp to other components in the SketchUp model based on some component attribute? As in a given pipe component can only connect to a particular equipment component?

Can you give a some more information about what you’re trying to do?

Also, Thom and Dan’s input seem fairly spot on. Also, Thom’s part of our API development team and a crack Ruby extension developer.



Hi Paul,

At the
moment we are creating equipment objects with connections using Ruby as per the
example image attached. We would like to add attributes etc to these connections
so that in PipeDesigner and DuctDesigner they are recognised as connections
that can be routed from / to using the software. It could be done manually by
the user as shown in the video Creating Custom Parts in Trimble MEP Designer.
However, we would like to be able to automate this using Ruby to make it easier
and save time for the user. They would then be able to go straight in and start
using PipeDesigner and DuctDesigner immediately to connect up the equipment.
For previous posts and what you say I am guessing we can add the attributes
etc, but we would obviously need the definitions.