[Plugin] bim-tools 0.13.4(june 22, 2015)
-
@brewsky said:
But the reason I made it is to have the ability to easily create some meaningful objects that can be used as testcase for an IFC exporter.
In other words your main focus is essentially on paperwork type processes. But if you thought about object oriented information technology you could develop ideas how to identify and assemble objects and still produce traditional project documentation. A bit like creating a website that has potential to do many things but just using it to display a paper-like catalogue.
@brewsky said:
I don’t think designers want a tool that generates floorplans/buildings from a set of rules/demands.
You know it just might be site owners demand use of OOIT for its transparency and accountability, and designers have to comply.
@brewsky said:
Although it would be really cool to compare your design with “the perfect” computer generated floorplan
I think the reverse would happen; it would take a great deal of setting and resetting the criteria to reduce the options to say ten. Actually this is a way of delaying subjective judgement, providing a very high degree of accountability. Of course many designers rely on intuition, which is fine if the logical testing, which naturally follows any such lateral thinking proves it correct (which is one reason why building contracts are such a hassle).
@brewsky said:
they DO like the ease of drawing in sketchup! If you could just make the creation of meaningful objects really easy
even the building industry should not object
I suggest ... would respect, because you know buildings are not really built from drawings and specs. They are built from interpretations of them, as thumbnail sketches, setting out lines, purchase orders and so on. How much better a series of instructions: "Buy this; put it here" rather than "Need this, put it on the drawing (making sure the information is scattered over plans, sections, schedules and specification)"
@brewsky said:
Your opinions please
I am sorry I have run out of steam and time for the time being but you could have a look at my website for some examples what can be achieved. I know it is difficult to see beyond improving what already exists - e.g. evolving models from orthogonal drawings - most often the basis for competitive tendering. Toffler wrote: "Static competition may have produced the thoroughbred racehorse but it could never have produced the automobile." Competition in the building industry is static, something more dynamic is needed ... don't you think?
-
@dan rathbun said:
So.. would your project be a pay-for plugin, or a free open source project?
Currently I have put in a reference to the GPL in the header of the script(default from the Geany-editor). Seems to me to be the best licence. I want to make it open source. I didn't do a lot of research, for one I don't know if there are restrictions in the GPL for using the licence for plugins that only work wit proprietary software? I'd like to keep it open source, so MIT does not seem the best choice. I need to read some more on that!
Oh, and another question:
How do you keep class instances through multiple sketchup sessions? Is it possible to create a class "wall", fill an instance with properties, and make a sketchup object "part" of the instance(or vice versa)? And still be able to call methods from that class after restarting sketchup without recreating the class-instance from the sketchup geometry(and attributes)? -
@brewsky said:
@dan rathbun said:
So.. would your project be a pay-for plugin, or a free open source project?
Currently I have put in a reference to the GPL in the header of the script ... I want to make it open source. ..., so MIT does not seem the best choice.
There is also the Artistic License 2.0
For more: Various Licenses and Comments about Them
-
@brewsky said:
How do you keep class instances through multiple sketchup sessions?
Data files saved to disk. (It's easiest, if the data is linked to a certain model object, to save it within the SKP file, as attributes attached to the object. Trying to keep any 2 or more files in sync, has proven problematic IMHO.)
@brewsky said:
Is it possible to create a class "wall", fill an instance with properties, and make a sketchup object "part" of the instance
Sort of.. the Sketchup object would be referenced by the class instance, using an instance variable. Also the Properties would be loaded from the attribute dictionary attached to the SKP object(s), (either a component or a group,) into the class instance's properties Hash (or Ostruct.)
@brewsky said:
(or vice versa)?
NO. The SKP file's DOM, does not support creating custom Drawingelement subclasses. There are rigid methods for adding only the defined object classes into the model DOM. (see the Entities class methods.)
Afterall.. the application needs to know how to draw the model object classes. Allowing a infinate number of them would "open Pandora's box."This is why your IFC objects will really be Groups (or Components) "owning" primitives or other nested Groups (or Components.)
@brewsky said:
And still be able to call methods from that class after restarting sketchup without recreating the class-instance from the sketchup geometry (and attributes)?
NO. When restarted, even Sketchup has to recreate the Ruby Sketchup API objects after loading the Ruby Interpreter, and then it's C++ model objects (which are exposed to Ruby via the API,) by reading in a SKP file from disk.
-
@dan rathbun said:
This is why your IFC objects will really be Groups (or Components) "owning" primitives or other nested Groups (or Components.)
@dan rathbun said:
NO. When restarted, even Sketchup has to recreate the Ruby Sketchup API objects after loading the Ruby Interpreter, and then it's C++ model objects (which are exposed to Ruby via the API,) by reading in a SKP file from disk.
Ok very clear, thanks!
I thought about it because I heard Java can write full class-instances to disk... -
@dan rathbun said:
I didn't think it was worth it.. as IFC is an XML data file. Ruby already has libraries to work with XML files, that are cross platform.
Do you advise using IFC XML? I read somewhere that using the original "step" variant was faster...
-
Oh and another question pops into my mind.
it seems regular practice to host source files her on the forum.
Woudn't it be easier to use google code or sourceforge to manage all the different versions? -
@brewsky said:
Oh and another question pops into my mind.
it seems regular practice to host source files her on the forum.When it is a code snippet, or a relatively small, stand alone plugin, it's just easier to post a zip file here.
@brewsky said:
Woudn't it be easier to use google code or sourceforge to manage all the different versions?
For a project like yours... during the development, a google code site, github site, or a project site at RubyForge may be needed.
-
@brewsky said:
@dan rathbun said:
I didn't think it was worth it.. as IFC is an XML data file. Ruby already has libraries to work with XML files, that are cross platform.
Do you advise using IFC XML? I read somewhere that using the original "step" variant was faster...
Well pehaps (I didn't know of STEP, until you said this,)...
Wikipedia says that the STEP files are the most widely used, so support for them would be a good idea. Unfortunately, ISO wants 180 euros (I think,) for the a copy of 10303-21.On the other hand the IFC XML Schema was a free download.
Personally I can more easily read and understand the XML. (The Step files look like a nasty crossbreed between C and COBOL.)
-
@chrisglasier said:
In other words your main focus is essentially on paperwork type processes.
Not essentially, but all my experiences and day-to-day "annoyances" are related to the "paperwork type process". So the first ideas that come to mind are very practical and probably narrow-minded ways to improve the existing process.
When modelling a building it's very important to create an interlinked relational model instead of a "loose" collection of walls and floors.
Probably the most effective way would be to write a long list of relations(following a list of demands) and have a piece of software generate the "best" building.
But also a reversed(intuitive) process should work. In the old-school-way draw lines, define them as walls/spaces. Think about the "why" of every element and link all parts together. The greatest difficulty here is that because the plan originated from an intuitive process it can be hard to figure out exactly why you chose to place an element in a specific place. Although i'm confident that there is allways a reason AND a relation in the choice.@chrisglasier said:
You know it just might be site owners demand use of OOIT for its transparency and accountability, and designers have to comply.
I spoke about this subject with some architects and they thought it could be "fun" designing by setting relations and let the computer solve the puzzle. They liked to see if it would find the same solution.
@chrisglasier said:
"Buy this; put it here"
I do think that "a picture is worth a thousand words". "Buy this; put it here" would create an immense list for even the simplest building. An interesting visualized variation could be to create LEGO-like building instructions(I believe the guys at LDraw.org have nicely automated that!)
Chris, thanks for your replies, every one of them gives me something to think on
-
@dan rathbun said:
For a project like yours... during the development, a google code site, github site, or a project site at RubyForge may be needed.
I've set up a repository at google-code
http://code.google.com/p/bim-tools/And spent a couple of evenings figuring out what-the-heck this Mercurial thing was. And found out I've been using it partly myself way earlier while trying to merge linux config files
I've uploaded my plugin. Now on to something usefull...
-
@brewsky said:
@chrisglasier said:
"Buy this; put it here"
I do think that "a picture is worth a thousand words". "Buy this; put it here" would create an immense list for even the simplest building. ...
The reverse is also true as you suggest with your immense lists - it takes a thousand words to make a picture. And this is the real point immense lists are needed (I know I have been responsible for many.) They won't go away but the question is who makes them and how.
From the very start a designer starts to build lists, mentally or physically, names of spaces, elements, services and so on. If these can be captured many people can help to expand the lists of names and attach key/value pairs to describe each of them - kind of collective thinking out loud.
As the names represent physical objects they can be arranged in hierarchical relationships and if there are components with the same names can display alternative models backed up with data. This cannot be achieved with paperwork type processes, it needs machines that can communicate over the Internet. Rather than create walls from edges I want (and have done) to make machines from names.
-
IMO the difference between building the moon landing vehicle, and a house. Is that the first has a complex, but easily stated mission. Go to the moon, and get the astronauts back to earth. A house on the other hand, is fairly simple, yet accomplishes the complex mission required to shelter, and advance the institution family.
It was Louis Kahn that taught the difference between art and architecture. An Artist can express the futility of war by drawing a cannon with square wheels, an Architect must make them round. He poetically mused that a brick "wants to be an arch". That ultimately Architecture has a immutable unseen form that fixes it's place in human culture.
A fork has an essential form that makes it a fork. It matters little that it is baroque, or modern in style. The Architect's skill is to deduce this essential form.
-
@dan rathbun said:
I didn't think it was worth it.. as IFC is an XML data file. Ruby already has libraries to work with XML files, that are cross platform.
Hi Dan,
It seems no ruby XML libraries are included with SketchUp, is this correct?
Is there an easy way to add, for example, REXML to my plugin directory instead of requiring a full ruby install for every user?-Jan
-
@brewsky said:
@dan rathbun said:
I didn't think it was worth it.. as IFC is an XML data file. Ruby already has libraries to work with XML files, that are cross platform.
Is there an easy way to add, for example, REXML to my plugin directory instead of requiring a full ruby install for every user?
Correct. SU does not distribute the Ruby Libraries, only the interpreter.
Distro'ing Ruby libs in your plugin folder can cause version problems. You'll also likely find that those libs have dependancies on other libs, and so on... and so on...
Some coders have done it for single lib files.. but in that case, it's always best to first try and load from the user's full install by just requiring a lib file normally (wrapped in begin .. rescue LoadError block), if the rescue clause gets executed then you can load your copy from your plugin subfolder. That way if the user later installs full Ruby or updates to a newer version your plugin can take advantage of it.
But really... what we need to move toward, is every user having a special full Ruby install beneath the Sketchup program folder, "tweaked" just for use with Sketchup. Then the "system" Ruby install can be left alone to do other non-Sketchup things.
-
I have made a first attempt at an export-to-IFC script for the walls plugin I posted earlier.
The method used to generate the required IFC data is quite "crude", and it's still only simple walls, but is't a start!I've been able to open the resulting files in a couple of viewers:
- Nemetschek IFC Viewer
- Solibri Model Viewer
- TNO IFC Engine Viewer
Check out the google-code page for download and brief tutorial:
http://code.google.com/p/bim-tools/Maybe there's someone with the ability to try the exporter on one of the big BIM programs?
I would love to hear what they make of it!- Jan
-
Jan,
I renamed the topic "[Plugin] bim-tools" so this plugin will appear in the Index (and to bump it in case anyone missed it.)
-
It was under the impression that this was in the Alpha stage, still very much a work in progress.
Why was it moved to the Plugins forum? It's not ready for 'prime' time.
-
@dan rathbun said:
Why was it moved to the Plugins forum? It's not ready for 'prime' time.
Mostly to raise awareness of the plugin.
-
Guys, I think this is a great idea with huge potential. I'm really interested in the direction this might take.
Advertisement