IFCSTEPLoader.js 988 B

1234567891011121314151617181920212223242526272829303132333435
  1. /**
  2. * IFCStepLoader
  3. *
  4. * @author realor
  5. */
  6. import { IFCLoader } from './IFCLoader.js'
  7. import { IFC_SCHEMAS } from './BaseEntity.js'
  8. import { STEPParser, STEPFile } from '../STEP.js'
  9. class IFCSTEPLoader extends IFCLoader {
  10. constructor(manager) {
  11. super(manager)
  12. }
  13. parseFile(file, text) {
  14. let parser = new STEPParser()
  15. parser.schema = IFC_SCHEMAS.IFC4 // default schema
  16. parser.getSchemaTypes = schemaName => {
  17. schemaName = schemaName.toUpperCase()
  18. console.info('schema: ' + schemaName)
  19. let schema = IFC_SCHEMAS[schemaName] || IFC_SCHEMAS.IFC4
  20. if (schema === undefined) throw 'Unsupported schema ' + schemaName
  21. file.schema = schema
  22. return schema
  23. }
  24. parser.onEntityCreated = entity => {
  25. entity._loader = this
  26. file.add(entity)
  27. }
  28. parser.parse(text)
  29. }
  30. }
  31. export { IFCSTEPLoader }