Is there a way to get a spreadsheet from dynamic components.
For example, can I extract the X,Y,Z coordinates (or other attributes) of all instances of a particular dynamic component?
Can it go both ways? i.e. back in to the sketchup file?
Huck
Is there a way to get a spreadsheet from dynamic components.
For example, can I extract the X,Y,Z coordinates (or other attributes) of all instances of a particular dynamic component?
Can it go both ways? i.e. back in to the sketchup file?
Huck
Hi Huck,
Generating an Attribute Report â SketchUp Help (This is a Pro only feature.)
Thanks.
Worked beautifully. Generate Report gives the option to immediately open with Excel.
There is a plugin for this. I cannot renember the name if it. But google excel for sketchup. The guy who is working on it is a french fellow. It controls your sketchup model from excel and visa versa
I needed to generate a report that contained all of the attributes in a dynamic component so that I could see all the formulas, not just the values. Garry K, a plugin developer over at the SketchUcation site suggested the following to be run from the Ruby Console window:
model = Sketchup.active_model
definitions = model.definitions
definitions.each{ |defs|
dicts = defs.attribute_dictionaries()
next if dicts == nil
dicts.each{ |dict|
next if dict.name != âdynamic_attributesâ
puts ââ, âdictionary: #{dict.name}, definition #{defs.name}â
dict.each_pair{ |key, value|
puts âkey: #{key}, value: #{value}â
}
}
}
A portion of the output looks like this:
dictionary: dynamic_attributes, definition Group#5
key: _formatversion, value: 1.0
key: _has_movetool_behaviors, value: 0.0
key: _hasbehaviors, value: 1.0
key: _inst___iscollapsed_access, value:
key: _inst___iscollapsed_formlabel, value:
key: _inst___iscollapsed_formula, value:
key: _inst___iscollapsed_formulaunits, value:
key: _inst___iscollapsed_label, value:
key: _inst___iscollapsed_options, value:
key: _inst___iscollapsed_units, value:
key: _inst__iscollapsed, value: false
key: _lastmodified, value: 2015-10-10 14:36
key: _lengthunits, value: INCHES
key: _lenx_error, value: 0.032258"
key: _lenx_formula, value: 0.032258"
key: _lenx_label, value: LenX
key: _leny_error, value: 3
key: _leny_formula, value: 3
key: _leny_label, value: LenY
key: _lenz_label, value: LenZ
key: _name, value: Group#5
key: lenx, value: 0.032258
key: leny, value: 3.0
key: lenz, value: 75.0
dictionary: dynamic_attributes, definition Group#1
key: _formatversion, value: 1.0
key: _has_movetool_behaviors, value: 0.0
key: _hasbehaviors, value: 1.0
key: _lastmodified, value: 2015-10-11 23:33
key: _lenx_error, value: 4"
key: _lenx_formula, value: 4"
key: _lenx_label, value: LenX
key: _leny_error, value: 0.0625"
key: _leny_formula, value: 0.0625"
key: _leny_label, value: LenY
key: _lenz_error, value: 3"
key: _lenz_formula, value: 3"
key: _lenz_label, value: LenZ
key: _onclick_label, value: onClick
key: lenx, value: 4.0
key: leny, value: 0.0625
key: lenz, value: 3.0
key: onclick, value: SET(âBlade!materialâ,âMyWhiteâ,âMyBeigeâ,âMyBlackâ,âMyBlueâ,âMyBrownâ,âMyBrown1â,âMyCharcoalâ,âMyDarkBrownâ,âMyDodgerBlueâ,âMyGreenâ,âMyHotPinkâ,âMyJeanBlueâ,âMyPurpleâ,âMyRedâ,âMyTanâ,âMyTealâ,âMyYellowâ,âMy_Translucent_Glass_Blueâ,âMy_Translucent_Glass_Grayâ)
dictionary: dynamic_attributes, definition Valence
key: _formatversion, value: 1.0
key: _has_movetool_behaviors, value: 1.0
key: _hasbehaviors, value: 1.0
key: _inst__x_access, value:
key: _inst__x_formlabel, value:
key: _inst__x_formula, value: 0
key: _inst__x_formulaunits, value:
key: _inst__x_label, value: X
key: _inst__x_options, value:
key: _inst__x_units, value:
key: _inst__y_access, value:
key: _inst__y_formlabel, value:
key: _inst__y_formula, value:
key: _inst__y_formulaunits, value:
key: _inst__y_label, value: Y
key: _inst__y_options, value:
key: _inst__y_units, value:
key: _inst_x, value: 0.0
key: _inst_y, value: 0.0
key: _lastmodified, value: 2015-10-12 11:07
key: _lengthunits, value: INCHES
key: _lenx_error, value: 4.125"
key: _lenx_formula, value: 4.125"
key: _lenx_label, value: LenX
key: _leny_error, value: 24.0
key: _leny_formula, value: Vertical Blinds!LenY
key: _leny_label, value: LenY
key: _lenz_error, value: 3.0625"
key: _lenz_formula, value: 3.0625"
key: _lenz_label, value: LenZ
key: _name, value: Valance
key: _onclick_label, value: onClick
key: lenx, value: 4.125
key: leny, value: 24.0
key: lenz, value: 3.0625
key: onclick, value: animateslow(âBlade!Placementâ,.5,3)
dictionary: dynamic_attributes, definition Blade#2
key: _copies_formula, value: (Valance!LenY)/(LenY+Spacing)-1
key: _copies_label, value: Copies
key: _formatversion, value: 1.0
key: _has_movetool_behaviors, value: 1.0
key: _hasbehaviors, value: 1.0
key: _inst__copies_access, value:
key: _inst__copies_formlabel, value:
key: _inst__copies_formula, value: (Valance!LenY)/(LenY+Spacing)-1
key: _inst__copies_formulaunits, value:
key: _inst__copies_label, value: Copies
key: _inst__copies_options, value:
key: _inst__copies_units, value:
key: _inst__rotz_access, value:
key: _inst__rotz_formlabel, value:
key: _inst__rotz_formula, value: 0+Blade!rotator
key: _inst__rotz_formulaunits, value:
key: _inst__rotz_label, value: RotZ
key: _inst__rotz_options, value:
key: _inst__rotz_units, value:
key: _inst__y_access, value:
key: _inst__y_formlabel, value:
key: _inst__y_formula, value: If(COPY<1,Valance!Y+((LenY-Spacing)/2)+(COPY*(Placement)),(Valance!Y+(LenY+Spacing)/2)+(COPY*(Placement)))
key: _inst__y_formulaunits, value:
key: _inst__y_label, value: Y
key: _inst__y_options, value:
key: _inst__y_units, value:
key: _inst_copies, value: 7.0
key: _inst_rotz, value: 2.0
key: _inst_y, value: 2.0
key: _lastmodified, value: 2015-10-11 16:35
key: _lengthunits, value: INCHES
key: _lenx_error, value: 0.09375"
key: _lenx_formula, value: 0.09375"
key: _lenx_label, value: LenX
key: _lenx_nominal, value: 0.03225800000000013
key: _leny_error, value: 3.5
key: _leny_formula, value: 3.5
key: _leny_label, value: LenY
key: _leny_nominal, value: 3.0
key: _lenz_label, value: LenZ
key: _lenz_nominal, value: 81.35250789196772
key: _material_formula, value:
key: _name, value: Blade
key: _onclick_label, value: onClick
key: _onclick_state1, value: 9
key: _open_error, value: 0
key: _open_formula, value: If(rotator>0,0,1)
key: _open_formulaunits, value: STRING
key: _open_label, value: Open
key: _placement_formula, value:
key: _placement_formulaunits, value: STRING
key: _placement_label, value: Placement
key: _rotator_formula, value:
key: _rotator_label, value: Rotator
key: _rotz_error, value: 0+2
key: _rotz_formula, value: 0+Blade!rotator
key: _rotz_label, value: RotZ
key: _spacing_error, value: 0±.5
key: _spacing_formula, value: -.5
key: _spacing_label, value: Spacing
key: _x_label, value: X
key: _y_error, value: 2.0
key: _y_formula, value: If(COPY<1,Valance!Y+((LenY-Spacing)/2)+(COPY*(Placement)),(Valance!Y+(LenY+Spacing)/2)+(COPY*(Placement)))
key: _y_label, value: Y
key: _z_label, value: Z
key: lenx, value: 0.09375
key: leny, value: 3.5
key: lenz, value: 81.35250789196772
key: material, value: MyGreen
key: onclick, value: animateslow(âBlade!Rotatorâ,2,90)
key: open, value: 0
key: placement, value: 3
key: rotator, value: 2
key: spacing, value: -0.5
If you want to play with it, the component can be found in the 3D Warehouse here: Vertical Blinds (Animated & Scalable). Itâs one of my first efforts, so its really not all that.