As I said at the beginning:
But the new component inserted does not respond, it should redraw by adjusting to the copied values. Because it does not work?
Look at the code, do not judge me badly, I’m a beginner.
model = Sketchup.active_model
definitions = model.definitions
entities = model.active_entities
path = Sketchup.find_support_file "../../../../../../Dropbox/Modelos Dinâmicos Sketchup/Laterais/Lateral.skp", "Components"
component = definitions.load path
sel = model.selection
model.start_operation("X")
#Método buscar componentes com modelocategoria e trocar
def get_dc_instances_replace(ents,component)
ents.grep(Sketchup::ComponentInstance).each do |e|
attribut = e.get_attribute 'dynamic_attributes','modelocategoria'
unless attribut.nil?
if attribut.include?("portas")
x = e.get_attribute 'dynamic_attributes', '_x_formula', ''.to_f
y = e.get_attribute 'dynamic_attributes', '_y_formula', ''.to_f
z = e.get_attribute 'dynamic_attributes', '_z_formula', ''.to_f
lenx = e.definition.get_attribute 'dynamic_attributes', '_lenx_formula', ''.to_f
leny = e.definition.get_attribute 'dynamic_attributes', '_leny_formula', ''.to_f
lenz = e.definition.get_attribute 'dynamic_attributes', '_lenz_formula', ''.to_f
rotx = e.get_attribute 'dynamic_attributes', '_rotx_formula', ''.to_f
roty = e.get_attribute 'dynamic_attributes', '_roty_formula', ''.to_f
rotz = e.get_attribute 'dynamic_attributes', '_rotz_formula', ''.to_f
mat = e.get_attribute 'dynamic_attributes', '_material_formula' ''.to_s
modcat = e.get_attribute 'dynamic_attributes', 'modelocategoria', ''.to_s
# Adicionar componentes
transformation = Geom::Transformation.new([0,0,0])
componentinstance = ents.add_instance(component, transformation)
componentinstance.make_unique
componentinstance.set_attribute 'dynamic_attributes','_x_formula', x
componentinstance.set_attribute 'dynamic_attributes','_y_formula', y
componentinstance.set_attribute 'dynamic_attributes','_z_formula', z
componentinstance.set_attribute 'dynamic_attributes','_lenx_formula', lenx
componentinstance.set_attribute 'dynamic_attributes','_leny_formula', leny
componentinstance.set_attribute 'dynamic_attributes','_lenz_formula', lenz
componentinstance.set_attribute 'dynamic_attributes','_rotx_formula', rotx
componentinstance.set_attribute 'dynamic_attributes','_roty_formula', roty
componentinstance.set_attribute 'dynamic_attributes','rotz', ''
componentinstance.set_attribute 'dynamic_attributes','_rotz_formula', rotz
componentinstance.set_attribute 'dynamic_attributes','_material_formula', mat
componentinstance.set_attribute 'dynamic_attributes','modelocategoria', modcat
$dc_observers.get_latest_class.redraw(e)
end
end
get_dc_instances_replace(e.definition.entities,component)
end
end
get_dc_instances_replace(sel,component)
model.commit_operation
#