Want help to read I-model files using SDK

Hi Everyone,

I want to read Imodel(i.dgn ) files using MicrostationAPI functions. Can anyone please provide the help. I am new to use this SDK. My aim is to create a c++ project to read the i.dgn files. so i am asking help using microstation APIS NOT MDL. Thanks in Advance...

Thanks & Regards

Rakesh Kumar Naidu

  • Unknown said:
    I want to read i-Model files using MicrostationAPI functions

    This is a complex topic.  I see from the Developer Conference agenda that Bentley Systems plan to cover the i-Model API. 

    What do you want to extract from an i-Model?

    • EC Schema data
    • Geometry

     
    Regards, Jon Summers
    LA Solutions

  • In addition to what Jon mentions I would look at the imodelvisitor example that is delivered with the SDK.

    HTH,

  • I want to extract geometry and attributes or properties of that geometry. can you provide some idea in a broder way to do this which will be useful for me

  • Unknown said:
    I want to extract geometry and attributes or properties of that geometry

    The attribute data are what is described by the EC Schema.  Look at the i-Model visitor example to see how to extract those data.

    i-Model Geometry

    One purpose of the i-Model, if I understand it correctly, is to provide an application-independent way to display a 3D object.  That is, you don't need, for example, Bentley Building to display a Linear Form that represents a wall.  A consequence of that purpose is that geometry tends to be facetted. 

    You must decided whether a facetted representation of the original goemetry suits your purpose.  In the case of the example Linear Form, which is built from shape elements, the facets are likely to be equal to the original.  For a more complex object — say, an HVAC duct — the facetted version may not carry the information you might need, such as a radius of curvature.

    These Forums are not the right place to provide a tutorial about i-Models.  As I mentioned, the Developer Conference will cover i-Models from the programmer's perspective.

     
    Regards, Jon Summers
    LA Solutions

  • Can anyone please answer the below basic doubts:

      1)  When should i use MDL API's and Microstation C++ Api's?

      2)  Do i need to create mke file for mandatory for both MDL and C++ projetcs?

      3) I want to create a MFC dll. In this dll i want to read imodel file using the Microstation c++ API's. Is it

           possible to do that? my intention is not to invoke the microstation.

    Thanks & Regards

    Rakesh...

  • Unknown said:
    When should I use MDL API's and MicroStation C++ APIs?

    MDL doesn't have the functionality provided by the MicroStationAPI. The MicroStationAPI does not replace MDL.

    If you need the functionality of the MicroStationAPI, then you must write C++. If you need only MDL, then you can write C or C++. It's common to use both MDL and the MicroStationAPI in a project.

    If you need the functionality provided by the MicroStationAPI, then you must use that and you must write C++. In your case, the i-Model API is available only through the MicroStationAPI.

    Unknown said:
    Do I need to create mke file for both MDL and C++ projects?

    Bentley Make (bmake) implements a robust and functional make file build tool. You can use it for both MDL and MicroStationAPI.

    The MicroStation SDK examples are C++ files. Each example has a make file that shows how to invoke the C++ compiler and linker. It's assumed that you are using the Microsoft compiler and linker.

    Unknown said:
    I want to create a MFC DLL. In this DLL I want to read i-Model file using the MicroStation C++ API's. Is it possible to do that?

    If you want to create a user interface using the Microsoft Foundation Classes (MFC) then you must use Viz Studio 2005. The MFC libraries used by MicroStation are compatible with that version of Viz Studio. Later versions of Viz Studio won't work.

    Use the MicroStationAPI to read an i-Model file.

    Unknown said:
    I want to create a MFC DLL. My intention is not to invoke the MicroStation

    A DLL needs an executable to host it. You can run a DLL standalone. If you build a DLL that is linked to a host executable's libraries then you must load that DLL into the host's address space.

    In other words, if you've built a DLL that links to the MicroStationAPI then you must invoke MicroStation to run that DLL.

    Regards, Jon Summers
    LA Solutions

     
    Regards, Jon Summers
    LA Solutions