I wanted to share a workflow discovery after a lot of real-world testing with SketchUp Dynamic Components and attribute-driven estimating/takeoff systems.
I’ve been building a fairly advanced material reporting workflow using:
-
Dynamic Component attributes
-
LenX / LenY formulas
-
SqFt and LnFt calculations
-
scalable framing/sheathing components
During testing I kept running into inconsistent behavior when:
-
copying already-scaled instances
-
repeatedly modifying copied components
-
daisy-chaining modified copies
-
scaling components externally
-
mixing Make Unique workflows with scaling workflows
The biggest issue was:
attribute values such as:
LenX/12
(LenX*LenY)/144
would sometimes stop behaving predictably between different component copies/instances.
At first I thought:
-
axes were wrong
-
formulas were broken
-
Make Unique was required every time
But after much more testing, I think I finally narrowed down a stable workflow.
MY CURRENT WORKFLOW
I now maintain untouched MASTER SOURCE components and ONLY pull fresh working instances from those masters.
Examples:
MASTER_7-16_OSB_DO_NOT_MODIFY
MASTER_3-4_TG_ROOF_DECK_DO_NOT_MODIFY
MASTER_2X8_RAFTER_DO_NOT_MODIFY
MASTER_F5_DRIP_EDGE_DO_NOT_MODIFY
I keep them on a dedicated tag/layer:
00_MASTER_COMPONENTS
Workflow:
MASTER SOURCE
→ copy fresh instance from MASTER
→ scale/edit working instance
→ only Make Unique if geometry fundamentally changes
Examples where I WOULD Make Unique:
-
birdsmouth cuts
-
special joinery
-
holes
-
geometry changes
-
custom profiles
Examples where I DO NOT Make Unique:
-
simple length changes
-
standard scaled framing members
-
standard sheathing panels
MOST IMPORTANT DISCOVERY
The biggest thing I found is:
DO NOT continue copying already-modified or already-scaled instances if you want stable attribute reporting.
It appears SketchUp/Dynamic Components internally track:
-
component definitions
-
instance transforms
-
redraw/cache behavior
-
possibly definition precedence/order
in ways that can eventually cause inconsistent attribute behavior when daisy-chaining modified copies.
Once I switched to:
-
untouched masters
-
fresh copied instances only
-
disciplined scaling workflow
my SqFt / LnFt reporting became MUCH more stable and repeatable.
ANOTHER IMPORTANT OBSERVATION
It also appears there may be some relationship between:
-
original component definition state
-
first inserted definition behavior
-
instance scaling transforms
-
redraw/update order
I found forum discussions mentioning:
“the first placed definition will have precedence”
which seems VERY related to what I was seeing during testing.
QUESTIONS FOR ADVANCED USERS / DEVELOPERS
-
How exactly are LenX / LenY formulas evaluated internally?
-
definition dimensions?
-
transformed instance dimensions?
-
cached redraw states?
-
-
Is there known Dynamic Component behavior related to:
-
first inserted definitions
-
instance precedence
-
redraw propagation
-
scaling inheritance?
-
-
Is maintaining untouched MASTER SOURCE components considered best practice for stable DC reporting workflows?
-
Has anyone else experienced:
-
inconsistent LenX/LenY reporting
-
unstable SqFt/LnFt formulas
-
scaling propagation issues
-
copied-instance corruption behavior?
-
-
Is there any reliable way to identify the original source instance of a component definition after the model has evolved?
FINAL TAKEAWAY
For anyone building attribute-driven estimating workflows in SketchUp:
Keep untouched MASTER components.
Always pull fresh instances from the MASTER.
Avoid daisy-chaining modified copies.
Only Make Unique when geometry truly diverges.
This has dramatically improved stability and predictability in my reporting workflow.
I’d really appreciate hearing from advanced Dynamic Component users, Ruby developers, or anyone building similar estimating/takeoff systems.
Thanks
Richard P.
