autodesk / revit-ifc Goto Github PK
View Code? Open in Web Editor NEWIFC for Revit and Navisworks (2019+)
IFC for Revit and Navisworks (2019+)
Schedules with calculated or/and combined fields:
Wish that it can look like this in Solibri:
Use cases:
The last commit 8ffa80c
generates the error: CS0103 The name 'certifiedPsetList' does not exist in the current context
Project: Revit.IFC.Export
File: ExporterInitializer_PsetDef.cs
How to export large revit project?
R2019
exporter: R19.1 & R19-current-DEV-branch-version
issues:
Since the model and exports are too big for uploading at GitHub:
Sample model is downloadable at German Revit User Group https://www.rug-dach.de/download/demodatensaetze.html
Direct link: https://www.rug-dach.de/phocadownload/2018_final/Samples.zip
Within the Samples.zip, it is the model: BIM Projekt Golden Nugget - Gebaeudetechnik (1).rvt
Todo:
R19.1 & R19-current-DEV-branch-version
IFC2x3CV2.0: exported in less than 1,5 minute
IFC4RV: 11 minutes
R19.1
IFC2x3CV2.0: a part of the isolation of a pipefitting is not correctly positioned (is rotated)
IFC4RV: same part is now running more away
R19-current-DEV-branch-version
IFC2x3CV2.0: a part of the isolation of a pipefitting is not correctly positioned (is rotated)
IFC4RV: same as IFC2x3: a part of the isolation of a pipefitting is not correctly positioned (is rotated)
Just one pipefitting isolation is marked on the screenshot, but there are several in the model with the same issue.
(In R2018 with exporter 18.4 there are even 10 pipefittings that are not exported at all, and are missing in the export)
Regards,
Dirk
Note: in another MEP model I was not able to export the mechanical system in IFC4RV.
I don't know if this is a related issue with the export time.
Although with IFC2x3 it only took 9 minutes to generate the IFC-model, with IFC4RV there was overnight still no result (something exponential going on?)
The electrical and the plumbing part was not causing any problem.
We need center line for ducts and pipes to be included in the IFC export. Eg. to be able to measure length between center lines to axix, walls etc.
1 and the same family with different values for IfcExportAs.
R2019, current-Github-exporter-version:
For IFC2x3CV2 & IFC4RV1: IfcExportAs=IfcBuildingElementProxy(Type): cubes and geometry of modeltext are exported: OK! [correction: not IfcBuildingElement, but IfcBuildingElementProxy)
For IFC2x3CV2 & IFC4RV1: IfcExportAs=IfcChimney(Type)/IfcShadingDevice(Type)/IfcRampFlight(Type)/IfcStairFlight(Type): cubes are not exported.
For IFC4RV1: IfcExportAs=IfcCovering(Type)/IfcFooting(Type)/IfcPile(Type)/IfcRamp(Type)/IfcRoof(Type)/IfcSlab(Type)/IfcStair(Type)/IfcWall(Type): geometry of modeltext is not exported.
Sample file is attached.
Feature from previous versions:
Append "(Type)" to all internal Revit type property sets, to avoid having multiple property sets with the same name assigned to the same IFC entity.
is not available in current.
Best would be having an opportunity to merge Type and Instance parameters into one Property Set.
These are actually several interconnected issues occurring when using the UI for the import class mappings (Open > IFC Options) in the German Revit UI.
German Umlaute are not displayed correctly when using a UTF8-encoded import class mapping file.
(Should say "Luftdurchlässe"...)
When editing the import class mappings in the UI and subsequently saving them, the file is ANSI-encoded.
Previous state:
After saving:
Using an ANSI-encoded import class mapping file with "corrected" Umlaute will result in import errors for the affected categories when linking / importing an IFC file.
Tested in 18.4
Workaround:
Expected behaviour:
Is the StairRiserThreadsCalculator.cs missing in Exporter\PropertySet\Calculators,
or can the line 131 <Compile
Include="Exporter\PropertySet\Calculators\StairRiserTreadsCalculator.cs" /> `be eliminated in
revit-ifc-IFC4RV-Certification\Source\Revit.IFC.Export\Revit.IFC.Export.csproj ?
2018-08-27 IfcSpatialElement.zip
R2019.1 / regular 19.1 exporter version vs. current-Github-master-version
Compared to the "regular" 19.1 exporter version, there seems to be an issue with the export of the entities of the class IfcSpatialElement in the current-Github-master-version.
Situation:
Model In-Place cubes (no modeltext this time, just cubes) with IfcExportAs =
IFC4RV export:
Attached: the RVT-model and the IFC4RV exports of both versions of the exporter.
Hello
sea IFC2REVIT en perd des bouts.pdf
Making use of the export mapping file seems not to set the PredefinedTypes (values listed in the column IFC Type) anymore in the resulting IFC export. In the export it results in a PredefinedType = NOTDEFINED.
R2019.1 and current-Github-Master-version
IFC4RV
Export Mapping file (File > Options > IFC Options).
I did try 2 mapping files (attached in ZIP):
Only making use of these mapping files (not using IFCExportAs, because with IFCExportAs the PredefinedTypes are set correctly, with a few exceptions which are listed elsewhere as issue)
seem to result in an export where the PredefinedTypes are NOTDEFINED (except in the case where the export is hardcoded)
4 cases:
(as I look to the sample file in issue #11, #11 , I assume that issue concerns the use of IFCExportAs and IFCExportType)
[2018-08-28 Export Mapping.zip](https://github.com/Autodesk/revit-ifc/files/2328671/2018-08-28.Export.Mapping.zip)@WawanSolihin
Sorry, there seems to be some regression. With the last commit something is not going well with the tessellation of irregular shaped objects, probably something to do with the fix of the large meshes.
Also some stairs and railings and some walls seems to kind of explode now: when I select them, the bounding box is huge. Before, with version of 08-sept-2018, these objects and the tessellation was OK.
(I do notice that a big sitemesh of the sample at https://sourceforge.net/p/ifcexporter/discussion/general/thread/75a87f43/ , which was not exporting before, is now exportable.)
The offset issue of some walls is fixed, but now some plates of a curtain wall are getting an offset.
It will take some time to prepare samples to isolate these issues.
Is there a way to prevent Revit from resetting a room to the base point, upon IFC import?
We need Revit to handle different ways of placing the IFC upon linking.
Eg when the IFC is decided to be in true north, we are able to export it properly by exporting with surveypoint. This should also be possible on linking in.
hi i tried to export a series of hidden shared parameters to IFC unfortunately they are ignored by the exporter.
approaches:
result: no export for all 3 options.
yes the parameters had content and were not empty
This line of code will never result in flipped == true
:
flipped = MathUtil.IsAlmostEqual(Math.Abs(zVec.Z), -1.0);
Because it's comparing a positive number to -1
Today I exported a batch of models, but this time in IFC2x3CV2.0 (with the current version of the IFC4RV-branch)
Unfortunately with 9 of the 11 models an error window popped up, with errors that could be ignored.
In 2 cases no model at all was generated.
I did a quick test now with the version of the DEV-branch, but unfortunately the same errors are popping up.
It seems mainly related to floors which are exported as IfcWall.
In IFC4RV1.2 they are exported fine (as IfcWall).
In IFC2x3CV2.0 not.
See attached sample.
IFC2x3CV2.0
R2018 & R2019
Issue of the orientation of the parametric swing-symbol, and regression of the generation/translation to the correct OperationType, making use of the flip-functionality of doors.
Initial situation:
A door with a nested and shared doorpanel (with a plan swing line, without a value for Operation).
One door is modeled as single swing right (door_SSR)
One door is modeled as single swing left (door_SSL)
Action:
door_SSR is flipped over the Y-axe (resulting in 'door_SSR_Yflip')
Expectation:
door_SSR_Yflip should result in a door identically as door_SSL.
Result:
With 18.4 and 19.1: the operationtype is indeed correctly generated, but there seems to be an issue with the IFCAXIS2PLACEMENT3D, which causes a wrong orientation of the parametric symbol that is displayed in Solibri
Changing value 13
"#295= IFCAXIS2PLACEMENT3D(#293,#19,#13)"
to value 11
"#295= IFCAXIS2PLACEMENT3D(#293,#19,#11)"
seems to solve the direction, at least for Solibri.
But with the R19-current-version-in-the-DEV-branch, some disturbing regression is taking place.
The OperationType of the flipped one is not (anymore) correctly generated, and even the 'as is door_SSL' is now exporting as SSR.
And there is also the issue of the orientation of the parametric symbol.
Attached, only the sample for R2018, since it's also upgradable to R2019.
Regards,
Dirk
Revit 2018 exported f.ex. floor/slab that was "divided" in the "edit boundary" as separate IFC elements.
Revit 2019 export them as one IFC element.
Is this intended or a bug?
I think most user would like to keep it the way it was in Revit 2018 or a possibility to override it.
Please see attachments.
Dividing them in separate revit instances, means more editing time for the user in case of changes.
This is similar to the issue that`s reported with use of parts. The objective is to make modeling procedures most efficient as possible.
The export setting UseOnlyTriangulation
a.k.a. "Keep Tesselated Geometry as Triangulation" ("Advanced" tab) can be exported to JSON but not saved in project.
Tested in 18.4
Steps to reproduce:
R2019.1
exporter: current-Github-version-Master-branch
IFC4RV
Some walls (straight or curved) are getting an offset on export (IFC4RV) compared to their original location (1)(2)(3)
On export in IFC2x3CV2 these walls remain in place. But on IFC2x3 export there is the issue that the wall cut (4) isn't successful (probably due to the low tesselation of the wall).
Sample rvt and resulting IFC's are attached (in ZIP).
[2018-09-10 walls - offset on export.zip](https://github.com/Autodesk/revit-ifc/files/2366426/2018-09-10.walls.-.offset.on.export.zip)When exporting the type parameters using the property set mapping the NominalLength, NominalWidth and Nominal Height converts the values to feet, whilst the source attributes are written in millimeters as expected.
At first I thought it was just ifcxml, but then checked the ifc output and the same appears there too.
@WawanSolihin
The last commit 2641d6b
generates an error while building the solution for Revit.IFC.Common.dll
Something changed in Revit.IFC.Common.csproj
If I use the previous version of this file, the common.dll is building fine.
Is my impression correct that there will be no more updates of the R18 exporter?
Regards,
Dirk
Is there any plans to move the wiki over from source forge or start from scratch?
I can't help much with code, but here I and other might be able to lend a hand with documentation.
The same goes for the various files for download - pset files, shared parameters and so on. They might need a separate repo?
I'm wondering if more needs to be done, to move posting of new issues from Sourceforge to GitHub?
Currently it's a bit confusing for new users to find out where to ask questions - I'm guessing it should be here?
R2019.1
tested with exporter versions:
IFC4RV (& IFC2x3CV2)
issue: In the IFC Export Mapping Table the functionality of 'Not Exported' for the SubCategories isn't working anymore for the Model-In-Places of the Categories Ceilings, Floors, Walls IF the Class is IfcCoveringType, IfcSlabType, IfcWallType: the SubCategories (f.i. Hidden Lines, HuppelDePup) are exported even if they are on 'Not Exported' (attached sample 1)
Only if they are exported to another Class, f.i. IfcBuildingElementProxyType, the use of 'Not Exported' is working as intended (attached sample 2).
The attached IFC4RV-exports are produced with the current Github version of the Master branch.
This issue is the same as earlier reported in monthly meeting.
When we creates structural floors and associated beams in Revit we usally use the nearet level as reference level with a smal offset or without a offset.
Revit will automatically use the elementhost/reference level when assigning BUILDINGSTOREY to the IfcElement. This is often not correct according to the elements floor affiliation that's defined by our projects BIM manuals.
A workaround is to assign the elementhost (floor and beamsystems) to a "correct" reference level below and with a large offset. We will then lose the opportunity to easy change the element z-location when the relative height for a storey changes. That's common in early stages of a project.
I would like to have the opportunity to manually override a element relations to IfcBuildingStorey.
I want to convert rvt to ifc through C#,without revit installed and don't use online forge.
If it's possible?
I use VS 2015 run it,but get some error.So, which version of VS can run this code rightly?
thanks in advance.
It would be good to have an option to add a fixed Site to the export config. This way, we are no longed dependant on the correct site being set when doing multiple exports. This is an issue on projects where we operate with multiple sites, and some users change sites from what is correct for the IFC export.
We need IfcSpace to create a Room or a Space in Revit when linking in IFC.
Some questions about IFC4 and MVD-restrictions.
I assume that an IFC-model exported according a particular MVD only can/may contain entities that are defined within the scope of the MVD.
So, if IfcAnnotation isn't part of the scope of IFC4RV1.1, it should not be present in the IFC-model, right?
According to:
http://www.buildingsmart-tech.org/specifications/ifc-view-definition/ifc4-reference-view/comparison-rv-dtv
these entities are not making part of IFC4RV, but are currently exportable with the exporter as IFC4RV:
IfcAnnotation
IfcBeamStandardCase *
IfcColumnStandardCase *
IfcDoorStandardCase *
IfcMemberStandardCase *
IfcPlateStandardCase *
IfcSlabElementedCase *
IfcSlabStandardCase *
IfcWallElementedCase *
IfcWallStandardCase *
IfcWindowStandardCase *
IfcOpeningStandardCase *
IfcVoidingFeature
IfcSurfaceFeature
IfcVirtualElement
IfcProxy *
IfcExternalSpatialElement []
( * = status changed to Deprecated in IFC4_ADD2_TC1: "this definition may be imported, but shall not be exported by applications." )
( [] = I've mentioned IfcExternalSpatialElement in my issue "IfcSpatialElement", but I suppose that after all for IFC4RV it should not be present in the model )
What would be a solution to prevent that these entities are not present in a IFC4RV-model?
Sidenote:
At the moment it is also possible to export IfcSite/IfcBuilding/IfcBuildingStorey as separate geometry on buildingstoreys (example of cubes with the use of IFCExportAs).
I suppose it is OK that these entities can have independent geometry, but the geometry should than be related directly to the entities in the "spatialstructuralelement"-tree, according to rule WR41, isn't ?
(in the way now the IfcSite geometry is produced by the use of a Topography)
Hi
Revit 2019:
When beams and columns are part of a steel connection, they export to IFC without the usual properties.
Attachment: Ifc as zip. See below.
Connected:
2019 connections.zip
R2019.1
Apparently something changed in the generation of some doors and windows for the IFC4RV export.
IFC4RV export:
With the regular version 19.1 of the exporter: the IFC-export of the doors and windows is OK.
With the current-Github-Master-branch-version, it seems that the voids (void extrusion / opening cut) are also exported as IfcDoor and IfcWindow.
For IFC2x3CV2 the export is still fine.
Sample rvt and resulting IFC's are attached (in ZIPs)
Notice: the breakdown in separate objects is intended (shared nested families)
2018-09-10 door-window void.zip.002.zip
2018-09-10 door-window void.zip.003.zip
2018-09-10 door-window void.zip.004.zip
2018-09-10 door-window void.zip.001.zip
This issue is both a IFC and parts issue, but maybe it could start a project in Autodesk to improve the parts feature.
We use parts to divide large revit instances like floor and wall into for example concrete pouring/production stages. Or we create parts from an original instance with many layers to export them as separate object or to redefine the geometry for some of the layers, for example insulation layers in a floor. Its much faster using divided parts instead of editing a bunch of connected isolated elements if it
s perhaps get decided to move the line for a production stage or similiar changes.
We dont have the possibility to access the "Edit type" properties to override the original-/host type parameter for a part. This is of course because it
s not a family type. But we need a possibility to use parts in the same way that we work with Revit instances or the possibility to harvest/export all of the type parameters from the parts host to the IFCelements that`s created from a part.
Its possible to have a duplicate of the host type parameters as instances parameters for the parts, and use Dynamo to copy-paste this parameters value. But
s it`s a very timeassuming workaround.
While IfcSlab
s in IfcRoof
s correctly report their PitchAngle
in Pset_SlabCommon
, IfcSlab
s generated from Revit floor slabs do not - they always report 0°, regardless of the actual slope.
Tested in 18.4
Expected behaviour:
Either report the actual slope using the method already available for roofs or only export this property for horizontal slabs.
Steps to reproduce
PitchAngle
values in Pset_SlabCommon
of the respective floor slabsProbably it is better to post it as separate issue (referring to my last comment in the closed issue #40 ):
Despite the fix of runaway objects, the footprints of the attached stairway are still dislocated.
2018-10-24 runaway footprint.zip
Regards,
Dirk
Version:
Revit 2019.0.1
IFC for Revit 2019 v19.1
Issue:
The state of the checkbox "Export only schedules containing IFC, Pset, or Common in the tile" is not saved when creating custom export setup.
Steps to reproduce:
First when a new export setup is created:
Second on nect export and the same setups is chosen:
R2019
IFC4RV & IFC2x3CV2.0
issue: level association regression
There seems to be a regression issue with some generic models and their level association.
While with 19.1 they are correctly associated with the most close level underneath, which is marked as Building Story (in this case level 03),
they are now (with the current-DEV-branch-version) associated with the lowest of all levels (in this case 00).
2018-10-24_levelassociation_regression.zip
Regards,
Dirk
The following export mappings no longer work completely:
Revit object | Previously possible | Result with 18.4 |
---|---|---|
Wall | IfcFooting.STRIP_FOOTING | IfcFooting.NOTDEFINED |
Loadable Family (Structural Foundations) | IfcFooting.PAD_FOOTING | IfcFooting.NOTDEFINED |
Loadable Family (Structural Foundations) | IfcPile.SUPPORT | IfcPile.NOTDEFINED |
This is a regression that must have slipped in at some point between (probably) 18.2 and 18.4
Parts: location offset of exported geometry
for a Model In Place, as well as for a Loadable Family, category Generic Model:
Create Parts > Divide Parts > Edit Sketch: draw line: on export the parts are located with an offset to their original location: issue.
sample file attached
Note 1: I added floors underneath the Generic Models as reference location
Note 2: with R2019.1 there is only an offset in x & y direction // with R2019 there was also an offset in Z-direction
The offset increases if the distance to the 0-point increases.
In ConnectorExporter.AddConnection method there is two calls to AddNestedMembership method, the first for the In port, the second for the Out port. But in both calls the inElementIFCHandle is used as parameter.
So the two ports are nested to the same object.
Look at the if (isIFC4AndAbove)
condition:
// ----------------------- In Port ----------------------
{
string guid = GUIDUtil.CreateGUID();
IFCFlowDirection flowDir = (isBiDirectional) ? IFCFlowDirection.SourceAndSink : IFCFlowDirection.Sink;
IFCAnyHandle localPlacement = CreateLocalPlacementForConnector(exporterIFC, connector, inElementIFCHandle, flowDir);
string portName = "InPort_" + inElement.Id;
string portType = "Flow"; // Assigned as Port.Description
portIn = IFCInstanceExporter.CreateDistributionPort(exporterIFC, null, guid, ownerHistory, localPlacement, null, flowDir);
IFCAnyHandleUtil.OverrideNameAttribute(portIn, portName);
IFCAnyHandleUtil.SetAttribute(portIn, "Description", portType);
// Attach the port to the element
guid = GUIDUtil.CreateGUID();
string connectionName = inElement.Id + "|" + guid;
IFCAnyHandle connectorIn = null;
// Port connection is changed in IFC4 to use IfcRelNests for static connection. IfcRelConnectsPortToElement is used for a dynamic connection and it is restricted to IfcDistributionElement
// The following code collects the ports that are nested to the object to be assigned later
if (isIFC4AndAbove)
AddNestedMembership(inElementIFCHandle, portIn);
else
connectorIn = IFCInstanceExporter.CreateRelConnectsPortToElement(ifcFile, guid, ownerHistory, connectionName, portType, portIn, inElementIFCHandle);
}
// ----------------------- Out Port----------------------
{
string guid = GUIDUtil.CreateGUID();
IFCFlowDirection flowDir = (isBiDirectional) ? IFCFlowDirection.SourceAndSink : IFCFlowDirection.Source;
IFCAnyHandle localPlacement = CreateLocalPlacementForConnector(exporterIFC, connected, outElementIFCHandle, flowDir);
string portName = "OutPort_" + outElement.Id;
string portType = "Flow"; // Assigned as Port.Description
portOut = IFCInstanceExporter.CreateDistributionPort(exporterIFC, null, guid, ownerHistory, localPlacement, null, flowDir);
IFCAnyHandleUtil.OverrideNameAttribute(portOut, portName);
IFCAnyHandleUtil.SetAttribute(portOut, "Description", portType);
// Attach the port to the element
guid = GUIDUtil.CreateGUID();
string connectionName = outElement.Id + "|" + guid;
IFCAnyHandle connectorOut = null;
// Port connection is changed in IFC4 to use IfcRelNests for static connection. IfcRelConnectsPortToElement is used for a dynamic connection and it is restricted to IfcDistributionElement
// The following code collects the ports that are nested to the object to be assigned later
if (isIFC4AndAbove)
AddNestedMembership(inElementIFCHandle, portOut);
else
connectorOut = IFCInstanceExporter.CreateRelConnectsPortToElement(ifcFile, guid, ownerHistory, connectionName, portType, portOut, outElementIFCHandle);
}
I will make a pull request for that.
It's merely a question rather than an issue (as I assume), but looking at the colors of the models generated for the different MVD's, there are some differences.
In the IFC2x3CV2.0 and IFC4DTV1.0 output only IfcColourRgb is used, and viewers are capable of showing these colors.
In the IFC4RV1.2 output mostly IfcColourRgbList is used, and in a few cases IfcColourRgb: is there a viewer that can handle IfcColourRgbList? Or what is the cause that the colors in IFC4RV are 'different'?
Regards,
Dirk
Unfortunately, compiling the dll's gets stuck on:
Project: Revit.IFC.common
File: MathUtil.cs
Regards,
Dirk
Sometimes we get IFC files (mainly from Archicad) where the file has huge numbers in the IfcCartesionpoints. When opening these IFC files in Solibri, they look fine with normal coordinates in "location". However, when linking/opening the same files in Revit, the models tend to be placed very far away from the Revit Origin.
I have sent an example of such an IFC directly to Angel Velez, and I can supply this again upon request.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.