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



22
23
24
# File 'lib/microstation/scan_trait.rb', line 22

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

#create_scanner(&block) ⇒ Object



6
7
8
# File 'lib/microstation/scan_trait.rb', line 6

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

#graphics_criteriaObject



14
15
16
# File 'lib/microstation/scan_trait.rb', line 14

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

#lines_criteriaObject



26
27
28
# File 'lib/microstation/scan_trait.rb', line 26

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

#scan(criteria) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/microstation/scan/scan_trait.rb', line 23

def scan(criteria)
  scan_result = ole_run_scan(criteria)
  return [] unless scan_result
  scan_enum = Microstation::Enumerator.new(scan_result)
  result =  []
  if block_given?
    scan_enum.each do |item|
      yield item
    end
  else
    scan_enum.each do |item|
      result << item
    end
  end

  return result unless block_given?
end

#scan_cell_with_name(name, &block) ⇒ Object



51
52
53
54
55
56
# File 'lib/microstation/scan_trait.rb', line 51

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

#scan_cells(&block) ⇒ Object



42
43
44
# File 'lib/microstation/scan_trait.rb', line 42

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

#scan_graphical(&block) ⇒ Object



30
31
32
# File 'lib/microstation/scan_trait.rb', line 30

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

#scan_lines(&block) ⇒ Object



46
47
48
# File 'lib/microstation/scan_trait.rb', line 46

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

#scan_tags(&block) ⇒ Object



38
39
40
# File 'lib/microstation/scan_trait.rb', line 38

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

#scan_text(&block) ⇒ Object



34
35
36
# File 'lib/microstation/scan_trait.rb', line 34

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

#tags_criteriaObject



18
19
20
# File 'lib/microstation/scan_trait.rb', line 18

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

#text_criteriaObject



10
11
12
# File 'lib/microstation/scan_trait.rb', line 10

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