For industrial area common practice is to make an EPCI tender. Where E – means Engineering, which includes FEED study.
Rough 3D model appears at FEED study to help briefly estimate expenses, clarify technical details, define approximate facility layout.
When Final Investment Decision is made – Engineering start to model facility with all details. Basically, 3D model is a product of engineering processes, as well as drawings, take off quantities, and specifications.
Often its’ important to have some code snippets to be able to solve concreate task in NavisWorks via .NET API at C# language. Cause documentations is not always self explanatory. Especially in case COM API. So for Cutting and Section planes in navis samples Bello is able to do the job.
Currently, only COM exposed some small API for sectioning. InwClippingPlaneColl can add the custom clipping plane. But InwClippingPlaneColl.Add method is not supported. This is because the COM wrapper in having to follow the underlying C++ code. You need to use InwClippingPlaneColl2.CreatePlane. It passes in a 1 based index. Default planes will be created as required, up to and including this index. Then you modify the plane that is in the collection directly.
privatevoidcreateSectionPlane() {ComApi.InwOpState10state;state=ComBridge.State; // create a geometry vector as the normal of section planeComApi.InwLUnitVec3fsectionPlaneNormal= (ComApi.InwLUnitVec3f)state.ObjectFactory(Autodesk.Navisworks.Api.Interop.ComApi.nwEObjectType.eObjectType_nwLUnitVec3f,null,null);sectionPlaneNormal.SetValue(1, 1, 0); // create a geometry planeComApi.InwLPlane3fsectionPlane= (ComApi.InwLPlane3f)state.ObjectFactory (Autodesk.Navisworks.Api.Interop.ComApi.nwEObjectType.eObjectType_nwLPlane3f,null,null); //get collection of sectioning planesComApi.InwClippingPlaneColl2clipColl= (ComApi.InwClippingPlaneColl2)state.CurrentView.ClippingPlanes(); // get the count of current sectioning planesintplaneCount=clipColl.Count+1; // create a new sectioning plane // it forces creation of planes up to this index.clipColl.CreatePlane(planeCount); // get the last sectioning plane which are what we createdComApi.InwOaClipPlanecliPlane= (ComApi.InwOaClipPlane)state.CurrentView.ClippingPlanes().Last(); //assign the geometry vector with the planesectionPlane.SetValue(sectionPlaneNormal, 1.0); // ask the sectioning plane uses the new geometry planecliPlane.Plane=sectionPlane; // enable this sectioning planecliPlane.Enabled=true; }
Create NavisWorks Section Box via .Net API
With .Net Api section box might be created as valid JSON object and assign to current View: