Compare commits
7 Commits
2.13.0-rc13
...
2.13.1
| Author | SHA1 | Date | |
|---|---|---|---|
| 4222b1721d | |||
| b475bc96af | |||
| f9ac7319ae | |||
| 2ce3e9150f | |||
| 8e39832d3e | |||
| ce7ac6da16 | |||
| 57879a57cd |
@@ -11,6 +11,7 @@ module SpeckleConnector
|
||||
OBJECTS_GEOMETRY_BREP = 'Objects.Geometry.Brep'
|
||||
|
||||
OBJECTS_OTHER_BLOCKINSTANCE = 'Objects.Other.BlockInstance'
|
||||
OBJECTS_OTHER_BLOCKINSTANCE_FULL = 'Objects.Other.Instance:Objects.Other.BlockInstance'
|
||||
OBJECTS_OTHER_INSTANCE = 'Objects.Other.Instance:Objects.Other.Instance'
|
||||
OBJECTS_OTHER_REVIT_REVITINSTANCE = 'Objects.Other.Revit.RevitInstance'
|
||||
OBJECTS_OTHER_BLOCKDEFINITION = 'Objects.Other.BlockDefinition'
|
||||
|
||||
@@ -55,6 +55,7 @@ module SpeckleConnector
|
||||
Objects.Other.Revit.RevitInstance
|
||||
Objects.Other.BlockDefinition
|
||||
Objects.Other.RenderMaterial
|
||||
Objects.Other.Instance:Objects.Other.BlockInstance
|
||||
].freeze
|
||||
|
||||
def from_revit
|
||||
@@ -184,26 +185,6 @@ module SpeckleConnector
|
||||
create_folder_layers(folder_layer_arrays, folder)
|
||||
end
|
||||
|
||||
# @param page [Sketchup::Page] scene to update -update properties-
|
||||
def set_page_update_properties(page, update_properties)
|
||||
update_properties.each do |prop, value|
|
||||
page.instance_variable_set(:"@#{prop}", value)
|
||||
end
|
||||
end
|
||||
|
||||
# @param rendering_options [Sketchup::RenderingOptions] rendering options of scene (page)
|
||||
def set_rendering_options(rendering_options, speckle_rendering_options)
|
||||
speckle_rendering_options.each do |prop, value|
|
||||
next if rendering_options[prop].nil?
|
||||
|
||||
rendering_options[prop] = if value.is_a?(Hash)
|
||||
SpeckleObjects::Others::Color.to_native(value)
|
||||
else
|
||||
value
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# @param headless_layers [Array<String>] headless layer names.
|
||||
# @param folder [Sketchup::Layers, Sketchup::LayerFolder] layer folder to create commit layers under it.
|
||||
def create_headless_layers(headless_layers, folder)
|
||||
@@ -313,6 +294,7 @@ module SpeckleConnector
|
||||
OBJECTS_GEOMETRY_BREP => MESH.method(:to_native),
|
||||
OBJECTS_OTHER_BLOCKDEFINITION => BLOCK_DEFINITION.method(:to_native),
|
||||
OBJECTS_OTHER_BLOCKINSTANCE => BLOCK_INSTANCE.method(:to_native),
|
||||
OBJECTS_OTHER_BLOCKINSTANCE_FULL => BLOCK_INSTANCE.method(:to_native),
|
||||
OBJECTS_OTHER_REVIT_REVITINSTANCE => REVIT_INSTANCE.method(:to_native),
|
||||
OBJECTS_OTHER_RENDERMATERIAL => RENDER_MATERIAL.method(:to_native)
|
||||
}.freeze
|
||||
|
||||
@@ -50,6 +50,7 @@ module SpeckleConnector
|
||||
# rubocop:disable Metrics/AbcSize
|
||||
# rubocop:disable Metrics/PerceivedComplexity
|
||||
# rubocop:disable Metrics/CyclomaticComplexity
|
||||
# rubocop:disable Metrics/MethodLength
|
||||
def self.to_native(obj, sketchup_model)
|
||||
views = collect_views(obj)
|
||||
return if views.empty?
|
||||
@@ -72,11 +73,35 @@ module SpeckleConnector
|
||||
page = sketchup_model.pages[name]
|
||||
set_page_update_properties(page, view['update_properties']) if view['update_properties']
|
||||
set_rendering_options(page.rendering_options, view['rendering_options']) if view['rendering_options']
|
||||
rescue StandardError => e
|
||||
puts("Failed to convert view (name: #{name})")
|
||||
puts(e)
|
||||
end
|
||||
end
|
||||
# rubocop:enable Metrics/AbcSize
|
||||
# rubocop:enable Metrics/PerceivedComplexity
|
||||
# rubocop:enable Metrics/CyclomaticComplexity
|
||||
# rubocop:enable Metrics/MethodLength
|
||||
|
||||
# @param page [Sketchup::Page] scene to update -update properties-
|
||||
def self.set_page_update_properties(page, update_properties)
|
||||
update_properties.each do |prop, value|
|
||||
page.instance_variable_set(:"@#{prop}", value)
|
||||
end
|
||||
end
|
||||
|
||||
# @param rendering_options [Sketchup::RenderingOptions] rendering options of scene (page)
|
||||
def self.set_rendering_options(rendering_options, speckle_rendering_options)
|
||||
speckle_rendering_options.each do |prop, value|
|
||||
next if rendering_options[prop].nil?
|
||||
|
||||
rendering_options[prop] = if value.is_a?(Hash)
|
||||
SpeckleObjects::Others::Color.to_native(value)
|
||||
else
|
||||
value
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def self.collect_views(obj)
|
||||
views = []
|
||||
|
||||
@@ -16,7 +16,7 @@ module SpeckleConnector
|
||||
type = def_obj['type']
|
||||
category = def_obj['category']
|
||||
|
||||
return "#{family}-#{type}-#{category}"
|
||||
return "#{family}-#{type}-#{category}-#{def_obj['id']}"
|
||||
end
|
||||
|
||||
def self.to_native(state, definition, layer, entities, &convert_to_native)
|
||||
|
||||
Reference in New Issue
Block a user