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
I am using SS3 SDK
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?
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,
mark anderson [Bentley]
Visit me at https://communities.bentley.com/communities/other_communities/bentley_innovation/default.aspx
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.
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.
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.
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.