Module: Microstation::ScanTrait

Included in:
Drawing, ModelTrait
Defined in:
lib/microstation/scan_trait.rb,
lib/microstation/scan/scan_trait.rb

Instance Method Summary collapse

Instance Method Details

#cells_criteriaObject



20
21
22
# File 'lib/microstation/scan_trait.rb', line 20

def cells_criteria
  app.scanners[:cells] || app.create_scanner(:cells) { include_cells }
end

#create_scanner(&block) ⇒ Object



4
5
6
# File 'lib/microstation/scan_trait.rb', line 4

def create_scanner(name, &block)
  app.create_scanner(name, &block)
end

#graphics_criteriaObject



12
13
14
# File 'lib/microstation/scan_trait.rb', line 12

def graphics_criteria
  app.scanners[:graphical] || app.create_scanner(:graphical) { ExcludeNonGraphical }
end

#lines_criteriaObject



24
25
26
# File 'lib/microstation/scan_trait.rb', line 24

def lines_criteria
  app.scanners[:lines] || app.create_scanner(:lines) { include_lines }
end

#scan(criteria, &block) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/microstation/scan/scan_trait.rb', line 20

def scan(criteria, &block)
  scan_result = ole_run_scan(criteria)
  return [] unless scan_result

  scan_enum = Microstation::Enumerator.new(scan_result)
  result = []
  if block
    scan_enum.each(&block)
  else
    scan_enum.each do |item|
      result << item
    end
  end

  return result unless block
end

#scan_cell_with_name(name, &block) ⇒ Object



48
49
50
51
52
53
# File 'lib/microstation/scan_trait.rb', line 48

def scan_cell_with_name(name, &block)
  sc = create_scanner
  sc.IncludeOnlyCell(name)
  sc.include_cell
  scan_model(sc, &block)
end

#scan_cells(&block) ⇒ Object



40
41
42
# File 'lib/microstation/scan_trait.rb', line 40

def scan_cells(&block)
  scan_model(cells_criteria, &block)
end

#scan_graphical(&block) ⇒ Object



28
29
30
# File 'lib/microstation/scan_trait.rb', line 28

def scan_graphical(&block)
  scan_model(graphic_criteria, &block)
end

#scan_lines(&block) ⇒ Object



44
45
46
# File 'lib/microstation/scan_trait.rb', line 44

def scan_lines(&block)
  scan_model(lines_criteria, &block)
end

#scan_tags(&block) ⇒ Object



36
37
38
# File 'lib/microstation/scan_trait.rb', line 36

def scan_tags(&block)
  scan_model(tags_criteria, &block)
end

#scan_text(&block) ⇒ Object



32
33
34
# File 'lib/microstation/scan_trait.rb', line 32

def scan_text(&block)
  scan_model(text_criteria, &block)
end

#tags_criteriaObject



16
17
18
# File 'lib/microstation/scan_trait.rb', line 16

def tags_criteria
  app.scanners[:tags] || app.create_scanner(:tags) { include_tags }
end

#text_criteriaObject



8
9
10
# File 'lib/microstation/scan_trait.rb', line 8

def text_criteria
  app.scanners[:textual] || app.create_scanner(:textual) { include_textual }
end