Namesets and bounding boxes
-
I would be very grateful for any input on this, whether general or specific. Here is a display generated by a nameset - the components here are generally laid out end to end along the x axis
by the NS add device.
For example, the sanitaryware belongs to the sanitaryware grouping which belongs to the bathroom space (which will be further elaborated with finishes, fittings, plumbing, HVAC etc.). A floor amongst other items has spaces and common elements like walls, and similarly a building has one or more floors. I can rotate, position, offset and resize each (where logical). All the resulting data is attached to their named component, grouping or collection which is nested in the records much the same as a website HTML with its DOC structure ... and so my question is whether I can pass this type of thing on via ruby in bounding boxes.
Maybe I am being too ambitious with this, but the alternative is tortuous and not not very progressive. If you find the idea challenging then let's discuss the why's and wherefor's.
My regards
Chris
-
I'm not sure I understand what you are asking...
BoundingBoxes are not meant to be displayed in SketchUp - they only provide the dimenssions of a theoretical box around its contents.
When you select a Group or ComponentInstance, the BoundingBox gets highlighted, but there is no method to display a BoundingBox besides adding the Group or ComponentInstance to the Selection.
In your example, are you creating a nested hierarchy of Groups, or are they all top-level instances?
-
@jim said:
I'm not sure I understand what you are asking...
BoundingBoxes are not meant to be displayed in SketchUp - they only provide the dimensions of a theoretical box around its contents.Yes I think I understand that. Its something like a "<div><div>A block in a div holder</div></div>". At the simplest level I want to simulate a "click" on a component by clicking on a name in the web dialog so that the box turns blue.
If this is possible then there is more to discuss.
Many thanks ... toodle pip!
Chris
-
Ok, that's easy. You can manipulate the model's Selection set: http://groups.google.com/group/SketchUp-Plugins-Dev/web/Ruby-Selection.html
Sketchup.active_model.selection.add( ents) Sketchup.active_model.selection.remove( ents ) Sketchup.active_model.selection.clear Sketchup.active_model.selection.toggle( ents )
-
@jim said:
Ok, that's easy.
That's great. I will try to get to grips with the detail tomorrow (quite late here now).
But I'm thinking that probably I will need to make collections of components into a group and then groups into other groups as I move up the hierarchy. It is as if a project is a string bag; as I select objects with set dimensions (building products), I place them in a small string bag and put that bag into another bag. The project bag expands as more bags of bags are added and it starts to take up some shape. Sounds a bit weird but I think that's how it kind of works. (Substitute bounding boxes for string bags.)
Anyway I will sleep on it and try to post something vaguely sane tomorrow.
Tp
Chris
-
Thanks Jim, highlighting selections works just fine ... so this leads me to believe that with help and time I just might manage the rest. This video called "Hidden components" http://www.youtube.com/watch?v=fso03-LFXTQ shows what I want to achieve, but by using the nameset interface to explore and/or manipulate the display.
At the risk of repeating myself too often, I am not trying to outsmart the Sketchup people nor anyone come to that; I just want to automate all tasks that relate to names of things that exist or are planned to exist in the world with a common set of records and non-propietary software (HTML).
It seems to me that nested components are at the heart of my current adventure. Is that so? And, if so, do you have any pointers to help unravel what appears to me a complex tangle of funny words.
Thanks
Chris
PS Yes Jim, at the moment they are all top level instances. Only the names are structured in a hierarchy.
-
Hi Chris,
Thanks for inviting me to this thread. I think I understand what you are trying to accomplish with Namesets and why it would be so powerful. I made the video you referred to about Hidden Components displaying what you want to do.
@chrisglasier said:
This video called "Hidden components" http://www.youtube.com/watch?v=fso03-LFXTQ shows what I want to achieve
I use a complex nested structure of components, groups, layers, and scenes to organize my models. The problem is, the proper way to do it, is not intuitive.
Most people try organize their models with Layers like they do in other programs. It's not the easiest but you can do a pretty good job if you take long enough. However, SketchUp cannot use layers the same way other programs do because a layer is inherently 2d. Sketchup is 3D. Soon, you will start running into issues. One big problem I had all the time when I used to do it this way was somehow half of an objects geometry would be on one layer and the other half would be on a different layer. I wouldn't know this until much later and by then it was an extreme pain to clean it all up. In fact, it was often such a daunting task, I wouldn't even embark on it. I would stop working on that model and the idea would fade away. This is not what we want. So forget about just layers and start thinking about Namesets.
Imagine getting rid of all that frustration by doing it the right way from the very beginning. Quickly and easily. Namesets would provide an intuitive way to do just that. A graphical representation of the nested entities within your model would make it infinitely easier to do almost anything. Think of it as the Outliner on steroids. Yes, it is true you can accomplish everything Namesets wants to do already (see my video), but Namesets will make working the right way a pleasure for everyone novice to advanced.
As you can see, I'm already sold on the idea and I can't wait to help out. So to start off I'd like to give you an idea of how my model in the video is structured. This is a VERY simplified version.
http://picasaweb.google.com/manofskill/SketchyQuestions/photo#5230577631695351346
At the 'bottom' I have geometry which will be repeated in components and geometry which will not be repeated in groups. I usually group like components as I have displayed here. Then I made a meaningful group containing other groups. Then I use layers to control multiple groups. And finally I use scenes to control things like sections, styles, and multiple layers. It is basically your 'bag within a bag within a bag which holds only one kind of marble' idea.
As a real world example, in the kitchen in the the video, I have everything in components. I grouped some of the components together. Things like the refrigerator and table with chairs and cabinets are all interior objects so they make a fine group. The floor and walls make their own group and sub-groups too. So, basically, group components which 'go together.' I made a video to explain this better here:
http://sketchyquestions.blogspot.com/2008/08/sketchup-model-structure.html
Wouldn't it be nice if this was easier and looked better. Maybe little pictures to accompany the text. Maybe something more than just a plain menu. Even the interface I saw in your Namesets demo video looks far better than the Outliner. Editing, exploring, and displaying geometry is amazingly easy once you set your model up correctly. The only problem is its too damn hard to structure it properly. Namesets will solve this problem.
I can't wait till I have a user friendly graphical way to easily structure my model. I can't wait to use Namesets! Let's get this project rolling!
ManOfSkill
http://SketchyQuestions.blogspot.com -
Chris,
You can create nested Groups by using add_group to another Group's entities. Here is a screenshot of a model and the code that made it.
-
Thanks Jim.
One aspect of designing Namesets as a kind of remote control is highlighting the components or groupings in the display. So, in your example, you can highlight the group, but as far as I can see to highlight parts of the group you need to explode it. If that is true, maybe I would be better off keeping with just top level components highlighting them individually in the way you showed me before.
Maybe I am just thinking aloud - but if you have any pearls of wisdom I would be pleased to have them.
My regards
Chris
-
@manofskill said:
Thanks for inviting me to this thread. I think I understand what you are trying to accomplish with Namesets and why it would be so powerful ...
Your reaction, very welcome of course, took me by surprise, so please give me some time to think about what's what, ... and for others to register an interest?
Kind regards
Chris
-
If you double click the group, then you 'go into' that group. Now you can select the individual groups within. So you don't have to explode everything, just double click till you get to the geometry you wanted.
But I'm not sure how you would simulate a double click in ruby.
ManOfSkill
http://SketchyQuestions.blogspot.com -
@manofskill said:
But I'm not sure how you would simulate a double click in ruby.
There's the rub!Chris
-
@chrisglasier said:
There's the rub!Chris
HaHa! That's a funny pun!
Anyways, is there a dedicated ruby expert willing to take these sort of questions? I don't want to assume anything of Jim.
ManOfSkill
http://SketchyQuestions.blogspot.com -
facer sent me a PM, some of which he said I could post here:
@unknownuser said:
Chris,
Industry Foundation Classes (IFC's) are the building blocks for products in CAD programmes.
Do your "Namesets" have any link or connection with IFC's that are
used by these CAD programmes?Leading lights in the Architectural World like Paul Seletsky of SOM and Kimon Onuma of Onuma Inc often refer to diagrams - see http://www.aecbytes.com/viewpoint/2008/issue_37.html and https://www.onuma.com/products/ - that show data passed back and forth between Excel spreadsheets and IFCs. Namesets is a modern automated alternative to spreadsheets and so in this sense it has similar links.
But a nameset is a model rather than a digital version of a ledger and therefore fits more naturally. Each name represents something physical (as with IFCs), and exists to receive or report data from various people who have an interest in it - owner, designer, authority, manufacturer, builder, user, cleaner and on and on. There is no requirement to think about files, sheets, columns and rows, formulae, CSVs, cut and paste ...
We would welcome your support in the further development of namesets.
Chris
-
facer sent me a PM, some of which he said I could post here:
@unknownuser said:
Chris,
Industry Foundation Classes (IFC's) are the building blocks for products in CAD programmes.
Do your "Namesets" have any link or connection with IFC's that are
used by these CAD programmes?Leading lights in the Architectural World like Paul Seletsky of SOM and Kimon Onuma of Onuma Inc often refer to diagrams - see http://www.aecbytes.com/viewpoint/2008/issue_37.html and https://www.onuma.com/products/ - that show data passed back and forth between Excel spreadsheets and IFCs. Namesets is a modern automated alternative to spreadsheets and so in this sense it has similar links.
But a nameset is a model rather than a digital version of a ledger and therefore fits more naturally. Each name represents something physical (as with IFCs), and exists to receive or report data from various people who have an interest in it - owner, designer, authority, manufacturer, builder, user, cleaner and on and on. There is no requirement to think about files, sheets, columns and rows, formulae, CSVs, cut and paste ...
We would welcome your support in the further development of namesets.
Chris
-
It would be nice if you can clearly and simply explain what is the problem your solution solves.
Components are organised in standard component libraries - your solution adds an additional hierarchy tree to organise components ? which "type" of sketchup user benefits the most from this add on ?Other 3D CAD tools have extensive RDBMS systems linked to them, decades old legacy and enrichment. Sketchup came very late to this party and it will not compete with the old monsters.
The key might be identifying an existing one specific "type" of a sketchup niche user and tailoring your solution for his way of workflow - not airplanes design, archeology maybe ?Moris
-
@morisdov said:
It would be nice if you can clearly and simply explain what is the problem your solution solves.
Well I will try but maybe you don't see the problem as a problem!
What you are doing is helping Sketchup modelers, what I am trying to do is to help John and Jane use Sketchup models to ease their daily toil (an idea relevant to this forum and good for modellers I think).
At http://www.ted.com/index.php/talks/kevin_kelly_on_the_next_5_000_days_of_the_web.html Kevin Kelly explains that the Web used to be about linking computers, now it is linking pages but it is gradually restructuring to link data. Data belongs to physical things. And physical things can be represented by models.
Not everyone needs models to do their work, but generally models are helpful, essential in a design where nothing else but a site and ideas exist. Ideas for things like baths can be represented by nouns, their generic names but they only become recognisably unique and useful when they have an address and some functionality; that is what a nameset gives them.
If you believe data linking is the future (consider where Google is going before dismissing) then data must be accessible to all. In this case, it is crazy to enter a value in the VCP, if the only way to extract it is by using an exporter and passing it to "die" (unclickable) in an Excel cell. What would be good is a Sketchup method to trap such data and store it directly in plain text so that it can be automated to link up with other data on the Web, for example, a building design stored essentially as links to building products + their xyz's.
@morisdov said:
Components are organised in standard component libraries - your solution adds an [color=#008080][b]additional hierarchy tree to organise components ?
A nameset does not add anything to Sketchup except the dialog with a few callbacks. It provides its own separate hierarchies by assembling names associated with specific tasks (one of Gaieus' digs perhaps). The association can be physical, temporal and so on, or a combination as a nameset can have devices to link and cross link. If the association is physical, the names can be used to pick up models and position them, if temporal the models can be animated.
@morisdov said:
Other 3D CAD tools have extensive RDBMS systems linked to them, decades old legacy and enrichment. Sketchup came very late to this party and it will not compete with the old monsters.
Gee come on. This sounds like the senator who raved that man would not enter space until the next century (the year before Gagarin did), or the "toy" personal computer and monster mainframe, or hundreds of others similar. I never imagined you as a stick-in-the-mud.
Please don't take offense, I am happy to discuss such things with you
Chris
Advertisement