Attributes - Export / Create More / Linking with Database ?
-
TIG,
I've tried out your Component Reporter - Works Pretty Well (also VERY fast).
I do, however, have a couple of requests.....If you have time, could you expand the CSV to include the following fields:
Layer
Name
Definition Name
Material(ie Colour)
... If Poss ...
SU Geometry ID No (if it exists) ~ Acad Handle
Any other useful attributes
...................................
Currently the Name field in the CSV is actually what the Entity Info Dialog Box calls the Definition Name. It would be good to have these the same for consistancy.
...
Regards
Howard Leslie -
@unknownuser said:
TIG,
I've tried out your Component Reporter - Works Pretty Well (also VERY fast).
I do, however, have a couple of requests.....
If you have time, could you expand the CSV to include the following fields:
Layer
Name
Definition Name
Material(ie Colour)
... If Poss ...
SU Geometry ID No (if it exists) ~ Acad Handle
Any other useful attributes
...................................
Currently the Name field in the CSV is actually what the Entity Info Dialog Box calls the Definition Name. It would be good to have these the same for consistency.
...
Regards
Howard LeslieSomething like this ?
http://www.sketchucation.com/forums/scf/viewtopic.php?f=153&t=1524 -
TIG,
Thank you very much for updating your ComponentReporter Script - it's really good.
Hugely appreciated.
Adding the extra fields is brilliant - this is so useful.
The only other adjustment you could make to the script would be to make the script report out all geometry (by default) - as now.
HOWEVER,
If you make a selection, then only the selected items will be reported upon.
The above is really a nice to have (if you had time)- it's not essential.
Thanks once again for modifying yor script.
Regards
Howard Leslie -
@unknownuser said:
TIG,
Thank you very much for updating your ComponentReporter Script - it's really good.
Hugely appreciated.
Adding the extra fields is brilliant - this is so useful.
The only other adjustment you could make to the script would be to make the script report out all geometry (by default) - as now.
HOWEVER,
If you make a selection, then only the selected items will be reported upon.
The above is really a nice to have (if you had time)- it's not essential.
Thanks once again for modifying yor script.
Regards
Howard LeslieI think this is what you want ?
http://www.sketchucation.com/forums/scf/viewtopic.php?p=6684#p6684
(v1.1)http://www.sketchucation.com/forums/scf/viewtopic.php?p=6684#p6684
-
TIG,
V 1.1 really is excellent.
It's extremely useful being able to run this script on a selection from a model.
I think many people will find this script useful
For an example see:
viewtopic.php?f=22&t=3429
(your script could now be in Siberia !!!)
...
Currently I'm running the script on a model containing many components.
Originally some of these components were contained within other components (nested) others were grouped together.
...
I found that the script does not drill down into nested components or grouped components.
Not a huge problem as a workaround is to explode the larger components and groups.
However, would it ever be possible to have the script drill down into more complex (nested) components and groups to get at the buried ones ???
...
Thanks once again for all your help
Regards
Howard Leslie -
I wrote this Outliner exporter for a specific purpose, but it may be of use to someone.
http://sketchuptips.blogspot.com/2007/10/plugin-export-outliner.html
-
@unknownuser said:
TIG,
V 1.1 really is excellent.
It's extremely useful being able to run this script on a selection from a model.
I think many people will find this script useful
For an example see:
http://www.sketchucation.com/scf/viewtopic.php?f=22&t=3429
(your script could now be in Siberia !!!)
...
Currently I'm running the script on a model containing many components.
Originally some of these components were contained within other components (nested) others were grouped together.
...
I found that the script does not drill down into nested components or grouped components.
Not a huge problem as a workaround is to explode the larger components and groups.***
However, would it ever be possible to have the script drill down into more complex (nested) components and groups to get at the buried ones ???
...
Thanks once again for all your help
Regards
Howard LeslieThe script first reports ALL component definitions and how many times they are placed/used, of course this might include components nested inside other components etc. It then makes a report of all placed Instances that are accessible directly within the model. An alternative is to select a collection of objects containing some instances and it'll offer the option of reporting just on those.
***No need to explode anything... IF you have component instances inside groups or within other components then you can simply edit that group/component and select all - you then run the script and will get the chance to make a report of just the instances in that selection.
It COULD mine down into all component instances definition or groups and report on the internal bits... but you have to stop somewhere. Simply clicking the group/component to edit and Ctrl+A to select all before running it will give you a list of what instances are there...
I have previously made 'group_miner.rb' that does just that iterative delving into nested things BUT unless there's a massive clamour for it I won't be adjusting this script immediately...
-
I decided that adding the 'mining' ability wasn't too hard... so here's v1.2
http://www.sketchucation.com/forums/scf/viewtopic.php?p=6685#p6685
You now get the chance to 'mine' down through nested-groups/components to get a report on all instances found - either 'all' or in an initial selection.
-
I am getting an error message. There is a conflict with RpTools.
@unknownuser said:
C:/Program Files/Render Plus Systems/RpTools/test-Component+Report.csv NOT available for writing (it might be open) !
Exiting...RpTools puts a menu item called Model Report in the Tools menu. It offers the option to create a text or Excel file. The file is saved in the program file. The file it creates is called test_report.txt (or csv).
This error message occurs whether or not I used Model Report to create a file.
-
TIG,
Thanks for putting this mining ability into the Reporting Tool.
However, I'm also getting a similar error message to the one described by gata
(see attached)
...
Regards
Howard L' -
@unknownuser said:
TIG,
Thanks for putting this mining ability into the Reporting Tool.
However, I'm also getting a similar error message to the one described by gata
(see attached)
...
Regards
Howard L'Well at least you are getting that error !!! - I've been trying to get it for some time - without success ! It's not a clash with other scripts (I think) - where was the 'test' skp saved ?
I added an extra bit in when I made the 'miner' that tries to check if the report file is open before you start to write to it. For example you make a report and open it, you leave it open and try to make a second report - this time it can't write to the file since you already have it open in another program. It fails dumping errors into the Ruby Console. I've tried to trap this in an error message - with little success.
Here's v1.3 that has that part disabled till I get it going better. Meanwhile it works as advertised. IF it doesn't end with the closing message saying what it's written where then chances are it's failing because the older report is still open and you forgot to close it...
http://www.sketchucation.com/forums/scf/viewtopic.php?p=6686#p6686
-
I'm getting your files now - in C:\Program Files\Render Plus Systems\RpTools
RpTools reports go to the same directory. Their files are named test_report.txt (and csv).
No error messages appear in the Ruby console.
I did not get a closing saying the files were written - even the first time I successfully tried it here. I had opened the files in Excel to see how they look (had to move over the column a bit) then closed Excel.
I ran your script a second time and still did not get the closing message. The only message I get is one saying it will save the files to the RpTools directory.
XP Pro, SP2.
-
@gata said:
I'm getting your files now - in C:\Program Files\Render Plus Systems\RpTools
RpTools reports go to the same directory. Their files are named test_report.txt (and csv).
No error messages appear in the Ruby console.
I did not get a closing saying the files were written - even the first time I successfully tried it here. I had opened the files in Excel to see how they look (had to move over the column a bit) then closed Excel.
I ran your script a second time and still did not get the closing message. The only message I get is one saying it will save the files to the RpTools directory.
XP Pro, SP2.
The older/simpler ComponentReporter.rb made a csv [comma] and a txt [tab] file, BUT that went into the model's folder and were named as the ModelName-ComponentReport.XXX
The new version only makes the csv file and has a '+' sign after Component in the file name. Clearly what you are running isn't my script. I don't have the RpTools so I don't know what they do. If there is 'Class' clash it might cause my menu item to run something in their script...
To test this make a backup copy of my ComponentReporter+.rb script, open the original in Notepad [or another plain text editor BUT NOT a word-processor !]. Find and replace Reporter (which is the Class) with say ReporterPlus for every instance thus:
...
class Reporter >>> class ReporterPlus
...
def Reporter::components_plus >>> def ReporterPlus::components_plus
...
def Reporter::miner(ents) >>> def ReporterPlus::miner(ents)
...
xlist=Reporter.miner(elist) >>> xlist=ReporterPlus.miner(elist)
...
full_list=Reporter.miner(all_list) >>> full_list=ReporterPlus.miner(all_list)
...
UI.menu("Plugins").add_item("Component+ Report"){Reporter.components_plus} >>> UI.menu("Plugins").add_item("Component+ Report [TIG]"){ReporterPlus.components_plus}
...
Note when you scroll to near the end and find the menu string - you should add something onto the text like [TIG]. Save the file and re-run.
You should now get an item in the Plugins menu with the [TIG] in itthat runs my script alone... -
TIG, I made all your edits and still get your csv files in RpTools directory.
I used to have the old ComponentReporter.rb, but renamed it with TXT then removed it from the Plugin directory altogether.
And I forgot, RpTools Model Report does produce an announcement message after its file is created whereas your plugin only announces where the file will go.
-
TIG / Jim,
Thanks very much for all your hard work and time spent on writing these scripts.
They are both very useful
...
TIG,
ComponentReporter+V 1.1
I'm finding that this runs no problem. (but no mining ability).V 1.2
I'm not sure what the V1.2 error message refers to either, as I did not have any existing *.csv file open when I ran the script - that was actually the first thing I checked.
...
V 1.3
I'm finding that this runs OK. NO error messages.
I'm finding that it mines down into the Model - 1 Level of nesting.
...
The ultimate version of this script would mine down to drag out all components from the whole model - however deep they are nested inside groups / other components. Is this possible ??? - it would be brilliant if you could implement this.
...
I'm using the V 1.1 of the script until then as the model I'm working on has been exploded down somewhat and the script runs really well.
...
Thanks once again to both of you.
Regards
Howard Leslie -
@gata said:
TIG, I made all your edits and still get your csv files in RpTools directory.
I used to have the old ComponentReporter.rb, but renamed it with TXT then removed it from the Plugin directory altogether.
And I forgot, RpTools Model Report does produce an announcement message after its file is created whereas your plugin only announces where the file will go.
Seems like RpTools is screwing up the model's folder-path which is what my script uses so as to know where to save the model's reports. It's clear from you screen-shot that your model 'gata' isn't in the RpTools reports folder.
Please copy and paste the following into the Ruby Console and publish what is given.
First:
Sketchup.active_model.title
This should given the model name without the .skp extension - e.g. 'gata'Second:
mpath=Dir::pwd
This is your working directory, and should normally be the model's folder - I suspect that RpTools is changing this to suit itself.Third:
Sketchup.active_model.path
Check that RpTools doesn't mess with this...
This is the model's folder - I will change my script to use this by default. -
Rptools does a Dir.chdir before loading a Ruby Extension DLL. (This causes the DLL to search for other DLL's is uses in its own path.)
It should have changed the folder back after loading the DLL, but somehow the line:
Dir.chdir(scur_folder)
got lost.
I will put it back for future versions of RpTools.
However, there may be other Ruby scripts, or other activities which change the current folder. So it might be a good idea to have ComponentReporter.rb specify a specific folder to save the file into.
- You could grab a copy of the current directory when ComponentReporter.rb first loads with: (ComponentsReporter.rb will load before RpTools_loader.rb because it comes first alphabetically)
$srpc_cur_folder = Dir.getwd
and then reset the folder before saving the file with
Dir.chdir($srpc_cur_folder)
or add the folder name to the .CSV file name before saving it.
- You should be able to get the Windows My Documents folder with code along the lines of:
require "Win32API" # you would have to put Win32API into the SketchUp Tools folder SHGetSpecialFolderPath = Win32API.new('shell32', 'SHGetSpecialFolderPath', 'LPLL','L') my_docs_folder = " "*512 # build buffer for file name CSIDL_MYDOCUMENTS = 0x000c SHGetSpecialFolderPath.call(0, my_docs_folder, CSIDL_MYDOCUMENTS, 0)
But I wasn't quite able to get this to work. I wound up writing a ruby DLL to fetch the path of the current folder.
-
Ruby console results.
This file contains my kitty and other creatures. Nesting of groups and components is necessary in part to avoid inadvertently selecting and working on the wrong geometry and parts. Day job typically involves all milwork/woodwork for homes with 20' ceilings and 12 air conditioners. Some elements do get hand sculpting.
This deep mining accounting stuff could be useful to help manage stuff.
-
I've rewritten the Component+Reporter to get the model's directory another way, which then avoids any such problems.
Miner now goes all the way...
Also took the chance to trap for commas in the names into ';' otherwise = messed up .csv files. Although it allowed, it's still best to avoid commas in Component, Group and Layer names.
Also made a 3rd report on 'parentage' a la Outliner...
Also sorted out the File Already Open Error...
v1.4 is here: http://www.sketchucation.com/forums/scf/viewtopic.php?p=6687#p6687
-
TIG, Your files go to the right directory now No message that the files were completed though - if you still coded for that.
It might be more useful if your three files were three pages in one Excel document.
I noticed that you cannot save adjusted column widths in the csv format. Interesting. I suppose such limitations disallows pages in csv too.
Also, area doesn't have units listed.
Advertisement